[Bug 772451] New: Broken clock_gettime and mkostemp detection with XCode 8
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Oct 5 13:32:42 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=772451
Bug ID: 772451
Summary: Broken clock_gettime and mkostemp detection with XCode
8
Classification: Platform
Product: GStreamer
Version: git master
OS: Mac OS
Status: NEW
Severity: blocker
Priority: Normal
Component: cerbero
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: nirbheek.chauhan at gmail.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
XCode 8 includes the macOS 10.12 SDK which adds some new API: clock_gettime,
getentropy, mkostemp, etc. These are defined in a way that causes
AC_CHECK_FUNCS configure checks to always detect them as available regardless
of what minimum OS X version you are targetting[1][2].
1. https://github.com/mobile-shell/mosh/issues/807#issuecomment-249736455
2. https://github.com/Homebrew/homebrew-core/issues/2674
This means that binaries built with XCode 8 that conditionally use
clock_gettime, getentropy, mkostemp will not run on any version of OS X older
than 10.12.
This affects GStreamer itself and a bunch of recipes that we use in Cerbero.
I'm slowly making my way through Cerbero and fixing recipes. I also have a WIP
patch for gstreamer that I will push once I've tested it on Mac OS X 10.11 and
macOS 10.12.
The way to detect this at compile-time is by building with
LDFLAGS="-Wl,no_weak_imports` which was added to XCode 8 specifically for
this[3]. However, this is a hammer approach and can't be used in glib or
gstreamer since both of those use weak imports for legitimate purposes.
3. https://github.com/Homebrew/homebrew-core/issues/3727
We should probably not release 1.10 without fixing this otherwise binaries
built on macOS 10.12 will not run on older versions of OS X, and binaries built
on OS X 10.11.6 with XCode 8 will not run at all. We should also backport this
to 1.8.x.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list