| From a1b93c25311834f2f411e9bfe2e616899ba2122d Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Sun, 6 Nov 2016 10:23:55 -0800 |
| Subject: [PATCH 3/3] Fix build breaks due to missing a.out.h |
| |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| Upstream-Status: Pending |
| |
| include/bsd/nlist.h | 1 - |
| include/bsd/nlist.h => src/local-aout.h | 47 ++++++++++++++++++++++----------- |
| src/nlist.c | 9 +++++++ |
| 3 files changed, 41 insertions(+), 16 deletions(-) |
| copy include/bsd/nlist.h => src/local-aout.h (63%) |
| |
| diff --git a/include/bsd/nlist.h b/include/bsd/nlist.h |
| index 0389ab7..9c7e3d8 100644 |
| --- a/include/bsd/nlist.h |
| +++ b/include/bsd/nlist.h |
| @@ -28,7 +28,6 @@ |
| #define LIBBSD_NLIST_H |
| |
| #include <sys/cdefs.h> |
| -#include <a.out.h> |
| |
| /* __BEGIN_DECLS */ |
| #ifdef __cplusplus |
| diff --git a/include/bsd/nlist.h b/src/local-aout.h |
| similarity index 63% |
| copy from include/bsd/nlist.h |
| copy to src/local-aout.h |
| index 0389ab7..2adb93e 100644 |
| --- a/include/bsd/nlist.h |
| +++ b/src/local-aout.h |
| @@ -1,5 +1,5 @@ |
| /* |
| - * Copyright © 2009 Guillem Jover <guillem@hadrons.org> |
| + * Copyright © 2016 Khem Raj <raj.khem@gmail.com> |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| @@ -24,20 +24,37 @@ |
| * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| -#ifndef LIBBSD_NLIST_H |
| -#define LIBBSD_NLIST_H |
| +#ifndef LIBBSD_LOCAL_AOUT_H |
| +#define LIBBSD_LOCAL_AOUT_H |
| |
| -#include <sys/cdefs.h> |
| -#include <a.out.h> |
| +#define N_UNDF 0 |
| +#define N_ABS 2 |
| +#define N_TEXT 4 |
| +#define N_DATA 6 |
| +#define N_BSS 8 |
| +#define N_FN 15 |
| +#define N_EXT 1 |
| +#define N_TYPE 036 |
| +#define N_STAB 0340 |
| +#define N_INDR 0xa |
| +#define N_SETA 0x14 /* Absolute set element symbol. */ |
| +#define N_SETT 0x16 /* Text set element symbol. */ |
| +#define N_SETD 0x18 /* Data set element symbol. */ |
| +#define N_SETB 0x1A /* Bss set element symbol. */ |
| +#define N_SETV 0x1C /* Pointer to set vector in data area. */ |
| |
| -/* __BEGIN_DECLS */ |
| -#ifdef __cplusplus |
| -extern "C" { |
| -#endif |
| -extern int nlist(const char *filename, struct nlist *list); |
| -#ifdef __cplusplus |
| -} |
| -#endif |
| -/* __END_DECLS */ |
| +struct nlist |
| +{ |
| + union |
| + { |
| + char *n_name; |
| + struct nlist *n_next; |
| + long n_strx; |
| + } n_un; |
| + unsigned char n_type; |
| + char n_other; |
| + short n_desc; |
| + unsigned long n_value; |
| +}; |
| |
| -#endif |
| +#endif /* LIBBSD_LOCAL_AOUT_H */ |
| diff --git a/src/nlist.c b/src/nlist.c |
| index 0cffe55..625d310 100644 |
| --- a/src/nlist.c |
| +++ b/src/nlist.c |
| @@ -40,7 +40,11 @@ static char sccsid[] = "@(#)nlist.c 8.1 (Berkeley) 6/4/93"; |
| |
| #include <errno.h> |
| #include <fcntl.h> |
| +#ifdef __GLIBC__ |
| #include <a.out.h> |
| +#else |
| +#define __NO_A_OUT_SUPPORT |
| +#endif |
| #include <stdio.h> |
| #include <string.h> |
| #include <unistd.h> |
| @@ -48,12 +52,17 @@ static char sccsid[] = "@(#)nlist.c 8.1 (Berkeley) 6/4/93"; |
| #if !defined(__NO_A_OUT_SUPPORT) |
| #define _NLIST_DO_AOUT |
| #endif |
| + |
| #define _NLIST_DO_ELF |
| |
| #ifdef _NLIST_DO_ELF |
| #include "local-elf.h" |
| #endif |
| |
| +#ifdef _NLIST_DO_ELF |
| +#include "local-aout.h" |
| +#endif |
| + |
| #define SIZE_T_MAX 0xffffffffU |
| |
| #ifdef _NLIST_DO_AOUT |
| -- |
| 2.10.2 |
| |