Summary: | Compilation cannot find file asm/errno.h | ||
---|---|---|---|
Product: | gcc | Reporter: | Blanca Mancilla <blancalmancilla> |
Component: | bootstrap | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | blancalmancilla |
Priority: | P3 | ||
Version: | 4.7.0 | ||
Target Milestone: | --- | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | ||
Attachments: | output of "gcc -v -x c /dev/null -c" |
Description
Blanca Mancilla
2011-05-05 05:10:23 UTC
I succeeded in compiling by serring the following environment variables: export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu is this the right way? Blanca (In reply to comment #0) > Hi, > I recently upgraded from Ubuntu 10.10 to 11.04, and upon the first attempted > compilation of 4.7.0, it crashed complaining of: > > ------------------------------------------------------------------------------ > In file included from /usr/include/bits/errno.h:25:0, > from /usr/include/errno.h:36, > from > /home/mancilla/current/soft/src/gcc-build-latest/../gcc-svn/libgcc/../gcc/tsystem.h:93, > from > /home/mancilla/current/soft/src/gcc-build-latest/../gcc-svn/libgcc/../gcc/libgcc2.c:29: > /usr/include/linux/errno.h:4:23: fatal error: asm/errno.h: No such file or > directory > compilation terminated. > ake[3]: *** [_muldi3.o] Error 1 > make[3]: Leaving directory > `/home/mancilla/current/soft/src/gcc-build-latest/x86_64-unknown-linux-gnu/libgcc' > make[2]: *** [all-stage1-target-libgcc] Error 2 > make[2]: Leaving directory `/home/mancilla/current/soft/src/gcc-build-latest' > make[1]: *** [stage1-bubble] Error 2 > make[1]: Leaving directory `/home/mancilla/current/soft/src/gcc-build-latest' > make: *** [all] Error 2 > > ------------------------------------------------------------------------------- > > After much browsing mailing lists and bug reports everywhere, it seems that the > problem lies on the linux headers (?). The directory in question used to be > /usr/include/linux and in my case it is now /usr/include/x86_64-linux-gnu. > After following sugestions, I tried setting CPPFLAGS, CFLAGS and CXXFLAGS to > -I/usr/include/x86_64-linux-gnu and then "-isystem > /usr/include/x86_64-linux-gnu" when calling configure and the result was: at > first CPPFLAGS was ignored and the same error accurred (setting CPPFLAGS). Then > stage 1 completed and the same error occurred at the begining of stage 2 > (setting just CFLAGS). Setting both CFLAGS nad CXXFLAGS got the compilation > further, but still a similar error. In this last attempt, it did not make a > difference whether > it was -I or -isystem: > > ---------------------------------------------------------------------------- > > In file included from /usr/include/bits/errno.h:25:0, > from /usr/include/errno.h:36, > from > /home/mancilla/current/soft/src/gcc-build-latest/../gcc-svn/libiberty/fnmatch.c:46: > /usr/include/linux/errno.h:4:23: fatal error: asm/errno.h: No such file or > directory > compilation terminated. > make[3]: *** [fnmatch.o] Error 1 > make[3]: Leaving directory > `/home/mancilla/current/soft/src/gcc-build-latest/libiberty' > make[2]: *** [all-stage2-libiberty] Error 2 > make[2]: Leaving directory `/home/mancilla/current/soft/src/gcc-build-latest' > make[1]: *** [stage2-bubble] Error 2 > make[1]: Leaving directory `/home/mancilla/current/soft/src/gcc-build-latest' > make: *** [all] Error 2 > > ----------------------------------------------------------------------------- > > I'm not too sure it this is the right place for reporting this. But it seems > that the compilation needs to know where is errno.h. Please let me know if it > is necessary to attach the full log of the build. > > Any advice would be greatfully appreciated. > > Regards, > Blanca Shouldn't this be Component=bootstrap not c++ ? I assume the linux-libc-dev package is installed? That provides asm/errno.h What compiler are you using to bootstrap? If it's the standard system compiler it should know to look in /usr/include/x86_64-linux-gnu, if not then it's a bug in the Ubuntu gcc package What is the output of "gcc -v -x c /dev/null -c" ? This is an Ubuntu packaging issue (or you lack some package), not a GCC issue, as errno.h is a standard header. Created attachment 24195 [details]
output of "gcc -v -x c /dev/null -c"
(In reply to comment #2) > Shouldn't this be Component=bootstrap not c++ ? Yes, sorry. > I assume the linux-libc-dev package is installed? That provides asm/errno.h Yes that is installed. > What compiler are you using to bootstrap? If it's the standard system compiler > it should know to look in /usr/include/x86_64-linux-gnu, if not then it's a bug > in the Ubuntu gcc package 4.5.2, which came with the distribution. > What is the output of "gcc -v -x c /dev/null -c" ? Is is attached. A bug in the Ubuntu gcc package confirms the fact that problems started after the upgrade. Thanks for clearing things out. Regards, Blanca On Ubuntu 11.10 (oneiric), linux-libc-dev installs to /usr/include/i386-linux-gnu (or whatever your arch is, I suspect). In order to get gcc to build, I had to symlink the dir: sudo ln -s /usr/include/i386-linux-gnu/asm /usr/include/asm Whether it's a bug in ubuntu gcc, or the libc-dev package, I dunno. I had the same problem, and fixed it by copying "/usr/include/i386-linux-gnu/" from another 32bit system to your current system. I your system doesn't have /usr/include/i386-linux-gnu/, GCC cannot find the right PATH to i386-linux-gnu This still happens with Ubuntu 12.04.3 and gcc 4.8.2. Are you sure this is just ubuntu error? I had to install linux-libc-dev:i386, but I'm building on 64 bit system for the host (which has properly installed linux-libc-dev that existing gcc has in include search path). Hi, installing linux-libc-dev:i386 resolved this issue for me (linux-libc-dev was already installed). |