提交 17580bb2 编写于 作者: C chenzhiyu

fix the get_ver of musl libc

上级 72be50ca
...@@ -200,10 +200,16 @@ def pre_load(dso_name): ...@@ -200,10 +200,16 @@ def pre_load(dso_name):
load_dso(dso_path) load_dso(dso_path)
def get_glibc_ver(): def get_libc_ver():
return "musl_" + run_shell_command("ldd 2>&1 | awk '/Version/{print $NF}'") ldd_glibc = run_shell_command("ldd --version | awk '/ldd/{print $NF}'")
#return run_shell_command("ldd --version | awk '/ldd/{print $NF}'") if ldd_glibc is not None:
return ("glibc", ldd_glibc)
ldd_musl = run_shell_command("ldd 2>&1 | awk '/Version/{print $NF}'")
if ldd_musl is not None:
return ("musl", ldd_musl)
return (None, None)
def less_than_ver(a, b): def less_than_ver(a, b):
if a is None or b is None: if a is None or b is None:
...@@ -227,13 +233,14 @@ def less_than_ver(a, b): ...@@ -227,13 +233,14 @@ def less_than_ver(a, b):
# For paddle, the problem is that 'libgomp' is a DSO with static TLS, and it is loaded after 14 DSOs. # For paddle, the problem is that 'libgomp' is a DSO with static TLS, and it is loaded after 14 DSOs.
# So, here is a tricky way to solve the problem by pre load 'libgomp' before 'core_avx.so'. # So, here is a tricky way to solve the problem by pre load 'libgomp' before 'core_avx.so'.
# The final solution is to upgrade glibc to > 2.22 on the target system. # The final solution is to upgrade glibc to > 2.22 on the target system.
if platform.system().lower() == 'linux' and False and less_than_ver(get_glibc_ver(), if platform.system().lower() == 'linux':
'2.23'): libc_type, libc_ver = get_libc_ver()
try: if libc_type == 'glibc' and less_than_ver(libc_ver,'2.23'):
pre_load('libgomp') try:
except Exception as e: pre_load('libgomp')
# NOTE(zhiqiu): do not abort if failed, since it may success when import core_avx.so except Exception as e:
sys.stderr.write('Error: Can not preload libgomp.so') # NOTE(zhiqiu): do not abort if failed, since it may success when import core_avx.so
sys.stderr.write('Error: Can not preload libgomp.so')
load_noavx = False load_noavx = False
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册