GCC: makro für 64-bit?



  • kann ich mit #ifdef abfragen, ob gcc gerade 64-bittig compiliert?



  • Leider Nicht so ohne weiteres. Die Jungs von CBLFS checken das zum Beispiel so:

    /* pyconfig.h - Stub Header  */
    #ifndef __STUB__PYCONFIG_H__
    #define __STUB__PYCONFIG_H__
    
    #if defined(__x86_64__) || \
        defined(__sparc64__) || \
        defined(__arch64__) || \
        defined(__powerpc64__) || \
        defined (__s390x__)
    # include "pyconfig-64.h"
    #else
    # include "pyconfig-32.h"
    #endif
    
    #endif /* __STUB__PYCONFIG_H__ */
    

    Allerdings klappt das auch nicht auf allen Architekturen. MIPS ist wieder anders, und ob das auch unter Windows funktioniert ist leider nochmal eine andere Geschichte 😞



  • aua! aua!
    ich mach mal die augen fest zu und tanze eine runde im kreis.



  • otze schrieb:

    /* pyconfig.h - Stub Header  */
    #ifndef __STUB__PYCONFIG_H__
    #define __STUB__PYCONFIG_H__
    
    #if defined(__x86_64__) || \
        defined(__sparc64__) || \
        defined(__arch64__) || \
        defined(__powerpc64__) || \
        defined (__s390x__)
    # include "pyconfig-64.h"
    #else
    # include "pyconfig-32.h"
    #endif
    
    #endif /* __STUB__PYCONFIG_H__ */
    

    Sorry, aber wtf?!? 😮



  • /rant/ schrieb:

    Sorry, aber wtf?!? 😮

    Musst dich nicht entschuldigen, ist nicht auf meinem mist gewachsen. Allerdings wüsste ich jetzt auch nicht, wie man das Problem anders lösen kann. Ein 64 Bit define gibt es eben nicht. Und das ist natürlich ein riesiger Hack bei CBLFS, weil die die Header nicht einfach umschreiben können, aber trotzdem sowohl 32 Bit als auch 64 Bit Version unter demselben Pfad verfügbar sein müssen.



  • Danke für die schnelle Antwort. __x86_64__ reicht mir völlig.


Log in to reply