diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2019-01-08 16:50:16 +0100 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2019-01-08 19:54:05 +0100 |
commit | 77b12b7a8bc5e704dacedfd0bc95a78fb7034b79 (patch) | |
tree | 2251aafa8435183514109c7dc3e128270965cb6d /pcr/pjproject/arm-build.patch | |
parent | af6a93922eb42bb02fee64165e4e5ab8d69966b9 (diff) | |
download | abslibre-77b12b7a8bc5e704dacedfd0bc95a78fb7034b79.tar.gz abslibre-77b12b7a8bc5e704dacedfd0bc95a78fb7034b79.tar.bz2 abslibre-77b12b7a8bc5e704dacedfd0bc95a78fb7034b79.zip |
pcr/pjproject: update to 2.8 and fix illegal instructions
This is based on the PKGBUILD available on aur here:
https://aur.archlinux.org/pjproject.git
Before this package was built with -march=native, so if you build
it on a machine with a processor that supports avx (Advanced Vector
Extensions), libpjsip.so.2 ended up with vpxor instructions that
were also executed on machines with a processor that did not have
such extension, which resulted in an illegal instruction at asterisk
startup.
libwebrtc is disabled in order not to require sse2 on i686:
- Parabola's minimum system requirements states that:
"Parabola GNU/Linux-libre should run on any i686 compatible machine
[...]"
- Wikipedia states that i686 has MMX and SSE[2]
- The Asterisk Changelog has the following:
"pjproject_bundled: Add --disable-libwebrtc to configure
Without the disable, pjproject tries to build it's internal
webrtc implementation which requires sse2. This fails on
platforms without sse2."
- In package(), a trailing '*' was added to
pjsip-apps/bin/pjsua-*gnu in order to catch binaries like
pjsip-apps/bin/pjsua-armv7l-unknown-linux-gnueabihf on ARM.
The package build was tested on x86_64, i686 and armv7h.
On x86_64 I verified that libpjsip.so.2 did not have vpxor
instructions anymore with objdump -D libpjsip.so.2 | grep vpxor
References:
-----------
[1]https://wiki.parabola.nu/Beginners%27_Guide
[2]https://en.wikipedia.org/wiki/P6_(microarchitecture)
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'pcr/pjproject/arm-build.patch')
-rw-r--r-- | pcr/pjproject/arm-build.patch | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/pcr/pjproject/arm-build.patch b/pcr/pjproject/arm-build.patch deleted file mode 100644 index 06dde3493..000000000 --- a/pcr/pjproject/arm-build.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff -ur pjproject-2.6.orig/aconfigure pjproject-2.6/aconfigure ---- pjproject-2.6.orig/aconfigure 2017-01-25 11:23:08.000000000 +0000 -+++ pjproject-2.6/aconfigure 2017-05-03 21:41:34.657154786 +0000 -@@ -8494,7 +8494,15 @@ - ac_webrtc_cflags="-msse2" - ;; - *win32* | *w32* | *darwin* | *linux*) -- ac_webrtc_instset=sse2 -+ case $target in -+ armv7l*gnueabihf) -+ ac_webrtc_instset=neon -+ ac_webrtc_cflags="-DWEBRTC_ARCH_ARMV7 -mfloat-abi=hard -mfpu=neon" -+ ;; -+ *) -+ ac_webrtc_instset=sse2 -+ ;; -+ esac - ;; - *) - ;; -diff -ur pjproject-2.6.orig/aconfigure.ac pjproject-2.6/aconfigure.ac ---- pjproject-2.6.orig/aconfigure.ac 2017-01-25 11:23:08.000000000 +0000 -+++ pjproject-2.6/aconfigure.ac 2017-05-03 21:42:41.686846516 +0000 -@@ -1840,7 +1840,15 @@ - ac_webrtc_cflags="-msse2" - ;; - *win32* | *w32* | *darwin* | *linux*) -- ac_webrtc_instset=sse2 -+ case $target in -+ armv7l*gnueabihf) -+ ac_webrtc_instset=neon -+ ac_webrtc_cflags="-DWEBRTC_ARCH_ARMV7 -mfloat-abi=hard -mfpu=neon" -+ ;; -+ *) -+ ac_webrtc_instset=sse2 -+ ;; -+ esac - ;; - *) - ;; -diff -ur pjproject-2.6.orig/third_party/build/os-auto.mak.in pjproject-2.6/third_party/build/os-auto.mak.in ---- pjproject-2.6.orig/third_party/build/os-auto.mak.in 2016-12-22 09:33:55.000000000 +0000 -+++ pjproject-2.6/third_party/build/os-auto.mak.in 2017-05-03 21:25:48.151562278 +0000 -@@ -104,8 +104,7 @@ - else # Generic fixed point - WEBRTC_SRC = \ - modules/audio_processing/aecm/aecm_core_c.o \ -- modules/audio_processing/ns/nsx_core_c.o \ -- common_audio/signal_processing/complex_fft.o -+ modules/audio_processing/ns/nsx_core_c.o - endif - endif - endif |