[svn-r18469] bug fix:

recent changes to the embedded library generation code does not quite work
for the AIX system. The strings command of AIX does not display the embedded
library information be default.

Solution:
Changed the H5libhhdf5_setting[] to be an extern variable. Also removed the
const qualifier so that strings can see the variable data.

Tested:
Blue-print (with embedded-libinfo enabled and disabled).
Also tested in Jam.
This commit is contained in:
Albert Cheng 2010-03-30 13:54:15 -05:00
parent c49b97ff38
commit 5d1838beab
6 changed files with 16 additions and 12 deletions

2
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh
# From configure.in Id: configure.in 18432 2010-03-21 13:42:10Z hdftest .
# From configure.in Id: configure.in 18465 2010-03-28 13:41:02Z hdftest .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.64 for HDF5 1.9.65.
#

View File

@ -22,7 +22,6 @@
/* Headers */
/***********/
#include "H5private.h" /* Generic Functions */
#include "H5lib_settings.h" /* Library build setings */
#include "H5ACprivate.h" /* Metadata cache */
#include "H5Dprivate.h" /* Datasets */
#include "H5Eprivate.h" /* Error handling */
@ -57,6 +56,7 @@ static void H5_debug_mask(const char*);
/*********************/
/* Package Variables */
/*********************/
#include "H5lib_settings.c" /* Embedded library information */
/*****************************/

View File

@ -75,7 +75,8 @@ insert_libhdf5_settings(FILE *flibinfo)
exit(1);
}
/* print variable definition and the string */
fprintf(flibinfo, "static const char H5libhdf5_settings[]=\n");
/* Do not use const else AIX strings does not show it. */
fprintf(flibinfo, "char H5libhdf5_settings[]=\n");
bol++;
while (EOF != (inchar = getc(fsettings))){
if (bol){
@ -108,7 +109,8 @@ insert_libhdf5_settings(FILE *flibinfo)
}
#else
/* print variable definition and an empty string */
fprintf(flibinfo, "static const char H5libhdf5_settings[]=\"\";\n");
/* Do not use const else AIX strings does not show it. */
fprintf(flibinfo, "char H5libhdf5_settings[]=\"\";\n");
#endif
} /* insert_libhdf5_settings() */

View File

@ -1535,6 +1535,8 @@ typedef struct H5_debug_t {
extern H5_debug_t H5_debug_g;
#define H5DEBUG(X) (H5_debug_g.pkg[H5_PKG_##X].stream)
/* Do not use const else AIX strings does not show it. */
extern char H5libhdf5_settings[]; /* embedded library information */
/*-------------------------------------------------------------------------
* Purpose: These macros are inserted automatically just after the

View File

@ -36,7 +36,7 @@ lib_LTLIBRARIES=libhdf5.la
libhdf5_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
# H5Tinit.c is a generated file, and should be cleaned.
MOSTLYCLEANFILES=H5Tinit.c H5lib_settings.h
MOSTLYCLEANFILES=H5Tinit.c H5lib_settings.c
# H5pubconf.h is generated by configure, and should be cleaned.
DISTCLEANFILES=H5pubconf.h
@ -134,17 +134,17 @@ H5Tinit.c: H5detect$(EXEEXT)
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
($(RM) $@ ; exit 1)
H5.o H5.lo: H5lib_settings.h
H5.o H5.lo: H5lib_settings.c
# 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 .h file if errors occur unless HDF5_Make_Ignore
# is set to ignore the error.
H5lib_settings.h: H5make_libsettings$(EXEEXT) libhdf5.settings
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) > H5lib_settings.h || \
$(RUNSERIAL) ./H5make_libsettings$(EXEEXT) > H5lib_settings.c || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
($(RM) $@ ; exit 1)

View File

@ -454,7 +454,7 @@ lib_LTLIBRARIES = libhdf5.la
libhdf5_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
# H5Tinit.c is a generated file, and should be cleaned.
MOSTLYCLEANFILES = H5Tinit.c H5lib_settings.h
MOSTLYCLEANFILES = H5Tinit.c H5lib_settings.c
# H5pubconf.h is generated by configure, and should be cleaned.
DISTCLEANFILES = H5pubconf.h
@ -1249,17 +1249,17 @@ H5Tinit.c: H5detect$(EXEEXT)
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
($(RM) $@ ; exit 1)
H5.o H5.lo: H5lib_settings.h
H5.o H5.lo: H5lib_settings.c
# 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 .h file if errors occur unless HDF5_Make_Ignore
# is set to ignore the error.
H5lib_settings.h: H5make_libsettings$(EXEEXT) libhdf5.settings
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) > H5lib_settings.h || \
$(RUNSERIAL) ./H5make_libsettings$(EXEEXT) > H5lib_settings.c || \
(test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
($(RM) $@ ; exit 1)