= Porting Howto = (oder was muss man beachten, damit 32bit Software problemlos auf 64bit Plattformen läuft) Das Problem wurde bei mir erstmalig aktuell, als wir SELinux auf die Alpha-Plattform übersetzen wollten. Das SELinux-Userland machte riesige Sperenzchen, und nach dem ersten Blick in den Quellcode wurde auch der Grund dafür klar. == Grundlegende Datentypen == * char, word und int sind wie auf 32bit-Plattformen definiert (8,16 und 32bit breit). * int ist 32bit breit * long ist 64bit breit * sämtliche Pointer sind 64bit breit, '''Pointer passen also nicht mehr in ints''' == Compiler == * Auf jeden Fall ist es empfehlenswert, auf einer 64bit Plattform zu kompilieren, dann spuckt der Compiler auch gleich die richtigen Fehler aus; * Zusätzlich zu "-Wall -W" empfiehlt es sich, "-Wconversion" einzuschalten (damit werden dann sehr viele dubiose Casts angemeckert, die man sich anschauen sollte) == Hilfreiches == * Bei Umstieg auf plattformunabhängige Datentypen empfiehlt es sich, gleich auf den aktuellen C99-Standard umzusteigen und die dort definierten Typen und Prototypen zu benutzen.