1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-07 04:58:57 +00:00

external-arm-toolchain-versions: Use ldd to get libc version

Arm GCC 11.2 binary release has moved away from keeping libc library
versioning info as libc-{EAT_VER_LIBC}.so. So rather switch to
retrieving libc version by parsing output from "$ ldd --version".

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Sumit Garg
2022-04-29 11:51:41 +05:30
committed by Jon Mason
parent 2f9a15ba56
commit 68adfe2256
@@ -50,37 +50,26 @@ def eat_get_gcc_version(d):
def eat_get_libc_version(d): def eat_get_libc_version(d):
import os,bb import os,bb
import subprocess
syspath = bb.data.expand('${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}', d) syspath = bb.data.expand('${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}', d)
if not syspath: if not syspath:
return 'UNKNOWN' return 'UNKNOWN'
libpath = syspath + '/libc/' + bb.data.expand('${EAT_LIBDIR}/${EAT_TARGET_SYS}/', d) topdir = d.getVar('TOPDIR', True)
lddpath = syspath + '/libc/usr/bin/ldd'
if os.path.exists(libpath): if os.path.exists(lddpath):
for file in os.listdir(libpath): cmd = '/bin/sh ' + lddpath + ' --version'
if file.find('libc-') == 0: try:
return file[5:-3] stdout, stderr = bb.process.run(cmd, cwd=topdir, stderr=subprocess.PIPE)
except bb.process.CmdError as exc:
bb.error('Failed to obtain external Arm libc version: %s' % exc)
return 'UNKNOWN'
else:
first_line = stdout.splitlines()[0]
return first_line.split()[2]
libpath = syspath + '/libc/' + bb.data.expand('${EAT_LIBDIR}/', d)
if os.path.exists(libpath):
for file in os.listdir(libpath):
if file.find('libc-') == 0:
return file[5:-3]
libpath = syspath + '/libc/usr/' + bb.data.expand('${EAT_LIBDIR}/${EAT_TARGET_SYS}/', d)
if os.path.exists(libpath):
for file in os.listdir(libpath):
if file.find('libc-') == 0:
return file[5:-3]
libpath = syspath + '/libc/usr/' + bb.data.expand('${EAT_LIBDIR}/', d)
if os.path.exists(libpath):
for file in os.listdir(libpath):
if file.find('libc-') == 0:
return file[5:-3]
return 'UNKNOWN' return 'UNKNOWN'
def eat_get_kernel_version(d): def eat_get_kernel_version(d):