Page MenuHomeFreeBSD

D24229.id70016.diff
No OneTemporary

D24229.id70016.diff

Index: lib/libc/gen/Symbol.map
===================================================================
--- lib/libc/gen/Symbol.map
+++ lib/libc/gen/Symbol.map
@@ -510,7 +510,6 @@
/* __pw_match_entry; */
/* __pw_parse_entry; */
__fdnlist; /* used by libkvm */
- /* __aout_fdnlist; */
/* __elf_is_okay__; */
/* __elf_fdnlist; */
__opendir2;
Index: lib/libc/gen/nlist.3
===================================================================
--- lib/libc/gen/nlist.3
+++ lib/libc/gen/nlist.3
@@ -69,7 +69,6 @@
.Fa filename
does not exist or is not executable, the returned value is \-1.
.Sh SEE ALSO
-.Xr a.out 5 ,
.Xr elf 5
.Sh HISTORY
A
Index: lib/libc/gen/nlist.c
===================================================================
--- lib/libc/gen/nlist.c
+++ lib/libc/gen/nlist.c
@@ -47,10 +47,6 @@
#include <unistd.h>
#include "un-namespace.h"
-/* i386 is the only current FreeBSD architecture that used a.out format. */
-#ifdef __i386__
-#define _NLIST_DO_AOUT
-#endif
#define _NLIST_DO_ELF
#ifdef _NLIST_DO_ELF
@@ -59,7 +55,6 @@
#endif
int __fdnlist(int, struct nlist *);
-int __aout_fdnlist(int, struct nlist *);
int __elf_fdnlist(int, struct nlist *);
int __elf_is_okay__(Elf_Ehdr *);
@@ -79,9 +74,6 @@
static struct nlist_handlers {
int (*fn)(int fd, struct nlist *list);
} nlist_fn[] = {
-#ifdef _NLIST_DO_AOUT
- { __aout_fdnlist },
-#endif
#ifdef _NLIST_DO_ELF
{ __elf_fdnlist },
#endif
@@ -103,100 +95,6 @@
#define ISLAST(p) (p->n_un.n_name == 0 || p->n_un.n_name[0] == 0)
-#ifdef _NLIST_DO_AOUT
-int
-__aout_fdnlist(int fd, struct nlist *list)
-{
- struct nlist *p, *symtab;
- caddr_t strtab, a_out_mmap;
- off_t stroff, symoff;
- u_long symsize;
- int nent;
- struct exec * exec;
- struct stat st;
-
- /* check that file is at least as large as struct exec! */
- if ((_fstat(fd, &st) < 0) || (st.st_size < sizeof(struct exec)))
- return (-1);
-
- /* Check for files too large to mmap. */
- if (st.st_size > SIZE_T_MAX) {
- errno = EFBIG;
- return (-1);
- }
-
- /*
- * Map the whole a.out file into our address space.
- * We then find the string table withing this area.
- * We do not just mmap the string table, as it probably
- * does not start at a page boundary - we save ourselves a
- * lot of nastiness by mmapping the whole file.
- *
- * This gives us an easy way to randomly access all the strings,
- * without making the memory allocation permanent as with
- * malloc/free (i.e., munmap will return it to the system).
- */
- a_out_mmap = mmap(NULL, (size_t)st.st_size, PROT_READ, MAP_PRIVATE, fd, (off_t)0);
- if (a_out_mmap == MAP_FAILED)
- return (-1);
-
- exec = (struct exec *)a_out_mmap;
- if (N_BADMAG(*exec)) {
- munmap(a_out_mmap, (size_t)st.st_size);
- return (-1);
- }
-
- symoff = N_SYMOFF(*exec);
- symsize = exec->a_syms;
- stroff = symoff + symsize;
-
- /* find the string table in our mmapped area */
- strtab = a_out_mmap + stroff;
- symtab = (struct nlist *)(a_out_mmap + symoff);
-
- /*
- * clean out any left-over information for all valid entries.
- * Type and value defined to be 0 if not found; historical
- * versions cleared other and desc as well. Also figure out
- * the largest string length so don't read any more of the
- * string table than we have to.
- *
- * XXX clearing anything other than n_type and n_value violates
- * the semantics given in the man page.
- */
- nent = 0;
- for (p = list; !ISLAST(p); ++p) {
- p->n_type = 0;
- p->n_other = 0;
- p->n_desc = 0;
- p->n_value = 0;
- ++nent;
- }
-
- while (symsize > 0) {
- int soff;
-
- symsize-= sizeof(struct nlist);
- soff = symtab->n_un.n_strx;
-
-
- if (soff != 0 && (symtab->n_type & N_STAB) == 0)
- for (p = list; !ISLAST(p); p++)
- if (!strcmp(&strtab[soff], p->n_un.n_name)) {
- p->n_value = symtab->n_value;
- p->n_type = symtab->n_type;
- p->n_desc = symtab->n_desc;
- p->n_other = symtab->n_other;
- if (--nent <= 0)
- break;
- }
- symtab++;
- }
- munmap(a_out_mmap, (size_t)st.st_size);
- return (nent);
-}
-#endif
-
#ifdef _NLIST_DO_ELF
static void elf_sym_to_nlist(struct nlist *, Elf_Sym *, Elf_Shdr *, int);

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 1:33 PM (16 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28584588
Default Alt Text
D24229.id70016.diff (4 KB)

Event Timeline