src/share/vm/utilities/elfFile.hpp

changeset 4710
9058789475af
parent 4153
b9a9ed0f8eeb
child 6198
55fb97c4c58d
child 6491
e7cbc95179c4
     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  

mercurial