RE: Compiling for 10.9 through 10.12

2016-07-21 Thread Dallman, John
Charles Francoise wrote:

> I'll keep looking into it, but introducing POSIX standard syscalls without 
> protecting
> backwards compatibility is going to cause quite some havoc in multi-platform 
> code,
> and call for a lot of platform-specific fixes.

With Xcode 7.3.1 onwards, you can use the -Wpartial-availability switch to get 
warning about symbols that are weak, and possibly you can turn that warning 
into a compile failure with other options, but that doesn’t really address your 
version of this problem.

--
John Dallman

-
Siemens Industry Software Limited is a limited company registered in England 
and Wales.
Registered number: 3476850.
Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, 
GU16 8QD.
 ___
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list  (Xcode-users@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Compiling for 10.9 through 10.12

2016-07-21 Thread Rich Siegel
On Thursday, July 21, 2016, Charles Francoise 
 wrote:


I’m trying to find a way to either build for 10.12 from 
10.11, or build from 10.12 and run for lower versions.


There are two relevant settings: the SDK and the "Deployment 
Target". There used to be multiple options for the SDK, but 
lately Xcode has started putting the SDK and the OS version in 
lock step, so that Xcode 7 includes only the 10.11 SDK and (I 
presume) Xcode 8 includes only the 10.12 SDK. This can be 
annoying sometimes, but is not a serious problem in most cases.


The "Deployment Target" setting is more relevant here, I think. 
That setting should be set to the lowest OS version which you 
plan to support. (In this case, 10.9.)


Even with all of this, you still have to code to the minimum 
supported OS. If you have to run on 10.9, you can't call APIs 
that don't exist there. Neither the OS nor the tool chain will 
stop you from doing so.


In the specific case, I see that clock_gettime() doesn't exist 
on 10.11, which means it probably doesn't exist on prior OS 
versions either, and that means that you can't call it unless 
you do a runtime test to see if it's there. (The address of a 
weak-linked function is NULL if the function is unavailable at runtime.)


Good luck,

R.
--
Rich Siegel Bare Bones Software, Inc.
  

Someday I'll look back on all this and laugh... until they 
sedate me.



___
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list  (Xcode-users@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com

This email sent to arch...@mail-archive.com