Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
On 2011-07-28 23:53 +0200, Steve Langasek wrote: On Thu, Jul 28, 2011 at 11:39:50AM +0200, Sven Joachim wrote: On 2011-07-28 10:58 +0200, Tim Northover wrote: Package: general Severity: normal It looks like gcc -m32 has been partially broken by the recent hiving off of various headers to /usr/include/x86_64-linux-gnu. In particular a program consisting of the single line #include features.h fails with the error: In file included from tmp.c:1:0: /usr/include/features.h:356:25: fatal error: sys/cdefs.h: No such file or directory compilation terminated. I suspect multiple packages are involved: cpp -m32 -v reports not searching /usr/include/i386-linux-gnu (or equivalent) so gcc packages are probably iffy; but even if it did there's nothing there to find so either the gcc-*-multilib or libc6-dev (or possibly even an entirely new gcc-*-multiheader one) will need updating. Confirmed here on i386, ncurses biarch build is broken: This is not confirming the bug, the behavior you quote below is entirely the opposite of what the submitter was reporting. Sorry for not reading carefully enough. But I can also reproduce Tim's problem in an amd64 chroot with apt-get -b source bzip2: , | gcc -m32 -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -o blocksort.o -c blocksort.c | In file included from /usr/include/stdlib.h:25:0, | from bzlib_private.h:25, | from blocksort.c:22: | /usr/include/features.h:356:25: fatal error: sys/cdefs.h: No such file or directory ` Tim, what version of libc6-dev-i386 do you have installed? I cannot reproduce this problem with 2.13-11. I have installed libc6-dev-i386 2.13-11 here as well. , | $ LANG=C debian/rules build-64 | [...] | make[2]: Entering directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64/ncurses' | gcc -o make_hash -DHAVE_CONFIG_H -I../ncurses | -I/usr/local/src/deb-src/ncurses/ncurses/ncurses | -I/usr/local/src/deb-src/ncurses/ncurses/ncurses/../include | -I../include -DUSE_BUILD_CC | /usr/local/src/deb-src/ncurses/ncurses/ncurses/tinfo/make_hash.c | In file included from /usr/include/stdlib.h:320:0, | from /usr/local/src/deb-src/ncurses/ncurses/ncurses/build.priv.h:61, | from /usr/local/src/deb-src/ncurses/ncurses/ncurses/tinfo/make_hash.c:40: | /usr/include/i386-linux-gnu/sys/types.h:99:17: error: two or more data types in declaration specifiers | make[2]: *** [make_hash] Error 1 | make[2]: Leaving directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64/ncurses' | make[1]: *** [all] Error 2 | make[1]: Leaving directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64' | make: *** [build-64] Error 2 ` It seems libc6-dev multiarch support needs to go back to the drawing board again. Sven, please file a separate bug report for this issue. Will do so soon. Cheers, Sven -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
On 2011-07-29 09:58 +0200, Sven Joachim wrote: On 2011-07-29 09:58 +0200, Sven Joachim wrote: On 2011-07-28 23:53 +0200, Steve Langasek wrote: On Thu, Jul 28, 2011 at 11:39:50AM +0200, Sven Joachim wrote: , | $ LANG=C debian/rules build-64 | [...] | make[2]: Entering directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64/ncurses' | gcc -o make_hash -DHAVE_CONFIG_H -I../ncurses | -I/usr/local/src/deb-src/ncurses/ncurses/ncurses | -I/usr/local/src/deb-src/ncurses/ncurses/ncurses/../include | -I../include -DUSE_BUILD_CC | /usr/local/src/deb-src/ncurses/ncurses/ncurses/tinfo/make_hash.c | In file included from /usr/include/stdlib.h:320:0, | from /usr/local/src/deb-src/ncurses/ncurses/ncurses/build.priv.h:61, | from /usr/local/src/deb-src/ncurses/ncurses/ncurses/tinfo/make_hash.c:40: | /usr/include/i386-linux-gnu/sys/types.h:99:17: error: two or more data types in declaration specifiers | make[2]: *** [make_hash] Error 1 | make[2]: Leaving directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64/ncurses' | make[1]: *** [all] Error 2 | make[1]: Leaving directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64' | make: *** [build-64] Error 2 ` It seems libc6-dev multiarch support needs to go back to the drawing board again. Sven, please file a separate bug report for this issue. Will do so soon. On closer examination, this is probably such not a different issue after all. The output of `configure' is not quite what it should be: , | checking for sys/types.h... no | checking for sys/stat.h... no | checking for stdlib.h... no | checking for string.h... no | checking for memory.h... no | checking for strings.h... no | checking for inttypes.h... no | checking for stdint.h... no | checking for unistd.h... no ` In config.log I find 106 occurrences of /usr/include/gnu/stubs.h:9:27: fatal error: gnu/stubs-64.h: No such file or directory All are similar to this one: configure:7051: gcc -m64 -c -g -O2 -D_GNU_SOURCE conftest.c 5 In file included from /usr/include/features.h:388:0, from /usr/include/sys/types.h:26, from configure:7037: /usr/include/gnu/stubs.h:9:27: fatal error: gnu/stubs-64.h: No such file or directory Cheers, Sven -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
On Fri, Jul 29, 2011 at 09:58:18AM +0200, Sven Joachim wrote: On Thu, Jul 28, 2011 at 11:39:50AM +0200, Sven Joachim wrote: Sorry for not reading carefully enough. But I can also reproduce Tim's problem in an amd64 chroot with apt-get -b source bzip2: , | gcc -m32 -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -o blocksort.o -c blocksort.c | In file included from /usr/include/stdlib.h:25:0, | from bzlib_private.h:25, | from blocksort.c:22: | /usr/include/features.h:356:25: fatal error: sys/cdefs.h: No such file or directory ` Do you happen to have any of the following packages installed in this chroot? libacl1-dev libapparmor-dev libasound2-dev libcap-dev libsbuf-dev systemtap-sdt-dev I see, much to my surprise, that libc6-dev is not the only package shipping files in this directory; so if you have one of these packages installed, the /usr/include/sys directory will fail to be replaced by a symlink as intended. So that's definitely a bug and needs to be fixed. I'm not sure if it's the bug that Tim and you are seeing? -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developerhttp://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: Digital signature
Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
On 2011-07-29 12:27 +0200, Steve Langasek wrote: Do you happen to have any of the following packages installed in this chroot? libacl1-dev libapparmor-dev libasound2-dev libcap-dev libsbuf-dev systemtap-sdt-dev No, but libc6-dev-i386 had been installed before, shipping a /usr/include/sys directory. I see, much to my surprise, that libc6-dev is not the only package shipping files in this directory; so if you have one of these packages installed, the /usr/include/sys directory will fail to be replaced by a symlink as intended. That intention needs to be expressed by actually doing the conversion in the libc6-dev-i386 postinst -- which does not currently exist. So that's definitely a bug and needs to be fixed. I'm not sure if it's the bug that Tim and you are seeing? It seems so. After purging and reinstalling libc6-dev-i386, apt-get -b source bzip2 actually succeeds. On i386 however, libc6-dev 2.13-11 still ships files under /usr/include/{sys,gnu,bits}, so that ncurses is unbuildable even in a clean chroot. Cheers, Sven -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
On Fri, Jul 29, 2011 at 01:44:06PM +0200, Sven Joachim wrote: I see, much to my surprise, that libc6-dev is not the only package shipping files in this directory; so if you have one of these packages installed, the /usr/include/sys directory will fail to be replaced by a symlink as intended. That intention needs to be expressed by actually doing the conversion in the libc6-dev-i386 postinst No, it does not. libc6-dev-i386 Conflicts: with the versions of libc6-dev shipping /usr/include, which means they are removed from disk before libc6-dev-i386 is unpacked. The only reason I see why this would fail would be because of one of the other -dev packages mentioned. So that's definitely a bug and needs to be fixed. I'm not sure if it's the bug that Tim and you are seeing? It seems so. After purging and reinstalling libc6-dev-i386, apt-get -b source bzip2 actually succeeds. On i386 however, libc6-dev 2.13-11 still ships files under /usr/include/{sys,gnu,bits}, so that ncurses is unbuildable even in a clean chroot. Yes, which is why I told you to file a separate bug report. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developerhttp://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: Digital signature
Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
On 2011-07-29 17:50 +0200, Steve Langasek wrote: On Fri, Jul 29, 2011 at 01:44:06PM +0200, Sven Joachim wrote: I see, much to my surprise, that libc6-dev is not the only package shipping files in this directory; so if you have one of these packages installed, the /usr/include/sys directory will fail to be replaced by a symlink as intended. That intention needs to be expressed by actually doing the conversion in the libc6-dev-i386 postinst No, it does not. libc6-dev-i386 Conflicts: with the versions of libc6-dev shipping /usr/include, which means they are removed from disk before libc6-dev-i386 is unpacked. They are not if libc6-dev-i386 was already installed, because libc6-dev-i386 itself contained files under /usr/include/{sys,gnu} in versions up to 2.13-10. The only reason I see why this would fail would be because of one of the other -dev packages mentioned. Or if libc6-dev-i386 was upgraded, rather then freshly installed. On i386 however, libc6-dev 2.13-11 still ships files under /usr/include/{sys,gnu,bits}, so that ncurses is unbuildable even in a clean chroot. Yes, which is why I told you to file a separate bug report. Do you still want that, or should I clone the current one? Cheers, Sven -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Processed: Re: Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
Processing commands for cont...@bugs.debian.org: reassign 635685 libc6-dev Bug #635685 [general] general: gcc -m32 has no access to system-specific includes in multiarch world Bug reassigned from package 'general' to 'libc6-dev'. severity 635685 serious Bug #635685 [libc6-dev] general: gcc -m32 has no access to system-specific includes in multiarch world Severity set to 'serious' from 'normal' thanks Stopping processing here. Please contact me if you need assistance. -- 635685: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635685 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world
On Thu, Jul 28, 2011 at 11:39:50AM +0200, Sven Joachim wrote: On 2011-07-28 10:58 +0200, Tim Northover wrote: Package: general Severity: normal It looks like gcc -m32 has been partially broken by the recent hiving off of various headers to /usr/include/x86_64-linux-gnu. In particular a program consisting of the single line #include features.h fails with the error: In file included from tmp.c:1:0: /usr/include/features.h:356:25: fatal error: sys/cdefs.h: No such file or directory compilation terminated. I suspect multiple packages are involved: cpp -m32 -v reports not searching /usr/include/i386-linux-gnu (or equivalent) so gcc packages are probably iffy; but even if it did there's nothing there to find so either the gcc-*-multilib or libc6-dev (or possibly even an entirely new gcc-*-multiheader one) will need updating. Confirmed here on i386, ncurses biarch build is broken: This is not confirming the bug, the behavior you quote below is entirely the opposite of what the submitter was reporting. Tim, what version of libc6-dev-i386 do you have installed? I cannot reproduce this problem with 2.13-11. , | $ LANG=C debian/rules build-64 | [...] | make[2]: Entering directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64/ncurses' | gcc -o make_hash -DHAVE_CONFIG_H -I../ncurses -I/usr/local/src/deb-src/ncurses/ncurses/ncurses -I/usr/local/src/deb-src/ncurses/ncurses/ncurses/../include -I../include -DUSE_BUILD_CC /usr/local/src/deb-src/ncurses/ncurses/ncurses/tinfo/make_hash.c | In file included from /usr/include/stdlib.h:320:0, | from /usr/local/src/deb-src/ncurses/ncurses/ncurses/build.priv.h:61, | from /usr/local/src/deb-src/ncurses/ncurses/ncurses/tinfo/make_hash.c:40: | /usr/include/i386-linux-gnu/sys/types.h:99:17: error: two or more data types in declaration specifiers | make[2]: *** [make_hash] Error 1 | make[2]: Leaving directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64/ncurses' | make[1]: *** [all] Error 2 | make[1]: Leaving directory `/usr/local/src/deb-src/ncurses/ncurses/obj-64' | make: *** [build-64] Error 2 ` It seems libc6-dev multiarch support needs to go back to the drawing board again. Sven, please file a separate bug report for this issue. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developerhttp://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: Digital signature