diff options
Diffstat (limited to 'src/cmd/ld/lib.h')
-rw-r--r-- | src/cmd/ld/lib.h | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/cmd/ld/lib.h b/src/cmd/ld/lib.h index 16dfb0dc3..adde2c9ff 100644 --- a/src/cmd/ld/lib.h +++ b/src/cmd/ld/lib.h @@ -74,7 +74,6 @@ extern int nlibdir; extern int cout; EXTERN char* INITENTRY; -EXTERN char thechar; EXTERN char* thestring; EXTERN Library* library; EXTERN int libraryp; @@ -167,6 +166,9 @@ void adddynlib(char*); int archreloc(Reloc*, Sym*, vlong*); void adddynsym(Sym*); void addexport(void); +void dostkcheck(void); +void undef(void); +void doweak(void); int pathchar(void); void* mal(uint32); @@ -208,3 +210,36 @@ enum { ArchiveObj, Pkgdef }; + +/* executable header types */ +enum { + Hgarbunix = 0, // garbage unix + Hnoheader, // no header + Hunixcoff, // unix coff + Hrisc, // aif for risc os + Hplan9x32, // plan 9 32-bit format + Hplan9x64, // plan 9 64-bit format + Hmsdoscom, // MS-DOS .COM + Hnetbsd, // NetBSD + Hmsdosexe, // fake MS-DOS .EXE + Hixp1200, // IXP1200 (raw) + Helf, // ELF32 + Hipaq, // ipaq + Hdarwin, // Apple Mach-O + Hlinux, // Linux ELF + Hnacl, // Google Native Client + Hfreebsd, // FreeBSD ELF + Hwindows, // MS Windows PE + Htiny // tiny (os image) +}; + +typedef struct Header Header; +struct Header { + char *name; + int val; +}; + +EXTERN char* headstring; +extern Header headers[]; + +int headtype(char*); |