Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN
Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN
- Subject: Re: select$DARWIN_EXTSN$NOCANCEL vs select$DARWIN_EXTSN
- From: Mike Richmond <email@hidden>
- Date: Tue, 04 Oct 2011 14:07:22 +0100
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 ()
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.
Mike
_______________________________________________
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