summaryrefslogtreecommitdiff
path: root/build/make/configure.sh
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2018-04-14 23:40:46 +0300
committerMartin Storsjo <martin@martin.st>2018-04-14 23:42:21 +0300
commit38dc27cc6d03383cf1764e03697137e2f330d550 (patch)
tree59a19ae8df2c8013c15ec20e3dc0ea6a3cc5c781 /build/make/configure.sh
parent343ef23db07bb4a1140ebe6befcfa733f0ed70b1 (diff)
downloadlibvpx-38dc27cc6d03383cf1764e03697137e2f330d550.tar
libvpx-38dc27cc6d03383cf1764e03697137e2f330d550.tar.gz
libvpx-38dc27cc6d03383cf1764e03697137e2f330d550.tar.bz2
libvpx-38dc27cc6d03383cf1764e03697137e2f330d550.zip
configure: Test linking pthreads before using it
This avoids enabling pthreads if only pthreads-w32 is available. pthreads-w32 provides pthread.h but has a link library with a different name (libpthreadGC2.a). Generally, always using win32 threads when on windows would be sensible. However, libstdc++ can be configured to use pthreads (winpthreads), and in these cases, standard C++ headers can pollute the namespace with pthreads declarations, which break the win32 threads headers that declare similar symbols - leading us to prefer pthreads on windows whenever available (see d167a1ae and bug 1132). Change-Id: Icd668ccdaf3aeabb7fa4e713e040ef3d67546f00
Diffstat (limited to 'build/make/configure.sh')
-rw-r--r--build/make/configure.sh12
1 files changed, 11 insertions, 1 deletions
diff --git a/build/make/configure.sh b/build/make/configure.sh
index 60fc36e43..72376373c 100644
--- a/build/make/configure.sh
+++ b/build/make/configure.sh
@@ -319,6 +319,12 @@ check_ld() {
&& check_cmd ${LD} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs}
}
+check_lib() {
+ log check_lib "$@"
+ check_cc $@ \
+ && check_cmd ${LD} ${LDFLAGS} -o ${TMP_X} ${TMP_O} "$@" ${extralibs}
+}
+
check_header(){
log check_header "$@"
header=$1
@@ -1484,7 +1490,11 @@ EOF
# bionic includes basic pthread functionality, obviating -lpthread.
;;
*)
- check_header pthread.h && add_extralibs -lpthread
+ check_lib -lpthread <<EOF && enable_feature pthread_h && add_extralibs -lpthread
+#include <pthread.h>
+#include <stddef.h>
+int main(void) { return pthread_create(NULL, NULL, NULL, NULL); }
+EOF
;;
esac
fi