diff options
author | Mark Wielaard <mjw@redhat.com> | 2015-05-01 16:21:55 +0200 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2015-05-01 22:48:19 +0200 |
commit | b4336ba4f583e853fff4620243ae027cbab2b541 (patch) | |
tree | 2b3ac795238a751e921cbfe13a9a95deabfa714e | |
parent | e1483b365da03e4bab3882e30872ed331f48cd21 (diff) | |
download | glibc-b4336ba4f583e853fff4620243ae027cbab2b541.zip glibc-b4336ba4f583e853fff4620243ae027cbab2b541.tar.gz glibc-b4336ba4f583e853fff4620243ae027cbab2b541.tar.bz2 |
elf.h: Add section compression constants and structures.
Add SHF_COMPRESSED section flag, Elf32_Chdr and Elf64_Chdr structs and
ELFCOMPRESS constants to elf/elf.h.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | elf/elf.h | 25 |
2 files changed, 30 insertions, 0 deletions
@@ -1,3 +1,8 @@ +2015-05-01 Mark Wielaard <mjw@redhat.com> + + * elf/elf.h: Add SHF_COMPRESSED section flag, Elf32_Chdr and + Elf64_Chdr structs and ELFCOMPRESS constants. + 2015-05-01 Joseph Myers <joseph@codesourcery.com> * math/auto-libm-test-in: Add more tests of exp, exp10, exp2 and @@ -367,6 +367,7 @@ typedef struct required */ #define SHF_GROUP (1 << 9) /* Section is member of a group. */ #define SHF_TLS (1 << 10) /* Section hold thread-local data. */ +#define SHF_COMPRESSED (1 << 11) /* Section with compressed data. */ #define SHF_MASKOS 0x0ff00000 /* OS-specific. */ #define SHF_MASKPROC 0xf0000000 /* Processor-specific */ #define SHF_ORDERED (1 << 30) /* Special ordering requirement @@ -374,6 +375,30 @@ typedef struct #define SHF_EXCLUDE (1U << 31) /* Section is excluded unless referenced or allocated (Solaris).*/ +/* Section compression header. Used when SHF_COMPRESSED is set. */ + +typedef struct +{ + Elf32_Word ch_type; /* Compression format. */ + Elf32_Word ch_size; /* Uncompressed data size. */ + Elf32_Word ch_addralign; /* Uncompressed data alignment. */ +} Elf32_Chdr; + +typedef struct +{ + Elf64_Word ch_type; /* Compression format. */ + Elf64_Word ch_reserved; + Elf64_Xword ch_size; /* Uncompressed data size. */ + Elf64_Xword ch_addralign; /* Uncompressed data alignment. */ +} Elf64_Chdr; + +/* Legal values for ch_type (compression algorithm). */ +#define ELFCOMPRESS_ZLIB 1 /* ZLIB/DEFLATE algorithm. */ +#define ELFCOMPRESS_LOOS 0x60000000 /* Start of OS-specific. */ +#define ELFCOMPRESS_HIOS 0x6fffffff /* End of OS-specific. */ +#define ELFCOMPRESS_LOPROC 0x70000000 /* Start of processor-specific. */ +#define ELFCOMPRESS_HIPROC 0x7fffffff /* End of processor-specific. */ + /* Section group handling. */ #define GRP_COMDAT 0x1 /* Mark group as COMDAT. */ |