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

Tom Stellard via cfe-dev cfe-dev at lists.llvm.org
Tue Dec 5 12:17:54 PST 2017


On 12/04/2017 10:00 AM, Andrew Kelley wrote:
> 
> 
> On Mon, Dec 4, 2017 at 9:59 AM, Tom Stellard <tstellar at redhat.com <mailto: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> <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.
>     >
> 

I've created a merge request for this one: https://bugs.llvm.org/show_bug.cgi?id=35537
to get feedback from Daniel on how important this fixes is, but I'm not going to
block -rc3 (scheduled for Thursday) waiting for feedback on this bug.

> 
>     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

This one was approved to merge, but I missed it for -rc2, so I will merge
it for -rc3.

> rL316370: COFF: better behavior when using as a library
> 

This isn't critical enough for -rc3.

> 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.
> 

We can't take patches that aren't upstream yet.

-Tom

> 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> <mailto: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> <mailto: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> <mailto: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> <mailto: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> <mailto: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> <mailto: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> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>>
>     >
>     >
> 
> 



More information about the cfe-dev mailing list