Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems building wheel for manylinux2014_ppc64le platform #412

Closed
st-pasha opened this issue Dec 24, 2019 · 1 comment · Fixed by pypa/auditwheel#213
Closed

Problems building wheel for manylinux2014_ppc64le platform #412

st-pasha opened this issue Dec 24, 2019 · 1 comment · Fixed by pypa/auditwheel#213

Comments

@st-pasha
Copy link

I'm building a wheel for an extension which was linked with the following command:

gcc [... o files] -shared -pthread -g -m64 -lstdc++

However, running auditwheel on the resulting wheel file shows the following:

# auditwheel show dist/datatable-0.10.1-cp38-cp38-linux_ppc64le.whl

datatable-0.10.1-cp38-cp38-linux_ppc64le.whl is consistent with the
following platform tag: "linux_ppc64le".

The wheel references external versioned symbols in these system-
provided shared libraries: ld64.so.2 with versions {'GLIBC_2.17'},
libgcc_s.so.1 with versions {'GCC_3.0'}, libc.so.6 with versions
{'GLIBC_2.17'}, libstdc++.so.6 with versions {'GLIBCXX_3.4.17',
'GLIBCXX_3.4.19', 'CXXABI_1.3.3', 'GLIBCXX_3.4', 'GLIBCXX_3.4.9',
'CXXABI_1.3.5', 'GLIBCXX_3.4.15', 'CXXABI_1.3', 'GLIBCXX_3.4.14',
'GLIBCXX_3.4.18', 'GLIBCXX_3.4.11'}

The following external shared libraries are required by the wheel:
{
    "ld64.so.2": "/lib64/ld-2.17.so",
    "libc.so.6": "/lib64/libc-2.17.so",
    "libgcc_s.so.1": "/lib64/libgcc_s-4.8.5-20150702.so.1",
    "libm.so.6": "/lib64/libm-2.17.so",
    "libstdc++.so.6": "/lib64/libstdc++.so.6.0.19"
}

In order to achieve the tag platform tag "manylinux2014_ppc64le" the
following shared library dependencies will need to be eliminated:

ld64.so.2

As far as I can tell, this ld64.so.2 library is a standard system library used to implement dynamic linking for ELF files. It is definitely not the kind of library that my code is explicitly using.

So, I think one of the two things need to happen:

  • either auditwheel can recognize that this is a standard system library for ppc64 platform and stop complaining about it;
  • or there should be a way (perhaps via a special linker flag) to link the code so that it doesn't depend on this ld64 library; however I wasn't able to figure out what could that flag be.
@di
Copy link
Member

di commented Feb 6, 2020

This is a bug in auditwheel, the proposed fix is here: pypa/auditwheel#213.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants