projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Teach GHC to compile objective-c files; trac #5025
[ghc-hetmet.git]
/
driver
/
mangler
/
ghc-asm.lprl
diff --git
a/driver/mangler/ghc-asm.lprl
b/driver/mangler/ghc-asm.lprl
index
1ff78a4
..
4bac756
100644
(file)
--- a/
driver/mangler/ghc-asm.lprl
+++ b/
driver/mangler/ghc-asm.lprl
@@
-216,7
+216,7
@@
sub init_TARGET_STUFF {
$T_HDR_vector = "\.text\n\t\.align 8\n";
#--------------------------------------------------------#
$T_HDR_vector = "\.text\n\t\.align 8\n";
#--------------------------------------------------------#
- } elsif ( $TargetPlatform =~ /^x86_64-.*-(linux|openbsd|freebsd|dragonfly|netbsd)$/m ) {
+ } elsif ( $TargetPlatform =~ /^x86_64-.*-(linux|openbsd|freebsd|dragonfly|netbsd|kfreebsdgnu)$/m ) {
$T_STABBY = 0; # 1 iff .stab things (usually if a.out format)
$T_US = ''; # _ if symbols have an underscore on the front
$T_STABBY = 0; # 1 iff .stab things (usually if a.out format)
$T_US = ''; # _ if symbols have an underscore on the front
@@
-1445,7
+1445,8
@@
sub mangle_asm {
# If this is an entry point with an info table,
# eliminate the entry symbol and all directives involving it.
# If this is an entry point with an info table,
# eliminate the entry symbol and all directives involving it.
- if (defined($infochk{$symb}) && $TargetPlatform !~ /^ia64-/m) {
+ if (defined($infochk{$symb}) && $TargetPlatform !~ /^ia64-/m
+ && $TABLES_NEXT_TO_CODE eq "YES") {
@o = ();
foreach $l (split(/\n/m,$c)) {
next if $l =~ /^.*$symb_(entry|ret)${T_POST_LBL}/m;
@o = ();
foreach $l (split(/\n/m,$c)) {
next if $l =~ /^.*$symb_(entry|ret)${T_POST_LBL}/m;
@@
-1880,7
+1881,8
@@
sub rev_tbl {
# use vars '$discard1'; # Unused?
local($symb, $tbl, $discard1) = @_;
# use vars '$discard1'; # Unused?
local($symb, $tbl, $discard1) = @_;
- return ($tbl) if ($TargetPlatform =~ /^ia64-/m);
+ return ($tbl) if ($TargetPlatform =~ /^ia64-/m
+ || $TABLES_NEXT_TO_CODE eq "NO");
local($before) = '';
local($label) = '';
local($before) = '';
local($label) = '';