| Without -fPIC, dmalloc does not build with: |
| |
| /home/test/mips-4.4/bin/mips-linux-gnu-ld --sysroot=/home/test/outputs/test-35/staging -shared --whole-archive -soname libdmallocxx.so -o libdmallocxx.so.t libdmallocxx.a |
| /home/test/mips-4.4/bin/mips-linux-gnu-ld: libdmalloc.a(arg_check.o): relocation R_MIPS_HI16 against `_dmalloc_flags' can not be used when making a shared object; recompile with -fPIC |
| libdmalloc.a(arg_check.o): could not read symbols: Bad value |
| |
| This patch, taken from |
| http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/dmalloc/files/dmalloc-5.2.4-fpic.patch?hideattic=0&view=markup, |
| fixes the problem by passing the -fPIC flag. It isn't passed through |
| the ./configure environment in order to not clutter the configuration |
| cache with incorrect values. |
| |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| --- |
| Makefile.in | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| --- a/Makefile.in |
| +++ b/Makefile.in |
| @@ -318,17 +318,17 @@ |
| # special _th versions of objects with the LOCK_THREADS variable defined to 1 |
| chunk_th.o : $(srcdir)/chunk.c |
| rm -f $@ |
| - $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ |
| + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ |
| -c $(srcdir)/chunk.c -o ./$@ |
| |
| error_th.o : $(srcdir)/error.c |
| rm -f $@ |
| - $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ |
| + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ |
| -c $(srcdir)/error.c -o ./$@ |
| |
| malloc_th.o : $(srcdir)/malloc.c |
| rm -f $@ |
| - $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ |
| + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ |
| -c $(srcdir)/malloc.c -o ./$@ |
| |
| tests : $(TEST) $(TEST_FC) |
| @@ -360,7 +360,7 @@ |
| |
| .c.o : |
| rm -f $@ |
| - $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ |
| + $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ |
| |
| # |
| # .cc.o auto-target doesn't work on some systems. |
| @@ -368,7 +368,7 @@ |
| # |
| dmallocc.o : $(srcdir)/dmallocc.cc |
| rm -f $@ |
| - $(CXX) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \ |
| + $(CXX) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \ |
| -o ./$@ |
| |
| # |