Commit Graph
524 Commits
Author SHA1 Message Date
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 MeyerandClaude 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 19b545e7cb Merge branch 'master' into bill/feature-using-stmt 2026-01-30 10:49:55 +00:00
gingerBill afe4369f6e Add #+feature force-type-assert which overrides -no-type-assert on a per-file basis 2026-01-26 15:37:54 +00:00
Karl Zylinski ab0de6d33a Added target freestanding_amd64_mingw for building freestanding on windows without MSVC installed (use for example clang-mingw) 2026-01-20 14:11:30 +01:00
gingerBill 557e854864 -disable-unwind 2026-01-15 18:12:39 +00:00
gingerBill d139c72fc2 Make using as a statement an opt-in with #+feature using-stmt 2025-12-21 11:53:44 +00:00
gingerBill 32f459e152 Change target triple of freestanding_amd64_win64 to x86_64-pc-windows-msvc to fix a bug with LLVM's code generation 2025-12-17 10:36:42 +00:00
Jeroen van Rijn f726f7aff4 Make Karl Zylinski happy 2025-10-27 16:23:54 +01:00