Home » Developing U++ » U++ Developers corner » Endian specific source changes, for Universal support.
Endian specific source changes, for Universal support. [message #7018] |
Fri, 08 December 2006 02:33 |
lundman
Messages: 175 Registered: March 2006 Location: Tokyo
|
Experienced Member |
|
|
On OsX in particular, you can produce Universal binaries, applications with both Intel and PPC compiled code. This is enabled by giving gcc "-arch intel -arch ppc".
However, there are parts of U++ that currently are in #ifdef ENDIAN.
Have you considered changing said code for endian independant code, like bit-shifts etc, or at worst, use OS given endian functions like ntohl() etc.
There do not appear to be too many endian related calls in UPP.
|
|
|
Re: Endian specific source changes, for Universal support. [message #7020 is a reply to message #7018] |
Fri, 08 December 2006 06:34 |
lundman
Messages: 175 Registered: March 2006 Location: Tokyo
|
Experienced Member |
|
|
So it seem OsX's gcc supply some defines when compiling for both architectures. I can, for example, use:
#ifdef __BIG_ENDIAN__
#define flagPPC
#undef flagX86
#endif
#ifdef __LITTLE_ENDIAN__
#undef flagPPC
#define flagX86
#endif
in Core.h, and let it pick the CPU type automatically.
I have been playing around with "Build methods" which I have largely ignored until now, and I see the potential there. Instead of any code change, I can define GCC32 method, GCC32_Intel, and GCC32_Universal methods, and specify the compile options needed.
However, what does seem to be missing is the linking flags.
Very nice though.
|
|
|
|
|
|
Goto Forum:
Current Time: Sat May 04 04:15:13 CEST 2024
Total time taken to generate the page: 0.03309 seconds
|