Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

165
Visualizações
gcc 4.x no es compatible con las matemáticas x87 FPU?

He estado tratando de compilar gcc 4.x de las fuentes usando --with-fpmath=387 pero recibo este error: "Invalid --with-fpmath=387" . Miré en las configuraciones y descubrí que no es compatible con esta opción (aunque los documentos todavía la mencionan como una posible opción):

 case ${with_fpmath} in avx) tm_file="${tm_file} i386/avxmath.h" ;; sse) tm_file="${tm_file} i386/ssemath.h" ;; *) echo "Invalid --with-fpmath=$with_fpmath" 1>&2 exit 1

Básicamente, comencé todo esto porque necesito proporcionar un ejecutable para una plataforma de destino antigua (de hecho, es un Celeron antiguo pero sin instrucciones SSE2 que aparentemente son utilizadas por libstdc++ por DEFAULT ). El ejecutable falla en la primera instrucción (movq XMM0,...) proveniente de la copia de rutinas en libstdc++ con un mensaje de "Instrucción ilegal". Hay alguna manera de resolver esto? Necesito estar en un g ++ bastante reciente para poder portar mi base de código existente.

Me preguntaba si es posible proporcionar estos encabezados/fuentes de una compilación anterior para habilitar la compatibilidad con las instrucciones regulares de x87, de modo que no se haga referencia a las instrucciones de SSE.

ACTUALIZACIÓN: tenga en cuenta que estoy hablando de libstdc ++ compilado que tiene instrucciones SSE2 en el código objeto, por lo que la pregunta no se trata de argumentos de línea de comando gcc. No importa lo que proporcione a gcc al compilar mi código, se vinculará con libstdc++ que ya tiene instrucciones integradas de SSE2.

La verdadera respuesta es no usar NINGÚN modificador --with-fpmath al compilar GCC. Me confundió la declaración de cambio de script de configuración pensando que solo es compatible con sse o avx, mientras que, de hecho, el valor predeterminado (no mencionado en este cambio es "387"). Así que asegúrese de no usar --with-fpmath cuando ejecute configure. Recompilé GCC sin él y ahora funciona bien.

Gracias.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

El argumento para decirle a gcc que produzca código para un objetivo específico es -march= CPU donde CPU es la CPU particular que desea. Para un celeron antiguo, probablemente desee -march=pentium2 o -march=pentium3

Para controlar el fp codegen por separado, las versiones más nuevas de gcc usan -mfpmath= -- en su caso, desea -mfpmath=387 .

Todos estos y muchos otros están cubiertos en la documentación de gcc

editar

Para usar esas banderas para crear bibliotecas (como libstdc++) que luego vinculará a los programas, debe configurar la compilación para que la biblioteca use las banderas apropiadas. libstdc++ se compila como parte de la compilación de g++, por lo que deberá realizar una compilación personalizada; puede usar configure CXXFLAGS=-mfpmath=387 para establecer banderas adicionales para usar mientras se compilan cosas.

over 4 years ago · Santiago Trujillo Relatório

0

Tenga en cuenta que la pregunta era sobre libstdc++ compilado con instrucciones SSE2 en el código objeto, por lo que la pregunta no era sobre los argumentos de la línea de comandos de gcc. No importa lo que proporcione a gcc al compilar mi código, se vinculará con libstdc++ que ya tiene instrucciones integradas de SSE2.

La verdadera respuesta es no usar NINGÚN modificador --with-fpmath al compilar GCC. Me confundió la declaración de cambio de script de configuración pensando que solo es compatible con sse o avx, mientras que, de hecho, el valor predeterminado (no mencionado en este cambio es "387"). Así que asegúrese de no usar --with-fpmath cuando ejecute configure. Recompilé GCC sin él y ahora funciona bien.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda