Hi there, On macOS Sierra (v10.12) and iOS 10, the function clock_gettime has been introduced in the Darwin kernel. When building libcurl on macOS 10.12 with Xcode 8 and iOS10 SDK, the configure script will return yes for "monotonic clock_gettime" (around Line 20434 of configure).
However, when using libcurl in an application on an earlier version of iOS, this will cause a run time crash due to a missing symbol for clock_gettime. No crash occurs on an iPhone 6 running iOS10, but on an iPad running iOS9.3.5, a crash occurs due to a missing symbol for clock_gettime. OS: macOS Sierra (v10.12). Darwin kernel version 16.0.0 Libcurl version build: v7.49.1 Building libcurl for iOS 9.0 with Xcode 8 GM seed. Configure output with Xcode 8 (on macOS 10.12) ========== configure:20433: checking for monotonic clock_gettime configure:20466: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -c -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/ -miphoneos-version-min=9.0 -arch armv7 -mthumb -DNDEBUG -isystem /Volumes/local/JenkinsSlave/trunk/dependencies/openssl/include -Qunused-arguments -Os conftest.c >&5 configure:20466: $? = 0 configure:20468: result: yes ========== Configure output with Xcode 7 (on OSX 10.11) ========== configure:20466: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -c -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/ -miphoneos-version-min=9.0 -arch armv7 -mthumb -isystem /Volumes/local/JenkinsSlave/trunk/dependencies/openssl/include -Qunused-arguments -Os conftest.c >&5 conftest.c:72:15: warning: implicit declaration of function 'clock_gettime' is invalid in C99 [-Wimplicit-function-declaration] (void)clock_gettime(CLOCK_MONOTONIC, &ts); ^ conftest.c:72:29: error: use of undeclared identifier 'CLOCK_MONOTONIC' (void)clock_gettime(CLOCK_MONOTONIC, &ts); ^ 1 warning and 1 error generated. configure:20466: $? = 1 ========= I changed "curl_func_clock_gettime" to "no" in configure as a quick workaround and the libcurl binary didn't cause any issues in either iOS9 or iOS10. Although not tested yet, I believe the same issue would occur when building libcurl on macOS 10.12 and using that binary on OSX 10.11 or lower. Best, Peter
------------------------------------------------------------------- List admin: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html