• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN


  • Subject: Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN
  • From: Jean-Daniel Dupas <email@hidden>
  • Date: Tue, 04 Oct 2011 18:14:11 +0200

Le 4 oct. 2011 à 15:07, Mike Richmond a écrit :

>
> On 4 Oct 2011, at 11:35, Jean-Daniel Dupas wrote:
>
>>
>> Le 4 oct. 2011 à 12:15, Mike Richmond a écrit :
>>
>>>
>>> On 3 Oct 2011, at 20:06, Jonas Maebe wrote:
>>>
>>>> On 03 Oct 2011, at 17:43, Mike Richmond wrote:
>>>>
>>>>> What I can't get to work though is building on 10.6 with the 10.4u SDK.  In that case I note that select$DARWIN_EXTSN$NOCANCEL() is being called, whereas I think I want select$DARWIN_EXTSN() to be called (as I see when using the 10.5 and 10.6 SDKs).
>>>>
>>>> The Mac OS X 10.4 version of libSystem contained only one version of select. It did not have a NOCANCEL version (nor even a DARWIN_EXTSN version, so I'm not sure why you think that version is being called).
>>>
>>> There's only one version of select() when building on 10.4 with tools and SDKs from Xcode 2.4.1, but its behaviour varies dependent on whether I define _POSIX_C_SOURCE or not.
>>>
>>> However when I build and run on 10.6 against the 10.4u SDK using GCC 4.0 from Xcode 3.2.x I see:
>>>
>>> #0  0x9191a58a in select$DARWIN_EXTSN$NOCANCEL ()
>>> #1  0x919b2c4b in select ()
>>> #2  0x00001dce in timer_fn ()
>>>
>>> and none of the defines mentioned in <http://developer.apple.com/library/mac/#releasenotes/
>>> Darwin/SymbolVariantsRelNotes/index.html> affect it.  I was expecting defining _POSIX_C_SOURCE to make a difference, as it does when building on 10.4, but it doesn't.
>>>
>>> cf building with GCC 4.2 against the 10.6 SDK:
>>>
>>> #0  0x918fdac6 in select$DARWIN_EXTSN ()
>>> #1  0x00001d06 in timer_fn ()
>>> #2  0x9190c259 in _pthread_start ()
>>>
>>> ISTM that there should be something I can define so that I get select$DARWIN_EXTSN when using the 10.4u SDK on 10.6, so that I can get the same behaviour as when I build on 10.4.
>>
>>
>> As already mentioned, there is only one version of select in 10.4 libSystem.
>> If you managed to generate a call to something else than select, when trying to run on 10.4, you will get a crash due to missing symbol.
>
> Yes, I realise that there is only select() when running on 10.4.  There I see:
>
> #0  0x90019d0c in select ()
> #1  0x00001dce in timer_fn ()
>
> whether _POSIX_C_SOURCE is defined or not, but the definition of _POSIX_C_SOURCE affects the behaviour.
>
> On 10.6 I was expecting to see a backtrace like:
>
> #0  0x00007fff82efa932 in select$DARWIN_EXTSN ()
> #1  0x00007fff82f76922 in select ()
> #2  0x0000000100000c03 in timer_fn ()
>

AFAIK, that's not how variants works. You will see either select or select$DARWIN_EXTSN, but not both in the same trace. The macro defined which function is called, it does not change the function behavior.

That said, I would be curious to know how a preprocessor macro can change the runtime behavior of a dynamically linked function.

> when _POSIX_C_SOURCE is defined - this being from a 64-bit build, which behaves as I expect it to.
>
> I've now found that whether I define _POSIX_C_SOURCE or not when building on 10.6 does make a difference when I take that app and run it on 10.4.  What I can't do successfully is build and run a 32-bit app on 10.6 using the 10.4u SDK.  The same app which runs correctly on 10.4 fails on 10.6.

-- Jean-Daniel




 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN (From: Mike Richmond <email@hidden>)
 >Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN (From: Jean-Daniel Dupas <email@hidden>)
 >Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN (From: Mike Richmond <email@hidden>)

  • Prev by Date: Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN
  • Next by Date: (no subject)
  • Previous by thread: Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN
  • Next by thread: Re: Xcode constantly eating Ram (Feifan Zhou)
  • Index(es):
    • Date
    • Thread