diff --git a/stix/lib/main.c b/stix/lib/main.c index 7af4c5e..643bfc1 100644 --- a/stix/lib/main.c +++ b/stix/lib/main.c @@ -302,7 +302,7 @@ printf ("MOD_GETSYM [%s]\n", &buf[1]); if (!sym) { printf ("MOD_GETSYM [%s]\n", &buf[0]); - sym = dlsym (handle, &buf[0]); + sym = lt_dlsym (handle, &buf[0]); } } } diff --git a/stix/lib/stix-cmn.h b/stix/lib/stix-cmn.h index aed7d85..281b6d9 100644 --- a/stix/lib/stix-cmn.h +++ b/stix/lib/stix-cmn.h @@ -35,6 +35,8 @@ # include "stix-cfg.h" #elif defined(_WIN32) # include "stix-msw.h" +#elif defined(__OS2__) +# include "stix-os2.h" #elif defined(__MSDOS__) # include "stix-dos.h" #elif defined(macintosh) diff --git a/stix/lib/stix-os2.h b/stix/lib/stix-os2.h new file mode 100644 index 0000000..daa26c2 --- /dev/null +++ b/stix/lib/stix-os2.h @@ -0,0 +1,97 @@ +/* + * $Id$ + * + Copyright (c) 2014-2015 Chung, Hyung-Hwan. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* OS/2 for other platforms than x86? + * If so, the endian should be defined selectively + */ +#define STIX_ENDIAN_LITTLE + +#if defined(__WATCOMC__) +# define STIX_SIZEOF_CHAR 1 +# define STIX_SIZEOF_SHORT 2 +# define STIX_SIZEOF_INT 4 +# define STIX_SIZEOF_LONG 4 +# if (__WATCOMC__ < 1200) +# define STIX_SIZEOF_LONG_LONG 0 +# else +# define STIX_SIZEOF_LONG_LONG 8 +# endif +# define STIX_SIZEOF_VOID_P 4 +# define STIX_SIZEOF_FLOAT 4 +# define STIX_SIZEOF_DOUBLE 8 +# define STIX_SIZEOF_LONG_DOUBLE 8 +# define STIX_SIZEOF_WCHAR_T 2 + +# define STIX_SIZEOF___INT8 1 +# define STIX_SIZEOF___INT16 2 +# define STIX_SIZEOF___INT32 4 +# define STIX_SIZEOF___INT64 8 +# define STIX_SIZEOF___INT128 0 + +# define STIX_SIZEOF_OFF64_T 0 +# define STIX_SIZEOF_OFF_T 8 + +/* I don't know the exact mbstate size. + * but this should be large enough */ +# define STIX_SIZEOF_MBSTATE_T STIX_SIZEOF_LONG +/* TODO: check the exact value */ +# define STIX_MBLEN_MAX 8 + + /* these two have only to be large enough */ +# define STIX_SIZEOF_STRUCT_SOCKADDR_IN 32 +# define STIX_SIZEOF_STRUCT_SOCKADDR_IN6 64 +# define STIX_SIZEOF_SOCKLEN_T 4 + +#elif defined(__BORLANDC__) +# define STIX_SIZEOF_CHAR 1 +# define STIX_SIZEOF_SHORT 2 +# define STIX_SIZEOF_INT 4 +# define STIX_SIZEOF_LONG 4 +# define STIX_SIZEOF_LONG_LONG 0 +# define STIX_SIZEOF_VOID_P 4 +# define STIX_SIZEOF_FLOAT 4 +# define STIX_SIZEOF_DOUBLE 8 +# define STIX_SIZEOF_LONG_DOUBLE 8 +# define STIX_SIZEOF_WCHAR_T 2 + +# define STIX_SIZEOF___INT8 0 +# define STIX_SIZEOF___INT16 0 +# define STIX_SIZEOF___INT32 0 +# define STIX_SIZEOF___INT64 0 +# define STIX_SIZEOF___INT128 0 + +# define STIX_SIZEOF_OFF64_T 0 +# define STIX_SIZEOF_OFF_T 4 + +# define STIX_SIZEOF_MBSTATE_T STIX_SIZEOF_LONG +# define STIX_MBLEN_MAX 8 + +# define STIX_SIZEOF_STRUCT_SOCKADDR_IN 32 +# define STIX_SIZEOF_STRUCT_SOCKADDR_IN6 64 +# define STIX_SIZEOF_SOCKLEN_T 4 + +#else +# error Define the size of various data types. +#endif