[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#549407: [buildd-tools-devel] Bug#549407: ivtools 1.2.6-1 FTBFS on sparc and powerpc



On Wed, Dec 09, 2009 at 01:55:11PM +0100, Agustin Martin wrote:

> I expect to upload a fixed ivtools NMU today.

Uploaded. Took a bit longer because of a new RC bug with current sid gcc
4.4 and another problem with uintptr_t. Patch is attached.

Unfortunately, seems that although it properly built in i386 pbuilder,
at least in amd64 there are more gcc4.4 problems pending that did not
show in i386.

-- 
Agustin
diff -u ivtools-1.2.6/debian/changelog ivtools-1.2.6/debian/changelog
--- ivtools-1.2.6/debian/changelog
+++ ivtools-1.2.6/debian/changelog
@@ -1,3 +1,20 @@
+ivtools (1.2.6-1+nmu3) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * debian/rules:
+    - Reverting 1.2.6-1+nmu2 -j1 addition to keep package clean.
+    - Fix ARCH evaluation.
+    - Use generic $(MAKE) instead of make.
+    - Make sure imake is always called with -U$(ARCH) (Closes: #549407).
+  * 01_configure.diff: Handle disabling of early binary stripping.
+  * 015_Makefile_dontstrip.diff: Disable patch.
+  * 49_string.c_constchar.diff: New patch to deal with gcc 4.4 'invalid
+    conversion from 'const char*' to 'char*'' errors (Closes: #560203).
+  * 48_gcc40_int_pointer_errors.diff: Modified to use (unsigned intptr_t)
+    instead of (uintptr_t) to avoid out-of-context errors.
+
+ -- Agustin Martin Domingo <agmartin@debian.org>  Wed, 09 Dec 2009 18:13:03 +0100
+
 ivtools (1.2.6-1+nmu2) unstable; urgency=low
 
   * Non-maintainer upload.
diff -u ivtools-1.2.6/debian/rules ivtools-1.2.6/debian/rules
--- ivtools-1.2.6/debian/rules
+++ ivtools-1.2.6/debian/rules
@@ -16,7 +16,7 @@
 # so for alpha we just don't have ace, who uses it
 # anyhow ?
 
-ARCH = $(dpkg --print-architecture)
+ARCH = $(shell dpkg --print-architecture)
 
 ifeq "$(ARCH)" "alpha"
 ACE =
@@ -24,6 +24,9 @@
 # ACE = --with-ace=/usr/include --with-ace-libs=/usr/lib
 endif
 
+# Make sure this symbol is disabled when imake is invoked. See #549407.
+MAKE += SPECIAL_IMAKEFLAGS="-U$(ARCH)"
+
 build: build-stamp
 build-stamp:
 	dh_testdir
@@ -41,9 +44,9 @@
 
 	#  Compile the packages
 
-	make Makefile ARCH=LINUX
-	make Makefiles ARCH=LINUX
-	make -j1 ARCH=LINUX
+	$(MAKE) Makefile ARCH=LINUX
+	$(MAKE) Makefiles ARCH=LINUX
+	$(MAKE) ARCH=LINUX
 
 	#   BUILD FINISHED
 	# -----------------------------------------------------------
@@ -59,8 +62,8 @@
 		    --mandir=$(CURDIR)/debian/tmp/usr/share/man
 
 	cd src/scripts && \
-	  make ARCH=LINUX clean && \
-	  make ARCH=LINUX CONFIGDIRSPEC='-T template -I/usr/lib/ivtools/config -DCURDIR=\$(CURDIR)'\
+	  $(MAKE) ARCH=LINUX clean && \
+	  $(MAKE) ARCH=LINUX CONFIGDIRSPEC='-T template -I/usr/lib/ivtools/config -DCURDIR=\$(CURDIR)'\
  MAKEMAKESPEC='ARCH=LINUX'
 	touch build-stamp
 
@@ -83,8 +86,8 @@
 	-rm config.cache
 
 	-rm -rf static shared
-	[ ! -f Makefile ] || make ARCH=LINUX clean
-	[ ! -f src/scripts/Makefile ] || (cd src/scripts;make clean)
+	[ ! -f Makefile ] || $(MAKE) ARCH=LINUX clean
+	[ ! -f src/scripts/Makefile ] || (cd src/scripts;$(MAKE) clean)
 
 #      remove backups
 	-rm -f `find . -name "*~"`
@@ -102,10 +105,10 @@
 	dh_installdirs
 
 	# Add here commands to install the package into debian/tmp.
-	make install ARCH=LINUX DESTDIR=$(CURDIR)/debian/tmp
+	$(MAKE) install ARCH=LINUX DESTDIR=$(CURDIR)/debian/tmp
 
 	cp debian/template $(CURDIR)/debian/tmp/usr/lib/ivtools/config/
-	[ ! -f src/glyphs/Makefile ] || (cd src/glyphs && make clean)
+	[ ! -f src/glyphs/Makefile ] || (cd src/glyphs && $(MAKE) clean)
 	# don't include the scripts
 
 #       ivtools installs the libACE link, we remove it ... hack
diff -u ivtools-1.2.6/debian/patches/series ivtools-1.2.6/debian/patches/series
--- ivtools-1.2.6/debian/patches/series
+++ ivtools-1.2.6/debian/patches/series
@@ -1,5 +1,4 @@
 01_configure.diff
-015_Makefile_dontstrip.diff
 02_rules_def.diff
 025_params_def.diff
 026_geomobjs_c.diff
@@ -42,0 +42 @@
+49_string.c_constchar.diff
diff -u ivtools-1.2.6/debian/patches/01_configure.diff ivtools-1.2.6/debian/patches/01_configure.diff
--- ivtools-1.2.6/debian/patches/01_configure.diff
+++ ivtools-1.2.6/debian/patches/01_configure.diff
@@ -1,8 +1,15 @@
-Index: ivtools-1.2/configure
+This patch modfies the configure scripts for different purposes:
+
+* Modify how config/config.mk is built:
+  - Make 'make CPU' more silent.
+  - Do not strip binaries during the build process. Will be done later
+    from debian/rules.
+
+Index: ivtools-1.2.6/configure
 ===================================================================
---- ivtools-1.2.orig/configure	2009-09-04 12:19:47.000000000 -0400
-+++ ivtools-1.2/configure	2009-09-04 12:20:02.000000000 -0400
-@@ -5129,8 +5129,8 @@
+--- ivtools-1.2.6.orig/configure	2009-11-30 12:08:21.000000000 +0100
++++ ivtools-1.2.6/configure	2009-11-30 12:08:54.000000000 +0100
+@@ -5129,8 +5129,10 @@
  echo XCONFIGDIR = $x_libraries/X11/config >config/config.mk
  echo writing \"ABSTOP = `pwd`\"
  echo ABSTOP = `pwd` >>config/config.mk
@@ -10,14 +17,16 @@
 -echo CPU = `make CPU` >>config/config.mk
 +echo writing \"CPU = `make -s CPU`\"
 +echo CPU = `make -s CPU` >>config/config.mk
++echo Disable INSTPGMFLAGS. Do not strip binaries now, but from debian/rules
++echo INSTPGMFLAGS = >>config/config.mk
  echo writing \"LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2\"
  echo LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2 >>config/config.mk
  echo writing \"LIBSTDCPLUSPLUS3 = $LIBSTDCPLUSPLUS3\"
-Index: ivtools-1.2/configure.in
+Index: ivtools-1.2.6/configure.in
 ===================================================================
---- ivtools-1.2.orig/configure.in	2009-09-04 12:20:10.000000000 -0400
-+++ ivtools-1.2/configure.in	2009-09-04 12:20:26.000000000 -0400
-@@ -472,8 +472,8 @@
+--- ivtools-1.2.6.orig/configure.in	2009-11-30 12:08:21.000000000 +0100
++++ ivtools-1.2.6/configure.in	2009-11-30 12:09:08.000000000 +0100
+@@ -472,8 +472,10 @@
  echo XCONFIGDIR = $x_libraries/X11/config >config/config.mk
  echo writing \"ABSTOP = `pwd`\"
  echo ABSTOP = `pwd` >>config/config.mk
@@ -25,6 +34,8 @@
 -echo CPU = `make CPU` >>config/config.mk
 +echo writing \"CPU = `make -s CPU`\"
 +echo CPU = `make -s CPU` >>config/config.mk
++echo Disable INSTPGMFLAGS. Do not strip binaries now, but from debian/rules
++echo INSTPGMFLAGS = >>config/config.mk
  echo writing \"LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2\"
  echo LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2 >>config/config.mk
  echo writing \"LIBSTDCPLUSPLUS3 = $LIBSTDCPLUSPLUS3\"
diff -u ivtools-1.2.6/debian/patches/015_Makefile_dontstrip.diff ivtools-1.2.6/debian/patches/015_Makefile_dontstrip.diff
--- ivtools-1.2.6/debian/patches/015_Makefile_dontstrip.diff
+++ ivtools-1.2.6/debian/patches/015_Makefile_dontstrip.diff
@@ -1,3 +1,10 @@
+This patch is currently disabled. Not stripping binaries until 
+debian/rules is now handled through 01_configure.diff 
+
+Since imake+xmkmf rebuilds Makefiles everytime, this is much better,
+because otherwise Makefile is changed back by imake+xmkmf during build
+and this patch can no longer be reverted.
+
 Index: ivtools-1.2/Makefile
 ===================================================================
 --- ivtools-1.2.orig/Makefile	2009-09-05 22:06:50.000000000 -0400
diff -u ivtools-1.2.6/debian/patches/48_gcc40_int_pointer_errors.diff ivtools-1.2.6/debian/patches/48_gcc40_int_pointer_errors.diff
--- ivtools-1.2.6/debian/patches/48_gcc40_int_pointer_errors.diff
+++ ivtools-1.2.6/debian/patches/48_gcc40_int_pointer_errors.diff
@@ -1,3 +1,5 @@
+Pointer length is different in 32 and 64 bit arches.
+
 Index: ivtools-1.2.6/src/Attribute/attrvalue.c
 ===================================================================
 --- ivtools-1.2.6.orig/src/Attribute/attrvalue.c	2008-02-12 19:38:19.000000000 +0100
@@ -16,7 +18,7 @@
  	return (unsigned int) int_val();
      case AttributeValue::ObjectType:
 -        return (unsigned int)obj_val();
-+        return (uintptr_t) obj_val();
++        return (unsigned intptr_t) obj_val();
      default:
  	return 0;
      }
only in patch2:
unchanged:
--- ivtools-1.2.6.orig/debian/patches/49_string.c_constchar.diff
+++ ivtools-1.2.6/debian/patches/49_string.c_constchar.diff
@@ -0,0 +1,25 @@
+Fix gcc 4.4 'invalid conversion from 'const char*' to 'char*'' errors. 
+This is partially fixed in upstream 1.2.8
+
+Index: ivtools-1.2.6/src/OS/string.c
+===================================================================
+--- ivtools-1.2.6.orig/src/OS/string.c	2009-12-09 17:51:41.000000000 +0100
++++ ivtools-1.2.6/src/OS/string.c	2009-12-09 17:52:30.000000000 +0100
+@@ -301,7 +301,7 @@
+  */
+ 
+ String String::before(const char* str) const {
+-  char* ptr = strstr(string(), str);
++  const char* ptr = strstr(string(), str);
+   if (ptr) 
+     return substr(0, ptr-string());
+   else
+@@ -313,7 +313,7 @@
+  */
+ 
+ String String::from(const char* str) const {
+-  char* ptr = strstr(string(), str);
++  const char* ptr = strstr(string(), str);
+   if (ptr) {
+     int offset = (int)(ptr-string());
+     return substr(offset,length()-offset);

Reply to: