diff options
| author | Wes Hardee <weshardee@gmail.com> | 2022-06-30 12:40:32 -0500 |
|---|---|---|
| committer | Wes Hardee <weshardee@gmail.com> | 2022-06-30 12:40:32 -0500 |
| commit | 23842a8950be99afca4f4180aca95a7c2da771dc (patch) | |
| tree | b9f5325340924623ff3414c3f19251f056fc262a /src/main.cpp | |
| parent | 173286de65181ca6c3ce321610ba3076c86a282c (diff) | |
fix -build-mode:shared on MacOS
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main.cpp b/src/main.cpp index 7531fb37c..beefec702 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -463,8 +463,15 @@ i32 linker_stage(lbGenerator *gen) { // correctly this way since all the other dependencies provided implicitly // by the compiler frontend are still needed and most of the command // line arguments prepared previously are incompatible with ld. - link_settings = gb_string_appendc(link_settings, "-Wl,-init,'_odin_entry_point' "); - link_settings = gb_string_appendc(link_settings, "-Wl,-fini,'_odin_exit_point' "); + if (build_context.metrics.os == TargetOs_darwin) { + link_settings = gb_string_appendc(link_settings, "-Wl,-init,'__odin_entry_point' "); + // NOTE(weshardee): __odin_exit_point should also be added, but -fini + // does not exist on MacOS + } else { + link_settings = gb_string_appendc(link_settings, "-Wl,-init,'_odin_entry_point' "); + link_settings = gb_string_appendc(link_settings, "-Wl,-fini,'_odin_exit_point' "); + } + } else if (build_context.metrics.os != TargetOs_openbsd) { // OpenBSD defaults to PIE executable. do not pass -no-pie for it. link_settings = gb_string_appendc(link_settings, "-no-pie "); |