[cfe-dev] [llvm-dev] [Release-testers] 5.0.1-rc2 has been tagged

Andrew Kelley via cfe-dev cfe-dev at lists.llvm.org
Mon Dec 4 10:00:47 PST 2017


On Mon, Dec 4, 2017 at 9:59 AM, Tom Stellard <tstellar at redhat.com> wrote:

> On 12/01/2017 10:47 AM, Andrew Kelley wrote:
> > Zig tests using Debug build of 5.0.1rc2 hit this bug:
> https://bugs.llvm.org/show_bug.cgi?id=34452 <https://bugs.llvm.org/show_
> bug.cgi?id=34452>
> > I suppose the fix has not been backported to 5.0.1.
> >
>
>
> At this point in the release process, we usually only accept critical fixes
> or fixes for regressions.
>

That's fair; I'm content to wait for llvm 6 for this patch. Currently, zig
officially depends on a non-assertions-enabled build of LLVM 5 due to this
bug, but we will support LLVM assertions when 6 is released.


>
> I'm not familiar with Zig tests, can you give me a little more information
> about these tests and how these failures will impact users.
>

Zig is a frontend to LLVM just like clang. The tests do a reasonably
thorough job of testing the LLVM API, libclang API, and LLD test cases that
the zig compiler depends on. There are no new regressions since 5.0.0, so
users will continue to use zig like normal after 5.0.1 is released.


>
> Also are these 4 lld patches backports from trunk?  If so, which revsions
> are they?
>

2 of them are from trunk.

rL311734: Fix the ASM code generated for __stub_helpers section
rL316370: COFF: better behavior when using as a library

2 of them are not:
 * workaround for buggy MACH-O code: This is not a high enough quality
patch to go into trunk; when someone on the zig team has time we will do a
better fix for the root cause and send the patch upstream. No one on the
LLD team has had motivation to fix this bug, which is
https://bugs.llvm.org/show_bug.cgi?id=32254
 * Fix for LLD on linker scripts with empty sections: The bug this fixes is
not present in trunk, and this patch will be removed when llvm 6 is
released.

I'll send the c header patches upstream separately.


>
> Thanks,
> Tom
>
> > So I created a Release build of 5.0.1rc2 and all zig tests pass, with
> the following patches:
> >
> > * Patches to LLD:
> >
> > commit a206ef34bbbc46017e471063a4a1832c1ddafb0a
> > Author: Andrew Kelley <superjoe30 at gmail.com <mailto:superjoe30 at gmail.com
> >>
> > Date:   Fri Dec 1 12:11:55 2017 -0500
> >
> >     LLD patch: Fix the ASM code generated for __stub_helpers section
> >
> >     This applies 93ca847862af07632197dcf2d8a68b9b27a26d7a
> >     from the llvm-project git monorepo to the embedded LLD.
> >
> > commit ddca67a2b94f68985789fc8254fd1326e26269f6
> > Author: Andrew Kelley <superjoe30 at gmail.com <mailto:superjoe30 at gmail.com
> >>
> > Date:   Fri Dec 1 12:09:55 2017 -0500
> >
> >     LLD patch: workaround for buggy MACH-O code
> >
> >     This reapplies 1a1414fc42c7beb25b6de4134d99884ea6544b57
> >     to the embedded LLD.
> > diff --git a/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp
> b/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp
> > index d687ca5d..07958da4 100644
> > --- a/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp
> > +++ b/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp
> > @@ -617,7 +617,6 @@ void ArchHandler_x86_64::applyFixupFinal(
> >      // Fall into llvm_unreachable().
> >      break;
> >    }
> > -  llvm_unreachable("invalid x86_64 Reference Kind");
> >  }
> >
> >  void ArchHandler_x86_64::applyFixupRelocatable(const Reference &ref,
> >
> >
> > commit fa45407e78c7a20281bf063f659d74f86c127ea1
> > Author: Andrew Kelley <superjoe30 at gmail.com <mailto:superjoe30 at gmail.com
> >>
> > Date:   Fri Dec 1 12:08:16 2017 -0500
> >
> >     LLD patch: Fix for LLD on linker scripts with empty sections
> >
> >     This reapplies 569cf286ff79a10126b9f20f39fa8c64df9b8b25
> >     to the embedded LLD.
> > diff --git a/deps/lld/ELF/LinkerScript.cpp b/deps/lld/ELF/LinkerScript.
> cpp
> > index 8bdbd8db..614f5e2c 100644
> > --- a/deps/lld/ELF/LinkerScript.cpp
> > +++ b/deps/lld/ELF/LinkerScript.cpp
> > @@ -751,7 +751,7 @@ void LinkerScript::adjustSectionsAfterSorting() {
> >      if (auto *Cmd = dyn_cast<OutputSectionCommand>(Base)) {
> >        Cmd->MemRegion = findMemoryRegion(Cmd);
> >        // Handle align (e.g. ".foo : ALIGN(16) { ... }").
> > -      if (Cmd->AlignExpr)
> > +      if (Cmd->AlignExpr && Cmd->Sec)
> >          Cmd->Sec->updateAlignment(Cmd->AlignExpr().getValue());
> >      }
> >    }
> >
> >
> > commit 9ea23272fac7f4580d29f7ee557108883f127a5d
> > Author: Andrew Kelley <superjoe30 at gmail.com <mailto:superjoe30 at gmail.com
> >>
> > Date:   Fri Dec 1 12:06:33 2017 -0500
> >
> >     LLD patch: COFF: better behavior when using as a library
> >
> >     This applies de776439b61fb71c1256ad86238799c758c66048
> >     from the LLVM git monorepo to the embedded LLD.
> >
> >
> >
> > * Patches to clang headers:
> >
> > diff --git a/c_headers/stdarg.h b/c_headers/stdarg.h
> > index d603d353..101426ff 100644
> > --- a/c_headers/stdarg.h
> > +++ b/c_headers/stdarg.h
> > @@ -26,14 +26,10 @@
> >  #ifndef __STDARG_H
> >  #define __STDARG_H
> >
> > -/* zig: added because macos _va_list.h was duplicately defining va_list
> > - */
> >  #ifndef _VA_LIST
> > -#ifndef _VA_LIST_T
> >  typedef __builtin_va_list va_list;
> >  #define _VA_LIST
> >  #endif
> > -#endif
> >  #define va_start(ap, param) __builtin_va_start(ap, param)
> >  #define va_end(ap)          __builtin_va_end(ap)
> >  #define va_arg(ap, type)    __builtin_va_arg(ap, type)
> > @@ -50,9 +46,6 @@ typedef __builtin_va_list va_list;
> >  #ifndef __GNUC_VA_LIST
> >  #define __GNUC_VA_LIST 1
> >  typedef __builtin_va_list __gnuc_va_list;
> > -/* zig: added because glibc stdio.h was duplicately defining va_list
> > - */
> > -#define _VA_LIST_DEFINED
> >  #endif
> >
> >  #endif /* __STDARG_H */
> > diff --git a/c_headers/stddef.h b/c_headers/stddef.h
> > index 3b55d42c..73549967 100644
> > --- a/c_headers/stddef.h
> > +++ b/c_headers/stddef.h
> > @@ -48,13 +48,7 @@
> >  #if !__has_feature(modules)
> >  #define _PTRDIFF_T
> >  #endif
> > -
> > -/* Zig: wrap in _PTRDIFF_T_DEFINED to protect against mingw defining it
> twice */
> > -#if !defined(_PTRDIFF_T_DEFINED)
> >  typedef __PTRDIFF_TYPE__ ptrdiff_t;
> > -#define _PTRDIFF_T_DEFINED
> > -#endif
> > -
> >  #endif
> >  #undef __need_ptrdiff_t
> >  #endif /* defined(__need_ptrdiff_t) */
> > @@ -65,24 +59,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
> >  #if !__has_feature(modules)
> >  #define _SIZE_T
> >  #endif
> > -
> > -/* Zig: added to avoid collisions with mingw */
> > -#if !defined(_SIZE_T_DEFINED_)
> > -#if !defined(_SIZE_T_DEFINED)
> > -#if !defined(_BSD_SIZE_T_DEFINED_)
> > -#if !defined(_SIZE_T_DECLARED)
> >  typedef __SIZE_TYPE__ size_t;
> > -#define _SIZE_T_DEFINED_
> > -#define _SIZE_T_DEFINED
> > -#define _BSD_SIZE_T_DEFINED_
> > -#define _SIZE_T_DECLARED
> > -#endif
> > -#endif
> > -#endif
> > -#endif
> > -
> > -
> > -
> >  #endif
> >  #undef __need_size_t
> >  #endif /*defined(__need_size_t) */
> > @@ -110,22 +87,7 @@ typedef __SIZE_TYPE__ rsize_t;
> >  #define _WCHAR_T_DEFINED
> >  #endif
> >  #endif
> > -
> > -/* zig added to prevent duplicate definition with mingw */
> > -#if !defined(__INT_WCHAR_T_H)
> > -#if !defined(_GCC_WCHAR_T)
> > -#if !defined(_WCHAR_T_DECLARED)
> > -#if !defined(_WCHAR_T_DEFINED)
> > -#define __INT_WCHAR_T_H
> > -#define _GCC_WCHAR_T
> > -#define _WCHAR_T_DECLARED
> > -#define _WCHAR_T_DEFINED
> >  typedef __WCHAR_TYPE__ wchar_t;
> > -#endif
> > -#endif
> > -#endif
> > -#endif
> > -
> >  #endif
> >  #endif
> >  #undef __need_wchar_t
> >
> >
> >
> >
> >
> > On Fri, Dec 1, 2017 at 10:30 AM, Sylvestre Ledru via llvm-dev <
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> >
> >     On 30/11/2017 01:19, Tom Stellard via Release-testers wrote:
> >     > Hi,
> >     >
> >     > I've tagged the 5.0.1-rc2 release, go ahead and start testing and
> report
> >     > your results.
> >     Besides an intermittent issue with mips64el (not a recent
> regression), looks great!
> >     Thanks
> >     S
> >
> >     _______________________________________________
> >     LLVM Developers mailing list
> >     llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> >     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20171204/4ea30328/attachment.html>


More information about the cfe-dev mailing list