mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-27 09:52:17 +00:00
build: Only enable symbol reduction if the compiler does proper DCE
With compilers that do not support proper dead code elimination, like Sun C 5.12, linking fails due to missing references to unavailable, but also unused, symbols. Bug-Id: 895
This commit is contained in:
parent
c5fd4b5061
commit
b2d5d6a7f2
18
configure
vendored
18
configure
vendored
@ -4831,17 +4831,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 <<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
|
||||
|
Loading…
Reference in New Issue
Block a user