[email protected]

"Jiri Malak" <[email protected]> Sat, 8 Jan 2005 19:50:17 +0100
Newsgroups gmane.comp.gnu.mingw.patches
Message-ID <002501c4f5b2$e5e63670$0100a8c0@jirkaml>
This is a multi-part message in MIME format.

------=_NextPart_000_0020_01C4F5BB.47011800
Content-Type: text/plain;
	charset="iso-8859-2"
Content-Transfer-Encoding: 7bit

Enclosed patch fix windows DirectX import library source code for Open Watcom C compiler.
There is problem with section attributes which are compiler specific.
I add two macros EMIT_CODE_SECTION() and EMIT_CONST_SECTION().

Regards

Jiri Malak

2005-02-08  Jiri Malak  <[email protected]>

     * lib/directx/(dinput_joy.c, dinput_joy2.c, dinput_kbd.c, 
     dinput_mouse.c, dinput_mouse2.c, dinput_private.h) : fix
     for Open Watcom compiler.



------=_NextPart_000_0020_01C4F5BB.47011800
Content-Type: text/plain;
	name="patch_w32api.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="patch_w32api.txt"

--- dinput_joy.c	27 Mar 2004 02:25:37 -0000	1.1
+++ dinput_joy.c	8 Jan 2005 17:54:57 -0000
@@ -12,7 +12,7 @@
=20
 #include "dinput_private.h"
=20
-static DIOBJECTDATAFORMAT c_rgodfDIJoy[] __attribute__ =
((section(".text"))) =3D=20
+static DIOBJECTDATAFORMAT EMIT_CODE_SECTION( c_rgodfDIJoy[] ) =3D=20
 {
 	=
{&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTI=
ONAL,DIDOI_ASPECTPOSITION},
 	=
{&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTI=
ONAL,DIDOI_ASPECTPOSITION},
@@ -60,4 +60,4 @@
 	{NULL,0x4f,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}
 };
=20
-DIDATAFORMAT c_dfDIJoystick __attribute__ ((section(".rdata"))) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_ABSAXIS,80,sizeof(c=
_rgodfDIJoy)/sizeof(c_rgodfDIJoy[0]),c_rgodfDIJoy};
+DIDATAFORMAT EMIT_CONST_SECTION( c_dfDIJoystick ) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_ABSAXIS,80,sizeof(c=
_rgodfDIJoy)/sizeof(c_rgodfDIJoy[0]),c_rgodfDIJoy};

--- dinput_joy2.c	27 Mar 2004 02:25:37 -0000	1.1
+++ dinput_joy2.c	8 Jan 2005 17:54:57 -0000
@@ -12,7 +12,7 @@
=20
 #include "dinput_private.h"
=20
-static DIOBJECTDATAFORMAT c_rgodfDIJoy2[] __attribute__ =
((section(".text"))) =3D
+static DIOBJECTDATAFORMAT EMIT_CODE_SECTION( c_rgodfDIJoy2[] ) =3D
 {
 	=
{&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTI=
ONAL,DIDOI_ASPECTPOSITION},
 	=
{&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OPTI=
ONAL,DIDOI_ASPECTPOSITION},
@@ -180,4 +180,4 @@
 	=
{&GUID_Slider,0x1c,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE|DIDFT_OP=
TIONAL,DIDOI_ASPECTFORCE}
 };
=20
-DIDATAFORMAT c_dfDIJoystick2 __attribute__ ((section(".rdata"))) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_ABSAXIS,272,sizeof(=
c_rgodfDIJoy2)/sizeof(c_rgodfDIJoy2[0]),c_rgodfDIJoy2};
+DIDATAFORMAT EMIT_CONST_SECTION( c_dfDIJoystick2 ) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_ABSAXIS,272,sizeof(=
c_rgodfDIJoy2)/sizeof(c_rgodfDIJoy2[0]),c_rgodfDIJoy2};

--- dinput_kbd.c	27 Mar 2004 02:25:37 -0000	1.1
+++ dinput_kbd.c	8 Jan 2005 17:54:57 -0000
@@ -12,7 +12,7 @@
=20
 #include "dinput_private.h"
=20
-static DIOBJECTDATAFORMAT c_rgodfDIKeyboard[] __attribute__ =
((section(".text"))) =3D
+static DIOBJECTDATAFORMAT EMIT_CODE_SECTION( c_rgodfDIKeyboard[] ) =3D
 {
 	=
{&GUID_Key,0x0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x0)|DIDFT_OPTIONAL,0x0},
 	=
{&GUID_Key,0x1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1)|DIDFT_OPTIONAL,0x0},
@@ -272,4 +272,4 @@
 	=
{&GUID_Key,0xff,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xff)|DIDFT_OPTIONAL,0x0}=

 };
=20
-DIDATAFORMAT c_dfDIKeyboard __attribute__ ((section(".rdata"))) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,256,sizeof(=
c_rgodfDIKeyboard)/sizeof(c_rgodfDIKeyboard[0]),c_rgodfDIKeyboard};
+DIDATAFORMAT EMIT_CONST_SECTION( c_dfDIKeyboard ) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,256,sizeof(=
c_rgodfDIKeyboard)/sizeof(c_rgodfDIKeyboard[0]),c_rgodfDIKeyboard};

--- dinput_mouse.c	27 Mar 2004 02:25:37 -0000	1.1
+++ dinput_mouse.c	8 Jan 2005 17:54:57 -0000
@@ -12,7 +12,7 @@
=20
 #include "dinput_private.h"
=20
-static DIOBJECTDATAFORMAT c_rgodfDIMouse[] __attribute__ =
((section(".text"))) =3D
+static DIOBJECTDATAFORMAT EMIT_CODE_SECTION( c_rgodfDIMouse[] ) =3D
 {
 	{&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0},
 	{&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0},
@@ -23,4 +23,4 @@
 	{NULL,0xf,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}
 };
=20
-DIDATAFORMAT c_dfDIMouse __attribute__ ((section(".rdata"))) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,16,sizeof(c=
_rgodfDIMouse)/sizeof(c_rgodfDIMouse[0]),c_rgodfDIMouse};
+DIDATAFORMAT EMIT_CONST_SECTION( c_dfDIMouse ) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,16,sizeof(c=
_rgodfDIMouse)/sizeof(c_rgodfDIMouse[0]),c_rgodfDIMouse};

--- dinput_mouse2.c	27 Mar 2004 02:25:37 -0000	1.1
+++ dinput_mouse2.c	8 Jan 2005 17:54:57 -0000
@@ -12,7 +12,7 @@
=20
 #include "dinput_private.h"
=20
-static DIOBJECTDATAFORMAT c_rgodfDIMouse2[] __attribute__ =
((section(".text"))) =3D
+static DIOBJECTDATAFORMAT EMIT_CODE_SECTION( c_rgodfDIMouse2[] ) =3D
 {
 	{&GUID_XAxis,0x0,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0},
 	{&GUID_YAxis,0x4,DIDFT_ABSAXIS|DIDFT_RELAXIS|DIDFT_ANYINSTANCE,0x0},
@@ -27,4 +27,4 @@
 	{NULL,0x13,DIDFT_BUTTON|DIDFT_ANYINSTANCE|DIDFT_OPTIONAL,0x0}
 };
=20
-DIDATAFORMAT c_dfDIMouse2 __attribute__ ((section(".rdata"))) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,20,sizeof(c=
_rgodfDIMouse2)/sizeof(c_rgodfDIMouse2[0]),c_rgodfDIMouse2};
+DIDATAFORMAT EMIT_CONST_SECTION( c_dfDIMouse2 ) =3D =
{sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,20,sizeof(c=
_rgodfDIMouse2)/sizeof(c_rgodfDIMouse2[0]),c_rgodfDIMouse2};

--- dinput_private.h	27 Mar 2004 02:25:37 -0000	1.1
+++ dinput_private.h	8 Jan 2005 17:54:57 -0000
@@ -70,4 +70,12 @@
 extern GUID GUID_Key;
 extern GUID GUID_POV;
=20
+#if defined( __WATCOMC__ )
+#define EMIT_CODE_SECTION(x) __based( __segname( "_CODE" ) ) x
+#define EMIT_CONST_SECTION(x) __based( __segname( "_CONST" ) ) x
+#else
+#define EMIT_CODE_SECTION(x) x __attribute__ ((section(".text")))
+#define EMIT_CONST_SECTION(x) x __attribute__ ((section(".rdata")))
+#endif
+
 #endif

------=_NextPart_000_0020_01C4F5BB.47011800--



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt