The branch main has been updated by emaste:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=10cc3e39d6eaf8acd8bd7ba4156fdcef96cbc927

commit 10cc3e39d6eaf8acd8bd7ba4156fdcef96cbc927
Author:     Ed Maste <[email protected]>
AuthorDate: 2021-01-07 22:39:49 +0000
Commit:     Ed Maste <[email protected]>
CommitDate: 2021-01-07 23:50:01 +0000

    Retire obsolete a.out rtld
    
    This was disconnected from the build in 2001 in commit 66422f5b7a1a
    with a comment that it was long overdue even then.
    
    Sponsored by:   The FreeBSD Foundation
---
 libexec/rtld-aout/shlib.c   | 327 --------------------------------------------
 libexec/rtld-aout/shlib.h   |  45 ------
 libexec/rtld-aout/support.c |  84 ------------
 libexec/rtld-aout/support.h |  37 -----
 4 files changed, 493 deletions(-)

diff --git a/libexec/rtld-aout/shlib.c b/libexec/rtld-aout/shlib.c
deleted file mode 100644
index c9724a2203af..000000000000
--- a/libexec/rtld-aout/shlib.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-4-Clause
- *
- * Copyright (c) 1993 Paul Kranenburg
- * 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 Paul Kranenburg.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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$
- */
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-#include <sys/time.h>
-#include <a.out.h>
-#include <ctype.h>
-#include <dirent.h>
-#include <err.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/link_aout.h>
-#include "shlib.h"
-#include "support.h"
-
-/*
- * Standard directories to search for files specified by -l.
- */
-#ifndef STANDARD_SEARCH_DIRS
-#define STANDARD_SEARCH_DIRS    "/usr/lib/aout"
-#endif
-
-/*
- * Actual vector of library search directories,
- * including `-L'ed and LD_LIBRARY_PATH spec'd ones.
- */
-char    **search_dirs;
-int    n_search_dirs;
-
-static const char *standard_search_dirs[] = {
-       STANDARD_SEARCH_DIRS
-};
-
-
-void
-add_search_dir(const char *name)
-{
-       int n;
-
-       for (n = 0; n < n_search_dirs; n++)
-               if (strcmp(search_dirs[n], name) == 0)
-                       return;
-       n_search_dirs++;
-       search_dirs = (char **)
-               xrealloc(search_dirs, n_search_dirs * sizeof search_dirs[0]);
-       search_dirs[n_search_dirs - 1] = strdup(name);
-}
-
-void
-add_search_path(char *path)
-{
-       register char   *cp, *dup;
-
-       if (path == NULL)
-               return;
-
-       /* Add search directories from `path' */
-       path = dup = strdup(path);
-       while ((cp = strsep(&path, ":")) != NULL)
-               add_search_dir(cp);
-       free(dup);
-}
-
-void
-std_search_path(void)
-{
-       int     i, n;
-
-       /* Append standard search directories */
-       n = sizeof standard_search_dirs / sizeof standard_search_dirs[0];
-       for (i = 0; i < n; i++)
-               add_search_dir(standard_search_dirs[i]);
-}
-
-/*
- * Return true if CP points to a valid dewey number.
- * Decode and leave the result in the array DEWEY.
- * Return the number of decoded entries in DEWEY.
- */
-
-int
-getdewey(int dewey[], char *cp)
-{
-       int     i, n;
-
-       for (n = 0, i = 0; i < MAXDEWEY; i++) {
-               if (*cp == '\0')
-                       break;
-
-               if (*cp == '.') cp++;
-               if (!isdigit(*cp))
-                       return 0;
-
-               dewey[n++] = strtol(cp, &cp, 10);
-       }
-
-       return n;
-}
-
-/*
- * Compare two dewey arrays.
- * Return -1 if `d1' represents a smaller value than `d2'.
- * Return  1 if `d1' represents a greater value than `d2'.
- * Return  0 if equal.
- */
-int
-cmpndewey(int d1[], int n1, int d2[], int n2)
-{
-       register int    i;
-
-       for (i = 0; i < n1 && i < n2; i++) {
-               if (d1[i] < d2[i])
-                       return -1;
-               if (d1[i] > d2[i])
-                       return 1;
-       }
-
-       if (n1 == n2)
-               return 0;
-
-       if (i == n1)
-               return -1;
-
-       if (i == n2)
-               return 1;
-
-       errx(1, "cmpndewey: can't happen");
-       return 0;
-}
-
-/*
- * Search directories for a shared library matching the given
- * major and minor version numbers.  See search_lib_dir() below for
- * the detailed matching rules.
- *
- * As soon as a directory with an acceptable match is found, the search
- * terminates.  Subsequent directories are not searched for a better
- * match.  This is in conformance with the SunOS searching rules.  Also,
- * it avoids a lot of directory searches that are virtually guaranteed to
- * be fruitless.
- *
- * The return value is a full pathname to the matching library.  The
- * string is dynamically allocated.  If no matching library is found, the
- * function returns NULL.
- */
-
-char *
-findshlib(char *name, int *majorp, int *minorp, int do_dot_a)
-{
-       int             i;
-
-       for (i = 0; i < n_search_dirs; i++) {
-               char    *path;
-
-               path = search_lib_dir(search_dirs[i], name, majorp, minorp,
-                       do_dot_a);
-               if(path != NULL)
-                       return path;
-       }
-
-       return NULL;
-}
-
-/*
- * Search library directories for a file with the given name.  The
- * return value is a full pathname to the matching file.  The string
- * is dynamically allocated.  If no matching file is found, the function
- * returns NULL.
- */
-
-char *
-find_lib_file(const char *name)
-{
-       int             i;
-
-       for (i = 0; i < n_search_dirs; i++) {
-               char            *path = concat(search_dirs[i], "/", name);
-               struct stat     sb;
-
-               if (lstat(path, &sb) != -1)     /* We found it */
-                       return path;
-
-               free(path);
-       }
-
-       return NULL;
-}
-
-/*
- * Search a given directory for a library (preferably shared) satisfying
- * the given criteria.
- *
- * The matching rules are as follows:
- *
- *     if(*majorp == -1)
- *             find the library with the highest major version;
- *     else
- *             insist on a major version identical to *majorp;
- *
- *     Always find the library with the highest minor version;
- *     if(*minorp != -1)
- *             insist on a minor version >= *minorp;
- *
- * It is invalid to specify a specific minor number while wildcarding
- * the major number.
- *
- * The actual major and minor numbers found are returned via the pointer
- * arguments.
- *
- * A suitable shared library is always preferred over a static (.a) library.
- * If do_dot_a is false, then a static library will not be accepted in
- * any case.
- *
- * The return value is a full pathname to the matching library.  The
- * string is dynamically allocated.  If no matching library is found, the
- * function returns NULL.
- */
-
-char *
-search_lib_dir(char *dir, char *name, int *majorp, int *minorp, int do_dot_a)
-{
-       size_t          namelen;
-       DIR             *dd;
-       struct dirent   *dp;
-       int             best_dewey[MAXDEWEY];
-       int             best_ndewey;
-       char            dot_a_name[MAXNAMLEN+1];
-       char            dot_so_name[MAXNAMLEN+1];
-
-       if((dd = opendir(dir)) == NULL)
-               return NULL;
-
-       namelen = strlen(name);
-       best_ndewey = 0;
-       dot_a_name[0] = '\0';
-       dot_so_name[0] = '\0';
-
-       while((dp = readdir(dd)) != NULL) {
-               char *extension;
-
-               if(strlen(dp->d_name) < 3 + namelen + 2 ||      /* lib+xxx+.a */
-                  strncmp(dp->d_name, "lib", 3) != 0 ||
-                  strncmp(dp->d_name + 3, name, namelen) != 0 ||
-                  dp->d_name[3+namelen] != '.')
-                       continue;
-
-               extension = dp->d_name + 3 + namelen + 1;       /* a or so.* */
-
-               if(strncmp(extension, "so.", 3) == 0) {
-                       int cur_dewey[MAXDEWEY];
-                       int cur_ndewey;
-
-                       cur_ndewey = getdewey(cur_dewey, extension+3);
-                       if(cur_ndewey < 2)      /* Too few version numbers */
-                               continue;
-
-                       if(*majorp != -1) {     /* Need exact match on major */
-                               if(cur_dewey[0] != *majorp)
-                                       continue;
-                               if(*minorp != -1) {  /* Need minor >= minimum */
-                                       if(cur_dewey[1] < *minorp)
-                                               continue;
-                               }
-                       }
-
-                       if(cmpndewey(cur_dewey, cur_ndewey, best_dewey,
-                          best_ndewey) <= 0)   /* No better than prior match */
-                               continue;
-
-                       /* We found a better match */
-                       strcpy(dot_so_name, dp->d_name);
-                       bcopy(cur_dewey, best_dewey,
-                               cur_ndewey * sizeof best_dewey[0]);
-                       best_ndewey = cur_ndewey;
-               } else if(do_dot_a && strcmp(extension, "a") == 0)
-                       strcpy(dot_a_name, dp->d_name);
-       }
-       closedir(dd);
-
-       if(dot_so_name[0] != '\0') {
-               *majorp = best_dewey[0];
-               *minorp = best_dewey[1];
-               return concat(dir, "/", dot_so_name);
-       }
-
-       if(dot_a_name[0] != '\0')
-               return concat(dir, "/", dot_a_name);
-
-       return NULL;
-}
diff --git a/libexec/rtld-aout/shlib.h b/libexec/rtld-aout/shlib.h
deleted file mode 100644
index 7c42a29e6084..000000000000
--- a/libexec/rtld-aout/shlib.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * Copyright (C) 1996
- *     Peter Wemm.  All rights reserved.
- *
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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$
- */
-
-/*
- * prototypes for shlib.c.  Big deal.
- */
-
-extern char    **search_dirs;
-extern int     n_search_dirs;
-
-void   add_search_dir __P((const char *));
-void   add_search_path __P((char *));
-void   std_search_path __P((void));
-int    getdewey __P((int[], char *));
-int    cmpndewey __P((int[], int, int[], int));
-char   *findshlib __P((char *, int *, int *, int));
-char   *find_lib_file __P((const char *));
-char   *search_lib_dir __P((char *, char *, int *, int *, int));
diff --git a/libexec/rtld-aout/support.c b/libexec/rtld-aout/support.c
deleted file mode 100644
index 034935d893fb..000000000000
--- a/libexec/rtld-aout/support.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*-
- * Generic "support" routines to replace those obtained from libiberty for ld.
- *
- * I've collected these from random bits of (published) code I've written
- * over the years, not that they are a big deal.  [email protected]
- *
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (C) 1996
- *     Peter Wemm.  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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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$
- */
-#include <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <err.h>
-
-#include "support.h"
-
-char *
-concat(const char *s1, const char *s2, const char *s3)
-{
-       int len = 1;
-       char *s;
-       if (s1)
-               len += strlen(s1);
-       if (s2)
-               len += strlen(s2);
-       if (s3)
-               len += strlen(s3);
-       s = xmalloc(len);
-       s[0] = '\0';
-       if (s1)
-               strcat(s, s1);
-       if (s2)
-               strcat(s, s2);
-       if (s3)
-               strcat(s, s3);
-       return s;
-}
-
-void *
-xmalloc(size_t n)
-{
-       char *p = malloc(n);
-
-       if (p == NULL)
-               errx(1, "Could not allocate memory");
-
-       return p;
-}
-
-void *
-xrealloc(void *p, size_t n)
-{
-       p = realloc(p, n);
-
-       if (p == NULL)
-               errx(1, "Could not allocate memory");
-
-       return p;
-}
diff --git a/libexec/rtld-aout/support.h b/libexec/rtld-aout/support.h
deleted file mode 100644
index dd38959df6ee..000000000000
--- a/libexec/rtld-aout/support.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (C) 1996
- *     Peter Wemm.  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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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$
- */
-
-/*
- * prototypes for support.c.  Big deal.
- */
-
-void   *xmalloc __P((size_t));
-void   *xrealloc __P((void *, size_t));
-char   *concat __P((const char *, const char *, const char *));
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to