diff options
author | Martin Storsjo <martin@martin.st> | 2018-04-14 23:40:46 +0300 |
---|---|---|
committer | Martin Storsjo <martin@martin.st> | 2018-04-14 23:42:21 +0300 |
commit | 38dc27cc6d03383cf1764e03697137e2f330d550 (patch) | |
tree | 59a19ae8df2c8013c15ec20e3dc0ea6a3cc5c781 /build/make/configure.sh | |
parent | 343ef23db07bb4a1140ebe6befcfa733f0ed70b1 (diff) | |
download | libvpx-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.sh | 12 |
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 |