diff options
author | itetcu <itetcu@FreeBSD.org> | 2008-05-10 01:11:13 +0800 |
---|---|---|
committer | itetcu <itetcu@FreeBSD.org> | 2008-05-10 01:11:13 +0800 |
commit | cf92220b5b6950fc01c3e852529636504f9d1b2d (patch) | |
tree | 4d741f30a12277ab9ee2a80c9a8d399c087638c3 /lang/see-devel | |
parent | 28361c4848f3aad10ac064b7b2c4135d6240c728 (diff) | |
download | freebsd-ports-gnome-cf92220b5b6950fc01c3e852529636504f9d1b2d.tar.gz freebsd-ports-gnome-cf92220b5b6950fc01c3e852529636504f9d1b2d.tar.zst freebsd-ports-gnome-cf92220b5b6950fc01c3e852529636504f9d1b2d.zip |
- add new option MULTIPLE_THREADS. With this option enabled libsee/dtoa.c is
compiled with proper thread locking.
- bump PORTVERSION
PR: ports/122525
Submitted by: maintainer
Diffstat (limited to 'lang/see-devel')
-rw-r--r-- | lang/see-devel/Makefile | 10 | ||||
-rw-r--r-- | lang/see-devel/files/patch-libsee_dtoa.c | 24 |
2 files changed, 33 insertions, 1 deletions
diff --git a/lang/see-devel/Makefile b/lang/see-devel/Makefile index 3f9857e3a411..765b611585e1 100644 --- a/lang/see-devel/Makefile +++ b/lang/see-devel/Makefile @@ -7,6 +7,7 @@ PORTNAME= see PORTVERSION= 3.0.1376 +PORTREVISION= 1 CATEGORIES= lang devel MASTER_SITES= http://www.evolane.com/download/mirror/etcl/ \ http://www.evolane.fr/download/mirror/etcl/ @@ -17,7 +18,8 @@ COMMENT= Simple ECMAScript Engine (SEE) OPTIONS= GC "Use Boehm-Weiser garbage collection package" on \ OPTIMIZED_CFLAGS "Enable some additional optimizations" off \ - SEE_DEBUG "Internal SEE library debugging" off + SEE_DEBUG "Internal SEE library debugging" off \ + MULTIPLE_THREADS "Enable thread-safety" on CONFLICTS= see-[0-9]* @@ -32,6 +34,10 @@ CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL} .include <bsd.port.pre.mk> +.if defined(WITH_MULTIPLE_THREADS) +CFLAGS+= -DMULTIPLE_THREADS +.endif + .if !defined(WITH_SEE_DEBUG) CFLAGS+= -DNDEBUG .endif @@ -44,9 +50,11 @@ CFLAGS+= -O3 -fomit-frame-pointer LIB_DEPENDS+= gc:${PORTSDIR}/devel/boehm-gc .else CONFIGURE_ARGS+= --without-boehm-gc +.if !defined(WITH_MULTIPLE_THREADS) PTHREAD_CFLAGS= PTHREAD_LIBS= .endif +.endif post-patch: @${REINPLACE_CMD} -e "s|PACKAGE_BUGREPORT='leonard@users|PACKAGE_BUGREPORT='leonard\\\@users|" \ diff --git a/lang/see-devel/files/patch-libsee_dtoa.c b/lang/see-devel/files/patch-libsee_dtoa.c new file mode 100644 index 000000000000..d41a5da30863 --- /dev/null +++ b/lang/see-devel/files/patch-libsee_dtoa.c @@ -0,0 +1,24 @@ +--- libsee/dtoa.c.orig 2005-12-24 04:35:38.000000000 +0100 ++++ libsee/dtoa.c 2008-04-07 11:30:11.529829910 +0200 +@@ -168,6 +168,11 @@ + * the result overflows to +-Infinity or underflows to 0. + */ + ++#ifdef MULTIPLE_THREADS ++#include <pthread.h> ++static pthread_mutex_t mylock[2] = { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER }; ++#endif ++ + #ifndef Long + #define Long long + #endif +@@ -470,6 +475,9 @@ + #ifndef MULTIPLE_THREADS + #define ACQUIRE_DTOA_LOCK(n) /*nothing*/ + #define FREE_DTOA_LOCK(n) /*nothing*/ ++#else ++#define ACQUIRE_DTOA_LOCK(n) pthread_mutex_lock(&mylock[n]); ++#define FREE_DTOA_LOCK(n) pthread_mutex_unlock(&mylock[n]); + #endif + + #define Kmax 15 |