aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add `-target:freestanding_arm32` (experimental)gingerBill2024-06-091-0/+9
|
* fix linking on weird linuxesLaytan2024-06-061-2/+10
|
* Merge pull request #3690 from laytan/orcasgingerBill2024-06-061-4/+3
|\ | | | | Runtime support for orca
| * orca windowslaytan2024-06-051-1/+1
| |
| * improve orca targetLaytan Laats2024-06-051-5/+4
| |
* | Added arm64 support for NetBSDAndreas T Jonsson2024-06-051-2/+15
|/
* Merge pull request #3615 from puzzleddev/export-dependenciesgingerBill2024-06-041-0/+8
|\ | | | | Add build flag to export dependencies.
| * Add the option to export dependencies as JSON.tim42422024-05-241-0/+7
| |
| * Initial dependency file generationtim42422024-05-241-0/+1
| |
* | Remove `-test-name` in favor of test runner optionFeoramund2024-06-021-1/+0
| | | | | | | | | | | | `-define:ODIN_TEST_NAMES=...` is capable of selecting test by package and name or name only, with the ability to access packages included by `-all-packages`.
* | Add experimental target `orca_wasm32`gingerBill2024-05-301-1/+13
|/
* Merge pull request #3592 from laytan/wasm-gpagingerBill2024-05-201-8/+0
|\ | | | | add a default heap/general purpose allocator for wasm to `base:runtime`
| * add a default heap/general purpose allocator for wasm to `base:runtime`Laytan Laats2024-05-161-8/+0
| |
* | Merge pull request #3570 from jasonKercher/linux-arm32gingerBill2024-05-201-1/+11
|\ \ | | | | | | Get the compiler to build and work on arm32 Linux
| * | arm32 now compiles and runs demojasonkercher2024-05-101-1/+11
| | |
* | | Reimplement `-build-mode:static`/`-build-mode:lib`gingerBill2024-05-161-1/+7
| |/ |/|
* | Merge pull request #3439 from andreas-jonsson/netbsdgingerBill2024-05-151-0/+13
|\ \ | | | | | | NetBSD support
| * | Removed dead codeAndreas T Jonsson2024-05-101-2/+1
| | |
| * | Merge branch 'master' into netbsdAndreas T Jonsson2024-05-101-123/+562
| |\|
| * | Changed target data layoutAndreas T Jonsson2024-05-101-1/+1
| | |
| * | Merged with masterAndreas T Jonsson2024-05-021-2/+4
| |\ \
| * \ \ Merge branch 'master' into netbsdAndreas T Jonsson2024-04-251-88/+58
| |\ \ \
| * | | | Initial commit of NetBSD portAndreas T Jonsson2024-04-161-0/+17
| | | | |
* | | | | Make `core:runtime` etc a warning, and an error with `-vet`gingerBill2024-05-131-1/+4
| |_|_|/ |/| | |
* | | | fix merge conflictLaytan2024-05-071-1/+0
| | | |
* | | | llvm-18: cleanupLaytan Laats2024-05-071-7/+7
| | | |
* | | | llvm-18: fix windows build error because of includeLaytan Laats2024-05-071-5/+9
| | | |
* | | | llvm-18: enable static map calls on non amd64sysv targetsLaytan Laats2024-05-071-3/+2
| | | |
* | | | llvm-18: fix undocumented breaking change on i128 alignmentLaytan2024-05-071-31/+20
| | | |
* | | | llvm-18: enable sroa and static map callsLaytan Laats2024-05-071-0/+2
| | | |
* | | | llvm-18: linux (amd64)Laytan2024-05-071-1/+1
| | | |
* | | | Merge pull request #3526 from laytan/target-featuresgingerBill2024-05-051-92/+525
|\ \ \ \ | | | | | | | | | | Improve target features support
| * | | | compiler: improve target features supportLaytan Laats2024-05-021-92/+525
| | |_|/ | |/| |
* / | | Minimally support compiling Odin on FreeBSD arm64Feoramund2024-05-051-1/+14
|/ / / | | | | | | | | | This is enough to get Odin itself compiling and the demo running.
* | / wasm: allow `-default-to-nil-allocator`Laytan Laats2024-04-281-2/+4
| |/ |/|
* | fix linking with clang-18Laytan2024-04-221-73/+29
| | | | | | | | | | | | | | | | | | | | | | | | Because we currently just use the clang from the user's path linking suddenly breaks when the user updates their system clang to 18 with an error about an unknown option -arch. I had already fixed it for my LLVM 18 PR but it seems like a good idea to get this in already to avoid that breakage (had a few people come to the Discord with it and an issue). This fixes #3461
* | normalize_pathThomas la Cour2024-04-201-4/+2
| |
* | Add `-no-type-assert` and `ODIN_NO_TYPE_ASSERT`gingerBill2024-04-181-0/+1
| |
* | Add `-target:freestanding_amd64_win64`gingerBill2024-04-111-1/+12
| |
* | Add `-vet-unused-variables` and ``-vet-unused-imports` (`-vet-unused` is both)gingerBill2024-04-111-7/+14
|/
* Merge pull request #3374 from laytan/fix-128-ints-alignment-arm64gingerBill2024-04-041-1/+1
|\ | | | | fix 128 bit int alignment on arm64
| * fix 128 bit int alignment on arm64Laytan Laats2024-04-041-1/+1
| | | | | | | | Fixes #2403
* | Default to "smart" linker behaviour; Add `-min-link-libs` to use minimize ↵gingerBill2024-04-041-1/+3
|/ | | | link libs if wanted
* fix not setting ok in cached code pathLaytan Laats2024-03-281-5/+22
|
* speed up path_to_fullpath on Linux/MacOSLaytan Laats2024-03-281-4/+13
| | | | | | | | | We did some profiling for #3343 and this seems to be the biggest problem. `realpath` is expensive, and we are locking here for no reason that I can think of. This improves the "check procedure bodies" timing (of the linked issue) from 2.4s to .4s on my machine.
* darwin: be less annoying about "incompatible" library versionsLaytan Laats2024-03-251-1/+3
| | | | | | | | | | | | | After #3316 we set a default minimum version, now this will warn if you link with a library that is targeting later versions. This might be a bit annoying, especially when the user hasn't actually given Odin a minimum target. So this PR makes these warnings only show when you explicitly give a target version (afaik that is the only thing that -mmacosx-min-version actually does for us because we don't use it to compile anything, just to link).
* 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.