[4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i386"

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
alen
Beiträge: 107
Registriert: 09.04.2007 17:38
Computerausstattung: Main Hardware: AMD Ryzen 5 1600 - 6 Core / Gigabyte B450 Aorus Pro / Sapphire RX580 8GB
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64 on various Hardware Platforms
Wohnort: Duisburg
Kontaktdaten:

[4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i386"

Beitrag von alen »

Hallo Zusammen,

habe mit mir mal die Mühe gemacht und Purebasic (x86) auf Fedora 15 (x86) Basis installiert.
Alle Abhängigkeiten für PB sind aus Sicht des "checkinstall.sh" Skriptes wohl erfüllt.

Es kommt bei jeglichem Kompilieren zu folgendem Fehler:
gcc: Fehler: "nicht erkannte Option -arch=i386"

Im Einsatz befindliche Software:
- Fedora 15 Linux (x86)
- gcc 4.6 (aus der Basisinstallation von Fedora)
- Purebasic 4.60 Beta 3 (x86)

Ich könnte mir vorstellen das die Option bei der o.g. Compilerversion nicht mehr unterstützt wird.
Vielleicht ist das noch nicht bekannt und es kann jemand anderer nochmal bestätigen.
Eventuell handelt es sich um einen Bug.

Grüße
Alen
---
Main Hardware: AMD Ryzen 5 1600 - 6 Core / Asus B350M-A / Nvidia GTX650
PB 5.61 and earlier @ Manjaro Linux XFCE x64/ Fedora Linux Cinnamon x64 / Windows 10 x64
on various Hardware Platforms (Notebook and Desktop)
Ramihyn_
Beiträge: 61
Registriert: 20.06.2007 10:56

Re: [4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i

Beitrag von Ramihyn_ »

Es braucht einen kleinen Fix für Fedora 15. Bitte nur durchführen wenn es verstanden wird!

1. Schritt - folgenden code in ein file kopieren z.B. "dummy.c"

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  int i,j;
  int LibFlag;
  char **PList;

  // argc + 1 + optional number of injected flags

  PList = malloc((argc + 10) * sizeof(char *));
  PList[0] = strdup("/usr/bin/gcc_");

  j = 1;
  LibFlag = 0;
  for (i=1; i<argc; i++)
  {
    if (strcasecmp(argv[i], "-arch=i386") != 0)
      PList[j++] = argv[i];

    // required for Fedora 15 32-bit
    if ((LibFlag == 0) && (strncmp(argv[i], "-l", 2) == 0))
    {
      LibFlag++;
      PList[j++] = strdup("-ldl");
      PList[j++] = strdup("-lX11");
    }

  }
  PList[j] = 0;

  execvp("/usr/bin/gcc_", PList);

  return -1;
}
Step 2 - Kompilieren "gcc dummy.c"

Step 3 - gcc umbenennen von /usr/bin/gcc nach /usr/bin/gcc_

Step 4 - das kompilierte "a.out" als "gcc" nach /usr/bin verschieben

Step 5 - Besitzer und zugriffsrechte von /usr/bin/gcc überprüfen

Step 6 - "gcc" und "gcc -v" aufrufen um zu verifizieren, dass es funktioniert. In der Ausgabe müsste dann "gcc_" erscheinen anstatt "gcc".

PureBasic 4.51 und 4.60 sollten jetzt unter Fedora funktionieren.

Bild

Der gleiche "Trick" ist auch bei anderen neueren Linux Distributionen nötig.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: [4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i

Beitrag von edel »

Funktioniert super unter Arch, danke :allright:
D.J.Peters
Beiträge: 87
Registriert: 28.11.2010 13:07
Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
Wohnort: Germany
Kontaktdaten:

Re: [4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i

Beitrag von D.J.Peters »

Das sollte wohl -march=cpu-type [m]achine [arch]itecture heißen, -mtune=cpu-type geht auch.

DJ
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
Antworten