X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=driver%2Fsplit%2Fghc-split.lprl;fp=driver%2Fsplit%2Fghc-split.lprl;h=3bdb04b4a0d2539148b006b6eff6cc535b9c9ee7;hp=d54e1b206e453813726663fda36c94d271197d40;hb=ee40dd6ba3e4effa2cf6c6f06dc2b7477fc55f18;hpb=39b41e2cbbcc9b672a5f25c2ab5d61ccc004c95e diff --git a/driver/split/ghc-split.lprl b/driver/split/ghc-split.lprl index d54e1b2..3bdb04b 100644 --- a/driver/split/ghc-split.lprl +++ b/driver/split/ghc-split.lprl @@ -138,7 +138,7 @@ sub collectDyldStuff_darwin { while ( 1 ) { $_ = ; - if ( $_ eq '' || /^L(_.+)\$.+:/ ) { + if ( $_ eq '' || (/^L(_.+)\$.+:/ && !(/^L(.*)\$stub_binder:/))) { if ( $label ne '' ) { $DyldChunksDefined{$label} .= $section . $alignment . $chunk_label . $ chunk; if( $section =~ s/\.data/\.non_lazy_symbol_pointer/ ) { @@ -155,7 +155,7 @@ sub collectDyldStuff_darwin { $section = $cur_section; $alignment = $cur_alignment; print STDERR "label: $label\n" if $Dump_asm_splitting_info; - } elsif ( /^\s*\.(symbol_stub|picsymbol_stub|lazy_symbol_pointer|non_lazy_symbol_pointer|data|section __IMPORT,.*)/ ) { + } elsif ( /^\s*\.(symbol_stub|picsymbol_stub|lazy_symbol_pointer|non_lazy_symbol_pointer|data|section __IMPORT,.*|section __DATA, __la_sym_ptr(2|3),lazy_symbol_pointers)/ ) { $cur_section = $_; printf STDERR "section: $cur_section\n" if $Dump_asm_splitting_info; $cur_alignment = ''