Opened 10 years ago

Closed 10 years ago

#28549 closed defect (fixed)

py26-h5py @1.3.1 Configure error - build failure

Reported by: bobby.mendoza@… Owned by: eborisch (Eric A. Borisch)
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc:
Port: py26-h5py

Description

I am running Mac OS 10.6.6 on a fresh macports installation. I have installed hdf5-18 as follows:

sudo port installed hdf5-18
The following ports are currently installed:
  hdf5-18 @1.8.6_1+gcc45 (active)

Here is my output of the build fail:

> sudo port -v install py26-h5py
--->  Computing dependencies for py26-h5py.
--->  Fetching py26-h5py
--->  Verifying checksum(s) for py26-h5py
--->  Checksumming h5py-1.3.1.tar.gz
--->  Extracting py26-h5py
--->  Extracting h5py-1.3.1.tar.gz
--->  Configuring py26-h5py
Undefined symbols:
  "_inflateEnd", referenced from:
      _H5Z_filter_deflate in libhdf5.a(H5Zdeflate.o)
      _H5Z_filter_deflate in libhdf5.a(H5Zdeflate.o)
      _H5Z_filter_deflate in libhdf5.a(H5Zdeflate.o)
  "_SZ_encoder_enabled", referenced from:
      _H5Z_init_interface in libhdf5.a(H5Z.o)
  "_compress2", referenced from:
      _H5Z_filter_deflate in libhdf5.a(H5Zdeflate.o)
  "_inflateInit_", referenced from:
      _H5Z_filter_deflate in libhdf5.a(H5Zdeflate.o)
  "_SZ_BufftoBuffDecompress", referenced from:
      _H5Z_filter_szip in libhdf5.a(H5Zszip.o)
  "_SZ_BufftoBuffCompress", referenced from:
      _H5Z_filter_szip in libhdf5.a(H5Zszip.o)
  "_inflate", referenced from:
      _H5Z_filter_deflate in libhdf5.a(H5Zdeflate.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
******************************************
Configure: Autodetecting HDF5 settings...
    Custom HDF5 dir:       /opt/local
    Custom API level:      (1, 8)

    Failed to compile HDF5 test program.  Please check to make sure:

    * You have a C compiler installed
    * A development version of Python is installed (including header files)
    * A development version of HDF5 is installed (including header files)
    * If HDF5 is not in a default location, supply the argument --hdf5=<path>
******************************************
error: command 'cc' failed with exit status 1
shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_python_py26-h5py/work/h5py-1.3.1" && /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 setup.py configure --api=18 --hdf5=/opt/local " returned error 1
Error: Target org.macports.configure returned: configure failure: shell command failed (see log for details)
Warning: the following items did not execute (for py26-h5py): org.macports.activate org.macports.configure org.macports.build org.macports.destroot org.macports.install
Log for py26-h5py is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_python_py26-h5py/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

I have attached the full log file.

Attachments (1)

py26-h5py.log (36.9 KB) - added by bobby.mendoza@… 10 years ago.
Full log file

Download all attachments as: .zip

Change History (9)

Changed 10 years ago by bobby.mendoza@…

Attachment: py26-h5py.log added

Full log file

comment:1 Changed 10 years ago by bobby.mendoza@…

I just noticed that on the h5py homepage, h5py-1.3.1 is only applicable for hdf5 versions 1.6.5-1.8.5, yet the latest macports build of hdf5 is 1.8.6.

comment:2 Changed 10 years ago by jmroot (Joshua Root)

Owner: changed from macports-tickets@… to eborisch@…

Please remember to cc the maintainer.

comment:3 Changed 10 years ago by eborisch (Eric A. Borisch)

Could you send the output of these commands?

file /opt/local/lib/libsz.dylib
file /opt/local/lib/libz.dylib
file /opt/local/lib/libhdf5.dylib

I think there might be some architecture issues... I see some i386 references but it's building with -arch=x86_64

comment:4 in reply to:  3 Changed 10 years ago by bobby.mendoza@…

Replying to eborisch@…:

Could you send the output of these commands?

file /opt/local/lib/libsz.dylib
file /opt/local/lib/libz.dylib
file /opt/local/lib/libhdf5.dylib

I think there might be some architecture issues... I see some i386 references but it's building with -arch=x86_64

Here you go:

~ > file /opt/local/lib/libz.dylib
/opt/local/lib/libz.dylib: Mach-O universal binary with 2 architectures
/opt/local/lib/libz.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/opt/local/lib/libz.dylib (for architecture i386):	Mach-O dynamically linked shared library i386

~> file /opt/local/lib/libsz.dylib
/opt/local/lib/libsz.dylib: Mach-O 64-bit dynamically linked shared library x86_64

~> file /opt/local/lib/libhdf5.dylib
/opt/local/lib/libhdf5.dylib: cannot open `/opt/local/lib/libhdf5.dylib' (No such file or directory)

There is no /opt/local/lib/libhdf5.dylib file, but I do have /opt/local/lib/libhdf5.a

 ~> file /opt/local/lib/libhdf5.a
/opt/local/lib/libhdf5.a: current ar archive random library
~> ls /opt/local/lib/libhdf5*
/opt/local/lib/libhdf5.a             /opt/local/lib/libhdf5_fortran.a     /opt/local/lib/libhdf5_hl_cpp.la*
/opt/local/lib/libhdf5.la*           /opt/local/lib/libhdf5_fortran.la*   /opt/local/lib/libhdf5hl_fortran.a
/opt/local/lib/libhdf5.settings      /opt/local/lib/libhdf5_hl.a          /opt/local/lib/libhdf5hl_fortran.la*
/opt/local/lib/libhdf5_cpp.a         /opt/local/lib/libhdf5_hl.la*
/opt/local/lib/libhdf5_cpp.la*       /opt/local/lib/libhdf5_hl_cpp.a

comment:5 Changed 10 years ago by eborisch (Eric A. Borisch)

The missing hdf5.dylib is the issue -- hdf5-18 with fortran (+gcc4x variants) doesn't support shared libs; h5py needs the shared lib version of hdf5-18.

If you don't need fortran support, uninstall hdf5-18+gcc45 and install hdf5-18 (no gcc variants) and try py27-h5py again. Perhaps some of the other port maintainers can suggest a way to catch this...

Please let me know if this fixes the problem for you so I can update the ticket.

comment:6 Changed 10 years ago by eborisch (Eric A. Borisch)

I think I have a fix to enable static fortran and shared (c/c++ libs) for hdf5-18. I'll post a reference here once I've submitted it.

comment:7 Changed 10 years ago by eborisch (Eric A. Borisch)

See #28554 for possible changes to hdf5-18 to support +gccXX (and therefore fortran) and shared c/c++ libs.

comment:8 Changed 10 years ago by eborisch (Eric A. Borisch)

Resolution: fixed
Status: newclosed

r76521 to hdf5-18 applies the patches from #28554, and should fix this (lack of shared c/c++ hdf5 libs) problem. Self-update and upgrade outdated and then try installing py26-h5py again. Closing -- please comment here if this hasn't fixed things.

Note: See TracTickets for help on using tickets.