Dmitry Timoshkov dmitry@baikal.ru writes:
diff -up cvs/hq/wine/include/winnt.h wine/include/winnt.h --- cvs/hq/wine/include/winnt.h 2005-11-30 23:19:48.000000000 +0800 +++ wine/include/winnt.h 2006-01-02 15:08:41.000000000 +0800 @@ -1743,12 +1743,21 @@ typedef struct _IMAGE_DOS_HEADER { } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; #include <poppack.h>
+#ifdef WORDS_BIGENDIAN +#define IMAGE_DOS_SIGNATURE 0x4D5A /* MZ */ +#define IMAGE_OS2_SIGNATURE 0x4E45 /* NE */ +#define IMAGE_OS2_SIGNATURE_LE 0x4C45 /* LE */ +#define IMAGE_OS2_SIGNATURE_LX 0x4C58 /* LX */ +#define IMAGE_VXD_SIGNATURE 0x4C45 /* LE */ +#define IMAGE_NT_SIGNATURE 0x50450000 /* PE00 */ +#else #define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */ #define IMAGE_OS2_SIGNATURE 0x454E /* NE */ #define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */ #define IMAGE_OS2_SIGNATURE_LX 0x584C /* LX */ #define IMAGE_VXD_SIGNATURE 0x454C /* LE */ #define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */ +#endif
I'm not sure what you are trying to achieve here. If you want to load little-endian files on big-endian machines, you need to swap everything; swapping only the signature is not going to do any good.