On 14 Jan 2015, at 09:03, Tristan Gingold wrote: > >> On 09 Jan 2015, at 00:42, Iain Sandoe <i...@codesourcery.com> wrote: >> >> >> On 8 Jan 2015, at 13:52, Tristan Gingold wrote: >> >>> >>>> On 08 Jan 2015, at 13:49, Iain Sandoe <i...@codesourcery.com> wrote: >>>> >>>> Hi Tristan, >>>> >>>> On 7 Jan 2015, at 10:15, Arnaud Charlet wrote: >>>> >>>>> Use _NSGetEnviron to get environment. >>>>> >>>>> Tested on x86_64-pc-linux-gnu, committed on trunk >>>>> >>>>> 2015-01-07 Tristan Gingold <ging...@adacore.com> >>>>> >>>>> PR ada/64349 >>>>> * env.c (__gnat_environ): Adjust for darwin9/darwin10. >>>>> >>>>> <difs.txt> >>>> >>>> So my original patch assumed that, while it was not legal to use environ >>>> from a shlib, it is legal to use _NSGetEnviron () from an application ... >>>> >>>> .. and, OK fine, I see the point about ! defined (__arm__) .. but a few >>>> other comments. >>>> >>>> ISTM that there's a partial implementation to distinguish between IN_RTS >>>> and application? >>> >>> Yes you're right. The added code should have been added after the #endif >>> for IN_RTS. >> >> How about this? >> It uses the interface where needed, avoids it for main exes and gets rid of >> the negative conditional (which IMO makes the code a little more readable). >> >> Iain >> >> P.S. this is not Darwin9/10 - specific the only reason it doesn't fail on >> Darwin >= 11 is because they default to -undefined dynamic_lookup .. and so >> find the symbol from the exe. > > Sorry for the late answer. We did something slightly different: always > #include crt_externs.h on no-arm Darwin.
Any news on when this might hit trunk? - it is a bootstrap issue (although on older targets). thanks Iain