diff options
author | axis <qt-info@nokia.com> | 2009-12-11 09:28:42 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-12-11 10:27:15 (GMT) |
commit | f722cae67b412404d253b5794f638c271fb1eea8 (patch) | |
tree | 628c8ba0808b5ff987d36a74aca96c6fe281bd3a /bin | |
parent | cca653230dd39b4202d6ca7dbe42c35f47958084 (diff) | |
download | Qt-f722cae67b412404d253b5794f638c271fb1eea8.zip Qt-f722cae67b412404d253b5794f638c271fb1eea8.tar.gz Qt-f722cae67b412404d253b5794f638c271fb1eea8.tar.bz2 |
Switched to using ABIv2 format to generate Symbian binaries.
This means using elf2e32 instead of elftran, and eliminates the need
for generating exports manually.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/makedeffile | 48 | ||||
-rwxr-xr-x | bin/makeexpfile | 39 | ||||
-rwxr-xr-x | bin/makeordinalmap | 58 |
3 files changed, 0 insertions, 145 deletions
diff --git a/bin/makedeffile b/bin/makedeffile deleted file mode 100755 index e1534c4..0000000 --- a/bin/makedeffile +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/perl -w - -my $deffile = $ARGV[0]; - -shift @ARGV; - -sub uniqueify { - # String must be sorted beforehand. - my $c; - my $last = $_[0]; - for ($c = 1; $c < scalar(@_); $c++) { - if ($_[$c] eq $last) { - splice(@_, $c, 1); - $c--; - } else { - $last = $_[$c]; - } - } - - return @_; -} - -my @exports; - -foreach (@ARGV) { - my $file; - open($file, "< $_") or die("Could not open $_"); - while (<$file>) { - s/[\r\n]//g; - push (@exports, $_); - } - close($file); -} - -@exports = sort(@exports); - -@exports = uniqueify(@exports); - -open(HANDLE, "> $deffile"); -print (HANDLE "EXPORTS\n; NEW:\n"); -for (my $c = 0; $c < scalar(@exports); $c++) { - if ($exports[$c] =~ /[ ]*([^ ]+)(.*)/) { - print (HANDLE "\t$1 \@ " . ($c + 1) . " NONAME$2\n"); - } -} -print(HANDLE "\n"); -close(HANDLE); - diff --git a/bin/makeexpfile b/bin/makeexpfile deleted file mode 100755 index 521791d..0000000 --- a/bin/makeexpfile +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/perl -w - -my $deffile = $ARGV[0]; -my $target = $ARGV[1]; - -my @exports; -open (HANDLE, "< $deffile") or die ("Could not open $deffile"); -while (<HANDLE>) { - while (/(_Z[^ ]+)/xg) { - push (@exports, $1); - } -} -close(HANDLE); - -open(HANDLE, "> $target.s") or die("Could not open $target.s"); -print (HANDLE "\tEXPORT __DLL_Export_Table__\n\n"); -print (HANDLE "\tEXPORT |DLL##ExportTable|\n\n"); -print (HANDLE "\tEXPORT |DLL##ExportTableSize|\n\n"); -print (HANDLE "\tAREA ExportTable, CODE\n"); -print (HANDLE "__DLL_Export_Table__\n"); -print (HANDLE "\tBX lr\n"); -print (HANDLE "|DLL##ExportTableSize|\n"); -print (HANDLE "\tDCD " . scalar(@exports) . "\n"); -print (HANDLE "|DLL##ExportTable|\n"); -print (HANDLE "\tPRESERVE8\n\n"); -for (my $c = 0; $c < scalar(@exports); $c++) { - print (HANDLE "\tIMPORT $exports[$c]\n"); - print (HANDLE "\tDCD $exports[$c] ; \@ ". ($c + 1) . "\n"); -} -print (HANDLE "\n"); -print (HANDLE "\tAREA |.directive|, READONLY, NOALLOC\n"); -print (HANDLE "\tDCB \"#<SYMEDIT>#\\n\"\n"); -print (HANDLE "\tDCB \"EXPORT DLL##ExportTable\\n\"\n"); -print (HANDLE "\tDCB \"EXPORT DLL##ExportTableSize\\n\"\n"); -print (HANDLE "\tEND\n"); -close(HANDLE); - -my $result = system("armasm --apcs /inter -o $target $target.s"); -die("Could not execute armar") if ($result); diff --git a/bin/makeordinalmap b/bin/makeordinalmap deleted file mode 100755 index f81e1ee..0000000 --- a/bin/makeordinalmap +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/perl -w - -my $objects_dir = $ARGV[0]; -my $deffile = $ARGV[1]; -my $dllFile = $ARGV[2]; -my $target = $ARGV[3]; - -my @exports; -my @isData; -open (HANDLE, "< $deffile") or die ("Could not open $deffile"); -while (<HANDLE>) { - if (/([a-z0-9_]+)[ ]+\@/ixg) { - push (@exports, $1); - if (/\bDATA\b/x) { - push (@isData, 1); - } else { - push (@isData, 0); - } - } -} -close(HANDLE); - -my @ordinalfiles; -my $vtblExports; -open($vtblExports, "> $objects_dir/VtblExports.s") or die("Could not open $objects_dir/VtblExports.s"); -print($vtblExports "\tAREA |.directive|, NOALLOC, READONLY, ALIGN=2\n"); -print($vtblExports "\tDCB \"#\<SYMEDIT\>#\\n\"\n"); - -for (my $c = 1; $c < scalar(@exports) + 1; $c++) { - my $symbol = $exports[$c - 1]; - my $genstubs; - my $dllFileWithId = $dllFile; - $dllFileWithId =~ s/^(.*)(\.dll)$/$1\{00010000\}\[e001b2dc\]$2/x; - if ($isData[$c - 1]) { - printf ($vtblExports "\tDCB \"IMPORT #<DLL>$dllFileWithId#<\\\\DLL>%x AS $symbol \\n\"\n", $c); - } else { - open ($genstubs, "| winewrapper genstubs.exe") or die ("Could not execute genstubs"); - printf ($genstubs "$objects_dir/ordinal-$c.o $symbol #<DLL>$dllFileWithId#<\\DLL>%x\n", $c); - push (@ordinalfiles, "$objects_dir/ordinal-$c.o"); - close ($genstubs); - } -} - -print($vtblExports "\tEND\n"); -close($vtblExports); -my $result = system("armasm --apcs /inter -o $objects_dir/VtblExports.o $objects_dir/VtblExports.s"); -die("Could not execute armar") if ($result); - -my $via; -open ($via, "> $objects_dir/input.via") or die("Could not open $objects_dir/input.via"); -print ($via join("\n", @ordinalfiles)); -print ($via "\n$objects_dir/VtblExports.o\n"); -close($via); - -$result = system("armar --create $target --via $objects_dir/input.via"); -die("Could not execute armar") if ($result); - -exit 0 |