summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorClément Bœsch <u@pkh.me>2016-06-27 19:48:21 +0200
committerClément Bœsch <u@pkh.me>2016-06-27 19:48:21 +0200
commit85a52a77ce879e2d41056f31730462fcca11c9ae (patch)
treee00bc3ca66ffd371d4bdf14761627e4ae5b4cef6 /configure
parentda7c918e80ed3aa48bfbdb05fc0d554df40c64d3 (diff)
parentb2d5d6a7f20a255a5f3c9bf539cc507afd909ce5 (diff)
Merge commit 'b2d5d6a7f20a255a5f3c9bf539cc507afd909ce5'
* commit 'b2d5d6a7f20a255a5f3c9bf539cc507afd909ce5': build: Only enable symbol reduction if the compiler does proper DCE Merged-by: Clément Bœsch <u@pkh.me>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure18
1 files changed, 13 insertions, 5 deletions
diff --git a/configure b/configure
index 99cf0172c2..007c953fca 100755
--- 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