Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 01 Nov 2020 12:04:09 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 250755] 12.2-RELEASE i386 GENERIC kernel fails to load
Message-ID:  <bug-250755-227-kbDiXb2PMA@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-250755-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-250755-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D250755

Dimitry Andric <dim@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |arichardson@FreeBSD.org

--- Comment #4 from Dimitry Andric <dim@FreeBSD.org> ---
The bump to i686 was originally committed to head in base r353936, after ba=
se
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
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/X86.cpp=20=20=20=
=20=20=20
(revision 367228)
+++ contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/X86.cpp=20=20=20=
=20=20=20
(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: erro=
r:
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);=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20
\
        ^
/usr/src/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c:176:21: not=
e:
expanded from macro 'LOCK_FREE_ACTION'
  *((type *)dest) =3D __c11_atomic_load((_Atomic(type) *)src, model);=20=20=
=20=20=20=20=20=20=20=20=20
\
                    ^
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__))

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-250755-227-kbDiXb2PMA>