Author: Alastair McKinstry <mckinstry@debian.org>
Description: Add versioned symbols to SILO library
Last-Updated: 2011-09-26
Forwarded: no

Index: silo-llnl-4.8/configure.ac
===================================================================
--- silo-llnl-4.8.orig/configure.ac	2011-08-28 16:16:32.000000000 +0100
+++ silo-llnl-4.8/configure.ac	2011-08-28 16:16:32.000000000 +0100
@@ -359,6 +359,9 @@
 dnl     Mark C. Miller, Wed Jul 21 09:31:24 PDT 2010
 dnl     Adjusted logic to support BSD releases which will NOT include
 dnl     hzip/fpzip compression features or source dirs.
+dnl
+dnl     Alastair McKinstry, Fri Aug 25 17:24:00 BST 2011
+dnl     Add version script support.
 dnl --------------------------------------------------------------------------
 
 dnl
@@ -447,6 +450,13 @@
   CONFIG_USER="$CONFIG_USER at $ORGANIZATION"
 fi
 
+vsymldflags=
+AC_MSG_CHECKING([version script options])
+AC_ARG_WITH([versioned-symbol],AC_HELP_STRING([--with-versioned-symbol],[Use versioned symbols]),[dnl
+vsymldflags="-Wl,--version-script,silo.ver -Wl,-O1"
+])
+AC_SUBST(vsymldflags)
+AC_MSG_RESULT([${vsymldflags}])
 
 dnl ----------------------------------------------------------------------
 
Index: silo-llnl-4.8/src/Makefile.am
===================================================================
--- silo-llnl-4.8.orig/src/Makefile.am	2011-08-28 16:16:32.000000000 +0100
+++ silo-llnl-4.8/src/Makefile.am	2011-08-28 16:16:32.000000000 +0100
@@ -101,7 +101,7 @@
    $(DRIVER_LIBS) \
    unknown/libsilo_unknown.la \
    filters/libsilo_filters.la 
-  libsiloh5_la_LDFLAGS = 
+  libsiloh5_la_LDFLAGS = -export-dynamic @vsymldflags@
 else
   SETTINGSFILE=libsilo.settings
   lib_LTLIBRARIES = libsilo.la
Index: silo-llnl-4.8/silo.ver
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ silo-llnl-4.8/silo.ver	2011-08-28 16:53:01.000000000 +0100
@@ -0,0 +1,333 @@
+SILOH5_0 { 
+   global:
+	DBOpenReal;
+	DBCreateReal;
+	DBInqFileReal;
+	DBAllocCompoundarray;
+	DBAllocCurve;
+	DBAllocDefvars;
+	DBAllocMultimesh;
+	DBAllocMultimeshadj;
+	DBAllocMultivar;
+	DBAllocMultimat;
+	DBAllocMultimatspecies;
+	DBAllocCsgmesh;
+	DBAllocQuadmesh;
+	DBAllocPointmesh;
+	DBAllocMeshvar;
+	DBAllocUcdmesh;
+	DBAllocCsgvar;
+	DBAllocQuadvar;
+	DBAllocUcdvar;
+	DBAllocZonelist;
+	DBAllocPHZonelist;
+	DBAllocCSGZonelist;
+	DBAllocEdgelist;
+	DBAllocFacelist;
+	DBAllocMaterial;
+	DBAllocMatspecies;
+	DBAllocNamescheme;
+	DBAllocGroupelmap;
+	DBFreeMatspecies;
+	DBFreeMaterial;
+	DBFreeFacelist;
+	DBFreeEdgelist;
+	DBFreeZonelist;
+	DBFreePHZonelist;
+	DBFreeCSGZonelist;
+	DBResetUcdvar;
+	DBFreeUcdvar;
+	DBResetQuadvar;
+	DBFreeCsgvar;
+	DBFreeQuadvar;
+	DBFreeUcdmesh;
+	DBFreeMeshvar;
+	DBFreePointmesh;
+	DBFreeQuadmesh;
+	DBFreeCsgmesh;
+	DBFreeDefvars;
+	DBFreeMultimesh;
+	DBFreeMultimeshadj;
+	DBFreeMultivar;
+	DBFreeMultimat;
+	DBFreeMultimatspecies;
+	DBFreeCompoundarray;
+	DBFreeCurve;
+	DBFreeNamescheme;
+	DBSetDataReadMask;
+	DBGetDataReadMask;
+	DBSetAllowOverwrites;
+	DBGetAllowOverwrites;
+	DBSetEnableChecksums;
+	DBGetEnableChecksums;
+	DBSetCompression;
+	DBGetCompression;
+	DBSetFriendlyHDF5Names;
+	DBGetFriendlyHDF5Names;
+	DBGuessHasFriendlyHDF5Names;
+	DBSetDeprecateWarnings;
+	DBGetDeprecateWarnings;
+	DBSetUnknownDriverPriorities;
+	DBGetUnknownDriverPriorities;
+	DBRegisterFileOptionsSet;
+	DBUnregisterFileOptionsSet;
+	DBUnregisterAllFileOptionsSets;
+	DBGrabDriver;
+	DBUngrabDriver;
+	DBGetDriverType;
+	DBGetDriverTypeFromPath;
+	DBJoinPath;
+	DBVersion;
+	DBVersionGE;
+	DBFileVersion;
+	DBFileVersionGE;
+	DBShowErrors;
+	DBErrString;
+	DBErrFunc;
+	DBErrFuncname;
+	DBErrfunc;
+	DBErrno;
+	DBErrlvl;
+	DBClose;
+	DBPause;
+	DBContinue;
+	DBInqVarExists;
+	DBForceSingle;
+	DBUninstall;
+	DBMakeOptlist;
+	DBClearOptlist;
+	DBFreeOptlist;
+	DBAddOption;
+	DBGetOption;
+	DBClearOption;
+	DBGetToc;
+	DBNewToc;
+	DBSortObjectsByOffset;
+	DBFilters;
+	DBFilterRegistration;
+	DBGetAtt;
+	DBGetObject;
+	DBChangeObject;
+	DBWriteObject;
+	DBGetComponent;
+	DBGetComponentType;
+	DBWriteComponent;
+	DBWriteSlice;
+        DBWrite;
+	DBCalcExternalFacelist;
+	DBCalcExternalFacelist2;
+	DBGetDir;
+	DBSetDir;
+	DBSetDirID;
+	DBListDir;
+	DBMkDir;
+	DBCpDir;
+	DBReadAtt;
+	DBRead;
+	DBReadVar;
+	DBReadVar1;
+	DBReadVarSlice;
+	DBMakeObject;
+	DBFreeObject;
+	DBClearObject;
+	DBAddVarComponent;
+	DBAddIntComponent;
+	DBAddFltComponent;
+	DBAddDblComponent;
+	DBAddStrComponent;
+	DBGetComponentNames;
+	DBGetCompoundarray;
+	DBGetCurve;
+	DBGetDefvars;
+	DBGetMaterial;
+	DBGetMatspecies;
+	DBGetMultimesh;
+	DBGetMultimeshadj;
+	DBGetMultivar;
+	DBGetMultimat;
+	DBGetMultimatspecies;
+	DBGetPointmesh;
+	DBGetPointvar;
+	DBGetQuadmesh;
+	DBGetQuadvar;
+	DBGetQuadvar1;
+	DBAnnotateUcdmesh;
+	DBGetUcdmesh;
+	DBGetUcdvar;
+	DBGetCsgmesh;
+	DBGetCsgvar;
+	DBGetCSGZonelist;
+	DBGetFacelist;
+	DBGetZonelist;
+	DBGetPHZonelist;
+	DBGetVar;
+	DBGetVarByteLength;
+	DBGetVarLength;
+	DBGetVarDims;
+	DBGetVarType;
+	DBInqFileHasObjects;
+	DBInqMeshname;
+	DBInqMeshtype;
+	DBInqCompoundarray;
+	DBInqVarType;
+	DBPutCompoundarray;
+	DBPutCurve;
+	DBPutDefvars;
+	DBPutFacelist;
+	DBPutMaterial;
+	DBPutMatspecies;
+	DBPutMultimesh;
+	DBPutMultimeshadj;
+	DBPutMultivar;
+	DBPutMultimat;
+	DBPutMultimatspecies;
+	DBPutPointmesh;
+	DBPutPointvar;
+	DBPutPointvar1;
+	DBPutQuadmesh;
+	DBPutQuadvar;
+	DBPutQuadvar1;
+	DBPutUcdmesh;
+	DBPutUcdsubmesh;
+	DBPutUcdvar;
+	DBPutUcdvar1;
+	DBPutZonelist;
+	DBPutZonelist2;
+	DBPutPHZonelist;
+	DBPutCsgmesh;
+	DBPutCSGZonelist;
+	DBPutCsgvar;
+	DBFreeMrgtree;
+	DBPrintMrgtree;
+	DBLinearizeMrgtree;
+	DBWalkMrgtree;
+	DBMakeMrgtree;
+	DBAddRegion;
+	DBAddRegionArray;
+	DBSetCwr;
+	DBGetCwr;
+	DBPutMrgtree;
+        DBGetMrgtree;
+	DBPutMrgvar;
+	DBGetMrgvar;
+	DBFreeMrgvar;
+	DBPutGroupelmap;
+	DBGetGroupelmap;
+	DBFreeGroupelmap;
+	DBFortranAccessPointer;
+	DBFortranAllocPointer;
+	DBFortranRemovePointer;
+	DBVariableNameValid;
+	DBFreeCompressionResources;
+	DBMakeNamescheme;
+	DBGetName;
+	DBStringArrayToStringList;
+	DBStringListToStringArray;
+	DBOpenCB;
+	DBCreateCB;
+	DBFSingleCB;
+	dbsetdirid_;
+	dbgethdfnms_;
+	dbsethdfnms_;
+	dbregfopts_;
+	dbclose_;
+	dbwrite_;
+	dbputgrplmap_;
+	dbaddrcmp_;
+	dbmkmrgtree_;
+	dbputzl_;
+	dbcreate_;
+	dbputmat_;
+	dbsetcwr_;
+	dbpmrgv_;
+	dbmkdir_;
+	dbaddiopt_;
+	dbgetqv1_;
+	dbgetdepwarn_;
+	dbputmmat_;
+	dbgetovrwrt_;
+	dbsetovrwrt_;
+	dbgetca_;
+	dbputpm_;
+	dbsetcksums_;
+	dbinqca_;
+	dbputfl_;
+	dbinqfile_;
+	dbcalcfl_;
+	dbputca_;
+	dbaddropt_;
+	dbfreemrgtree_;
+	dbputcsgv_;
+	dbputqm_;
+	dbfreeobject_;
+	dbfgetca_;
+	dbwriteslice_;
+	dberrno_;
+	dbputmsp_;
+	dbaddccmp_;
+	dbinqlen_;
+	dbaddregion_;
+	dbgetcksums_;
+	dbputmmesh_;
+	db_get_used_file_options_;
+	dbaddcaopt_;
+	dbsetcompress_;
+	dbputuv1_;
+	dbputcsgzl_;
+	dbputzl2_;
+	dbsetdepwarn_;
+	dbmkobject_;
+	dbputqv1_;
+	dbgetcurve_;
+	dbputpv1_;
+	dbset2dstrlen_;
+	dbmkoptlist_;
+	dbputum_;
+	dbaddcopt_;
+	dbputmrgtree_;
+	dbputcsgm_;
+	dbgetcompress_;
+	dbopen_;
+	dbrdvarslice_;
+	dbsetdir_;
+	dbputmvar_;
+	dbmkptr_;
+	dbaddregiona_;
+	dbputqv_;
+	dbaddicmp_;
+	dbrdvar_;	
+	dbrmptr_;
+	dbfreeoptlist_;
+	dbunregafopts_;
+	dbget2dstrlen_;
+	dbadddopt_;
+	dbputdefvars_;
+	dbwrtfl_;
+	dbunregfopts_;
+	dbshowerrors_;
+	dbputcurve_;
+	DBDebugAPI;
+	db_errno; 
+	db_errfunc;
+	safe_strdup;  /* Should this really be here? its neede by browser, etc. */
+	Silo_version*;
+
+	/* filters */
+ 	f_debug_Open;
+	f_ale3d_Open;
+
+        lite_PD_close;
+	lite_PD_create;
+	lite_PD_defstr;
+	lite_PD_open;
+	lite_PD_read;
+	lite_PD_write;
+	lite_PD_write_alt;
+	lite_PD_mkdir;
+	lite_PD_cd;
+	lite_SC_alloc;
+	lite_SC_free;
+
+    local:
+	*;
+};
