diff options
author | 1999-05-21 01:24:04 +0000 | |
---|---|---|
committer | 1999-05-21 01:24:04 +0000 | |
commit | 687f1ee591bd7a34f42946086e2b461cf47f4ec5 (patch) | |
tree | 31a2cb6267d57982e31974222b363879b0f93f8f | |
parent | Be more specific about dynamic libraries: ldd does not know how to handle (diff) | |
download | wireguard-openbsd-687f1ee591bd7a34f42946086e2b461cf47f4ec5.tar.xz wireguard-openbsd-687f1ee591bd7a34f42946086e2b461cf47f4ec5.zip |
One lorder to bind them all,
in the land of OpenBSD, where the cute daemon rules.
-rw-r--r-- | usr.bin/lorder/Makefile | 8 | ||||
-rw-r--r-- | usr.bin/lorder/lorder.sh | 27 | ||||
-rw-r--r-- | usr.bin/lorder/lorder.sh.gnm | 97 |
3 files changed, 11 insertions, 121 deletions
diff --git a/usr.bin/lorder/Makefile b/usr.bin/lorder/Makefile index 516ec946b0e..110f5bd7aa0 100644 --- a/usr.bin/lorder/Makefile +++ b/usr.bin/lorder/Makefile @@ -1,14 +1,8 @@ -# $OpenBSD: Makefile,v 1.7 1997/09/21 11:49:46 deraadt Exp $ +# $OpenBSD: Makefile,v 1.8 1999/05/21 01:24:04 espie Exp $ MAN= lorder.1 -.if (${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "mips" \ - || ${MACHINE_ARCH} == "powerpc" ) -# alpha, mips use special version which works with GNU (or BSD) nm. -SCRIPT= lorder.sh.gnm -.else SCRIPT= lorder.sh -.endif realinstall: ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ diff --git a/usr.bin/lorder/lorder.sh b/usr.bin/lorder/lorder.sh index fe71984c699..fc936e44719 100644 --- a/usr.bin/lorder/lorder.sh +++ b/usr.bin/lorder/lorder.sh @@ -1,6 +1,6 @@ #!/bin/sh - -# $OpenBSD: lorder.sh,v 1.9 1998/11/22 00:11:08 d Exp $ -# $NetBSD: lorder.sh,v 1.3 1995/04/24 07:38:52 cgd Exp $ +# $OpenBSD: lorder.sh,v 1.10 1999/05/21 01:24:04 espie Exp $ +# $NetBSD: lorder.sh.gnm,v 1.3 1995/12/20 04:45:11 cgd Exp $ # # Copyright (c) 1990, 1993 # The Regents of the University of California. All rights reserved. @@ -36,7 +36,7 @@ # @(#)lorder.sh 8.1 (Berkeley) 6/6/93 # -# only one argument is a special case, just output the name twice +# one argument can be optimized: put out the filename twice case $# in 0) echo "usage: lorder file ..."; @@ -62,23 +62,16 @@ umask $um # remove temporary files on HUP, INT, QUIT, PIPE, TERM trap "rm -rf $TDIR; trap 2 ; kill -2 $$" 1 2 3 13 15 -# if the line ends in a colon, assume it's the first occurrence of a new -# object file. Echo it twice, just to make sure it gets into the output. -# -# if the line has " T " or " D " it's a globally defined symbol, put it -# into the symbol file. +# make sure files depend on themselves +for file in "$@"; do echo "$file $file" ; done +# if the line has " T ", " D ", " G ", " R ", it's a globally defined +# symbol, put it into the symbol file. # # if the line has " U " it's a globally undefined symbol, put it into # the reference file. ${NM:-nm} -go "$@" | sed " - /:$/ { - s/:// - s/.*/& &/ - p - d - } - / [TD] / { - s/:.* [TD] / / + / [TDGR] / { + s/:.* [TDGR] / / w $S d } @@ -90,7 +83,7 @@ ${NM:-nm} -go "$@" | sed " " # sort symbols and references on the first field (the symbol) -# join on that field, and print out the file names. +# join on that field, and print out the file names (dependencies). sort +1 $R -o $R sort +1 $S -o $S join -j 2 -o 1.1 2.1 $R $S diff --git a/usr.bin/lorder/lorder.sh.gnm b/usr.bin/lorder/lorder.sh.gnm deleted file mode 100644 index 19dd9813b13..00000000000 --- a/usr.bin/lorder/lorder.sh.gnm +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh - -# $OpenBSD: lorder.sh.gnm,v 1.9 1998/11/22 00:11:09 d Exp $ -# $NetBSD: lorder.sh.gnm,v 1.3 1995/12/20 04:45:11 cgd Exp $ -# -# Copyright (c) 1990, 1993 -# The Regents of the University of California. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by the University of -# California, Berkeley and its contributors. -# 4. Neither the name of the University nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# @(#)lorder.sh 8.1 (Berkeley) 6/6/93 -# - -# only one argument is a special case, just output the name twice -case $# in - 0) - echo "usage: lorder file ..."; - exit ;; - 1) - echo $1 $1; - exit ;; -esac - -# temporary files -TDIR=/tmp/_lorder$$ -R=$TDIR/reference -S=$TDIR/symbol - -um=`umask` -umask 022 -if ! mkdir $TDIR ; then - echo temporary directory exists $TDIR - exit 1 -fi -umask $um - -# remove temporary files on HUP, INT, QUIT, PIPE, TERM -trap "rm -rf $TDIR; trap 2 ; kill -2 $$" 1 2 3 13 15 - -# if the line ends in a colon, assume it's the first occurrence of a new -# object file. Echo it twice, just to make sure it gets into the output. -# -# if the line has " T " or " D " it's a globally defined symbol, put it -# into the symbol file. -# -# if the line has " U " it's a globally undefined symbol, put it into -# the reference file. -(for file in "$@" ; do echo "$file:" ; done ; ${NM:-nm} -go "$@") | sed " - /:$/ { - s/:// - s/.*/& &/ - p - d - } - / [TDGR] / { - s/:.* [TDGR] / / - w $S - d - } - / U / { - s/:.* U / / - w $R - } - d -" - -# sort symbols and references on the first field (the symbol) -# join on that field, and print out the file names. -sort +1 $R -o $R -sort +1 $S -o $S -join -j 2 -o 1.1 2.1 $R $S -rm -rf $TDIR |