]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
elf: Skip tst-auditlogmod-* if the linker doesn't support --depaudit [BZ #28151]
authorFangrui Song <maskray@google.com>
Tue, 24 Aug 2021 16:35:32 +0000 (09:35 -0700)
committerFangrui Song <maskray@google.com>
Tue, 24 Aug 2021 16:35:32 +0000 (09:35 -0700)
gold and ld.lld do not support --audit or --depaudit.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
configure
configure.ac
elf/Makefile

index 7272fbf6ead0cf8ea3f53a32dca693f6367b3007..61ff26487e0a154b241f4689d207a62581cd1b2f 100755 (executable)
--- a/configure
+++ b/configure
@@ -5969,6 +5969,40 @@ $as_echo "$libc_linker_feature" >&6; }
 config_vars="$config_vars
 have-z-start-stop-gc = $libc_cv_z_start_stop_gc"
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports --depaudit" >&5
+$as_echo_n "checking for linker that supports --depaudit... " >&6; }
+libc_linker_feature=no
+if test x"$gnu_ld" = x"yes"; then
+  libc_linker_check=`$LD -v --help 2>/dev/null | grep "\--depaudit"`
+  if test -n "$libc_linker_check"; then
+    cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+    if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+                               -Wl,--depaudit,x -nostdlib -nostartfiles
+                               -fPIC -shared -o conftest.so conftest.c
+                               1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+    then
+      libc_linker_feature=yes
+    fi
+    rm -f conftest*
+  fi
+fi
+if test $libc_linker_feature = yes; then
+  libc_cv_depaudit=yes
+else
+  libc_cv_depaudit=no
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
+$as_echo "$libc_linker_feature" >&6; }
+config_vars="$config_vars
+have-depaudit = $libc_cv_depaudit"
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports --no-dynamic-linker" >&5
 $as_echo_n "checking for linker that supports --no-dynamic-linker... " >&6; }
 libc_linker_feature=no
index af47cd51e6d3ff4700c0a9a61e9abbdee37cbbc9..e250f0e20b7f050eab0900a9372e61eae2b78edf 100644 (file)
@@ -1337,6 +1337,10 @@ LIBC_LINKER_FEATURE([-z start-stop-gc], [-Wl,-z,start-stop-gc],
                    [libc_cv_z_start_stop_gc=yes], [libc_cv_z_start_stop_gc=no])
 LIBC_CONFIG_VAR([have-z-start-stop-gc], [$libc_cv_z_start_stop_gc])
 
+LIBC_LINKER_FEATURE([--depaudit], [-Wl,--depaudit,x],
+                   [libc_cv_depaudit=yes], [libc_cv_depaudit=no])
+LIBC_CONFIG_VAR([have-depaudit], [$libc_cv_depaudit])
+
 LIBC_LINKER_FEATURE([--no-dynamic-linker],
                    [-Wl,--no-dynamic-linker],
                    [libc_cv_no_dynamic_linker=yes],
index 725537c40b72309b000a454920e6787ad5cf4aca..9f3fadc37e81dce216892b913d5d81d3c02bcc97 100644 (file)
@@ -219,7 +219,6 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \
         tst-dlopen-self tst-auditmany tst-initfinilazyfail tst-dlopenfail \
         tst-dlopenfail-2 \
         tst-filterobj tst-filterobj-dlopen tst-auxobj tst-auxobj-dlopen \
-        tst-audit14 tst-audit15 tst-audit16 tst-audit17 \
         tst-single_threaded tst-single_threaded-pthread \
         tst-tls-ie tst-tls-ie-dlmopen argv0test \
         tst-glibc-hwcaps tst-glibc-hwcaps-prepend tst-glibc-hwcaps-mask \
@@ -238,6 +237,9 @@ selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
 ifneq ($(selinux-enabled),1)
 tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
 endif
+ifeq ($(have-depaudit),yes)
+tests += tst-audit14 tst-audit15 tst-audit16
+endif
 endif
 tests += $(tests-execstack-$(have-z-execstack))
 ifeq ($(run-built-tests),yes)