Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#46583 closed defect (worksforme)

upgrading port `py27-scipy` fails with `ld64`

Reported by: evandrix (Lee Wei Yeong) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc:
Port: ld64

Description (last modified by mf2k (Frank Schima))

I'm on OS X Yosemite 10.10.1

Trying to update my outdated port py27-scipy, where partial output of sudo port list outdated, showing only relevant line, is below: ...

py27-scipy                     @0.15.0         python/py-scipy

...

Following is also an extract of the last bit just before the port upgrade via sudo port -d upgrade py27-scipy fails:

src/ld/parsers/lto_file.cpp:41:
src/abstraction/MachOFileAbstraction.hpp:510:10: fatal error: 'mach-o/arm/reloc.h' file not found
#include <mach-o/arm/reloc.h>
In file included from src/other/dyldinfo.cpp:39:
src/abstraction/MachOFileAbstraction.hpp:510:10: fatal error: 'mach-o/arm/reloc.h' file not found
#include <mach-o/arm/reloc.h>
         ^
         ^
2 warnings and 1 error generated.

Indeed, my $PREFIX = /opt/local (as default), and the directory /opt/local/include/mach-o doesn't contain a subfolder arm. However, files similar to /mach-o/arm/reloc.h seems available within Xcode (I'm on v6.1.1 currently) for my OS platform version (ie. 10.10):

Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/mach-o/arm64/reloc.h
Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/mach-o/ppc/reloc.h
Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/mach-o/reloc.h
Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/mach-o/x86_64/reloc.h

The exact file exists here, but they are not my OS platform, nor the right version either:

  • Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/mach-o/arm/reloc.h
  • Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/mach-o/arm/reloc.h

Any ideas how to resolve this issue I'm facing?

Much appreciated

Attachments (1)

port-upgrade-partial.log (23.1 KB) - added by evandrix (Lee Wei Yeong) 9 years ago.

Download all attachments as: .zip

Change History (8)

Changed 9 years ago by evandrix (Lee Wei Yeong)

Attachment: port-upgrade-partial.log added

comment:1 Changed 9 years ago by evandrix (Lee Wei Yeong)

Cc: evandrix@… added

Cc Me!

comment:2 Changed 9 years ago by mf2k (Frank Schima)

Cc: evandrix@… removed
Keywords: py27-scipy ld64 fail port upgrade removed
Owner: changed from macports-tickets@… to jeremyhu@…

In the future, please use WikiFormatting and Cc the port maintainers (port info --maintainers ld64), if any. As reporter, you do not need to Cc yourself.

This is not a clean build log. Please clean the port and try again. Then attach the new main.log file.

comment:3 Changed 9 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:4 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

ld64 has:

depends_build           path:include/mach-o/dyld_priv.h:dyld-headers \
                        path:include/mach-o/arm/reloc.h:libmacho-headers

Your log shows that it is installed:

DEBUG: libmacho-headers 862_2  is active

What's the output of:

port contents libmacho-headers

comment:5 in reply to:  4 Changed 9 years ago by evandrix (Lee Wei Yeong)

Replying to jeremyhu@…:

ld64 has:

depends_build           path:include/mach-o/dyld_priv.h:dyld-headers \
                        path:include/mach-o/arm/reloc.h:libmacho-headers

Your log shows that it is installed:

DEBUG: libmacho-headers 862_2  is active

What's the output of:

port contents libmacho-headers

As requested:

$ sudo port contents libmacho-headers

Port libmacho-headers contains:
  /opt/local/include/mach-o/arch.h.mp_XXX
  /opt/local/include/mach-o/arm/reloc.h.mp_XXX
  /opt/local/include/mach-o/arm64/reloc.h.mp_XXX
  /opt/local/include/mach-o/fat.h.mp_XXX
  /opt/local/include/mach-o/getsect.h.mp_XXX
  /opt/local/include/mach-o/i386/swap.h.mp_XXX
  /opt/local/include/mach-o/ldsyms.h.mp_XXX
  /opt/local/include/mach-o/loader.h.mp_XXX
  /opt/local/include/mach-o/nlist.h.mp_XXX
  /opt/local/include/mach-o/ppc/reloc.h.mp_XXX
  /opt/local/include/mach-o/ppc/swap.h.mp_XXX
  /opt/local/include/mach-o/ranlib.h.mp_XXX
  /opt/local/include/mach-o/reloc.h.mp_XXX
  /opt/local/include/mach-o/stab.h.mp_XXX
  /opt/local/include/mach-o/swap.h.mp_XXX
  /opt/local/include/mach-o/x86_64/reloc.h.mp_XXX

...where .mp_XXX represents .mp_<epoch at which time the files were moved>, as done by MacPorts.

tyvm for suggesting I try to run that command, because my issue seems to have been resolved (will need to test on 1 more machine before I confirm this)

anyway, I usually would delete any *.mp_* files under my $prefix, so this does explain why I'm encountering the error I've previously stated in this ticket.

solution is of course to reinstall libmacho-headers, so that sudo port contents libmacho-headers would now show that same filelist, but w/o the trailing .mp_XXX, and the files would also be there as needed.

comment:6 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: worksforme
Status: newclosed

comment:7 in reply to:  6 Changed 9 years ago by evandrix (Lee Wei Yeong)

Replying to jeremyhu@…:

Yes, I can verify that this suggested fix works perfectly across all my machines. Thanks again

Note: See TracTickets for help on using tickets.