Bug#545834: ivtools: FTBFS: On 64 bit arches: error: cast from 'void*' to 'osboolean' loses precision

2009-10-14 Thread Agustin Martin
On Mon, Sep 28, 2009 at 12:25:56AM +0200, Agustin Martin wrote:
 On Wed, Sep 09, 2009 at 04:51:39PM +0200, Kurt Roeckx wrote:
  Source: ivtools
  Version: 1.2.6-1
  Severity: serious
   make[3]: Entering directory `/build/buildd/ivtools-1.2.6/src/Attribute'
   installing for LINUX in /build/buildd/ivtools-1.2.6/src/Attribute/LINUX
   make[4]: Entering directory 
   `/build/buildd/ivtools-1.2.6/src/Attribute/LINUX'
   g++   -gdwarf-2 -O2 -fPIC  -Dcplusplus_2_1 -Wno-deprecated
   -I/build/buildd/ivtools-1.2.6/src/Attribute/LINUX/.. 
   -I/build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../..  
   -I/build/buildd/ivtools-1.2.6/src  
   -I/build/buildd/ivtools-1.2.6/src/include 
   -I/build/buildd/ivtools-1.2.6/src/include/ivstd -I/usr/include -c 
   /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c
   /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
   function 'osboolean AttributeValue::boolean_val()':
   /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:360: 
   error: cast from 'void*' to 'osboolean' loses precision
   /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
   function 'unsigned int AttributeValue::uint_val()':
   /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:519: 
   error: cast from 'void*' to 'unsigned int' loses precision
   /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
   function 'int AttributeValue::int_val()':
   /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:552: 
   error: cast from 'void*' to 'int' loses precision
 
  Note that a pointer does not fit in an integer on 64 bit arches.
  A pointer is 64 bit, an integer 32 bit.
 
 This is bug #314666 revisited. Fix proposed there was mostly incorporated
 upstream, but not complete. The part not included by upstream was the
 change of int (and boolean, which seems mapped to int) to long in the
 above lines, so this problem reappears.
 
 I have been playing to build a lenny x86_64 backport (I still use idraw
 frequently). I successfully built the package with gcc 4.3 in a x86_64
 lenny box with attached patch. Instead of changing int and boolean to
 long in offending lines I changed it to intptr_t (and unsigned int to
 uintptr_t), from stdint.h. Seems included by default, so no need of
 explicitly including that header. 
 
 I expect it to also build properly in a x86_64 sid box, but cannot check
 now. Since stdint.h is provided by libc6 since some time ago I hope it
 is available in all currently released arches.  

intptr_t and uintptr_t are c99 standard types to handle this kind of
things. I think they should already be available in all Debian arches.
  
 Note that attached patch is only what I used to build the package, so is
 neither tagged as a NMU nor closes the bug. Not sure about the NMU policy 
 for QA maintained packages, but if you want me to turn that into a real 
 NMU just tell.

Actually I have an NMU ready, in case you want me to upload. diff is
attached.

-- 
Agustin
diff -wu 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,14 @@
+ivtools (1.2.6-1+nmu1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * 48_gcc40_int_pointer_errors.diff: New patch to fix some gcc40 errors.
++ A pointer does not fit in an integer on 64 bit arches. A pointer
+  is 64 bit, an integer 32 bit. Use (u)intptr_t instead of
+  (unsigned) int (Closes: #545834).
+  * debian/rules: Remove empty -p parameter to dh_installdocs.
+
+ -- Agustin Martin Domingo agmar...@debian.org  Tue, 29 Sep 2009 13:02:03 +0200
+
 ivtools (1.2.6-1) unstable; urgency=low
 
   * QA upload.
diff -wu ivtools-1.2.6/debian/rules ivtools-1.2.6/debian/rules
--- ivtools-1.2.6/debian/rules
+++ ivtools-1.2.6/debian/rules
@@ -146,7 +146,7 @@
 	-rm -f $(CURDIR)/debian/libiv-unidraw1/usr/lib/libIV.so.*
 	#Remove ivmkmf from ivtools-bin package.
 	-rm -f $(CURDIR)/debian/ivtools-bin/usr/bin/ivmkmf
-	dh_installdocs -p
+	dh_installdocs
 #	dh_installexamples -a
 	dh_installmenu ivtools-bin
 	dh_installman -p$(PKG_BIN) -Xsrc/man/man1/ivmkmf.1
diff -wu 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
@@ -41,0 +42 @@
+48_gcc40_int_pointer_errors.diff
only in patch2:
--- ivtools-1.2.6.orig/debian/patches/48_gcc40_int_pointer_errors.diff
+++ ivtools-1.2.6/debian/patches/48_gcc40_int_pointer_errors.diff
@@ -0,0 +1,31 @@
+Index: ivtools-1.2.6/src/Attribute/attrvalue.c
+===
+--- ivtools-1.2.6.orig/src/Attribute/attrvalue.c	2008-02-12 19:38:19.0 +0100
 ivtools-1.2.6/src/Attribute/attrvalue.c	2009-09-27 23:56:17.0 +0200
+@@ -357,7 +357,7 @@
+ case AttributeValue::StringType:
+ 	return (boolean) int_val()!=-1;
+ case AttributeValue::ObjectType:
+-	return 

Bug#545834: ivtools: FTBFS: On 64 bit arches: error: cast from 'void*' to 'osboolean' loses precision

2009-09-27 Thread Agustin Martin
On Wed, Sep 09, 2009 at 04:51:39PM +0200, Kurt Roeckx wrote:
 Source: ivtools
 Version: 1.2.6-1
 Severity: serious
 
 Hi,
 
 There was an error while trying to autobuild your package:
 
  Automatic build of ivtools_1.2.6-1 on excelsior by sbuild/amd64 98
  Build started at 20090906-1809
 [...]
 
  make[3]: Entering directory `/build/buildd/ivtools-1.2.6/src/Attribute'
  installing for LINUX in /build/buildd/ivtools-1.2.6/src/Attribute/LINUX
  make[4]: Entering directory 
  `/build/buildd/ivtools-1.2.6/src/Attribute/LINUX'
  g++   -gdwarf-2 -O2 -fPIC  -Dcplusplus_2_1 -Wno-deprecated
  -I/build/buildd/ivtools-1.2.6/src/Attribute/LINUX/.. 
  -I/build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../..  
  -I/build/buildd/ivtools-1.2.6/src  
  -I/build/buildd/ivtools-1.2.6/src/include 
  -I/build/buildd/ivtools-1.2.6/src/include/ivstd -I/usr/include -c 
  /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c
  /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
  function 'osboolean AttributeValue::boolean_val()':
  /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:360: error: 
  cast from 'void*' to 'osboolean' loses precision
  /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
  function 'unsigned int AttributeValue::uint_val()':
  /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:519: error: 
  cast from 'void*' to 'unsigned int' loses precision
  /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
  function 'int AttributeValue::int_val()':
  /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:552: error: 
  cast from 'void*' to 'int' loses precision

 Note that a pointer does not fit in an integer on 64 bit arches.
 A pointer is 64 bit, an integer 32 bit.

This is bug #314666 revisited. Fix proposed there was mostly incorporated
upstream, but not complete. The part not included by upstream was the
change of int (and boolean, which seems mapped to int) to long in the
above lines, so this problem reappears.

I have been playing to build a lenny x86_64 backport (I still use idraw
frequently). I successfully built the package with gcc 4.3 in a x86_64
lenny box with attached patch. Instead of changing int and boolean to
long in offending lines I changed it to intptr_t (and unsigned int to
uintptr_t), from stdint.h. Seems included by default, so no need of
explicitly including that header. 

I expect it to also build properly in a x86_64 sid box, but cannot check
now. Since stdint.h is provided by libc6 since some time ago I hope it
is available in all currently released arches.  
 
Note that attached patch is only what I used to build the package, so is
neither tagged as a NMU nor closes the bug. Not sure about the NMU policy 
for QA maintained packages, but if you want me to turn that into a real 
NMU just tell.

Cheers,

-- 
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,12 @@
+ivtools (1.2.6-0.1~amdlenny1) unstable; urgency=low
+
+  * Personal lenny backport.
+  * 48_gcc40_errors.diff: New patch using (u)intptr_t when
+passing from pointer to (unsigned) int.
+  * debian/rules: Remove empty -p parameter to dh_installdocs.
+
+ -- Agustin Martin Domingo agmar...@debian.org  Sun, 27 Sep 2009 20:29:25 +0200
+
 ivtools (1.2.6-1) unstable; urgency=low
 
   * QA 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
@@ -146,7 +146,7 @@
 	-rm -f $(CURDIR)/debian/libiv-unidraw1/usr/lib/libIV.so.*
 	#Remove ivmkmf from ivtools-bin package.
 	-rm -f $(CURDIR)/debian/ivtools-bin/usr/bin/ivmkmf
-	dh_installdocs -p
+	dh_installdocs
 #	dh_installexamples -a
 	dh_installmenu ivtools-bin
 	dh_installman -p$(PKG_BIN) -Xsrc/man/man1/ivmkmf.1
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
@@ -41,0 +42 @@
+48_gcc40_errors.diff
only in patch2:
unchanged:
--- ivtools-1.2.6.orig/debian/patches/48_gcc40_errors.diff
+++ ivtools-1.2.6/debian/patches/48_gcc40_errors.diff
@@ -0,0 +1,31 @@
+Index: ivtools-1.2.6/src/Attribute/attrvalue.c
+===
+--- ivtools-1.2.6.orig/src/Attribute/attrvalue.c	2008-02-12 19:38:19.0 +0100
 ivtools-1.2.6/src/Attribute/attrvalue.c	2009-09-27 23:56:17.0 +0200
+@@ -357,7 +357,7 @@
+ case AttributeValue::StringType:
+ 	return (boolean) int_val()!=-1;
+ case AttributeValue::ObjectType:
+-	return (boolean) obj_val();
++	return (intptr_t) obj_val();
+ case AttributeValue::StreamType:
+ 	return stream_mode() != 0;
+ default:
+@@ -516,7 +516,7 @@
+ case AttributeValue::SymbolType:
+ 	return (unsigned int) int_val();
+ case AttributeValue::ObjectType:
+-return (unsigned int)obj_val();

Bug#545834: ivtools: FTBFS: On 64 bit arches: error: cast from 'void*' to 'osboolean' loses precision

2009-09-09 Thread Kurt Roeckx
Source: ivtools
Version: 1.2.6-1
Severity: serious

Hi,

There was an error while trying to autobuild your package:

 Automatic build of ivtools_1.2.6-1 on excelsior by sbuild/amd64 98
 Build started at 20090906-1809

[...]

 Build-Depends: debhelper ( 5.0.0), quilt, x11-utils, xutils-dev, 
 libtiff4-dev, libjpeg62-dev, zlib1g-dev, libace-dev, autotools-dev, 
 libx11-dev, libxext-dev, libxmu-dev, libxt-dev, x11proto-core-dev

[...]

 Toolchain package versions: linux-libc-dev_2.6.30-6 libc6-dev_2.9-25 
 g++-4.3_4.3.4-2 gcc-4.3_4.3.4-2 binutils_2.19.51.20090827-1 
 libstdc++6_4.4.1-3 libstdc++6-4.3-dev_4.3.4-2

[...]

 make[3]: Entering directory `/build/buildd/ivtools-1.2.6/src/Attribute'
 installing for LINUX in /build/buildd/ivtools-1.2.6/src/Attribute/LINUX
 make[4]: Entering directory `/build/buildd/ivtools-1.2.6/src/Attribute/LINUX'
 g++   -gdwarf-2 -O2 -fPIC  -Dcplusplus_2_1 -Wno-deprecated
 -I/build/buildd/ivtools-1.2.6/src/Attribute/LINUX/.. 
 -I/build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../..  
 -I/build/buildd/ivtools-1.2.6/src  -I/build/buildd/ivtools-1.2.6/src/include 
 -I/build/buildd/ivtools-1.2.6/src/include/ivstd -I/usr/include -c 
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
 function 'osboolean AttributeValue::boolean_val()':
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:360: error: 
 cast from 'void*' to 'osboolean' loses precision
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
 function 'unsigned int AttributeValue::uint_val()':
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:519: error: 
 cast from 'void*' to 'unsigned int' loses precision
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
 function 'int AttributeValue::int_val()':
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:552: error: 
 cast from 'void*' to 'int' loses precision
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In function 
 'std::ostream operator(std::ostream, const AttributeValue)':
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:860: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c: In member 
 function 'int AttributeValue::type_symid() const':
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1099: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1100: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1101: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1102: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1103: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1104: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1105: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1106: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1107: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1108: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1109: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1110: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1112: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1113: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1114: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1115: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1116: warning: 
 deprecated conversion from string constant to 'char*'
 /build/buildd/ivtools-1.2.6/src/Attribute/LINUX/../attrvalue.c:1117: warning: 
 deprecated conversion from string constant to 'char*'