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
[4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i386"
- 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"
---
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)
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)
Re: [4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i
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"
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.

Der gleiche "Trick" ist auch bei anderen neueren Linux Distributionen nötig.
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 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.

Der gleiche "Trick" ist auch bei anderen neueren Linux Distributionen nötig.
Re: [4.60 b3] Fedora Linux "gcc: nicht erkannte Opt. -arch=i
Funktioniert super unter Arch, danke 

-
- 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
Das sollte wohl -march=cpu-type [m]achine [arch]itecture heißen, -mtune=cpu-type geht auch.
DJ
DJ
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.