Review Request: 8005855: build-infra: Remove -R flag when cross compiling

David Holmes david.holmes at oracle.com
Tue Jan 22 11:09:15 UTC 2013


Okay. I can't attest to the accuracy of the sed command but I agree with 
the intent :) Though I'm not sure there still exists any place where we 
use X_LIBS if cross-compiling.

Thanks,
David

On 22/01/2013 8:18 PM, Erik Joelsson wrote:
> New webrev for this:
>
> http://cr.openjdk.java.net/~erikj/8005855/webrev.root.02/
>
> I changed the sed to only remove the -R argument and made it conditional
> on cross compilation.
>
> A bit of background on this. The X_LIBS variable is created by autoconf
> by calling some special macros to locate libraries needed for X11. On
> some systems nothing extra is needed and X_LIBS is left empty, but on
> some, extra -L arguments are needed. Autoconf then also adds -R to put
> these extra paths in the runtime search path for the built
> library/executable.
>
> In the case where we cross compile, the extra -R paths are unwanted
> however. On the build host, autoconf will typically find them in
> something like /path/to/cross-toolkit/lib. This directory is unlikely to
> exist on the target host. The extra rpath entry in the built binary is
> usually harmless, but also not correct. The main point though is that it
> wasn't there in the old build and that's why we are trying to remove it
> in the new.
>
> /Erik
>
> On 2013-01-09 14:14, Erik Joelsson wrote:
>> 8003958 fixes this for sizer generation yes, but there is also one
>> library in CompileNativeLibraries that has X_LIBS on the link line.
>> But I suppose we shouldn't fix it unless there is a problem with it.
>>
>> /Erik
>>
>> On 2013-01-09 03:56, David Holmes wrote:
>>> On 9/01/2013 5:56 AM, Kelly O'Hair wrote:
>>>> I need more info on this, what is X_LIBS for, and why remove ALL -R
>>>> options.
>>>
>>> IIRC Fredrik added this to deal with some binary difference detected
>>> on OSX. I don't know what these variables actually contain
>>>
>>>> I always considered the -R options to be LD options, not library
>>>> specifications really.
>>>> The -L and -l options are library specifications, but -R is just a
>>>> path that gets baked into the .so
>>>> for runtime access to the libraries, the paths don't have to exist
>>>> at build time.
>>>
>>> The paths that get baked in at build time may not exist at runtime.
>>>
>>> Also for cross-compilation the -R option is not recognized - which is
>>> what
>>>
>>> https://jbs.oracle.com/bugs/browse/JDK-8003958
>>>
>>> build-infra: Cross-compilation of sizers utility has been broken
>>>
>>> is all about. So these two bugs seems to be overlapping somewhat -
>>> but the real fix is 8003958.
>>>
>>> David
>>> -----
>>>
>>>> -kto
>>>>
>>>> On Jan 8, 2013, at 5:35 AM, Erik Joelsson wrote:
>>>>
>>>>> Filter away -R flags from X_LIBS variable in configure.
>>>>>
>>>>> http://cr.openjdk.java.net/~erikj/8005855/webrev.root.01/
>>>>



More information about the build-dev mailing list