- [Sparc] Fix addressing mode when using 64-bit values in inline assembly
- [Sparc] Use synthetic instruction clr to zero register instead of sethi
from Brad (maintainer)
This seems to be the way almost all Linux distributions and BSDs ship
LLVM and is what Mesa expects. There are concerns this may cause issues
if ports start linking it, hopefully this won't happen as everything
links libLLVM-X.Y.so where X.Y is the branch version which will have the
same ABI throughout X.Y.Z releases. The rust port explicitly links
statically even if shared libLLVM is available.
Patch cmake files in a similiar way to a patch in NetBSD pkgsrc to
correct symbols not getting added to the shared library on OpenBSD.
Use the documented cmake var for RTTI while here.
ok brad (MAINTAINER) sthen@ bcallah@
Brings us in line with clang in base, and should fix the builds errors
due to membar instructions used in libestdc++ headers. ok kettenis@,
maintainer timeout.
The compiler is generally free to allocate general purpose registers in
whatever order it chooses. Reasons for choosing one register before another
usually include compiled instruction size (avoidance of REX prefixes, etc.)
or usage conventions, but somehow haven't included security implications in
the compiled bytecode. Some bytecode is more useful in polymorphic ROP
sequences than others, so it seems prudent to try to avoid that bytecode
when possible.
from Brad (maintainer)
Avoid using XZR/WZR directly as operands to split stores of zero
vectors. Doing so can lead to the XZR/WZR being used by an instruction
that doesn't allow it (e.g. add)
from Brad (maintainer)
Fix a logic error in DwarfExpression::addMachineReg()
This fixes PR34323 and thus splitting undescribable registers into
smaller, describable sub-registers.
from Brad (maintainer)
- Use int3 trap padding between functions instead of trapsleds with a leading jump
- Declare lgamma library builtins as never being const
- Enable the kprintf format attribute
From Brad. I haven't tested (too many hangs for ports building) but since
it currently fails because there's no gcc4 on the arch, it can't make
things worse than they already are.
- Add "(compatible with GNU linkers)" to the -version output
- Print out "supported targets".
- Update/fix PIE defaults
- -z nodlopen has been commited upstream
from Brad (maintainer)
Disable loop idiom recognition for _libc_memset and _libc_memcpy. These are
the internal names we use in libc for memset and memcpy and having the
compiler optimize them as calls to memset and memcpy will lead to infinite
recursion.
from Brad (maintainer)
On those architectures the .text section of the executables is too big
for the 32M immediate branch offset. ld --relax is supposed to fix
things on powerpc, but it is actually ineffective here. cc -mlong-calls
creates branches instructions using a full 32 bits register; FreeBSD
uses the same workaround.
A fix for lib/csu is still needed to avoid an overflow between .init
and .fini sections. powerpc hasn't been tested, but we know that
devel/llvm is already broken there anyway.
ok Brad (maintainer)