Instalando e compilando o GCC/G++ erro

1. Instalando e compilando o GCC/G++ erro

Jean César
dark777

(usa Linux Mint)

Enviado em 27/03/2024 - 10:06h


Ola galera beleza? eu tinha salvado um script de exemplo aqui sobre compilação do codigo fonte do gcc/g++ mas estou tentando fazer para multilib. porem ta dando ums erros maroto o que preciso realmente habilitar para multilib nas linguagens que estao especificadas para o compilador g++?


../configure --prefix=/usr \
--with-gxx-include-dir=/usr/include/c++/$VERSION \
--enable-linker-build-id \
--without-included-gettext \
--libdir=/usr/lib64 \
--enable-nls \
--verbose \
--enable-objc-gc \
--enable-clocale=gnu \
--enable-gnu-unique-object \
--enable-plugin \
--enable-libstdcxx-debug \
--enable-threads=posix \
--enable-zlib \
--with-gnu-ld \
--mandir=/usr/man \
--infodir=/usr/info \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-dual-abi \
--disable-libunwind-exceptions \
--disable-install-libiberty \
--with-default-libstdcxx-abi=gcc4-compatible \
--enable-languages=ada,brig,d,c,c++,fortran,go,lto,objc,obj-c++,java \
--enable-objc-gc \
--enable-vtable-verify \
--enable-host-shared --quiet \
--with-tune=native \
--enable-lto \
--disable-gtktest \
--disable-multilib \
--enable-shared \
--enable-bootstrap \
--enable-vtable-verify \
--enable-libssp \
--enable-libvtv \
--enable-libcilkrts \
--enable-intermodule \
--enable-checking=release \
--enable-coverage \
--enable-libatomic \
--enable-libgomp \
--enable-gdb \
--enable-gdb-stub \
--enable-disasm \
--enable-debugger \
--enable-new-pit \
--enable-all-optimizations \
--with-all-libs --with-x --with-x11 --with-nogui \
--enable-libjava \
--enable-static-libjava \
--enable-static-nss \
--with-arch-directory=x86_64 \
--target=x86_64-slackware-linux \
--build=x86_64-slackware-linux \
--host=x86_64-slackware-linux \
--with-java-home=/usr/lib64/jvm/jre \
--with-jvm-root-dir=/usr/lib64/jvm \
--with-jvm-jar-dir=/usr/lib64/jvm/jvm-exports \
--enable-java-awt=gtk --enable-gtk-cairo \
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
--with-bugurl="https://gcc.gnu.org/bugzilla/" \
--enable-libstdcxx-time=yes \
--enable-checking=yes


wiki.anon


  


2. Re: Instalando e compilando o GCC/G++ erro

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 27/03/2024 - 10:07h

Para habilitar o suporte multilib no GCC\/G++, você precisa adicionar a opção --enable-multilib ao seu comando de configuração. Para fazer isso, você pode incluir a opção --enable-multilib juntamente com as outras opções já presentes no seu comando de configure.

Segue o comando modificado:

```
./configure --prefix=/usr \
--with-gxx-include-dir=/usr/include/c++/$VERSION \
--enable-linker-build-id \
--without-included-gettext \
--libdir=/usr/lib64 \
--enable-nls \
--verbose \
--enable-objc-gc \
--enable-clocale=gnu \
--enable-gnu-unique-object \
--enable-plugin \
--enable-libstdcxx-debug \
--enable-threads=posix \
--enable-zlib \
--with-gnu-ld \
--mandir=/usr/man \
--infodir=/usr/info \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-dual-abi \
--disable-libunwind-exceptions \
--disable-install-libiberty \
--with-default-libstdcxx-abi=gcc4-compatible \
--enable-languages=ada,brig,d,c,c++,fortran,go,lto,objc,obj-c++,java \
--enable-objc-gc \


3. Re: Instalando e compilando o GCC/G++ erro

aguamole
aguamole

(usa KUbuntu)

Enviado em 27/03/2024 - 12:39h

Não tem nenhum erro?


4. Re: Instalando e compilando o GCC/G++ erro

Buckminster
Buckminster

(usa Debian)

Enviado em 27/03/2024 - 16:17h

Tu colocou --disable-multilib ou pegou o script pronto e não viu:
...
--disable-gtktest \
--disable-multilib \
--enable-shared \
...


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


5. Re: Instalando e compilando o GCC/G++ erro

Jean César
dark777

(usa Linux Mint)

Enviado em 28/03/2024 - 05:46h

Buckminster escreveu:

Tu colocou --disable-multilib ou pegou o script pronto e não viu:
...
--disable-gtktest \
--disable-multilib \
--enable-shared \
...

Sim na verdade tenho este script pronto onde a versao multilib está desabilitada porem também nao tive sucesso ao compilar com ela desabibitada pois estava estudando quais opcoes realmente sao nescessarias a serem habilitadas as opcoes target-build quando compilei no slackware instalou no diretorio especificado ali no meu caso agora estou modificando o script para unstalar no Debian e Ubuntu

_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!




wiki.anon


6. Re: Instalando e compilando o GCC/G++ erro

Jean César
dark777

(usa Linux Mint)

Enviado em 28/03/2024 - 15:10h


Buckminster escreveu:

Tu colocou --disable-multilib ou pegou o script pronto e não viu:
...
--disable-gtktest \
--disable-multilib \
--enable-shared \
...

_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


Os erros encontrados são estes:

2024-03-28 15:07:24 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2 [2493916/2493916] -> "gmp-6.2.1.tar.bz2" [1]
2024-03-28 15:07:26 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2 [1747243/1747243] -> "mpfr-4.1.0.tar.bz2" [1]
2024-03-28 15:07:28 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz [838731/838731] -> "mpc-1.2.1.tar.gz" [1]
2024-03-28 15:07:31 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.24.tar.bz2 [2261594/2261594] -> "isl-0.24.tar.bz2" [1]
gmp-6.2.1.tar.bz2: SUCESSO
mpfr-4.1.0.tar.bz2: SUCESSO
mpc-1.2.1.tar.gz: SUCESSO
isl-0.24.tar.bz2: SUCESSO
All prerequisites downloaded successfully.
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for gawk... gawk
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libphobos support... yes
checking for x86_64-linux-gnu-gcc... x86_64-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether x86_64-linux-gnu-gcc accepts -g... yes
checking for x86_64-linux-gnu-gcc option to accept ISO C89... none needed
checking for x86_64-linux-gnu-gcc option to accept ISO C99... none needed
checking for x86_64-linux-gnu-g++... x86_64-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether x86_64-linux-gnu-g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for x86_64-linux-gnu-gnatbind... no
checking for gnatbind... no
checking for x86_64-linux-gnu-gnatmake... no
checking for gnatmake... no
checking whether compiler driver understands Ada and is recent enough... no
checking for x86_64-linux-gnu-gdc... no
checking for gdc... no
checking whether the D compiler works... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
configure: WARNING: using in-tree isl, disabling version check
configure: error: GNAT is required to build ada
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.
make: *** Sem regra para processar o alvo 'check'.


wiki.anon


7. Re: Instalando e compilando o GCC/G++ erro

Buckminster
Buckminster

(usa Debian)

Enviado em 01/04/2024 - 08:40h

Verifique se tu tem o GNAT instalado, caso não tiver, instale.
GNAT é um compilador para a linguagem ADA.
Joga GNAT Debian e depois GNAT Ubuntu no Oráculo, mas antes dê um uname -a para verificar com certeza a versão do teu sistema, pois você deve baixar a versão específica para o teu sistema.
Ou, mais simples:
$ sudo apt update
$ sudo apt install gnat

Ou então retire a ADA do script, caso não for utilizar essa linguagem:

--enable-languages=ada,brig,d,c,c++,fortran,go,lto,objc,obj-c++,java \
deixe assim
--enable-languages=brig,d,c,c++,fortran,go,lto,objc,obj-c++,java \

https://www.getadanow.com/#get_linux
https://www.wiremoons.com/development/ada/install/2020/12/19/Install-GNAT-Ada-Compiler-on-Ubuntu.htm...


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


8. Re: Instalando e compilando o GCC/G++ erro

Jean César
dark777

(usa Linux Mint)

Enviado em 02/04/2024 - 19:09h


Buckminster escreveu:

Verifique se tu tem o GNAT instalado, caso não tiver, instale.
GNAT é um compilador para a linguagem ADA.
Joga GNAT Debian e depois GNAT Ubuntu no Oráculo, mas antes dê um uname -a para verificar com certeza a versão do teu sistema, pois você deve baixar a versão específica para o teu sistema.
Ou, mais simples:
$ sudo apt update
$ sudo apt install gnat

Ou então retire a ADA do script, caso não for utilizar essa linguagem:

--enable-languages=ada,brig,d,c,c++,fortran,go,lto,objc,obj-c++,java \
deixe assim
--enable-languages=brig,d,c,c++,fortran,go,lto,objc,obj-c++,java \

https://www.getadanow.com/#get_linux
https://www.wiremoons.com/development/ada/install/2020/12/19/Install-GNAT-Ada-Compiler-on-Ubuntu.htm...


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


bom andei analizando as coisas e rodei os seguintes comandos:


cd gcc-13.2.0/
./contrib/download_prerequisites

mkdir build && cd build

../configure --prefix=/usr \
--with-gxx-include-dir=/usr/include/c++/${VERSION#*-} \
--enable-linker-build-id \
--without-included-gettext \
--libdir=/usr/lib64 \
--enable-nls \
--verbose \
--enable-objc-gc \
--enable-clocale=gnu \
--enable-gnu-unique-object \
--enable-plugin \
--enable-libstdcxx-debug \
--enable-threads=posix \
--enable-zlib \
--with-gnu-ld \
--mandir=/usr/man \
--infodir=/usr/info \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-dual-abi \
--disable-libunwind-exceptions \
--disable-install-libiberty \
--with-default-libstdcxx-abi=gcc4-compatible \
--enable-languages=java,c,c++,gdc,fortran,brig,go,lto,objc,obj-c++ \
--with-tune=native \
--enable-lto \
--disable-gtktest \
--enable-multilib \
--enable-shared \
--enable-bootstrap \
--enable-vtable-verify \
--enable-libssp \
--enable-libvtv \
--enable-libcilkrts \
--enable-intermodule \
--enable-checking=release \
--enable-coverage \
--enable-libatomic \
--enable-libgomp \
--enable-gdb \
--enable-gdb-stub \
--enable-disasm \
--enable-debugger \
--enable-new-pit \
--enable-all-optimizations \
--with-all-libs --with-x --with-x11 --with-nogui \
--enable-libjava \
--enable-static-libjava \
--enable-static-nss \
--with-arch-directory=x86_64 \
--target=x86_64-linux-gnu \
--build=x86_64-linux-gnu \
--host=x86_64-linux-gnu \
--with-java-home=/usr/lib64/jvm/jre \
--with-jvm-root-dir=/usr/lib64/jvm \
--with-jvm-jar-dir=/usr/lib64/jvm/jvm-exports \
--enable-java-awt=gtk --enable-gtk-cairo \
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
--with-bugurl="https://gcc.gnu.org/bugzilla/" \
--enable-libstdcxx-time=yes \
--enable-checking=yes


mas ele deu erro ao rodar o comando make:

gcc-13.2.0$ make
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.


nao entendi ele mudou a forma de compilar?
wiki.anon


9. Re: Instalando e compilando o GCC/G++ erro

Buckminster
Buckminster

(usa Debian)

Enviado em 03/04/2024 - 13:18h

Verifique se tu está dentro do diretório certo.
Esse erro geralmente dá porque o make não encontra os arquivos de configurações e execuções como o ./configure, make, make install, etc.


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


10. Re: Instalando e compilando o GCC/G++ erro

Jean César
dark777

(usa Linux Mint)

Enviado em 04/04/2024 - 08:11h

Buckminster escreveu:

Verifique se tu está dentro do diretório certo.
Esse erro geralmente dá porque o make não encontra os arquivos de configurações e execuções como o ./configure, make, make install, etc.


_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


Acho que estou o script que tenho para compilar o gcc é este:

#!/bin/sh

HOMEUSER=${HOMEUSER:-${HOME}/Downloads}

VERSION="gcc-13.2.0"

LANGUAGES="java,c,c++,gdc,fortran,brig,go,lto,objc,obj-c++"

# pega o numero de nucleos do processador
NUCLEOS=${NUCLEOS:-$(grep "model name" /proc/cpuinfo | wc -l)}

CORE=${CORE:-$((${NUCLEOS} + 1))}

PKGVERSION="$HOMEUSER/gcc-13.2.0.tar.xz"

tar -xJvf ${HOMEUSER}/${PKGVERSION} -C "${HOMEUSER}"


cd ${HOMEUSER}/${VERSION}

./contrib/download_prerequisites

mkdir build && cd build

../configure --prefix=/usr \
--with-gxx-include-dir=/usr/include/c++/${VERSION#*-} \
--enable-linker-build-id \
--without-included-gettext \
--libdir=/usr/lib64 \
--enable-nls \
--verbose \
--enable-objc-gc \
--enable-clocale=gnu \
--enable-gnu-unique-object \
--enable-plugin \
--enable-libstdcxx-debug \
--enable-threads=posix \
--enable-zlib \
--with-gnu-ld \
--mandir=/usr/man \
--infodir=/usr/info \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-dual-abi \
--disable-libunwind-exceptions \
--disable-install-libiberty \
--with-default-libstdcxx-abi=gcc4-compatible \
--enable-languages="${LANGUAGES}" \
--with-tune=native \
--enable-lto \
--disable-gtktest \
--enable-multilib \
--enable-shared \
--enable-bootstrap \
--enable-vtable-verify \
--enable-libssp \
--enable-libvtv \
--enable-libcilkrts \
--enable-intermodule \
--enable-checking=release \
--enable-coverage \
--enable-libatomic \
--enable-libgomp \
--enable-gdb \
--enable-gdb-stub \
--enable-disasm \
--enable-debugger \
--enable-new-pit \
--enable-all-optimizations \
--with-all-libs --with-x --with-x11 --with-nogui \
--enable-libjava \
--enable-static-libjava \
--enable-static-nss \
--with-arch-directory=x86_64 \
--target=x86_64-linux-gnu \
--build=x86_64-linux-gnu \
--host=x86_64-linux-gnu \
--with-java-home=/usr/lib64/jvm/jre \
--with-jvm-root-dir=/usr/lib64/jvm \
--with-jvm-jar-dir=/usr/lib64/jvm/jvm-exports \
--enable-java-awt=gtk --enable-gtk-cairo \
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
--with-bugurl="https://gcc.gnu.org/bugzilla/" \
--enable-libstdcxx-time=yes \
--enable-checking=yes

make -j${CORE}
make -k check
sudo make install

echo -e "\n\tGCC installed..."
gcc --version


tar -xJvf ${HOMEUSER}/${PKGVERSION} -C "${HOMEUSER}"

cd ${HOMEUSER}/${VERSION}


Com base neste script ele esta dentro do diretório "build"

wiki.anon


11. Re: Instalando e compilando o GCC/G++ erro

Buckminster
Buckminster

(usa Debian)

Enviado em 06/04/2024 - 17:34h

Deu o seguinte:
"The following requested languages could not be built: java,gdc,brig
Supported languages are: ada,c,c++,fortran,go,lto,m2,objc,obj-c++,rust"

Muitas das opções que tu colocou aí não tem necessidade, por exemplo, tu vai programar em Fortran, em Go?
O --enable-multilib refere-se à arquitetura (32 bits, 64 bits, arm, etc).
O parâmetro das linguagens é --enable-languages="...".
É necessário habilitar o multilib caso tu for programar para outras arquiteturas aí na tua máquina.
Veja a seção Host, Build and Target specification em:
https://gcc.gnu.org/install/configure.html

Vários enables que tu colocou aí dependem de bibliotecas extras que devem ser instaladas porque no download dos prerequisites vem somente o que o gcc precisa para ele, isso está bem claro na página do GCC, senão dá erro de "Arquivo ou diretório não encontrado" daí o make install também dá erro.
Além disso, para cada distribuição os pacotes que fazem a mesma coisa são diferentes porque vai de cada sistema daí tu tem de "garimpar" eles no Google e tu vai ficar com muita "gosma" no teu PC, muitos pacotes desnecessários.
Seja bem objetivo, pense em que tu vai programar, qual linguagem, qual arquitetura, caso depois for avançando é só compilar de novo acrescentando as bibliotecas necessárias.
Outro exemplo traduzido:
"Biblioteca e cabeçalhos padrão C
Para construir o GCC, a biblioteca padrão C e os cabeçalhos devem estar presentes para todas as variantes de destino para as quais as bibliotecas de destino serão construídas (e não apenas a variante do compilador C++ host).
Isso afeta o popular 'x86_64-pc-linux-gnu'plataforma (entre outros alvos multilib), para a qual 64 bits ('x86_64') e 32 bits ('i386') os cabeçalhos libc geralmente são empacotados separadamente. Se você construir um compilador nativo em 'x86_64-pc-linux-gnu', certifique-se de ter o pacote de desenvolvedor libc de 32 bits instalado corretamente (o nome exato do pacote depende da sua distribuição) ou você deve construir o GCC como um compilador somente de 64 bits configurando com a opção --disable-multilib. Caso contrário, você poderá encontrar um erro como 'erro fatal: gnu/stubs-32.h: Esse arquivo não existe'"
https://gcc.gnu.org/install/prerequisites.html

Procure ler mais a página do GCC.GNU.
Mas se tu quer somente compilar um programa 32 bits na arquitetura 64 bits basta instalar as multilib no Debian:
$ sudo apt install gcc-multilib g++-multilib
e depois compilar com o comando:
$ gcc -m32 arquivo.c -o arquivo

Dê o comando:
$ gcc -v
E veja a saída.
Aqui no Debian 12 com gcc-12.2.0 vem por padrão com multilib habilitada:
--with-multilib-list=m32,m64,mx32 --enable-multilib

Dei uma mudada no teu scrip, mas não vejo necessidade de tu instalar o gcc 13.2.0, a não ser que tu precise realmente de algum parâmetro que não vem por padrão habilitado, se quiser te envio o script com mais explicações, mas ele dá alguns erros por causa das dependências que terá de garimpar ou tirar alguns parâmetros.

Segue toda a saída do gcc -v:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Debian 12.2.0-14)




_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


12. Re: Instalando e compilando o GCC/G++ erro

Jean César
dark777

(usa Linux Mint)

Enviado em 10/04/2024 - 00:22h

Buckminster escreveu:

Deu o seguinte:
"The following requested languages could not be built: java,gdc,brig
Supported languages are: ada,c,c++,fortran,go,lto,m2,objc,obj-c++,rust"

Muitas das opções que tu colocou aí não tem necessidade, por exemplo, tu vai programar em Fortran, em Go?
O --enable-multilib refere-se à arquitetura (32 bits, 64 bits, arm, etc).
O parâmetro das linguagens é --enable-languages="...".
É necessário habilitar o multilib caso tu for programar para outras arquiteturas aí na tua máquina.
Veja a seção Host, Build and Target specification em:
https://gcc.gnu.org/install/configure.html

Vários enables que tu colocou aí dependem de bibliotecas extras que devem ser instaladas porque no download dos prerequisites vem somente o que o gcc precisa para ele, isso está bem claro na página do GCC, senão dá erro de "Arquivo ou diretório não encontrado" daí o make install também dá erro.
Além disso, para cada distribuição os pacotes que fazem a mesma coisa são diferentes porque vai de cada sistema daí tu tem de "garimpar" eles no Google e tu vai ficar com muita "gosma" no teu PC, muitos pacotes desnecessários.
Seja bem objetivo, pense em que tu vai programar, qual linguagem, qual arquitetura, caso depois for avançando é só compilar de novo acrescentando as bibliotecas necessárias.
Outro exemplo traduzido:
"Biblioteca e cabeçalhos padrão C
Para construir o GCC, a biblioteca padrão C e os cabeçalhos devem estar presentes para todas as variantes de destino para as quais as bibliotecas de destino serão construídas (e não apenas a variante do compilador C++ host).
Isso afeta o popular 'x86_64-pc-linux-gnu'plataforma (entre outros alvos multilib), para a qual 64 bits ('x86_64') e 32 bits ('i386') os cabeçalhos libc geralmente são empacotados separadamente. Se você construir um compilador nativo em 'x86_64-pc-linux-gnu', certifique-se de ter o pacote de desenvolvedor libc de 32 bits instalado corretamente (o nome exato do pacote depende da sua distribuição) ou você deve construir o GCC como um compilador somente de 64 bits configurando com a opção --disable-multilib. Caso contrário, você poderá encontrar um erro como 'erro fatal: gnu/stubs-32.h: Esse arquivo não existe'"
https://gcc.gnu.org/install/prerequisites.html

Procure ler mais a página do GCC.GNU.
Mas se tu quer somente compilar um programa 32 bits na arquitetura 64 bits basta instalar as multilib no Debian:
$ sudo apt install gcc-multilib g++-multilib
e depois compilar com o comando:
$ gcc -m32 arquivo.c -o arquivo

Dê o comando:
$ gcc -v
E veja a saída.
Aqui no Debian 12 com gcc-12.2.0 vem por padrão com multilib habilitada:
--with-multilib-list=m32,m64,mx32 --enable-multilib

Dei uma mudada no teu scrip, mas não vejo necessidade de tu instalar o gcc 13.2.0, a não ser que tu precise realmente de algum parâmetro que não vem por padrão habilitado, se quiser te envio o script com mais explicações, mas ele dá alguns erros por causa das dependências que terá de garimpar ou tirar alguns parâmetros.

Segue toda a saída do gcc -v:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Debian 12.2.0-14)
_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!


Andei fazendo mais ums testes porem na minha distro slackware e percebi porque ele fica dando erro de "make nao encontrado" quando estou dentro do diretório "build" e executo "../configure" ele nao reconhece o diretorio e da todos aqueles erros, dentro do diretório "build" rodei o comando:


../configure --prefix=/usr/local --enable-languages=c,c++,fortran,go,lto,objc,obj-c++


e mesmo assim os erros já mencionados anteriormente continua, analizando mais um pouco eu baixei e instalei o "libphobos2-108_2.108.0-0_amd64.txz, libphobos2-108_2.108.0-0_i386.txz e o compilador dmd_2.108.0-0_amd64.txz." ao rodar todas as opçoes abaixo:

export VERSION="gcc-13.2.0"
export LANGUAGES="c,c++,d,fortran,go,lto,objc,obj-c++"

./configure --prefix=/usr/local \
--with-gxx-include-dir=/usr/include/c++/${VERSION#*-} \
--enable-languages="${LANGUAGES}" \
--enable-libphobos-checking=release \
--with-gcc-major-version-only \
--program-suffix=-12 \
--enable-shared \
--enable-multiarch \
--with-arch-32=i686 \
--with-abi=m64 \
--with-multilib-list=m32,m64,mx32 \
--enable-multilib \
--with-tune=generic \
--enable-linker-build-id \
--libexecdir=/usr/lib/x86_64-linux-gnu \
--without-included-gettext \
--enable-threads=posix \
--libdir=/usr/lib \
--enable-gnu-unique-object \
--disable-vtable-verify \
--enable-nls \
--enable-plugin \
--enable-default-pie \
--with-gnu-ld \
--enable-zlib \
--with-system-zlib \
--enable-gdb \
--enable-gdb-stub \
--enable-disasm \
--enable-debugger \
--with-all-libs --with-x --with-x11 --with-nogui \
--with-target-system-zlib=auto \
--enable-objc-gc=auto \
--enable-multiarch \
--with-arch-32=i686 \
--with-abi=m64 \
--with-multilib-list=m32,m64,mx32 \
--with-tune=generic \
--enable-lto \
--disable-gtktest \
--enable-multilib \
--enable-shared \
--enable-bootstrap \
--enable-vtable-verify \
--enable-libssp \
--enable-libvtv \
--enable-libcilkrts \
--enable-intermodule \
--enable-checking=release \
--enable-coverage \
--enable-libatomic \
--enable-libgomp \
--enable-gdb \
--enable-gdb-stub \
--enable-disasm \
--enable-debugger \
--enable-new-pit \
--enable-libiberty \
--with-default-libstdcxx-abi=new \
--enable-libstdcxx-debug \
--enable-__cxa_atexit \
--enable-libstdcxx-dual-abi \
--enable-libstdcxx-time=yes \
--enable-checking=yes \
--enable-all-optimizations \
--disable-libunwind-exceptions \
--enable-clocale=gnu \
--program-prefix=x86_64-linux-gnu \
--build=x86_64-linux-gnu \
--host=x86_64-linux-gnu \
--target=x86_64-linux-gnu \
--enable-libjava \
--enable-static-libjava \
--enable-static-nss \
--with-java-home=/usr/lib64/jvm/jre \
--with-jvm-root-dir=/usr/lib64/jvm \
--with-jvm-jar-dir=/usr/lib64/jvm/jvm-exports \
--enable-java-awt=gtk --enable-gtk-cairo \
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
--mandir=/usr/man \
--infodir=/usr/info \
--with-bugurl="https://gcc.gnu.org/bugzilla/"


O unico erro que ele mostra é este:

configure: WARNING: using in-tree isl, disabling version check
configure: error: GDC is required to build d


Como faço para resolver este erro do DMD e compilar para o gdc?

wiki.anon



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts