[2/3] elf: Skip tst-auditlogmod-* if the linker doesn't support --depaudit

Message ID 20210726035802.275992-3-maskray@google.com
State Committed
Headers
Series [1/3] elf: Replace .tls_common with .tbss definition |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Fangrui Song July 26, 2021, 3:58 a.m. UTC
  gold and ld.lld do not support --audit or --depaudit.
---
 configure    | 34 ++++++++++++++++++++++++++++++++++
 configure.ac |  4 ++++
 elf/Makefile |  4 +++-
 3 files changed, 41 insertions(+), 1 deletion(-)
  

Comments

H.J. Lu July 29, 2021, 2:23 p.m. UTC | #1
On Sun, Jul 25, 2021 at 9:00 PM Fangrui Song via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> gold and ld.lld do not support --audit or --depaudit.

Please update the commit log for BZ #28151.  We are in code freeze for glibc
2.34.   Please rebase and submit the v2 patch after glibc 2.34 has been
branched.

Thanks.

> ---
>  configure    | 34 ++++++++++++++++++++++++++++++++++
>  configure.ac |  4 ++++
>  elf/Makefile |  4 +++-
>  3 files changed, 41 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 9619c10991..9b966196d4 100755
> --- 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
> diff --git a/configure.ac b/configure.ac
> index 34ecbba540..17a4c9a1ab 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -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],
> diff --git a/elf/Makefile b/elf/Makefile
> index 87a70d6c7a..09f860a268 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -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-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)
> --
> 2.32.0.432.gabb21c7263-goog
>
  
Fangrui Song July 29, 2021, 4:28 p.m. UTC | #2
On 2021-07-29, H.J. Lu wrote:
>On Sun, Jul 25, 2021 at 9:00 PM Fangrui Song via Libc-alpha
><libc-alpha@sourceware.org> wrote:
>>
>> gold and ld.lld do not support --audit or --depaudit.
>
>Please update the commit log for BZ #28151.  We are in code freeze for glibc
>2.34.   Please rebase and submit the v2 patch after glibc 2.34 has been
>branched.

Will mail v2 after presumably this

"The current development version of glibc 2.34, releasing on or around August 1st, 2021."

>Thanks.
>
>> ---
>>  configure    | 34 ++++++++++++++++++++++++++++++++++
>>  configure.ac |  4 ++++
>>  elf/Makefile |  4 +++-
>>  3 files changed, 41 insertions(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 9619c10991..9b966196d4 100755
>> --- 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
>> diff --git a/configure.ac b/configure.ac
>> index 34ecbba540..17a4c9a1ab 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -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],
>> diff --git a/elf/Makefile b/elf/Makefile
>> index 87a70d6c7a..09f860a268 100644
>> --- a/elf/Makefile
>> +++ b/elf/Makefile
>> @@ -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-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)
>> --
>> 2.32.0.432.gabb21c7263-goog
>>
>
>
>-- 
>H.J.
  

Patch

diff --git a/configure b/configure
index 9619c10991..9b966196d4 100755
--- 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
diff --git a/configure.ac b/configure.ac
index 34ecbba540..17a4c9a1ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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],
diff --git a/elf/Makefile b/elf/Makefile
index 87a70d6c7a..09f860a268 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -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-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)