Commit Graph

85 Commits

Author SHA1 Message Date
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
Feoramund
6c5b96948e Enable all sanitizers on FreeBSD 2025-05-22 21:39:35 -04:00
Feoramund
c090a28b9d Add /usr/local/lib to FreeBSD linker path 2025-05-20 18:56:18 -04:00
Feoramund
591118c688 Use --sysroot instead of -Wl,-syslibroot on Darwin
This keeps the linker from using the wrong SDK and mirrors how we build
the Odin compiler itself in `build_odin.sh`.
2025-05-18 11:11:02 -04:00
Romāns Potašovs
dc75ee72ae add quotes for absolute path 2025-04-09 15:31:34 +03:00
IllusionMan1212
af91dd7c7a android: always link liblog 2025-04-08 01:30:55 +02:00
IllusionMan1212
7d2a8dc8ee fix: use the clang binary that's provided by the android NDK
always link against libandroid because it's needed by the glue code.
2025-04-07 13:02:14 +02:00
Hisham Aburaqibah
106427b127 fix(android): pass --sysroot when compiling the android glue code
This prevents a `function-like macro '__GLIBC_USE' is not defined`
compilation error from happening with newer NDK versions (I tried r28)
2025-04-05 15:18:27 +02:00
IllusionMan1212
2328e84077 fix cross compilation for linux_riscv 2025-04-05 15:18:21 +02:00
IllusionMan1212
44950d5f37 fix: cross-compilation for android on linux
add `-nodefaultlibs` when cross-linking for android to prevent clang from linking with libgcc

check build mode first before calling `init_android_values` to prevent printing a message
that tells the user to set `-android-keystore` if its not set and build mode is exe
2025-04-05 02:20:06 +02:00
gingerBill
edf97bdb03 Merge pull request #4970 from odin-lang/bill/android-subtarget
Very Very Rudimentary Support for Android
2025-03-28 09:02:26 +00:00
Dave Voutila
5274aa53b3 Fix linker invocation on OpenBSD.
Firstly, we need to explicitly request pthreads and also need to
mind the fact ports (like SDL2) install in /usr/local/lib.

Secondly, since OpenBSD 7.4 the system enforces indirect branch
targets on hardware platforms that support it. Until the LLVM
integration in Odin can be changed to emit proper branch targets
(e.g. endbr64 on amd64), we need to request the linker make the
resulting program opt-out of enforcement.
2025-03-27 10:37:36 -04:00
gingerBill
f13a075cd1 Begin work on odin package-android command 2025-03-26 18:03:36 +00:00
gingerBill
eee450516e Improve bodge for android execute build 2025-03-26 17:45:04 +00:00
gingerBill
45ecafd7b1 Really bodgy android packing system for odin build 2025-03-26 17:33:10 +00:00
gingerBill
8e884c6292 Remove _PATH on android environment variables 2025-03-26 16:50:35 +00:00
gingerBill
d48e7bb0b8 Migrate ODIN_ANDROID_* constants to build_settings.cpp; -minimum-os-version:<int> for -subtarget:android 2025-03-26 16:05:21 +00:00
gingerBill
518634405c Add -show-more-timings for Android stuff 2025-03-26 13:28:57 +00:00
gingerBill
e6718fcfcc Very very rudimentary support for -target:linux_arm64 -subtarget:android 2025-03-26 13:09:39 +00:00
gingerBill
4b64317296 Make things rely less on #if guards 2025-03-26 09:41:23 +00:00
gingerBill
15ece42e74 Print frameworks first on Darwin targets 2025-01-28 10:34:41 +00:00
gingerBill
d6633639dc Remove duplicates of .framework/.dynlib/.so in linker 2025-01-22 13:01:06 +00:00
gingerBill
b9886dfcc7 Add -linker:<string> to replace -lld and -radlink 2024-11-14 17:04:45 +00:00
gingerBill
21a25bddde Add -radlink 2024-11-14 16:32:26 +00:00
0dminnimda
5e308cef5e Revert further simplifiction 2024-11-04 15:50:43 +03:00
0dminnimda
8ad5e46ff8 Simplify further 2024-11-04 15:44:07 +03:00
0dminnimda
c26e7e17a1 Simplify use of pie 2024-11-04 15:39:51 +03:00
0dminnimda
35f1b0f11e Add support for linking as pie 2024-11-04 02:35:49 +03:00
Laytan Laats
bcf2b93c6e quote the dsymutil argument
Fixes #4417
2024-10-25 15:34:59 +02:00
Laytan Laats
6778598bc6 support the rpath changes on macos 2024-09-05 00:12:16 +02:00
Laytan
0aa971207b add -no-rpath 2024-09-04 22:38:19 +02:00
Laytan
1a7c1d107a set -rpath to \$ORIGIN and expect libraries next to executable just like Windows 2024-09-04 22:19:46 +02:00
Laytan
ca6ef95b03 add support for linux_riscv64 and freestanding_riscv64 2024-08-20 14:06:40 +02:00
Jeroen van Rijn
cc73e06a46 Allow precompiled resources with -resource:foo.res
And add them to the magic new feature.
2024-07-10 15:09:13 +02:00
Jeroen van Rijn
8dc4eca4d2 Allow using precompiled .res file. 2024-07-10 14:25:18 +02:00
gingerBill
b83822fd35 #3892 - Use temporary directory for asm file generation 2024-07-09 15:41:05 +01:00
Laytan Laats
6f1cc8071c wasm: add foreign import and linking of wasm object files 2024-07-02 15:28:08 +02:00
gingerBill
0c8a81d298 Fix #3819 2024-06-28 08:57:31 +01:00