aboutsummaryrefslogtreecommitdiff
path: root/src/link/Coff/lld.zig
AgeCommit message (Collapse)Author
2023-01-05coff: fixup module_definition_file hashingkcbanner
2023-01-04coff: include version and module_definition_file in the hashkcbanner
2023-01-04windows: revert changes made to lld.zig to support the way CMake calls zig ↵kcbanner
cc on Windows-Clang
2023-01-04windows: fixes to support using zig cc/c++ with CMake on Windowskcbanner
Using zig cc with CMake on Windows was failing during compiler detection. -nostdinc was causing the crt not to be linked, and Coff/lld.zig assumed that wWinMainCRTStartup would be present in this case. -nostdlib did not prevent the default behaviour of linking libc++ when zig c++ was used. This caused libc++ to be built when CMake ran ABI detection using zig c++, which fails as libcxxabi cannot compile under MSVC. - Change the behaviour of COFF -nostdinc to set /entry to the function that the default CRT method for the specified subsystem would have called. - Fix -ENTRY being passed twice if it was specified explicitly and -nostdlib was present. - Add support for /pdb, /version, /implib, and /subsystem as linker args (passed by CMake) - Remove -Ddisable-zstd, no longer needed - Add -Ddisable-libcpp for use when bootstrapping on msvc
2023-01-04fixup formattingkcbanner
2023-01-04fixup: remove leftover logkcbanner
2023-01-04windows: supporting changes for boostrapping via msvckcbanner
- add support for passing through .def files to the linker, required for building libLTO.dll in LLVM - fixup libcpp linking conditionals - add option to skip linking zstd for use in bootstrapping (when building against an LLVM with LLVM_ENABLE_ZSTD=OFF)
2023-01-04build: first pass on geting stage3 building under x64_64-windows-msvckcbanner
2022-12-09Revert "coff: specify default base path for relative source paths in pdb"Jakub Konka
2022-12-06remove `-fstage1` optionAndrew Kelley
After this commit, the self-hosted compiler does not offer the option to use stage1 as a backend anymore.
2022-11-20uefi: Delete unneeded alignment and use default 4KDavid Gonzalez Martin
Closes #7484. Right now for UEFI targets an alignment of 32 is being used for no reason other than support a rare bytecode. As this is far from the standard case, removing this alignment and using the default one, as most toolchains do, should be the desired behavior.
2022-11-19linker: fail the compilation if there were linker errorsCasey Banner
There was no check for linker errors after flushing, which meant that if the link failed the build would continue and try to copy the non-existant exe, and also write the manifest as if it had succeeded. Also adds parsing of lld output, which is surfaced at the end of the compilation with the other errors instead of via stderr
2022-11-10win: combine PDB fixes into one changesetJakub Konka
2022-11-10Windows: Explicitly pass PDB paths to lld-linkJ.C. Moyer
On Windows, lld-link resolves PDB output paths using `/` and embeds the result in the final executable, which breaks some native tooling like WPR/WPA. This commit overrides the default behavior of lld-link by explicitly setting the output PDB filename and binary-embedded path.
2022-11-04all: rename i386 to x86Ali Chraghi
2022-08-30coff: reorganize the linkerJakub Konka