summaryrefslogtreecommitdiffstats
path: root/sys/sys/linker_set.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-09-17 01:49:00 +0000
committerpeter <peter@FreeBSD.org>2002-09-17 01:49:00 +0000
commita51c9b66271f0551fb83b90a7db6c464eac2318b (patch)
tree7d8147c99f6bfb34b7cb47ad46e24a4f7dc93102 /sys/sys/linker_set.h
parent2a4cb24fb4a35753b66a2503614b874481e35535 (diff)
downloadFreeBSD-src-a51c9b66271f0551fb83b90a7db6c464eac2318b.zip
FreeBSD-src-a51c9b66271f0551fb83b90a7db6c464eac2318b.tar.gz
Initiate deorbit burn for the i386-only a.out related support. Moves are
under way to move the remnants of the a.out toolchain to ports. As the comment in src/Makefile said, this stuff is deprecated and one should not expect this to remain beyond 4.0-REL. It has already lasted WAY beyond that. Notable exceptions: gcc - I have not touched the a.out generation stuff there. ldd/ldconfig - still have some code to interface with a.out rtld. old as/ld/etc - I have not removed these yet, pending their move to ports. some includes - necessary for ldd/ldconfig for now. Tested on: i386 (extensively), alpha
Diffstat (limited to 'sys/sys/linker_set.h')
-rw-r--r--sys/sys/linker_set.h48
1 files changed, 0 insertions, 48 deletions
diff --git a/sys/sys/linker_set.h b/sys/sys/linker_set.h
index 7f6438b..ee60ffd 100644
--- a/sys/sys/linker_set.h
+++ b/sys/sys/linker_set.h
@@ -34,10 +34,8 @@
* The following macros are used to declare global sets of objects, which
* are collected by the linker into a `linker_set' as defined below.
* For ELF, this is done by constructing a separate segment for each set.
- * For a.out, it is done automatically by the linker.
*/
-#if defined(__ELF__)
/*
* Private macros, not to be used outside this header file.
*/
@@ -73,52 +71,6 @@
#define SET_LIMIT(set) \
(&__CONCAT(__stop_set_,set))
-#else /* __ELF__ */
-
-/*
- * The old way. This depends on GNU ld extensions that are not widely
- * available outside of the a.out format.
- *
- * NB: the constants defined below must match those defined in
- * ld/ld.h. Since their calculation requires arithmetic, we
- * can't name them symbolically (e.g., 23 is N_SETT | N_EXT).
- *
- * In the __MAKE_SET macro below, the line:
- * static void const * const __set_##set##_sym_##sym = &sym;
- * is present only to prevent the compiler from producing bogus
- * warnings about unused symbols.
- */
-/* Private macros */
-#ifdef __UNDERSCORES__
-#define __MAKE_SET(set, sym, type) \
- static void const * const __set_##set##_sym_##sym = &sym; \
- __asm(".stabs \"_" #set "\", " #type ", 0, 0, _" #sym)
-#else
-#define __MAKE_SET(set, sym, type) \
- static void const * const __set_##set##_sym_##sym = &sym; \
- __asm(".stabs \"" #set "\", " #type ", 0, 0, " #sym)
-#endif
-
-/* Public Macros */
-#define TEXT_SET(set, sym) __MAKE_SET(set, sym, 23)
-#define DATA_SET(set, sym) __MAKE_SET(set, sym, 25)
-#define BSS_SET(set, sym) __MAKE_SET(set, sym, 27)
-#define ABS_SET(set, sym) __MAKE_SET(set, sym, 21)
-#define SET_ENTRY(set, sym) error error must provide text/data type
-
-#define SET_DECLARE(set, ptype) \
- extern struct { \
- int ls_length; \
- ptype *ls_items[1]; \
- } set
-
-#define SET_BEGIN(set) \
- (&((set).ls_items[0]))
-#define SET_LIMIT(set) \
- (&((set).ls_items[(set).ls_length]))
-
-#endif /* __ELF__ */
-
/*
* Iterate over all the elements of a set.
*
OpenPOWER on IntegriCloud