aboutsummaryrefslogtreecommitdiff
path: root/gold/configure.ac
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2019-12-13 15:19:17 +0000
committerNick Alcock <nick.alcock@oracle.com>2020-06-26 15:56:39 +0100
commite755667f94f2579056fb5210eed525dafebb96f3 (patch)
tree7d4024539b52d471f42cf6f3d9f61d72197043fa /gold/configure.ac
parent866706584c6622bd7f9f595c307422771ce1d564 (diff)
downloadgdb-e755667f94f2579056fb5210eed525dafebb96f3.zip
gdb-e755667f94f2579056fb5210eed525dafebb96f3.tar.gz
gdb-e755667f94f2579056fb5210eed525dafebb96f3.tar.bz2
libctf, elfcpp, gold: do not assume that <byteswap.h> contains bswap_*
At least one C library (uclibc-ng) defines some of these only when the compiler is GCC. We might as well test for all three cases and handle any of them being missing. Very similar code exists in libctf and split between elfcpp and gold: fix both. (Also sync up elfcpp with a change made to libctf swap.h a few months ago: since there is no out-of-line definition of the bswap replacements, they should be declared static inline, not just inline, to prevent the linker generating out-of-line references to them.) PR libctf/25120 libctf/ * configure.ac: Check for bswap_16, bswap_32, and bswap_64 decls. * swap.h (bswap_16): Do not assume that presence of <byteswap.h> means this is declared. (bswap_32): Likewise. (bswap_64): Likewise. (bswap_identity_64): Remove, unused. * configure: Regenerated. * config.h.in: Likewise. gold/ * configure.ac: Check for bswap_16, bswap_32, and bswap_64 decls. * configure: Regenerated. * config.h.in: Likewise. elfcpp/ * elfcpp_swap.h (bswap_16): Do not assume that presence of <byteswap.h> means this is declared. Make static inline, matching recent change to libctf, since there is no non-inline definition of these functions. (bswap_32): Likewise. (bswap_64): Likewise.
Diffstat (limited to 'gold/configure.ac')
-rw-r--r--gold/configure.ac3
1 files changed, 3 insertions, 0 deletions
diff --git a/gold/configure.ac b/gold/configure.ac
index c4c93a0..eca4f01 100644
--- a/gold/configure.ac
+++ b/gold/configure.ac
@@ -602,6 +602,9 @@ AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
AC_CHECK_HEADERS(byteswap.h)
+dnl Check for bswap_{16,32,64}
+AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64], [], [], [[#include <byteswap.h>]])
+
dnl When plugins enabled dynamic loader interface is required. Check headers
dnl which may provide this interface. Add the necessary library to link.
AC_CHECK_HEADERS(windows.h)