|
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>
|