Skip to content

Commit

Permalink
Pass -target in addition to -arch in compiling commands in Apple
Browse files Browse the repository at this point in the history
crosstool

This allows using this crosstool file for cross-compiling from non-Apple
host platforms. On macOS, `-arch <arch>`  and
`-m<platform>-version-min=<version_min>` will be expanded to
`-triple <arch>-apple-<platform><version_min>` in the frontend
invocation, but on a Linux host, without `-target`, the expanded triple
flags would be `-triple <arch>-pc-linux-gnu`.

Keeping `-arch` here, since `-target arm64-apple-<platform>` alone may
end up being rewritten to `aarch64-apple-<platform>` (see
mstorsjo/xcode-cross@4efe326)
  • Loading branch information
thii committed May 11, 2021
1 parent 7caa01f commit ae52523
Showing 1 changed file with 154 additions and 44 deletions.
198 changes: 154 additions & 44 deletions tools/osx/crosstool/cc_toolchain_config.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,12 @@ def _impl(ctx):
action_name = ACTION_NAMES.objc_compile,
flag_sets = [
flag_set(
flag_groups = [flag_group(flags = ["-arch", arch])],
flag_groups = [flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
])],
),
],
implies = [
Expand Down Expand Up @@ -416,7 +421,12 @@ def _impl(ctx):
flag_set(
flag_groups = [
flag_group(flags = ["-stdlib=libc++", "-std=gnu++11"]),
flag_group(flags = ["-arch", "arm64_32"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = [
"-Xlinker",
Expand Down Expand Up @@ -480,7 +490,12 @@ def _impl(ctx):
flag_set(
flag_groups = [
flag_group(flags = ["-stdlib=libc++", "-std=gnu++11"]),
flag_group(flags = ["-arch", "arm64"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = [
"-Xlinker",
Expand Down Expand Up @@ -543,7 +558,12 @@ def _impl(ctx):
flag_set(
flag_groups = [
flag_group(flags = ["-stdlib=libc++", "-std=gnu++11"]),
flag_group(flags = ["-arch", "arm64e"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = [
"-Xlinker",
Expand Down Expand Up @@ -605,7 +625,12 @@ def _impl(ctx):
flag_set(
flag_groups = [
flag_group(flags = ["-stdlib=libc++", "-std=gnu++11"]),
flag_group(flags = ["-arch", "armv7"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = [
"-Xlinker",
Expand Down Expand Up @@ -667,7 +692,12 @@ def _impl(ctx):
flag_set(
flag_groups = [
flag_group(flags = ["-stdlib=libc++", "-std=gnu++11"]),
flag_group(flags = ["-arch", "armv7k"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = [
"-Xlinker",
Expand Down Expand Up @@ -730,7 +760,12 @@ def _impl(ctx):
flag_set(
flag_groups = [
flag_group(flags = ["-stdlib=libc++", "-std=gnu++11"]),
flag_group(flags = ["-arch", "i386"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = [
"-Xlinker",
Expand Down Expand Up @@ -795,7 +830,12 @@ def _impl(ctx):
flag_set(
flag_groups = [
flag_group(flags = ["-stdlib=libc++", "-std=gnu++11"]),
flag_group(flags = ["-arch", "x86_64"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = [
"-Xlinker",
Expand Down Expand Up @@ -1109,14 +1149,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = [
"-arch",
"arm64_32",
"-stdlib=libc++",
"-std=gnu++11",
],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1151,9 +1191,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = ["-arch", "arm64", "-stdlib=libc++", "-std=gnu++11"],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1187,9 +1232,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = ["-arch", "arm64e", "-stdlib=libc++", "-std=gnu++11"],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1222,9 +1272,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = ["-arch", "armv7", "-stdlib=libc++", "-std=gnu++11"],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1257,9 +1312,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = ["-arch", "armv7k", "-stdlib=libc++", "-std=gnu++11"],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1293,9 +1353,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = ["-arch", "i386", "-stdlib=libc++", "-std=gnu++11"],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1331,9 +1396,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = ["-arch", "x86_64", "-stdlib=libc++", "-std=gnu++11"],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1367,9 +1437,14 @@ def _impl(ctx):
flag_sets = [
flag_set(
flag_groups = [
flag_group(
flags = ["-arch", "x86_64", "-stdlib=libc++", "-std=gnu++11"],
),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
"-stdlib=libc++",
"-std=gnu++11",
]),
],
),
],
Expand Down Expand Up @@ -1866,7 +1941,12 @@ def _impl(ctx):
),
flag_set(
flag_groups = [
flag_group(flags = ["-arch", "arm64_32"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = ["-framework", "%{framework_names}"],
iterate_over = "framework_names",
Expand Down Expand Up @@ -1934,7 +2014,12 @@ def _impl(ctx):
),
flag_set(
flag_groups = [
flag_group(flags = ["-arch", "arm64"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = ["-framework", "%{framework_names}"],
iterate_over = "framework_names",
Expand Down Expand Up @@ -2001,7 +2086,12 @@ def _impl(ctx):
),
flag_set(
flag_groups = [
flag_group(flags = ["-arch", "arm64e"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = ["-framework", "%{framework_names}"],
iterate_over = "framework_names",
Expand Down Expand Up @@ -2067,7 +2157,12 @@ def _impl(ctx):
),
flag_set(
flag_groups = [
flag_group(flags = ["-arch", "armv7"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = ["-framework", "%{framework_names}"],
iterate_over = "framework_names",
Expand Down Expand Up @@ -2133,7 +2228,12 @@ def _impl(ctx):
),
flag_set(
flag_groups = [
flag_group(flags = ["-arch", "armv7k"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = ["-framework", "%{framework_names}"],
iterate_over = "framework_names",
Expand Down Expand Up @@ -2200,7 +2300,12 @@ def _impl(ctx):
),
flag_set(
flag_groups = [
flag_group(flags = ["-arch", "i386"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = ["-framework", "%{framework_names}"],
iterate_over = "framework_names",
Expand Down Expand Up @@ -2269,7 +2374,12 @@ def _impl(ctx):
),
flag_set(
flag_groups = [
flag_group(flags = ["-arch", "x86_64"]),
flag_group(flags = [
"-arch",
arch,
"-target",
target_system_name,
]),
flag_group(
flags = ["-framework", "%{framework_names}"],
iterate_over = "framework_names",
Expand Down

0 comments on commit ae52523

Please sign in to comment.