فهرست منبع

fix libc loading problem the correct way and so bless up to EVAL

Ralf S. Engelschall 21 سال پیش
والد
کامیت
1b6c2d6661
2فایلهای تغییر یافته به همراه89 افزوده شده و 42 حذف شده
  1. 81 34
      mono/mono.patch
  2. 8 8
      mono/mono.spec

+ 81 - 34
mono/mono.patch

@@ -1,38 +1,85 @@
-Crual hack to get Mono packaged, at least partly. As of Mono 0.91, the
-"make install" fails in runtime/net_*/ dirs with the error "Unhandled
-Exception: System.DllNotFoundException: libc". The following patch just
-skips this install step -- as a side-effect some essential parts of the
-package might be missing.
-
-Index: runtime/net_1_1/Makefile.in
---- runtime/net_1_1/Makefile.in.orig	2004-05-04 23:51:12.000000000 +0200
-+++ runtime/net_1_1/Makefile.in	2004-05-07 11:36:45.000000000 +0200
-@@ -354,12 +354,6 @@
- all-local: $(gac_assemblies)
+--- mono/mini/mini-x86.c	Mon Sep 29 05:28:49 2003
++++ mono/mini/mini-x86.c	Sat Aug 30 04:01:27 2003
+@@ -40,6 +40,32 @@
+ 	guint8  pad;
+ } MonoJitArgumentInfo;
  
- install-data-local:
--	@if test -n '$(gac_assemblies)'; then \
--	  for i in ''$(gac_assemblies); do \
--	    echo "MONO_PATH=$(srcdir) $(mono_runtime) --config ../../data/config $(gacutil) /i $(srcdir)/$$i /f /package 1.0 /root $(DESTDIR)$(libdir)" ; \
--	    MONO_PATH=$(srcdir) \
--	      $(LIBTOOL) --mode=execute $(mono_runtime) --config ../../data/config $(gacutil) /i $(srcdir)/$$i /f /package 1.0 /root $(DESTDIR)$(libdir) || exit 1 ; \
--	  done; fi
++union IEEEd2bits {
++    double d;
++    struct {
++#if _BYTE_ORDER == _LITTLE_ENDIAN
++	unsigned int    manl    :32;
++	unsigned int    manh    :20;
++	unsigned int    exp     :11;
++	unsigned int    sign    :1;
++#else
++	unsigned int    sign    :1;
++	unsigned int    exp     :11;
++	unsigned int    manh    :20;
++	unsigned int    manl    :32;
++#endif
++    } bits;
++};
++
++int
++signbit(double d)
++{
++    union IEEEd2bits u;
++
++    u.d = d;
++    return (u.bits.sign);
++}
++
+ /*
+  * arch_get_argument_info:
+  * @csig:  a method signature
+--- libgc/include/private/gcconfig.h.orig	Mon Oct  6 22:38:35 2003
++++ libgc/include/private/gcconfig.h	Mon Oct  6 22:38:56 2003
+@@ -1151,8 +1151,8 @@
+ #	ifndef GC_FREEBSD_THREADS
+ #	    define MPROTECT_VDB
+ #	endif
+-#	define SIG_SUSPEND SIGUSR1
+-#	define SIG_THR_RESTART SIGUSR2
++#	define SIG_SUSPEND SIGTSTP
++#	define SIG_THR_RESTART SIGCONT
+ #	define FREEBSD_STACKBOTTOM
+ #	ifdef __ELF__
+ #	    define DYNAMIC_LOADING
+@@ -1466,8 +1466,8 @@
+ #   ifdef FREEBSD
+ #	define OS_TYPE "FREEBSD"
+ /* MPROTECT_VDB is not yet supported at all on FreeBSD/alpha. */
+-#	define SIG_SUSPEND SIGUSR1
+-#	define SIG_THR_RESTART SIGUSR2
++#	define SIG_SUSPEND SIGTSTP
++#	define SIG_THR_RESTART SIGCONT
+ #	define FREEBSD_STACKBOTTOM
+ #	ifdef __ELF__
+ #	    define DYNAMIC_LOADING
+--- mono/Makefile.in.bak	Mon Feb  2 17:02:39 2004
++++ mono/Makefile.in	Tue Mar  2 01:48:16 2004
+@@ -123,7 +123,7 @@
+ @PLATFORM_WIN32_TRUE@	arch monograph interpreter mini tests benchmark profiler
  
- uninstall-local:
- 	@if test -n '$(gac_assemblies_list)'; then \
-Index: runtime/net_2_0/Makefile.in
---- runtime/net_2_0/Makefile.in.orig	2004-05-04 23:51:13.000000000 +0200
-+++ runtime/net_2_0/Makefile.in	2004-05-07 11:36:56.000000000 +0200
-@@ -355,12 +355,6 @@
- all-local: $(gac_assemblies)
+ @PLATFORM_WIN32_FALSE@SUBDIRS = utils io-layer monoburg os metadata cil dis \
+-@PLATFORM_WIN32_FALSE@	arch monograph interpreter mini tests benchmark handles profiler
++@PLATFORM_WIN32_FALSE@	arch monograph interpreter mini benchmark handles profiler
  
- install-data-local:
--	@if test -n '$(gac_assemblies)'; then \
--	  for i in ''$(gac_assemblies); do \
--	    echo "MONO_PATH=$(srcdir)/../net_1_1 $(mono_runtime) --config ../../data/config $(gacutil) /i $(srcdir)/$$i /f /package 2.0 /root $(DESTDIR)$(libdir)" ; \
--	    MONO_PATH=$(srcdir)/../net_1_1 \
--	      $(LIBTOOL) --mode=execute $(mono_runtime)  --config ../../data/config  $(gacutil) /i $(srcdir)/$$i /f /package 2.0 /root $(DESTDIR)$(libdir) || exit 1 ; \
--	  done; fi
+ subdir = mono
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+Index: configure
+--- configure.orig	2004-05-07 17:57:42.000000000 +0200
++++ configure	2004-05-07 17:58:32.000000000 +0200
+@@ -13971,6 +13971,11 @@
  
- uninstall-local:
- 	@if test -n '$(gac_assemblies_list)'; then \
+ JIT_SUPPORTED=no
+ LIBC="libc.so.6"
++case "$host" in
++    *-*-freebsd* )
++        LIBC="libc.so"
++        ;;
++esac
+ 
+ jit_wanted=false
+ case "$host" in

+ 8 - 8
mono/mono.spec

@@ -25,12 +25,12 @@
 
 #   package information
 Name:         mono
-Summary:      Unix .NET Development Framework
+Summary:      Unix .NET Development Framework: Runtime
 URL:          http://www.go-mono.com/
 Vendor:       The Mono Project
 Packager:     The OpenPKG Project
 Distribution: OpenPKG
-Class:        JUNK
+Class:        EVAL
 Group:        Language
 License:      GPL
 Version:      0.91
@@ -51,12 +51,12 @@ AutoReq:      no
 AutoReqProv:  no
 
 %description
-     The Mono project is an open source effort to create a free
-     implementation of the .NET Development Framework. Mono includes
-     a compiler for the C# language, a Common Language Runtime (CLR)
-     for the Common Language Infrastructure (CLI) and a set of class
-     libraries. The runtime can be embedded into your application. It
-     implements both ADO.NET and ASP.NET.
+    The Mono project is an open source effort to create a free Unix
+    implementation of the .NET Development Framework. This is the base
+    package providing a Common Language Runtime (CLR) for the Common
+    Language Infrastructure (CLI) and a set of class libraries. The
+    runtime can be embedded into your application. It implements both
+    ADO.NET and ASP.NET.
 
 %track
     prog mono = {