From b9472fcf1266927eb3c2083218e2eb9acd78f848 Mon Sep 17 00:00:00 2001 From: wolfgang Date: Wed, 12 Jan 2005 05:53:07 +0000 Subject: [PATCH] [project @ 2005-01-12 05:53:07 by wolfgang] Move _srtd and _closure_tbl to read-only data instead of text (these things contain pointers to other symbols, so they can't go into .text for position-independent code). --- ghc/driver/mangler/ghc-asm.lprl | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ghc/driver/mangler/ghc-asm.lprl b/ghc/driver/mangler/ghc-asm.lprl index 00af653..e868f33 100644 --- a/ghc/driver/mangler/ghc-asm.lprl +++ b/ghc/driver/mangler/ghc-asm.lprl @@ -655,16 +655,22 @@ sub mangle_asm { || /^${T_US}.*_slow${T_POST_LBL}$/o # slow entry || /^${T_US}__stginit.*${T_POST_LBL}$/o # __stginit || /^${T_US}.*_btm${T_POST_LBL}$/o # large bitmaps - || /^${T_US}.*_srtd${T_POST_LBL}$/o # large bitmaps || /^${T_US}.*_fast${T_POST_LBL}$/o # primops - || /^${T_US}.*_closure_tbl${T_POST_LBL}$/o # closure tables || /^_uname:/o # x86/Solaris2 - ) { - $chkcat[$i] = 'misc'; - } else { - print STDERR "Warning: retaining unknown function \`$thing' in output from C compiler\n"; - $chkcat[$i] = 'unknown'; - } + ) + { + $chkcat[$i] = 'misc'; + } elsif ( + /^${T_US}.*_srtd${T_POST_LBL}$/o # large bitmaps + || /^${T_US}.*_closure_tbl${T_POST_LBL}$/o # closure tables + ) + { + $chkcat[$i] = 'rodata'; + } else + { + print STDERR "Warning: retaining unknown function \`$thing' in output from C compiler\n"; + $chkcat[$i] = 'unknown'; + } } elsif ( $TargetPlatform =~ /^powerpc-apple-.*/ && ( /^\.picsymbol_stub/ -- 1.7.10.4