from .enums import (
ENUM_D_TAG, ENUM_E_VERSION, ENUM_RELOC_TYPE_i386, ENUM_RELOC_TYPE_x64
)
-from .constants import P_FLAGS, SH_FLAGS, SYMINF0_FLAGS
+from .constants import P_FLAGS, SH_FLAGS, SYMINFO_FLAGS
from ..common.py3compat import iteritems
def describe_syminfo_flags(x):
s = ''
for flag in (
- SYMINF0_FLAGS.SYMINFO_FLG_DIRECT,
- SYMINF0_FLAGS.SYMINFO_FLG_DIRECTBIND,
- SYMINF0_FLAGS.SYMINFO_FLG_COPY,
- SYMINF0_FLAGS.SYMINFO_FLG_LAZYLOAD,
- SYMINF0_FLAGS.SYMINFO_FLG_NOEXTDIRECT,
- SYMINF0_FLAGS.SYMINFO_FLG_AUXILIARY,
- SYMINF0_FLAGS.SYMINFO_FLG_FILTER,
- SYMINF0_FLAGS.SYMINFO_FLG_INTERPOSE,
- SYMINF0_FLAGS.SYMINFO_FLG_CAP,
- SYMINF0_FLAGS.SYMINFO_FLG_DEFERRED):
+ SYMINFO_FLAGS.SYMINFO_FLG_DIRECT,
+ SYMINFO_FLAGS.SYMINFO_FLG_DIRECTBIND,
+ SYMINFO_FLAGS.SYMINFO_FLG_COPY,
+ SYMINFO_FLAGS.SYMINFO_FLG_LAZYLOAD,
+ SYMINFO_FLAGS.SYMINFO_FLG_NOEXTDIRECT,
+ SYMINFO_FLAGS.SYMINFO_FLG_AUXILIARY,
+ SYMINFO_FLAGS.SYMINFO_FLG_FILTER,
+ SYMINFO_FLAGS.SYMINFO_FLG_INTERPOSE,
+ SYMINFO_FLAGS.SYMINFO_FLG_CAP,
+ SYMINFO_FLAGS.SYMINFO_FLG_DEFERRED):
s += _DESCR_SYMINFO_FLAGS[flag] if (x & flag) else ''
return s
)
_DESCR_SYMINFO_FLAGS = {
- SYMINF0_FLAGS.SYMINFO_FLG_DIRECT: 'D',
- SYMINF0_FLAGS.SYMINFO_FLG_DIRECTBIND: 'B',
- SYMINF0_FLAGS.SYMINFO_FLG_COPY: 'C',
- SYMINF0_FLAGS.SYMINFO_FLG_LAZYLOAD: 'L',
- SYMINF0_FLAGS.SYMINFO_FLG_NOEXTDIRECT: 'N',
- SYMINF0_FLAGS.SYMINFO_FLG_AUXILIARY: 'A',
- SYMINF0_FLAGS.SYMINFO_FLG_FILTER: 'F',
- SYMINF0_FLAGS.SYMINFO_FLG_INTERPOSE: 'I',
- SYMINF0_FLAGS.SYMINFO_FLG_CAP: 'S',
- SYMINF0_FLAGS.SYMINFO_FLG_DEFERRED: 'P',
+ SYMINFO_FLAGS.SYMINFO_FLG_DIRECT: 'D',
+ SYMINFO_FLAGS.SYMINFO_FLG_DIRECTBIND: 'B',
+ SYMINFO_FLAGS.SYMINFO_FLG_COPY: 'C',
+ SYMINFO_FLAGS.SYMINFO_FLG_LAZYLOAD: 'L',
+ SYMINFO_FLAGS.SYMINFO_FLG_NOEXTDIRECT: 'N',
+ SYMINFO_FLAGS.SYMINFO_FLG_AUXILIARY: 'A',
+ SYMINFO_FLAGS.SYMINFO_FLG_FILTER: 'F',
+ SYMINFO_FLAGS.SYMINFO_FLG_INTERPOSE: 'I',
+ SYMINFO_FLAGS.SYMINFO_FLG_CAP: 'S',
+ SYMINFO_FLAGS.SYMINFO_FLG_DEFERRED: 'P',
}
_DESCR_RELOC_TYPE_i386 = dict(
from elftools.elf.elffile import ELFFile
from elftools.elf.dynamic import DynamicSection, DynamicSegment
from elftools.elf.enums import ENUM_D_TAG
-from elftools.elf.constants import SYMINF0_FLAGS
+from elftools.elf.constants import SYMINFO_FLAGS
from elftools.elf.segments import InterpSegment
from elftools.elf.sections import SUNWSyminfoTableSection
from elftools.elf.relocation import RelocationSection
continue
index = ''
- if syminfo['si_flags'] & SYMINF0_FLAGS.SYMINFO_FLG_CAP:
+ if syminfo['si_flags'] & SYMINFO_FLAGS.SYMINFO_FLG_CAP:
boundto = '<symbol capabilities>'
elif syminfo['si_boundto'] == 0xffff:
boundto = '<self>'
from utils import setup_syspath; setup_syspath()
from elftools.elf.elffile import ELFFile
-from elftools.elf.constants import SYMINF0_FLAGS
+from elftools.elf.constants import SYMINFO_FLAGS
class TestSolarisSupport(unittest.TestCase):
for symbol in exit_symbols:
self.assertEqual(symbol['si_boundto'], 0)
self.assertEqual(symbol['si_flags'],
- SYMINF0_FLAGS.SYMINFO_FLG_DIRECT |
- SYMINF0_FLAGS.SYMINFO_FLG_DIRECTBIND)
+ SYMINFO_FLAGS.SYMINFO_FLG_DIRECT |
+ SYMINFO_FLAGS.SYMINFO_FLG_DIRECTBIND)
def test_SUNW_syminfo_section_x86(self):
self._test_SUNW_syminfo_section_generic('exe_solaris32_cc.elf')