Split SettingsCCompilerFlags into non-link and link portions
authorGabor Greif <ggreif@gmail.com>
Mon, 25 Feb 2013 17:53:31 +0000 (18:53 +0100)
committerGabor Greif <ggreif@gmail.com>
Mon, 25 Feb 2013 17:55:23 +0000 (18:55 +0100)
This fixes certain older GCCs which do not accept link options when assembling or compiling:

  ppc_85xx-gcc: --hash-size=31: linker input file unused because linking not done
  ppc_85xx-gcc: --reduce-memory-overheads: linker input file unused because linking not done

and diagnose this to stderr.

aclocal.m4
compiler/main/SysTools.lhs
settings.in

index 11c95ee..268e631 100644 (file)
@@ -461,10 +461,12 @@ AC_DEFUN([FP_SETTINGS],
           SettingsOptCommand="$OptCmd"
         fi
     fi
-    SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2 $CONF_GCC_LINKER_OPTS_STAGE2"
+    SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2"
+    SettingsCCompilerLinkFlags="$CONF_GCC_LINKER_OPTS_STAGE2"
     SettingsLdFlags="$CONF_LD_LINKER_OPTS_STAGE2"
     AC_SUBST(SettingsCCompilerCommand)
     AC_SUBST(SettingsCCompilerFlags)
+    AC_SUBST(SettingsCCompilerLinkFlags)
     AC_SUBST(SettingsLdCommand)
     AC_SUBST(SettingsLdFlags)
     AC_SUBST(SettingsArCommand)
index 40a7a25..79af4f6 100644 (file)
@@ -284,10 +284,11 @@ initSysTools mbMinusB
                     ++ gcc_args
 
        -- Other things being equal, as and ld are simply gcc
+       gcc_link_args_str <- getSetting "C compiler link flags"
        let   as_prog  = gcc_prog
              as_args  = gcc_args
              ld_prog  = gcc_prog
-             ld_args  = gcc_args
+             ld_args  = gcc_args ++ map Option (words gcc_link_args_str)
 
        -- We just assume on command line
        lc_prog <- getSetting "LLVM llc command"
index e7354cd..c749f23 100644 (file)
@@ -1,6 +1,7 @@
 [("GCC extra via C opts", "@GccExtraViaCOpts@"),
  ("C compiler command", "@SettingsCCompilerCommand@"),
  ("C compiler flags", "@SettingsCCompilerFlags@"),
+ ("C compiler link flags", "@SettingsCCompilerLinkFlags@"),
  ("ld command", "@SettingsLdCommand@"),
  ("ld flags", "@SettingsLdFlags@"),
  ("ld supports compact unwind", "@LdHasNoCompactUnwind@"),