Age | Commit message (Collapse) | Author |
|
|
|
Fixes creation of static binaries with base gcc and ld.lld.
OK kettenis@ a while ago, prodded by daniel@
|
|
registers with retguard enabled.
ok kettenis@
|
|
test program "try" already has a signal handler for SIGSEGV, but
OpenBSD generates a SIGBUS. Also set a handler for the latter to
exit cleanly.
from deraadt@; OK afresh1@
|
|
Disable options like clang -fno-unsafe-math-optimizations for all
targets except X86 (and SystemZ). This prevents a crash of clang,
reported by cwen@, in graphics/babl or emulators/mednafen for powerpc.
ok mortimer@
This change comes from llvm 11.x:
https://github.com/llvm/llvm-project/commit/d4ce862
Reland "[FPEnv][Clang][Driver] Disable constrained floating point on targets lacking support."
We currently have strict floating point/constrained floating point enabled
for all targets. Constrained SDAG nodes get converted to the regular ones
before reaching the target layer. In theory this should be fine.
However, the changes are exposed to users through multiple clang options
already in use in the field, and the changes are _completely_ _untested_
on almost all of our targets. Bugs have already been found, like
"https://bugs.llvm.org/show_bug.cgi?id=45274".
This patch disables constrained floating point options in clang everywhere
except X86 and SystemZ. A warning will be printed when this happens.
Use the new -fexperimental-strict-floating-point flag to force allowing
strict floating point on hosts that aren't already marked as supporting
it (X86 and SystemZ).
Differential Revision: https://reviews.llvm.org/D80952
|
|
This comment was from my commit of 2020-05-02,
> Don't make an illegal adde. Avoids fatal error on PowerPC.
When we merged LLVM 10, we got upstream's fix for the illegal adde
problem, and this comment became the only difference in this file
between us and upstream.
Found by Brad Smith.
|
|
ok hackroom
tested by plenty
|
|
ok hackroom
tested by plenty
|
|
LLVM 10 includes a different fix (https://reviews.llvm.org/D71954), so
this change (by kettenis on 2019-02-18) is no longer needed. Thanks to
Brad Smith for providing the removal diff.
ok kettenis@
|
|
ok hackroom
tested by plenty
|
|
on OpenBSD.
ok gkoehler@
|
|
was right that this isn't really needed. Now the list is the same as what
we had for the previous compiler-rt version.
|
|
|
|
ok kettenis@
|
|
ok kettenis@
|
|
ok kettenis@
|
|
ok kettenis@
|
|
|
|
|
|
|
|
|
|
llvm 9 and later take more care not to inline cmpxchg8b/cx8 with
-march=i486 instead calling __atomic_* functions. This in turn breaks
the build of a large number of ports.
To avoid having to add a lock or conditionally building individual ports
with -march=i586 change the default so 64 bit atomics will always be
available.
ok patrick@ sthen@ deraadt@
|
|
|
|
ok hackroom@
tested by plenty
|
|
ok hackroom
tested by plenty
|
|
ok hackroom
tested by plenty
|
|
|
|
|
|
"where is the kaboom?" deraadt@
|
|
|
|
|
|
|
|
development effort on OpenBSD/arm64.
|
|
|
|
ok hackroom@
|
|
Instead of just checking if *namep is NULL, also check if the string
pointed by *namep is empty. This is probably the original intent of
the code.
OK kettenis@ jsg@ deraadt@
|
|
An amd64 clang 10 binary built with lld 10 would abort after calling
execve(2) if it had been stripped. PT_LOAD segment aligment being
changed by strip was the cause.
Changing to 4K matches lld and results in a working binary after strip.
Introducing ELF_MINPAGESIZE of 4K (which is ELF_MAXPAGESIZE if not
defined by the arch) would have also worked but we don't support large
pages in userland.
ok kettenis@
|
|
ok jasper@
|
|
ok deraadt@
|
|
This makes sure the compiler defines the _CALL_ELF pre-processor symbol
correctly.
ok mortimer@
|
|
Appending "%n" to the format string to capture the output-length in bytes
(into an uninitialized variable) is exactly the same as using the printf
return value. Why did they do this so unnaturally?
(normally we don't change gcc import code, but I'm doing a study of %n
prevelance)
ok millert
|
|
|
|
ok deraadt@
|
|
Lost in the cleanup.
Noticed by deraadt@
|
|
powerpc. This matched what FreeBSD does.
ok patrick@
|
|
This was originally done so that other things in-tree such as vi could link
to libperl and to support non-shared vax.
This brings us more in-line with upstream and makes things more understandable.
It now links libperl.so to libm, which some software needs, and stops building
and installing libperl.a.
OK bluhm@
|
|
|
|
32-bit PowerPC doesn't have instructions for lock-free atomic ops on
8-byte values, and needs libcalls like __atomic_fetch_add_8(). In
code like "_Atomic long long a; a++;", clang doesn't emit a libcall.
This was causing linker errors on symbols like __sync_fetch_and_add_8.
Now that LLVM knows the max atomic size, its AtomicExpandPass changes
these 8-byte ops into libcalls.
ok mortimer@
|
|
All functional changes were committed already, this updates the
version number, Module::Corelist, and documentation.
|
|
|