#!/usr/bin/env perl
#
# Dump a radare script that flags all symbols at it's _FILE_ offset.
#
# author: pancake
#

my $target = $ARGV[0];

if (( $target eq "" ) || ( $target eq "-h" )) {
	print STDERR "Usage: rsc syms-flag [file] > file.syms.flags\n";
	exit 1;
}

print "fs symbols\n";
my $base = qx(rsc elf-base-addr $target | head -n 1); chomp($base);
my @syms = split(/\n/, qx(rsc syms $target));
for my $i (0 .. @syms) {
	my ($addr, $name) = split(/ /,$syms[$i]);
	next if ($name eq "");
	$name=~s/\@.*//;
	$name=~s/-/_/;
	$name="sym_$name";
	if ($base>0) {
		eval "\$addr=$addr-$base;";
	} else {
		eval "\$addr=$addr;";
	}
	printf "f $name @ 0x%x\n", $addr if ($addr<0x99999);
}
print STDERR @syms." symbols added.\n" if ( $ENV{"VERBOSE"} );
