https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=250755
Dimitry Andric <d...@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |arichard...@freebsd.org

--- Comment #4 from Dimitry Andric <d...@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.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to