diff --git a/tools/load-foreign.csh b/tools/load-foreign.csh index e185e6a6fdf49aac578a5bdbe4823f0068467019..bcc7ceceb0fe69cf80d9c4630098be507df5b95f 100755 --- a/tools/load-foreign.csh +++ b/tools/load-foreign.csh @@ -2,18 +2,34 @@ # script run by load-foreign to do OS-specific symbol-table extraction. -if ( `uname` == HP-UX ) then +switch ( `uname` ) + + case HP-UX: ld -a archive -N -A $argv[1] -R $argv[2] -o $argv[3] $argv[5-] /lib/dyncall.o if ($status != 0) exit 1 /bin/nm -xp $argv[3] | sed -e '/ [tdb] /d' -e 's/^0x//' -e 's/ / /' > $argv[4] if ($status != 0) exit 2 -else + breaksw + + case FreeBSD: + case NetBSD: + + ld -N -R $argv[1] -Ttext $argv[2] -o $argv[3] $argv[5-] + if ($status != 0) exit 1 + + nm -gp $argv[3] > $argv[4] + if ($status != 0) exit 2 + breaksw + + default: ld -N -A $argv[1] -T $argv[2] -o $argv[3] $argv[5-] if ($status != 0) exit 1 nm -gp $argv[3] > $argv[4] if ($status != 0) exit 2 -endif + breaksw + +endsw exit 0