aboutsummaryrefslogtreecommitdiff
path: root/openssl/ms/segrenam.pl
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-03-30 12:36:28 +0000
committermarha <marha@users.sourceforge.net>2010-03-30 12:36:28 +0000
commitff48c0d9098080b51ea12710029135916d117806 (patch)
tree96e6af9caf170ba21a1027b24e306a07e27d7b75 /openssl/ms/segrenam.pl
parentbb731f5ac92655c4860a41fa818a7a63005f8369 (diff)
downloadvcxsrv-ff48c0d9098080b51ea12710029135916d117806.tar.gz
vcxsrv-ff48c0d9098080b51ea12710029135916d117806.tar.bz2
vcxsrv-ff48c0d9098080b51ea12710029135916d117806.zip
svn merge -r514:HEAD ^/branches/released .
Diffstat (limited to 'openssl/ms/segrenam.pl')
-rw-r--r--openssl/ms/segrenam.pl65
1 files changed, 0 insertions, 65 deletions
diff --git a/openssl/ms/segrenam.pl b/openssl/ms/segrenam.pl
deleted file mode 100644
index 2ab22a045..000000000
--- a/openssl/ms/segrenam.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env perl
-
-my $quiet = 1;
-
-unpack("L",pack("N",1))!=1 || die "only little-endian hosts are supported";
-
-# first argument can specify custom suffix...
-$suffix=(@ARGV[0]=~/^\$/) ? shift(@ARGV) : "\$m";
-#################################################################
-# rename segments in COFF modules according to %map table below #
-%map=( ".text" => "fipstx$suffix", #
- ".text\$"=> "fipstx$suffix", #
- ".rdata"=> "fipsrd$suffix", #
- ".data" => "fipsda$suffix" ); #
-#################################################################
-
-# collect file list
-foreach (@ARGV) {
- if (/\*/) { push(@files,glob($_)); }
- else { push(@files,$_); }
-}
-
-use Fcntl;
-use Fcntl ":seek";
-
-foreach (@files) {
- $file=$_;
- print "processing $file\n" unless $quiet;
-
- sysopen(FD,$file,O_RDWR|O_BINARY) || die "sysopen($file): $!";
-
- # read IMAGE_DOS_HEADER
- sysread(FD,$mz,64)==64 || die "$file is too short";
- @dos_header=unpack("a2C58I",$mz);
- if (@dos_header[0] eq "MZ") {
- $e_lfanew=pop(@dos_header);
- sysseek(FD,$e_lfanew,SEEK_SET) || die "$file is too short";
- sysread(FD,$Magic,4)==4 || die "$file is too short";
- unpack("I",$Magic)==0x4550 || die "$file is not COFF image";
- } elsif ($file =~ /\.obj$/i) {
- # .obj files have no IMAGE_DOS_HEADER
- sysseek(FD,0,SEEK_SET) || die "unable to rewind $file";
- } else { next; }
-
- # read IMAGE_FILE_HEADER
- sysread(FD,$coff,20)==20 || die "$file is too short";
- ($Machine,$NumberOfSections,$TimeDateStamp,
- $PointerToSymbolTable,$NumberOfSysmbols,
- $SizeOfOptionalHeader,$Characteristics)=unpack("SSIIISS",$coff);
-
- # skip over IMAGE_OPTIONAL_HEADER
- sysseek(FD,$SizeOfOptionalHeader,SEEK_CUR) || die "$file is too short";
-
- # traverse IMAGE_SECTION_HEADER table
- for($i=0;$i<$NumberOfSections;$i++) {
- sysread(FD,$SectionHeader,40)==40 || die "$file is too short";
- ($Name,@opaque)=unpack("Z8C*",$SectionHeader);
- if ($map{$Name}) {
- sysseek(FD,-40,SEEK_CUR) || die "unable to rewind $file";
- syswrite(FD,pack("a8C*",$map{$Name},@opaque))==40 || die "syswrite failed: $!";
- printf " %-8s -> %.8s\n",$Name,$map{$Name} unless $quiet;
- }
- }
- close(FD);
-}