diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 2d21d5770dae..747b52f6c07f 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -36,6 +36,10 @@ # xargs -n1 | sort | uniq -d; # done +# 20200206: Remove elf2aout +OLD_FILES+=usr/bin/elf2aout +OLD_FILES+=usr/share/man/man1/elf2aout.1.gz + # 20200204: simple_httpd removed OLD_FILES+=usr/sbin/simple_httpd diff --git a/usr.bin/Makefile b/usr.bin/Makefile index f4ca4d0c8968..b2e6b0c16a90 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -31,7 +31,6 @@ SUBDIR= alias \ diff \ dirname \ du \ - elf2aout \ elfdump \ enigma \ env \ diff --git a/usr.bin/elf2aout/Makefile b/usr.bin/elf2aout/Makefile deleted file mode 100644 index 2959539add7d..000000000000 --- a/usr.bin/elf2aout/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $FreeBSD$ - -PROG= elf2aout - -NO_WERROR= - -.include diff --git a/usr.bin/elf2aout/Makefile.depend b/usr.bin/elf2aout/Makefile.depend deleted file mode 100644 index 6cfaab1c3644..000000000000 --- a/usr.bin/elf2aout/Makefile.depend +++ /dev/null @@ -1,17 +0,0 @@ -# $FreeBSD$ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - gnu/lib/csu \ - include \ - include/xlocale \ - lib/${CSU_DIR} \ - lib/libc \ - lib/libcompiler_rt \ - - -.include - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/usr.bin/elf2aout/elf2aout.1 b/usr.bin/elf2aout/elf2aout.1 deleted file mode 100644 index 5c4045de2a78..000000000000 --- a/usr.bin/elf2aout/elf2aout.1 +++ /dev/null @@ -1,70 +0,0 @@ -.\" Copyright (c) 2008 Tom Rhodes -.\" 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$ -.\" -.Dd February 6, 2020 -.Dt ELF2AOUT 1 -.Os -.Sh NAME -.Nm elf2aout -.Nd "Convert ELF binary to a.out format" -.Sh SYNOPSIS -.Nm -.Op Fl o Ar outfile -.Ar infile -.Sh DESCRIPTION -The -.Nm -utility is used to convert an ELF formatted binary, -namely a kernel, to an a.out formatted one. -Most -.Tn OpenBoot -firmware require an a.out format or FCode boot image -and this utility is designed to accommodate. -If -.Ar infile -is not in ELF format, an error message will be presented. -.Sh DEPRECATION NOTICE -The -.Nm -utility is not present in -.Fx 13.0 -and later. -.Sh SEE ALSO -.Xr elf 3 , -.Xr a.out 5 -.Sh HISTORY -The -.Nm -utility first appeared in -.Fx 4.6 . -.Sh AUTHORS -.An -nosplit -The -.Nm -utility was written by -.An Jake Burkholder Aq Mt jake@FreeBSD.org . -This manual page was written by -.An Tom Rhodes Aq Mt trhodes@FreeBSD.org . diff --git a/usr.bin/elf2aout/elf2aout.c b/usr.bin/elf2aout/elf2aout.c deleted file mode 100644 index 2782d89362b6..000000000000 --- a/usr.bin/elf2aout/elf2aout.c +++ /dev/null @@ -1,164 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002 Jake Burkholder - * 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. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#define xe16toh(x) ((data == ELFDATA2MSB) ? be16toh(x) : le16toh(x)) -#define xe32toh(x) ((data == ELFDATA2MSB) ? be32toh(x) : le32toh(x)) -#define xe64toh(x) ((data == ELFDATA2MSB) ? be64toh(x) : le64toh(x)) -#define htoxe32(x) ((data == ELFDATA2MSB) ? htobe32(x) : htole32(x)) - -struct exec { - u_int32_t a_magic; - u_int32_t a_text; - u_int32_t a_data; - u_int32_t a_bss; - u_int32_t a_syms; - u_int32_t a_entry; - u_int32_t a_trsize; - u_int32_t a_drsize; -}; -#define A_MAGIC 0x01030107 - -static void usage(void); - -/* - * elf to a.out converter for freebsd/sparc64 bootblocks. - */ -int -main(int ac, char **av) -{ - Elf64_Half phentsize; - Elf64_Half machine; - Elf64_Half phnum; - Elf64_Xword filesz; - Elf64_Xword memsz; - Elf64_Addr entry; - Elf64_Off offset; - Elf64_Off phoff; - Elf64_Word type; - unsigned char data; - struct stat sb; - struct exec a; - Elf64_Phdr *p; - Elf64_Ehdr *e; - void *v; - int efd; - int fd; - int c; - int i; - - fd = STDIN_FILENO; - while ((c = getopt(ac, av, "o:")) != -1) - switch (c) { - case 'o': - if ((fd = open(optarg, O_CREAT|O_RDWR, 0644)) < 0) - err(1, "%s", optarg); - break; - case '?': - default: - usage(); - } - ac -= optind; - av += optind; - if (ac == 0) - usage(); - - if ((efd = open(*av, O_RDONLY)) < 0 || fstat(efd, &sb) < 0) - err(1, NULL); - v = mmap(NULL, sb.st_size, PROT_READ, MAP_SHARED, efd, 0); - if ((e = v) == MAP_FAILED) - err(1, NULL); - - if (!IS_ELF(*e)) - errx(1, "not an elf file"); - if (e->e_ident[EI_CLASS] != ELFCLASS64) - errx(1, "wrong class"); - data = e->e_ident[EI_DATA]; - if (data != ELFDATA2MSB && data != ELFDATA2LSB) - errx(1, "wrong data format"); - if (e->e_ident[EI_VERSION] != EV_CURRENT) - errx(1, "wrong elf version"); - machine = xe16toh(e->e_machine); - if (machine != EM_SPARCV9 && machine != EM_ALPHA) - errx(1, "wrong machine type"); - phentsize = xe16toh(e->e_phentsize); - if (phentsize != sizeof(*p)) - errx(1, "phdr size mismatch"); - - entry = xe64toh(e->e_entry); - phoff = xe64toh(e->e_phoff); - phnum = xe16toh(e->e_phnum); - p = (Elf64_Phdr *)((char *)e + phoff); - bzero(&a, sizeof(a)); - for (i = 0; i < phnum; i++) { - type = xe32toh(p[i].p_type); - switch (type) { - case PT_LOAD: - if (a.a_magic != 0) - errx(1, "too many loadable segments"); - filesz = xe64toh(p[i].p_filesz); - memsz = xe64toh(p[i].p_memsz); - offset = xe64toh(p[i].p_offset); - a.a_magic = htoxe32(A_MAGIC); - a.a_text = htoxe32(filesz); - a.a_bss = htoxe32(memsz - filesz); - a.a_entry = htoxe32(entry); - if (write(fd, &a, sizeof(a)) != sizeof(a) || - write(fd, (char *)e + offset, filesz) != (ssize_t)filesz) - err(1, NULL); - break; - default: - break; - } - } - - return (0); -} - -static void -usage(void) -{ - - fprintf(stderr, "usage: elf2aout [-o outfile] infile\n"); - exit(1); -}