Bug#635685: general: gcc -m32 has no access to system-specific includes in multiarch world

2011-07-29 Thread Sven Joachim
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

2011-07-29 Thread Sven Joachim
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

2011-07-29 Thread Steve Langasek
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

2011-07-29 Thread Sven Joachim
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

2011-07-29 Thread Steve Langasek
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

2011-07-29 Thread Sven Joachim
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

2011-07-28 Thread Debian Bug Tracking System
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

2011-07-28 Thread Steve Langasek
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