]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
tests: enable 4 more tests to be executed on FreeBSD
authorBruno Haible <bruno@clisp.org>
Sun, 1 Mar 2020 02:03:59 +0000 (03:03 +0100)
committerPádraig Brady <P@draigBrady.com>
Sun, 1 Mar 2020 10:56:12 +0000 (10:56 +0000)
* init.cfg (gcc_shared_libs_): New variable.
(gcc_shared_): Use it, instead of hardcoding -ldl.
(require_gcc_shared_): Determine the suitable value
for gcc_shared_libs_.

init.cfg

index f7a3fab3a4a68df53e91d7966773152ee42822a8..2009e294e7d570ac1771ba4c93fa176a658bfc92 100644 (file)
--- a/init.cfg
+++ b/init.cfg
@@ -576,6 +576,9 @@ require_sparse_support_()
   fi
 }
 
+# Libraries needed when we compile a shared library.
+gcc_shared_libs_=
+
 # Compile a shared lib using the GCC options for doing so.
 # Pass input and output file as parameters respectively.
 # Any other optional parmeters are passed to $CC.
@@ -585,7 +588,7 @@ gcc_shared_()
   local out=$2
   shift 2 || return 1
 
-  $CC -Wall -shared --std=gnu99 -fPIC -O2 $* "$in" -o "$out" -ldl
+  $CC -Wall -shared --std=gnu99 -fPIC -O2 $* "$in" -o "$out" $gcc_shared_libs_
 }
 
 # There are a myriad of ways to build shared libs,
@@ -593,8 +596,18 @@ gcc_shared_()
 # on platforms that support building them as follows.
 require_gcc_shared_()
 {
-  gcc_shared_ '-' 'd.so' -xc < /dev/null 2>&1 \
-    || skip_ '$CC -shared ... failed to build a shared lib'
+  # Try two different values for gcc_shared_libs_.
+  gcc_shared_libs_='-ldl'
+  if gcc_shared_ '-' 'd.so' -xc < /dev/null 2>&1; then
+    :
+  else
+    gcc_shared_libs_=
+    if gcc_shared_ '-' 'd.so' -xc < /dev/null 2>&1; then
+      :
+    else
+      skip_ '$CC -shared ... failed to build a shared lib'
+    fi
+  fi
   rm -f d.so
 }