[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