Hi,

I tried to remove  "H5lib_settings.c"  and  "H5Tinit.c"  :(

But that results in the following build error:
==============================================================
../src/.libs/libhdf5.so: undefined reference to `H5TN_init_interface'
../src/.libs/libhdf5.so: undefined reference to `H5libhdf5_settings'
collect2: error: ld returned 1 exit status
Makefile:1529: recipe for target 'testhdf5' failed
make[2]: *** [testhdf5] Error 1
make[2]: *** Waiting for unfinished jobs....
../src/.libs/libhdf5.so: undefined reference to `H5TN_init_interface'
../src/.libs/libhdf5.so: undefined reference to `H5libhdf5_settings'
collect2: error: ld returned 1 exit status
Makefile:1465: recipe for target 'lheap' failed
=================================================================




Oops, looks like other code is using it :(
As shown below:
===============================================

[ernesto@localhost src]$ grep H5libhdf5_settings *
H5.c:       HDfprintf (stderr, "%s", H5libhdf5_settings);
H5.c:       HDfprintf (stderr, "%s", H5libhdf5_settings);
H5make_libsettings.c:    fprintf(flibinfo, "char H5libhdf5_settings[]=\n");
H5make_libsettings.c:    fprintf(flibinfo, "char H5libhdf5_settings[]=\"\";\n");
H5private.h:extern char H5libhdf5_settings[]; /* embedded library information */
[ernesto@localhost src]$ grep H5TN_init_interface *
H5detect.c: * Function: H5TN_init_interface\n\
H5detect.c:H5TN_init_interface(void)\n\
H5detect.c:    FUNC_LEAVE_NOAPI(ret_value);\n} /* end H5TN_init_interface() 
*/\n");
H5T.c:    if(H5TN_init_interface() < 0)
H5Tprivate.h:H5_DLL herr_t H5TN_init_interface(void);



Thanks in advance for your support.

Cheers,
Ernesto
________________________________________
From: Williams Jr., Ernest L.
Sent: Friday, January 2, 2015 9:04 PM
To: [email protected]
Cc: Williams Jr., Ernest L.; [email protected]
Subject: HDF5 Cross:  /bin/sh: ./H5make_libsettings: /lib/ld64-uClibc.so.0: bad 
ELF interpreter: No such file or directory

Hi,

I would still like to cross compile hdf5 against x86_84 w/uClibc

I have managed to get passed the configuration stage but now. I get the 
following:
===============================================================
LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo  |                  \
        sed -e 's/-L/:/g' -e 's/ //g'`"                               \
 ./H5make_libsettings > H5lib_settings.c  ||                               \
    (test $HDF5_Make_Ignore && echo "*** Error ignored") ||          \
    (rm -f H5lib_settings.c ; exit 1)
/bin/sh: ./H5make_libsettings: /lib/ld64-uClibc.so.0: bad ELF interpreter: No 
such file or directory
make[3]: *** [H5lib_settings.c] Error 1
Makefile:1682: recipe for target 'H5lib_settings.c' failed
========================================================================

This is because you trying to execute a binary built for my target on my build 
host.  :(
I found the following in your Makefile:
===== src/Makefile snippet ============================================
In one case you are running an executable to generate a  "C"  file  :(
# Build configuration header file generation
# The LD_LIBRARY_PATH setting is a kludge.
# Things should have been all set during H5make_libsettings making.
# Remove the generated .c file if errors occur unless HDF5_Make_Ignore
# is set to ignore the error.
H5lib_settings.c: H5make_libsettings$(EXEEXT) libhdf5.settings
        LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) |                  \
                sed -e 's/-L/:/g' -e 's/ //g'`"                               \
        $(RUNSERIAL) ./H5make_libsettings$(EXEEXT) > $@  ||                     
          \
            (test $$HDF5_Make_Ignore && echo "*** Error ignored") ||          \
            ($(RM) $@ ; exit 1)

=================================================================

Can you generate C files with a portable scripting language such as PERL ?

Can I proceed without this?
I will be building for embedded linux.
I can setup LD_LIBRARY_PATH manually.

Or in some cases, I will do a static build with my application.

Looks like I will have a similar problem with:  H5detect.c  which claims to 
generate  "native.c"
But instead I see  "


# Number format detection
# The LD_LIBRARY_PATH setting is a kludge.
# Things should have been all set during H5detect making.
# Remove the generated .c file if errors occur unless HDF5_Make_Ignore
# is set to ignore the error.
H5Tinit.c: H5detect$(EXEEXT)
        LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) |                  \
                sed -e 's/-L/:/g' -e 's/ //g'`"                               \
        $(RUNSERIAL) ./H5detect$(EXEEXT) > $@  ||                               
\
            (test $$HDF5_Make_Ignore && echo "*** Error ignored") ||          \
            ($(RM) $@ ; exit 1)

------------------------------------------------------------------------
May, I use  "HDF5_Make_Ignore"  to get around this for now?

What are the side effects?


Cheers,
Ernest


_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to