Opened 4 years ago

Last modified 4 years ago

#60780 assigned defect

py38-mkl @2019.0: changing install names or rpaths can't be redone ... because larger updated load commands do not fit

Reported by: nasyxx (Nasy) Owned by: cjones051073 (Chris Jones)
Priority: Normal Milestone:
Component: ports Version: 2.6.99
Keywords: Cc:
Port: py-mkl

Description

I'm not sure if it's a whl problem or a ports problem. But I tested directly pip install mkl without problems.

Executing:  cd "/Users/Nasy/.macports/var/macports/build/_Users_Nasy_.macports_macports-ports_python_py-mkl/py38-mkl/work/mkl-2019.0-py2.py3-none-macosx_10_12_intel.macosx_10_12_x86_64" && pip-3.8 install --no-cache-dir --no-dependencies --root /Users/Nasy/.macports/var/macports/build/_Users_Nasy_.macports_macports-ports_python_py-mkl/py38-mkl/work/destroot /Users/Nasy/.macports/var/macports/distfiles/py-mkl/mkl-2019.0-py2.py3-none-macosx_10_12_intel.macosx_10_12_x86_64.whl
dbus[18195]: Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
dbus[18195]: Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Processing /Users/Nasy/.macports/var/macports/distfiles/py-mkl/mkl-2019.0-py2.py3-none-macosx_10_12_intel.macosx_10_12_x86_64.whl
Installing collected packages: mkl
Successfully installed mkl-2019.0
error: /Library/Developer/CommandLineTools/usr/bin/install_name_tool: changing install names or rpaths can't be redone for: /Users/Nasy/.macports/var/macports/build/_Users_Nasy_.macports_macports-ports_python_py-mkl/py38-mkl/work/destroot/Users/Nasy/.macports/Library/Frameworks/Python.framework/Versions/3.8/lib/libmkl_intel_ilp64.dylib (for architecture x86_64) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names)
Command failed: install_name_tool -add_rpath /Users/Nasy/.macports/lib/libomp /Users/Nasy/.macports/var/macports/build/_Users_Nasy_.macports_macports-ports_python_py-mkl/py38-mkl/work/destroot/Users/Nasy/.macports/Library/Frameworks/Python.framework/Versions/3.8/lib/libmkl_intel_ilp64.dylib
Exit code: 1
Error: Failed to destroot py38-mkl: command execution failed

Attachments (1)

main.log (131.2 KB) - added by nasyxx (Nasy) 4 years ago.

Download all attachments as: .zip

Change History (3)

Changed 4 years ago by nasyxx (Nasy)

Attachment: main.log added

comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: catalina removed
Owner: set to cjones051073
Port: py-mkl added; py38-mkl removed
Status: newassigned
Summary: py38-mkl @2019.0 Command failed: install_name_tool -add_rpathpy38-mkl @2019.0: changing install names or rpaths can't be redone ... because larger updated load commands do not fit
changing install names or rpaths can't be redone ... because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names

MacPorts puts -headerpad_max_install_names into configure.ldflags automatically specifically so that install_name_tool can be used in this way, but this build isn't making use of MacPorts configure.ldflags (and it probably should be).

I'm not entirely sure where the problem is. I see that the port is disabling the build phase and doing its building and installing together in the destroot phase, which is weird; ports should usually build in the build phase and install in the destroot phase. If fixing that doesn't fix the problem, then I would examine the python 1.0 portgroup. It's possible this problem affects all python modules. I don't see the string configure.ldflags anywhere in the python portgroup, which surprises me. For comparison, I do see configure.cflags and configure.cxxflags used there.

This problem may be affecting you especially, and might not be apparent when we build it, because you're using a custom MacPorts prefix (/Users/Nasy/.macports) that is longer than the default prefix (/opt/local).

comment:2 Changed 4 years ago by nasyxx (Nasy)

How about just ignore line 77?

system "install_name_tool -add_rpath ${prefix}/lib ${dlib}"

Since it will only link for libomp, I guess this line is useless. But I'm not sure if it will influence other things or not.

Note: See TracTickets for help on using tickets.