1. include/freetype/internal/compiler-macros.h (FT_CALLBACK_DEF):
don't define as __cdecl for Watcom builds.

Otherwise, conflicts happen with Watcom default calling convention
which is 'watcall'. E.g.:

src/base/ftrfork.c(292): Error! E1071: Type of parameter 4 does not
agree with previous definition
src/base/ftrfork.c(292): Note! I2003: source conversion type is 'int
(__cdecl *)(void const *__p1,void const *__p2)'
src/base/ftrfork.c(292): Note! I2004: target conversion type is 'int
(*)(void const *__p1,void const *__p2)'
src/base/ftrfork.c(292): Note! I2002: 'qsort' defined in:
/opt/watcom/h/stdlib.h(213)


2. src/sdf/ftbsdf.c: undefine 'near' for Watcom builds

Watcom defines near to its __near keyword and build fails otherwise:

src/sdf/ftbsdf.c(598): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(602): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(602): Error! E1151: Parameter count does not agree
with previous definition
src/sdf/ftbsdf.c(602): Note! I2002: 'FT_Vector_Length' defined in:
include/freetype/fttrigon.h(288)
src/sdf/ftbsdf.c(608): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(609): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(876): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(885): Error! E1016: Expecting identifier


Patches are attached.

Regards.
--
O.S.
include/freetype/internal/compiler-macros.h (FT_CALLBACK_DEF):
don't define as __cdecl for Watcom builds.

Otherwise, conflicts happen with Watcom default calling convention
which is 'watcall'. E.g.:

src/base/ftrfork.c(292): Error! E1071: Type of parameter 4 does not agree with previous definition
src/base/ftrfork.c(292): Note! I2003: source conversion type is 'int (__cdecl *)(void const *__p1,void const *__p2)'
src/base/ftrfork.c(292): Note! I2004: target conversion type is 'int (*)(void const *__p1,void const *__p2)'
src/base/ftrfork.c(292): Note! I2002: 'qsort' defined in: /opt/watcom/h/stdlib.h(213)

diff --git a/include/freetype/internal/compiler-macros.h b/include/freetype/internal/compiler-macros.h
index 88c0bf0..0328a52 100644
--- a/include/freetype/internal/compiler-macros.h
+++ b/include/freetype/internal/compiler-macros.h
@@ -301,7 +301,7 @@ FT_BEGIN_HEADER
 
 #if defined( __i386__ )
 #define FT_COMPARE_DEF( x )  FT_CALLBACK_DEF( x ) __attribute__(( cdecl ))
-#elif defined( _M_IX86 )
+#elif defined( _M_IX86 ) && !defined(__WATCOMC__)
 #define FT_COMPARE_DEF( x )  FT_CALLBACK_DEF( x ) __cdecl
 #else
 #define FT_COMPARE_DEF( x )  FT_CALLBACK_DEF( x )

src/sdf/ftbsdf.c: undefine 'near' for Watcom builds

Watcom defines near to its __near keyword and build fails otherwise:

src/sdf/ftbsdf.c(598): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(602): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(602): Error! E1151: Parameter count does not agree with previous definition
src/sdf/ftbsdf.c(602): Note! I2002: 'FT_Vector_Length' defined in: include/freetype/fttrigon.h(288)
src/sdf/ftbsdf.c(608): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(609): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(876): Error! E1016: Expecting identifier
src/sdf/ftbsdf.c(885): Error! E1016: Expecting identifier

diff --git a/src/sdf/ftbsdf.c b/src/sdf/ftbsdf.c
index fac3c3e..813dd64 100644
--- a/src/sdf/ftbsdf.c
+++ b/src/sdf/ftbsdf.c
@@ -191,6 +191,9 @@
    *     of a pixel.
    *
    */
+  #ifdef __WATCOMC__
+  #undef near
+  #endif
   typedef struct  ED_
   {
     FT_16D16      dist;

Reply via email to