rtems-libbsd: M68K linkcmds Patches Galore
ralf.corsepius at rtems.org
Fri Aug 17 13:46:54 UTC 2012
On 08/17/2012 03:23 PM, Sebastian Huber wrote:
> On 08/17/2012 03:02 PM, Joel Sherrill wrote:
>>> Why do we have CPU specific variants of this? On ARM, PowerPC, etc.
>>> this file
>>> would look like identical.
>> Some targets place a leading underscore in front of symbols. If you
>> have every
>> symbol both with and without an extra _ prepended, then it will be Ok.
>> both _bsd__stop_set_sysinit_set and __bsd__stop_set_sysinit_set would
>> to be defined.
>> This is all the targets I have tools installed for and whether or not
>> they add a
>> leading underscore.
>> arm-rtems4.11 - no leading underscore
>> avr-rtems4.11 - no leading underscore
>> bfin-rtems4.11 - leading underscore
>> h8300-rtems4.11 - leading underscore
>> i386-rtems4.11 - no leading underscore
>> lm32-rtems4.11 - no leading underscore
>> m32c-rtems4.11 - leading underscore
>> m32r-rtems4.11 - no leading underscore
>> m68k-rtems4.11 - no leading underscore
>> microblaze-rtems4.11 - no leading underscore
>> mips-rtems4.11 - no leading underscore
>> powerpc-rtems4.11 - no leading underscore
>> sh-rtems4.11 - leading underscore
>> sparc64-rtems4.11 - no leading underscore
>> sparc-rtems4.11 - no leading underscore
>> v850-rtems4.11 - leading underscore
> With this extra underscore can be dealt in the macros that generate
> these symbols.
> The CPU port should provide a macro like
> #define CPU_LINKER_SYMBOL_NAME(_x) _ ## _x
> #define CPU_LINKER_SYMBOL_NAME(_x) _x
It's already there: cf. cpukit/score/cpu/<cpu>/*.h
Also GCC internally provides some preprocessor defines to help detecting
them. Unfortunately, for historic reasons, there are cases these defines
> Even if we deal with the underscore in the linker command files, then I
> see only two variants and not one for each CPU.
Openly said, I am not sure this currently ongoing effort will be a
success. Several similar attempts in RTEMS history repeatedly had failed.
> Is this underscore a GNU linker feature or defined in the ABI?
It's an ABI feature.
More information about the devel