Skip to content

Commit

Permalink
odin: add patch to fix test
Browse files Browse the repository at this point in the history
Closes #66906.

Signed-off-by: Sean Molenaar <[email protected]>
Signed-off-by: BrewTestBot <[email protected]>
  • Loading branch information
Rylan12 authored and BrewTestBot committed Dec 15, 2020
1 parent 118f67f commit 91cf32b
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions Formula/odin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ class Odin < Formula

uses_from_macos "libiconv"

# Fix test for 11.0. This should be removed with the next version.
# https://github.com/odin-lang/Odin/pull/768
patch :DATA

def install
system "make", "release"
libexec.install "odin", "core", "shared"
Expand Down Expand Up @@ -49,3 +53,72 @@ def install
assert_equal "Hellope!\n", `./hellope`
end
end

__END__
diff --git a/src/main.cpp b/src/main.cpp
index 13d9e53..6dbe658 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -341,12 +341,12 @@ i32 linker_stage(lbGenerator *gen) {
String lib_name = lib;
lib_name = remove_extension_from_path(lib_name);
lib_str = gb_string_append_fmt(lib_str, " -framework %.*s ", LIT(lib_name));
- } else if (string_ends_with(lib, str_lit(".a"))) {
+ } else if (string_ends_with(lib, str_lit(".a")) || string_ends_with(lib, str_lit(".o")) || string_ends_with(lib, str_lit(".dylib"))) {
+ // For:
+ // object
+ // dynamic lib
// static libs, absolute full path relative to the file in which the lib was imported from
lib_str = gb_string_append_fmt(lib_str, " %.*s ", LIT(lib));
- } else if (string_ends_with(lib, str_lit(".dylib"))) {
- // dynamic lib
- lib_str = gb_string_append_fmt(lib_str, " %.*s ", LIT(lib));
} else {
// dynamic or static system lib, just link regularly searching system library paths
lib_str = gb_string_append_fmt(lib_str, " -l%.*s ", LIT(lib));
@@ -431,8 +431,12 @@ i32 linker_stage(lbGenerator *gen) {
" -e _main "
#endif
, linker, object_files, LIT(output_base), LIT(output_ext),
+ #if defined(GB_SYSTEM_OSX)
+ "-lSystem -lm -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -L/usr/local/lib",
+ #else
+ "-lc -lm",
+ #endif
lib_str,
- "-lc -lm",
LIT(build_context.link_flags),
LIT(build_context.extra_linker_flags),
link_settings);
@@ -2097,12 +2101,12 @@ int main(int arg_count, char const **arg_ptr) {
String lib_name = lib;
lib_name = remove_extension_from_path(lib_name);
lib_str = gb_string_append_fmt(lib_str, " -framework %.*s ", LIT(lib_name));
- } else if (string_ends_with(lib, str_lit(".a"))) {
- // static libs, absolute full path relative to the file in which the lib was imported from
- lib_str = gb_string_append_fmt(lib_str, " %.*s ", LIT(lib));
- } else if (string_ends_with(lib, str_lit(".dylib"))) {
- // dynamic lib
- lib_str = gb_string_append_fmt(lib_str, " %.*s ", LIT(lib));
+ } else if (string_ends_with(lib, str_lit(".a")) || string_ends_with(lib, str_lit(".o")) || string_ends_with(lib, str_lit(".dylib"))) {
+ // For:
+ // object
+ // dynamic lib
+ // static libs, absolute full path relative to the file in which the lib was imported from
+ lib_str = gb_string_append_fmt(lib_str, " %.*s ", LIT(lib));
} else {
// dynamic or static system lib, just link regularly searching system library paths
lib_str = gb_string_append_fmt(lib_str, " -l%.*s ", LIT(lib));
@@ -2181,7 +2185,11 @@ int main(int arg_count, char const **arg_ptr) {
#endif
, linker, LIT(output_base), LIT(output_base), LIT(output_ext),
lib_str,
- "-lc -lm",
+ #if defined(GB_SYSTEM_OSX)
+ "-lSystem -lm -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -L/usr/local/lib",
+ #else
+ "-lc -lm",
+ #endif
LIT(build_context.link_flags),
LIT(build_context.extra_linker_flags),
link_settings);

0 comments on commit 91cf32b

Please sign in to comment.