MauriceElliott
13763e5ed7
fixup! fix: reworked the playdate subtarget to fix issues with the requirement for single point precision floats, as well as an issue with function lowering when set to thumb mode only instrunctions.
2026-07-13 23:06:32 +01:00
MauriceElliott
11ef10bb5d
fix: reworked the playdate subtarget to fix issues with the requirement for single point precision floats, as well as an issue with function lowering when set to thumb mode only instrunctions.
2026-07-13 23:02:50 +01:00
misomosi
b9e0916189
Use better triple for ARM32 freestanding
2026-07-09 19:39:59 -04:00
Jeroen van Rijn
03652d7423
Improve custom output location for LLVM-IR, OBJ + ASM
...
Fixes #6926 .
If `build` is a subdirectory in the current directory, then `odin build . -out:build` will place `.S`, `.obj` and `.ll` files there if the corresponding `-build-mode` is given.
2026-07-02 14:19:56 +02:00
MauriceElliott
adc50a1184
fixup! fix: made suggested changes to add a playdate subtarget, updated help text and reduce required build flags for playdate to just the subtarget, no-movt and cortex-m7 added to default on playdate subtarget flag.
2026-07-01 21:21:02 +01:00
MauriceElliott
56cee0c2cf
fix: made suggested changes to add a playdate subtarget, updated help text and reduce required build flags for playdate to just the subtarget, no-movt and cortex-m7 added to default on playdate subtarget flag.
2026-07-01 21:18:28 +01:00
MauriceElliott
a3fa3476c6
feat(arm32 cdecl): Added thumb as the triple for cortex-m7. Updated the calling convention for cortex-m7 arm32 micro processors as the soft float register was being used when calling across the C ABI boundary causing guff data to be passed.
2026-06-30 20:07:36 +01:00
Maurice Elliott
3c52217338
Merge branch 'odin-lang:master' into master
2026-06-27 23:13:23 +01:00
gingerBill
40e54a97ed
Merge branch 'master' into bill/bedrock
2026-06-24 11:07:02 +01:00
MauriceElliott
954f988d2b
feat(build_settings): Added a section to init_build_context to target the thumbv7em-non-eabihf when the cortex-m7 processor is selected
2026-06-23 22:03:22 +01:00
gingerBill
85db8c68a9
Remove -stack-protector:default as none is now the default
2026-06-19 09:14:11 +01:00
gingerBill
11e7cff116
Change -stack-protector: default to none
2026-06-19 09:12:57 +01:00
gingerBill
69daa4d184
Merge pull request #6830 from A1029384756/stack-canaries
...
Stack canaries
2026-06-19 09:11:40 +01:00
A1029384756
863b2aea80
[stack-canaries] default to sspstrong
2026-06-14 13:36:55 -04:00
Krzysztof Furman
15deb7a118
Commented the workaround with links to issues, and put it behind a build flag.
2026-06-13 09:53:43 +01:00
A1029384756
8bd95d4082
[stack-canaries] fixed stack canaries on arm linux
2026-06-13 01:52:19 -04:00
A1029384756
3598e351a4
[stack-canaries] restricted to only non-arm
2026-06-12 23:56:55 -04:00
A1029384756
f850fef613
[stack-canaries] disallow stack canaries on non-intel linux
2026-06-12 23:54:26 -04:00
A1029384756
8ccee66157
[stack-canaries] fixed platform behavior
2026-06-12 23:27:32 -04:00
A1029384756
2373fabe47
[stack-canaries] added protection modes
2026-06-12 22:57:39 -04:00
A1029384756
286674a862
[no-plt] restricted to llvm 19+
2026-06-08 10:59:32 -04:00
A1029384756
da742fc526
[no-plt] enable no-plt behavior on linux arm64 and amd64 targets
2026-06-08 10:58:05 -04:00
A1029384756
43b057dfeb
[linux] change default settings to enable pie and full relro
2026-06-06 21:23:26 -04:00
jakubtomsu
dca7710471
fix error pos style env var overwriting arg
2026-05-27 20:02:34 +02:00
gingerBill
b0ee0bb635
Add @(fast_math={...}) + intrinsics.Fast_Math_Flags
2026-05-11 11:55:07 +01:00
gingerBill
d21fea404b
Merge pull request #6631 from heavyrain266/deprecate-haiku
...
removed Haiku from supported targets
2026-05-06 15:52:36 +01:00
gingerBill
942c1bff17
Merge branch 'master' into bill/bedrock
2026-05-05 13:57:14 +01:00
gingerBill
7788ca0242
Fix minor indentation problem
2026-05-05 12:16:42 +01:00
gingerBill
781b71e6ea
-disable-init-fini
2026-05-04 11:31:56 +01:00
gingerBill
cdc0efce43
-disallow-non-constant-globals
2026-05-04 11:28:57 +01:00
gingerBill
ea00291519
Begin work on -bedrock mode
...
Currently disables 128-bit integers, `map` type, and RTTI
2026-05-02 15:06:01 +01: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
jakubtomsu
e97f73e4aa
lightweight simplification and optimization passes in -o:minimal
2026-04-11 11:14:28 +02:00
jakubtomsu
00874e39ad
fix
2026-04-10 12:53:28 +02:00
jakubtomsu
bf4aa9b556
stronger +/- checks in check_target_feature_is_enabled
2026-04-10 12:47:12 +02:00
mtarik34b
ac17852f36
Add option to show docs in source order within each file
2026-03-28 02:26:39 +01:00
gingerBill
25c10c18cc
Remove tilde backend
2026-03-26 11:49:39 +00:00
Yawning Angel
62d78d61fa
src: Allow clang-style +/- for target features
...
This largely works as expected, except that as far as I can tell,
without explicit annotations added to the caller, (or a
`#force_inline`), the LLVM `target-features` function attribute
gets ignored by the inliner under the rationale of `-sse,-avx,-avx2`
is a subset of `+sse,+avx,+avx2`.
With `#force_no_inline` the correct code does get generated, but in
the regression I am trying to fix, the caller gratuitously also uses
SIMD, leading to horrific performance.
2026-03-19 19:25:23 +09:00
gingerBill
5fa274cb6a
-internal-rvo
2026-03-15 22:10:03 +00:00
gingerBill
b3b31cdba7
-internal-llvm-mem2reg
2026-03-15 22:04:27 +00:00
Jeroen van Rijn
7a8b6d189e
Merge pull request #6404 from botero-dev/android-platforms
...
Add support for other Android architectures
2026-03-11 22:34:25 +01:00
Andrés Botero
9df092759e
Add support for other Android architectures
2026-03-11 15:37:37 -05:00
gingerBill
b7bb7a1dc4
Use scope_reserve call directly
2026-03-11 14:22:36 +00:00
Jeroen van Rijn
6386b395de
Add -did-you-mean-limit:N
...
```
-did-you-mean-limit:<integer>
Sets the maximum number of suggestions the compiler provides.
Must be an integer >0.
If not set, the default limit is 10.
```
e.g. with a limit of 5
```
W:/Scratch/main.odin(44:7) Error: Undeclared name 'B1' for type 'E'
e = .B1
^^
Suggestion: Did you mean?
A23
A02
A19
A20
A21
... and 25 more ...
```
2026-02-13 15:15:03 +01:00
gingerBill
ae91b9b369
Add -show-import-graph
2026-02-10 22:16:15 +00: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
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