Age | Commit message (Collapse) | Author |
|
in fact, false is a much better default for UsesNonexecutableStackSection.
platforms that require it can reenable, instead, saving the rest of us an
unnecessary program header (causes trouble for some special binaries).
ok kettenis
|
|
ok hackroom@
|
|
runtime support code libcompiler_rt for this. This code uses functions that
live in libpthread, so code that uses TLS support will need to be linked
with -lpthread. This should allow more ports to build with base clang.
ok espie@
|
|
Requested by deraadt@
|
|
libtool generated configure scripts expect. Otherwise they might assume
shared libraries aren't supported.
From lld svn revisions 298568 and 298571.
Discussed with kettenis@
|
|
problems with configure scripts generated with libtool.m4 that would
otherwise have to be regenerated with a patched libtool.
Among other things this fixes the build of Mesa on arm64 with lld.
From lld svn revision 298532. ok kettenis@
|
|
versioned and end up as local symbols despite being explicitly listed as
global in the version script. This breaks out brk()/sbrk() implementation.
The diff is only a partial solution and unlikely to be accepted as-is
upstream. We'll keep it as a local diff until a better solution is found.
ok guenther@
|
|
|
|
ok patrick@
|
|
|
|
|
|
Requested by deraadt@, millert@ and some more.
|
|
ok hackroom@
|
|
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.
This is a temporary solution while guenther@ tries to figure out a better
way to force calls from inside libc via identifiers that are of hidden
visibility.
ok jsg@, patrick@
|
|
From Brad Smith.
|
|
zero-sized .eh_frame section, which confuses the strip from our
frankenbinutils.
With this diff lld seems to be usable as the arm64 system linker.
ok patrick@, jsg@
|
|
ok hackroom@
|
|
|
|
base gcc does the same. suggested by and ok jsg@
|
|
ok hackroom@
|
|
seems to cause bad behaviour. Instead call toStringRef() and use its
return value.
ok tom@
|
|
|
|
|
|
Don't try to upstream this; we are considering moving to a more standard
way that uses symbolic links to point the linker at the right version of
shared libraries.
|
|
|
|
development effort on OpenBSD/arm64.
|
|
ok hackroom@
|
|
Only having ELF is perfectly fine for us.
ok kettenis@
|
|
don't enforce it yet, but we want to go down that road. Additionally
the Pine64 seems to boot up with strict alignment on by default, so
this also implicitly fixes efiboot on that hardware.
ok kettenis@ phessler@ visa@
|
|
code generation. Use dyn_case_or_null instead of a static cast to
solve the crashes in the previous code.
ok stefan@ kettenis@
|
|
on any other platform and it causes a segfault in combination with our
IR Stack Guard.
"looks reasonable" kettenis@
"looks good to me" stefan@
|
|
|
|
|
|
to our linker. Additionally, we need to make sure the library path is
prefixed with the cross directory, which is sysroot.
ok kettenis@
|
|
(little-endian) target.
ok phessler@
|
|
cluebat & ok kettenis@
|
|
ok patrick@
|
|
ok stefan@, jsg@, patrick@
|
|
ok patrick@
|
|
ok pascal@
Original commit message:
[SSP] Do not set __guard_local to hidden for OpenBSD SSP
guard_local is defined as long on OpenBSD. If the source file contains
a definition of guard_local, it mismatches with the int8 pointer type
used in LLVM. In that case, Module::getOrInsertGlobal() returns a
cast operation instead of a GlobalVariable. Trying to set the
visibility on the cast operation leads to random segfaults (seen when
compiling the OpenBSD kernel, which also runs with stack
protection).
In the kernel, the hidden attribute does not matter. For userspace code,
guard_local is defined as hidden in the startup code. If a program
re-defines guard_local, the definition from the startup code will
either win or the linker complains about multiple definitions
(depending on whether the re-defined __guard_local is placed in the
common segment or not).
It also matches what gcc on OpenBSD does.
|
|
looks good to stefan@
|
|
does not tell our linker to produce that header for statically linked
binaries. Just create that header for all binaries and we are fine.
ok guenther@
|
|
use the old libstdc++ by specifying -stdlib=libstdc++.
with hints from/looks good to patrick@, ok kettenis@
|
|
ok kettenis@
|
|
ok hackroom@
|