pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/30017 kaffe-1.1.5, patch proposition



The following reply was made to PR pkg/30017; it has been noted by GNATS.

From: Antoine Reilles <Antoine.Reilles%loria.fr@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: pkg/30017 kaffe-1.1.5, patch proposition
Date: Sun, 24 Apr 2005 21:00:33 +0200

 Hi,
 
 I investigated the problem a bit more. For the problem pankake reported, using 
 .include "../../devel/libltdl/buildlink3.mk"
 instead of conveniance.mk fixed that.
 
 There was also a problem which prevented kaffe-1.1.5 to be build under -current
 
 I came out with a set of patches which resolves the issue, thanks to dalibor at
 #kaffe
 
 The problem is: i'm not sure those patches will make it possible to build kaffe
 with netbsd<=1.6, and do not have a machine to test that.
 Also, this patch is for i386, and may/should be adapted for other architectures
 as well.
 
 Kaffe 1.1.5 has a really impressing changelog, so the efforts to make it
 working under netbsd are not lost.
 
 antoine
 
 
 Index: Makefile
 ===================================================================
 RCS file: /cvsroot/pkgsrc/lang/kaffe/Makefile,v
 retrieving revision 1.58
 diff -u -r1.58 Makefile
 --- Makefile   30 Jan 2005 23:18:38 -0000      1.58
 +++ Makefile   24 Apr 2005 18:53:59 -0000
 @@ -3,8 +3,6 @@
  
  .include "Makefile.common"
  
 -PKGREVISION=          6
 -
  CONFLICTS+=           kaffe-nox11-[0-9]*
  
  JAVA_WRAPPERS=                appletviewer jar java javac javadoc javah 
javakey \
 @@ -21,6 +19,6 @@
  post-install:
        ${INSTALL_DATA} ${WRKSRC}/license.terms ${JAVA_HOME}
  
 -.include "../../devel/libltdl/convenience.mk"
 +.include "../../devel/libltdl/buildlink3.mk"
  .include "../../mk/java-env.mk"
  .include "../../mk/bsd.pkg.mk"
 Index: Makefile.common
 ===================================================================
 RCS file: /cvsroot/pkgsrc/lang/kaffe/Makefile.common,v
 retrieving revision 1.4
 diff -u -r1.4 Makefile.common
 --- Makefile.common    11 Apr 2005 21:46:14 -0000      1.4
 +++ Makefile.common    24 Apr 2005 18:53:59 -0000
 @@ -1,6 +1,6 @@
  # $NetBSD: Makefile.common,v 1.4 2005/04/11 21:46:14 tv Exp $
  
 -DISTNAME=             kaffe-1.1.4
 +DISTNAME=             kaffe-1.1.5
  CATEGORIES=           lang java
  MASTER_SITES=         ftp://ftp.kaffe.org/pub/kaffe/v1.1.x-development/
  
 @@ -23,14 +23,15 @@
  
  GNU_CONFIGURE=                yes
  CPPFLAGS+=            -Dunix
 -PATCHDIR=             ${.CURDIR}/../../lang/kaffe/patches
 -DISTINFO_FILE=                ${.CURDIR}/../../lang/kaffe/distinfo
 +PATCHDIR=             ${.CURDIR}/../../lang/kaffe-devel/patches
 +DISTINFO_FILE=                ${.CURDIR}/../../lang/kaffe-devel/distinfo
  
  BUILDLINK_PASSTHRU_DIRS+=     ${JAVA_HOME}/jre/lib/${MACHINE_ARCH}
  
  CONFIGURE_ARGS+=      --without-alsa
  CONFIGURE_ARGS+=      --without-esd
 -CONFIGURE_ARGS+=      --without-awt
 +CONFIGURE_ARGS+=      --disable-esdtest
 +CONFIGURE_ARGS+=      --disable-native-awt
  
  .include "../../mk/bsd.prefs.mk"
  
 Index: PLIST
 ===================================================================
 RCS file: /cvsroot/pkgsrc/lang/kaffe/PLIST,v
 retrieving revision 1.11
 diff -u -r1.11 PLIST
 --- PLIST      22 Sep 2004 08:09:39 -0000      1.11
 +++ PLIST      24 Apr 2005 18:53:59 -0000
 @@ -1,4 +1,4 @@
 -@comment $NetBSD: PLIST,v 1.11 2004/09/22 08:09:39 jlam Exp $
 +@comment $NetBSD$
  bin/kaffe-appletviewer
  bin/kaffe-jar
  bin/kaffe-java
 @@ -18,17 +18,15 @@
  java/kaffe/bin/javac
  java/kaffe/bin/javadoc
  java/kaffe/bin/javah
 -java/kaffe/bin/javakey
  java/kaffe/bin/javap
 -java/kaffe/bin/jdb
  java/kaffe/bin/kaffe
  java/kaffe/bin/kaffeh
 -java/kaffe/bin/kjc
 -java/kaffe/bin/kopi
  java/kaffe/bin/native2ascii
  java/kaffe/bin/rmic
  java/kaffe/bin/rmiregistry
  java/kaffe/bin/serialver
 +java/kaffe/include/jawt.h
 +java/kaffe/include/jawt_md.h
  java/kaffe/include/jni.h
  java/kaffe/include/jni_cpp.h
  java/kaffe/include/jvmpi.h
 @@ -40,27 +38,35 @@
  java/kaffe/include/kaffe/java_lang_Throwable.h
  java/kaffe/include/kaffe/java_lang_VMThrowable.h
  java/kaffe/include/kaffe/jmalloc.h
 -java/kaffe/include/kaffe/jtypes.h
 +java/kaffe/include/kaffe/jni_md.h
 +java/kaffe/include/kaffe_jni.h
  java/kaffe/jre/bin/java
  java/kaffe/jre/bin/kaffe
  java/kaffe/jre/bin/kaffe-bin
  java/kaffe/jre/bin/rmiregistry
 +java/kaffe/jre/lib/gmpjavamath.jar
 +java/kaffe/jre/lib/${MACHINE_ARCH}/libclasspath.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libio.la
 +java/kaffe/jre/lib/${MACHINE_ARCH}/libkaffegc.la
 +java/kaffe/jre/lib/${MACHINE_ARCH}/libkaffeverifier.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libkaffevm.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libmanagement.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libmath.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libnative.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libnet.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libnio.la
 +java/kaffe/jre/lib/${MACHINE_ARCH}/libreplace.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libsecurity.la
  java/kaffe/jre/lib/${MACHINE_ARCH}/libzip.la
 +java/kaffe/jre/lib/security/java.security
 +java/kaffe/jre/lib/logging.properties
  java/kaffe/jre/lib/rt.jar
 -java/kaffe/jre/lib/security/java.security.default
 -java/kaffe/lib/kjc.jar
 +java/kaffe/jre/lib/tools.jar
  java/kaffe/license.terms
  java/kaffe/man/man1/kaffe.1
  @dirrm java/kaffe/man/man1
  @dirrm java/kaffe/man
 +@exec ${MKDIR} %D/java/kaffe/lib
  @dirrm java/kaffe/lib
  @dirrm java/kaffe/jre/lib/security
  @dirrm java/kaffe/jre/lib/${MACHINE_ARCH}
 Index: distinfo
 ===================================================================
 RCS file: /cvsroot/pkgsrc/lang/kaffe/distinfo,v
 retrieving revision 1.12
 diff -u -r1.12 distinfo
 --- distinfo   24 Feb 2005 09:03:08 -0000      1.12
 +++ distinfo   24 Apr 2005 18:53:59 -0000
 @@ -1,8 +1,8 @@
  $NetBSD: distinfo,v 1.12 2005/02/24 09:03:08 agc Exp $
  
 -SHA1 (kaffe-1.1.4.tar.gz) = fb7a6ac27d82e1854de07422c46ce5e17beda58b
 -RMD160 (kaffe-1.1.4.tar.gz) = 5bb8b0c9a338a3bd05f9fdc2a3f94c297489a7db
 -Size (kaffe-1.1.4.tar.gz) = 8891220 bytes
 -SHA1 (patch-aa) = 7b5dde8d984e8ee2d474d4e54d064562a5535533
 -SHA1 (patch-ac) = 5a4cd4ee913b7d4277cc10c38a7c4a810ba258f1
 -SHA1 (patch-ae) = f7d6ff1e9356f6ba00c23c2ab0a1682aa9ccc003
 +SHA1 (kaffe-1.1.5.tar.gz) = ebd8da490783ed189fb25fad0d674f384194e2f3
 +RMD160 (kaffe-1.1.5.tar.gz) = 516b5dbaa13efed099f59ff9b7121700ef6ad13b
 +Size (kaffe-1.1.5.tar.gz) = 9796278 bytes
 +SHA1 (patch-aa) = 781e2f93253611b13ce517e75ff3205946eb38bc
 +SHA1 (patch-ab) = 0142d8db49e37d62c9a877c2fb4b19af7398b853
 +SHA1 (patch-ac) = e52335ec4de81a2f88ec846b92026d3e09e0c34f
 Index: patches/patch-aa
 ===================================================================
 RCS file: /cvsroot/pkgsrc/lang/kaffe/patches/patch-aa,v
 retrieving revision 1.12
 diff -u -r1.12 patch-aa
 --- patches/patch-aa   22 Sep 2003 03:04:17 -0000      1.12
 +++ patches/patch-aa   24 Apr 2005 18:53:59 -0000
 @@ -1,18 +1,26 @@
 -$NetBSD: patch-aa,v 1.12 2003/09/22 03:04:17 jschauma Exp $
 -
 ---- configure.orig    2003-08-03 19:15:52.000000000 -0400
 -+++ configure 2003-09-21 18:22:14.000000000 -0400
 -@@ -22916,11 +22916,11 @@
 - #endif
 - /* We use char because int might match the return type of a gcc2
 -    builtin and then its argument prototype would still apply.  */
 --char mpz_get_d ();
 -+char __mpz_get_d ();
 - int
 - main ()
 - {
 --mpz_get_d ();
 -+__mpz_get_d ();
 -   ;
 -   return 0;
 - }
 +--- config/i386/netbsd1/md.h.orig     2005-04-24 19:53:29.000000000 +0200
 ++++ config/i386/netbsd1/md.h  2005-04-24 19:58:35.000000000 +0200
 +@@ -17,6 +17,7 @@
 + 
 + #include "i386/common.h"
 + #include "i386/threads.h"
 ++#include  <sys/ucontext.h>
 + 
 + #if defined(HAVE_SYS_RESOURCE_H)
 + #include <sys/resource.h>
 +@@ -31,11 +32,11 @@
 + #undef SP_OFFSET
 + #define SP_OFFSET 2
 + 
 +-#define SIGNAL_ARGS(sig, sc) int sig, int __code, struct sigcontext *sc
 +-#define SIGNAL_CONTEXT_POINTER(scp) struct sigcontext *scp
 ++#define SIGNAL_ARGS(sig, sc) int sig, int __code, struct __ucontext *sc
 ++#define SIGNAL_CONTEXT_POINTER(scp) struct __ucontext *scp
 + #define GET_SIGNAL_CONTEXT_POINTER(sc) (sc)
 +-#define SIGNAL_PC(scp) (scp)->sc_pc
 +-#define STACK_POINTER(scp) (scp)->sc_sp
 ++#define SIGNAL_PC(scp) ((scp)->uc_mcontext.__gregs[_REG_EIP])
 ++#define STACK_POINTER(scp) ((scp)->uc_mcontext.__gregs[_REG_ESP])
 + 
 + #if defined(TRANSLATOR)
 + #include "jit-md.h"
 Index: patches/patch-ac
 ===================================================================
 RCS file: /cvsroot/pkgsrc/lang/kaffe/patches/patch-ac,v
 retrieving revision 1.7
 diff -u -r1.7 patch-ac
 --- patches/patch-ac   6 Apr 2004 17:08:01 -0000       1.7
 +++ patches/patch-ac   24 Apr 2005 18:53:59 -0000
 @@ -1,25 +1,12 @@
 -$NetBSD: patch-ac,v 1.7 2004/04/06 17:08:01 xtraeme Exp $
 -
 ---- libraries/clib/security/Makefile.in.orig  2004-04-06 17:39:24.000000000 
+0200
 -+++ libraries/clib/security/Makefile.in       2004-04-06 17:42:21.000000000 
+0200
 -@@ -453,16 +453,16 @@
 -      @list='$(security_DATA)'; for p in $$list; do \
 -        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 -        f="`echo $$p | sed -e 's|^.*/||'`"; \
 --       echo " $(securityDATA_INSTALL) $$d$$p $(DESTDIR)$(securitydir)/$$f"; \
 --       $(securityDATA_INSTALL) $$d$$p $(DESTDIR)$(securitydir)/$$f; \
 -+       echo " $(securityDATA_INSTALL) $$d$$p 
$(DESTDIR)$(securitydir)/$$f.default"; \
 -+       $(securityDATA_INSTALL) $$d$$p $(DESTDIR)$(securitydir)/$$f.default; \
 -      done
 +--- config/i386/netbsd1/jit-md.h.orig 2005-04-24 20:01:15.000000000 +0200
 ++++ config/i386/netbsd1/jit-md.h      2005-04-24 20:01:46.000000000 +0200
 +@@ -26,7 +26,7 @@
   
 - uninstall-securityDATA:
 -      @$(NORMAL_UNINSTALL)
 -      @list='$(security_DATA)'; for p in $$list; do \
 -        f="`echo $$p | sed -e 's|^.*/||'`"; \
 --       echo " rm -f $(DESTDIR)$(securitydir)/$$f"; \
 --       rm -f $(DESTDIR)$(securitydir)/$$f; \
 -+       echo " rm -f $(DESTDIR)$(securitydir)/$$f.default"; \
 -+       rm -f $(DESTDIR)$(securitydir)/$$f.default; \
 -      done
 + /* Get the first exception frame from a signal handler */
 + #define      EXCEPTIONFRAME(f, c)                                            
\
 +-     (f).retbp = (c)->sc_ebp;                                        \
 +-     (f).retpc = (c)->sc_eip + 1
 ++       (f).retbp = (c)->uc_mcontext.__gregs[_REG_EBP];                 \
 ++       (f).retpc = (c)->uc_mcontext.__gregs[_REG_EIP] + 1
   
 - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 + #endif
 --- /dev/null  2005-04-24 20:51:18.000000000 +0200
 +++ patches/patch-ab   2005-04-24 19:50:42.000000000 +0200
 @@ -0,0 +1,83 @@
 +--- ./kaffe/kaffevm/systems/unix-pthreads/signal.c.orig       2005-04-24 
19:46:52.000000000 +0200
 ++++ ./kaffe/kaffevm/systems/unix-pthreads/signal.c    2005-04-24 
19:50:12.000000000 +0200
 +@@ -47,8 +47,6 @@
 + #define SIG_T   void*
 + #endif
 + 
 +-static void nullException(SIGNAL_ARGS(sig, sc));
 +-static void floatingException(EXCEPTIONPROTO);
 + static void ignoreSignal(int sig);
 + 
 + static exchandler_t nullHandler;
 +@@ -56,35 +54,6 @@
 + static exchandler_t stackOverflowHandler;
 + 
 + /*
 +- * Setup the internal exceptions.
 +- */
 +-void
 +-jthread_initexceptions(exchandler_t _nullHandler,
 +-                    exchandler_t _floatingHandler,
 +-                    exchandler_t _stackOverflowHandler)
 +-{
 +-     nullHandler = _nullHandler;
 +-     floatingHandler = _floatingHandler;
 +-     stackOverflowHandler = _stackOverflowHandler;
 +-
 +-     if (DBGEXPR(EXCEPTION, false, true)) {
 +-             /* Catch signals we need to convert to exceptions */
 +-#if defined(SIGSEGV)
 +-             registerSyncSignalHandler(SIGSEGV, nullException);
 +-#endif
 +-#if defined(SIGBUS)
 +-             registerSyncSignalHandler(SIGBUS, nullException);
 +-#endif
 +-#if defined(SIGFPE)
 +-             registerSyncSignalHandler(SIGFPE, floatingException);
 +-#endif
 +-#if defined(SIGPIPE)
 +-             ignoreSignal(SIGPIPE);
 +-#endif
 +-     }
 +-}
 +-
 +-/*
 +  * Null exception - catches bad memory accesses.
 +  */
 + static void
 +@@ -141,6 +110,35 @@
 +      floatingHandler(EXCEPTIONFRAMEPTR);
 + }
 + 
 ++/*
 ++ * Setup the internal exceptions.
 ++ */
 ++void
 ++jthread_initexceptions(exchandler_t _nullHandler,
 ++                    exchandler_t _floatingHandler,
 ++                    exchandler_t _stackOverflowHandler)
 ++{
 ++     nullHandler = _nullHandler;
 ++     floatingHandler = _floatingHandler;
 ++     stackOverflowHandler = _stackOverflowHandler;
 ++
 ++     if (DBGEXPR(EXCEPTION, false, true)) {
 ++             /* Catch signals we need to convert to exceptions */
 ++#if defined(SIGSEGV)
 ++             registerSyncSignalHandler(SIGSEGV, nullException);
 ++#endif
 ++#if defined(SIGBUS)
 ++             registerSyncSignalHandler(SIGBUS, nullException);
 ++#endif
 ++#if defined(SIGFPE)
 ++             registerSyncSignalHandler(SIGFPE, floatingException);
 ++#endif
 ++#if defined(SIGPIPE)
 ++             ignoreSignal(SIGPIPE);
 ++#endif
 ++     }
 ++}
 ++
 + /* -----------------------------------------------
 +  * OS signal handling code.  See FAQ/FAQ.jsignal for information.
 +  * ----------------------------------------------- */
 



Home | Main Index | Thread Index | Old Index