Path to this page:
Subject: CVS commit: pkgsrc/devel/lld
From: Adam Ciarcinski
Date: 2019-06-02 10:37:39
Message id: 20190602083739.96D25FBB7@cvs.NetBSD.org
Log Message:
lld: updated to 8.0.0
lld 8.0.0:
Non-comprehensive list of changes in this release
ELF Improvements
* lld now supports RISC-V. (r339364)
* Default image base address has changed from 65536 to 2 MiB for i386 and 4 MiB \
for AArch64 to make lld-generated executables work better with automatic \
superpage promotion. FreeBSD can promote contiguous non-superpages to a \
superpage if they are aligned to the superpage size. (r342746)
* lld now attempts to place a .note segment in the first page of a generated \
file, so that you can find some important information (.note.gnu.build-id in \
particular) in a core file even if a core file is truncated by ulimit. (r349524)
* lld now reports an error if _GLOBAL_OFFSET_TABLE_ symbol is defined by an \
input object file, as the symbol is supposed to be synthesized by the linker. \
(r347854)
* lld/Hexagon can now link Linux kernel and musl libc for Qualcomm Hexagon ISA.
* Initial MSP430 ISA support has landed.
* lld now uses the sigrie instruction as a trap instruction for MIPS targets.
* lld now creates a TLS segment for AArch64 with a slightly larger alignment \
requirement, so that the loader makes a few bytes room before each TLS segment \
at runtime. The aim of this change is to make room to accomodate nonstandard \
Android TLS slots while keeping the compatibility with the standard AArch64 ABI. \
(r350681)
* The following flags have been added: --call-graph-profile, \
--no-call-graph-profile, --warn-ifunc-textrel, -z interpose, -z global, -z \
nodefaultlib
COFF Improvements
* PDB GUID is set to hash of PDB contents instead to a random byte sequence for \
build reproducibility.
* /pdbsourcepath: is now also used to make "cwd", "exe", \
"pdb" in the env block of PDB outputs absolute if they are relative, \
and to make paths to obj files referenced in PDB outputs absolute if they are \
relative. Together with the previous item, this makes it possible to generate \
executables and PDBs that are fully deterministic and independent of the \
absolute path to the build directory, so that different machines building the \
same code in different directories can produce exactly the same output.
* The following flags have been added: /force:multiple
* lld now can link against import libraries produced by GNU tools.
* lld can create thunks for ARM and ARM64, to allow linking larger images (over \
16 MB for ARM and over 128 MB for ARM64)
* Several speed and memory usage improvements.
* lld now creates debug info for typedefs.
* lld can now link obj files produced by cl.exe /Z7 /Yc.
* lld now understands %_PDB% and %_EXT% in /pdbaltpath:.
* Undefined symbols are now printed in demangled form in addition to raw form.
MinGW Improvements
* lld can now automatically import data variables from DLLs without the use of \
the dllimport attribute.
* lld can now use existing normal MinGW sysroots with import libraries and CRT \
startup object files for GNU binutils. lld can handle most object files produced \
by GCC, and thus works as a drop-in replacement for ld.bfd in such environments. \
(There are known issues with linking crtend.o from GCC in setups with DWARF \
exceptions though, where object files are linked in a different order than with \
GNU ld, inserting a DWARF exception table terminator too early.)
* lld now supports COFF embedded directives for linking to nondefault libraries, \
just like for the normal COFF target.
* Actually generate a codeview build id signature, even if not creating a PDB. \
Previously, the --build-id option did not actually generate a build id unless \
--pdb was specified.
WebAssembly Improvements
* Add initial support for creating shared libraries (-shared). Note: The shared \
library format is still under active development and may undergo significant \
changes in future versions. See: \
https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md
Files: