mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH] DUMA: Add new package
@ 2012-05-28 12:42 Bart vdr. Meulen
  2012-05-30 16:14 ` Michael Olbrich
  0 siblings, 1 reply; 2+ messages in thread
From: Bart vdr. Meulen @ 2012-05-28 12:42 UTC (permalink / raw)
  To: ptxdist

From: "Bart vdr. Meulen" <bartvdrmeulen@gmail.com>

DUMA is a memory debugging library. It can detect memory leaks
and buffer overruns (or underruns) in a malloc() / new memory buffer

Added patch for cross compilation and predefining some calues
which can get the incorrect value when building for 32bit target
on 64 bit host

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
---
 patches/duma_2_5_15/100-cross-compilation.patch |  115 +++++++++++++++++++++++
 patches/duma_2_5_15/series                      |    1 +
 rules/duma.in                                   |   10 ++
 rules/duma.make                                 |   79 ++++++++++++++++
 4 files changed, 205 insertions(+)
 create mode 100644 patches/duma_2_5_15/100-cross-compilation.patch
 create mode 100644 patches/duma_2_5_15/series
 create mode 100644 rules/duma.in
 create mode 100644 rules/duma.make

diff --git a/patches/duma_2_5_15/100-cross-compilation.patch b/patches/duma_2_5_15/100-cross-compilation.patch
new file mode 100644
index 0000000..01fce53
--- /dev/null
+++ b/patches/duma_2_5_15/100-cross-compilation.patch
@@ -0,0 +1,115 @@
+---
+ GNUmakefile  |   18 +++++++++++++++---
+ createconf.c |   22 ++++++++++++++++++++++
+ 2 files changed, 37 insertions(+), 3 deletions(-)
+
+Index: duma_2_5_15/GNUmakefile
+===================================================================
+--- duma_2_5_15.orig/GNUmakefile
++++ duma_2_5_15/GNUmakefile
+@@ -94,6 +94,7 @@ DUMA_SO_OPTIONS=$(PIC) -DDUMA_SO_LIBRARY
+ 
+ # some defaults:
+ CC=gcc
++CC_FOR_BUILD=$(CC)
+ CXX=g++
+ AR=ar
+ RANLIB=ranlib
+@@ -240,7 +241,18 @@ ifndef BSWITCH
+   EXEPOSTFIX=
+ endif
+ 
+-
++ifdef DUMA_PAGE_SIZE
++  DUMA_OPTIONS+= -DDUMA_PAGE_SIZE=$(DUMA_PAGE_SIZE)
++endif
++ifdef DUMA_MIN_ALIGNMENT
++  DUMA_OPTIONS+= -DDUMA_MIN_ALIGNMENT=$(DUMA_MIN_ALIGNMENT)
++endif
++ifdef DUMA_ADDR
++  DUMA_OPTIONS += -DDUMA_ADDR="\"$(DUMA_ADDR)\""
++endif
++ifdef DUMA_SIZE
++  DUMA_OPTIONS += -DDUMA_SIZE="\"$(DUMA_SIZE)\""
++endif
+ ############################################################
+ 
+ MAN_INSTALL_DIR=$(prefix)/share/man/man3
+@@ -471,7 +483,7 @@ dos2unix:
+ 
+ createconf$(EXEPOSTFIX): createconf.o
+ 	- $(RMFORCE) createconf$(EXEPOSTFIX)
+-	$(CC) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
++	$(CC_FOR_BUILD) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
+ 
+ tstheap$(EXEPOSTFIX): libduma.a tstheap.o
+ 	- $(RMFORCE) tstheap$(EXEPOSTFIX)
+@@ -532,7 +544,7 @@ endif
+ # define rules how to build objects for createconf
+ #
+ createconf.o:
+-	$(CC) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
++	$(CC_FOR_BUILD) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
+ 
+ 
+ #
+Index: duma_2_5_15/createconf.c
+===================================================================
+--- duma_2_5_15.orig/createconf.c
++++ duma_2_5_15/createconf.c
+@@ -676,13 +676,24 @@ void writeFile(const char * filename, un
+   fprintf(f, "/*\n");
+   fprintf(f, " * Number of bytes per virtual-memory page, as returned by Page_Size().\n");
+   fprintf(f, " */\n");
++#ifndef DUMA_PAGE_SIZE
+   fprintf(f, "#define DUMA_PAGE_SIZE %lu\n", pagesize);
++#else
++  (void)pagesize;
++  fprintf(f, "#define DUMA_PAGE_SIZE %d\n", DUMA_PAGE_SIZE);
++#endif
+ 
+   fprintf(f, "\n");
+   fprintf(f, "/*\n");
+   fprintf(f, " * Minimum required alignment by CPU.\n");
+   fprintf(f, " */\n");
++#ifndef DUMA_MIN_ALIGNMENT
+   fprintf(f, "#define DUMA_MIN_ALIGNMENT %d\n", alignment);
++#else
++  (void)alignment;
++  fprintf(f, "#define DUMA_MIN_ALIGNMENT %d\n", DUMA_MIN_ALIGNMENT);
++#endif
++
+ 
+   fprintf(f, "\n");
+   fprintf(f, "/*\n");
+@@ -697,19 +708,30 @@ void writeFile(const char * filename, un
+   fprintf(f, "/*\n");
+   fprintf(f, " * An integer type with same size as 'void *'\n");
+   fprintf(f, " */\n");
++#ifndef DUMA_ADDR
+   if (addrIdx >= 0)
+     fprintf(f, "typedef unsigned %s DUMA_ADDR;\n", sIntTypes[addrIdx].type);
+   else
+     fprintf(f, "/* Error: No datatype for DUMA_ADDR found! */\n");
++#else
++  (void)addrIdx;
++  fprintf(f, "typedef unsigned %s DUMA_ADDR;\n", DUMA_ADDR);
++#endif
+ 
+   fprintf(f, "\n");
+   fprintf(f, "/*\n");
+   fprintf(f, " * An integer type with same size as 'size_t'\n");
+   fprintf(f, " */\n");
++#ifndef DUMA_SIZE
+   if (sizeIdx >= 0)
+     fprintf(f, "typedef unsigned %s DUMA_SIZE;\n", sIntTypes[sizeIdx].type);
+   else
+     fprintf(f, "/* No datatype for DUMA_SIZE found! */\n");
++#else
++  (void)sizeIdx;
++   fprintf(f, "typedef unsigned %s DUMA_SIZE;\n", DUMA_SIZE);
++ #endif
++
+ 
+ 
+   fprintf(f, "\n");
diff --git a/patches/duma_2_5_15/series b/patches/duma_2_5_15/series
new file mode 100644
index 0000000..a0dee75
--- /dev/null
+++ b/patches/duma_2_5_15/series
@@ -0,0 +1 @@
+100-cross-compilation.patch
diff --git a/rules/duma.in b/rules/duma.in
new file mode 100644
index 0000000..b90a4bf
--- /dev/null
+++ b/rules/duma.in
@@ -0,0 +1,10 @@
+## SECTION=debug_tools
+
+config DUMA
+	tristate
+	prompt "duma"
+	help
+	  DUMA (Detect Unintended Memory Access) is a multi-platform memory
+	  debugging library. It can detect memory leaks and buffer overruns
+	  (or underruns) in a malloc() / new memory buffer.
+
diff --git a/rules/duma.make b/rules/duma.make
new file mode 100644
index 0000000..f0c4ce5
--- /dev/null
+++ b/rules/duma.make
@@ -0,0 +1,79 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2010 by Bart vdr. Meulen <bartvdrmeulen@gmail.com>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_DUMA) += duma
+
+#
+# Paths and names
+#
+DUMA_VERSION	:= 2_5_15
+DUMA_MD5	:= fe630c69cbaa39caf225a3d9ed2fda1f
+DUMA		:= duma_$(DUMA_VERSION)
+DUMA_SUFFIX	:= tar.gz
+DUMA_URL	:= $(PTXCONF_SETUP_SFMIRROR)/duma/$(DUMA).$(DUMA_SUFFIX)
+DUMA_SOURCE	:= $(SRCDIR)/$(DUMA).$(DUMA_SUFFIX)
+DUMA_DIR	:= $(BUILDDIR)/$(DUMA)
+DUMA_LICENSE	:= GPLv2
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(DUMA_SOURCE):
+	@$(call targetinfo)
+	@$(call get, DUMA)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+DUMA_CONF_TOOL		:= NO
+DUMA_MAKE_OPT		:= \
+	$(CROSS_ENV) \
+	prefix=$(DUMA_PKGDIR)/usr \
+	OS=linux \
+	DUMA_PAGE_SIZE=4096 \
+	DUMA_MIN_ALIGNMENT=1 \
+	DUMA_ADDR="int" \
+	DUMA_SIZE="int"
+DUMA_INSTALL_OPT	:= prefix=$(DUMA_PKGDIR)/usr OS=linux install
+DUMA_MAKE_PAR		:= NO
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/duma.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, duma)
+	@$(call install_fixup, duma,PRIORITY,optional)
+	@$(call install_fixup, duma,SECTION,base)
+	@$(call install_fixup, duma,AUTHOR,"Bart vdr. Meulen <bartvdrmeulen@gmail.com>")
+	@$(call install_fixup, duma,DESCRIPTION,missing)
+
+	@$(call install_lib, duma, 0, 0, 0644, libduma)
+
+	@$(call install_finish, duma)
+
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+#$(STATEDIR)/duma.clean:
+#	@$(call targetinfo)
+#	@$(call clean_pkg, DUMA)
+
+# vim: syntax=make
-- 
1.7.9.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [ptxdist] [PATCH] DUMA: Add new package
  2012-05-28 12:42 [ptxdist] [PATCH] DUMA: Add new package Bart vdr. Meulen
@ 2012-05-30 16:14 ` Michael Olbrich
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Olbrich @ 2012-05-30 16:14 UTC (permalink / raw)
  To: ptxdist

On Mon, May 28, 2012 at 02:42:36PM +0200, Bart vdr. Meulen wrote:
> From: "Bart vdr. Meulen" <bartvdrmeulen@gmail.com>
> 
> DUMA is a memory debugging library. It can detect memory leaks
> and buffer overruns (or underruns) in a malloc() / new memory buffer
> 
> Added patch for cross compilation and predefining some calues
> which can get the incorrect value when building for 32bit target
> on 64 bit host
> 
> Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
> ---
>  patches/duma_2_5_15/100-cross-compilation.patch |  115 +++++++++++++++++++++++
>  patches/duma_2_5_15/series                      |    1 +
>  rules/duma.in                                   |   10 ++
>  rules/duma.make                                 |   79 ++++++++++++++++
>  4 files changed, 205 insertions(+)
>  create mode 100644 patches/duma_2_5_15/100-cross-compilation.patch
>  create mode 100644 patches/duma_2_5_15/series
>  create mode 100644 rules/duma.in
>  create mode 100644 rules/duma.make
> 
> diff --git a/patches/duma_2_5_15/100-cross-compilation.patch b/patches/duma_2_5_15/100-cross-compilation.patch

Patch header!

> new file mode 100644
> index 0000000..01fce53
> --- /dev/null
> +++ b/patches/duma_2_5_15/100-cross-compilation.patch
> @@ -0,0 +1,115 @@
> +---
> + GNUmakefile  |   18 +++++++++++++++---
> + createconf.c |   22 ++++++++++++++++++++++
> + 2 files changed, 37 insertions(+), 3 deletions(-)
> +
> +Index: duma_2_5_15/GNUmakefile
> +===================================================================
> +--- duma_2_5_15.orig/GNUmakefile
> ++++ duma_2_5_15/GNUmakefile
> +@@ -94,6 +94,7 @@ DUMA_SO_OPTIONS=$(PIC) -DDUMA_SO_LIBRARY
> + 
> + # some defaults:
> + CC=gcc
> ++CC_FOR_BUILD=$(CC)
> + CXX=g++
> + AR=ar
> + RANLIB=ranlib
> +@@ -240,7 +241,18 @@ ifndef BSWITCH
> +   EXEPOSTFIX=
> + endif
> + 
> +-
> ++ifdef DUMA_PAGE_SIZE
> ++  DUMA_OPTIONS+= -DDUMA_PAGE_SIZE=$(DUMA_PAGE_SIZE)
> ++endif
> ++ifdef DUMA_MIN_ALIGNMENT
> ++  DUMA_OPTIONS+= -DDUMA_MIN_ALIGNMENT=$(DUMA_MIN_ALIGNMENT)
> ++endif
> ++ifdef DUMA_ADDR
> ++  DUMA_OPTIONS += -DDUMA_ADDR="\"$(DUMA_ADDR)\""
> ++endif
> ++ifdef DUMA_SIZE
> ++  DUMA_OPTIONS += -DDUMA_SIZE="\"$(DUMA_SIZE)\""
> ++endif
> + ############################################################
> + 
> + MAN_INSTALL_DIR=$(prefix)/share/man/man3
> +@@ -471,7 +483,7 @@ dos2unix:
> + 
> + createconf$(EXEPOSTFIX): createconf.o
> + 	- $(RMFORCE) createconf$(EXEPOSTFIX)
> +-	$(CC) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
> ++	$(CC_FOR_BUILD) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
> + 
> + tstheap$(EXEPOSTFIX): libduma.a tstheap.o
> + 	- $(RMFORCE) tstheap$(EXEPOSTFIX)
> +@@ -532,7 +544,7 @@ endif
> + # define rules how to build objects for createconf
> + #
> + createconf.o:
> +-	$(CC) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
> ++	$(CC_FOR_BUILD) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
> + 
> + 
> + #
> +Index: duma_2_5_15/createconf.c
> +===================================================================
> +--- duma_2_5_15.orig/createconf.c
> ++++ duma_2_5_15/createconf.c
> +@@ -676,13 +676,24 @@ void writeFile(const char * filename, un
> +   fprintf(f, "/*\n");
> +   fprintf(f, " * Number of bytes per virtual-memory page, as returned by Page_Size().\n");
> +   fprintf(f, " */\n");
> ++#ifndef DUMA_PAGE_SIZE
> +   fprintf(f, "#define DUMA_PAGE_SIZE %lu\n", pagesize);
> ++#else
> ++  (void)pagesize;
> ++  fprintf(f, "#define DUMA_PAGE_SIZE %d\n", DUMA_PAGE_SIZE);
> ++#endif
> + 
> +   fprintf(f, "\n");
> +   fprintf(f, "/*\n");
> +   fprintf(f, " * Minimum required alignment by CPU.\n");
> +   fprintf(f, " */\n");
> ++#ifndef DUMA_MIN_ALIGNMENT
> +   fprintf(f, "#define DUMA_MIN_ALIGNMENT %d\n", alignment);
> ++#else
> ++  (void)alignment;
> ++  fprintf(f, "#define DUMA_MIN_ALIGNMENT %d\n", DUMA_MIN_ALIGNMENT);
> ++#endif
> ++
> + 
> +   fprintf(f, "\n");
> +   fprintf(f, "/*\n");
> +@@ -697,19 +708,30 @@ void writeFile(const char * filename, un
> +   fprintf(f, "/*\n");
> +   fprintf(f, " * An integer type with same size as 'void *'\n");
> +   fprintf(f, " */\n");
> ++#ifndef DUMA_ADDR
> +   if (addrIdx >= 0)
> +     fprintf(f, "typedef unsigned %s DUMA_ADDR;\n", sIntTypes[addrIdx].type);
> +   else
> +     fprintf(f, "/* Error: No datatype for DUMA_ADDR found! */\n");
> ++#else
> ++  (void)addrIdx;
> ++  fprintf(f, "typedef unsigned %s DUMA_ADDR;\n", DUMA_ADDR);
> ++#endif
> + 
> +   fprintf(f, "\n");
> +   fprintf(f, "/*\n");
> +   fprintf(f, " * An integer type with same size as 'size_t'\n");
> +   fprintf(f, " */\n");
> ++#ifndef DUMA_SIZE
> +   if (sizeIdx >= 0)
> +     fprintf(f, "typedef unsigned %s DUMA_SIZE;\n", sIntTypes[sizeIdx].type);
> +   else
> +     fprintf(f, "/* No datatype for DUMA_SIZE found! */\n");
> ++#else
> ++  (void)sizeIdx;
> ++   fprintf(f, "typedef unsigned %s DUMA_SIZE;\n", DUMA_SIZE);
> ++ #endif
> ++
> + 
> + 
> +   fprintf(f, "\n");
> diff --git a/patches/duma_2_5_15/series b/patches/duma_2_5_15/series
> new file mode 100644
> index 0000000..a0dee75
> --- /dev/null
> +++ b/patches/duma_2_5_15/series
> @@ -0,0 +1 @@
> +100-cross-compilation.patch
> diff --git a/rules/duma.in b/rules/duma.in
> new file mode 100644
> index 0000000..b90a4bf
> --- /dev/null
> +++ b/rules/duma.in
> @@ -0,0 +1,10 @@
> +## SECTION=debug_tools
> +
> +config DUMA
> +	tristate
> +	prompt "duma"
> +	help
> +	  DUMA (Detect Unintended Memory Access) is a multi-platform memory
> +	  debugging library. It can detect memory leaks and buffer overruns
> +	  (or underruns) in a malloc() / new memory buffer.
> +
> diff --git a/rules/duma.make b/rules/duma.make
> new file mode 100644
> index 0000000..f0c4ce5
> --- /dev/null
> +++ b/rules/duma.make
> @@ -0,0 +1,79 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2010 by Bart vdr. Meulen <bartvdrmeulen@gmail.com>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_DUMA) += duma
> +
> +#
> +# Paths and names
> +#
> +DUMA_VERSION	:= 2_5_15
> +DUMA_MD5	:= fe630c69cbaa39caf225a3d9ed2fda1f
> +DUMA		:= duma_$(DUMA_VERSION)
> +DUMA_SUFFIX	:= tar.gz
> +DUMA_URL	:= $(PTXCONF_SETUP_SFMIRROR)/duma/$(DUMA).$(DUMA_SUFFIX)
> +DUMA_SOURCE	:= $(SRCDIR)/$(DUMA).$(DUMA_SUFFIX)
> +DUMA_DIR	:= $(BUILDDIR)/$(DUMA)
> +DUMA_LICENSE	:= GPLv2
> +
> +# ----------------------------------------------------------------------------
> +# Get
> +# ----------------------------------------------------------------------------
> +
> +$(DUMA_SOURCE):
> +	@$(call targetinfo)
> +	@$(call get, DUMA)

remove

> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +DUMA_CONF_TOOL		:= NO
> +DUMA_MAKE_OPT		:= \
> +	$(CROSS_ENV) \
> +	prefix=$(DUMA_PKGDIR)/usr \
> +	OS=linux \
> +	DUMA_PAGE_SIZE=4096 \
> +	DUMA_MIN_ALIGNMENT=1 \
> +	DUMA_ADDR="int" \
> +	DUMA_SIZE="int"
> +DUMA_INSTALL_OPT	:= prefix=$(DUMA_PKGDIR)/usr OS=linux install
> +DUMA_MAKE_PAR		:= NO
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/duma.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, duma)
> +	@$(call install_fixup, duma,PRIORITY,optional)
> +	@$(call install_fixup, duma,SECTION,base)
> +	@$(call install_fixup, duma,AUTHOR,"Bart vdr. Meulen <bartvdrmeulen@gmail.com>")
> +	@$(call install_fixup, duma,DESCRIPTION,missing)
> +
> +	@$(call install_lib, duma, 0, 0, 0644, libduma)
> +
> +	@$(call install_finish, duma)
> +
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Clean
> +# ----------------------------------------------------------------------------
> +
> +#$(STATEDIR)/duma.clean:
> +#	@$(call targetinfo)
> +#	@$(call clean_pkg, DUMA)

remove

Michael

> +
> +# vim: syntax=make
> -- 
> 1.7.9.5
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-05-30 16:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-28 12:42 [ptxdist] [PATCH] DUMA: Add new package Bart vdr. Meulen
2012-05-30 16:14 ` Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox