Anzeige:
Ergebnis 1 bis 8 von 8

Thema: gcc 4.1.2 compilieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    54

    gcc 4.1.2 compilieren

    Ich versuche gerade ob ich gcc 4.1.2 unter Amiga OS compiliert bekomme.
    Weil ich den etwas angestaubten 2.95 gerne ersetzen würde.

    Das ganze bricht bei "libiberty/hex.c" ab:

    "hex.c requires EOF == -1"
    In stdio.h ist EOF so definiert:

    #define EOF (-1)
    Was ist der Unterschied zwischen "-1" und "(-1)"?
    Kann ich einfach fürs compilieren EOF auf "-1" setzen? Also ohne Klammern herum.
    Oder entstehen dann irgendwelche Fehler?

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    theoretisch gibt es keinen unterschied... die klammern rum sind eigentlich auch gut, somit sollte der compiler besser damit umgehen können.
    ist in der hex.c die stdio.h included?

    greetz

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    54
    Ja ist in "hex.c" eingebunden:

    #include <stdio.h> /* for EOF */
    #ifdef HAVE_CONFIG_H
    #include "config.h"
    #endif
    #include "libiberty.h"
    #include "safe-ctype.h" /* for HOST_CHARSET_ASCII */

    #if EOF != -1
    #error "hex.c requires EOF == -1"
    #endif

  4. #4
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    377
    Und damit hast du dir praktisch deine Frage selbst beantwortet.

    Code:
    #if EOF != -1
    #error "hex.c requires EOF == -1"
    #endif
    Amilo D - 2,8 Ghz - ATI Radeon 9000
    Debian GNU/Linux 3.1 (Sarge)

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    54
    Haben die Klammern bei "(-1)" in stdio.h wirklich einen Sinn oder kann ich EOF einfach
    auf "-1" setzen? Das ist es was ich wissen möchte.

  6. #6
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Ja kann es denn wirklich nötig sein, den Quellcode des gcc von Hand editieren zu müssen um ihn übersetzen zu können?
    Das kann ja wohl kaum im Sinne der Entwickler sein!?
    Geändert von Boron (06-05-2007 um 23:07 Uhr)
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  7. #7
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    377
    @Boron: Das ist dann noetig, wenn man gcc mit einer alten Version uebersetzen will, die eben nicht #define EOF (-1) versteht.
    Er schreibt ja, dass er gcc 2.95 verwendet, und die ist wirklich nicht neu.

    Leider kann ich das jetzt nicht testen, ich benutze schon den 4.1.2er.
    Amilo D - 2,8 Ghz - ATI Radeon 9000
    Debian GNU/Linux 3.1 (Sarge)

  8. #8
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    54
    Ja es liegt am gcc 2.95.3. Der versteht nicht einmal -1, also ohne Klammern.
    Scheint ein Bug im Preprozessor bei #if zu sein.

    Ich nehme jetzt halt den 3.3er, der als "unstable" eingestuft wird.
    Der läuft gerade.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •