-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
I want to call loadlibrary() for cgo build shared library from python2.7 script. It will failed on python2.7 + apline 3.9 as follows errors. But It works on ubuntu 16.04 + python2.7. Any thoughts or suggestions
/usr/src/app # go build -o cc.so -buildmode=c-shared main.go
/usr/src/app # readelf -d cc.so
Dynamic section at offset 0x10cd10 contains 22 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libc.musl-x86_64.so.1]
0x0000000000000010 (SYMBOLIC) 0x0
0x000000000000000c (INIT) 0x42000
0x000000000000000d (FINI) 0x92ed9
0x0000000000000019 (INIT_ARRAY) 0xa2078
0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)
0x000000006ffffef5 (GNU_HASH) 0x270
0x0000000000000005 (STRTAB) 0xa50
0x0000000000000006 (SYMTAB) 0x378
0x000000000000000a (STRSZ) 1026 (bytes)
0x000000000000000b (SYMENT) 24 (bytes)
0x0000000000000003 (PLTGOT) 0x10deb0
0x0000000000000002 (PLTRELSZ) 720 (bytes)
0x0000000000000014 (PLTREL) RELA
0x0000000000000017 (JMPREL) 0x41a00
0x0000000000000007 (RELA) 0xe58
0x0000000000000008 (RELASZ) 265128 (bytes)
0x0000000000000009 (RELAENT) 24 (bytes)
0x000000000000001e (FLAGS) SYMBOLIC BIND_NOW STATIC_TLS
0x000000006ffffffb (FLAGS_1) Flags: NOW NODELETE
0x000000006ffffff9 (RELACOUNT) 11040
0x0000000000000000 (NULL) 0x0
/usr/src/app # python test.py
Traceback (most recent call last):
File "test.py", line 2, in
lib = ctypes.cdll.LoadLibrary('./cc.so')
File "/usr/lib/python2.7/ctypes/init.py", line 444, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python2.7/ctypes/init.py", line 366, in init
self._handle = _dlopen(self._name, mode)
OSError: Error relocating ./cc.so: : initial-exec TLS resolves to dynamic definition in ./cc.so