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

Erik Joelsson erik.joelsson at oracle.com
Thu Oct 30 13:32:48 UTC 2014

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.

> 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