On Fri, May 16, 2014 at 12:11 AM, Marshall Clow <[email protected]>wrote:

>
> On May 15, 2014, at 10:08 AM, Jeffrey Yasskin <[email protected]> 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 <[email protected]> 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" <[email protected]
> >>> <mailto:[email protected]>> wrote:
> >>>
> >>>    D'oh, forgot to cc Marshall :-)
> >>>
> >>>
> >>>    On Tue, May 13, 2014 at 12:00 PM, Nico Weber <[email protected]
> >>>    <mailto:[email protected]>> 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
> >>> [email protected]
> >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> >>
> >>
> >> --
> >> http://www.nuanti.com
> >> the browser experts
> >>
>
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to