On 2017-06-30 07:11, Sebastian Huber wrote:
On 29/06/17 18:05, David Miller wrote:
From: Daniel Cederman <ceder...@gaisler.com>
Date: Thu, 29 Jun 2017 17:15:43 +0200
I'm not thrilled with this, it's undocumented, the other workaround
don't have
it and I don't think that we really need it.
The B2BST errata workaround requires more changes to assembler
routines commonly used by operating systems, such as for example
register window handling, than what the UT699 workaround needed. It
would be nice to have a way to only enable these modification when the
-mfix- flag is used. The alternative would be to provide a define
directly on the compiler command line in conjunction with -mfix
flag. But if more changes are required later on it would be good to
have the define more closely tied to the flag to minimize the number
of changes to Makefiles and etc.
Personally, I have never seen compiler based CPP defines as ever being
useful for tailoring OS assembler code. Ever.
In most cases you will want to support several families of CPUs and
therefore sort out the individual cpu support assembler routines
internally in the kernel sources.
This depends on the operating system you use. For some embedded systems
where the application and the operating system are one executable it is
quite common to use compiler provided defines in assembly code.
For example:
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=newlib/libc/machine/arm/memcpy-armv7a.S;h=cd7962e075a30cb90ec073d77b177c3536429b9b;hb=HEAD
For a software development kit, the run-time libraries are built for a
set of multilibs. Each assembler file may use multilib specific compiler
defines, e.g. floating point unit present or not, errata XYZ present or
not, etc.
We can drop the define if necessary, but we would like to keep the two
flags. Would that be OK to apply?
--
Daniel Cederman
Cobham Gaisler