-
Notifications
You must be signed in to change notification settings - Fork 4k
Description
Description
Hello. LightGBM depends on libgomp, but it doesn't embed it. Which means it's not really manylinux compliant considering that most docker images don't ship libgomp by default.
I understand that embedding OpenMP might be problematic because other softwares might depend on it and bundle it bringing duplication.
Maybe a dedicated wheel could be crafted to ship various libgomp such that other python projects might depend on it to avoid duplication but to still be fully manylinux compliant?
If this is to allow linking with optimized OpenMP libraries for HPC, I'd argue that in that case the wheel should be recompiled anyway from source to enable specific local optimizations anyway (maybe using something like spack).
Reproducible example
auditwheel -v show lightgbm-4.6.0-py3-none-manylinux_2_28_x86_64.whl
lightgbm-4.6.0-py3-none-manylinux_2_28_x86_64.whl is consistent with
the following platform tag: "linux_x86_64".
The wheel references external versioned symbols in these
system-provided shared libraries: libdl.so.2 with versions
{'GLIBC_2.2.5'}, libgomp.so.1 with versions {'OMP_1.0', 'GOMP_4.5',
'GOMP_4.0', 'GOMP_1.0'}, libgcc_s.so.1 with versions {'GCC_3.0'},
libpthread.so.0 with versions {'GLIBC_2.2.5'}, libm.so.6 with versions
{'GLIBC_2.2.5', 'GLIBC_2.27'}, libstdc++.so.6 with versions
{'GLIBCXX_3.4.11', 'GLIBCXX_3.4.5', 'CXXABI_1.3.9', 'GLIBCXX_3.4.14',
'GLIBCXX_3.4.9', 'GLIBCXX_3.4.18', 'CXXABI_1.3.5', 'GLIBCXX_3.4.22',
'GLIBCXX_3.4.15', 'CXXABI_1.3.7', 'CXXABI_1.3.8', 'CXXABI_1.3',
'CXXABI_1.3.3', 'GLIBCXX_3.4.19', 'GLIBCXX_3.4.21', 'GLIBCXX_3.4.20',
'GLIBCXX_3.4'}, libc.so.6 with versions {'GLIBC_2.14', 'GLIBC_2.3',
'GLIBC_2.38', 'GLIBC_2.32', 'GLIBC_2.17', 'GLIBC_2.2.5', 'GLIBC_2.4',
'GLIBC_ABI_DT_RELR', 'GLIBC_2.6', 'GLIBC_2.3.4', 'GLIBC_2.34'}
This constrains the platform tag to "manylinux_2_38_x86_64". In order
to achieve a more compatible tag, you would need to recompile a new
wheel from source on a system with earlier versions of these
libraries, such as a recent manylinux image.
The following external shared libraries are required by the wheel:
{
"libgomp.so.1": "/lib/libgomp.so.1.0.0"
}
In order to achieve the tag platform tag 'manylinux_2_41_x86_64' the
following shared library dependencies will need to be eliminated:
libgomp.so.1
In order to achieve the tag platform tag 'manylinux_2_40_x86_64' the
following shared library dependencies will need to be eliminated:
libgomp.so.1
In order to achieve the tag platform tag 'manylinux_2_39_x86_64' the
following shared library dependencies will need to be eliminated:
libgomp.so.1
Environment info
Command(s) you used to install LightGBM