PING: [8u112] Request for review & approval for CR8151841: Build needs additional flags to compile with GCC 6
Seán Coffey
sean.coffey at oracle.com
Tue Aug 2 11:21:18 UTC 2016
Andrew,
there are some non-OpenJDK related changes that I need to make at time
of this push. Is it OK if I push this patch to jdk8u-dev for you ?
Approved for jdk8u-dev.
Regards,
Sean.
On 02/08/2016 11:11, Seán Coffey wrote:
>
> I'm seeing this patch fail across all platforms on internal builds.
> Please hold off any push for now. Maybe other config changes are
> needed on our build systems.
>
> e.g.
>
>> /opt/jprt/products/P1/SS12u1/SS12u1/prod/bin/CC \
>> -m64 -G -KPIC \
>> -I/opt/jprt/T/P1/094712.scoffey/s/hotspot/agent/src/os/solaris/proc \
>> -I../generated \
>> -I/opt/jprt/products/P1/jdk7u7-latest/jdk1.7.0_07/include \
>> -I/opt/jprt/products/P1/jdk7u7-latest/jdk1.7.0_07/include/solaris \
>> \
>> /opt/jprt/T/P1/094712.scoffey/s/hotspot/agent/src/os/solaris/proc/saproc.cpp \
>> sadis.o \
>> -M /opt/jprt/T/P1/094712.scoffey/s/hotspot/agent/src/os/solaris/proc/mapfile -mt -xnolib -norunpath \
>> -o libsaproc.so \
>> -ldl -ldemangle -lthread -lc
>> ld: fatal: file @NO_DELETE_NULL_POINTER_CHECKS_CFLAG@: open failed: No such file or directory
>> ld: fatal: file @NO_LIFETIME_DSE_CFLAG@: open failed: No such file or directory
>> ld: fatal: file @CXXSTD_CXXFLAG@: open failed: No such file or directory
>> ld: fatal: file processing errors. No output written to libgenerateJvmOffsets.so
>> gmake[6]: *** [libgenerateJvmOffsets.so] Error 1
>> gmake[6]: *** Waiting for unfinished jobs....
>> gmake[6]: Leaving directory `/opt/jprt/T/P1/094712.scoffey/s/build/solaris-x86_64-normal-server-release/hotspot/solaris_amd64_compiler2/product'
>> gmake[5]: *** [the_vm] Error 2
>
> Regards,
> Sean.
> On 01/08/2016 12:34, Erik Joelsson wrote:
>> Looks good now, thanks!
>>
>> Sorry for not answering earlier. I just got back from vacation.
>>
>> /Erik
>>
>> On 2016-07-15 17:22, Andrew Hughes wrote:
>>> Ping?
>>>
>>> ----- Original Message -----
>>>> ----- Original Message -----
>>>>> Hello,
>>>>>
>>>>> It looks like TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS is always
>>>>> returning
>>>>> yes and TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS still does both the C
>>>>> and
>>>>> C++ checks.
>>>>>
>>>> Ugh, merged a block in the wrong place by the looks of it.
>>>>
>>>> Fixed in http://cr.openjdk.java.net/~andrew/8u/8151841/webrev.02/
>>>>
>>>> configure:29739: checking if the C++ compiler supports "-std=gnu++98 "
>>>> configure:29755: /usr/bin/g++ -c -std=gnu++98 conftest.cpp >&5
>>>> configure:29755: $? = 0
>>>> configure:29769: result: yes
>>>> configure:29815: checking if the C compiler supports
>>>> "-fno-delete-null-pointer-checks -Werror"
>>>> configure:29832: /usr/bin/gcc -c -fno-delete-null-pointer-checks
>>>> -Werror
>>>> conftest.c >&5
>>>> configure:29832: $? = 0
>>>> configure:29846: result: yes
>>>> configure:29855: checking if the C++ compiler supports
>>>> "-fno-delete-null-pointer-checks -Werror"
>>>> configure:29871: /usr/bin/g++ -c -fno-delete-null-pointer-checks
>>>> -Werror
>>>> conftest.cpp >&5
>>>> configure:29871: $? = 0
>>>> configure:29885: result: yes
>>>> configure:29894: checking if both compilers support
>>>> "-fno-delete-null-pointer-checks -Werror"
>>>> configure:29899: result: yes
>>>> configure:29911: checking if the C compiler supports
>>>> "-fno-lifetime-dse
>>>> -Werror"
>>>> configure:29927: /usr/bin/gcc -c -fno-lifetime-dse -Werror
>>>> conftest.c >&5
>>>> configure:29927: $? = 0
>>>> configure:29941: result: yes
>>>> configure:29950: checking if the C++ compiler supports
>>>> "-fno-lifetime-dse
>>>> -Werror"
>>>> configure:29966: /usr/bin/g++ -c -fno-lifetime-dse -Werror
>>>> conftest.cpp >&5
>>>> configure:29966: $? = 0
>>>> configure:29980: result: yes
>>>> configure:29989: checking if both compilers support "-fno-lifetime-dse
>>>> -Werror"
>>>> configure:29994: result: yes
>>>>
>>>>
>>>>> /Erik
>>>>>
>>>>> On 2016-07-07 22:21, Andrew Hughes wrote:
>>>>>> Webrev: http://cr.openjdk.java.net/~andrew/8u/8151841/webrev.01/
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8151841
>>>>>>
>>>>>> This is a backport of the original fix to support building OpenJDK
>>>>>> with GCC 6. It was necessary to cherry-pick parts of a number of
>>>>>> earlier fixes to make this work with the build system in 8:
>>>>>>
>>>>>> 8149647: Incremental enhancements from build-infra
>>>>>> 8032045: Enable compiler and linker safety switches for debug builds
>>>>>>
>>>>>> and so I'm requesting a review of the 8 version of the patch here
>>>>>> as well
>>>>>> as approval for 8u.
>>>>>>
>>>>>> In brief, the patch makes OpenJDK build with GCC 6 by explicitly
>>>>>> specifying
>>>>>> the C++ standard to use (-std=gnu++98) and disabling two
>>>>>> optimisations
>>>>>> with
>>>>>> -fno-lifetime-dse and -fno-delete-null-pointer-checks. Further
>>>>>> information
>>>>>> on the changes is available in the GCC 6 release notes [0]. GCC 6
>>>>>> uses
>>>>>> a newer C++ standard, C++14, with which the OpenJDK codebase is
>>>>>> not yet
>>>>>> compliant. The simplest way to fix this, especially for existing
>>>>>> releases,
>>>>>> is to explicitly request the previous default, gnu++98. The deletion
>>>>>> of null pointer checks and more aggressive lifetime dead store
>>>>>> elimination
>>>>>> in 6 lead to a crashing virtual machine being built, so we
>>>>>> disable them
>>>>>> if GCC >= 6 is used.
>>>>>>
>>>>>> To make the original patch work with 8u, a number of changes from
>>>>>> other
>>>>>> fixes had to also be brought over:
>>>>>>
>>>>>> * We need to check we are using GCC 6 or above, so we need to bring
>>>>>> over the TOOLCHAIN_CHECK_COMPILER_VERSION and
>>>>>> TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS macros from 8149647.
>>>>>> TOOLCHAIN_CHECK_COMPILER_VERSION is converted back to a traditional
>>>>>> numbered rather than named argument macro so we don't need to
>>>>>> backport
>>>>>> BASIC_DEFUN_NAMED.
>>>>>> * We bring over the introduction of COMMON_CCXXFLAGS_JDK from
>>>>>> 8030245
>>>>>> as we need to apply the -std option only to the C++ compiler, not
>>>>>> the
>>>>>> C compiler. If passed to the C compiler, it will produce a warning,
>>>>>> and this is converted to an error at one point in the build
>>>>>> (a -Werror in libsctp).
>>>>>>
>>>>>> Generally, we've kept things in toolchain.m4 (8034788 introduced
>>>>>> flags.m4,
>>>>>> separating out some code, and so many of these changes are in
>>>>>> that file
>>>>>> in 9) and avoid named argument macros. Otherwise, it's largely the
>>>>>> same as the 9 version. We have adopted the longer name for
>>>>>> the -fno-delete-null-pointer-checks flag variable as suggested in
>>>>>> the
>>>>>> review of the update to this patch for the new HotSpot build [1].
>>>>>>
>>>>>> [0] https://gcc.gnu.org/gcc-6/porting_to.html
>>>>>> [1]
>>>>>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2016-July/023840.html
>>>>>>
>>>>>
>>>> --
>>>> Andrew :)
>>>>
>>>> Senior Free Java Software Engineer
>>>> Red Hat, Inc. (http://www.redhat.com)
>>>>
>>>> PGP Key: ed25519/35964222 (hkp://keys.gnupg.net)
>>>> Fingerprint = 5132 579D D154 0ED2 3E04 C5A0 CFDA 0F9B 3596 4222
>>>>
>>>>
>>>>
>>
>
More information about the jdk8u-dev
mailing list