about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-01-17 15:21:25 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-04-17 16:12:41 -0300
commit2cebb84d7e5858ac3f0c987a4e73e12f0bd406d8 (patch)
tree05acd12140aa40b348571a30965876fadb21646e
parent1b803c315f36042a3e6191692eca40800210aa16 (diff)
downloadglibc-2cebb84d7e5858ac3f0c987a4e73e12f0bd406d8.tar.gz
glibc-2cebb84d7e5858ac3f0c987a4e73e12f0bd406d8.tar.xz
glibc-2cebb84d7e5858ac3f0c987a4e73e12f0bd406d8.zip
elf: Fix tests that require interposable symbols
clang defaults to -fsemantic-interposition, which in turn trigger some
optimizations (like inline) that makes some tests that rely on ELF
symbol interposition to fail.  For this case, explicit set the symbol as
weak to avoid it.
-rw-r--r--elf/tst-dlclose-lazy-mod2.c1
-rw-r--r--elf/tst-piemod1.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/elf/tst-dlclose-lazy-mod2.c b/elf/tst-dlclose-lazy-mod2.c
index d1ae34330c..544803ca3e 100644
--- a/elf/tst-dlclose-lazy-mod2.c
+++ b/elf/tst-dlclose-lazy-mod2.c
@@ -20,6 +20,7 @@
 #include <stdlib.h>
 
 void
+__attribute__ ((weak))
 exported_function (int ignored)
 {
   /* This function is interposed from tst-dlclose-lazy-mod1.so and
diff --git a/elf/tst-piemod1.c b/elf/tst-piemod1.c
index 72d7e0a187..225c057ea3 100644
--- a/elf/tst-piemod1.c
+++ b/elf/tst-piemod1.c
@@ -1,6 +1,7 @@
 #include <stdio.h>
 
 int
+__attribute__((weak))
 foo (void)
 {
   return 21;