[Clfs-support] clfs_git:
William Harrington
kb0iic at berzerkula.org
Mon Jun 3 09:05:51 PDT 2013
On Jun 3, 2013, at 10:41 AM, Charlie Brown wrote:
> I'm having trouble compiling gcc in Chapter 6. Constructing a
> Temporary System.
> ----------------------------------------
> BOOK: GIT-20130602-x86_64-Multilib
> host: debian 7, x86_64
> target: x86_64
> $CLFS_HOST=x86_64-cross-linux-gnu $CLFS_TARGET=x86_64-unknown-linux-
> gnu $BUILD32=-m32 $BUILD64=-m64
>
> Thanks in advance.
> I have to apologize that I didn't follow the version of gcc in the
> book(4.6.3), but jumped to 4.8.1. I know things got greatly changed
> with 4.8, and that's why I want to try it out:). Everything went
> (relatively) smooth when building /cross-tools, but got totally
> stuck at gcc for /tools.
> Here's what I did:
> ------------------
> for file in \
> $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
> do
> cp -uv $file{,.orig}
> sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
> -e 's@/usr@/tools at g' $file.orig > $file
> cat >> $file << EOF
> #undef STANDARD_STARTFILE_PREFIX_1
> #undef STANDARD_STARTFILE_PREFIX_2
> #define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
> #define STANDARD_STARTFILE_PREFIX_2 ""
> EOF
> touch $file.orig
> done &&
> cp -uv gcc/Makefile.in{,.orig} && # ****************Borrowed from
> LFS-7.3. I think it's cleaner than the
> patch********************************
> sed -e "s@\(^NATIVE_SYSTEM_HEADER_DIR =\).*@\1 /tools/include at g" gcc/
> Makefile.in.orig > gcc/Makefile.in &&
> mkdir -v ../gcc-build &&
> cd ../gcc-build &&
> CC="${CC} ${BUILD64}" CXX="${CXX} ${BUILD64}" \
> ../gcc-4.8.1/configure --prefix=/tools \
> --libdir=/tools/lib64 --with-native-system-header-dir=/tools/
> include \ # Just in case
> --build=${CLFS_HOST} --host=${CLFS_TARGET} --target=${CLFS_TARGET} \
> --with-local-prefix=/tools --enable-long-long \
> --enable-c99 --enable-shared --enable-threads=posix \
> --enable-__cxa_atexit --disable-nls --enable-languages=c,c++ \
> --disable-libstdcxx-pch --enable-cloog-backend=isl &&
> cp -uv Makefile{,.orig} &&
> sed "/^HOST_\(GMP\|PPL\|CLOOG\)\(LIBS\|INC\)/s:-[IL]/\(lib\|include
> \)::" \
> Makefile.orig > Makefile &&
> make -j4 AS_FOR_TARGET="${AS}" LD_FOR_TARGET="${LD}" && #
> *********** The same with the clfs book **********
> make install
> ------------------------------
> And make failed:
> In file included from ../../gcc-4.8.1/gcc/errors.c:29:0:
> ../../gcc-4.8.1/gcc/system.h:444:23: error: declaration of C
> function 'void* sbrk(int)' conflicts with
> extern void *sbrk (int);
> ^
> In file included from ../../gcc-4.8.1/gcc/genmddeps.c:19:0:
> ../../gcc-4.8.1/gcc/system.h:444:23: error: declaration of C
> function 'void* sbrk(int)' conflicts with
> extern void *sbrk (int);
> ^
> In file included from ../../gcc-4.8.1/gcc/system.h:254:0,
> from ../../gcc-4.8.1/gcc/errors.c:29:
> /usr/include/unistd.h:1065:14: error: previous declaration 'void*
> sbrk(intptr_t)' here
> extern void *sbrk (intptr_t __delta) __THROW;
> ^
> In file included from ../../gcc-4.8.1/gcc/system.h:254:0,
> from ../../gcc-4.8.1/gcc/genmddeps.c:19:
> /usr/include/unistd.h:1065:14: error: previous declaration 'void*
> sbrk(intptr_t)' here
> extern void *sbrk (intptr_t __delta) __THROW;
> ^
> .............................
> //Generally a lot of conflicts between the host system headers and /
> tools/include/*.h
> #####################################
> make[2]: *** [build/errors.o] Error 1
>
> That's very interesting. Actually, x86_64-unknown-linux-gnu-g++ -v -
> c dummy.c gives this:
> #include "..." search starts here:
> #include <...> search starts here:
> /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/
> 4.8.1/../../../../x86_64-unknown-linux-gnu/include/c++/4.8.1
> /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/
> 4.8.1/../../../../x86_64-unknown-linux-gnu/include/c++/4.8.1/x86_64-
> unknown-linux-gnu
> /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/
> 4.8.1/../../../../x86_64-unknown-linux-gnu/include/c++/4.8.1/backward
> /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.1/
> include
> /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.1/
> include-fixed
> /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/
> 4.8.1/../../../../x86_64-unknown-linux-gnu/include
> /mnt/clfs/tools/include
> I think that means my cross-compiler works fine.
>
> And I found this line among other make output, right before the error:
> g++ -c -g -O2 -DIN_GCC ...... // And stuff
> The script is actually calling the host systems g++!
> I also found make calls:
> gcc -c -DHAVE_CONFIG_H ........
> which works well.
> I'm really frustrated. Can some one help me? Thanks!
>
> Sincerely,
> Charlie
> _______________________________________________
> Clfs-support mailing list
> Clfs-support at lists.cross-lfs.org
> http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
Upgrade to gcc 4.8.1 is a work in progress with a push possibly made
today once I test the multilib build with ppc64 multilib. view the
current rendered book here: https://www.berzerkula.org/~kb0iic/CLFS-GIT/html/index.html
Compare with what you did. You'll notice what you did to what we
have removed and added.
Also, you can view the clfs-support and clfs-dev mailing list archives
and see discussions about GCC update.
Sincerely,
William Harrington
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clfs.org/pipermail/clfs-support-clfs.org/attachments/20130603/a9f0cb13/attachment-0001.htm>
More information about the Clfs-support
mailing list