On Sun, Mar 13, 2011 at 9:03 PM, Jack Howarth <howa...@bromo.med.uc.edu> wrote:
> On Sun, Mar 13, 2011 at 08:42:58PM +0100, Steven Bosscher wrote:
>> (sorry Chris, I forgot the list)
>>
>> On Mar 13, 2011,@11:59 AM, Chris Lattner wrote:
>>
>> > Sorry, I actually mean 255 of course, because of the NO_SECT
>> > sentinel.  Here are the relevant bits from nlist.h.  I'm not
>> > sure how you expect the toolchain to store more than 256
>> > sections in a uint8_t.
>>
>> How self-righteous, and misinformed.
>>
>> No-one is expecting to store >256 in a uint8_t. The structures you
>> quote only apply to symbol tables, which are references into sections
>> in Mach-O. But not all sections have symbols. None of the sections in
>> the GNU_LTO segment have symbols.
>>
>> The documentation you should be quoting is the part about Mach-O
>> loader commands, and there is no limit AFAICT on the number of
>> LC_SEGMENT/LC_SEGMENT_64 loader commands. There is also nothing in the
>> segment command structures that suggests a limit of 255 sections.
>>
>> Besides, it worked before, which suggests that, well, it worked.
>>
>> This is not the limitation of Mach-O you are looking for.
>>
>> Ciao!
>> Steven
>
> Steven,
>   While I agree that we are likely correct in the details of this
> problem, I suspect we will be unsuccessful in getting Apple to revert
> this change. Even if they do so, it is likely to be for Xcode 4.0.1
> only (since the 3.2.x series is being depreciated) and at best we
> might see the fix in 6-9 months if not later. It is far better, despite
> the pain, to recode this in order to protect ourselves in the future
> from arbitary changes in Xcode. IMHO, one major problem is that Apple has
> left mach-o poorly documented in some areas which leaves them the
> lattitude to redefine the corner cases like this as they please.
>                    Jack
>

Hi,

I agree it is probably better to re-code things, but that will be
impossible do before GCC 4.6 goes out.

We have to make a decision: keep the LTO support for Mach-O in for now
and recommend a non-recent Xcode, disable it for the GCC 4.6 release
and for the GCC 4.5.x series.

Ciao!
Steven

Reply via email to