diff options
author | Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> | 2019-06-02 06:05:23 -0500 |
---|---|---|
committer | Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> | 2019-06-02 06:05:23 -0500 |
commit | f215c374244a1860e7f6c6b635d3c5176ee652ed (patch) | |
tree | 2be89c81de9f4dd03a3dbe8d9503d53bb9e5ac55 /usr.bin/ldd/ldd.c | |
parent | f0c896bb3071e753e41afbf9a467793d4fe0ab2c (diff) | |
download | userland-f215c374244a1860e7f6c6b635d3c5176ee652ed.tar.gz userland-f215c374244a1860e7f6c6b635d3c5176ee652ed.tar.bz2 userland-f215c374244a1860e7f6c6b635d3c5176ee652ed.tar.xz userland-f215c374244a1860e7f6c6b635d3c5176ee652ed.zip |
usr.bin/ldd: remove as it is handled elsewhere
Diffstat (limited to 'usr.bin/ldd/ldd.c')
-rw-r--r-- | usr.bin/ldd/ldd.c | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/usr.bin/ldd/ldd.c b/usr.bin/ldd/ldd.c deleted file mode 100644 index a2794f8..0000000 --- a/usr.bin/ldd/ldd.c +++ /dev/null @@ -1,237 +0,0 @@ -/* $NetBSD: ldd.c,v 1.23 2017/12/25 05:08:49 maya Exp $ */ - -/*- - * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Paul Kranenburg. - * - * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. - */ - -/* - * Copyright 1996 John D. Polstra. - * Copyright 1996 Matt Thomas <matt@3am-software.com> - * 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 John Polstra. - * 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. - */ - -#include <sys/cdefs.h> -#ifndef lint -__RCSID("$NetBSD: ldd.c,v 1.23 2017/12/25 05:08:49 maya Exp $"); -#endif /* not lint */ - -#include <sys/types.h> -#include <sys/mman.h> -#include <sys/wait.h> - -#include <dirent.h> -#include <err.h> -#include <errno.h> -#include <fcntl.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <ctype.h> - -#include "debug.h" -#include "rtld.h" -#include "ldd.h" - -/* - * Data declarations. - */ -static char *error_message; /* Message for dlopen(), or NULL */ -bool _rtld_trust; /* False for setuid and setgid programs */ -/* - * This may be ELF64 or ELF32 but since they are used opaquely it doesn't - * really matter. - */ -Obj_Entry *_rtld_objlist; /* Head of linked list of shared objects */ -Obj_Entry **_rtld_objtail = &_rtld_objlist; - /* Link field of last object in list */ -u_int _rtld_objcount; /* Number of shared objects */ -u_int _rtld_objloads; /* Number of objects loaded */ - -Obj_Entry *_rtld_objmain; /* The main program shared object */ -size_t _rtld_pagesz; - -Search_Path *_rtld_default_paths; -Search_Path *_rtld_paths; -Library_Xform *_rtld_xforms; - -static void usage(void) __dead; -char *main_local; -char *main_progname; - -static void -usage(void) -{ - fprintf(stderr, "Usage: %s [-f <format 1>] [-f <format 2>] <filename>" - " ...\n", getprogname()); - exit(1); -} - -int -main(int argc, char **argv) -{ - const char *fmt1 = NULL, *fmt2 = NULL; - int c, exit_status = EXIT_SUCCESS; - -#ifdef DEBUG - debug = 1; -#endif - while ((c = getopt(argc, argv, "f:o")) != -1) { - switch (c) { - case 'f': - if (fmt1) { - if (fmt2) - errx(1, "Too many formats"); - fmt2 = optarg; - } else - fmt1 = optarg; - break; - case 'o': - if (fmt1 || fmt2) - errx(1, "Cannot use -o and -f together"); - fmt1 = "%a:-l%o.%m => %p\n"; - break; - default: - usage(); - /*NOTREACHED*/ - } - } - argc -= optind; - argv += optind; - - if (argc <= 0) { - usage(); - /*NOTREACHED*/ - } - - for (; argc != 0; argc--, argv++) { - int fd; - - fd = open(*argv, O_RDONLY); - if (fd == -1) { - exit_status = EXIT_FAILURE; - warn("%s", *argv); - continue; - } - if (elf_ldd(fd, *argv, fmt1, fmt2) == -1 - /* Alpha never had 32 bit support. */ -#if (defined(_LP64) && !defined(ELF64_ONLY)) || defined(MIPS_N32) - && elf32_ldd(fd, *argv, fmt1, fmt2) == -1 -#if defined(__mips__) && 0 /* XXX this is still hosed for some reason */ - && elf32_ldd_compat(fd, *argv, fmt1, fmt2) == -1 -#endif -#endif - ) { - exit_status = EXIT_FAILURE; - warnx("%s", error_message); - } - close(fd); - } - - return exit_status; -} - -/* - * Error reporting function. Use it like printf. If formats the message - * into a buffer, and sets things up so that the next call to dlerror() - * will return the message. - */ -void -_rtld_error(const char *fmt, ...) -{ - static char buf[512]; - va_list ap; - va_start(ap, fmt); - xvsnprintf(buf, sizeof buf, fmt, ap); - error_message = buf; - va_end(ap); -} - -char * -dlerror() -{ - char *msg = error_message; - error_message = NULL; - return msg; -} - -void -_rtld_die(void) -{ - const char *msg = dlerror(); - - if (msg == NULL) - msg = "Fatal error"; - xerrx(1, "%s", msg); -} - -void -_rtld_shared_enter(void) -{ -} - -void -_rtld_shared_exit(void) -{ -} - -void -_rtld_exclusive_enter(sigset_t *mask) -{ -} - -void -_rtld_exclusive_exit(sigset_t *mask) -{ -} |