blob: 5081de48ae1395cdf368b98aaa346fabd6fabc52 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/usr/bin/perl
#
# spacesyms-o-map.pl INPUT OUTPUT
#
# Copy the object file INPUT to OUTPUT, redefining any symbol in INPUT that
# contains "SPACE" in its name to contain "SPA CE" instead.
use strict;
use warnings;
my ($input, $output) = @ARGV;
my @cmds = ('objcopy');
open my $nm, '-|', 'nm', $input or die "cannot run nm: $!";
while (<$nm>) {
next if not m/SPACE/;
chomp;
my $x = (split / /, $_, 3)[2];
my $y = $x =~ s/SPACE/SPA CE/r;
push @cmds, "--redefine-sym=$x=$y";
}
close $nm;
push @cmds, $input, $output;
exec { $cmds[0] } @cmds;
|