[project @ 2003-06-27 18:08:53 by wolfgang]
authorwolfgang <unknown>
Fri, 27 Jun 2003 18:08:53 +0000 (18:08 +0000)
committerwolfgang <unknown>
Fri, 27 Jun 2003 18:08:53 +0000 (18:08 +0000)
PowerPC: Make it work with Apple's version of GCC 3.3

ghc/driver/mangler/ghc-asm.lprl

index 29cbfb1..7ddacaf 100644 (file)
@@ -297,7 +297,7 @@ sub init_TARGET_STUFF {
     $T_CONST_LBL    = '^\LC\d+:'; # regexp for what such a lbl looks like
     $T_POST_LBL            = ':';
 
-    $T_MOVE_DIRVS   = '^(\s*(\.align \d+|\.text|\.data|\.const_data|\.cstring|\.non_lazy_symbol_pointer|\.const|\.static_const|\.literal4|\.literal8|\.static_data|\.globl \S+)\n)';
+    $T_MOVE_DIRVS   = '^(\s*(\.align \d+|\.text|\.data|\.const_data|\.cstring|\.non_lazy_symbol_pointer|\.const|\.static_const|\.literal4|\.literal8|\.static_data|\.globl \S+|\.section .*)\n)';
     $T_COPY_DIRVS   = '\.(globl)';
 
     $T_hsc_cc_PAT   = '\.byte.*\)(hsc|cc) (.*)"\n\t\.byte \d+\n\t\.byte "(.*)"\n\t\.byte \d+';
@@ -602,22 +602,13 @@ sub mangle_asm {
            $chkcat[$i]  = 'misc';
            $chksymb[$i] = '';
 
-       } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && /^\.picsymbol_stub/ )
-       {
-           $chk[++$i]   = $_;
-           $chkcat[$i]  = 'dyld';
-           $chksymb[$i] = '';
-       } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && /^\.symbol_stub/ )
-       {
-           $chk[++$i]   = $_;
-           $chkcat[$i]  = 'dyld';
-           $chksymb[$i] = '';
-       } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && /^\.lazy_symbol_pointer/ )
-       {
-           $chk[++$i]   = $_;
-           $chkcat[$i]  = 'dyld';
-           $chksymb[$i] = '';
-       } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && /^\.non_lazy_symbol_pointer/ )
+       } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && ( 
+                  /^\.picsymbol_stub/
+               || /^\.section __TEXT,__picsymbol_stub1,.*/
+               || /^\.symbol_stub/
+               || /^\.section __TEXT,__symbol_stub1,.*/
+               || /^\.lazy_symbol_pointer/
+               || /^\.non_lazy_symbol_pointer/ ))
        {
            $chk[++$i]   = $_;
            $chkcat[$i]  = 'dyld';