1234567891011121314151617181920212223242526 |
- #!/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;
|