gingerBill
3300b2c35a
Fix typo with linker section name problem
2026-10-05 18:48:25 +01:00
gingerBill
3b700c4656
Fix merge conflict with the same code
2026-10-05 18:47:24 +01:00
gingerBill
579bc065ea
Merge branch 'master' into bill/llvm-backend-improvements
2026-10-05 18:40:31 +01:00
gingerBill
20b3fdcd58
Accept an explicit -linker:radlink on Windows again, write no BOM for the default radlink's response file, and only require link.exe for -linker:msvc
2026-10-05 18:27:58 +01:00
A1029384756
b7e607737a
[windows-cross-compile] merge conflict
2026-10-05 08:34:06 -04:00
A1029384756
ba04d81d40
Merge remote-tracking branch 'upstream/master' into windows-cross-compile
2026-10-05 08:31:04 -04:00
Matthias Huerbe
2b82056df2
Fix -linker:radlink being rejected on Windows
2026-10-04 22:08:37 +02:00
gingerBill
18aead3ba1
Merge pull request #7729 from odin-lang/bill/llvm-backend-improvements
...
LLVM Backend Performance Improvements to Reduce Compile Times Part 2
2026-10-04 19:01:11 +01:00
Jeroen van Rijn
be590a7c35
Make radlink default linker on Windows
2026-10-04 13:00:24 +02:00
gingerBill
1396a36bd3
Prefer /OPT:NOICF when using -debug on Windows to improve linking performance
2026-10-03 23:25:17 +01:00
gingerBill
d31ed5ee5f
Use a response file for MSVC-style linkers (link.exe and radlink.exe) when the command line exceeds the CreateProcess limit of 32KiB
2026-10-03 12:02:15 +01:00
A1029384756
2f7a2b5246
[windows-cross-compile] don't require lld when cross-arch windows
2026-09-28 16:22:17 -04:00
A1029384756
967736fe66
[windows-cross-compile] permissive name matching
2026-09-28 15:58:14 -04:00
A1029384756
d89d196695
[windows-cross-compile] windows build fixes
2026-09-28 11:39:35 -04:00
A1029384756
4e00758c64
[windows-cross-compile] improve strictness
2026-09-28 11:27:28 -04:00
A1029384756
8a62dfdf7f
[windows-cross-compile] initial commit
2026-09-28 11:23:20 -04:00
gingerBill
085af86dac
Remove ' from __odin_entry_point
2026-09-02 12:49:40 +01:00
Yawning Angel
9aa84b5e3a
src: Use posix_spawnp instead of system() when invoking the linker
...
Thanks to Matteo on discord for pointing this out.
2026-08-31 04:40:04 +09:00
Michael Tesař
56c49287a6
Fix default linker timing label on non-Windows platforms
2026-08-06 22:08:28 +02:00
Jeroen van Rijn
6154d5c577
Further LLVM 14 support removal.
2026-06-30 21:16:48 +02:00
Jeroen van Rijn
47cf0d3f42
Merge pull request #6790 from A1029384756/linux_pie
...
[linux] change default settings to enable pie and full relro
2026-06-12 11:21:51 +02:00
A1029384756
43b057dfeb
[linux] change default settings to enable pie and full relro
2026-06-06 21:23:26 -04:00
lualvsil
1b07372547
AArch64 assembly support for foreign import
2026-06-05 23:23:50 -03:00
Ignacy Koper
d1915fa6f5
removed Haiku from compiler targets, and tests
...
Signed-off-by: Ignacy Koper <ignacy423@gmail.com >
2026-04-28 19:27:23 +02:00
Ignacy Koper
3e64a72bad
removed Essence from supported targets
...
Signed-off-by: Ignacy Koper <ignacy423@gmail.com >
2026-04-27 11:10:48 +02:00
xfitgd
b965e46d7c
fixes Android build
2026-03-19 08:27:09 +09:00
gingerBill
2de214418c
Fix LTO with debug info by passing -g
2026-03-15 21:29:54 +00:00
Andrés Botero
9df092759e
Add support for other Android architectures
2026-03-11 15:37:37 -05:00
Jesse Meyer
b8276065f9
Merge branch 'master' into lto-support
2026-02-03 20:52:52 -05:00
Jesse Meyer and Claude Opus 4.5
a0562dfd6e
Fix lld-link LTO jobs flag syntax on Windows
...
lld-link doesn't recognize /lldltojobs:N as a standalone flag and
treats it as a file path. Use /opt:lldltojobs=N instead.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 20:16:20 -05:00
Jesse Meyer and Claude Opus 4.5
43ad4a1d9f
Add ThinLTO support via -lto:thin and -lto:thin-files flags
...
- Add -lto:thin and -lto:thin-files CLI flags with validation
- Emit LLVM bitcode (.bc) instead of object files when LTO is enabled
- Pass -flto=thin and -flto-jobs to clang/lld linkers
- Guard linkage corrections to skip declarations without definitions
(required for LTO where declarations appear across modules)
- Allow module-per-file with LTO even at higher optimization levels
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 20:16:20 -05:00
gingerBill
f3daaa62fe
Merge pull request #6220 from laytan/fix-lto-macos
...
fix LTO on MacOS
2026-02-02 18:46:18 +00:00
Laytan Laats
afbbb829ea
fix LTO on MacOS
...
If no `-minimum-os-version` is given, ignore the `override-module`
warnings. The user not using, `-minimum-os-version` opts you into linker
warnings about target versions.
If a `-minimum-os-version` is provided, normalize it to a full version
`11` to `11.0.0` for example. The linker seems to want that when doing
LTO.
2026-02-02 18:13:48 +01:00
Jeroen van Rijn
6a07f70c1c
support -> supported
2026-02-02 17:57:50 +01:00
Jesse Meyer and Claude Opus 4.5
1a7f78b665
Add ThinLTO support via -lto:thin and -lto:thin-files flags
...
- Add -lto:thin and -lto:thin-files CLI flags with validation
- Emit LLVM bitcode (.bc) instead of object files when LTO is enabled
- Pass -flto=thin and -flto-jobs to clang/lld linkers
- Guard linkage corrections to skip declarations without definitions
(required for LTO where declarations appear across modules)
- Allow module-per-file with LTO even at higher optimization levels
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 09:04:53 -05:00
gingerBill
7125782bd2
Support -linker:mold on FreeBSD and NetBSD; Remove -use-lld and -use-radlink
2026-01-30 10:46:35 +00:00
Fabrice
622fa818bc
Adds static linking to non-windows platforms ( #6057 )
2026-01-13 20:56:40 +01:00
Wrath
6356cadfcc
Fix orca linking path
2025-10-15 10:08:44 -04:00
gingerBill
5f76d6ce15
Support -linker:mold
2025-09-19 10:25:11 +01:00
Jon Lipstate
231ce2da59
windows i386 support
2025-08-29 12:41:38 -07:00
Harold Brenes
bab4ce11fc
Rename iOS subtarget to iPhone for consistency.
...
Add `ODIN_PLATFORM_SUBTARGET_IOS` builtin constant which evaluated to
`true` when the platform is `Darwin` and the subtarget it either `iPhone` or `iPhoneSimulator`
2025-07-14 21:55:28 -04:00
Harold Brenes
77e5c71414
Fix correct versioned target triplet for iphonesimulator subtarget
...
- Always set the `-m*-version-min` linker flag for non-macOS Darwin subtargets
2025-07-14 14:28:07 -04:00
Harold Brenes
070943aa98
Provide default minimum version for iOS and apply its target triplet.
...
- Fix incorrect clang_path override for iOS during link stage.
2025-07-14 12:59:25 -04:00
Harold Brenes
4d2d890b4c
Fix accidental incorrect assignment
2025-07-13 20:29:54 -04:00
Harold Brenes
0e245fb40f
Updated iOS/iPhoneSimulator build support
2025-07-13 20:17:30 -04:00
xenobas
0ed54d3557
fix: escape object files with single quotes during linking
2025-06-20 19:40:24 +01:00
Feoramund
1fc390146f
Let -no-entry-point work for Windows DLLs
...
Fixes #4660
2025-06-10 08:54:28 -04:00
Jeroen van Rijn
405bf7cd55
Also clean up .dSym on Darwin
2025-06-01 15:59:38 +02:00
Jeroen van Rijn
0d0f311df1
Always provide /PDB option to linker if generating debug info.
...
radlink by default places the .PDB file in the working directory, even if /OUT says to place it elsewhere,
unlike link.exe, which places it next to the executable by default.
So, if compiling using -debug, we generate a PDB path even if -pdb-name wasn't used to override it.
2025-05-29 19:02:46 +02:00
Jeroen van Rijn
229c734820
Add comments to builtin.odin, documenting ODIN_* constants. ( #5218 )
...
And document constants not previously listed.
2025-05-26 18:58:59 +02:00