# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../hermes/gcc4.patch
# Copyright (C) 2008 The OpenSDE Project
# Copyright (C) 2004 - 2006 The T2 SDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---

I don't know what they are doing there with the underscore thing...
originally these functions should be aliased but gcc4 complains about 
undefined functions (?)
	--jsaw

diff -ur Hermes-1.3.3/src/HeadMMX.h Hermes-1.3.3-t2/src/HeadMMX.h
--- Hermes-1.3.3/src/HeadMMX.h	2000-12-06 05:55:28.000000000 +0100
+++ Hermes-1.3.3-t2/src/HeadMMX.h	2005-11-24 14:33:42.493827611 +0100
@@ -27,6 +27,26 @@
 extern "C" {
 #endif
 
+/* Fix the underscore business with ELF compilers */
+
+#if defined(__ELF__) && defined(__GNUC__)
+
+#define ConvertMMX _ConvertMMX
+#define ClearMMX_32 _ClearMMX_32
+#define ClearMMX_24  _ClearMMX_24
+#define ClearMMX_16  _ClearMMX_16
+#define ClearMMX_8  _ClearMMX_8
+#define ConvertMMXp32_16RGB555 _ConvertMMXp32_16RGB555
+#define ConvertMMXpII32_24RGB888 _ConvertMMXpII32_24RGB888
+#define ConvertMMXpII32_16RGB565 _ConvertMMXpII32_16RGB565
+#define ConvertMMXpII32_16BGR565 _ConvertMMXpII32_16BGR565
+#define ConvertMMXpII32_16RGB555 _ConvertMMXpII32_16RGB555
+#define ConvertMMXpII32_16BGR555 _ConvertMMXpII32_16BGR555
+
+#endif /* ELF and GNUC */
+
+
+
 void STACKCALL ConvertMMX(HermesConverterInterface *);
 
 void STACKCALL ClearMMX_32(HermesClearInterface *);
@@ -49,35 +69,6 @@
 
 
 
-/* Fix the underscore business with ELF compilers */
-
-#if defined(__ELF__) && defined(__GNUC__)
-  #ifdef __cplusplus 
-  extern "C" {   
-  #endif
-
-  void ConvertMMX(HermesConverterInterface *) __attribute__ ((alias ("_ConvertMMX")));
-  void ClearMMX_32(HermesClearInterface *) __attribute__ ((alias ("_ClearMMX_32")));
-  void ClearMMX_24(HermesClearInterface *)  __attribute__ ((alias ("_ClearMMX_24")));
-  void ClearMMX_16(HermesClearInterface *)  __attribute__ ((alias ("_ClearMMX_16")));
-  void ClearMMX_8(HermesClearInterface *)  __attribute__ ((alias ("_ClearMMX_8")));
-
-  void ConvertMMXp32_16RGB555() __attribute__ ((alias ("_ConvertMMXp32_16RGB555")));
-
-  void ConvertMMXpII32_24RGB888() __attribute__ ((alias ("_ConvertMMXpII32_24RGB888")));
-  void ConvertMMXpII32_16RGB565() __attribute__ ((alias ("_ConvertMMXpII32_16RGB565")));
-  void ConvertMMXpII32_16BGR565() __attribute__ ((alias ("_ConvertMMXpII32_16BGR565")));
-  void ConvertMMXpII32_16RGB555() __attribute__ ((alias ("_ConvertMMXpII32_16RGB555")));
-  void ConvertMMXpII32_16BGR555() __attribute__ ((alias ("_ConvertMMXpII32_16BGR555")));
-
-  #ifdef __cplusplus
-  }
-  #endif
-
-#endif /* ELF and GNUC */
-
-
-
 
 /* Make it work with Watcom */
 #ifdef __WATCOMC__
diff -ur Hermes-1.3.3/src/HeadX86.h Hermes-1.3.3-t2/src/HeadX86.h
--- Hermes-1.3.3/src/HeadX86.h	2000-12-06 05:55:28.000000000 +0100
+++ Hermes-1.3.3-t2/src/HeadX86.h	2005-11-24 14:35:20.307108281 +0100
@@ -27,6 +27,53 @@
 #endif
 
 
+
+
+/* Now fix up the ELF underscore problem */
+
+#if defined(__ELF__) && defined(__GNUC__)
+#define Hermes_X86_CPU _Hermes_X86_CPU
+#define ConvertX86 _ConvertX86
+#define ConvertX86Stretch _ConvertX86Stretch
+#define ClearX86_32 _ClearX86_32
+#define ClearX86_24  _ClearX86_24
+#define ClearX86_16  _ClearX86_16
+#define ClearX86_8  _ClearX86_8
+#define ConvertX86p32_32BGR888 _ConvertX86p32_32BGR888
+#define ConvertX86p32_32RGBA888 _ConvertX86p32_32RGBA888
+#define ConvertX86p32_32BGRA888 _ConvertX86p32_32BGRA888
+#define ConvertX86p32_24RGB888 _ConvertX86p32_24RGB888
+#define ConvertX86p32_24BGR888 _ConvertX86p32_24BGR888
+#define ConvertX86p32_16RGB565 _ConvertX86p32_16RGB565
+#define ConvertX86p32_16BGR565 _ConvertX86p32_16BGR565
+#define ConvertX86p32_16RGB555 _ConvertX86p32_16RGB555
+#define ConvertX86p32_16BGR555 _ConvertX86p32_16BGR555
+#define ConvertX86p32_8RGB332 _ConvertX86p32_8RGB332
+#define ConvertX86p32_16RGB565_S _ConvertX86p32_16RGB565_S
+#define ConvertX86p16_32RGB888 _ConvertX86p16_32RGB888
+#define ConvertX86p16_32BGR888 _ConvertX86p16_32BGR888
+#define ConvertX86p16_32RGBA888 _ConvertX86p16_32RGBA888
+#define ConvertX86p16_32BGRA888 _ConvertX86p16_32BGRA888
+#define ConvertX86p16_24RGB888 _ConvertX86p16_24RGB888
+#define ConvertX86p16_24BGR888 _ConvertX86p16_24BGR888
+#define ConvertX86p16_16BGR565 _ConvertX86p16_16BGR565
+#define ConvertX86p16_16RGB555 _ConvertX86p16_16RGB555
+#define ConvertX86p16_16BGR555 _ConvertX86p16_16BGR555
+#define ConvertX86p16_8RGB332 _ConvertX86p16_8RGB332
+#define CopyX86p_4byte _CopyX86p_4byte
+#define CopyX86p_3byte _CopyX86p_3byte
+#define CopyX86p_2byte _CopyX86p_2byte
+#define CopyX86p_1byte _CopyX86p_1byte
+#define ConvertX86pI8_32 _ConvertX86pI8_32
+#define ConvertX86pI8_24 _ConvertX86pI8_24
+#define ConvertX86pI8_16 _ConvertX86pI8_16
+#define ConvertX86p16_32RGB888_LUT_X86 _ConvertX86p16_32RGB888_LUT_X86
+#define ConvertX86p16_32BGR888_LUT_X86 _ConvertX86p16_32BGR888_LUT_X86
+#define ConvertX86p16_32RGBA888_LUT_X86 _ConvertX86p16_32RGBA888_LUT_X86
+#define ConvertX86p16_32BGRA888_LUT_X86 _ConvertX86p16_32BGRA888_LUT_X86
+#endif /* ELF & GNU */
+
+
 void STACKCALL ConvertX86(HermesConverterInterface *);
 void STACKCALL ConvertX86Stretch(HermesConverterInterface *);
 void STACKCALL ClearX86_32(HermesClearInterface *);
@@ -81,70 +128,6 @@
 
 
 
-/* Now fix up the ELF underscore problem */
-
-#if defined(__ELF__) && defined(__GNUC__)
-  #ifdef __cplusplus
-  extern "C" {
-  #endif
-
-  int Hermes_X86_CPU() __attribute__ ((alias ("_Hermes_X86_CPU")));
-
-  void ConvertX86(HermesConverterInterface *) __attribute__ ((alias ("_ConvertX86")));
-  void ConvertX86Stretch(HermesConverterInterface *) __attribute__ ((alias ("_ConvertX86Stretch")));
-
-  void ClearX86_32(HermesClearInterface *) __attribute__ ((alias ("_ClearX86_32")));
-  void ClearX86_24(HermesClearInterface *)  __attribute__ ((alias ("_ClearX86_24")));
-  void ClearX86_16(HermesClearInterface *)  __attribute__ ((alias ("_ClearX86_16")));
-  void ClearX86_8(HermesClearInterface *)  __attribute__ ((alias ("_ClearX86_8")));
-
-
-  void ConvertX86p32_32BGR888() __attribute__ ((alias ("_ConvertX86p32_32BGR888")));
-  void ConvertX86p32_32RGBA888() __attribute__ ((alias ("_ConvertX86p32_32RGBA888")));
-  void ConvertX86p32_32BGRA888() __attribute__ ((alias ("_ConvertX86p32_32BGRA888")));
-  void ConvertX86p32_24RGB888() __attribute__ ((alias ("_ConvertX86p32_24RGB888")));
-  void ConvertX86p32_24BGR888() __attribute__ ((alias ("_ConvertX86p32_24BGR888")));
-  void ConvertX86p32_16RGB565() __attribute__ ((alias ("_ConvertX86p32_16RGB565")));
-  void ConvertX86p32_16BGR565() __attribute__ ((alias ("_ConvertX86p32_16BGR565")));
-  void ConvertX86p32_16RGB555() __attribute__ ((alias ("_ConvertX86p32_16RGB555")));
-  void ConvertX86p32_16BGR555() __attribute__ ((alias ("_ConvertX86p32_16BGR555")));
-  void ConvertX86p32_8RGB332() __attribute__ ((alias ("_ConvertX86p32_8RGB332")));
-
-  void ConvertX86p32_16RGB565_S() __attribute__ ((alias ("_ConvertX86p32_16RGB565_S")));
-  
-  void ConvertX86p16_32RGB888() __attribute__ ((alias ("_ConvertX86p16_32RGB888")));
-  void ConvertX86p16_32BGR888() __attribute__ ((alias ("_ConvertX86p16_32BGR888")));
-  void ConvertX86p16_32RGBA888() __attribute__ ((alias ("_ConvertX86p16_32RGBA888")));
-  void ConvertX86p16_32BGRA888() __attribute__ ((alias ("_ConvertX86p16_32BGRA888")));
-  void ConvertX86p16_24RGB888() __attribute__ ((alias ("_ConvertX86p16_24RGB888")));
-  void ConvertX86p16_24BGR888() __attribute__ ((alias ("_ConvertX86p16_24BGR888")));
-  void ConvertX86p16_16BGR565() __attribute__ ((alias ("_ConvertX86p16_16BGR565")));
-  void ConvertX86p16_16RGB555() __attribute__ ((alias ("_ConvertX86p16_16RGB555")));
-  void ConvertX86p16_16BGR555() __attribute__ ((alias ("_ConvertX86p16_16BGR555")));
-  void ConvertX86p16_8RGB332() __attribute__ ((alias ("_ConvertX86p16_8RGB332")));
-
-  void CopyX86p_4byte() __attribute__ ((alias ("_CopyX86p_4byte")));
-  void CopyX86p_3byte() __attribute__ ((alias ("_CopyX86p_3byte")));
-  void CopyX86p_2byte() __attribute__ ((alias ("_CopyX86p_2byte")));
-  void CopyX86p_1byte() __attribute__ ((alias ("_CopyX86p_1byte")));
-
-  void ConvertX86pI8_32() __attribute__ ((alias ("_ConvertX86pI8_32")));
-  void ConvertX86pI8_24() __attribute__ ((alias ("_ConvertX86pI8_24")));
-  void ConvertX86pI8_16() __attribute__ ((alias ("_ConvertX86pI8_16")));
-
-  extern int32 ConvertX86p16_32RGB888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGB888_LUT_X86")));
-  extern int32 ConvertX86p16_32BGR888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGR888_LUT_X86")));
-  extern int32 ConvertX86p16_32RGBA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32RGBA888_LUT_X86")));
-  extern int32 ConvertX86p16_32BGRA888_LUT_X86[512] __attribute__ ((alias ("_ConvertX86p16_32BGRA888_LUT_X86")));
-
-  #ifdef __cplusplus
-  }
-  #endif
-
-#endif /* ELF & GNU */
-
-
-
 /* Make it run with WATCOM C */
 #ifdef __WATCOMC__
 #pragma warning 601 9