Albert and George,

These were very helpful suggestions.  It seems that the strings syntax was
the problem afterall.

Thanks for helping me chase it down.

-Pat

> (George, thanks for the good information.)
> Pat,
>
> I copied a copy of libhdf5.7.dylib I generated in a Darwin 11.4.2 (Lion)
> to a Darwin 10.8.0 (Snow Leopard) and did
> $ strings libhdf5.7.dylib > /dev/null
> strings: object: libhdf5.dylib malformed object (unknown load command 8)
>
> Puzzled, I read "man strings" and found this:
> Description
>         Strings  looks  for  ASCII strings in a binary file or standard
> input.
>         Strings is useful for identifying random object files and many
> other
>         things.   A string is any sequence of 4 (the default) or more
> printing
>         characters ending with a newline or a null.   Unless  the -
> flag  is
>         given,  strings  looks  in _all sections of the object files_
> except the
>         (__TEXT,__text) section.  If no files are specified standard
> input  is
>         read.
>
> So, I guess strings detects libhdf5.7.dylib is an object and tries to
> find the sections.  But since the object file is generated in a newer
> OS (Lion), the older strings in Snow Leopard does not understand the
> newer format.
>
> I then tried this in the Snow Leopard system:
> $  strings < libhdf5.dylib | grep SUMMARY
>      SUMMARY OF THE HDF5 CONFIGURATION
>
> My suggestions to you:
> 1. Ask your system support staff to update the strings command in your
> system;
> Or
> 2. Edit the test/testlibinfo.sh file by changing this line:
>      if strings $1 | grep "SUMMARY OF THE HDF5 CONFIGURATION" >
> /dev/null; then
> to
>      if strings < $1 | grep "SUMMARY OF THE HDF5 CONFIGURATION" >
> /dev/null; then
>                 ^
> Meanwhile, I will update the future release of HDF5 to use this
> solution. It will take
> a micro seconds to run it but it avoids this system versions issue.
>
> Hope this helps.
>
> -Albert
>
> On 2/3/13 12:37 PM, George N. White III wrote:
>> It looks like you have an old version of the strings program.
>>
>> On Snow Leopard with Xcode 3.2 I have:
>>
>> $ /usr/bin/strings /usr/bin/strings | grep cctools
>> cctools-750
>> $ /usr/bin/strings /opt/local/bin/strings | grep cctools
>> cctools-836
>>
>> $ port provides /opt/local/bin/strings
>> /opt/local/bin/strings is provided by: cctools
>> $ port info cctools
>> cctools @836 (devel)
>> Variants:             llvm29, llvm30, [+]llvm31, llvm32, universal
>>
>> Description:          A set of essential tools to support development
>> on Mac OS
>>                       X and Darwin. Conceptually similar similar to
>> binutils on
>>                       other platforms.
>> Homepage: http://opensource.apple.com/source/cctools/
>>
>> Build Dependencies:   ld64
>> Library Dependencies: cctools-headers
>> Runtime Dependencies: llvm-3.1
>> Platforms:            darwin
>> License:              APSL-2 GPL-2+
>> Maintainers: [email protected] <mailto:[email protected]>,
>> [email protected] <mailto:[email protected]>
>>
>> cctools-836 works, but cctools-750 fails.
>>
>> $ /opt/local/bin/strings /opt/local/lib/libhdf5.7.dylib | grep SUMMARY
>>     SUMMARY OF THE HDF5 CONFIGURATION
>>
>> $ /usr/bin/strings /opt/local/lib/libhdf5.7.dylib  | grep SUMMARY
>> /usr/bin/strings: object: /opt/local/lib/libhdf5.7.dylib malformed
>> object (unknown load command 8)
>>
>> I have also run into situations where Apple's ld64 fails but macports
>> build of the Apple open source tool worked
>> (e.g.,LDFLAGS=-B/opt/local/libexec/ld64).
>>
>>
>>
>>
>> On Fri, Feb 1, 2013 at 11:53 AM, <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>     Thanks for the advice, Albert.
>>
>>     I get the same error when I execute the if statement from the
>> command
>>     line.  However, I get no error when I execute
>>     $ strings /etc/group > /dev/null
>>
>>     So, any idea why libhdf5.7.dylib would be a 'malformed object'?
>>
>>     I have included the output from make below with the hope that it
>>     may help.
>>
>>     -Pat
>>
>>     Making all in src
>>     make[1]: Entering directory
>>     `/Users/pkablick/Downloads/tarballs/hdf5-1.8.10-patch1-intel-serial/src'
>>     make  all-am
>>     make[2]: Entering directory
>>     `/Users/pkablick/Downloads/tarballs/hdf5-1.8.10-patch1-intel-serial/src'
>>
>>
> ...[skipped]
>>
>>
>>
>>
>>
>>
>>     > On 1/30/13 4:36 PM, acheng at hdfgroup.org <http://hdfgroup.org>
>>     wrote:
>>     > The testlibinfo.sh does something simple in the first test.  It
>> just
>>     does this:
>>     > if strings ../src/.libs/libhdf5.7.dylib | grep "SUMMARY OF THE
>> HDF5
>>     CONFIGURATION" > /dev/null; then
>>     >      echo " PASSED"
>>     > else
>>     >      echo " FAILED"
>>     >      nerrors=`expr $nerrors + 1`
>>     > fi
>>     >  From the message you showed, I think the error was from the
>> command
>>     > "strings".
>>     > Can you "cd test" and hand run the above commands?  (They are
>>     Bourn sh
>>     style commands.
>>     > So, if you use cshell, do a "sh" first.)
>>     > If you see the same error message, try this:
>>     > $ strings /etc/group > /dev/null
>>     > If you see the same error message again, something
>>     > is wrong with the command "strings" executable.
>>     > In that case, check with your system support staff.
>>     > Let me know how it turns out.
>>     > -Albert Cheng
>>     > > On 1/28/13 12:02 PM, pkablick at atmos.umd.edu
>>     <http://atmos.umd.edu> wrote:
>>     > > Hello,
>>     > > I'm trying to build HDF5 on Mac OS X 10.7.5, but I've run into a
>>     problem that I haven't been able to fix.  Any help or suggestions
>> are
>>     appreciated.
>>     > > I've tried to build with both GNU and Intel compilers, and I
>>     get the
>>     same failure with both compiler suites on make check:
>>     > > ============================
>>     > > ============================
>>     > > Testing testlibinfo.sh
>>     > > *** Error ignored
>>     > > Finished testing testlibinfo.sh
>>     > > ============================
>>     > > testlibinfo.sh  Test Log
>>     > > ============================
>>     > > Check file ../src/.libs/libhdf5.7.dylib
>>     strings: object: ../src/.libs/libhdf5.7.dylib malformed object
>>     (unknown load command 15)
>>     > >   FAILED
>>     > > Check file ../src/.libs/libhdf5.a
>>     PASSED
>>     > > Check file testhdf5
>>     -SKIP-
>>     > > ***1 errors encountered***
>>     > >         0.31 real         0.03 user 0.05 sys
>>     > > Finished testing testlibinfo.sh
>>     > > ============================
>>     > > ============================
>>     > > Based on suggestions from other fora, here is some information
>>     about
>>     the dynamic library using file, otool and lipo:
>>     > > $ file src/.libs/libhdf5.7.dylib
>>     > > src/.libs/libhdf5.7.dylib: Mach-O 64-bit dynamically linked
>> shared
>>     library x86_64
>>     > > $ otool -L src/.libs/libhdf5.7.dylib
>>     > > src/.libs/libhdf5.7.dylib:
>>     > >     /usr/local/lib/libhdf5.7.dylib (compatibility version
>>     8.0.0, current
>>     version 8.4.0)
>>     > >     /usr/lib/libz.1.dylib (compatibility version 1.0.0,
>>     current version
>>     1.2.5)
>>     > >     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,
>>     current
>>     version 159.1.0)
>>     > >     mac64/libcilkrts.5.dylib (compatibility version 0.0.0,
>> current
>>     version 0.0.0)
>>     > >     /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,
>>     current
>>     version 52.0.0)
>>     > >     /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0,
>>     current
>>     version 1094.0.0)
>>     > > $ lipo -info src/.libs/libhdf5.7.dylib
>>     > > Non-fat file: src/.libs/libhdf5.7.dylib is architecture:
>>     x86_64 I run
>>     the following build script:
>>     > > ############################################################
>>     > > #!/bin/bash
>>     > > # version of HDF5
>>     > > export HDF5=hdf5-1.8.10-patch1
>>     > > # location of installation
>>     > > export PREFIX=/usr/local
>>     > > # location of compiler
>>     > > export COMPREFIX=/usr
>>     > > # c preprocessor
>>     > > export CPP='icc -E'
>>     > > # c compiler
>>     > > export CC=$COMPREFIX/bin/icc
>>     > > # archiver and linker
>>     > > export AR=$COMPREFIX/bin/xiar
>>     > > export LD=$COMPREFIX/bin/xild
>>     > > # c flags
>>     > > export CFLAGS='-O0'
>>     > > # linker flags
>>     > > export LDFLAGS=-L$COMPREFIX/lib
>>     > > # compression libraries used by HDF5
>>     > > export ZLIB=$COMPREFIX
>>     > > rm -rf $HDF5-intel-serial
>>     > > tar xzf $HDF5.tar.gz
>>     > > mv $HDF5 $HDF5-intel-serial
>>     > > cd $HDF5-intel-serial
>>     > > ./configure --prefix=$PREFIX --with-zlib=$ZLIB
>>     > > # tell make to continue even if errors are encountered
>>     > > export HDF5_Make_Ignore=yes
>>     > > # use shared libraries
>>     > > export HDF5_USE_SHLIB=yes
>>     > > make all
>>     > > make check
>>     > > ############################################################
>>     > > Also, here is some system information that may be helpful:
>>     > > $uname -a
>>     > > Darwin kestrel.local 11.4.2 Darwin Kernel Version 11.4.2: Thu
>>     Aug 23
>>     16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
>>     > > $ which icc && which ifort && which icpc
>>     > > /usr/bin/icc
>>     > > /usr/bin/ifort
>>     > > /usr/bin/icpc
>>     > > $ icc --version && ifort --version && icpc --version
>>     > > icc (ICC) 13.0.1 20121010
>>     > > Copyright (C) 1985-2012 Intel Corporation.  All rights
>>     reserved. ifort
>>     (IFORT) 13.0.1 20121010
>>     > > Copyright (C) 1985-2012 Intel Corporation.  All rights
>>     reserved. icpc
>>     (ICC) 13.0.1 20121010
>>     > > Copyright (C) 1985-2012 Intel Corporation.  All rights reserved.
>> $
>>     which gcc && which gfortran && which g++
>>     > > /usr/local/bin/gcc
>>     > > /usr/local/bin/gfortran
>>     > > /usr/local/bin/g++
>>     > > $ gcc --version && gfortran --version && g++ --version
>>     > > gcc (GCC) 4.8.0 20120603 (experimental)
>>     > > Copyright (C) 2012 Free Software Foundation, Inc.
>>     > > GNU Fortran (GCC) 4.8.0 20120603 (experimental)
>>     > > Copyright (C) 2012 Free Software Foundation, Inc.
>>     > > g++ (GCC) 4.8.0 20120603 (experimental)
>>     > > Copyright (C) 2012 Free Software Foundation, Inc.
>>
>>
>>
>>
>>     _______________________________________________
>>     Hdf-forum is for HDF software users discussion.
>>     [email protected] <mailto:[email protected]>
>>     http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>>
>>
>>
>>
>> --
>> George N. White III <[email protected] <mailto:[email protected]>>
>> Head of St. Margarets Bay, Nova Scotia
>>
>>
>> _______________________________________________
>> Hdf-forum is for HDF software users discussion.
>> [email protected]
>> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>



_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to