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

Bug#637218: /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory



merge 629819 637218
thanks

On Tue, Aug 09, 2011 at 05:30:33PM +0200, Sedat Dilek wrote:
> Package: libc6-dev-amd64
> Version: 2.13-16
> Severity: normal
> 
> Hi,
> 
> I thought this stuff is fixed?
> When building gcc-4.7 snapshot, I get again this "gnu/stubs-32.h" error.
> 
> My build breaks like this:
> ...
> /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such
> file or directory
> compilation terminated.
> 
> Investigating:
> 
> $ LC_ALL=C ls -l /usr/include/gnu/
> total 20
> -rw-r--r-- 1 root root 2943 Aug  9 15:41 lib-names.h
> -rw-r--r-- 1 root root 1337 Aug  9 15:41 libc-version.h
> -rw-r--r-- 1 root root 1813 Aug  9 15:45 option-groups.h
> -rw-r--r-- 1 root root  604 Aug  9 15:45 stubs-64.h
> -rw-r--r-- 1 root root  315 Aug  9 15:41 stubs.h
> 
> $ dpkg -S /usr/include/gnu/stubs.h
> libc6-dev-amd64: /usr/include/gnu/stubs.h
> 
> ( Not sure if this a good idea that /usr/include/{bits,gnu,sys}/*.h
> belongs to libc6-dev-amd64 package. )

It is normal, given that some people wants to keep multilib enabled,
even with multiarch. The i386 version is in
/usr/include/i386-linux-gnu/{bits,gnu,sys}/*.h .

> In previous eglibc packages {bits,gnu,sys} dirs were symlinked to
> i386-linux-gnu/{bits,gnu,sys}, now:
> 
> $ l /usr/include/i386-linux-gnu/
> insgesamt 72
> drwxr-xr-x   5 root root  4096  9. Aug 15:51 .
> drwxr-xr-x 116 root root 20480  9. Aug 15:51 ..
> drwxr-xr-x   2 root root 12288  9. Aug 15:51 bits
> -rw-r--r--   1 root root 10883 11. Jun 21:58 ffi.h
> -rw-r--r--   1 root root  3496 11. Jun 21:58 ffitarget.h
> -rw-r--r--   1 root root  3291  9. Aug 15:17 fpu_control.h
> drwxr-xr-x   2 root root  4096  9. Aug 15:51 gnu
> drwxr-xr-x   2 root root 12288  9. Aug 15:51 sys

Normal again, the files in /usr/include/i386-linux-gnu/ are i386 only
and can't be used for x86-64. See bug #637000.

> $ l /usr/include/i386-linux-gnu/gnu/stubs*
> -rw-r--r-- 1 root root 624  9. Aug 15:20
> /usr/include/i386-linux-gnu/gnu/stubs-32.h
> -rw-r--r-- 1 root root 315  9. Aug 15:17 /usr/include/i386-linux-gnu/gnu/stubs.h

stubs-32.h is only there because it's an i386 only header. The problem
is that your compiler  is not multiarch aware. Everything is correct in
the package side.

It's basically the same bug than #629819 (crti.o, crt1.o), but for the
headers. The same workaround, explained in NEWS.Debian.gz applies. I am
therefore merging the bugs. 

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net



Reply to: