Hallo,
auf meiner Plattform definiert der gcc ein Makro __i386__. Wie finde ich heraus, welche Makros es auf anderen Plattformen gibt? Insbesondere interessieren mich die Debian-Plattformen.
Viele Grüße, Torsten
Am Freitag 21 Dezember 2007 12:23:18 schrieb Torsten Werner:
auf meiner Plattform definiert der gcc ein Makro __i386__. Wie finde ich heraus, welche Makros es auf anderen Plattformen gibt? Insbesondere interessieren mich die Debian-Plattformen.
Das Makro im GCC-Source dafür heißt builtin_define_std().
Wenn man danach sucht, findet man u.a.: i386, arm, arm32, mc68000, parisc, powerpc, sparc
Aber auch für die OS-Plattform: unix, vax, hpux, WIN32, MACH
Zu den Unterstrichen sagt die Doku dann folgendes:
/* Pass an object-like macro. If it doesn't lie in the user's namespace, defines it unconditionally. Otherwise define a version with two leading underscores, and another version with two leading and trailing underscores, and define the original only if an ISO standard was not nominated.
e.g. passing "unix" defines "__unix", "__unix__" and possibly "unix". Passing "_mips" defines "__mips", "__mips__" and possibly "_mips". */
Das Makro builtin_define() stellt darüber hinaus auch noch __amd64__, __ia64__, __powerpc64__ etc. zur Verfügung.
In der GCC-Doku ist das nicht wirklich dokumentiert. Ich weiß jetzt allerdings auch nicht, ob das da rein gehört, wobei es auch in der glibc-Doku nicht zu finden ist, und somit kann man wohl getrost eine der beiden als unvollständig bezeichnen.
Josef
Hi Torsten,
"Torsten Werner" mail.twerner@googlemail.com:
auf meiner Plattform definiert der gcc ein Makro __i386__. Wie finde ich heraus, welche Makros es auf anderen Plattformen gibt? Insbesondere interessieren mich die Debian-Plattformen.
Wenn möglich befrage ich auf den Zielrechnern den GCC nach seinen Makros, z. B.: $ gcc -dM -E /usr/include/math.h
und schaue nach verwertbaren.
Freundlich grüßend,
Erik
On Dec 21, 2007 10:01 PM, Erik Schanze schanzi_@gmx.de wrote:
$ gcc -dM -E /usr/include/math.h
Ich lasse jetzt einfach beim Compilieren
gcc -dM -E - < /dev/null
laufen und schaue mir hinterher die Build-Logs an.
Danke, Torsten
lug-dd@mailman.schlittermann.de