aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2021-12-15 20:25:27 +0000
committerIain Sandoe <iain@sandoe.co.uk>2021-12-17 09:47:04 +0000
commitff56eea24e48f7a8a3b39db7049d1da532d4b8af (patch)
tree221ab946a0613a56840813f19da40bacb33bc3da /gcc/config
parent7c0ceaed0c07ece9ce0112ea6512f38855ae868e (diff)
downloadgcc-ff56eea24e48f7a8a3b39db7049d1da532d4b8af.zip
gcc-ff56eea24e48f7a8a3b39db7049d1da532d4b8af.tar.gz
gcc-ff56eea24e48f7a8a3b39db7049d1da532d4b8af.tar.bz2
Darwin, Driver: Avoid a link line for empty commands.
We were pushing a spec value for weak_reference_mismatches unconditionally which is not needed (the value was the default) and the side-effect of this was that we appeared to need to drive a link command; leading to unexpected diagnostics for cases where gcc was invoked with an empty command line. Also we were pushing flags for sysroot, os minimum version and controls even if the command line was empty. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> gcc/ChangeLog: * config/darwin-driver.c (darwin_driver_init): Exit from the option handling early if the command line is definitely enpty. * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Remove setting for the default content of weak_reference_mismatches.
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/darwin-driver.c8
-rw-r--r--gcc/config/darwin.h5
2 files changed, 6 insertions, 7 deletions
diff --git a/gcc/config/darwin-driver.c b/gcc/config/darwin-driver.c
index 7fa80ab..688fe8f 100644
--- a/gcc/config/darwin-driver.c
+++ b/gcc/config/darwin-driver.c
@@ -416,6 +416,10 @@ darwin_driver_init (unsigned int *decoded_options_count,
}
#endif
+ /* If there is nothing else on the command line, do not add sysroot etc. */
+ if (*decoded_options_count <= 1)
+ return;
+
if (appendM32 || appendM64)
{
++*decoded_options_count;
@@ -426,7 +430,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
&(*decoded_options)[*decoded_options_count - 1]);
}
- if (! seen_sysroot_p)
+ if (!seen_sysroot_p)
{
/* We will pick up an SDKROOT if we didn't specify a sysroot and treat
it as overriding any configure-time --with-sysroot. */
@@ -445,7 +449,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
/* We will need to know the OS X version we're trying to build for here
so that we can figure out the mechanism and source for the sysroot to
be used. */
- if (! seen_version_min && *decoded_options_count > 1)
+ if (!seen_version_min)
/* Not set by the User, try to figure it out. */
vers_string = darwin_default_min_version ();
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 0ce1320..75b688e 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -268,11 +268,6 @@ extern GTY(()) int darwin_ms_struct;
"%{unexported_symbols_list*:\
-Xlinker -unexported_symbols_list -Xlinker %*} \
%<unexported_symbols_list*", \
- "%{!weak_reference_mismatches*:\
- %:version-compare(< 10.5 asm_macosx_version_min= -Xlinker) \
- %:version-compare(< 10.5 asm_macosx_version_min= -weak_reference_mismatches) \
- %:version-compare(< 10.5 asm_macosx_version_min= -Xlinker) \
- %:version-compare(< 10.5 asm_macosx_version_min= non-weak)}", \
"%{weak_reference_mismatches*:\
-Xlinker -weak_reference_mismatches -Xlinker %*} \
%<weak_reference_mismatches*", \