diff --git a/ghc/driver/ghc-asm.lprl b/ghc/driver/ghc-asm.lprl index 6fb55f42147b0daefad12ace7807a12ee2c95574..31d06205455aedbab4a02700676233a1aa750d45 100644 --- a/ghc/driver/ghc-asm.lprl +++ b/ghc/driver/ghc-asm.lprl @@ -660,7 +660,7 @@ sub mangle_asm { $p =~ s/^\tstw? 0,\d+\(1\)\n//; $p =~ s/^\tstw?u 1,-\d+\(1\)\n//; $p =~ s/^\tstw? \d+,-\d+\(1\)\n//g; - $p =~ s/^\tstfd \d+,-\d+\(1\)\n//; + $p =~ s/^\tstfd \d+,-\d+\(1\)\n//g; } else { print STDERR "$Pgm: unknown prologue mangling? $TargetPlatform\n"; } diff --git a/ghc/driver/ghc.lprl b/ghc/driver/ghc.lprl index 36732e650a633d4a88b4e048b75ffde8c858d7bd..03dd161326007c25eb606ce37ee05f4c1e4a92b9 100644 --- a/ghc/driver/ghc.lprl +++ b/ghc/driver/ghc.lprl @@ -1216,15 +1216,12 @@ sub setupMachOpts { unshift(@CcRegd_flags, ('-DSTACK_CHECK_BY_PAGE_FAULT=1')) if $StkChkByPageFaultOK; unshift(@CcBoth_flags, ('-static')); - } elsif ($TargetPlatform =~ /^powerpc-|^rs6000/) { + } elsif ($TargetPlatform =~ /^powerpc-|^rs6000-/) { # we know how to *mangle* asm for PowerPC # :-( unshift(@CcRegd_flags, ('-D__STG_REV_TBLS__')); unshift(@CcRegd_flags, ('-DSTACK_CHECK_BY_PAGE_FAULT=1')) if $StkChkByPageFaultOK; unshift(@CcBoth_flags, ('-static')); # always easier to start with unshift(@CcRegd_flags, ('-finhibit-size-directive')); # avoids traceback tables -# unshift(@Ld_flags, ('-Xlinker -bbigtoc -Xlinker -bnoquiet')); # if we have lots of toc entries... - unshift(@Ld_flags, ('-Xlinker -bbigtoc')); # just in case we have lots of toc entries... - } elsif ($TargetPlatform =~ /^sparc-/) { # we know how to *mangle* asm for SPARC unshift(@CcRegd_flags, ('-D__STG_REV_TBLS__')); @@ -1256,7 +1253,11 @@ sub setupLinkOpts { ,'-u', "${uscore}STBase_SZh_static_info" ,'-u', "${uscore}DEBUG_REGS" )); - + if ($TargetPlatform =~ /^powerpc-|^rs6000-/) { + # sometimes we have lots of toc entries... + # unshift(@Ld_flags, ('-Xlinker -bbigtoc -Xlinker -bnoquiet')); + unshift(@Ld_flags, ('-Xlinker -bbigtoc')); + } } # end of setupLinkOpts @@ -1711,11 +1712,6 @@ Now the Haskell compiler, C compiler, and assembler } if ($do_cc) { -# # if we're going to split up object files, #delete! andre -# # we inject split markers into the .hc file now #delete! andre -# if ( $HscOut eq '-C=' && $SplitObjFiles ) { #delete! andre -# &inject_split_markers ( $hsc_out ); #delete! andre -# } #delete! andre &runGcc ($is_hc_file, $hsc_out, $cc_as_o); &runMangler($is_hc_file, $cc_as_o, $cc_as, $ifile_root); }