summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorjmmv <jmmv>2004-03-28 20:42:07 +0000
committerjmmv <jmmv>2004-03-28 20:42:07 +0000
commitaba6c7b9b485b2a7eee344ae0f3f700158017a50 (patch)
tree0535e9bbe3b20a200bda0a213215837351dab74e /lang
parent0d5520fef18dce565581e5f09455389d39ef4b1a (diff)
downloadpkgsrc-aba6c7b9b485b2a7eee344ae0f3f700158017a50.tar.gz
Initial import of sablevm, version 1.1.1:
SableVM is a portable bytecode interpreter written in C, and implementing the Java virtual machine specification, second edition. Its goals are to be reasonably small, fast and efficient, as well as providing a well designed and robust platform for conducting research. SableVM implements many innovative techniques, including: * 3 flavors of threaded interpretation (switched, threaded and inlined). * Bidirectional object layout. * Spinlock-free thin locks. * Sparse interface vtables. * Low-cost maps for precise garbage collection. This package is slightly based on the one found in pkgsrc-wip, made by pancake AT phreaker.net.
Diffstat (limited to 'lang')
-rw-r--r--lang/sablevm/DESCR11
-rw-r--r--lang/sablevm/Makefile46
-rw-r--r--lang/sablevm/PLIST19
-rw-r--r--lang/sablevm/distinfo8
-rw-r--r--lang/sablevm/patches/patch-aa13
-rw-r--r--lang/sablevm/patches/patch-ab51
-rw-r--r--lang/sablevm/patches/patch-ac42
-rw-r--r--lang/sablevm/patches/patch-ad12
8 files changed, 202 insertions, 0 deletions
diff --git a/lang/sablevm/DESCR b/lang/sablevm/DESCR
new file mode 100644
index 00000000000..ddc2063df85
--- /dev/null
+++ b/lang/sablevm/DESCR
@@ -0,0 +1,11 @@
+SableVM is a portable bytecode interpreter written in C, and implementing
+the Java virtual machine specification, second edition. Its goals are to
+be reasonably small, fast and efficient, as well as providing a well
+designed and robust platform for conducting research.
+
+SableVM implements many innovative techniques, including:
+* 3 flavors of threaded interpretation (switched, threaded and inlined).
+* Bidirectional object layout.
+* Spinlock-free thin locks.
+* Sparse interface vtables.
+* Low-cost maps for precise garbage collection.
diff --git a/lang/sablevm/Makefile b/lang/sablevm/Makefile
new file mode 100644
index 00000000000..91bf4fbce0a
--- /dev/null
+++ b/lang/sablevm/Makefile
@@ -0,0 +1,46 @@
+# $NetBSD: Makefile,v 1.1.1.1 2004/03/28 20:42:08 jmmv Exp $
+#
+
+DISTNAME= sablevm-1.1.1
+CATEGORIES= lang
+MASTER_SITES= http://devel.sablevm.org/download/1.1.1/
+
+MAINTAINER= pancake@phreaker.net
+HOMEPAGE= http://www.sablevm.org/
+COMMENT= SableVM free Java virtual machine
+
+DEPENDS+= unzip>=5.50:../../archivers/unzip
+DEPENDS+= sablevm-classpath-1.1.1:../../lang/sablevm-classpath
+
+GNU_CONFIGURE= yes
+USE_BUILDLINK3= yes
+USE_GNU_TOOLS+= make
+USE_LIBTOOL= yes
+
+CONFIGURE_ARGS+= --disable-signals-for-exceptions
+
+EVAL_PREFIX+= PREFIX.sablevm-classpath=sablevm-classpath
+PREFIX.sablevm-classpath_DEFAULT= ${LOCALBASE}
+
+pre-configure:
+ cd ${WRKSRC} && ${AUTOHEADER}
+ cd ${WRKSRC} && ${AUTOCONF}
+
+post-install:
+ ${INSTALL_DATA_DIR} ${PREFIX}/lib/sablevm
+ ${LN} -s ${PREFIX.sablevm-classpath}/lib/sablevm-classpath \
+ ${PREFIX}/lib/sablevm/sablevm-classpath
+ ${LN} -s ${PREFIX.sablevm-classpath}/share/sablevm-classpath \
+ ${PREFIX}/share/sablevm/sablevm-classpath
+
+.if !exists(/usr/include/semaphore.h)
+LDFLAGS+= -lsemaphore
+BUILDLINK_TRANSFORM+= l:rt:semaphore:
+.include "../../devel/pthread-sem/buildlink3.mk"
+.endif
+.include "../../devel/libffi/buildlink3.mk"
+.include "../../devel/libtool/buildlink3.mk"
+.include "../../devel/popt/buildlink3.mk"
+.include "../../mk/autoconf.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/sablevm/PLIST b/lang/sablevm/PLIST
new file mode 100644
index 00000000000..feca15d0def
--- /dev/null
+++ b/lang/sablevm/PLIST
@@ -0,0 +1,19 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2004/03/28 20:42:07 jmmv Exp $
+bin/java-sablevm
+bin/sablevm
+include/jni.h
+include/jni_system_specific.h
+lib/libsablevm.a
+lib/libsablevm.la
+lib/libsablevm.so
+lib/libsablevm.so.1
+lib/libsablevm.so.1.9
+lib/sablevm/sablevm-classpath
+man/man1/java-sablevm.1
+man/man1/sablevm.1
+share/sablevm/AUTHORS
+share/sablevm/COPYING.LIB
+share/sablevm/LICENSE
+share/sablevm/sablevm-classpath
+@dirrm share/sablevm
+@dirrm lib/sablevm
diff --git a/lang/sablevm/distinfo b/lang/sablevm/distinfo
new file mode 100644
index 00000000000..083c54a7911
--- /dev/null
+++ b/lang/sablevm/distinfo
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.1.1.1 2004/03/28 20:42:08 jmmv Exp $
+
+SHA1 (sablevm-1.1.1.tar.gz) = 3067ebc8c05a60dd7b1979193be0fa4d5422f4c4
+Size (sablevm-1.1.1.tar.gz) = 554037 bytes
+SHA1 (patch-aa) = 25e7b6748c4f5c8b327e20763ca5bf302e2bb795
+SHA1 (patch-ab) = 033d725794a2fae8aef57dd971cdff2a9832e9ab
+SHA1 (patch-ac) = 12d430397863ef7774fbb57831e10b31296c73e1
+SHA1 (patch-ad) = 7a157ce19ac27d489565b4035273864314a07c96
diff --git a/lang/sablevm/patches/patch-aa b/lang/sablevm/patches/patch-aa
new file mode 100644
index 00000000000..b46c2601f21
--- /dev/null
+++ b/lang/sablevm/patches/patch-aa
@@ -0,0 +1,13 @@
+$NetBSD: patch-aa,v 1.1.1.1 2004/03/28 20:42:08 jmmv Exp $
+
+--- Makefile.in.orig 2004-03-20 23:05:06.000000000 +0100
++++ Makefile.in
+@@ -580,7 +580,7 @@ uninstall-info: uninstall-info-recursive
+
+ java-sablevm: java-sablevm.m4.sh
+ rm -f java-sablevm
+- m4 -P java-sablevm.m4.sh -DSABLEVM_BINARY=@bindir@/sablevm >java-sablevm
++ m4 -P -DSABLEVM_BINARY=@bindir@/sablevm java-sablevm.m4.sh >java-sablevm
+ chmod a-w java-sablevm
+
+ ChangeLog:
diff --git a/lang/sablevm/patches/patch-ab b/lang/sablevm/patches/patch-ab
new file mode 100644
index 00000000000..6910de0b34b
--- /dev/null
+++ b/lang/sablevm/patches/patch-ab
@@ -0,0 +1,51 @@
+$NetBSD: patch-ab,v 1.1.1.1 2004/03/28 20:42:08 jmmv Exp $
+
+Index: configure.ac
+===================================================================
+--- configure.ac (revision 1860)
++++ configure.ac (working copy)
+@@ -18,6 +18,7 @@
+
+ AC_DEFINE(_REENTRANT,1,link with reentrant library functions)
+ AC_DEFINE(_POSIX_C_SOURCE,199506L,link with POSIX library functions)
++AC_DEFINE(_XOPEN_SOURCE,500,link with XOpen library functions)
+
+ dnl *** uncomment if you want to insert a magic value in every object instance for debugging ***
+ dnl AC_DEFINE(MAGIC,1,put "SableVM" in every instance)
+@@ -90,12 +91,6 @@
+ enable_signals_for_exceptions=no
+ fi])
+
+-case "$enable_signals_for_exceptions" in
+- no) ;;
+- yes) AC_DEFINE(_SABLEVM_SIGNALS_FOR_EXCEPTIONS,1,use signals to detect exceptions) ;;
+- *) AC_MSG_ERROR(bad value \"${enable_signals_for_exceptions}\" for --enable-signals-for-exceptions) ;;
+-esac
+-
+ dnl garbage collection
+ AC_ARG_WITH(gc,
+ [ --with-gc=TYPE use given garbage collector (none,copying)],,
+@@ -200,7 +195,23 @@
+ AC_C_INLINE
+ AC_TYPE_SIZE_T
+ AC_HEADER_TIME
++AC_CHECK_TYPE(siginfo_t, have_siginfo=yes;
++ AC_DEFINE(HAVE_SIGINFO, [],
++ [Define to 1 if you have siginfo support]),
++ have_siginfo=no, [#include <signal.h>])
+
++dnl Handle signals for exceptions based on the availability of siginfo_t.
++if test "$have_siginfo" = no; then
++ enable_signals_for_exceptions=no
++ AC_MSG_WARN([siginfo not available; disabled use of signals])
++fi
++
++case "$enable_signals_for_exceptions" in
++ no) ;;
++ yes) AC_DEFINE(_SABLEVM_SIGNALS_FOR_EXCEPTIONS,1,use signals to detect exceptions) ;;
++ *) AC_MSG_ERROR(bad value \"${enable_signals_for_exceptions}\" for --enable-signals-for-exceptions) ;;
++esac
++
+ dnl Checks for library functions.
+ AC_FUNC_MALLOC
+ AC_FUNC_MMAP
diff --git a/lang/sablevm/patches/patch-ac b/lang/sablevm/patches/patch-ac
new file mode 100644
index 00000000000..78bd6d92ca2
--- /dev/null
+++ b/lang/sablevm/patches/patch-ac
@@ -0,0 +1,42 @@
+$NetBSD: patch-ac,v 1.1.1.1 2004/03/28 20:42:08 jmmv Exp $
+
+Index: src/libsablevm/error.c
+===================================================================
+--- src/libsablevm/error.c (revision 1888)
++++ src/libsablevm/error.c (working copy)
+@@ -78,6 +78,8 @@
+ ----------------------------------------------------------------------
+ */
+
++#if defined(HAVE_SIGINFO)
++
+ static void
+ _svmf_internal_sigaction (int signo, siginfo_t * info, void *ignored)
+ {
+@@ -306,6 +308,8 @@
+ }
+ }
+
++#endif /* HAVE_SIGINFO */
++
+ /*
+ ----------------------------------------------------------------------
+ _svmf_error_init
+@@ -386,6 +390,8 @@
+
+ #endif /* _SABLEVM_INLINABILITY_TESTING */
+
++#if defined(HAVE_SIGINFO)
++
+ /* use extended info version */
+ sa.sa_flags = SA_SIGINFO;
+ sa.sa_sigaction = _svmf_internal_sigaction;
+@@ -448,6 +454,8 @@
+
+ #endif /* _SABLEVM_INLINABILITY_TESTING */
+
++#endif /* HAVE_SIGINFO */
++
+ return JNI_OK;
+
+ error:
diff --git a/lang/sablevm/patches/patch-ad b/lang/sablevm/patches/patch-ad
new file mode 100644
index 00000000000..eedb9ce9e29
--- /dev/null
+++ b/lang/sablevm/patches/patch-ad
@@ -0,0 +1,12 @@
+$NetBSD: patch-ad,v 1.1.1.1 2004/03/28 20:42:08 jmmv Exp $
+
+--- src/libsablevm/invoke_interface.c.orig 2004-03-20 23:02:04.000000000 +0100
++++ src/libsablevm/invoke_interface.c
+@@ -220,6 +220,7 @@ JNI_CreateJavaVM (JavaVM **pvm, void **p
+ }
+
+ _svmf_set_current_env (env);
++ _svmm_cond_init (vm->threads.vm_destruction_cond);
+ vm->threads.user = env;
+ vm->threads.next_thread_id = 1; /* thread IDs must start at 1
+ (i.e. no ID == 0) */