Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144459736
D24229.id70016.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D24229.id70016.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D24229: nlist: retire long-obsolete aout support
Attached
Detach File
Event Timeline
Log In to Comment