aboutsummaryrefslogtreecommitdiff
path: root/bin/9l
diff options
context:
space:
mode:
authorBenjamin Huntsman <BHuntsman@mail2.cu-portland.edu>2009-07-15 16:08:09 -0400
committerBenjamin Huntsman <BHuntsman@mail2.cu-portland.edu>2009-07-15 16:08:09 -0400
commita4980b3957ee745dfd1560f531ce5da1b3e41343 (patch)
tree32564b0c48bde8f5563a7c6d8024b8c230c94bd1 /bin/9l
parent861fdff54b9a5a3b6dd297d423802a454d624562 (diff)
downloadplan9port-a4980b3957ee745dfd1560f531ce5da1b3e41343.tar.gz
plan9port-a4980b3957ee745dfd1560f531ce5da1b3e41343.tar.bz2
plan9port-a4980b3957ee745dfd1560f531ce5da1b3e41343.zip
9l: platform-specific options first; AIX, Tru64 support
http://codereview.appspot.com/95050
Diffstat (limited to 'bin/9l')
-rwxr-xr-xbin/9l145
1 files changed, 78 insertions, 67 deletions
diff --git a/bin/9l b/bin/9l
index d8ee0b1a..06939b45 100755
--- a/bin/9l
+++ b/bin/9l
@@ -7,6 +7,83 @@ doautolib=true
doautoframework=true
verbose=false
+nmflags=""
+extralibs="-lm"
+tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
+case "$tag" in
+*FreeBSD*)
+ ld=gcc
+ userpath=true
+ extralibs="$extralibs -lutil"
+ case "`uname -r`" in
+ 5.2.*)
+ extralibs="$extralibs -lkse"
+ ;;
+ [5-9].*)
+ extralibs="$extralibs -lpthread"
+ ;;
+ esac
+ ;;
+*BSD*)
+ ld=gcc
+ userpath=true
+ extralibs="$extralibs -lutil"
+ ;;
+*OSF1*)
+ ld=cc
+ userpath=true
+ extralibs="$extralibs -lutil"
+ nmflags="-B"
+ ;;
+*Linux*)
+ ld=gcc
+ userpath=true
+ extralibs="$extralibs -lutil"
+ case "${SYSVERSION:-`uname -r`}" in
+ 2.6.*)
+ extralibs="$extralibs -lpthread"
+ ;;
+ esac
+ ;;
+*Darwin*)
+ ld=gcc
+ ;;
+*SunOS*)
+ ld="${CC9:-cc} -g"
+ extralibs="$extralibs -lrt -lpthread -lsocket -lnsl"
+ # Record paths to shared libraries to avoid needing LD_LIBRARY_PATH
+ for i in "$libsl $@"
+ do
+ case "$i" in
+ -L*)
+ s=`echo $i | sed 's/-L/-R/'`
+ extralibs="$extralibs $s"
+ ;;
+ esac
+ done
+ case "${SYSVERSION:-`uname -r`}" in
+ 5.[67])
+ echo do not know how to link right thread library on "$tag" 1>&2
+ ;;
+ 5.8)
+ # Some trickery is needed to force use of
+ # alternate thread lib from /usr/lib/lwp
+ # Likely, this only works with sun cc,
+ # for other compiler/loader we would need other flags.
+ ld="$ld -i"
+ extralibs="$extralibs /usr/lib/lwp/libthread.so -R/usr/lib/lwp:/usr/lib"
+ ;;
+ esac
+ ;;
+*AIX*)
+ ld=gcc
+ nmflags="-B"
+ ;;
+*)
+ echo do not know how to link on "$tag" 1>&2
+ exit 1
+esac
+
if [ "x$1" = "x-l" ]
then
shift
@@ -50,7 +127,7 @@ then
if [ "x$ofiles" != "x" ]
then
a=`
- nm $ofiles |
+ nm $nmflags $ofiles |
grep '__p9l_autolib_[a-zA-Z0-9+-]*$' |
sed 's/.*__p9l_autolib_//' |
sort -u
@@ -242,72 +319,6 @@ then
done
fi
-extralibs="-lm"
-tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
-case "$tag" in
-*FreeBSD*)
- ld=gcc
- userpath=true
- extralibs="$extralibs -lutil"
- case "`uname -r`" in
- 5.2.*)
- extralibs="$extralibs -lkse"
- ;;
- [5-9].*)
- extralibs="$extralibs -lpthread"
- ;;
- esac
- ;;
-*BSD*)
- ld=gcc
- userpath=true
- extralibs="$extralibs -lutil"
- ;;
-*Linux*)
- ld=gcc
- userpath=true
- extralibs="$extralibs -lutil"
- case "${SYSVERSION:-`uname -r`}" in
- 2.6.*)
- extralibs="$extralibs -lpthread"
- ;;
- esac
- ;;
-*Darwin*)
- ld=gcc
- ;;
-*SunOS*)
- ld="${CC9:-cc} -g"
- extralibs="$extralibs -lrt -lpthread -lsocket -lnsl"
- # Record paths to shared libraries to avoid needing LD_LIBRARY_PATH
- for i in "$libsl $@"
- do
- case "$i" in
- -L*)
- s=`echo $i | sed 's/-L/-R/'`
- extralibs="$extralibs $s"
- ;;
- esac
- done
- case "${SYSVERSION:-`uname -r`}" in
- 5.[67])
- echo do not know how to link right thread library on "$tag" 1>&2
- ;;
- 5.8)
- # Some trickery is needed to force use of
- # alternate thread lib from /usr/lib/lwp
- # Likely, this only works with sun cc,
- # for other compiler/loader we would need other flags.
- ld="$ld -i"
- extralibs="$extralibs /usr/lib/lwp/libthread.so -R/usr/lib/lwp:/usr/lib"
- ;;
- esac
- ;;
-*)
- echo do not know how to link on "$tag" 1>&2
- exit 1
-esac
-
case "$userpath" in
true)
for i in "$libsl $@"