1.1 --- a/src/share/vm/utilities/elfFile.hpp Tue Mar 05 08:50:59 2013 +0100 1.2 +++ b/src/share/vm/utilities/elfFile.hpp Tue Mar 05 13:55:56 2013 -0800 1.3 @@ -43,6 +43,7 @@ 1.4 1.5 typedef Elf64_Ehdr Elf_Ehdr; 1.6 typedef Elf64_Shdr Elf_Shdr; 1.7 +typedef Elf64_Phdr Elf_Phdr; 1.8 typedef Elf64_Sym Elf_Sym; 1.9 1.10 #if !defined(_ALLBSD_SOURCE) || defined(__APPLE__) 1.11 @@ -59,6 +60,7 @@ 1.12 1.13 typedef Elf32_Ehdr Elf_Ehdr; 1.14 typedef Elf32_Shdr Elf_Shdr; 1.15 +typedef Elf32_Phdr Elf_Phdr; 1.16 typedef Elf32_Sym Elf_Sym; 1.17 1.18 #if !defined(_ALLBSD_SOURCE) || defined(__APPLE__) 1.19 @@ -123,6 +125,14 @@ 1.20 ElfFile* next() const { return m_next; } 1.21 void set_next(ElfFile* file) { m_next = file; } 1.22 1.23 + public: 1.24 + // Returns true if the elf file is marked NOT to require an executable stack, 1.25 + // or if the file could not be opened. 1.26 + // Returns false if the elf file requires an executable stack, the stack flag 1.27 + // is not set at all, or if the file can not be read. 1.28 + // On systems other than linux it always returns false. 1.29 + bool specifies_noexecstack() NOT_LINUX({ return false; }); 1.30 + 1.31 protected: 1.32 ElfFile* m_next; 1.33