diff options
Diffstat (limited to 'miasm2/jitter/jitcore_cc_base.py')
| -rw-r--r-- | miasm2/jitter/jitcore_cc_base.py | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/miasm2/jitter/jitcore_cc_base.py b/miasm2/jitter/jitcore_cc_base.py index 7853816a..997d6330 100644 --- a/miasm2/jitter/jitcore_cc_base.py +++ b/miasm2/jitter/jitcore_cc_base.py @@ -3,6 +3,7 @@ import os import tempfile import platform +import sysconfig from distutils.sysconfig import get_python_inc from miasm2.jitter.jitcore import JitCore @@ -28,7 +29,7 @@ def gen_core(arch, attrib): return txt -class myresolver: +class myresolver(object): def __init__(self, offset): self.offset = offset @@ -37,7 +38,7 @@ class myresolver: return "return PyLong_FromUnsignedLongLong(0x%X);" % self.offset -class resolver: +class resolver(object): def __init__(self): self.resolvers = keydefaultdict(myresolver) @@ -57,7 +58,7 @@ class JitCore_Cc_Base(JitCore): self.states = {} self.tempdir = os.path.join(tempfile.gettempdir(), "miasm_cache") try: - os.mkdir(self.tempdir, 0755) + os.mkdir(self.tempdir, 0o755) except OSError: pass if not os.access(self.tempdir, os.R_OK | os.W_OK): @@ -72,12 +73,23 @@ class JitCore_Cc_Base(JitCore): def load(self): lib_dir = os.path.dirname(os.path.realpath(__file__)) - ext = ".so" if not is_win else ".lib" - libs = [os.path.join(lib_dir, "VmMngr" + ext), - os.path.join(lib_dir, "arch", "JitCore_%s%s" % (self.ir_arch.arch.name, ext))] - - include_files = [os.path.dirname(__file__), - get_python_inc()] + ext = sysconfig.get_config_var('EXT_SUFFIX') + if ext is None: + ext = ".so" if not is_win else ".lib" + + libs = [ + os.path.join(lib_dir, "VmMngr" + ext), + os.path.join( + lib_dir, + "arch", + "JitCore_%s%s" % (self.ir_arch.arch.name, ext) + ) + ] + + include_files = [ + os.path.dirname(__file__), + get_python_inc() + ] self.include_files = include_files self.libs = libs @@ -94,7 +106,11 @@ class JitCore_Cc_Base(JitCore): @irblocks: list of irblocks """ f_declaration = '_MIASM_EXPORT int %s(block_id * BlockDst, JitCpu* jitcpu)' % self.FUNCNAME - out = self.codegen.gen_c(block, log_mn=self.log_mn, log_regs=self.log_regs) + out = self.codegen.gen_c( + block, + log_mn=self.log_mn, + log_regs=self.log_regs + ) out = [f_declaration + '{'] + out + ['}\n'] c_code = out |