RFR: JDK-8160926: FLAGS_COMPILER_CHECK_ARGUMENTS doesn't handle cross-compilation
erik.joelsson at oracle.com
Tue Feb 5 17:55:55 UTC 2019
On 2019-02-05 01:12, Magnus Ihse Bursie wrote:
> On 2019-02-05 01:36, Erik Joelsson wrote:
>> Please review this fix for configure flags checking. The macros for
>> checking compiler capabilities were not able to handle cross
>> compilation very well. With this fix, they accept an optional PREFIX
>> argument, instructing them to check the compiler with the given
>> prefix (which is either empty or BUILD_). Using this, I have moved
>> all calls to the macros into BUILD/TARGET specific macro bodies so
>> that we correctly check both the build and target compilers for valid
>> I have verified by running cross compilation configurations of
>> linux-aarch64 using both the same and different versions of GCC for
>> build and target, and compared the output in both configure.log and
>> the spec files. I've also run tier1 (equivalent to submission forest)
>> and a COMPARE_BUILD run on Oracle's main platforms as well.
>> The change unfortunately required adding another prefix type format
>> since our compiler/tool variables use <empty>/BUILD_ as prefix and
>> the existing formats were TARGET_/BUILD_ and <empty>/OPENJDK_TARGET_.
>> I think we could benefit greatly from unifying these.
>> I've also touched some white space nearby my changes as well as fixed
>> a trivial error message about "linker" not being found by quoting the
>> LINKER_NAME assignment in toolchain.m4.
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8160926
>> Webrev: http://cr.openjdk.java.net/~erikj/8160926/webrev.01
> Looks good. Thanks for finally getting this fixed.
> A related problem, that perhaps should be fixed at the same time, is
> that we need to add -Werror to provoke an actual warning message that
> fails. This has been done manually in some (but not all) cases where
> we call FLAGS_COMPILER_CHECK_ARGUMENTS. It might depend on version of
> gcc, or what kind of options we are testing -- I don't remember the
> detail. But I think it would be safe, and prudent, to let
> FLAGS_COMPILER_CHECK_ARGUMENTS automatically add
> $CFLAGS_WARNINGS_ARE_ERRORS to the flag tested. (Assuming that the
> definition of CFLAGS_WARNINGS_ARE_ERRORS is available at the time of
> first call to FLAGS_COMPILER_CHECK_ARGUMENTS, but I think it is, or
> rather, should be.)
I agree and I did react to this, but I don't really have the time to
spend right now so will push this as is for now.
More information about the build-dev