From 1777f480284b6700827951b7b8d80f179eedc84e Mon Sep 17 00:00:00 2001 From: Roman Leshchinskiy Date: Fri, 25 Aug 2006 10:16:46 +0000 Subject: [PATCH] Make sure GCC uses the Sparc V9 instruction set We only support Sparc V9 and better as V8 lacks an atomic CAS instruction which we need for SMP. This means that we have to pass -mcpu=v9 to GCC when compiling and assembling. Hardcoding the flag is hackish but seems to be our best bet at the moment. It can still be overridden by the user as GCC picks the best -mcpu flag regardless of the ordering. --- compiler/main/DriverPipeline.hs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index e8f64e8..58cc49e 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -859,6 +859,15 @@ runPhase cc_phase stop dflags basename suff input_fn get_output_fn maybe_loc ++ map SysTools.Option ( md_c_flags ++ pic_c_flags +#ifdef sparc_TARGET_ARCH + -- We only support SparcV9 and better because V8 lacks an atomic CAS + -- instruction. Note that the user can still override this + -- (e.g., -mcpu=ultrasparc) as GCC picks the "best" -mcpu flag + -- regardless of the ordering. + -- + -- This is a temporary hack. + ++ ["-mcpu=v9"] +#endif ++ (if hcc && mangle then md_regd_c_flags else []) @@ -946,6 +955,16 @@ runPhase As stop dflags _basename _suff input_fn get_output_fn maybe_loc SysTools.runAs dflags (map SysTools.Option as_opts ++ [ SysTools.Option ("-I" ++ p) | p <- cmdline_include_paths ] +#ifdef sparc_TARGET_ARCH + -- We only support SparcV9 and better because V8 lacks an atomic CAS + -- instruction so we have to make sure that the assembler accepts the + -- instruction set. Note that the user can still override this + -- (e.g., -mcpu=ultrasparc). GCC picks the "best" -mcpu flag + -- regardless of the ordering. + -- + -- This is a temporary hack. + ++ [ SysTools.Option "-mcpu=v9" ] +#endif ++ [ SysTools.Option "-c" , SysTools.FileOption "" input_fn , SysTools.Option "-o" -- 1.7.10.4