Skip to content

Commit ad106d5

Browse files
libbacktrace: don't run --build-id tests if it is not supported
PR libbacktrace/108297 * configure.ac: Test whether linker supports --build-id. * Makefile.am: Only run --build-id tests if supported. * configure, Makefile.in: Regenerate.
1 parent da7eff2 commit ad106d5

File tree

4 files changed

+78
-21
lines changed

4 files changed

+78
-21
lines changed

Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ check_DATA += allocfail.dSYM
249249
endif USE_DSYMUTIL
250250

251251
if HAVE_ELF
252+
if HAVE_BUILDID
252253
if HAVE_OBJCOPY_DEBUGLINK
253254

254255
b2test_SOURCES = $(btest_SOURCES)
@@ -272,6 +273,7 @@ MAKETESTS += b3test_dwz_buildid
272273
endif HAVE_DWZ
273274

274275
endif HAVE_OBJCOPY_DEBUGLINK
276+
endif HAVE_BUILDID
275277
endif HAVE_ELF
276278

277279
btest_SOURCES = btest.c testlib.c

Makefile.in

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,10 @@ TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_16)
134134
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ btest.dSYM btest_alloc.dSYM \
135135
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ stest.dSYM stest_alloc.dSYM \
136136
@NATIVE_TRUE@@USE_DSYMUTIL_TRUE@ edtest.dSYM edtest_alloc.dSYM
137-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_6 = b2test
138-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_7 = b2test_buildid
139-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_8 = b3test
140-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_9 = b3test_dwz_buildid
137+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_6 = b2test
138+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_7 = b2test_buildid
139+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_8 = b3test
140+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_9 = b3test_dwz_buildid
141141
@HAVE_ELF_TRUE@@NATIVE_TRUE@am__append_10 = btest_lto
142142
@NATIVE_TRUE@am__append_11 = btest_alloc stest stest_alloc
143143
@HAVE_DWZ_TRUE@@NATIVE_TRUE@am__append_12 = btest_dwz
@@ -249,8 +249,8 @@ libbacktrace_noformat_la_OBJECTS = \
249249
$(am_libbacktrace_noformat_la_OBJECTS)
250250
@NATIVE_TRUE@am_libbacktrace_noformat_la_rpath =
251251
@NATIVE_TRUE@am__EXEEXT_1 = allocfail$(EXEEXT)
252-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT)
253-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT)
252+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT)
253+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT)
254254
@NATIVE_TRUE@am__EXEEXT_4 = test_elf_32$(EXEEXT) test_elf_64$(EXEEXT) \
255255
@NATIVE_TRUE@ test_macho$(EXEEXT) test_xcoff_32$(EXEEXT) \
256256
@NATIVE_TRUE@ test_xcoff_64$(EXEEXT) test_pecoff$(EXEEXT) \
@@ -290,17 +290,17 @@ allocfail_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
290290
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
291291
@NATIVE_TRUE@am__objects_2 = b2test-btest.$(OBJEXT) \
292292
@NATIVE_TRUE@ b2test-testlib.$(OBJEXT)
293-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b2test_OBJECTS = $(am__objects_2)
293+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b2test_OBJECTS = $(am__objects_2)
294294
b2test_OBJECTS = $(am_b2test_OBJECTS)
295-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_DEPENDENCIES = libbacktrace_elf_for_test.la
295+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_DEPENDENCIES = libbacktrace_elf_for_test.la
296296
b2test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
297297
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(b2test_CFLAGS) $(CFLAGS) \
298298
$(b2test_LDFLAGS) $(LDFLAGS) -o $@
299299
@NATIVE_TRUE@am__objects_3 = b3test-btest.$(OBJEXT) \
300300
@NATIVE_TRUE@ b3test-testlib.$(OBJEXT)
301-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b3test_OBJECTS = $(am__objects_3)
301+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am_b3test_OBJECTS = $(am__objects_3)
302302
b3test_OBJECTS = $(am_b3test_OBJECTS)
303-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_DEPENDENCIES = libbacktrace_elf_for_test.la
303+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_DEPENDENCIES = libbacktrace_elf_for_test.la
304304
b3test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
305305
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(b3test_CFLAGS) $(CFLAGS) \
306306
$(b3test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1092,14 +1092,14 @@ libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
10921092
@NATIVE_TRUE@allocfail_SOURCES = allocfail.c testlib.c
10931093
@NATIVE_TRUE@allocfail_CFLAGS = $(libbacktrace_TEST_CFLAGS)
10941094
@NATIVE_TRUE@allocfail_LDADD = libbacktrace_instrumented_alloc.la
1095-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_SOURCES = $(btest_SOURCES)
1096-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
1097-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDFLAGS = -Wl,--build-id
1098-
@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDADD = libbacktrace_elf_for_test.la
1099-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_SOURCES = $(btest_SOURCES)
1100-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
1101-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDFLAGS = -Wl,--build-id
1102-
@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDADD = libbacktrace_elf_for_test.la
1095+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_SOURCES = $(btest_SOURCES)
1096+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
1097+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDFLAGS = -Wl,--build-id
1098+
@HAVE_BUILDID_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b2test_LDADD = libbacktrace_elf_for_test.la
1099+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_SOURCES = $(btest_SOURCES)
1100+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
1101+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDFLAGS = -Wl,--build-id
1102+
@HAVE_BUILDID_TRUE@@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@b3test_LDADD = libbacktrace_elf_for_test.la
11031103
@NATIVE_TRUE@btest_SOURCES = btest.c testlib.c
11041104
@NATIVE_TRUE@btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
11051105
@NATIVE_TRUE@btest_LDADD = libbacktrace.la

configure

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,8 @@ HAVE_ZSTD_FALSE
657657
HAVE_ZSTD_TRUE
658658
HAVE_COMPRESSED_DEBUG_FALSE
659659
HAVE_COMPRESSED_DEBUG_TRUE
660+
HAVE_BUILDID_FALSE
661+
HAVE_BUILDID_TRUE
660662
HAVE_ZLIB_FALSE
661663
HAVE_ZLIB_TRUE
662664
HAVE_DWARF5_FALSE
@@ -11276,7 +11278,7 @@ else
1127611278
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1127711279
lt_status=$lt_dlunknown
1127811280
cat > conftest.$ac_ext <<_LT_EOF
11279-
#line 11279 "configure"
11281+
#line 11281 "configure"
1128011282
#include "confdefs.h"
1128111283
1128211284
#if HAVE_DLFCN_H
@@ -11382,7 +11384,7 @@ else
1138211384
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1138311385
lt_status=$lt_dlunknown
1138411386
cat > conftest.$ac_ext <<_LT_EOF
11385-
#line 11385 "configure"
11387+
#line 11387 "configure"
1138611388
#include "confdefs.h"
1138711389
1138811390
#if HAVE_DLFCN_H
@@ -12774,6 +12776,44 @@ else
1277412776
fi
1277512777
1277612778
12779+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --build-id is supported" >&5
12780+
$as_echo_n "checking whether --build-id is supported... " >&6; }
12781+
if ${libbacktrace_cv_ld_buildid+:} false; then :
12782+
$as_echo_n "(cached) " >&6
12783+
else
12784+
LDFLAGS_hold=$LDFLAGS
12785+
LDFLAGS="$LDFLAGS -Wl,--build-id"
12786+
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12787+
/* end confdefs.h. */
12788+
12789+
int
12790+
main ()
12791+
{
12792+
12793+
;
12794+
return 0;
12795+
}
12796+
_ACEOF
12797+
if ac_fn_c_try_link "$LINENO"; then :
12798+
libbacktrace_cv_ld_buildid=yes
12799+
else
12800+
libbacktrace_cv_ld_buildid=no
12801+
fi
12802+
rm -f core conftest.err conftest.$ac_objext \
12803+
conftest$ac_exeext conftest.$ac_ext
12804+
LDFLAGS=$LDFLAGS_hold
12805+
fi
12806+
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_ld_buildid" >&5
12807+
$as_echo "$libbacktrace_cv_ld_buildid" >&6; }
12808+
if test "$libbacktrace_cv_ld_buildid" = yes; then
12809+
HAVE_BUILDID_TRUE=
12810+
HAVE_BUILDID_FALSE='#'
12811+
else
12812+
HAVE_BUILDID_TRUE='#'
12813+
HAVE_BUILDID_FALSE=
12814+
fi
12815+
12816+
1277712817
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --compress-debug-sections is supported" >&5
1277812818
$as_echo_n "checking whether --compress-debug-sections is supported... " >&6; }
1277912819
if ${libgo_cv_ld_compress+:} false; then :
@@ -13443,6 +13483,10 @@ if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then
1344313483
as_fn_error $? "conditional \"HAVE_ZLIB\" was never defined.
1344413484
Usually this means the macro was only invoked conditionally." "$LINENO" 5
1344513485
fi
13486+
if test -z "${HAVE_BUILDID_TRUE}" && test -z "${HAVE_BUILDID_FALSE}"; then
13487+
as_fn_error $? "conditional \"HAVE_BUILDID\" was never defined.
13488+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
13489+
fi
1344613490
if test -z "${HAVE_COMPRESSED_DEBUG_TRUE}" && test -z "${HAVE_COMPRESSED_DEBUG_FALSE}"; then
1344713491
as_fn_error $? "conditional \"HAVE_COMPRESSED_DEBUG\" was never defined.
1344813492
Usually this means the macro was only invoked conditionally." "$LINENO" 5

configure.ac

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,18 @@ AC_CHECK_LIB([z], [compress],
481481
[AC_DEFINE(HAVE_ZLIB, 1, [Define if -lz is available.])])
482482
AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_lib_z_compress" = yes)
483483

484-
dnl Test whether the linker supports the --compress_debug_sections option.
484+
dnl Test whether the linker supports the --build-id option.
485+
AC_CACHE_CHECK([whether --build-id is supported],
486+
[libbacktrace_cv_ld_buildid],
487+
[LDFLAGS_hold=$LDFLAGS
488+
LDFLAGS="$LDFLAGS -Wl,--build-id"
489+
AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
490+
[libbacktrace_cv_ld_buildid=yes],
491+
[libbacktrace_cv_ld_buildid=no])
492+
LDFLAGS=$LDFLAGS_hold])
493+
AM_CONDITIONAL(HAVE_BUILDID, test "$libbacktrace_cv_ld_buildid" = yes)
494+
495+
dnl Test whether the linker supports the --compress-debug-sections option.
485496
AC_CACHE_CHECK([whether --compress-debug-sections is supported],
486497
[libgo_cv_ld_compress],
487498
[LDFLAGS_hold=$LDFLAGS

0 commit comments

Comments
 (0)