Building GCC Failed: stubs-32.h missing

ronf ron@dock.net
Mon Feb 10 21:04:00 GMT 2014


I want to build gcc from source on my CentOS 6 x86-64 Linux system, but I am 
having a serious problem with the "configure" scripts and make files. The 
build process insists on accessing "stubs-32.h" even though my Linux system 
lacks this header file. My system has stubs.h and stubs-64.h header files in 
the /usr/include/gnu directory. The content of stubs.h is shown here: 

  /* This file selects the right generated file of `__stub_FUNCTION' macros
     based on the architecture being compiled for.  */

  #include <bits/wordsize.h>

  #if __WORDSIZE == 32
  # include <gnu/stubs-32.h>
  #elif __WORDSIZE == 64
  # include <gnu/stubs-64.h>
  #else
  # error "unexpected value for __WORDSIZE macro"
  #endif


The gcc source was obtained from ftp.gnu.org in the file gcc-4.8.2.tar.gz 
along with source for the GMP 4.3.2, ISL 4.11.1, MPFR 2.4.2, MPC 0.8.1 and 
CLooG 0.18.0 libraries. The GMP, ISL, MPFR, MPC and CLooG libraries build 
easily using their "configure" scripts and make files. For the gcc build, I 
let the configure script and make files for gcc also build the GMP, MPFR 
and MPC libraries since the gcc build can do this. 

In order to avoid the problem with the missing stubs-32.h file, I set the 
environment variables with 

  export CFLAGS=-D__WORDSIZE=64
  export CPPFLAGS=-D__WORDSIZE=64
  export CXXFLAGS=-D__WORDSIZE=64

and used the 

  --with-cpu-64=x86-64 --with-arch-64=x86-64 --with-tune-64=x86-64 and 
  --disable-isl-version-check 

options with the configure script. Despite all this, the build insisted on 
having the stubs-32.h file. I tried copying the stubs-64.h to stubs-32.h 
but this failed because the libraries coresponding to stubs-32.h were not 
made. 

I decided to build a new version of my glibc libraries that would have the 
stubs-32.h file. I downloaded glibc-2.12.2.tar.gz to compile it. However, 
the build of this glibc noted that I had a x86-64 GNU/Linux system and, 
thus, made the stubs-64.h file but omitted building the stubs-32.h file. 

CentOS has a GUI that helps manage software packages. I try to use this GUI, 
rather than using yum or rpm directly, because I believe I may run into 
trouble by mixing package managers. Thus, I tried to have the GUI install a 
glibc-devel package with stubs-32, but the GUI refused because I have a 
64-bit CentOS system. 

The versions of gcc packaged with CentOS 6 have internal errors when trying 
to compile some software packages such as the Healpy software. Since the 
CentOS GUI refuses to upgrade gcc to versions that don't fail, I wanted to 
have an auxilliary installation of gcc that would compile software without 
the internal errors. Compiling from source seems to be the safest way since 
the control provided by source prevents interference with my system 
installation. Since I want to avoid fouling my system, I frequently install 
software in private directories rather than system directories. 

Surely gcc is supposed to build itself. How can I get gcc to build? 




--
View this message in context: http://gcc.1065356.n5.nabble.com/Building-GCC-Failed-stubs-32-h-missing-tp1010178.html
Sent from the gcc - Help mailing list archive at Nabble.com.



More information about the Gcc-help mailing list