RFR: JDK-8062521: 9-dev glinux/elinux "configure: error: Could not find all X11 headers" since 2014-10-28

Alejandro E Murillo alejandro.murillo at oracle.com
Thu Oct 30 16:38:50 UTC 2014

On 10/30/2014 7:32 AM, Erik Joelsson wrote:
> On 2014-10-30 13:52, David Holmes wrote:
>> On 30/10/2014 10:42 PM, Erik Joelsson wrote:
>>> I think it would fail in JPRT too, I never ran JPRT with JDK-8062159
>>> unfortunately. I assume very few people run jdk9-dev in JPRT with
>>> embedded platforms.
>> All hotspot integrations are doing it. You need "-testset hotspot" on 
>> the jprt submit. It just occurred to me that you wouldn't likely have 
>> been aware of that. But all configure related changes must be tested 
>> against all builds.
> Yes, I figured that out and tested this fix with it, so now I know. 
> That's also what I meant by very few jdk9/dev jobs are running with 
> -testset hotspot. The hotspot repos do it all the time, but 
> JDK-8062159 hasn't gotten that far yet.
Hi Erik,
you are right, the hotspot snapshot job would have caught that,
as it merges jdk9/hs with jdk9/dev.
BTW, I'm planning to start the snapshot of jdk9/hs for jdk9/dev tonight
or early tomorrow morning. Doesn't look like you have pushed the fix,
Can you push the fix by the end of the day today?

> /Erik
>> David
>>> /Erik
>>> On 2014-10-30 13:31, David Holmes wrote:
>>>> Hi Erik,
>>>> Seems reasonable. Did this not fail when run through JPRT? Is it
>>>> something shell specific?
>>>> David
>>>> On 30/10/2014 9:40 PM, Erik Joelsson wrote:
>>>>> Hello,
>>>>> In my fix for "JDK-8062159 Fix Xrender check to work with sysroot", I
>>>>> added $SYSROOT_CFLAGS to the CFLAGS used when looking for X11 
>>>>> headers.
>>>>> Unfortunately, this didn't work with at least one of the cross 
>>>>> compile
>>>>> kits we use. The reason for the failure is in the definition of
>>>>> SYSROOT_CFLAGS="--sysroot=\"$SYSROOT\""
>>>>> It adds explicit extra quotes around the value. These quotes seem 
>>>>> to not
>>>>> be a problem when the variable is used in a recipe in make, but 
>>>>> when the
>>>>> variable is used directly in the shell from configure, the extra 
>>>>> quotes
>>>>> become part of the argument to gcc. Gcc will fail resolving the 
>>>>> path and
>>>>> the test for X11 headers fails.
>>>>> I see no reason for having these quotes other than if we expected 
>>>>> spaces
>>>>> in the path to the sysroot, which I sure hope we aren't, as we do not
>>>>> employ any such protection for any other paths that I know of. The 
>>>>> fix
>>>>> is then simply to remove the extra quotes when using gcc. I chose 
>>>>> not to
>>>>> change the other defintions of the variable as they seem to be 
>>>>> working.
>>>>> Bug: 
>>>>> https://bugs.openjdk.java.net/browse/JDK-8062521#comment-13570672
>>>>> Patch:
>>>>> diff -r ce3b04a39f79 common/autoconf/flags.m4
>>>>> --- a/common/autoconf/flags.m4
>>>>> +++ b/common/autoconf/flags.m4
>>>>> @@ -136,8 +136,8 @@
>>>>>         SYSROOT_CFLAGS="-isysroot \"$SYSROOT\"
>>>>> -iframework\"$SYSROOT/System/Library/Frameworks\""
>>>>>       elif test "x$TOOLCHAIN_TYPE" = xgcc; then
>>>>> -      SYSROOT_CFLAGS="--sysroot=\"$SYSROOT\""
>>>>> -      SYSROOT_LDFLAGS="--sysroot=\"$SYSROOT\""
>>>>> +      SYSROOT_CFLAGS="--sysroot=$SYSROOT"
>>>>> +      SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
>>>>>       elif test "x$TOOLCHAIN_TYPE" = xclang; then
>>>>>         SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
>>>>>         SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
>>>>> /Erik


More information about the build-dev mailing list