Esta questão pode ser realmente sobre onde obter ajuda, em vez de ajudar o problema em si. Por favor, perdoe a verbosidade!
Estou tentando construir o gcc para rodar no Win32 e produzir código para o AVR. Comecei com os arquivos usados pelo pessoal do Arduino para construir sua cadeia de ferramentas AVR.
Estando em uma máquina Windows, e que a Atmel usa o GCC 4.9.2 para construir sua cadeia de ferramentas atual (que é então copiada / corrigida) pelo pessoal do Arduino,
Eu instalei um Sistema MinGW com um GCC em 4.9.2 , baixado o fonte da cadeia de ferramentas e seguiu suas instruções (é claro que eu acidentalmente fiz algo errado, ou algo assim?).
O estágio ./configure
do autoconf (na verdade G:\GNU-GCC\toolchain-avr\gcc\libgcc\configure
) parece invocar com sucesso um gcc várias vezes, usando um programa Win32 chamado xgcc.exe que o autoconf coloca no meu diretório gcc-build / gcc. A última execução bem-sucedida tem -qversion
para as opções do compilador.
A próxima execução é exatamente a mesma chamada, exceto pelo fato de usar -o conftest -g -w -O2 -g0 -DWIN32 conftest.c
como opções do compilador, e desta vez tenta disparar o compilador usando exec -m
.
Isso não funciona, porque o comando bash exec não possui a opção -m
.
Observe que xgcc.exe
é um programa real (não um script) e é compilado pela etapa de criação do autoconf. Pode ser o compilador cruzado, pois é copiado para gcc-cross.exe
. Portanto, eu assumo que o iniciador do autoconf (macro M4?) está causando o erro.
Aqui está uma parte de config.log
: (procure as linhas que começam com exec: usage: exec [-cl] [-a name] file ...
gcc version 4.9.2 (GCC)
configure:3373: $? = 0
configure:3362: /g/gnu-gcc/toolchain-avr/gcc-build/./gcc/xgcc -B/g/gnu-gcc/toolchain-avr/gcc-build/./gcc/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/bin/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/lib/ -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/include -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/sys-include -V
xgcc.exe: error: unrecognized command line option '-V'
xgcc.exe: fatal error: no input files
compilation terminated.
configure:3373: $? = 1
configure:3362: /g/gnu-gcc/toolchain-avr/gcc-build/./gcc/xgcc -B/g/gnu-gcc/toolchain-avr/gcc-build/./gcc/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/bin/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/lib/ -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/include -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/sys-include -qversion
xgcc.exe: error: unrecognized command line option '-qversion'
xgcc.exe: fatal error: no input files
compilation terminated.
configure:3373: $? = 1
configure:3389: /g/gnu-gcc/toolchain-avr/gcc-build/./gcc/xgcc -B/g/gnu-gcc/toolchain-avr/gcc-build/./gcc/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/bin/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/lib/ -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/include -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/sys-include -o conftest -g -w -O2 -g0 -DWIN32 conftest.c
g:/gnu-gcc/toolchain-avr/gcc-build/gcc/as: line 106: exec: -m: invalid option
exec: usage: exec [-cl] [-a name] file [redirection ...]
configure:3392: $? = 1
configure:3580: checking for suffix of object files
configure:3602: /g/gnu-gcc/toolchain-avr/gcc-build/./gcc/xgcc -B/g/gnu-gcc/toolchain-avr/gcc-build/./gcc/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/bin/ -B/g/gnu-gcc/toolchain-avr/objdir/gcc/avr/lib/ -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/include -isystem /g/gnu-gcc/toolchain-avr/objdir/gcc/avr/sys-include -c -g -w -O2 -g0 -DWIN32 conftest.c
g:/gnu-gcc/toolchain-avr/gcc-build/gcc/as: line 106: exec: -m: invalid option
exec: usage: exec [-cl] [-a name] file [redirection ...]
Aqui está a seção do gcc-build / gcc / libgcc / config que acredito ter produzido o log.
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\'* | *\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
rm -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
Neste ponto, não tenho certeza de onde procurar ajuda. O pessoal do Arduino não respondeu, e eu não sei o suficiente sobre o autoconf para procurar por um problema em um arquivo autoconf.ac, ou no código autoconf que gera o ./config para o aplicativo, ou as macros do MC.
Uma varredura de "exec" no diretório de ferramentas do automake deu um zilhão de ocorrências, nenhuma das quais parecia uma opção sendo adicionada a "exec somethings ...". Mas eu não sei NADA sobre o M4, e tenho medo de aprender a depurar arquivos .ac.
Sugestões, por favor?