Welcome! Log In Create A New Profile

Advanced

[nginx] Win32: Open Watcom C compatibility fixes.

Maxim Dounin
September 04, 2013 01:16PM
details: http://hg.nginx.org/nginx/rev/670ceaba03d8
branches:
changeset: 5358:670ceaba03d8
user: Maxim Dounin <mdounin@mdounin.ru>
date: Wed Sep 04 20:48:22 2013 +0400
description:
Win32: Open Watcom C compatibility fixes.

Precompiled headers are disabled as they lead to internal compiler errors
with long configure lines. Couple of false positive warnings silenced.
Various win32 typedefs are adjusted to work with Open Watcom C 1.9 headers.

With this patch, it's now again possible to compile nginx using owc386,
with options we normally compile on win32 minus ipv6 and ssl.

diffstat:

auto/cc/owc | 8 ++++----
auto/lib/pcre/makefile.owc | 2 +-
src/core/ngx_string.c | 2 +-
src/http/modules/ngx_http_mp4_module.c | 2 +-
src/os/win32/ngx_win32_config.h | 14 ++++++++++++++
5 files changed, 21 insertions(+), 7 deletions(-)

diffs (85 lines):

diff --git a/auto/cc/owc b/auto/cc/owc
--- a/auto/cc/owc
+++ b/auto/cc/owc
@@ -65,10 +65,10 @@ have=NGX_HAVE_C99_VARIADIC_MACROS . auto


# the precompiled headers
-CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
-NGX_PCH="$NGX_OBJS/ngx_config.pch"
-NGX_BUILD_PCH="-fhq=$NGX_OBJS/ngx_config.pch"
-NGX_USE_PCH="-fh=$NGX_OBJS/ngx_config.pch"
+#CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
+#NGX_PCH="$NGX_OBJS/ngx_config.pch"
+#NGX_BUILD_PCH="-fhq=$NGX_OBJS/ngx_config.pch"
+#NGX_USE_PCH="-fh=$NGX_OBJS/ngx_config.pch"


# the link flags, built target is NT GUI mode application
diff --git a/auto/lib/pcre/makefile.owc b/auto/lib/pcre/makefile.owc
--- a/auto/lib/pcre/makefile.owc
+++ b/auto/lib/pcre/makefile.owc
@@ -4,7 +4,7 @@


CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)
-PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 \
+PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 &
-DSUPPORT_PCRE8 -DHAVE_MEMMOVE


diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -486,7 +486,7 @@ ngx_sprintf_num(u_char *buf, u_char *las

if (hexadecimal == 0) {

- if (ui64 <= NGX_MAX_UINT32_VALUE) {
+ if (ui64 <= (uint64_t) NGX_MAX_UINT32_VALUE) {

/*
* To divide 64-bit numbers and to find remainders
diff --git a/src/http/modules/ngx_http_mp4_module.c b/src/http/modules/ngx_http_mp4_module.c
--- a/src/http/modules/ngx_http_mp4_module.c
+++ b/src/http/modules/ngx_http_mp4_module.c
@@ -1129,7 +1129,7 @@ ngx_http_mp4_update_mdat_atom(ngx_http_m

atom_header = mp4->mdat_atom_header;

- if ((uint64_t) atom_data_size > 0xffffffff) {
+ if ((uint64_t) atom_data_size > (uint64_t) 0xffffffff) {
atom_size = 1;
atom_header_size = sizeof(ngx_mp4_atom_header64_t);
ngx_mp4_set_64value(atom_header + sizeof(ngx_mp4_atom_header_t),
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -128,13 +128,27 @@ typedef unsigned short int uint16_t;

typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
+
+#ifndef __WATCOMC__
typedef int intptr_t;
typedef u_int uintptr_t;
+#endif
+

/* Windows defines off_t as long, which is 32-bit */
typedef __int64 off_t;
#define _OFF_T_DEFINED

+#ifdef __WATCOMC__
+
+/* off_t is redefined by sys/types.h used by zlib.h */
+#define __TYPES_H_INCLUDED
+typedef int dev_t;
+typedef unsigned int ino_t;
+
+#endif
+
+
typedef int ssize_t;
typedef uint32_t in_addr_t;
typedef u_short in_port_t;

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Win32: Open Watcom C compatibility fixes.

Maxim Dounin 1088 September 04, 2013 01:16PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 264
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready