diff options
author | sergei <sergei@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2012-12-06 18:24:44 +0000 |
---|---|---|
committer | sergei <sergei@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2012-12-06 18:24:44 +0000 |
commit | 1127808d53c5f6f0eff1f676ba2cd3668b6733b6 (patch) | |
tree | eeaacc09ebbdb305180c38bd00c8debd9573e565 /compiler/elfbase.pas | |
parent | 3e70a609cd9ac3caba5aab4dd87264aa4f001a5a (diff) | |
download | fpc-1127808d53c5f6f0eff1f676ba2cd3668b6733b6.tar.gz |
+ Some more ELF definitions (related to symbol versioning).
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@23119 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/elfbase.pas')
-rw-r--r-- | compiler/elfbase.pas | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/compiler/elfbase.pas b/compiler/elfbase.pas index 0c721fa837..f477a12dfa 100644 --- a/compiler/elfbase.pas +++ b/compiler/elfbase.pas @@ -209,6 +209,8 @@ interface DT_VERDEFNUM = $6ffffffd; DT_VERNEED = $6ffffffe; DT_VERNEEDNUM = $6fffffff; + { GNU extension to Solaris versioning scheme } + DT_VERSYM = $6ffffff0; GRP_COMDAT = 1; @@ -343,7 +345,7 @@ interface { The following records are same for 32 and 64 bit ELF files } TElfVerdef=record - vd_version: word; { =1 } + vd_version: word; { =VER_DEF_CURRENT } vd_flags: word; vd_ndx: word; vd_cnt: word; { number of verdaux records } @@ -373,6 +375,21 @@ interface vna_next: longword; end; + const + VERSYM_VERSION = $7FFF; + VERSYM_HIDDEN = $8000; + VER_NDX_LOCAL = 0; + VER_NDX_GLOBAL = 1; + + { TElfverdef.vd_version } + VER_DEF_CURRENT = 1; + { TElfverneed.vn_version } + VER_NEED_CURRENT = 1; + { TElfverdef.vn_flags } + VER_FLG_BASE = 1; + VER_FLG_WEAK = 2; + VER_FLG_INFO = 4; + implementation |