[libc++ patch] Don't define __need_FOO in cstddef

Richard Smith richard at metafoo.co.uk
Thu May 15 23:05:47 PDT 2014


Thank you for fixing this!


On Thu, May 15, 2014 at 6:54 PM, Nico Weber <thakis at chromium.org> wrote:

> On Fri, May 16, 2014 at 12:11 AM, Marshall Clow <mclow.lists at gmail.com>wrote:
>
>>
>> On May 15, 2014, at 10:08 AM, Jeffrey Yasskin <jyasskin at google.com>
>> wrote:
>>
>> > I would totally believe those were wrong. They worked around
>> > <stddef.h> doing something absolutely crazy that I don't remember
>> > anymore, and it sounds like that's been fixed.
>>
>> My only concern is with the initial checkin comment “for ubuntu”.
>> If this doesn’t break Ubuntu, then I’m good with it.
>>
>
> r208942, thanks! I did some light testing on Ubuntu with the patch, and
> things still seemed to work with it. (And the thing mentioned in PR19723
> now works:
>
>   #include <cstddef>
>   struct A { int a; };
>   int O = offsetof(A, a);
>
>   $ clang -c -stdlib=libc++ -Ipath/to/libcxx/include -std=c++11
>
> This was broken without this change, and this is e.g. needed to bootstrap
> clang.)
>
>
>>
>> — Marshall
>>
>> > On Thu, May 15, 2014 at 5:20 AM, Alp Toker <alp at nuanti.com> wrote:
>> >> A little SVN digging indicates the change originated in r104516.
>> Removing it
>> >> cursorily seems OK, CC'ing in Jeffrey Yasskin who wrote it.
>> >>
>> >> Alp.
>> >>
>> >>
>> >>
>> >> On 15/05/2014 07:21, Nico Weber wrote:
>> >>>
>> >>>
>> >>> Ping.
>> >>>
>> >>>
>> >>> On May 13, 2014 12:05 PM, "Nico Weber" <thakis at chromium.org
>> >>> <mailto:thakis at chromium.org>> wrote:
>> >>>
>> >>>    D'oh, forgot to cc Marshall :-)
>> >>>
>> >>>
>> >>>    On Tue, May 13, 2014 at 12:00 PM, Nico Weber <thakis at chromium.org
>> >>>    <mailto:thakis at chromium.org>> wrote:
>> >>>
>> >>>        Hi,
>> >>>
>> >>>        r207606 changed the __need_foo macros to behave like they do
>> >>>        with gcc: If they are set, _only_ the __need_foo stuff gets
>> >>>        defined. libc++'s cstddef sets a few __need_foo settings, so
>> >>>        cstddef now doesn't work right with libc++ after clang r207606.
>> >>>
>> >>>        The attached patch removes the __need_foo defines from
>> >>>        libc++'s cstddef. They were added with a cryptic commit
>> >>>        message ""for ubuntu" years ago - I think they're incorrect,
>> >>>        and things still seem to work without them. (libstdc++ doesn't
>> >>>        set them either.) Maybe they were needed before clang had
>> >>>        r207606 - if so, this patch should also improve how libc++
>> >>>        works when built with gcc.
>> >>>
>> >>>        This fixes PR19723, see the bug for some more information and
>> >>>        discussion.
>> >>>
>> >>>        Ok?
>> >>>
>> >>>        Nico
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> cfe-commits mailing list
>> >>> cfe-commits at cs.uiuc.edu
>> >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>> >>
>> >>
>> >> --
>> >> http://www.nuanti.com
>> >> the browser experts
>> >>
>>
>>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140515/1c37963c/attachment.html>


More information about the cfe-commits mailing list