aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* darwin: fix ld warnings and set minimum os versionLaytan Laats2024-03-231-14/+20
|
* darwin: allow cross linking darwin_amd64 from darwin_arm64Laytan Laats2024-03-201-0/+1
|
* Merge pull request #3297 from laytan/linker-improvementsgingerBill2024-03-201-2/+25
|\ | | | | linker improvements
| * linker improvementsLaytan Laats2024-03-191-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `path_to_fullpath` did different things on Windows&Unix, an attempt to bring them closer together was made here. This was prompted by the compiler completely ignoring `foreign import "foo.dylib"` when `foo.dylib` does not exist (because `path_to_fullpath` returns an empty string). Causing just unresolved symbol errors, when on Windows it would pass along the path to the linker and actually say it doesn't exist, which is now also the case for Unix. This also fixes some checker errors that relied on the Windows behaviour, for example: `Error: File name, , cannot be as a library name as it is not a valid identifier`. Made `-no-crt` require either `-default-to-nil-allocator` or `-default-to-panic-allocator` on Unix, the current default allocators rely on libc and this was not obvious and would immediately bring up unresolved symbol errors for the linked memory management functions, or just link with libc anyways because it was foreign imported. Added a suggestion to install `nasm` with the user's package manager when assembling using `nasm` fails on Unix, I saw some confusion about it in the Discord. Ignore explicit foreign imports of libc. It is already linked in later on in the linking process and would otherwise (at least on macOS) cause linker warnings for duplicate libraries. This also makes it so when using `-no-crt` and importing something that requires libc, linker errors are given (like I would expect), instead of silently still linking with libc because it was foreign imported.
* | Add `-json-errors`gingerBill2024-03-191-2/+6
| |
* | Serialize errors to make them sortable, deterministic, and generally more ↵gingerBill2024-03-191-0/+4
|/ | | | control
* fix core:thread and a memory leakavanspector2024-02-271-6/+2
| | | | in the future probably native non-pthread implementation for haiku will be required
* add haiku build tokenavanspector2024-02-251-0/+1
|
* small fixesavanspector2024-02-251-0/+2
|
* Improve Haiku supportavanspector2024-02-251-0/+66
|
* fix ciLaytan Laats2024-02-071-3/+3
|
* Improve error handling for missing library collection provided by the compilergingerBill2024-02-071-10/+16
|
* Merge pull request #3141 from laytan/add-all-packages-flag-for-testsgingerBill2024-01-311-0/+1
|\ | | | | Add `odin test -all-packages` to be able to test an entire project
| * Add `odin test -all-packages` to be able to test an entire projectLaytan Laats2024-01-261-0/+1
| |
* | Freestanding - default to nil allocator; wasm - default to panic allocatorgingerBill2024-01-281-1/+10
| |
* | `-default-to-panic-allocator`gingerBill2024-01-281-1/+3
| |
* | Move `core:runtime` to `base:runtime`; keep alias aroundgingerBill2024-01-281-1/+21
|/
* Expand -subsystem option on WindowsJeroen van Rijn2024-01-181-10/+40
| | | | | | | | W:\Odin>odin run sketch.odin -file -subsystem:foo Invalid -subsystem string, got oo. Expected one of: BOOT_APPLICATION, CONSOLE (default), EFI_APPLICATION, EFI_BOOT_SERVICE_DRIVER, EFI_ROM, EFI_RUNTIME_DRIVER, NATIVE, POSIX, WINDOWS (or WINDOW), WINDOWSCE We now also set the constant ODIN_WINDOWS_SUBSYSTEM, which is "" for non-Windows targets.
* Add WINDOWS_SUBSYSTEM constant boolJeroen van Rijn2024-01-181-10/+9
| | | | true when -subsystem:windows for Windows targets, false otherwise.
* Use default calling convention for arm target for now - not 100% sure this ↵codename-irvin2024-01-161-3/+2
| | | | is correct
* Add freestanding aarch64 targetcodename-irvin2024-01-151-1/+9
|
* src: `enable_target_feature` should add features, not overwriteYawning Angel2024-01-071-1/+3
| | | | | | | | | | | | | | | | `llvm_features` being empty is the default state, and implies the presence of certain features. Previously if any target features were explicitly enabled by the `enable_target_feature` attribute, they were added comma separated to `llvm_features`. For example: `lzcnt,popcnt,...,sse4.2,sse` This was causing LLVM to try to target a CPU that *ONLY* has the explicitly enabled features. This now will prefix explicitly enabled features with a `+`, and preserve the existing `llvm_features` string by appending to it if it is set.
* Clean up error block usagegingerBill2024-01-051-0/+1
|
* Add `-obfuscate-source-code-locations`gingerBill2023-12-131-0/+2
|
* Facored out `get_default_microarchitecture`Jeroen van Rijn2023-11-101-7/+6
| | | | Moved `generic` -> `x86-64-v2` selection into its own procedure so that `llvm_backend.cpp` and `main.cpp` can share the same logic.
* Add -microarch:?Jeroen van Rijn2023-11-101-2/+17
|
* Force dynamic map calls on non-windows targetsgingerBill2023-10-291-2/+4
|
* Fix static map calls and default to them!gingerBill2023-10-271-1/+1
|
* Remove `-vet-extra`gingerBill2023-09-301-5/+1
|
* Update src/build_settings.cppgingerBill2023-09-271-1/+1
| | | Co-authored-by: Laytan Laats <laytanlaats@hotmail.com>
* Add attributes for sanitize_memory and sanitize_threadgingerBill2023-09-211-1/+30
|
* Add `-o:aggressive` for LLVM 17gingerBill2023-09-211-1/+1
|
* Support `-sanitize:<string>` for `address`, `memory`, `thread` for LLVM 17gingerBill2023-09-211-0/+16
|
* Add experimental `-subtarget:ios`gingerBill2023-08-081-1/+30
|
* Merge branch 'master' into tildegingerBill2023-08-031-3/+39
|\
| * Remove `-strict-style-init-only`gingerBill2023-08-011-1/+0
| |
| * Add `-vet-style` and `-vet-semicolon`gingerBill2023-08-011-0/+6
| |
| * Improve `//+vet`; remove `using` in many places; add `//+vet !using-stmt` ↵gingerBill2023-07-311-4/+4
| | | | | | | | where necessary
| * Add separate `-vet` flags; `-vet-using-*` flags; `//+vet` file flagsgingerBill2023-07-311-2/+33
| |
* | Add `-tilde` for working on the new compilergingerBill2023-07-081-0/+2
|/
* Rename `ODIN_DISALLOW_RTTI` to `ODIN_NO_RTTI`; Remove dead command line flagsgingerBill2023-06-121-3/+3
|
* Fix endianness for wasm64p32gingerBill2023-06-071-4/+2
|
* Merge branch 'master' into separate-int-word-sizesgingerBill2023-06-061-3/+21
|\
| * Merge pull request #2479 from Naught00/masterJeroen van Rijn2023-05-191-3/+21
| |\ | | | | | | Change default executable extension for non-Windows platforms
| | * Fix accidental check inMark Naughton2023-05-191-8/+0
| | |
| | * Add write permissions check on output folderMark Naughton2023-05-191-1/+18
| | |
| | * Fix single-file package caseMark Naughton2023-05-181-0/+7
| | |
| | * Simplify extension addition logicMark Naughton2023-04-261-9/+2
| | |
| | * Use buildpath instead of init_filenameMark Naughton2023-04-261-1/+1
| | |
| | * Fix .bin not being applied for relative directoryMark Naughton2023-04-261-1/+2
| | |