[tor-bugs] #20235 [Core Tor/Tor]: Configure misidentifies clock_gettime and getentropy on macOS Sierra/XCode8 when compiling for iOS 8

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Nov 9 12:10:56 UTC 2016


#20235: Configure misidentifies clock_gettime and getentropy on macOS Sierra/XCode8
when compiling for iOS 8
-------------------------------------------------+-------------------------
 Reporter:  rainwolf                             |          Owner:
     Type:  defect                               |         Status:  new
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.2.9.x-final
Component:  Core Tor/Tor                         |        Version:  Tor:
                                                 |  0.2.8.8
 Severity:  Normal                               |     Resolution:
 Keywords:  Sierra, XCode 8, clock_gettime,      |  Actual Points:
  getentropy, libSystem.dylib 028-backport osx   |
Parent ID:                                       |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by teor):

 Replying to [comment:4 nickm]:
 > Oh!  Hm.
 >
 > I tried making an example program as small as possible to still use
 getentropy():
 > {{{
 > #include <sys/types.h>
 > #include <sys/random.h>
 > #include <stdio.h>
 >
 > int main(int argc, char **argv)
 > {
 >   unsigned x;
 >   if (getentropy(&x, sizeof(x)) < 0)
 >     perror("getentropy");
 >   else
 >     printf("%u\n", x);
 >   return 0;
 > }
 > }}}
 >
 > I tried compiling it in lots of different ways, but I couldn't find a
 way to tell gcc to ignore the presence of getentropy()....
 > {{{
 > % gcc -Wall -Wl,-no_weak_imports getentropy_test.c -o get
 > % gcc -Wall -mmacosx-version-min=10.10 -Wl,-no_weak_imports
 getentropy_test.c -o get
 > % ( export MACOSX_DEPLOYMENT_TARGET=10.10 ; gcc -Wall -mmacosx-version-
 min=10.10 -Wl,-no_weak_imports getentropy_test.c -o get )
 > }}}
 >
 > I wonder if Apple messed up somehow and forgot to tag these APIs as
 10.12 only?  Or maybe I'm doing something wrong with the above.

 Yes, Apple messed up and forgot to tag the APIs.
 So any tor built on Sierra won't run on older OS X.

 So it's a platform bug, not a tor version bug.
 Let's fix it if we can, probably by testing MACOSX_DEPLOYMENT_TARGET
 ourselves (ugh).

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/20235#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list