| 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 <danirus@tol-project.org> |
| |
| 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 ./$@ |