I'm trying to compile a PPC port of Ufo AI for the 2.3 release. A long time ago (about 8 months), I had compiled and posted several versions. (If interested: 23530, 23783, 24430, 24953, and 26262).
In trying to test the current version, it failed, with a horrible byteswap error. So, the question is, where did this byteswap issue arise? Going back to the last good build (26262) resulted in compile errors. Checking showed that libjpeg had a header that now defined a function with an incompatible (but functionally equivalent) definition. This was simple enough -- activate the older libjpeg. (Now I understand why the older versions are kept around.) But things still hit byte swap issues. On something that had worked before. The problem was in LittleLong(). So what's happening in LittleLong()? It's in /opt/local/include/SDL/SDL_endian.h, and there's a set of ifdef's, optimized assembler inlines, etc. But it starts with #ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */ So what does SDL_config.h do for SDL_BYTEORDER? stbmac:trunk Michael$ port provides /opt/local/include/SDL/SDL_config.h /opt/local/include/SDL/SDL_config.h is provided by: libsdl stbmac:trunk Michael$ port installed libsdl The following ports are currently installed: libsdl @1.2.13_6+universal libsdl @1.2.14_8+universal (active) stbmac:trunk Michael$ I've got the right version installed and active? Right? stbmac:trunk Michael$ egrep BYTE /opt/local/include/SDL/SDL_config.h #define SDL_BYTEORDER 1234 That can't be right. Can it? Well, that's what it has. A single fixed value. No ifdefs, no nothing. Looking at SDL_config.h, it doesn't seem that cross compilation / +universal would work at all. It seems to be very system dependent. So, try going back to the previous version. stbmac:trunk Michael$ port installed libsdl The following ports are currently installed: libsdl @1.2.13_6+universal libsdl @1.2.14_8+universal (active) stbmac:trunk Michael$ sudo port deactivate libsdl ---> Deactivating libsdl stbmac:trunk Michael$ sudo port install libsdl @1.2.13_6+universal ---> Computing dependencies for libsdl ---> Activating libsdl @1.2.14_8+universal ---> Cleaning libsdl So why did it NOT activate the version I said to activate? Manually commenting out that hard-coded BYTEORDER line, so that the system determines it at compile time? That seems to be a workaround. -- Political and economic blog of a strict constitutionalist http://StrictConstitution.BlogSpot.com _______________________________________________ macports-users mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macports-users
