diff options
author | obrien <obrien@FreeBSD.org> | 2003-09-06 02:18:03 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2003-09-06 02:18:03 +0000 |
commit | f2b101f4e8036660b8f280e141766ff604fd238f (patch) | |
tree | 59c158696cf86324e49a2c9fad20cb8c1c682eae | |
parent | 521fd6195a00e72208369f5622ff85e2d1cf0d88 (diff) | |
download | FreeBSD-src-f2b101f4e8036660b8f280e141766ff604fd238f.zip FreeBSD-src-f2b101f4e8036660b8f280e141766ff604fd238f.tar.gz |
Finish the deorbital burn of the i386-only a.out toolchain.
-rw-r--r-- | usr.bin/ranlib/Makefile | 11 | ||||
-rw-r--r-- | usr.bin/ranlib/build.c | 296 | ||||
-rw-r--r-- | usr.bin/ranlib/extern.h | 47 | ||||
-rw-r--r-- | usr.bin/ranlib/misc.c | 98 | ||||
-rw-r--r-- | usr.bin/ranlib/pathnames.h | 36 | ||||
-rw-r--r-- | usr.bin/ranlib/ranlib.1 | 92 | ||||
-rw-r--r-- | usr.bin/ranlib/ranlib.1aout | 91 | ||||
-rw-r--r-- | usr.bin/ranlib/ranlib.5 | 71 | ||||
-rw-r--r-- | usr.bin/ranlib/ranlib.c | 100 | ||||
-rw-r--r-- | usr.bin/ranlib/touch.c | 94 |
10 files changed, 0 insertions, 936 deletions
diff --git a/usr.bin/ranlib/Makefile b/usr.bin/ranlib/Makefile deleted file mode 100644 index d923416..0000000 --- a/usr.bin/ranlib/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# @(#)Makefile 8.1 (Berkeley) 6/6/93 -# $FreeBSD$ - -PROG= ranlib -SRCS= archive.c build.c misc.c ranlib.c touch.c -CFLAGS+=-I${.CURDIR} -I${.CURDIR}/../ar -MAN= ranlib.1aout ranlib.5 -BINDIR= /usr/libexec/aout -VPATH= ${.CURDIR}/../ar - -.include <bsd.prog.mk> diff --git a/usr.bin/ranlib/build.c b/usr.bin/ranlib/build.c deleted file mode 100644 index f9e3664..0000000 --- a/usr.bin/ranlib/build.c +++ /dev/null @@ -1,296 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * 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. - */ - -#ifndef lint -#if 0 -static char sccsid[] = "@(#)build.c 8.1 (Berkeley) 6/6/93"; -#endif -#endif /* not lint */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/stat.h> - -#include <arpa/inet.h> - -#include <a.out.h> -#include <ar.h> -#include <dirent.h> -#include <fcntl.h> -#include <ranlib.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include "archive.h" -#include "extern.h" - -typedef struct _rlib { - struct _rlib *next; /* next structure */ - off_t pos; /* offset of defining archive file */ - char *sym; /* symbol */ - int symlen; /* strlen(sym) */ -} RLIB; -RLIB *rhead, **pnext; - -FILE *fp; - -long symcnt; /* symbol count */ -long tsymlen; /* total string length */ - -static void rexec(int, int); -static void symobj(void); - -static char tname[] = "temporary file"; /* temporary file "name" */ - -int -build(void) -{ - CF cf; - int afd, tfd; - off_t size; - - afd = open_archive(O_RDWR); - fp = fdopen(afd, "r+"); - tfd = tmp(); - - SETCF(afd, archive, tfd, tname, RPAD|WPAD); - - /* Read through the archive, creating list of symbols. */ - pnext = &rhead; - symcnt = tsymlen = 0; - while(get_arobj(afd)) { - if (!strcmp(chdr.name, RANLIBMAG)) { - skip_arobj(afd); - continue; - } - rexec(afd, tfd); - put_arobj(&cf, (struct stat *)NULL); - } - *pnext = NULL; - - /* Create the symbol table. */ - symobj(); - - /* Copy the saved objects into the archive. */ - size = lseek(tfd, (off_t)0, SEEK_CUR); - (void)lseek(tfd, (off_t)0, SEEK_SET); - SETCF(tfd, tname, afd, archive, WPAD); - copy_ar(&cf, size); - (void)ftruncate(afd, lseek(afd, (off_t)0, SEEK_CUR)); - (void)close(tfd); - - /* Set the time. */ - settime(afd); - close_archive(afd); - return(0); -} - -/* - * rexec - * Read the exec structure; ignore any files that don't look - * exactly right. - */ -static void -rexec(int rfd, int wfd) -{ - RLIB *rp; - long nsyms; - int nr, symlen; - char *strtab = 0, *sym; - struct exec ebuf; - struct nlist nl; - off_t r_off, w_off; - long strsize; - - /* Get current offsets for original and tmp files. */ - r_off = lseek(rfd, (off_t)0, SEEK_CUR); - w_off = lseek(wfd, (off_t)0, SEEK_CUR); - - /* Read in exec structure. */ - nr = read(rfd, &ebuf, sizeof(struct exec)); - if (nr != sizeof(struct exec)) - goto badread; - - /* Check magic number and symbol count. */ - if (N_BADMAG(ebuf) || ebuf.a_syms == 0) - goto bad1; - - /* Seek to string table. */ - if (lseek(rfd, r_off + N_STROFF(ebuf), SEEK_SET) == (off_t)-1) - error(archive); - - /* Read in size of the string table. */ - nr = read(rfd, &strsize, sizeof(strsize)); - if (nr != sizeof(strsize)) - goto badread; - - /* Read in the string table. */ - strsize -= sizeof(strsize); - if ((strtab = malloc(strsize)) == NULL) - error(archive); - nr = read(rfd, strtab, strsize); - if (nr != strsize) { -badread: if (nr < 0) - error(archive); - goto bad2; - } - - /* Seek to symbol table. */ - if (fseek(fp, (long)r_off + N_SYMOFF(ebuf), SEEK_SET)) - goto bad2; - - /* For each symbol read the nlist entry and save it as necessary. */ - nsyms = ebuf.a_syms / sizeof(struct nlist); - while (nsyms--) { - if (!fread(&nl, sizeof(struct nlist), 1, fp)) { - if (feof(fp)) - badfmt(); - error(archive); - } - - /* Ignore if no name or local. */ - if (!nl.n_un.n_strx || !(nl.n_type & N_EXT)) - continue; - - /* - * If the symbol is an undefined external and the n_value - * field is non-zero, keep it. - */ - if ((nl.n_type & N_TYPE) == N_UNDF && !nl.n_value) - continue; - - /* First four bytes are the table size. */ - sym = strtab + nl.n_un.n_strx - sizeof(long); - symlen = strlen(sym) + 1; - - if ((rp = malloc(sizeof(RLIB))) == NULL) - error(archive); - if ((rp->sym = malloc(symlen)) == NULL) - error(archive); - bcopy(sym, rp->sym, symlen); - rp->symlen = symlen; - rp->pos = w_off; - - /* Build in forward order for "ar -m" command. */ - *pnext = rp; - pnext = &rp->next; - - ++symcnt; - tsymlen += symlen; - } - -bad2: free(strtab); -bad1: (void)lseek(rfd, r_off, SEEK_SET); -} - -/* - * symobj -- - * Write the symbol table into the archive, computing offsets as - * writing. - */ -static void -symobj(void) -{ - RLIB *rp, *rpnext; - struct ranlib rn; - off_t ransize; - long size, stroff; - char hb[sizeof(struct ar_hdr) + 1], pad; - - /* Rewind the archive, leaving the magic number. */ - if (fseek(fp, (long)SARMAG, SEEK_SET)) - error(archive); - - /* Size of the ranlib archive file, pad if necessary. */ - ransize = sizeof(long) + - symcnt * sizeof(struct ranlib) + sizeof(long) + tsymlen; - if (ransize & 01) { - ++ransize; - pad = '\n'; - } else - pad = '\0'; - - /* Put out the ranlib archive file header. */ -#define DEFMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) - (void)sprintf(hb, HDR2, RANLIBMAG, 0L, getuid(), getgid(), - DEFMODE & ~umask(0), ransize, ARFMAG); - if (!fwrite(hb, sizeof(struct ar_hdr), 1, fp)) - error(tname); - - /* First long is the size of the ranlib structure section. */ - size = symcnt * sizeof(struct ranlib); - if (!fwrite(&size, sizeof(size), 1, fp)) - error(tname); - - /* Offset of the first archive file. */ - size = SARMAG + sizeof(struct ar_hdr) + ransize; - - /* - * Write out the ranlib structures. The offset into the string - * table is cumulative, the offset into the archive is the value - * set in rexec() plus the offset to the first archive file. - */ - for (rp = rhead, stroff = 0; rp; rp = rp->next) { - rn.ran_un.ran_strx = stroff; - stroff += rp->symlen; - rn.ran_off = size + rp->pos; - if (!fwrite(&rn, sizeof(struct ranlib), 1, fp)) - error(archive); - } - - /* Second long is the size of the string table. */ - if (!fwrite(&tsymlen, sizeof(tsymlen), 1, fp)) - error(tname); - - /* Write out the string table. */ - for (rp = rhead; rp; rp = rpnext) { - if (!fwrite(rp->sym, rp->symlen, 1, fp)) - error(tname); - rpnext = rp->next; - free(rp->sym); - free(rp); - } - rhead = NULL; - - if (pad && !fwrite(&pad, sizeof(pad), 1, fp)) - error(tname); - - (void)fflush(fp); -} diff --git a/usr.bin/ranlib/extern.h b/usr.bin/ranlib/extern.h deleted file mode 100644 index 6014f90..0000000 --- a/usr.bin/ranlib/extern.h +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * 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. - * - * $FreeBSD$ - */ - -extern int build(void); -extern int touch(void); -extern int tmp(void); -extern void error(char *); -extern void badfmt(void); -extern void settime(int); - -extern CHDR chdr; /* converted header */ -extern char *archive; /* archive name */ diff --git a/usr.bin/ranlib/misc.c b/usr.bin/ranlib/misc.c deleted file mode 100644 index f98120d..0000000 --- a/usr.bin/ranlib/misc.c +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * 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. - */ - -#ifndef lint -#if 0 -static char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 6/6/93"; -#endif -#endif /* not lint */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/param.h> -#include <sys/signal.h> - -#include <dirent.h> -#include <err.h> -#include <errno.h> -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include "archive.h" -#include "extern.h" -#include "pathnames.h" - -extern char *archive; /* archive name */ - -void error(char *); - -int -tmp(void) -{ - sigset_t set, oset; - int fd; - char *envtmp, path[MAXPATHLEN]; - - if ((envtmp = getenv("TMPDIR")) != NULL) - (void)sprintf(path, "%s%s", envtmp, strrchr(_PATH_RANTMP, '/')); - else - bcopy(_PATH_RANTMP, path, sizeof(_PATH_RANTMP)); - - sigfillset(&set); - (void)sigprocmask(SIG_BLOCK, &set, &oset); - if ((fd = mkstemp(path)) == -1) - error(path); - (void)unlink(path); - (void)sigprocmask(SIG_SETMASK, &oset, NULL); - return(fd); -} - -void -badfmt(void) -{ - errno = EFTYPE; - error(archive); -} - -void -error(char *name) -{ - err(1, "%s", name); -} diff --git a/usr.bin/ranlib/pathnames.h b/usr.bin/ranlib/pathnames.h deleted file mode 100644 index c1df3f9..0000000 --- a/usr.bin/ranlib/pathnames.h +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * 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. - * - * @(#)pathnames.h 8.1 (Berkeley) 6/6/93 - */ - -#define _PATH_RANTMP "/tmp/ranlib.XXXXXX" diff --git a/usr.bin/ranlib/ranlib.1 b/usr.bin/ranlib/ranlib.1 deleted file mode 100644 index cd33c00..0000000 --- a/usr.bin/ranlib/ranlib.1 +++ /dev/null @@ -1,92 +0,0 @@ -.\" 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. -.\" -.\" @(#)ranlib.1 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD$ -.\" -.Dd June 6, 1993 -.Dt RANLIB 1 -.Os -.Sh NAME -.Nm ranlib -.Nd table-of-contents for archive libraries -.Sh SYNOPSIS -.Nm -.Op Fl t -.Ar -.Sh DESCRIPTION -The -.Nm -utility creates a table of external references for archive libraries, -normally used by the loader, -.Xr ld 1 . -This table is named ``__.SYMDEF'' and is prepended to the archive. -Files in the archive which are not executable and symbols which are -uninteresting to the loader are ignored. -.Pp -The options are as follows: -.Bl -tag -width indent -.It Fl t -Set the modification time of the __.SYMDEF file. -Some loaders (but not the -.Fx -one) -compared this time with the modification time of the -archive to verify that the table is up-to-date with respect to the -archive. -If the modification time has been changed without any change to the -archive (for example, by a -.Xr cp 1 ) , -the -.Fl t -option can be used to ``touch'' the modification time so that it -appears that the table is up-to-date. -This is also useful after using the -.Fl t -option of -.Xr make 1 . -.El -.Sh FILES -.Bl -tag -width /tmp/ranlib.XXXXXX -compact -.It Pa /tmp/ranlib.XXXXXX -Temporary file names. -.El -.Sh SEE ALSO -.Xr ar 1 , -.Xr ld 1 , -.Xr lorder 1 , -.Xr nm 1 , -.Xr ranlib 5 -.Sh HISTORY -A -.Nm -command appeared in -.At v7 . diff --git a/usr.bin/ranlib/ranlib.1aout b/usr.bin/ranlib/ranlib.1aout deleted file mode 100644 index cac26f8..0000000 --- a/usr.bin/ranlib/ranlib.1aout +++ /dev/null @@ -1,91 +0,0 @@ -.\" 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. -.\" -.\" @(#)ranlib.1 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD$ -.\" -.Dd June 6, 1993 -.Dt RANLIB 1 -.Os -.Sh NAME -.Nm ranlib -.Nd table-of-contents for archive libraries -.Sh SYNOPSIS -.Nm -.Op Fl t -.Ar -.Sh DESCRIPTION -.Nm Ranlib -creates a table of external references for archive libraries, -normally used by the loader, -.Xr ld 1 . -This table is named ``__.SYMDEF'' and is prepended to the archive. -Files in the archive which are not executable and symbols which are -uninteresting to the loader are ignored. -.Pp -The options are as follows: -.Bl -tag -width indent -.It Fl t -Set the modification time of the __.SYMDEF file. -Some loaders (but not the -.Fx -one) -compared this time with the modification time of the -archive to verify that the table is up-to-date with respect to the -archive. -If the modification time has been changed without any change to the -archive (for example, by a -.Xr cp 1 ) , -the -.Fl t -option can be used to ``touch'' the modification time so that it -appears that the table is up-to-date. -This is also useful after using the -.Fl t -option of -.Xr make 1 . -.El -.Sh FILES -.Bl -tag -width /tmp/ranlib.XXXXXX -compact -.It Pa /tmp/ranlib.XXXXXX -Temporary file names. -.El -.Sh SEE ALSO -.Xr ar 1 , -.Xr ld 1 , -.Xr lorder 1 , -.Xr nm 1 , -.Xr ranlib 5 -.Sh HISTORY -A -.Nm -command appeared in -.At v7 . diff --git a/usr.bin/ranlib/ranlib.5 b/usr.bin/ranlib/ranlib.5 deleted file mode 100644 index 3559a263..0000000 --- a/usr.bin/ranlib/ranlib.5 +++ /dev/null @@ -1,71 +0,0 @@ -.\" Copyright (c) 1990, 1991, 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. -.\" -.\" @(#)ranlib.5.5 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD$ -.\" -.Dd June 6, 1993 -.Dt RANLIB 5 -.Os -.Sh NAME -.Nm ranlib -.Nd archive (library) table-of-contents format -.Sh SYNOPSIS -.In ranlib.h -.Sh DESCRIPTION -The archive table-of-contents command -.Nm -creates a table of contents for archives, containing object files, to -be used by the link-editor -.Xr ld 1 . -It operates on archives created with the utility -.Xr ar 1 . -.Pp -The -.Nm -function -prepends a new file to the archive which has three separate parts. -The first part is a standard archive header, which has a special name -field, "__.SYMDEF". -.Pp -The second part is a ``long'' followed by a list of ranlib structures. -The long is the size, in bytes, of the list of ranlib structures. -Each of the ranlib structures consists of a zero based offset into the -next section (a string table of symbols) and an offset from the beginning -of the archive to the start of the archive file which defines the symbol. -The actual number of ranlib structures is this number divided by the size -of an individual ranlib structure. -.Pp -The third part is a ``long'' followed by a string table. -The long is the size, in bytes of the string table. -.Sh SEE ALSO -.Xr ar 1 , -.Xr ranlib 1 diff --git a/usr.bin/ranlib/ranlib.c b/usr.bin/ranlib/ranlib.c deleted file mode 100644 index 933a23a..0000000 --- a/usr.bin/ranlib/ranlib.c +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * 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. - */ - -#ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1990, 1993\n\ - The Regents of the University of California. All rights reserved.\n"; -#endif /* not lint */ - -#ifndef lint -#if 0 -static char sccsid[] = "@(#)ranlib.c 8.1 (Berkeley) 6/6/93"; -#endif -#endif /* not lint */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> - -#include <dirent.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -#include "archive.h" -#include "extern.h" - -static void usage(void); - -CHDR chdr; -u_int options; /* UNUSED -- keep open_archive happy */ -char *archive; - -int -main(int argc, char *argv[]) -{ - int ch, eval, tflag; - - tflag = 0; - while ((ch = getopt(argc, argv, "t")) != -1) - switch(ch) { - case 't': - tflag = 1; - break; - case '?': - default: - usage(); - } - argc -= optind; - argv += optind; - - if (!*argv) - usage(); - - for (eval = 0; (archive = *argv++); ) - eval |= tflag ? touch() : build(); - exit(eval); -} - -static void -usage(void) -{ - (void)fprintf(stderr, "usage: ranlib [-t] archive ...\n"); - exit(1); -} - diff --git a/usr.bin/ranlib/touch.c b/usr.bin/ranlib/touch.c deleted file mode 100644 index 0ede6b3..0000000 --- a/usr.bin/ranlib/touch.c +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * 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. - */ - -#ifndef lint -#if 0 -static char sccsid[] = "@(#)touch.c 8.1 (Berkeley) 6/6/93"; -#endif -#endif /* not lint */ - -#include <sys/types.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> - -#include <ar.h> -#include <dirent.h> -#include <err.h> -#include <fcntl.h> -#include <ranlib.h> -#include <stdio.h> -#include <string.h> -#include <time.h> -#include <unistd.h> - -#include "archive.h" -#include "extern.h" - -void settime( int ); -int touch( void ); - -int -touch(void) -{ - int afd; - - afd = open_archive(O_RDWR); - - if (!get_arobj(afd) || - strncmp(RANLIBMAG, chdr.name, sizeof(RANLIBMAG) - 1)) { - warnx("%s: no symbol table", archive); - return(1); - } - settime(afd); - close_archive(afd); - return(0); -} - -void -settime(int afd) -{ - struct ar_hdr *hdr; - off_t size; - char buf[50]; - - size = SARMAG + sizeof(hdr->ar_name); - if (lseek(afd, size, SEEK_SET) == (off_t)-1) - error(archive); - (void)sprintf(buf, "%-12ld", (long)time((time_t *)NULL) + RANLIBSKEW); - if (write(afd, buf, sizeof(hdr->ar_date)) != sizeof(hdr->ar_date)) - error(archive); -} |