aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Pulford <mark@kyne.com.au>2011-08-11 19:46:36 +0930
committerMark Pulford <mark@kyne.com.au>2011-08-11 19:46:36 +0930
commit53baee1e33022fcba4d316b3952510c085173e02 (patch)
treeaed27e186b05a3bd8e5e2cec48095527fc29143c
parent1fc923da45731b39e6aea9f50543cd7e8b0e4ad8 (diff)
downloadlua-cjson-53baee1e33022fcba4d316b3952510c085173e02.tar.gz
lua-cjson-53baee1e33022fcba4d316b3952510c085173e02.tar.bz2
lua-cjson-53baee1e33022fcba4d316b3952510c085173e02.zip
Add work around for missing isinf() on Solaris
Some versions of Solaris (Eg, Solaris 11 / GCC 3.4.3) are missing isinf(). Provide a work around when MISSING_ISINF is defined. Reported by: Zhang "agentzh" Yichun <agentzh@gmail.com>
-rw-r--r--Makefile3
-rw-r--r--README3
-rw-r--r--lua_cjson.c4
3 files changed, 10 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index cfc7a74..d34ff6d 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,9 @@ LDFLAGS += -shared
15LUA_INCLUDE_DIR ?= $(PREFIX)/include 15LUA_INCLUDE_DIR ?= $(PREFIX)/include
16LUA_LIB_DIR ?= $(PREFIX)/lib/lua/$(LUA_VERSION) 16LUA_LIB_DIR ?= $(PREFIX)/lib/lua/$(LUA_VERSION)
17 17
18# Some versions of Solaris are missing isinf(). Add -DMISSING_ISINF to
19# CFLAGS to work around this bug.
20
18#CFLAGS ?= -g -Wall -pedantic -fno-inline 21#CFLAGS ?= -g -Wall -pedantic -fno-inline
19CFLAGS ?= -g -O3 -Wall -pedantic 22CFLAGS ?= -g -O3 -Wall -pedantic
20override CFLAGS += -fpic -I$(LUA_INCLUDE_DIR) -DVERSION=\"$(CJSON_VERSION)\" 23override CFLAGS += -fpic -I$(LUA_INCLUDE_DIR) -DVERSION=\"$(CJSON_VERSION)\"
diff --git a/README b/README
index b849b92..d080ce3 100644
--- a/README
+++ b/README
@@ -51,6 +51,9 @@ Review and update the included Makefile to suit your platform. Then:
51 OR 51 OR
52 # cp cjson.so [your_module_directory] 52 # cp cjson.so [your_module_directory]
53 53
54Note: Some Solaris platforms are missing isinf(). You can work around
55 this bug by adding -DMISSING_ISINF to CFLAGS in the Makefile.
56
54 57
55RPM 58RPM
56--- 59---
diff --git a/lua_cjson.c b/lua_cjson.c
index b46e915..076c56f 100644
--- a/lua_cjson.c
+++ b/lua_cjson.c
@@ -44,6 +44,10 @@
44 44
45#include "strbuf.h" 45#include "strbuf.h"
46 46
47#ifdef MISSING_ISINF
48#define isinf(x) (!isnan(x) && isnan((x) - (x)))
49#endif
50
47#define DEFAULT_SPARSE_CONVERT 0 51#define DEFAULT_SPARSE_CONVERT 0
48#define DEFAULT_SPARSE_RATIO 2 52#define DEFAULT_SPARSE_RATIO 2
49#define DEFAULT_SPARSE_SAFE 10 53#define DEFAULT_SPARSE_SAFE 10