Merge commit 'b2d5d6a7f20a255a5f3c9bf539cc507afd909ce5'
authorClément Bœsch <u@pkh.me>
Mon, 27 Jun 2016 17:48:21 +0000 (19:48 +0200)
committerClément Bœsch <u@pkh.me>
Mon, 27 Jun 2016 17:48:21 +0000 (19:48 +0200)
* commit 'b2d5d6a7f20a255a5f3c9bf539cc507afd909ce5':
  build: Only enable symbol reduction if the compiler does proper DCE

Merged-by: Clément Bœsch <u@pkh.me>
configure

index 99cf017..007c953 100755 (executable)
--- a/configure
+++ b/configure
@@ -6045,17 +6045,25 @@ enabled xmm_clobber_test &&
                   -Wl,--wrap,sws_scale ||
     disable xmm_clobber_test
 
-echo "X { local: *; };" > $TMPV
-if test_ldflags -Wl,${version_script},$TMPV; then
-    append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver'
-    check_cc <<EOF && enable symver_asm_label
+check_ld "cc" <<EOF && enable proper_dce
+extern const int array[512];
+static inline int func(void) { return array[0]; }
+int main(void) { return 0; }
+EOF
+
+if enabled proper_dce; then
+    echo "X { local: *; };" > $TMPV
+    if test_ldflags -Wl,${version_script},$TMPV; then
+        append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver'
+        check_cc <<EOF && enable symver_asm_label
 void ff_foo(void) __asm__ ("av_foo@VERSION");
 void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
 EOF
-    check_cc <<EOF && enable symver_gnu_asm
+        check_cc <<EOF && enable symver_gnu_asm
 __asm__(".symver ff_foo,av_foo@VERSION");
 void ff_foo(void) {}
 EOF
+    fi
 fi
 
 if [ -z "$optflags" ]; then