diff --git a/configure.ac b/configure.ac index 38080b9c4778800240adeaa253060f6c0a6f7510..1ac71bea3e27d553daa150b093c2a313c6f73b95 100755 --- a/configure.ac +++ b/configure.ac @@ -47,8 +47,8 @@ fi prefix="$prefix/openfpm_devices" echo "Installation dir is: $prefix" -AC_PROG_RANLIB -AM_PROG_AR +LT_INIT +AC_SUBST([LIBTOOL_DEPS]) # Checks for programs. AC_PROG_CXX diff --git a/src/Makefile.am b/src/Makefile.am index b4ce638c4196f9ac4c5ac28d312af24e2db5f43c..5ce956d59d613dc1da85a457499b7e5f4a0354d0 100755 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,6 +7,10 @@ endif LINKLIBS = $(PTHREAD_LIBS) $(OPT_LIBS) $(BOOST_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LIB) $(CUDA_LIBS) $(BOOST_THREAD_LIB) +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +libtool: $(LIBTOOL_DEPS) + $(SHELL) ./config.status libtool + noinst_PROGRAMS = mem mem_SOURCES = main.cpp memory/HeapMemory.cpp $(CUDA_SOURCES) Memleak_check.cpp mem_CXXFLAGS = $(INCLUDES_PATH) $(BOOST_CPPFLAGS) -I/usr/local/include @@ -22,6 +26,16 @@ libofpmmemory_se2_a_SOURCES = memory/HeapMemory.cpp $(CUDA_SOURCES) memory/PtrMe libofpmmemory_se2_a_CXXFLAGS = $(INCLUDES_PATH) $(BOOST_CPPFLAGS) -I/usr/local/include -DSE_CLASS2 libofpmmemory_se2_a_CFLAGS = +lib_LTLIBRARIES = libofpmmemory.la libofpmmemory_se2.la +libofpmmemory_la_SOURCES = memory/HeapMemory.cpp $(CUDA_SOURCES) memory/PtrMemory.cpp Memleak_check.cpp +libofpmmemory_la_CXXFLAGS = $(INCLUDES_PATH) $(BOOST_CPPFLAGS) -I/usr/local/include +libofpmmemory_la_CFLAGS = + +libofpmmemory_se2_la_SOURCES = memory/HeapMemory.cpp $(CUDA_SOURCES) memory/PtrMemory.cpp Memleak_check.cpp +libofpmmemory_se2_la_CXXFLAGS = $(INCLUDES_PATH) $(BOOST_CPPFLAGS) -I/usr/local/include -DSE_CLASS2 +libofpmmemory_se2_la_CFLAGS = + + nobase_include_HEADERS = memory/ExtPreAlloc.hpp memory/BHeapMemory.hpp memory/HeapMemory.hpp memory/memory.hpp memory/PtrMemory.hpp \ Memleak_check.hpp util/print_stack.hpp ptr_info.hpp \ util/se_util.hpp diff --git a/src/memory/ExtPreAlloc.hpp b/src/memory/ExtPreAlloc.hpp index edc5cf2a9e039bf745368174359d62c8e5c6aaa9..5bcfc8fc18ef879bb0b437212cddc465a362b1b1 100644 --- a/src/memory/ExtPreAlloc.hpp +++ b/src/memory/ExtPreAlloc.hpp @@ -8,6 +8,8 @@ #define EXTPREALLOC_HPP_ #include <stddef.h> +#include "memory.hpp" +#include <iostream> /*! Preallocated memory sequence * diff --git a/src/memory/HeapMemory.cpp b/src/memory/HeapMemory.cpp index 0d9e5f82f23179a0712e7518fe2c5af7e755511f..aac145355ca88fbf39ac5f5f94ecfef2d5ea3590 100644 --- a/src/memory/HeapMemory.cpp +++ b/src/memory/HeapMemory.cpp @@ -11,6 +11,8 @@ #include <iostream> #include <cstdint> +static const int extra_pad = 512; + // If debugging mode include memory leak check #ifdef SE_CLASS2 #include "Memleak_check.hpp" @@ -26,7 +28,7 @@ bool HeapMemory::allocate(size_t sz) { //! Allocate the device memory if (dm == NULL) - dmOrig = new byte[sz+alignement]; + dmOrig = new byte[sz+alignement+extra_pad]; else std::cerr << __FILE__ << ":" << __LINE__ << " error memory already allocated\n"; @@ -180,7 +182,7 @@ bool HeapMemory::resize(size_t sz) //! Create a new buffer if sz is bigger than the actual size byte * tdm; byte * tdmOrig; - tdmOrig = new byte[sz+alignement]; + tdmOrig = new byte[sz+alignement+extra_pad]; #ifdef SE_CLASS2 check_new(tdmOrig,sz+alignement,HEAPMEMORY_EVENT,0); #endif