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

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



Reply to: