RFR: 8295795: hsdis does not build with binutils 2.39+ [v3]
Robbin Ehn
rehn at openjdk.org
Fri Sep 22 06:50:13 UTC 2023
On Thu, 21 Sep 2023 14:45:52 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
>> Robbin Ehn has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Reverted bad change
>
> make/autoconf/lib-hsdis.m4 line 245:
>
>> 243: HSDIS_CFLAGS="-DLIBARCH_$OPENJDK_TARGET_CPU_LEGACY_LIB"
>> 244: elif test "x$BINUTILS_DIR" != x; then
>> 245: if test -e $BINUTILS_DIR/bfd/.libs/libbfd.a && \
>
> The use of `.libs` here looks a bit scary. I have not looked in detail at the binutils build system, but it sounds like a temporary/internal file. What is the rationale?
We never do 'make install' , so we are using the internal placement of files already.
Make install do not install some of the dependency we have (some h-files we use are not part of binutils installation, e.g. bfdver.h).
So we are stuck between hard place and a rock, we can't use the installed binutils file-tree, so we must keep using the internal build layout.
> make/autoconf/lib-hsdis.m4 line 259:
>
>> 257: # If we have libsframe add it.
>> 258: if test -e $BINUTILS_DIR/libsframe/.libs/libsframe.a; then
>> 259: HSDIS_LIBS="$BINUTILS_DIR/bfd/.libs/libbfd.a $BINUTILS_DIR/opcodes/libopcodes.a $BINUTILS_DIR/libiberty/libiberty.a $BINUTILS_DIR/zlib/libz.a $BINUTILS_DIR/libsframe/.libs/libsframe.a"
>
> Suggestion:
>
> HSDIS_LIBS="$HSDIS_LIBS $BINUTILS_DIR/libsframe/.libs/libsframe.a"
>
>
> ...with the same caveat as above -- why use '.libs'?
Same answer, that is the layout of the build-tree and that is what we are using,
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15138#discussion_r1333949968
PR Review Comment: https://git.openjdk.org/jdk/pull/15138#discussion_r1333951160
More information about the build-dev
mailing list