diff --git a/bld/exedump/c/elfexe.c b/bld/exedump/c/elfexe.c index 9694e07f23..7a1a72d726 100644 --- a/bld/exedump/c/elfexe.c +++ b/bld/exedump/c/elfexe.c @@ -283,6 +283,21 @@ static void dmp_prog_type( unsigned_32 type ) case PT_PHDR: Wdputs( "address of progam header" ); break; + case PT_TLS: + Wdputs( "TLS" ); + break; + case PT_GNU_EH_FRAME: + Wdputs( "GNU stack unwinding tables" ); + break; + case PT_GNU_STACK: + Wdputs( "GNU stack executability" ); + break; + case PT_GNU_RELRO: + Wdputs( "GNU readonly after reloc" ); + break; + case PT_GNU_PROPERTY: + Wdputs( "GNU property" ); + break; case PT_LOPROC: Wdputs( "processor specific" ); break; @@ -334,6 +349,60 @@ static void dmp_sec_type( unsigned_32 type ) case SHT_DYNSYM: Wdputs( "dynamic link symbol table" ); break; + case SHT_INIT_ARRAY: + Wdputs( "constructors" ); + break; + case SHT_FINI_ARRAY: + Wdputs( "destructors" ); + break; + case SHT_PREINIT_ARRAY: + Wdputs( "pre-constructors" ); + break; + case SHT_GROUP: + Wdputs( "group" ); + break; + case SHT_SYMTAB_SHNDX: + Wdputs( "extended section index" ); + break; + case SHT_OS: + Wdputs( "identify target OS" ); + break; + case SHT_IMPORTS: + Wdputs( "refs to external sysmbols" ); + break; + case SHT_EXPORTS: + Wdputs( "symbols exported by ordinal" ); + break; + case SHT_RES: + Wdputs( "read only resource data" ); + break; + case SHT_IDMDLL: + Wdputs( "symbol name demangling infos" ); + break; + case SHT_DEFLIB: + Wdputs( "default static libraries" ); + break; + case SHT_GNU_ATTRIBUTES: + Wdputs( "GNU attributes" ); + break; + case SHT_GNU_HASH: + Wdputs( "GNU hash" ); + break; + case SHT_GNU_LIBLIST: + Wdputs( "GNU prelink library list" ); + break; + case SHT_CHECKSUM: + Wdputs( "checksum for DSO content" ); + break; + case SHT_GNU_verdef: + Wdputs( "GNU version definition" ); + break; + case SHT_GNU_verneed: + Wdputs( "GNU version needs section" ); + break; + case SHT_GNU_versym: + Wdputs( "GNU version symbol table" ); + break; case SHT_LOPROC: Wdputs( "processor specific" ); break; @@ -385,6 +454,27 @@ static void dmp_sec_flgs( unsigned_32 flags ) if( flags & SHF_EXECINSTR ) { strcat( name, " EXEC_INSTR |" ); } + if( flags & SHF_MERGE ) { + strcat( name, " MERGE |" ); + } + if( flags & SHF_STRINGS ) { + strcat( name, " STRINGS |" ); + } + if( flags & SHF_INFO_LINK ) { + strcat( name, " INFO_LINK |" ); + } + if( flags & SHF_OS_NONCONFORMING ) { + strcat( name, " OS_NONCONFORMING |" ); + } + if( flags & SHF_GROUP ) { + strcat( name, " GROUP |" ); + } + if( flags & SHF_TLS ) { + strcat( name, " TLS |" ); + } + if( flags & SHF_COMPRESSED ) { + strcat( name, " COMPRESSED |" ); + } if( name[strlen(name)-1] == '|' ) { name[strlen(name)-1] = '\0'; } diff --git a/bld/watcom/h/exeelf.h b/bld/watcom/h/exeelf.h index 4920103937..08da40a4a2 100644 --- a/bld/watcom/h/exeelf.h +++ b/bld/watcom/h/exeelf.h @@ -823,6 +823,11 @@ typedef struct { #define PT_NOTE 4 // comments & auxiliary information #define PT_SHLIB 5 // here be dragons #define PT_PHDR 6 // address of prog. header in mem (for interp.) +#define PT_TLS 7 // thread local storage +#define PT_GNU_EH_FRAME 0x6474e550 // unwinding tables +#define PT_GNU_STACK 0x6474e551 // stack executability +#define PT_GNU_RELRO 0x6474e552 // readonly after reloc +#define PT_GNU_PROPERTY 0x6474e553 // GNU properties #define PT_OS 0x60000001 // target os information #define PT_RES 0x60000002 // read-only resource information #define PT_LOPROC 0x70000000 // processor specific (start)