motion: fix segmentation fault under musl libc
authorJo-Philipp Wich <[email protected]>
Thu, 8 Oct 2015 00:10:22 +0000 (02:10 +0200)
committerJo-Philipp Wich <[email protected]>
Thu, 8 Oct 2015 00:15:28 +0000 (02:15 +0200)
commit926b68c15ded22a072e8223664b95ea83fec26bc
treefb0c49a047b5bf4a016de6816ac181c9bc955e73
parenta8c37348b2363d747ad6fd6da7f3cf6037e315b2
motion: fix segmentation fault under musl libc

During startup, motion calls pthread_getspecific() through motion_log()
before pthread_key_create() has been called yet. This works on glibc and
uclibc but segfaults on musl because motion is relying on undefined
behaviour here.

Move the pthread initialization before motion_startup() so that
tls_key_threadnr is initialized when motion_log() is called.

Also enforce the use of strerror_r() on musl by defining XSI_STRERROR_R
on all non-glibc systems because the supposed replacement code is broken
and crashes on musl.

References:
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2015x09x30x203633

Signed-off-by: Jo-Philipp Wich <[email protected]>
multimedia/motion/Makefile
multimedia/motion/patches/100-musl-compat.patch [new file with mode: 0644]