RFR: 8295795: hsdis does not build with binutils 2.39+ [v3]

Robbin Ehn rehn at openjdk.org
Fri Sep 22 06:55:16 UTC 2023


On Fri, 22 Sep 2023 06:46:46 GMT, Robbin Ehn <rehn at openjdk.org> wrote:

>> 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.

It may be possible to read some elf header about binutils version.
I.e. do make install from our build system, then reading out version from elf section and pass that into our build.
As we need to know the signature of init_disassemble_info() which is different between binutils versions.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15138#discussion_r1333953817


More information about the build-dev mailing list