Import buildroot 2016.02.01
This commit is contained in:
58
firmware/buildroot/package/dmalloc/0001-add-fpic.patch
Normal file
58
firmware/buildroot/package/dmalloc/0001-add-fpic.patch
Normal file
@@ -0,0 +1,58 @@
|
||||
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 ./$@
|
||||
|
||||
#
|
||||
43
firmware/buildroot/package/dmalloc/0002-mips.patch
Normal file
43
firmware/buildroot/package/dmalloc/0002-mips.patch
Normal file
@@ -0,0 +1,43 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -7107,7 +7107,7 @@
|
||||
echo $ECHO_N "checking return.h macros work... $ECHO_C" >&6
|
||||
if test "$cross_compiling" = yes; then
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
-#define RETURN_MACROS_WORK 0
|
||||
+#define RETURN_MACROS_WORK 1
|
||||
_ACEOF
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
--- a/return.h
|
||||
+++ b/return.h
|
||||
@@ -106,26 +106,16 @@
|
||||
/*************************************/
|
||||
|
||||
/*
|
||||
- * For DEC Mips machines running Ultrix
|
||||
+ * For Mips machines running Linux
|
||||
*/
|
||||
#if __mips
|
||||
|
||||
/*
|
||||
- * I have no idea how to get inline assembly with the default cc.
|
||||
- * Anyone know how?
|
||||
- */
|
||||
-
|
||||
-#if 0
|
||||
-
|
||||
-/*
|
||||
* NOTE: we assume here that file is global.
|
||||
*
|
||||
- * $31 is the frame pointer. $2 looks to be the return address but maybe
|
||||
- * not consistently.
|
||||
+ * $31 is the return address.
|
||||
*/
|
||||
-#define GET_RET_ADDR(file) asm("sw $2, file")
|
||||
-
|
||||
-#endif
|
||||
+#define GET_RET_ADDR(file) asm("sw $31, %0" : "=m" (file))
|
||||
|
||||
#endif /* __mips */
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
Fix parallel build issue
|
||||
|
||||
Missing dmallocc.o <- dmalloc.h dependency may break parallel builds.
|
||||
dmalloc.h is generated,and may not be around by the time gcc starts
|
||||
parsing dmallocc.cc.
|
||||
|
||||
Signed-off-by: Alex Suykov <alex.suykov@gmail.com>
|
||||
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -401,6 +401,7 @@
|
||||
compat.o: compat.c conf.h settings.h dmalloc.h compat.h dmalloc_loc.h
|
||||
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
|
||||
+dmallocc.o: dmallocc.cc dmalloc.h return.h conf.h settings.h
|
||||
dmalloc_argv.o: dmalloc_argv.c conf.h settings.h dmalloc_argv.h \
|
||||
dmalloc_argv_loc.h compat.h
|
||||
dmalloc_fc_t.o: dmalloc_fc_t.c conf.h settings.h dmalloc.h dmalloc_argv.h \
|
||||
46
firmware/buildroot/package/dmalloc/0004-fix-shlibs.patch
Normal file
46
firmware/buildroot/package/dmalloc/0004-fix-shlibs.patch
Normal file
@@ -0,0 +1,46 @@
|
||||
Fix shared library rules
|
||||
|
||||
dmalloc uses ld -shared --whole-archive -o lib.so lib.a,
|
||||
but for some reason lists regular objects in addition
|
||||
to the archive, ending up with two copies of each symbol.
|
||||
|
||||
Signed-off-by: Alex Suykov <alex.suykov@gmail.com>
|
||||
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -257,7 +257,7 @@ shlib : $(BUILD_SL)
|
||||
# via: http://256.com/gray/email.html
|
||||
$(LIB_SL) : $(LIBRARY)
|
||||
rm -f $@ $@.t
|
||||
- @shlinkargs@ $(LIBRARY) $(OBJS) $(NORMAL_OBJS)
|
||||
+ @shlinkargs@ $(LIBRARY)
|
||||
mv $@.t $@
|
||||
|
||||
$(LIBRARY) : $(OBJS) $(NORMAL_OBJS)
|
||||
@@ -270,7 +270,7 @@ $(LIB_TH) : $(OBJS) $(THREAD_OBJS)
|
||||
|
||||
$(LIB_TH_SL) : $(LIB_TH)
|
||||
rm -f $@ $@.t
|
||||
- @shlinkargs@ $(LIB_TH) $(OBJS) $(THREAD_OBJS)
|
||||
+ @shlinkargs@ $(LIB_TH)
|
||||
mv $@.t $@
|
||||
|
||||
$(LIB_CXX) : $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS)
|
||||
@@ -279,7 +279,7 @@ $(LIB_CXX) : $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS)
|
||||
|
||||
$(LIB_CXX_SL) : $(LIB_CXX)
|
||||
rm -f $@ $@.t
|
||||
- @shlinkargs@ $(LIB_CXX) $(OBJS) $(NORMAL_OBJS) $(CXX_OBJS)
|
||||
+ @shlinkargs@ $(LIB_CXX)
|
||||
mv $@.t $@
|
||||
|
||||
$(LIB_TH_CXX) : $(OBJS) $(THREAD_OBJS) $(CXX_OBJS)
|
||||
@@ -288,7 +288,7 @@ $(LIB_TH_CXX) : $(OBJS) $(THREAD_OBJS) $(CXX_OBJS)
|
||||
|
||||
$(LIB_TH_CXX_SL) : $(LIB_TH_CXX)
|
||||
rm -f $@ $@.t
|
||||
- @shlinkargs@ $(LIB_TH_CXX) $(OBJS) $(THREAD_OBJS) $(CXX_OBJS)
|
||||
+ @shlinkargs@ $(LIB_TH_CXX)
|
||||
mv $@.t $@
|
||||
|
||||
threadssl : $(LIB_TH_SL)
|
||||
13
firmware/buildroot/package/dmalloc/Config.in
Normal file
13
firmware/buildroot/package/dmalloc/Config.in
Normal file
@@ -0,0 +1,13 @@
|
||||
config BR2_PACKAGE_DMALLOC
|
||||
bool "dmalloc"
|
||||
# On some packages, Microblaze gcc has issues when debugging
|
||||
# symbols are enabled: "Error: operation combines symbols in
|
||||
# different segments".
|
||||
depends on !(BR2_microblaze && BR2_ENABLE_DEBUG)
|
||||
help
|
||||
A debug memory allocation library which is a drop in replacement for
|
||||
the system's malloc, realloc, calloc, free and other memory management
|
||||
routines while providing powerful debugging facilities configurable at
|
||||
runtime.
|
||||
|
||||
http://dmalloc.com/
|
||||
2
firmware/buildroot/package/dmalloc/dmalloc.hash
Normal file
2
firmware/buildroot/package/dmalloc/dmalloc.hash
Normal file
@@ -0,0 +1,2 @@
|
||||
# Locally computed:
|
||||
sha256 d3be5c6eec24950cb3bd67dbfbcdf036f1278fae5fd78655ef8cdf9e911e428a dmalloc-5.5.2.tgz
|
||||
64
firmware/buildroot/package/dmalloc/dmalloc.mk
Normal file
64
firmware/buildroot/package/dmalloc/dmalloc.mk
Normal file
@@ -0,0 +1,64 @@
|
||||
################################################################################
|
||||
#
|
||||
# dmalloc
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DMALLOC_VERSION = 5.5.2
|
||||
DMALLOC_SOURCE = dmalloc-$(DMALLOC_VERSION).tgz
|
||||
DMALLOC_SITE = http://dmalloc.com/releases
|
||||
|
||||
DMALLOC_LICENSE = MIT-like
|
||||
# license is in each file, dmalloc.h.1 is the smallest one
|
||||
DMALLOC_LICENSE_FILES = dmalloc.h.1
|
||||
|
||||
DMALLOC_INSTALL_STAGING = YES
|
||||
DMALLOC_CONF_OPTS = --enable-shlib
|
||||
DMALLOC_CFLAGS = $(TARGET_CFLAGS)
|
||||
|
||||
ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
|
||||
DMALLOC_CONF_OPTS += --enable-cxx
|
||||
else
|
||||
DMALLOC_CONF_OPTS += --disable-cxx
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
|
||||
DMALLOC_CONF_OPTS += --enable-threads
|
||||
else
|
||||
DMALLOC_CONF_OPTS += --disable-threads
|
||||
endif
|
||||
|
||||
# dmalloc has some assembly function that are not present in thumb1 mode:
|
||||
# Error: lo register required -- `str lr,[sp,#4]'
|
||||
# so, we desactivate thumb mode
|
||||
ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
|
||||
DMALLOC_CFLAGS += -marm
|
||||
endif
|
||||
|
||||
DMALLOC_CONF_ENV = CFLAGS="$(DMALLOC_CFLAGS)"
|
||||
|
||||
define DMALLOC_POST_PATCH
|
||||
$(SED) 's/^ac_cv_page_size=0$$/ac_cv_page_size=12/' $(@D)/configure
|
||||
$(SED) 's/(ld -/($${LD-ld} -/' $(@D)/configure
|
||||
$(SED) 's/'\''ld -/"$${LD-ld}"'\'' -/' $(@D)/configure
|
||||
$(SED) 's/ar cr/$$(AR) cr/' $(@D)/Makefile.in
|
||||
endef
|
||||
|
||||
DMALLOC_POST_PATCH_HOOKS += DMALLOC_POST_PATCH
|
||||
|
||||
# both DESTDIR and PREFIX are ignored..
|
||||
define DMALLOC_INSTALL_STAGING_CMDS
|
||||
$(MAKE) includedir="$(STAGING_DIR)/usr/include" \
|
||||
bindir="$(STAGING_DIR)/usr/bin" \
|
||||
libdir="$(STAGING_DIR)/usr/lib" \
|
||||
shlibdir="$(STAGING_DIR)/usr/lib" \
|
||||
infodir="$(STAGING_DIR)/usr/share/info/" \
|
||||
-C $(@D) install
|
||||
endef
|
||||
|
||||
define DMALLOC_INSTALL_TARGET_CMDS
|
||||
cp -dpf $(STAGING_DIR)/usr/lib/libdmalloc*.so $(TARGET_DIR)/usr/lib
|
||||
cp -dpf $(STAGING_DIR)/usr/bin/dmalloc $(TARGET_DIR)/usr/bin/dmalloc
|
||||
endef
|
||||
|
||||
$(eval $(autotools-package))
|
||||
Reference in New Issue
Block a user