Actuellement, j'essaie de construire un Linux embarqué à partir de zéro avec les instructions de Cross Linux from Scratch .
Tout a bien fonctionné jusqu'à ce que j'essaie de compiler le GCC Cross-Compiler. Je veux construire le Linux pour le Beagleboard-xM ... J'ai donc choisi les paramètres suivants:
export CLFS_ABI="aapcs-linux"
export CLFS_HOST="x86_64-cross-linux-gnu"
export CLFS_TARGET="armv7a-unknown-linux-uclibceabi"
export CLFS_ARCH="arm"
export CLFS_ENDIAN="little"
export CLFS_ARM_ARCH="armv7"
export CLFS_ARM_MODE="arm"
export CLFS_FLOAT="hard"
export CLFS_FPU="neon"
Non dès que j'essaie d'exécuter les instructions de cette page, la commande rencontre make all-gcc all-target-libgcc
une erreur.
checking for armv7a-unknown-linux-uclibceabi-gcc... /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include
checking for suffix of object files... configure: error: in `/mnt/clfs/sources/gcc-build/armv7a-unknown-linux-uclibceabi/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make: *** [configure-target-libgcc] Error 1
et cela /mnt/clfs/sources/gcc-build/armv7a-unknown-linux-uclibceabi/libgcc/config.log
ressemble à ceci:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by GNU C Runtime Library configure 1.0, which was
generated by GNU Autoconf 2.64. Invocation command line was
$ /mnt/clfs/sources/gcc-4.6.0/libgcc/configure --cache-file=./config.cache --with-cross-host=x86_64-cross-linux-gnu --prefix=/mnt/clfs/cross-tools --with-sysroot=/mnt/clfs --disable-nls --disable-shared --without-headers --with-newlib --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-threads --disable-multilib --with-abi=aapcs-linux --with-arch=armv7 --with-mode=arm --with-float=hard --with-fpu=neon --enable-languages=c,lto --program-transform-name=s&^&armv7a-unknown-linux-uclibceabi-& --disable-option-checking --with-target-subdir=armv7a-unknown-linux-uclibceabi --build=x86_64-cross-linux-gnu --host=armv7a-unknown-linux-uclibceabi --target=armv7a-unknown-linux-uclibceabi --srcdir=../../../gcc-4.6.0/libgcc
## --------- ##
## Platform. ##
## --------- ##
hostname = virtualUbuntu
uname -m = x86_64
uname -r = 3.2.0-31-generic
uname -s = Linux
uname -v = #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /mnt/clfs/cross-tools/bin
PATH: /bin
PATH: /usr/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:1742: creating cache ./config.cache
configure:1903: checking for --enable-version-specific-runtime-libs
configure:1916: result: no
configure:1964: checking for a BSD-compatible install
configure:2032: result: /usr/bin/install -c
configure:2048: checking for gawk
configure:2075: result: gawk
configure:2095: checking build system type
configure:2109: result: x86_64-cross-linux-gnu
configure:2129: checking host system type
configure:2142: result: armv7a-unknown-linux-uclibceabi
configure:2245: checking for armv7a-unknown-linux-uclibceabi-ar
configure:2272: result: /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ar
configure:2337: checking for armv7a-unknown-linux-uclibceabi-lipo
configure:2364: result: armv7a-unknown-linux-uclibceabi-lipo
configure:2429: checking for armv7a-unknown-linux-uclibceabi-nm
configure:2456: result: /mnt/clfs/sources/gcc-build/./gcc/nm
configure:2521: checking for armv7a-unknown-linux-uclibceabi-ranlib
configure:2548: result: /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ranlib
configure:2613: checking for armv7a-unknown-linux-uclibceabi-strip
configure:2640: result: /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/strip
configure:2702: checking whether ln -s works
configure:2706: result: yes
configure:2723: checking for armv7a-unknown-linux-uclibceabi-gcc
configure:2750: result: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include
configure:3019: checking for C compiler version
configure:3028: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include --version >&5
xgcc (GCC) 4.6.0
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:3039: $? = 0
configure:3028: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include -v >&5
Reading specs from /mnt/clfs/sources/gcc-build/./gcc/specs
COLLECT_GCC=/mnt/clfs/sources/gcc-build/./gcc/xgcc
COLLECT_LTO_WRAPPER=/mnt/clfs/sources/gcc-build/./gcc/lto-wrapper
Target: armv7a-unknown-linux-uclibceabi
Configured with: ../gcc-4.6.0/configure --prefix=/mnt/clfs/cross-tools --build=x86_64-cross-linux-gnu --host=x86_64-cross-linux-gnu --target=armv7a-unknown-linux-uclibceabi --with-sysroot=/mnt/clfs --disable-nls --disable-shared --with-mpfr=/mnt/clfs/cross-tools --with-gmp=/mnt/clfs/cross-tools --with-mpc=/mnt/clfs/cross-tools --without-headers --with-newlib --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-threads --enable-languages=c --disable-multilib --with-abi=aapcs-linux --with-arch=armv7 --with-mode=arm --with-float=hard --with-fpu=neon
Thread model: single
gcc version 4.6.0 (GCC)
configure:3039: $? = 0
configure:3028: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include -V >&5
xgcc: error: unrecognized option '-V'
xgcc: fatal error: no input files
compilation terminated.
configure:3039: $? = 1
configure:3028: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include -qversion >&5
xgcc: error: unrecognized option '-qversion'
xgcc: fatal error: no input files
compilation terminated.
configure:3039: $? = 1
configure:3055: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include -o conftest -g -O2 conftest.c >&5
conftest.c:1:0: error: target CPU does not support ARM mode
configure:3058: $? = 1
configure:3246: checking for suffix of object files
configure:3268: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include -c -g -O2 conftest.c >&5
conftest.c:1:0: error: target CPU does not support ARM mode
configure:3272: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3286: error: in `/mnt/clfs/sources/gcc-build/armv7a-unknown-linux-uclibceabi/libgcc':
configure:3289: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=x86_64-cross-linux-gnu
ac_cv_env_CC_set=set
ac_cv_env_CC_value=' /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include '
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-g -O2'
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=set
ac_cv_env_build_alias_value=x86_64-cross-linux-gnu
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=armv7a-unknown-linux-uclibceabi
ac_cv_env_target_alias_set=set
ac_cv_env_target_alias_value=armv7a-unknown-linux-uclibceabi
ac_cv_host=armv7a-unknown-linux-uclibceabi
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AR=/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ar
ac_cv_prog_AWK=gawk
ac_cv_prog_CC=' /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include '
ac_cv_prog_LIPO=armv7a-unknown-linux-uclibceabi-lipo
ac_cv_prog_NM=/mnt/clfs/sources/gcc-build/./gcc/nm
ac_cv_prog_RANLIB=/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ranlib
ac_cv_prog_STRIP=/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/strip
## ----------------- ##
## Output variables. ##
## ----------------- ##
AR='/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ar'
AWK='gawk'
CC=' /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include '
CFLAGS='-g -O2'
CPP=''
CPPFLAGS=''
DEFS=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EXEEXT=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIPO='armv7a-unknown-linux-uclibceabi-lipo'
LN_S='ln -s'
LTLIBOBJS=''
MAINT='#'
NM='/mnt/clfs/sources/gcc-build/./gcc/nm'
OBJEXT=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME='GNU C Runtime Library'
PACKAGE_STRING='GNU C Runtime Library 1.0'
PACKAGE_TARNAME='libgcc'
PACKAGE_URL='http://www.gnu.org/software/libgcc/'
PACKAGE_VERSION='1.0'
PATH_SEPARATOR=':'
RANLIB='/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ranlib'
SHELL='/bin/bash'
STRIP='/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/strip'
ac_ct_CC=''
asm_hidden_op=''
bindir='${exec_prefix}/bin'
build='x86_64-cross-linux-gnu'
build_alias='x86_64-cross-linux-gnu'
build_cpu='x86_64'
build_libsubdir='build-x86_64-cross-linux-gnu'
build_os='linux-gnu'
build_subdir='build-x86_64-cross-linux-gnu'
build_vendor='cross'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
decimal_float=''
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
enable_decimal_float='no'
enable_shared='no'
exec_prefix='NONE'
extra_parts=''
fixed_point=''
host='armv7a-unknown-linux-uclibceabi'
host_alias='armv7a-unknown-linux-uclibceabi'
host_cpu='armv7a'
host_noncanonical='armv7a-unknown-linux-uclibceabi'
host_os='linux-uclibceabi'
host_subdir='.'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
libgcc_topdir='../../../gcc-4.6.0/libgcc/..'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/mnt/clfs/cross-tools'
program_transform_name='s&^&armv7a-unknown-linux-uclibceabi-&'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
set_have_cc_tls=''
set_use_emutls=''
sharedstatedir='${prefix}/com'
slibdir='$(exec_prefix)/$(host_noncanonical)/lib'
sysconfdir='${prefix}/etc'
target_alias='armv7a-unknown-linux-uclibceabi'
target_noncanonical='armv7a-unknown-linux-uclibceabi'
target_subdir='armv7a-unknown-linux-uclibceabi'
tmake_file=''
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
toolexeclibdir='$(toolexecdir)/lib'
vis_hide=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME "GNU C Runtime Library"
#define PACKAGE_TARNAME "libgcc"
#define PACKAGE_VERSION "1.0"
#define PACKAGE_STRING "GNU C Runtime Library 1.0"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL "http://www.gnu.org/software/libgcc/"
configure: exit 1
Qu'est-ce que je rate?
embedded
gcc
arm
cross-compilation
Pascal
la source
la source
CLFS_ARCH="thumb"
marche mieux? Je ne sais pas pourquoi le bras ne fonctionnerait pas, AFAIK uClibc prend en charge les deux.configure:3039: $? = 0 configure:3028: /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include -V >&5 xgcc: error: unrecognized option '-V' xgcc: fatal error: no input files compilation terminated.
il faut essayer de trouver la version xgcc avec-V
mais sur mon ubuntu seulement les-v
oeuvres ...Réponses:
Les erreurs proviennent probablement d'une mauvaise combinaison de variables de construction.
La page CLFS Build Variable contient des explications détaillées sur les meilleures combinaisons de paramètres de variables pour différentes architectures.
Des problèmes de script de configuration similaires ont été résolus en remplaçant la
CLFS_ARCH
variable parthumb
Pour une autre erreur de script de configuration BeagleBoard similaire , l'ensemble de variables suivant semble faire l'affaire:
ARMv7-A Thumb-2 - Little-Endian, Soft-Float, GLIBC
Si vous avez utilisé CLFS 1.xx, envisagez d'utiliser CLFS 2.xx pour une approche de génération plus propre, avec une documentation mise à jour .
Le meilleur endroit pour discuter des problèmes CLFS est dans la liste de diffusion clfs-support , essayez d'y poser votre question pour plus d'informations.
la source