Skip to content

Commit 381d4c3

Browse files
author
foobar
committed
Make this extension compile thread safe on unixes too.
Also changed all those nice spaces to tabs # # Zeev, could you make those changes for this extension too? # # And yes, I know I shouldn't mix ws fixes to anything else but # this was easier to do this way.
1 parent 9f4c0ae commit 381d4c3

File tree

4 files changed

+3276
-3776
lines changed

4 files changed

+3276
-3776
lines changed

ext/informix/Makefile.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11

2-
LTLIBRARY_NAME = libinformix.la
3-
LTLIBRARY_SOURCES = ifx.c
2+
LTLIBRARY_NAME = libinformix.la
3+
LTLIBRARY_SOURCES = ifx.c
44
LTLIBRARY_SHARED_NAME = informix.la
55
LTLIBRARY_SHARED_LIBADD = $(INFORMIX_SHARED_LIBADD)
6-
CLEANFILES = ifx.c libphpifx.a
6+
CLEANFILES = ifx.c libphpifx.a
77

88
include $(top_srcdir)/build/dynlib.mk
99

1010
ifx.c: $(srcdir)/ifx.ec
1111
(if test -d $(INFORMIXDIR); then \
12-
$(INFORMIXDIR)/bin/esql -e $(IFX_ESQL_FLAGS) $(srcdir)/ifx.ec; \
12+
THREADLIB=POSIX $(INFORMIXDIR)/bin/esql -e $(IFX_ESQL_FLAGS) $(srcdir)/ifx.ec; \
1313
else \
1414
touch ifx.c; \
1515
fi)

ext/informix/config.m4

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,15 @@ if test "$PHP_INFORMIX" != "no"; then
2626
PHP_ADD_LIBPATH($PHP_INFORMIX/lib/esql, INFORMIX_SHARED_LIBADD)
2727
fi
2828

29-
IFX_LIBS=`$INFORMIXDIR/bin/esql -libs -shared | sed -e 's/-lm$//'`
30-
dnl -lm twice otherwise?
29+
dnl Check if thread safety flags are needed
30+
if test "$enable_experimental_zts" = "yes"; then
31+
IFX_ESQL_FLAGS="-thread"
32+
CPPFLAGS="$CPPFLAGS -DIFX_THREAD"
33+
else
34+
IFX_ESQL_FLAGS=""
35+
fi
36+
37+
IFX_LIBS=`THREADLIB=POSIX $INFORMIXDIR/bin/esql $IFX_ESQL_FLAGS -libs`
3138
IFX_LIBS=`echo $IFX_LIBS | sed -e 's/Libraries to be used://g' -e 's/esql: error -55923: No source or object file\.//g'`
3239
dnl Seems to get rid of newlines.
3340
dnl According to Perls DBD-Informix, might contain these strings.
@@ -44,9 +51,9 @@ if test "$PHP_INFORMIX" != "no"; then
4451

4552
if test $IFX_VERSION -ge "900"; then
4653
AC_DEFINE(HAVE_IFX_IUS,1,[ ])
47-
IFX_ESQL_FLAGS="-EDHAVE_IFX_IUS"
54+
IFX_ESQL_FLAGS="$IFX_ESQL_FLAGS -EDHAVE_IFX_IUS"
4855
else
49-
IFX_ESQL_FLAGS="-EUHAVE_IFX_IUS"
56+
IFX_ESQL_FLAGS="$IFX_ESQL_FLAGS -EUHAVE_IFX_IUS"
5057
fi
5158
PHP_SUBST(IFX_ESQL_FLAGS)
5259

@@ -55,19 +62,31 @@ if test "$PHP_INFORMIX" != "no"; then
5562
*.o)
5663
IFX_LIBOBJS="$IFX_LIBOBJS $i"
5764
PHP_ADD_LIBPATH($ext_builddir, INFORMIX_SHARED_LIBADD)
58-
PHP_ADD_LIBRARY_DEFER(phpifx, 1, INFORMIX_SHARED_LIBADD)
65+
PHP_ADD_LIBRARY_DEFER(phpifx, 1)
66+
;;
67+
-lm)
68+
;;
69+
-lc)
5970
;;
6071
-l*)
61-
lib=`echo $i|sed -e "s/^-l//"`
62-
PHP_ADD_LIBRARY_DEFER($lib, 1, INFORMIX_SHARED_LIBADD)
72+
lib=`echo $i | cut -c 3-`
73+
PHP_ADD_LIBRARY_DEFER($lib, 1)
6374
;;
6475
*.a)
65-
lib=`echo $i|sed -e "s#^/.*/lib##g;s#\.a##g"`
66-
PHP_ADD_LIBRARY_DEFER($lib, 1, INFORMIX_SHARED_LIBADD)
76+
case "`uname -s 2>/dev/null`" in
77+
UnixWare | SCO_SV | UNIX_SV)
78+
DLIBS="$DLIBS $i"
79+
;;
80+
*)
81+
ac_dir="`echo $i|sed 's#[^/]*$##;s#\/$##'`"
82+
ac_lib="`echo $i|sed 's#^/.*/lib##g;s#\.a##g'`"
83+
DLIBS="$DLIBS -L$ac_dir -l$ac_lib"
84+
;;
85+
esac
6786
;;
6887
esac
6988
done
70-
89+
7190
AC_DEFINE(HAVE_IFX,1,[ ])
7291
PHP_SUBST(INFORMIXDIR)
7392
PHP_SUBST(IFX_LIBOBJS)

0 commit comments

Comments
 (0)