This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/43878] New: Building a cross gcc fails due to a bug in the build process


I am building gcc 4.4.3 with the following ./configure command line:

../gcc-4.4.3/configure --prefix=/some_path/build_tools
--program-prefix=build-tool- --build=i686-pc-linux-gnu
--host=i686-buildtools-linux-gnu
--with-gmp-include=/some_path/build_tools/include
--with-gmp-lib=/some_path/build_tools/lib
--with-mpfr-include=/some_path/build_tools/include
--with-mpfr-lib=/some_path/build_tools/lib
--with-ld=/some_path/build_tools/bin/build-tool-ld
--with-as=/some_path/build_tools/bin/build-tool-as --disable-nls
--disable-shared --disable-multilib --disable-decimal-float --disable-threads
--disable-libmudflap --disable-libssp --disable-libgomp --disable-bootstrap
--enable-languages=c

During the build process, libdecnumber is compiled - which works fine,
as the libdecnumber/configure script sets "enable_decimal_float" to "bid",
regardless of the "disable-decimal-float" option that was given on the toplevel
configure command line. 
The following code was extracted from libdecnumber/configure.ac:

# x86's use BID format instead of DPD
# In theory --enable-decimal-float=no should not compile anything
# For the sake of simplicity, just use the default format in this directory
if test x$enable_decimal_float = xyes -o x$enable_decimal_float = xno; then
  case $target in
    i?86*-*-linux* | x86_64*-*-linux*)
      enable_decimal_float=bid
      ;;
    *)
      enable_decimal_float=dpd
      ;;
  esac
fi

Later in the build process, gcc configures libgcc: 

>> Checking multilib configuration for libgcc...
>> mkdir -p -- i686-buildtools-linux-gnu/libgcc
>> Configuring in i686-buildtools-linux-gnu/libgcc

libgcc/configure, in contrary to libdecnumber/configure, leaves 
"enable_decimal_float" set to "no". 
The following code is extracted from libgcc/configure.ac:

# x86's use BID format instead of DPD
if test x$enable_decimal_float = xyes; then
  case $host in
    i?86*-*-linux* | x86_64*-*-linux*)
      enable_decimal_float=bid
      ;;
    *)
      enable_decimal_float=dpd
      ;;
  esac
fi

The resulting libgcc/Makefile then tries to build libdecnumber and fails,
as the relevant libdecnumber/bid/* files are not included.

This is an extract from libgcc/Makefile in:

ifeq ($(decimal_float),yes)
ifeq ($(enable_decimal_float),bid)
DECNUMINC = -I$(srcdir)/config/libbid -DENABLE_DECIMAL_BID_FORMAT
else
DECNUMINC = -I$(srcdir)/../libdecnumber/$(enable_decimal_float) \
            -I$(srcdir)/../libdecnumber
endif
else
DECNUMINC =
endif

"decimal_float" is "yes" on my system, "enable_decimal_float" is "no".
So with "DECNUMINC" being

>> -I$(srcdir)/../libdecnumber/$(enable_decimal_float) \
>>	    -I$(srcdir)/../libdecnumber

the build:

cc  -g -O2 -O2  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wcast-qual -Wold-style-definition  -isystem ./include 
-fPIC -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I. -I../.././gcc
-I../../../gcc-4.4.3/libgcc -I../../../gcc-4.4.3/libgcc/.
-I../../../gcc-4.4.3/libgcc/../gcc -I../../../gcc-4.4.3/libgcc/../include
-I../../../gcc-4.4.3/libgcc/../libdecnumber/no
-I../../../gcc-4.4.3/libgcc/../libdecnumber -DHAVE_CC_TLS -DUSE_TLS -o
decLibrary.o -MT decLibrary.o -MD -MP -MF decLibrary.dep -c
../../../gcc-4.4.3/libgcc/../libdecnumber/decLibrary.c

of course fails with errors of this kind:

../../../gcc-4.4.3/libgcc/../libdecnumber/decLibrary.c:27:24: error:
decimal128.h: No such file or directory


Yes, I can circumvent this by simply setting --decimal-float=bid or not setting
--decimal-float at all, but I guess some fine tuning regarding the building of
libdecnumber is required as well. 

Thanks a lot,

Frank


-- 
           Summary: Building a cross gcc fails due to a bug in the build
                    process
           Product: gcc
           Version: 4.4.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: fgn123 at freenet dot de
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-buildtools-linux-gnu
GCC target triplet: i686-buildtools-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43878


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]