Mi sono imbattuto in un problema simile cercando di creare libstdc++ da solo. Le opzioni di configurazione --enable-offload-target=x86_64-pc-linux-gnu
risolvi il problema e --disable-bootstrap
risparmiato un bel po' di tempo di compilazione. Dopo aver aggiunto il flag precedente, make all-target-libstdc++-v3
ha smesso di lamentarsi di xgcc e il compilatore non può creare eseguibili. Non c'è bisogno della patch di cui sopra, si spera che possa aiutare qualcun altro.
Ecco il problema:prima che tentassi di compilare libgcc
come hai descritto, hai costruito un compilatore incrociato estremamente scarno. Ora, parte dei test standard eseguiti dallo script configure consiste nel testare il compilatore per vedere se produrrà un file eseguibile funzionante in condizioni normali. Il tuo compilatore bare bone non può. Fortunatamente, per libgcc
, non è necessario produrre un eseguibile, solo una libreria statica libgcc.a
. Il problema è che lo stupido GNU autoconf
-generated script non se ne rende conto.
Ho riscontrato lo stesso problema e ho escogitato una soluzione alternativa molto brutta. È necessario commentare una sezione del file libgcc/configure nella directory dei sorgenti di gcc. Ecco la sezione che ho commentato per la mia versione; fai qualcosa di simile al tuo:
Alla riga 3484:
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
# BEGIN PHILLIP EDIT
# if test -z "$ac_file"; then :
# $as_echo "$as_me: failed program was:" >&5
# sed 's/^/| /' conftest.$ac_ext >&5
# { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
# $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
# { as_fn_set_status 77
# as_fn_error "C compiler cannot create executables
# See \`config.log' for more details." "$LINENO" 5; }; }
# fi
ac_file='a.out'
# END PHILLIP EDIT
ac_exeext=$ac_cv_exeext
Spero che questo aiuti.