about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2021-09-13 12:39:20 -0700
committerFangrui Song <maskray@google.com>2021-09-13 12:39:20 -0700
commit5f07d47e4b3d137edfbe3ea6c4eeba1ea6cfa54d (patch)
tree9e0b40d482c03388e69acbb4f1028fd1fc0542ca
parent43cea6d5652b6b9e61ac6ecc69419c909b504f47 (diff)
downloadglibc-5f07d47e4b3d137edfbe3ea6c4eeba1ea6cfa54d.tar.gz
glibc-5f07d47e4b3d137edfbe3ea6c4eeba1ea6cfa54d.tar.xz
glibc-5f07d47e4b3d137edfbe3ea6c4eeba1ea6cfa54d.zip
configure: Fix check for INSERT in linker script
GCC/Clang use local access when referencing a const variable,
so the conftest.so may have no dynamic relocation.
LLD reports `error: unable to insert .foo after .rela.dyn` when the
destination section does not exist.

Use a non-const int to ensure that .rela.dyn exists.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
-rwxr-xr-xconfigure2
-rw-r--r--configure.ac2
2 files changed, 2 insertions, 2 deletions
diff --git a/configure b/configure
index 542802ad35..39d75eb4ed 100755
--- a/configure
+++ b/configure
@@ -5793,7 +5793,7 @@ if ${libc_cv_insert+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat > conftest.c <<EOF
-		const int __attribute__ ((section(".bar"))) bar = 0x12345678;
+		int __attribute__ ((section(".bar"))) bar = 0x12345678;
 		int test (void) { return bar; }
 EOF
 		cat > conftest.t <<EOF
diff --git a/configure.ac b/configure.ac
index d9232418de..00f49f09f7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1217,7 +1217,7 @@ AC_SUBST(libc_cv_protected_data)
 AC_CACHE_CHECK(linker support for INSERT in linker script,
 	       libc_cv_insert,
 	       [cat > conftest.c <<EOF
-		const int __attribute__ ((section(".bar"))) bar = 0x12345678;
+		int __attribute__ ((section(".bar"))) bar = 0x12345678;
 		int test (void) { return bar; }
 EOF
 		cat > conftest.t <<EOF