Selaa lähdekoodia

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

Ralf S. Engelschall 21 vuotta sitten
vanhempi
commit
1b6c2d6661
2 muutettua tiedostoa jossa 89 lisäystä ja 42 poistoa
  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 = {