[oe] Blackfin toolchain question

Phil Blundell philb at gnu.org
Thu Nov 12 11:52:52 UTC 2009


On Wed, 2009-11-11 at 22:27 +0000, Dmitry Eremin-Solenikov wrote:
> I'm currently trying to restore/update blackfin toolchain. One of the major problems I've stumbled upon
> are versioned scripts/export symbols. Basically there are lot's of software starting from g++ itself
> that have symbol versioning scripts. The problem is that blackfin arch prepends all symbols with underscore,
> thus breaking all that scripts.
> 
> My first intention was to follow the alsa-libs approach: handle all prefixing on package-per-package basis.
> However that would be a nigtmare.
> 
> My current intention (that at least partially works) is to make libtool (when it's used) generate correct
> versioning scripts and resort to package-per-package updating after that.
> 
> The problem comes from C++ world, where versioning script can contain unmangled name, but it's demangled
> name that should be prefixed with underscore.
> 
> So I have a bit hackish idea: maybe it's better to hack ld to accept scripts w/o underscores and prefix all
> symbols with it? This will eliminate most of changes. The question is if this patch is acceptable for OE?
> Does this approach sound too hackish?

How do other Blackfin folks deal with this issue?  It doesn't sound like
there is anything OE-specific about the problem you are facing, and I
would have thought that it is something that should be solved upstream
rather than with a local hack in OE.

Linker version scripts operate on symbol names, not on function names,
so I don't think that having the underscores automatically added here
would be appropriate.  

It is a little bit unfortunate that the Blackfin folks have decided to
put these underscores in their symbols.  The ELF gABI calls for symbol
names to be the same as C function names (i.e. no prefix) and, although
I guess the psABI is permitted to countermand that, the vast majority of
architectures do follow the gABI convention.  Underscore-prefixed symbol
names are fairly common in the a.out and COFF worlds but of course there
are no version scripts there so this issue does not arise.

p.






More information about the Openembedded-devel mailing list