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