RFR: 8251365: Build failure on AIX after 8250636

David Holmes david.holmes at oracle.com
Mon Aug 17 02:15:42 UTC 2020


Hi Peter,

On 14/08/2020 4:49 am, Peter Tribble wrote:
> On Mon, Aug 10, 2020 at 9:27 PM Dmitry Cherepanov <dcherepanov at azul.com>
> wrote:
> 
>> Please review the fix for build failure on AIX. With this change,
>> "tm_gmtoff" is used only if _ALLBSD_SOURCE or _GNU_SOURCE is set. In the
>> case of AIX, we'll continue to use "timezone".
>>
>> I'll start jdk-submit testing for this change shortly, unfortunately I do
>> not have an AIX machine at hand and would appreciate if someone (with
>> access to AIX) could verify that the change fixes AIX build . Thanks in
>> advance.
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8251365
>> Webrev: http://cr.openjdk.java.net/~dcherepanov/8251365/webrev.v1/
>>
> 
> Apologies for butting in at this late stage, but this doesn't look quite
> right.
> 
> It still breaks on illumos/Solaris (not supported, but I'm continuing with
> an external gcc-based port).
> 
> The reason is that guarding with _GNU_SOURCE isn't the correct
> discriminant. I think this
> is set up in this block of make/autoconf/flags-cflags.m4
> 
>    #### TOOLCHAIN DEFINES
> 
>    if test "x$TOOLCHAIN_TYPE" = xgcc; then
>      ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT"
>      ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
>    elif test "x$TOOLCHAIN_TYPE" = xclang; then
>      ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
>    elif test "x$TOOLCHAIN_TYPE" = xxlc; then
>      ALWAYS_DEFINES_JVM="-D_REENTRANT"
>      ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE
> -DSTDC"
>    elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
>      ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE \
>          -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
>      ALWAYS_DEFINES_JVM="-DNOMINMAX -DWIN32_LEAN_AND_MEAN"
>    fi
> 
> In other words, you get _GNU_SOURCE defined if you're using gcc or clang;
> the fix
> works on AIX by accident, as a side-effect of using the xlc toolchain there.
> 
> I'll work out a way of patching it for my own work, but it may be worth
> looking at a proper fix.

So IIUC tm_gmtoff is a GNU libc extension, so we should be checking for 
__GLIBC__ rather than _GNU_SOURCE (for non-BSD).

David
-----

> 
> Thanks,
> 


More information about the hotspot-runtime-dev mailing list