#38163 closed defect (invalid)
py2app and macholib error
Reported by: | drsmith48@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.3 |
Keywords: | Cc: | jmroot (Joshua Root) | |
Port: |
Description
Py2app and macholib raise the error "ValueError: New Mach-O header is too large to relocate". The patches for configure.ldflags in portconfigure.tcl described here
https://bitbucket.org/ronaldoussoren/py2app/issue/93/mach-o-header-may-be-too-large-to-relocate http://www.danplanet.com/blog/2009/02/15/using-py2app-with-gtk/ https://trac.macports.org/ticket/29838
do not fix the error. I suspect some ports override default configure.ldflags. Also, I think OpenCV triggers the same error:
Error stack:
WARNING: Mach-O header may be too large to relocate WARNING: Mach-O header may be too large to relocate Traceback (most recent call last): File "setup.py", line 26, in <module> setup_requires=['py2app'], File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup dist.run_commands() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/py2app/build_app.py", line 553, in run self._run() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/py2app/build_app.py", line 741, in _run self.run_normal() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/py2app/build_app.py", line 831, in run_normal self.create_binaries(py_files, pkgdirs, extensions, loader_files) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/py2app/build_app.py", line 978, in create_binaries platfiles = mm.run() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/macholib/MachOStandalone.py", line 140, in run node.write(f) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/macholib/MachO.py", line 119, in write header.write(f) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/macholib/MachO.py", line 314, in write self.synchronize_size() File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/macholib/MachO.py", line 304, in synchronize_size raise ValueError("New Mach-O header is too large to relocate") ValueError: New Mach-O header is too large to relocate drsmith$
py2app's full output is attached.
Env: python27, py27-py2app, py27-macholib on OSX 10.8.
Any guidance would be helpful. There seems to be lots of confusion about this in trac and stack overflow.
Thanks.
Attachments (1)
Change History (5)
Changed 12 years ago by drsmith48@…
comment:1 Changed 12 years ago by jmroot (Joshua Root)
Resolution: | → invalid |
---|---|
Status: | new → closed |
As explained in your links, there is nothing py2app can do about this. The relocated header cannot be larger than the original.
comment:3 Changed 12 years ago by jmroot (Joshua Root)
AIUI it's more like a limitation of the Mach-O format, in that to increase the size of the header you effectively have to re-link the file. So it could be viewed as a deficiency of macholib that it doesn't do that, but it's not like it's a simple fix, which is why install_name_tool can't do it either.
comment:4 Changed 11 years ago by spam4scott@…
Same problem as above. Earlier, editing portconfigure.tcl did the trick, but with the newer MacPorts I confirm that this does not fix it; i.e., error persists despite fresh clean/reinstall of MacPorts, rebuilding with -headerpad... in portconfigure.tcl
"As explained in your links, there is nothing py2app can do about this."
So, what then? You're saying basically py27-py2app is broken and non-functional in MacPorts? Why then is it even still listed as an available port? Do users then just find the source elsewhere and compile 'by hand'?
I don't understand how you can label this ticket as Invalid and Resolved if it's a mission-critical error that prevents the program from working at all...
py2app output