[libc++ patch] Don't define __need_FOO in cstddef
Nico Weber
thakis at chromium.org
Thu May 15 18:54:11 PDT 2014
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
> >>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140516/3f0cf437/attachment.html>
More information about the cfe-commits
mailing list