Questions about RedHat/Fedora - ld dynamic linker hash style

Andrew Haley aph at redhat.com
Wed Jan 28 12:34:28 PST 2009


Kelly O'Hair wrote:

> I need some advice or information, figured this alias might be the
> right place to ask, probably lots of gcc/ld experts listing in here. ;^)
> 
> Fedora (RedHat?) seems to have a different default dynamic linker hash
> style,
> I think basically it is:
>    ld --hash-style=gnu ..
> 
> So without using one of:
>   --hash-style=both or --hash-style=sysv
> 
> The bits created won't run on systems that don't support this new hash
> style, like SuSE 10.
> 
> We had planned on changing our formal JDK7 builds to Fedora 9 but
> ran into this problem, making our built bits less portable than we
> would like. We need to resolve this, or change our build system
> choice.
> 
> I'd like to just add one of the options to the link lines in the
> OpenJDK Makefiles, but I suspect I need to be careful to only add
> the option when the Linux system doing the build needs it.
> 
> Anybody have any ideas on how to deal with this?
> I suppose if we had a './configure' step it could be figured out
> there, but alas, we don't.
> 
> Or, can you configure gcc/ld on a system to have a different default
> hash style?

You can do that.

$ gcc -dumpspecs > specfile
$ sed -i 's/hash-style=gnu/hash-style=both/' specfile
$ gcc -specs=specfile hello.c

This will work regardless of whether the gcc you have defaults to
hash-style=gnu.

Andrew.





More information about the porters-dev mailing list