crosscompiler from i686-pc-linux-gnu to x86_64-pc-linux-gnu toolchain
Juraj Lutter
jlutter@cisco.com
Thu Jan 25 19:51:00 GMT 2007
Folks,
I turn to you because I seem to be really stuck.
I have:
- binutils 2.17
- gcc 3.4.6
- glibc 2.3.6
what I need to achieve is to have ``multilib'' support in this
toolchain which I can't manage to work :-( I need to have
both 32-bit and 64-bit of glibc compiled using this compiler.
Build platform for toolchain is i686-pc-linux-gnu or x86_64-pc-linux-gnu
with
resulting binaries running on x86_64-pc-linux-gnu.
gcc should support both -m32 and -m64 as well as probably the rest of
the tools need.
So far I've managed to build toolchain from i686 to x86_64 using
binutils, gcc-stage1, glibc and gcc-stage2.
Options used to generate:
binutils
--------
--prefix=${[TOOLCHAIN_PREFIX]} \
--disable-nls \
--disable-multilib \
--enable-shared \
--with-lib-path=${[TOOLCHAIN_TARGET_PREFIX]}/lib \
--host=${[GNU_CONFIGURE_TRIPLET_BUILD]} \
--build=${[GNU_CONFIGURE_TRIPLET_BUILD]} \
--target=${[GNU_CONFIGURE_TRIPLET_TARGET]}
gcc-stage1
----------
--prefix=${[TOOLCHAIN_PREFIX]} \
--host=${[GNU_CONFIGURE_TRIPLET_BUILD]} \
--build=${[GNU_CONFIGURE_TRIPLET_BUILD]} \
--target=${[GNU_CONFIGURE_TRIPLET_TARGET]} \
--disable-multilib \
--with-local-prefix=${[TOOLCHAIN_GCC_BUILD_DIR]} \
--disable-nls \
--disable-shared \
--disable-threads \
--enable-languages=c
glibc
-----
cd ${[TOOLCHAIN_BUILD_DIR]} && echo "libc_cv_forced_unwind=yes"
> config.cache
cd ${[TOOLCHAIN_BUILD_DIR]} && echo "libc_cv_c_cleanup=yes" >>
config.cache
cd ${[TOOLCHAIN_BUILD_DIR]} &&
CC="${[TOOLCHAIN_TARGET_PREFIX]}/bin/gcc"
AR="${[TOOLCHAIN_TARGET_PREFIX]}/bin/ar" RANLIB="${
[TOOLCHAIN_TARGET_PREFIX]}/bin/ranlib" BUILD_CC="/usr/bin/gcc" sh
${[CWD]}/$(SUB)/configure \
--prefix=${[TOOLCHAIN_TARGET_PREFIX]} \
--host=${[GNU_CONFIGURE_TRIPLET_TARGET]} \
--build=${[GNU_CONFIGURE_TRIPLET_BUILD]} \
--disable-profile \
--enable-add-ons \
--with-tls \
--enable-kernel=2.6.0 \
--with-__thread \
--with-binutils=${[TOOLCHAIN_TARGET_PREFIX]}/bin \
--with-headers=$(INCLUDE_TARGET) \
--cache-file=config.cache
gcc-stage2
----------
cd ${[TOOLCHAIN_GCC_BUILD_DIR]} && \
PATH="${[TOOLCHAIN_BASE]}/usr/bin:${PATH}" \
RANLIB="${[TOOLCHAIN_BASE]}/usr/bin/${[GNU_CONFIGURE_TRIPLET_TARGET]}-ranlib"
\
RANLIB_FOR_TARGET="${[TOOLCHAIN_BASE]}/usr/bin/${[GNU_CONFIGURE_TRIPLET_TARGET]}-ranlib"
\
AR="${[TOOLCHAIN_BASE]}/usr/bin/${[GNU_CONFIGURE_TRIPLET_TARGET]}-ar" \
AR_FOR_TARGET="${AR}" \
AS_FOR_TARGET="${[TOOLCHAIN_BASE]}/usr/bin/${[GNU_CONFIGURE_TRIPLET_TARGET]}-as"
\
LD_FOR_TARGET="${[TOOLCHAIN_BASE]}/usr/bin/${[GNU_CONFIGURE_TRIPLET_TARGET]}-ld"
\
sh ${[CWD]}/$(SUB)/configure \
--prefix=${[TOOLCHAIN_PREFIX]} \
--host=${[GNU_CONFIGURE_TRIPLET_BUILD]} \
--build=${[GNU_CONFIGURE_TRIPLET_BUILD]} \
--target=${[GNU_CONFIGURE_TRIPLET_TARGET]} \
--disable-multilib \
--with-local-prefix=${[TOOLCHAIN_GCC_BUILD_DIR]} \
--disable-nls \
--enable-shared \
--enable-languages=c,c++ \
--enable-__cxa_atexit \
--enable-c99 \
--enable-long-long \
--enable-threads=posix
Using the above options I'm able to compile on i686 platform binaries
for x86_64 platform but as soon as I start to fiddle with multilib
support, I start to get errors regarding incompatible libc and so on.
Obviously I'm getting something wrong. Can someone of you point me to
the right direction where can I have look at?
TIA,
otis
--
Juraj Lutter | |
Software Developer :|: :|:
SRBU Service Node :|||: :|||:
phone: +421 907 986 576 .:|||||||:...:|||||||:.
email: jlutter@cisco.com C i s c o S y s t e m s
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list