problems with building binutils using script build-cross.sh
Knut C. Naue
knaue@c8m42.pi.tu-berlin.de
Tue Sep 10 05:07:00 GMT 2002
hi everyone
at
http://www.libsdl.org/extras/win32/cross/
i found the build-cross.sh script for a linux hosted mingw32 compiler.
file download works well. but building binutils i get the following
message in make.log
> make[1]: Wechsel in das Verzeichnis Verzeichnis »/home2/cross-gcc/script_mumid/binutils-i686-mingw32msvc/libiberty«
> if [ x"" != x ] && [ ! -d pic ]; then \
> mkdir pic; \
> else true; fi
> touch stamp-picdir
> if [ x"" != x ]; then \
> gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I/home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/../include -W -Wall -Wtraditional -pedantic /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c -o pic/regex.o; \
> else true; fi
> gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I/home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/../include -W -Wall -Wtraditional -pedantic /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c -o regex.o
> In file included from /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:198:
> /usr/local/include/ctype.h:101: syntax error before `int'
> In file included from /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:649:
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: In function `byte_regex_compile':
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:2527: warning: implicit declaration of function `free'
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:2588: warning: function `free' was previously declared within a block
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:2621: warning: function `free' was previously declared within a block
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:2728: warning: function `free' was previously declared within a block
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:3731: warning: function `free' was previously declared within a block
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:4238: warning: function `free' was previously declared within a block
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: In function `byte_compile_range':
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:4602: warning: signed and unsigned type in conditional expression
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:4612: warning: signed and unsigned type in conditional expression
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:4612: warning: signed and unsigned type in conditional expression
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: In function `byte_re_compile_fastmap':
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:4952: warning: implicit declaration of function `abort'
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: At top level:
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1380: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1382: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1383: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1385: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1386: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1388: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1389: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1391: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1392: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1394: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1395: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1397: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1398: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1400: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1401: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1403: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1404: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1406: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1407: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1409: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1410: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1412: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1413: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1415: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1416: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1418: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1419: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1421: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1422: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1424: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1425: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:1427: warning: traditional C rejects string concatenation
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: In function `xregcomp':
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:8099: warning: signed and unsigned type in conditional expression
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:8138: warning: function `free' was previously declared within a block
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: In function `xregexec':
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:8217: warning: function `free' was previously declared within a block
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: In function `xregerror':
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:8234: warning: unused parameter `preg'
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c: In function `xregfree':
> /home2/cross-gcc/script_mumid/source/binutils-2.13-20020808-1/libiberty/regex.c:8283: warning: function `free' was previously declared within a block
> make[1]: *** [regex.o] Fehler 1
> make[1]: Verlassen des Verzeichnisses Verzeichnis »/home2/cross-gcc/script_mumid/binutils-i686-mingw32msvc/libiberty«
> make: *** [all-libiberty] Fehler 2
seems to me as if ctype.h is searched in the wrong path.
has anyone experienced the same problem?
how to fix this problem?
thanx
knut ;-)
#
# B U I L D - C R O S S . S H
#
> #!/bin/sh
>
> # This is my script for building a complete cross-compiler toolchain.
> # It is based partly on Ray Kelm's script, which in turn was built on
> # Mo Dejong's script for doing the same, but with some added fixes.
> # The intent with this script is to build a cross-compiled version
> # of the current MinGW environment.
> #
> # Updated by Sam Lantinga <slouken@libsdl.org>
>
> # what flavor are we building?
> TARGET=i686-mingw32msvc
>
> # where does it go?
> #PREFIX=/usr/local/cross-tools
> PREFIX=/home2/cross-gcc/script_mumid/cross-tools
>
> # you probably don't need to change anything from here down
>
> TOPDIR=`pwd`
> SRCDIR="$TOPDIR/source"
>
> # These are the files from the MinGW 1.1 release
> MINGW_URL=http://unc.dl.sourceforge.net/sourceforge/mingw
> #GCC=gcc-2.95.3-20010828
> GCC=gcc-3.2-20020817-1
> GCC_ARCHIVE=$GCC.src.tar.gz
> GCC_PATCH=""
> #BINUTILS=binutils-2.11.90-20010915
> BINUTILS=binutils-2.13-20020808-1
> BINUTILS_ARCHIVE=$BINUTILS-src.tar.gz
> #MINGW=mingw-runtime-1.1
> MINGW=mingw-runtime-2.2
> MINGW_ARCHIVE=$MINGW.tar.gz
> #W32API=w32api-1.1
> W32API=w32api-1.5
> W32API_ARCHIVE=$W32API.tar.gz
>
> # These are the files from the SDL website
> SDL_URL=http://www.libsdl.org/extras/win32/common
> OPENGL_ARCHIVE=opengl-devel.tar.gz
> DIRECTX_ARCHIVE=directx-devel.tar.gz
>
> # need install directory first on the path so gcc can find binutils
> PATH="$PREFIX/bin:$PATH"
>
> #
> # download a file from a given url, only if it is not present
> #
>
> download_file()
> {
> cd "$SRCDIR"
> if test ! -f $1 ; then
> echo "Downloading $1"
> wget "$2/$1"
> if test ! -f $1 ; then
> echo "Could not download $1"
> exit 1
> fi
> else
> echo "Found $1 in the srcdir $SRCDIR"
> fi
> cd "$TOPDIR"
> }
>
> download_files()
> {
> mkdir -p "$SRCDIR"
>
> # Make sure wget is installed
> if test "x`which wget`" = "x" ; then
> echo "You need to install wget."
> exit 1
> fi
> download_file "$GCC_ARCHIVE" "$MINGW_URL"
> download_file "$BINUTILS_ARCHIVE" "$MINGW_URL"
> download_file "$MINGW_ARCHIVE" "$MINGW_URL"
> download_file "$W32API_ARCHIVE" "$MINGW_URL"
> download_file "$OPENGL_ARCHIVE" "$SDL_URL"
> download_file "$DIRECTX_ARCHIVE" "$SDL_URL"
> }
>
> install_libs()
> {
> echo "Installing cross libs and includes"
> mkdir -p "$PREFIX/$TARGET"
> cd "$PREFIX/$TARGET"
> gzip -dc "$SRCDIR/$MINGW_ARCHIVE" | tar xf -
> gzip -dc "$SRCDIR/$W32API_ARCHIVE" | tar xf -
> gzip -dc "$SRCDIR/$OPENGL_ARCHIVE" | tar xf -
> gzip -dc "$SRCDIR/$DIRECTX_ARCHIVE" | tar xf -
> cd "$TOPDIR"
> }
>
> extract_binutils()
> {
> cd "$SRCDIR"
> rm -rf "$BINUTILS"
> echo "Extracting binutils"
> gzip -dc "$SRCDIR/$BINUTILS_ARCHIVE" | tar xf -
> cd "$TOPDIR"
> }
>
> configure_binutils()
> {
> cd "$TOPDIR"
> rm -rf "binutils-$TARGET"
> mkdir "binutils-$TARGET"
> cd "binutils-$TARGET"
> echo "Configuring binutils"
> "$SRCDIR/$BINUTILS/configure" --prefix="$PREFIX" --target=$TARGET &> configure.log
> cd "$TOPDIR"
> }
>
> build_binutils()
> {
> cd "$TOPDIR/binutils-$TARGET"
> echo "Building binutils"
> make &> make.log
> if test $? -ne 0; then
> echo "make failed - log available: binutils-$TARGET/make.log"
> exit 1
> fi
> cd "$TOPDIR"
> }
>
> install_binutils()
> {
> cd "$TOPDIR/binutils-$TARGET"
> echo "Installing binutils"
> make install &> make-install.log
> if test $? -ne 0; then
> echo "install failed - log available: binutils-$TARGET/make-install.log"
> exit 1
> fi
> cd "$TOPDIR"
> }
>
> extract_gcc()
> {
> cd "$SRCDIR"
> rm -rf "$GCC"
> echo "Extracting gcc"
> gzip -dc "$SRCDIR/$GCC_ARCHIVE" | tar xf -
> cd "$TOPDIR"
> }
>
> patch_gcc()
> {
> if [ "$GCC_PATCH" != "" ]; then
> echo "Patching gcc"
> cd "$SRCDIR/$GCC"
> patch -p1 < "$SRCDIR/$GCC_PATCH"
> cd "$TOPDIR"
> fi
> }
>
> configure_gcc()
> {
> cd "$TOPDIR"
> rm -rf "gcc-$TARGET"
> mkdir "gcc-$TARGET"
> cd "gcc-$TARGET"
> echo "Configuring gcc"
> "$SRCDIR/$GCC/configure" -v \
> --prefix="$PREFIX" --target=$TARGET \
> --with-headers="$PREFIX/$TARGET/include" \
> --with-gnu-as --with-gnu-ld \
> --without-newlib --disable-multilib &> configure.log
> cd "$TOPDIR"
> }
>
> build_gcc()
> {
> cd "$TOPDIR/gcc-$TARGET"
> echo "Building gcc"
> make LANGUAGES="c c++" &> make.log
> if test $? -ne 0; then
> echo "make failed - log available: gcc-$TARGET/make.log"
> exit 1
> fi
> cd "$TOPDIR"
> }
>
> install_gcc()
> {
> cd "$TOPDIR/gcc-$TARGET"
> echo "Installing gcc"
> make LANGUAGES="c c++" install &> make-install.log
> if test $? -ne 0; then
> echo "install failed - log available: gcc-$TARGET/make-install.log"
> exit 1
> fi
> cd "$TOPDIR"
> }
>
> final_tweaks()
> {
> echo "Finalizing installation"
>
> # remove gcc build headers
> rm -rf "$PREFIX/$TARGET/sys-include"
>
> # make cc and c++ symlinks to gcc and g++
> if [ ! -f "$PREFIX/$TARGET/bin/g++" ]; then
> ln "$PREFIX/bin/$TARGET-g++" "$PREFIX/$TARGET/bin/g++"
> fi
> if [ ! -f "$PREFIX/$TARGET/bin/cc" ]; then
> ln -s "gcc" "$PREFIX/$TARGET/bin/cc"
> fi
> if [ ! -f "$PREFIX/$TARGET/bin/c++" ]; then
> ln -s "g++" "$PREFIX/$TARGET/bin/c++"
> fi
>
> # strip all the binaries
> ls "$PREFIX"/bin/* "$PREFIX/$TARGET"/bin/* | egrep -v '.dll$' |
> while read file; do
> strip "$file"
> done
>
> echo "Installation complete!"
> }
>
> download_files
>
> install_libs
>
> extract_binutils
> configure_binutils
> build_binutils
> install_binutils
>
> extract_gcc
> patch_gcc
> configure_gcc
> build_gcc
> install_gcc
>
> final_tweaks
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list