Description: Changes for building shared libraries This patch includes changes for building shared libraries with PIC object files and the correct soname and libname. Author: Daniel Rus Morales Index: dmalloc-5.5.2/Makefile.in =================================================================== --- dmalloc-5.5.2.orig/Makefile.in +++ dmalloc-5.5.2/Makefile.in @@ -41,7 +41,7 @@ LIBRARY = lib$(MODULE).a # thread version of the library LIB_TH = lib$(MODULE)th.a -LIB_TH_SL = lib$(MODULE)th.@shlibext@ +LIB_TH_SL = lib$(MODULE)th.@shlibext@.5.5.2 @TH_ON@BUILD_ALL_1 = threads @TH_ON@INSTALL_LIB_1 = installth @SL_ON@BUILD_THREADS_1 = $(LIB_TH_SL) @@ -50,8 +50,8 @@ LIB_TH_SL = lib$(MODULE)th.@shlibext@ @TH_ON@@SL_ON@INSTALL_LIB_2 = installthsl # C++ version of the library -LIB_CXX = lib$(MODULE)xx.a -LIB_CXX_SL = lib$(MODULE)xx.@shlibext@ +LIB_CXX = lib$(MODULE)cxx.a +LIB_CXX_SL = lib$(MODULE)cxx.@shlibext@.5.5.2 @CXX_ON@BUILD_ALL_3 = $(LIB_CXX) @CXX_ON@INSTALL_LIB_3 = installcxx @SL_ON@BUILD_CXX_3 = $(LIB_CXX_SL) @@ -61,7 +61,7 @@ LIB_CXX_SL = lib$(MODULE)xx.@shlibext@ # threads + C++ LIB_TH_CXX = lib$(MODULE)thcxx.a -LIB_TH_CXX_SL = lib$(MODULE)thcxx.@shlibext@ +LIB_TH_CXX_SL = lib$(MODULE)thcxx.@shlibext@.5.5.2 @TH_ON@@CXX_ON@BUILD_ALL_5 = $(LIB_TH_CXX) @TH_ON@@CXX_ON@INSTALL_LIB_5 = installthcxx @TH_ON@BUILD_CXX_5 = $(LIB_TH_CXX) @@ -76,7 +76,7 @@ LIB_TH_CXX_SL = lib$(MODULE)thcxx.@shlib @CXX_ON@@SL_ON@INSTALL_THREADS_6 = installthcxxsl # shared versions of the libraries -LIB_SL = lib$(MODULE).@shlibext@ +LIB_SL = lib$(MODULE).@shlibext@.5.5.2 @SL_ON@BUILD_ALL_7 = $(LIB_SL) @SL_ON@INSTALL_LIB_7 = installsl @SL_ON@BUILD_TH_CXX_7 = $(LIB_TH_CXX_SL) @@ -145,9 +145,13 @@ SHELL = /bin/sh HFLS = dmalloc.h OBJS = arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o +OBJS_SL = arg_check_sl.o compat_sl.o dmalloc_rand_sl.o dmalloc_tab_sl.o env_sl.o heap_sl.o NORMAL_OBJS = chunk.o error.o malloc.o +NORMAL_OBJS_SL = chunk_sl.o error_sl.o malloc_sl.o THREAD_OBJS = chunk_th.o error_th.o malloc_th.o +THREAD_OBJS_SL = chunk_th_sl.o error_th_sl.o malloc_th_sl.o CXX_OBJS = dmallocc.o +CXX_OBJS_SL = dmallocc_sl.o CFLAGS = $(CCFLAGS) TEST = $(MODULE)_t @@ -160,9 +164,9 @@ all : $(BUILD_ALL) clean : rm -f $(A_OUT) core *.o *.t - rm -f $(LIBRARY) $(LIB_TH) $(LIB_CXX) $(LIB_TH_CXX) $(TEST) $(TEST_FC) - rm -f $(LIB_TH_SL) $(LIB_CXX_SL) $(LIB_TH_CXX_SL) $(LIB_SL) + rm -f $(TEST) $(TEST_FC) rm -f $(UTIL) dmalloc.h + rm -f lib$(MODULE)*.* realclean : clean @@ -181,43 +185,43 @@ installincs : $(HFLS) $(INSTALL_DATA) $(HFLS) $(includedir) installthsl : $(LIB_TH_SL) - $(srcdir)/mkinstalldirs $(libdir) - $(INSTALL_PROGRAM) $(LIB_TH_SL) $(libdir) + $(srcdir)/mkinstalldirs $(shlibdir) + $(INSTALL) $(LIB_TH_SL) $(shlibdir) installth : $(INSTALL_THREADS) $(srcdir)/mkinstalldirs $(libdir) - $(INSTALL_PROGRAM) $(LIB_TH) $(libdir) + $(INSTALL) $(LIB_TH) $(libdir) @CXX_OFF@ @echo "Enter 'make installthcxx' to install the threaded C++ library" @SL_OFF@ @echo "Enter 'make installthsl' to install the threaded shared-library" installthcxxsl : $(LIB_TH_CXX_SL) $(srcdir)/mkinstalldirs $(shlibdir) - $(INSTALL_PROGRAM) $(LIB_TH_CXX_SL) $(shlibdir) + $(INSTALL) $(LIB_TH_CXX_SL) $(shlibdir) installthcxx : $(INSTALL_TH_CXX) $(srcdir)/mkinstalldirs $(libdir) - $(INSTALL_PROGRAM) $(LIB_TH_CXX) $(libdir) + $(INSTALL) $(LIB_TH_CXX) $(libdir) @SL_OFF@ @echo "Enter 'make installthcxxsl' to install the threaded C++ shared-library" installcxxsl : $(LIB_CXX_SL) - $(srcdir)/mkinstalldirs $(libdir) - $(INSTALL_PROGRAM) $(LIB_CXX_SL) $(libdir) + $(srcdir)/mkinstalldirs $(shlibdir) + $(INSTALL) $(LIB_CXX_SL) $(shlibdir) installcxx : $(INSTALL_CXX) $(srcdir)/mkinstalldirs $(libdir) - $(INSTALL_PROGRAM) $(LIB_CXX) $(libdir) + $(INSTALL) $(LIB_CXX) $(libdir) @TH_OFF@ @echo "Enter 'make installthcxx' to install the threaded C++ library" @SL_OFF@ @echo "Enter 'make installcxxsl' to install the C++ shared-library" installsl : $(LIB_SL) $(srcdir)/mkinstalldirs $(shlibdir) - $(INSTALL_PROGRAM) $(LIB_SL) $(shlibdir) + $(INSTALL) $(LIB_SL) $(shlibdir) @CXX_OFF@ @echo "Enter 'make installcxxsl' to install the C++ shared-library" @TH_OFF@ @echo "Enter 'make installthsl' to install thread shared-library" installlib : $(INSTALL_LIB) $(srcdir)/mkinstalldirs $(libdir) - $(INSTALL_PROGRAM) $(LIBRARY) $(libdir) + $(INSTALL) $(LIBRARY) $(libdir) @RANLIB@ $(libdir)/$(LIBRARY) @SL_OFF@ @echo "Enter 'make installsl' to install $(LIB_SL) in $(shlibdir)" @CXX_OFF@ @echo "Enter 'make installcxx' to install the C++ library" @@ -255,10 +259,8 @@ shlib : $(BUILD_SL) # NOTE: you may have to edit the configure.ac script to get this to # work on your operating system. Please send feedback to the author # via: http://256.com/gray/email.html -$(LIB_SL) : $(LIBRARY) - rm -f $@ $@.t - @shlinkargs@ $(LIBRARY) $(OBJS) $(NORMAL_OBJS) - mv $@.t $@ +$(LIB_SL) : $(OBJS_SL) $(NORMAL_OBJS_SL) + $(CC) -shared -Wl,-soname,libdmalloc.so.5 -o $@ $(OBJS_SL) $(NORMAL_OBJS_SL) $(LIBRARY) : $(OBJS) $(NORMAL_OBJS) ar cr $@ $? @@ -268,32 +270,26 @@ $(LIB_TH) : $(OBJS) $(THREAD_OBJS) ar cr $@ $? @RANLIB@ $@ -$(LIB_TH_SL) : $(LIB_TH) - rm -f $@ $@.t - @shlinkargs@ $(LIB_TH) $(OBJS) $(THREAD_OBJS) - mv $@.t $@ +$(LIB_TH_SL) : $(OBJS_SL) $(THREAD_OBJS_SL) + $(CC) -shared -Wl,-soname,libdmallocth.so.5 -o $@ $(OBJS_SL) $(THREAD_OBJS_SL) $(LIB_CXX) : $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS) ar cr $@ $? @RANLIB@ $@ -$(LIB_CXX_SL) : $(LIB_CXX) - rm -f $@ $@.t - @shlinkargs@ $(LIB_CXX) $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS) - mv $@.t $@ +$(LIB_CXX_SL) : $(OBJS_SL) $(NORMAL_OBJS_SL) $(CXX_OBJS_SL) + $(CC) -shared -Wl,-soname,libdmalloccxx.so.5 -o $@ $(OBJS_SL) $(NORMAL_OBJS_SL) $(CXX_OBJS_SL) $(LIB_TH_CXX) : $(OBJS) $(THREAD_OBJS) $(CXX_OBJS) ar cr $@ $? @RANLIB@ $@ -$(LIB_TH_CXX_SL) : $(LIB_TH_CXX) - rm -f $@ $@.t - @shlinkargs@ $(LIB_TH_CXX) $(OBJS) $(THREAD_OBJS) $(CXX_OBJS) - mv $@.t $@ +$(LIB_TH_CXX_SL) : $(OBJS_SL) $(THREAD_OBJS_SL) $(CXX_OBJS_SL) + $(CC) -shared -Wl,-soname,libdmallocthcxx.so.5 -o $@ $(OBJS_SL) $(THREAD_OBJS_SL) $(CXX_OBJS_SL) -threadssl : $(LIB_TH_SL) +threadssl : $(LIB_TH_SL)$(ver) -threadscxxsl : $(LIB_TH_CXX_SL) +threadscxxsl : $(LIB_TH_CXX_SL)$(ver) threadscxx : $(BUILD_TH_CXX) @SL_OFF@ @echo "Enter 'make threadscxxsl' to build the threaded C++ shared-library" @@ -302,7 +298,7 @@ threads : $(BUILD_THREADS) @CXX_OFF@ @echo "Enter 'make threadscxx' to build the threaded C++ library" @SL_OFF@ @echo "Enter 'make threadssl' to build the threaded shared library" -cxxsl : $(LIB_CXX_SL) +cxxsl : $(LIB_CXX_SL)$(ver) cxx : $(BUILD_CXX) @SL_OFF@ @echo "Enter 'make cxxsl' to build the cxx shared library" @@ -371,6 +367,11 @@ dmallocc.o : $(srcdir)/dmallocc.cc $(CXX) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \ -o ./$@ +dmallocc_sl.o : $(srcdir)/dmallocc.cc + rm -f $@ + $(CXX) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \ + -o ./$@ + # # auto configure settings - uncomment if you are doing configure # development on the library @@ -395,38 +396,109 @@ dmallocc.o : $(srcdir)/dmallocc.cc arg_check.o: arg_check.c conf.h settings.h dmalloc.h chunk.h debug_tok.h \ dmalloc_loc.h error.h arg_check.h +arg_check_sl.o: arg_check.c conf.h settings.h dmalloc.h chunk.h debug_tok.h \ + dmalloc_loc.h error.h arg_check.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ chunk.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \ dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \ error_val.h heap.h +chunk_sl.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \ + dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \ + error_val.h heap.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ compat.o: compat.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h +compat_sl.o: compat.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ dmalloc.o: dmalloc.c conf.h settings.h dmalloc_argv.h dmalloc.h compat.h \ debug_tok.h dmalloc_loc.h env.h error_val.h version.h +dmalloc_sl.o: dmalloc.c conf.h settings.h dmalloc_argv.h dmalloc.h compat.h \ + debug_tok.h dmalloc_loc.h env.h error_val.h version.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ dmalloc_argv.o: dmalloc_argv.c conf.h settings.h dmalloc_argv.h \ dmalloc_argv_loc.h compat.h +dmalloc_argv_sl.o: dmalloc_argv.c conf.h settings.h dmalloc_argv.h \ + dmalloc_argv_loc.h compat.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ dmalloc_fc_t.o: dmalloc_fc_t.c conf.h settings.h dmalloc.h dmalloc_argv.h \ dmalloc_rand.h debug_tok.h dmalloc_loc.h error_val.h +dmalloc_fc_t_sl.o: dmalloc_fc_t.c conf.h settings.h dmalloc.h dmalloc_argv.h \ + dmalloc_rand.h debug_tok.h dmalloc_loc.h error_val.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ dmalloc_rand.o: dmalloc_rand.c dmalloc_rand.h +dmalloc_rand_sl.o: dmalloc_rand.c dmalloc_rand.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ dmalloc_t.o: dmalloc_t.c conf.h settings.h compat.h dmalloc.h \ dmalloc_argv.h dmalloc_rand.h arg_check.h debug_tok.h dmalloc_loc.h \ error_val.h heap.h +dmalloc_t_sl.o: dmalloc_t.c conf.h settings.h compat.h dmalloc.h \ + dmalloc_argv.h dmalloc_rand.h arg_check.h debug_tok.h dmalloc_loc.h \ + error_val.h heap.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ dmalloc_tab.o: dmalloc_tab.c conf.h settings.h chunk.h compat.h dmalloc.h \ dmalloc_loc.h error.h error_val.h dmalloc_tab.h dmalloc_tab_loc.h +dmalloc_tab_sl.o: dmalloc_tab.c conf.h settings.h chunk.h compat.h dmalloc.h \ + dmalloc_loc.h error.h error_val.h dmalloc_tab.h dmalloc_tab_loc.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ env.o: env.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h \ debug_tok.h env.h error.h +env_sl.o: env.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h \ + debug_tok.h env.h error.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ error.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \ dmalloc_loc.h env.h error.h error_val.h version.h +error_sl.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \ + dmalloc_loc.h env.h error.h error_val.h version.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ heap.o: heap.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \ dmalloc_loc.h error.h error_val.h heap.h +heap_sl.o: heap.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \ + dmalloc_loc.h error.h error_val.h heap.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ malloc.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \ debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \ malloc_funcs.h return.h +malloc_sl.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \ + debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \ + malloc_funcs.h return.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ protect.o: protect.c conf.h settings.h dmalloc.h dmalloc_loc.h error.h \ heap.h protect.h +protect_sl.o: protect.c conf.h settings.h dmalloc.h dmalloc_loc.h error.h \ + heap.h protect.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ chunk_th.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \ dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \ error_val.h heap.h +chunk_th_sl.o: chunk.c conf.h settings.h dmalloc.h chunk.h chunk_loc.h \ + dmalloc_loc.h compat.h debug_tok.h dmalloc_rand.h dmalloc_tab.h error.h \ + error_val.h heap.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ error_th.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \ dmalloc_loc.h env.h error.h error_val.h version.h +error_th_sl.o: error.c conf.h settings.h dmalloc.h chunk.h compat.h debug_tok.h \ + dmalloc_loc.h env.h error.h error_val.h version.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ malloc_th.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \ debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \ malloc_funcs.h return.h +malloc_th_sl.o: malloc.c conf.h settings.h dmalloc.h chunk.h compat.h \ + debug_tok.h dmalloc_loc.h env.h error.h error_val.h heap.h \ + malloc_funcs.h return.h + rm -f $@ + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@