[Bug 250755] 12.2-RELEASE i386 GENERIC kernel fails to load
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Nov 1 12:04:12 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=250755
Dimitry Andric <dim at FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |arichardson at FreeBSD.org
--- Comment #4 from Dimitry Andric <dim at FreeBSD.org> ---
The bump to i686 was originally committed to head in base r353936, after base
r352030 bumped it to i586 at first. On 2020-01-07, so already 11 months ago,
this was all merged back to stable/12 in base r356460, as part of the clang
9.0.0 merge. Similarly, on 2020-05-05 for stable/11, in base r360658.
In any case, I have tried buiding stable/12 world with base r353936 and base
r352030 reverted, so effectively going back to i486 as default:
Index: contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/X86.cpp
===================================================================
--- contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/X86.cpp
(revision 367228)
+++ contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/X86.cpp
(working copy)
@@ -94,7 +94,7 @@
switch (Triple.getOS()) {
case llvm::Triple::FreeBSD:
- return "i686";
+ //return "i686"; FALLTHROUGH
case llvm::Triple::NetBSD:
case llvm::Triple::OpenBSD:
return "i486";
However, this leads to a -Werror problem again:
--- atomic.o ---
/usr/src/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c:178:3: error:
large atomic operation may incur significant performance penalty
[-Werror,-Watomic-alignment]
LOCK_FREE_CASES();
^
/usr/src/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c:160:9: note:
expanded from macro 'LOCK_FREE_CASES'
LOCK_FREE_ACTION(uint64_t);
\
^
/usr/src/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c:176:21: note:
expanded from macro 'LOCK_FREE_ACTION'
*((type *)dest) = __c11_atomic_load((_Atomic(type) *)src, model);
\
^
1 error generated.
*** [atomic.o] Error code 1
Originally we have -Wno-atomic-alignment in libcompiler_rt's Makefile, but we
removed it base r364782, because:
> After base r364753, there should be no need to suppress -Watomic-alignment
> warnings anymore for compiler-rt's atomic.c. This occurred because the
> IS_LOCK_FREE_8 macro was not correctly defined to 0 for mips, and this
> caused the compiler to emit a runtime call to __atomic_is_lock_free(),
> and that triggers the warning.
However, the changes in base r364753 are not enough for this particular
warning. Alex, you also worked on these warnings upstream, right? I think we
could probably add __i386__ to the following line in
contrib/llvm-project/compiler-rt/lib/builtins/atomic.c to work around it
(optionally with a check if the target CPU is really < i586):
/// 32 bit MIPS and PowerPC don't support 8-byte lock_free atomics
#if defined(__mips__) || (!defined(__powerpc64__) && defined(__powerpc__))
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list