See the previous post: dmalloc: compiling and installing a static library
"dmalloc.h:484:7: error: expected identifier or..." problem is already solved in that post.
Now let's compile and install a shared library
dmalloc-5.5.2]$ ./configure --enable-shlib
dmalloc-5.5.2]$ make shlib
...
gcc -g -O2 -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1 -I. -I. -c dmalloc_argv.c -o ./dmalloc_argv.o
rm -f dmalloc
gcc -o aout dmalloc.o dmalloc_argv.o compat.o env.o \
-L.
mv aout dmalloc
rm -f libdmalloc.so libdmalloc.so.t
ld -shared --whole-archive -soname libdmalloc.so -o libdmalloc.so.t libdmalloc.a arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o chunk.o error.o malloc.o
ld: libdmalloc.a(arg_check.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
libdmalloc.a(arg_check.o): error adding symbols: Bad value
Makefile:259: recipe for target 'libdmalloc.so' failed
make: *** [libdmalloc.so] Error 1
A software engineer's technical blog about programming languages, computer graphics, problem solving, systems configuration, books and much more.
Showing posts with label allocators. Show all posts
Showing posts with label allocators. Show all posts
Saturday, January 16, 2016
Tuesday, January 12, 2016
dmalloc: compiling and installing a static library
dmalloc - http://dmalloc.com/
Installation (on Fedora 21 x86_64)
$ uname -irs
Linux 3.18.3-201.fc21.x86_64 x86_64
$ tar -zxvf dmalloc-5.5.2.tgz
dmalloc-5.5.2]$ cd dmalloc-5.5.2/
dmalloc-5.5.2]$ ./configure
configure: configurations for the dmalloc library
configure: build utilities
checking for gcc... gcc
...
checking for strtok... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating conf.h
config.status: executing dmalloc.h.2 commands
config.status: executing settings.h commands
configure:
configure: Please check-out Makefile and conf.h to make sure that
configure: sane configuration values were a result.
configure:
configure: You may want to change values in settings.h before
configure: running 'make'.
configure:
configure: To run the basic library tests, you can execute:
configure: make light
configure: or
configure: make heavy
configure:
dmalloc-5.5.2]$ make
rm -f dmalloc.h dmalloc.h.t
cat ./dmalloc.h.1 dmalloc.h.2 ./dmalloc.h.3 > dmalloc.h.t
mv dmalloc.h.t dmalloc.h
rm -f arg_check.o
gcc -g -O2 -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1 -I. -I. -c arg_check.c -o ./arg_check.o
In file included from /usr/include/string.h:634:0,
from arg_check.c:33:
dmalloc.h:484:7: error: expected identifier or ‘(’ before ‘__extension__’
char *strndup(const char *string, const DMALLOC_SIZE len);
^
Makefile:362: recipe for target 'arg_check.o' failed
make: *** [arg_check.o] Error 1
Installation (on Fedora 21 x86_64)
$ uname -irs
Linux 3.18.3-201.fc21.x86_64 x86_64
$ tar -zxvf dmalloc-5.5.2.tgz
dmalloc-5.5.2]$ cd dmalloc-5.5.2/
dmalloc-5.5.2]$ ./configure
configure: configurations for the dmalloc library
configure: build utilities
checking for gcc... gcc
...
checking for strtok... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating conf.h
config.status: executing dmalloc.h.2 commands
config.status: executing settings.h commands
configure:
configure: Please check-out Makefile and conf.h to make sure that
configure: sane configuration values were a result.
configure:
configure: You may want to change values in settings.h before
configure: running 'make'.
configure:
configure: To run the basic library tests, you can execute:
configure: make light
configure: or
configure: make heavy
configure:
dmalloc-5.5.2]$ make
rm -f dmalloc.h dmalloc.h.t
cat ./dmalloc.h.1 dmalloc.h.2 ./dmalloc.h.3 > dmalloc.h.t
mv dmalloc.h.t dmalloc.h
rm -f arg_check.o
gcc -g -O2 -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1 -I. -I. -c arg_check.c -o ./arg_check.o
In file included from /usr/include/string.h:634:0,
from arg_check.c:33:
dmalloc.h:484:7: error: expected identifier or ‘(’ before ‘__extension__’
char *strndup(const char *string, const DMALLOC_SIZE len);
^
Makefile:362: recipe for target 'arg_check.o' failed
make: *** [arg_check.o] Error 1
Subscribe to:
Posts (Atom)