aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-05-27 09:53:08 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-05-27 09:55:36 +0000
commit42621152fa4fe37326c199558c5d1f89dfd42794 (patch)
treedc1d3c1223e3ee096c37a1f4997a4a3cb732b93a
parentd3a82de598fda43f2723d532ba35b619f2551024 (diff)
downloadalpine_aports-42621152fa4fe37326c199558c5d1f89dfd42794.tar.bz2
alpine_aports-42621152fa4fe37326c199558c5d1f89dfd42794.tar.xz
alpine_aports-42621152fa4fe37326c199558c5d1f89dfd42794.zip
main/ffmpeg: fix segfault due to symver beeing used
problem was that configure script only checked if symver was supported by toolchain. Our toolchain supports it but uclibc's ld.so does not. So we check if ld.so has dlvsym() ref #664
-rw-r--r--main/ffmpeg/APKBUILD14
-rw-r--r--main/ffmpeg/configure-dlvsym.patch30
2 files changed, 40 insertions, 4 deletions
diff --git a/main/ffmpeg/APKBUILD b/main/ffmpeg/APKBUILD
index 2315b24657..879919b55b 100644
--- a/main/ffmpeg/APKBUILD
+++ b/main/ffmpeg/APKBUILD
@@ -1,7 +1,7 @@
1# Maintainer: Natanael Copa <ncopa@alpinelinux.org> 1# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
2pkgname=ffmpeg 2pkgname=ffmpeg
3pkgver=0.6.3 3pkgver=0.6.3
4pkgrel=1 4pkgrel=2
5pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix" 5pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
6url="http://ffmpeg.org/" 6url="http://ffmpeg.org/"
7arch="all" 7arch="all"
@@ -12,12 +12,17 @@ makedepends="lame-dev libvorbis-dev faad2-dev faac-dev xvidcore-dev zlib-dev
12 libvpx-dev sdl-dev" 12 libvpx-dev sdl-dev"
13depends= 13depends=
14source="http://ffmpeg.org/releases/ffmpeg-$pkgver.tar.bz2 14source="http://ffmpeg.org/releases/ffmpeg-$pkgver.tar.bz2
15 pic.patch" 15 pic.patch
16 configure-dlvsym.patch"
16 17
17_builddir="$srcdir"/$pkgname-$pkgver 18_builddir="$srcdir"/$pkgname-$pkgver
18prepare() { 19prepare() {
19 cd "$_builddir" 20 cd "$_builddir"
20 patch -p1 -i "$srcdir"/pic.patch 21 for i in $source; do
22 case $i in
23 *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
24 esac
25 done
21} 26}
22 27
23build() { 28build() {
@@ -57,4 +62,5 @@ package() {
57# strip --strip-debug "$pkgdir"/usr/lib/*.a || return 1 62# strip --strip-debug "$pkgdir"/usr/lib/*.a || return 1
58} 63}
59md5sums="cdf4ad9b2a4d195b5ca874494bc7b0b0 ffmpeg-0.6.3.tar.bz2 64md5sums="cdf4ad9b2a4d195b5ca874494bc7b0b0 ffmpeg-0.6.3.tar.bz2
60d4870ae7350caed041d2b39e406a173b pic.patch" 65d4870ae7350caed041d2b39e406a173b pic.patch
662cdc11a99bf97c63c7cca27b073cb47c configure-dlvsym.patch"
diff --git a/main/ffmpeg/configure-dlvsym.patch b/main/ffmpeg/configure-dlvsym.patch
new file mode 100644
index 0000000000..b48a8e7883
--- /dev/null
+++ b/main/ffmpeg/configure-dlvsym.patch
@@ -0,0 +1,30 @@
1diff --git a/configure b/configure
2index c54706a..b5b3225 100755
3--- a/configure
4+++ b/configure
5@@ -1053,6 +1053,7 @@ HAVE_LIST="
6 dev_video_bktr_ioctl_bt848_h
7 dlfcn_h
8 dlopen
9+ dlvsym
10 dos_paths
11 ebp_available
12 ebx_available
13@@ -3053,14 +3054,15 @@ check_ldflags -Wl,--warn-common
14 check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
15 test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
16
17+check_func dlvsym -lld
18 echo "X{};" > $TMPV
19 if test_ldflags -Wl,--version-script,$TMPV; then
20 append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
21- check_cc <<EOF && enable symver_asm_label
22+ enabled dlvsym && check_cc <<EOF && enable symver_asm_label
23 void ff_foo(void) __asm__ ("av_foo@VERSION");
24 void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
25 EOF
26- check_cc <<EOF && enable symver_gnu_asm
27+ enabled dlvsym && check_cc <<EOF && enable symver_gnu_asm
28 __asm__(".symver ff_foo,av_foo@VERSION");
29 void ff_foo(void) {}
30 EOF