This isn't *the* most ideal approach and in future we may want
to select specific fallbacks other than "generic".
Signed-off-by: Ikey Doherty <ikey@serpentos.com>
* macOS debuginfo: add support for using `atos` to get file:line info in backtraces.
Resolves issue #3864
* Return to LLVM default of emitting __debug_line section in __DWARF segment as a debug section (not regular)
* Re-enable test now that issue #3280 is fixed.
* Allow full path names in exception file:line debug output.
* Allow full path names in exception file:line debug output.
* Add changelog entry
`llvm::AttrBuilder` was changed to require an LLVMContext in its constructor, and can no longer be copied.
declare `DEBIG_TYPE` after includes for the GC2Stack pass as `llvm/Support/GenericDomTreeConstruction.h `(included from `llvm/IR/Dominators.h` `#define`s and `#undef`s it.
`llvm::DIBuilder::createExpression` now takes an `ArrayRef<uint64_t>` instead of `int64_t`. EmitLocalVariable has similarly changed
Hardcoded instead of pre-setting ldc2.conf for the prebuilt Android
packages, and thus simplifying cross-compilation (e.g., issue #3437).
Also use `core2` instead of `x86-64` for Android x86_64.
Bitrig is now defunct OpenBSD fork. It released 1.0 in 2014 and hasn't
had another release since.
I'm not sure if LDC officially supports it, just delete an occurence of
bitrig from the source.
Ignore it if the default triple (as opposed to the host) has the desired
bitness already. So only relevant if the default triple doesn't match
the host. I think that should render LDC-specific NO_ARCH_VARIANT in
dmd-testsuite's Makefile obsolete (if set, d_do_test won't add -m32/-m64
by default).
Also fix the config file section lookup in case both -m32 and -m64 are
specified.
At least on Linux it appears to default to v4 or newer, which druntime's
rt.backtrace.dwarf doesn't handle yet.
This fixes tests/codegen/exception_stack_trace.d on Linux.
I.e., llvm/CodeGen/CommandFlags.h which in turn includes
llvm/MC/MCTargetOptionsCommandFlags.h.
This gets rid of a few duplicates on our side and includes about 35
(depending on LLVM version) new command-line options. LLVM provides a
helper function to set up the TargetOptions according to (most of) these
options.
Newer LLVM versions may add new options and we'll automatically inherit
them, including setting up the TargetOptions accordingly.
I did my best (TM) to remove a few unused/undesirable options and hide all
remaining new ones except for `-fp-contract`. The lists will need to be
tweaked from time to time.
Modern Linux distributions have their toolchain generate PIC code for
additional security features (like ASLR).
Since there is no (sane) way to detect whether the toolchain defaults to
PIC code, we simply default to PIC code on all Linux
distributions to avoid linking issues on these OSes.
The relocation model can be switched back to non-PIC code manually at
any time.