diff options
Diffstat (limited to 'build/make/ads2gas_apple.pl')
-rwxr-xr-x | build/make/ads2gas_apple.pl | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/build/make/ads2gas_apple.pl b/build/make/ads2gas_apple.pl index 78f4a97f5..81280bf78 100755 --- a/build/make/ads2gas_apple.pl +++ b/build/make/ads2gas_apple.pl @@ -30,6 +30,8 @@ my @mapping_list = ("\$0", "\$1", "\$2", "\$3", "\$4", "\$5", "\$6", "\$7", "\$8 my @incoming_array; +my @imported_functions; + # Perl trim function to remove whitespace from the start and end of the string sub trim($) { @@ -132,7 +134,18 @@ while (<STDIN>) # Make function visible to linker, and make additional symbol with # prepended underscore s/EXPORT\s+\|([\$\w]*)\|/.globl _$1\n\t.globl $1/; - s/IMPORT\s+\|([\$\w]*)\|/.globl $1/; + + # Prepend imported functions with _ + if (s/IMPORT\s+\|([\$\w]*)\|/.globl $1/) + { + $function = trim($1); + push(@imported_functions, $function); + } + + foreach $function (@imported_functions) + { + s/$function/_$function/; + } # No vertical bars required; make additional symbol with prepended # underscore @@ -157,8 +170,8 @@ while (<STDIN>) s/\sPRESERVE8/@ PRESERVE8/g; # Strip PROC and ENDPROC - s/PROC/@/g; - s/ENDP/@/g; + s/\bPROC\b/@/g; + s/\bENDP\b/@/g; # EQU directive s/(.*)EQU(.*)/.set $1, $2/; |