-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
7.5.0 clock_gettime runtime failure built with macOS 10.11 and Xcode 8.x #11104
Comments
Fishrock123
added
the
libuv
Issues and PRs related to the libuv dependency or the uv binding.
label
Feb 1, 2017
@Fishrock123 note the patch above also touches the vendored openssl, not just libuv. |
It's going to be fixed by #11094 |
@joyeecheung excellent |
Were the issues in deps/openssl/openssl/apps/apps.c addressed too? |
I've bumped into the same failure in lazy symbol binding before (caused by the reverted uv patch), it probably happened before the openssl part so never noticed it. The latest master works fine for me. |
italoacasas
pushed a commit
to italoacasas/node
that referenced
this issue
Feb 14, 2017
Fixes: nodejs#10165 Fixes: nodejs#9856 Fixes: nodejs#10607 Fixes: nodejs#11104 PR-URL: nodejs#11094 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
krydos
pushed a commit
to krydos/node
that referenced
this issue
Feb 25, 2017
Fixes: nodejs#10165 Fixes: nodejs#9856 Fixes: nodejs#10607 Fixes: nodejs#11104 PR-URL: nodejs#11094 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
andrew749
pushed a commit
to michielbaird/node
that referenced
this issue
Jul 19, 2017
Fixes: nodejs/node#10165 Fixes: nodejs/node#9856 Fixes: nodejs/node#10607 Fixes: nodejs/node#11104 PR-URL: nodejs/node#11094 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Full build log is here: https://gist.githubusercontent.com/ilovezfs/10f5a75cd9b9603813b51bfcfe51c025/raw/eb61b577e16b9aa1951a8ac6fe24979d73611702/gistfile1.txt
I encountered this problem while working on the 7.5.0 upgrade from Homebrew.
This will occur if node is built on macOS 10.11 El Capitan either without the Command Line Tools (CLT) installed, or with
SDKROOT
set to the Xcode.app (8.x) SDK (SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
), or both.The problem is that the use of
clock_gettime
in node is only guarded with# ifdef CLOCK_REALTIME
, andCLOCK_REALTIME
is defined in the Xcode 8 SDK regardless of whether you happen to be building on macOS 10.11 El Capitan or macOS 10.12 Sierra.I am currently using the following patch on El Capitan to work around the bug: https://gist.github.com/ilovezfs/7f72153c2c870a35877b91a2b16c1235
However, in its current form, it will cause
clock_gettime
not to be used even if building on macOS 10.12 Sierra. The reason is that node specifically sets'MACOSX_DEPLOYMENT_TARGET': '10.7', # -mmacosx-version-min=10.7
incommon.gypi
which will therefore causeMAC_OS_X_VERSION_MIN_REQUIRED >= 101200
to be false.Obviously one way to make the patch viable would be to set the "correct"
MACOSX_DEPLOYMENT_TARGET
, namelyMACOSX_DEPLOYMENT_TARGET=10.12
when building on Sierra, if the Sierra-only functions are desired. But ifMACOSX_DEPLOYMENT_TARGET
will continue to be set to10.7
, and yet you also want to enableclock_gettime
, then some other strategy besides usingMAC_OS_X_VERSION_MIN_REQUIRED
at build time will be required. Another approach would be to use weak linking, which defers the decision until run time whether or not to use the symbol.If you want to avoid using
MAC_OS_X_VERSION_MIN_REQUIRED
and want to avoid using weak linking, then a configure-time solution will be needed, which not only attempts to compile a sample program usingclock_gettime
, but also checks whether it executes. The latter is sometimes a show stopper because it can interfere with cross-compiling.The text was updated successfully, but these errors were encountered: