aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #6220 from laytan/fix-lto-macosgingerBill13 days1-1/+26
|\ | | | | fix LTO on MacOS
| * fix LTO on MacOSLaytan Laats13 days1-1/+26
| | | | | | | | | | | | | | | | | | | | 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.
* | support -> supportedJeroen van Rijn13 days1-1/+1
|/
* Add ThinLTO support via -lto:thin and -lto:thin-files flagsJesse Meyer14 days1-0/+30
| | | | | | | | | | | - 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>
* Merge branch 'master' into bill/feature-using-stmtgingerBill2026-01-301-3/+16
|\
| * Add `#+feature force-type-assert` which overrides `-no-type-assert` on a ↵gingerBill2026-01-261-1/+7
| | | | | | | | per-file basis
| * Added target freestanding_amd64_mingw for building freestanding on windows ↵Karl Zylinski2026-01-201-0/+10
| | | | | | | | without MSVC installed (use for example clang-mingw)
| * `-disable-unwind`gingerBill2026-01-151-0/+1
| |
* | Make `using` as a statement an opt-in with `#+feature using-stmt`gingerBill2025-12-211-0/+5
|/
* Change target triple of `freestanding_amd64_win64` to ↵gingerBill2025-12-171-1/+1
| | | | `x86_64-pc-windows-msvc` to fix a bug with LLVM's code generation
* Make Karl Zylinski happyJeroen van Rijn2025-10-271-0/+1
|
* Merge pull request #5797 from harold-b/hb.export-linked-libsgingerBill2025-10-121-0/+2
|\ | | | | Add build flag to export the linked libraries
| * Add `-export-linked-libs-file` build flag.Harold Brenes2025-10-121-0/+2
| | | | | | | | This build flag writes a list of the libraries that were linked during the build to the specified file.
* | Check for `+` and `-` in the target features setYhya Ibrahim2025-10-111-0/+12
|/
* Rename to `-build-diagnostics`gingerBill2025-09-291-1/+1
|
* Add `-para-poly-diagnostics`gingerBill2025-09-291-0/+2
|
* Remove `_test.odin` filtergingerBill2025-09-271-8/+0
|
* Support `-linker:mold`gingerBill2025-09-191-0/+2
|
* More improvements to minimize code gen sizegingerBill2025-09-181-0/+1
|
* Try moving parapoly procs into a separate module when doing weak ↵gingerBill2025-09-181-0/+1
| | | | monomorphization
* Multithread "check all scope usages"gingerBill2025-09-101-1/+1
|
* Minimize more thread contentiongingerBill2025-09-101-1/+1
|
* Minor clean up of permanent/temporary arena usagegingerBill2025-09-101-5/+5
|
* Add `-integer-division-by-zero:all-bits`gingerBill2025-08-101-5/+14
|
* Add `#+feature global-context`gingerBill2025-08-101-0/+7
| | | | This allows to use of `context` in the global scope on a per file basis.
* Add `-integer-division-by-zero:self`gingerBill2025-08-081-1/+6
|
* Add `#+feature integer-division-by-zero:<string>`gingerBill2025-08-081-0/+12
|
* Define the behaviour of integer division by zerogingerBill2025-08-081-0/+7
|
* Add `string16` and `cstring16` (UTF-16 based strings)gingerBill2025-08-021-4/+4
|
* fix flagLaytan2025-07-291-1/+1
|
* saner stack linker flags for WASMLaytan2025-07-291-0/+7
| | | | Supersedes #5425
* Merge pull request #5081 from Lperlind/vet-explicit-allocatorsgingerBill2025-07-221-0/+3
|\ | | | | Add -vet-explicit-allocators
| * Add -vet-explicit-allocatorsLucas Perlind2025-04-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | This vet flag will make it so that allocators must be explicitly used in places where context.allocator and context.temp_allocator are a procedure parameter. The goal of this flag is to prevent using the context.allocator in cases where a different allocator was meant to be used. Some code bases default context.allocator to nil/panic allocator to catch this at runtime. This effectively makes it a compile time error instead.
* | Check for invalid subtargets.Harold Brenes2025-07-201-11/+20
| | | | | | | | | | | | | | | | - Add 'ios' pseudo-subtarget which triggets with either iPhone or iPhoneSimulator subtargets. - Treat an explicit 'default' subtarget as exclusive only to the default subtarget, not an other platform-compatible subtargets. - 'generic' continues to resolve to true for any platform-compatible subtarget as it names appears to imply such behavior.
* | Missing rename in panic stringHarold Brenes2025-07-141-1/+1
| |
* | Rename `iOS` subtarget to `iPhone` for consistency.Harold Brenes2025-07-141-5/+5
| | | | | | | | | | Add `ODIN_PLATFORM_SUBTARGET_IOS` builtin constant which evaluated to `true` when the platform is `Darwin` and the subtarget it either `iPhone` or `iPhoneSimulator`
* | Fix correct versioned target triplet for iphonesimulator subtargetHarold Brenes2025-07-141-1/+10
| | | | | | | | - Always set the `-m*-version-min` linker flag for non-macOS Darwin subtargets
* | Provide default minimum version for iOS and apply its target triplet.Harold Brenes2025-07-141-4/+8
| | | | | | | | - Fix incorrect clang_path override for iOS during link stage.
* | Updated iOS/iPhoneSimulator build supportHarold Brenes2025-07-131-10/+25
| |
* | [source-code-locations] - added options to show, obfuscate, and hide source ↵Hayden Gray2025-06-261-1/+8
| | | | | | | | code locations (#5412)
* | Typo fixJeroen van Rijn2025-06-011-1/+1
| |
* | Also clean up .dSym on DarwinJeroen van Rijn2025-06-011-10/+18
| |
* | Allow overriding object extension in `-build-mode:obj`Feoramund2025-05-301-7/+35
| |
* | Remove trailing whitespaceFeoramund2025-05-301-1/+1
| |
* | Always provide /PDB option to linker if generating debug info.Jeroen van Rijn2025-05-291-4/+12
| | | | | | | | | | | | | | 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.
* | Add comments to `builtin.odin`, documenting ODIN_* constants. (#5218)Jeroen van Rijn2025-05-261-67/+68
| | | | | | And document constants not previously listed.
* | Rename -keep-test-executable to -keep-executableJeroen van Rijn2025-05-231-1/+1
| |
* | Tweak #5202Jeroen van Rijn2025-05-231-1/+0
| | | | | | | | Back out the new `-build-only` for tests in favor of the more established `-build-mode:test`, but retain the new `-keep-test-executable` option and default cleanup of test executables.
* | Enable all sanitizers on FreeBSDFeoramund2025-05-221-6/+6
| |
* | Delete test executable after running, add `-keep-test-executable`Feoramund2025-05-221-0/+1
| |