From 616069b36d8b335d7ceed03fb051aba2cb488bce Mon Sep 17 00:00:00 2001 From: wolfgang Date: Fri, 29 Apr 2005 22:15:36 +0000 Subject: [PATCH] [project @ 2005-04-29 22:15:36 by wolfgang] Mac OS X (Tiger): Fix the Mangler for (Apple's version of) GCC 4.0 MERGE TO STABLE --- ghc/driver/mangler/ghc-asm.lprl | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/ghc/driver/mangler/ghc-asm.lprl b/ghc/driver/mangler/ghc-asm.lprl index 3ba4e9b..ab226ff 100644 --- a/ghc/driver/mangler/ghc-asm.lprl +++ b/ghc/driver/mangler/ghc-asm.lprl @@ -550,6 +550,21 @@ sub mangle_asm { # code. # The .no_dead_strip directives are actually put there by # the gcc3 "used" attribute on entry points. + + } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && ( + /^\s*\.picsymbol_stub/ + || /^\s*\.section __TEXT,__picsymbol_stub1,.*/ + || /^\s*\.section __TEXT,__picsymbolstub1,.*/ + || /^\s*\.symbol_stub/ + || /^\s*\.section __TEXT,__symbol_stub1,.*/ + || /^\s*\.section __TEXT,__symbolstub1,.*/ + || /^\s*\.lazy_symbol_pointer/ + || /^\s*\.non_lazy_symbol_pointer/ )) + { + $chk[++$i] = $_; + $chkcat[$i] = 'dyld'; + $chksymb[$i] = ''; + } elsif ( /^\s+/ ) { # most common case first -- a simple line! # duplicated from the bottom @@ -696,19 +711,6 @@ sub mangle_asm { $chkcat[$i] = 'unknown'; } - } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && ( - /^\.picsymbol_stub/ - || /^\.section __TEXT,__picsymbol_stub1,.*/ - || /^\.section __TEXT,__picsymbolstub1,.*/ - || /^\.symbol_stub/ - || /^\.section __TEXT,__symbol_stub1,.*/ - || /^\.section __TEXT,__symbolstub1,.*/ - || /^\.lazy_symbol_pointer/ - || /^\.non_lazy_symbol_pointer/ )) - { - $chk[++$i] = $_; - $chkcat[$i] = 'dyld'; - $chksymb[$i] = ''; } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && /^\.data/ && $chkcat[$i] eq 'dyld') { # non_lazy_symbol_ptrs that point to local symbols $chk[++$i] = $_; -- 1.7.10.4