Hi,

Please find and updated version of this patch. It only adds libc0.1 as
an alternative in dh_clideps.

Thanks,
Aurelien

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   [EMAIL PROTECTED]         | [EMAIL PROTECTED]
   `-    people.debian.org/~aurel32 | www.aurel32.net
Author: petr
Status: in BTS

diff -u mono-1.1.18/debian/control mono-1.1.18/debian/control
--- mono-1.1.18/debian/control
+++ mono-1.1.18/debian/control
@@ -7,7 +7,7 @@
 Standards-Version: 3.7.2
 
 Package: mono-common
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Depends: ${shlibs:Depends}, ${misc:Depends}, binfmt-support (>= 1.1.2)
 Description: common files for Mono
  Mono is a platform for running and developing applications based on the
@@ -21,7 +21,7 @@
 
 Package: mono-runtime
 Provides: cli-runtime
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Depends: mono-jit (= ${Source-Version}), mono-gac (= ${source:Version})
 Description: Mono runtime
  Mono is a platform for running and developing applications based on the
@@ -34,7 +34,7 @@
 
 Package: mono-jit
 Provides: cli-virtual-machine
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Depends: ${shlibs:Depends}, ${misc:Depends}, mono-common (= ${Source-Version})
 Description: fast CLI JIT/AOT compiler for Mono
  Mono is a platform for running and developing applications based on the
@@ -49,7 +49,7 @@
  powerpc, amd64 and ia64 architectures.
 
 Package: mono
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Depends: mono-common (= ${Source-Version}), mono-jit (= ${Source-Version})
 Recommends: libgdiplus, libmono-corlib1.0-cil
 Description: Mono CLI (.NET) runtime
@@ -66,7 +66,7 @@
 
 Package: mono-devel
 Section: devel
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Depends: mono (= ${Source-Version}), mono-mcs, mono-gac, mono-utils, mono-jay
 Suggests: mono-gmcs
 Description: Mono CLI runtime with development tools
@@ -82,7 +82,7 @@
 Package: mono-utils
 Provides: cil-disassembler
 Section: devel
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Replaces: mono-mcs (<= 1.1.6-4)
 Depends: ${shlibs:Depends}, ${misc:Depends}, libmono-corlib1.0-cil
 Suggests: libmono-corlib2.0-cil
@@ -98,7 +98,7 @@
 
 Package: libmono0
 Section: libs
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Replaces: libmono-dev (<= 1.1.6-4)
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: libraries for the Mono JIT
@@ -113,7 +113,7 @@
 
 Package: libmono-dev
 Section: devel
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Depends: libmono0 (= ${Source-Version}), libglib2.0-dev
 Description: libraries for the Mono JIT - Development files
  Header files and static libraries for libmono and libmono-profiler-conv.
@@ -917,7 +917,7 @@
 
 Package: mono-jay
 Section: devel
-Architecture: i386 powerpc amd64 ia64 arm armeb
+Architecture: i386 kfreebsd-i386 powerpc amd64 kfreebsd-amd64 ia64 arm armeb
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: LALR(1) parser generator oriented to Java/CLI
  Mono is a platform for running and developing applications based on the
diff -u mono-1.1.18/debian/rules mono-1.1.18/debian/rules
--- mono-1.1.18/debian/rules
+++ mono-1.1.18/debian/rules
@@ -21,14 +21,14 @@
        confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
 endif
 
+ifeq ($(DEB_BUILD_ARCH_OS), kfreebsd)
+       confflags += --with-tls=__thread
+else
 ifeq ($(DEB_BUILD_ARCH), amd64)
        confflags += --with-tls=__thread
 else
        confflags += --with-tls=pthread
 endif
-
-ifeq ($(DEB_BUILD_ARCH_OS), kfreebsd)
-       confflags += --enable-minimal=aot
 endif
 
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
@@ -47,7 +47,7 @@
        CFLAGS=$(CFLAGS) ./configure $(confflags) --prefix=/usr \
          --mandir=\$${prefix}/share/man \
          --infodir=\$${prefix}/share/info --sysconfdir=/etc \
-         --with-sigaltstack=no $(GC) \
+         --with-sigaltstack=no \
          --with-jit=yes --with-ikvm-native=no --with-preview=yes \
          --with-libgdiplus=installed --with-x=yes
        LC_ALL=C $(MAKE) EXTERNAL_MCS=false EXTERNAL_MONO=false
diff -u mono-1.1.18/debian/dh_clideps mono-1.1.18/debian/dh_clideps
--- mono-1.1.18/debian/dh_clideps
+++ mono-1.1.18/debian/dh_clideps
@@ -490,9 +490,10 @@
      $pkgref =~ m/(\S+)(?:\s+(\(\S+\s+\S+\)))?/;
      my $pkgname = $1;
      my $ver = $2;
-     # hack for libc6, for ia64 and alpha the package name is libc6.1
+     # hack for libc6, for ia64 and alpha the package name is libc6.1, for 
kfreebsd-i386 
+     # and kfreebsd-amd64 it is libc0.1
      if ($pkgname =~ m/^libc6/) {
-       $pkg = "libc6 $ver | libc6.1 $ver";
+       $pkg = "libc6 $ver | libc6.1 $ver | libc0.1 $ver";
      }
      
      if (defined($clideps_override{$pkgname})) {
diff -u mono-1.1.18/debian/patches/00list mono-1.1.18/debian/patches/00list
--- mono-1.1.18/debian/patches/00list
+++ mono-1.1.18/debian/patches/00list
@@ -3,0 +4 @@
+kfreebsd_support.dpatch
only in patch2:
unchanged:
--- mono-1.1.18.orig/debian/patches/kfreebsd_support.dpatch
+++ mono-1.1.18/debian/patches/kfreebsd_support.dpatch
@@ -0,0 +1,257 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: kfreebsd support - mainly backport of gc 6.8
+
[EMAIL PROTECTED]@
+
+only in patch2:
+unchanged:
+--- mono-1.1.18.orig/configure.in
++++ mono-1.1.18/configure.in
+@@ -88,6 +88,16 @@
+               libdl=
+               libgc_threads=no
+               ;;
++      *-*-kfreebsd*-gnu)
++              platform_win32=no
++              CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS -D_GNU_SOURCE 
-D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -DTHREAD_LOCAL_ALLOC -pthread"
++              libmono_cflags="-D_REENTRANT -DTHREAD_LOCAL_ALLOC -pthread"
++              libmono_ldflags="-lpthread -pthread"
++              libdl="-ldl"
++              libgc_threads=pthreads
++              need_link_unlink=yes
++              with_sigaltstack=no
++              ;;
+ # these flags will work for all versions of -STABLE
+ #
+       *-*-*freebsd4*)
+@@ -1663,6 +1673,11 @@
+       LIBC="libc.so.12"
+       INTL="libintl.so.0"
+       ;;
++     *-*-kfreebsd*-gnu)
++      LIBC="libc.so.0.1"
++      INTL="libc.so.0.1"
++      X11="libX11.so.6"
++      ;;
+     *-*-*freebsd*)
+       LIBC="libc.so"
+       INTL="libintl.so"
+only in patch2:
+unchanged:
+--- mono-1.1.18.orig/libgc/configure.in
++++ mono-1.1.18/libgc/configure.in
+@@ -103,6 +103,17 @@
+       AC_DEFINE(THREAD_LOCAL_ALLOC)
+       THREADDLLIBS="-lpthread -lrt"
+       ;;
++      *-*-kfreebsd*-gnu)
++        AC_DEFINE(GC_FREEBSD_THREADS)
++        INCLUDES="$INCLUDES -pthread"
++        THREADDLLIBS=-pthread
++        AC_DEFINE(_REENTRANT)
++        if test "${enable_parallel_mark}" = yes; then
++          AC_DEFINE(PARALLEL_MARK)
++        fi
++        AC_DEFINE(THREAD_LOCAL_ALLOC)
++        AC_DEFINE(USE_COMPILER_TLS)
++        ;;
+      *-*-freebsd4*)
+       AC_MSG_WARN("FreeBSD does not yet fully support threads with Boehm GC.")
+       AC_DEFINE(GC_FREEBSD_THREADS)
+only in patch2:
+unchanged:
+--- mono-1.1.18.orig/libgc/dyn_load.c
++++ mono-1.1.18/libgc/dyn_load.c
+@@ -26,7 +26,7 @@
+  * None of this is safe with dlclose and incremental collection.
+  * But then not much of anything is safe in the presence of dlclose.
+  */
+-#if defined(__linux__) && !defined(_GNU_SOURCE)
++#if (defined(__linux__) || defined(__GLIBC__)) && !defined(_GNU_SOURCE)
+     /* Can't test LINUX, since this must be define before other includes */
+ #   define _GNU_SOURCE
+ #endif
+@@ -386,7 +386,7 @@
+ /* For glibc 2.2.4+.  Unfortunately, it doesn't work for older        */
+ /* versions.  Thanks to Jakub Jelinek for most of the code.   */
+ 
+-# if defined(LINUX) /* Are others OK here, too? */ \
++# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \
+      && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
+          || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) 
+ 
+only in patch2:
+unchanged:
+--- mono-1.1.18.orig/libgc/include/gc.h
++++ mono-1.1.18/libgc/include/gc.h
+@@ -484,7 +484,7 @@
+ #   define GC_RETURN_ADDR (GC_word)__return_address
+ #endif
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ # include <features.h>
+ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+      && !defined(__ia64__)
+only in patch2:
+unchanged:
+--- mono-1.1.18.orig/libgc/include/private/gcconfig.h
++++ mono-1.1.18/libgc/include/private/gcconfig.h
+@@ -55,7 +55,7 @@
+ # endif
+ 
+ /* And one for FreeBSD: */
+-# if defined(__FreeBSD__) && !defined(FREEBSD)
++# if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && 
!defined(FREEBSD)
+ #    define FREEBSD
+ # endif
+ 
+@@ -1275,8 +1275,15 @@
+ #     ifndef GC_FREEBSD_THREADS
+ #         define MPROTECT_VDB
+ #     endif
+-#      define SIG_SUSPEND SIGTSTP
+-#      define SIG_THR_RESTART SIGCONT
++#       ifdef __GLIBC__
++#           define SIG_SUSPEND          (32+6)
++#           define SIG_THR_RESTART      (32+5)
++            extern int _end[];
++#           define DATAEND (_end)
++#       else
++#           define SIG_SUSPEND SIGTSTP
++#           define SIG_THR_RESTART SIGCONT
++#       endif
+ #     define FREEBSD_STACKBOTTOM
+ #     ifdef __ELF__
+ #         define DYNAMIC_LOADING
+@@ -1989,6 +1996,28 @@
+ #         define PREFETCH_FOR_WRITE(x) __builtin_prefetch((x), 1)
+ #     endif
+ #   endif
++#   ifdef FREEBSD
++#     define OS_TYPE "FREEBSD"
++#     ifndef GC_FREEBSD_THREADS
++#         define MPROTECT_VDB
++#     endif
++#     ifdef __GLIBC__
++#         define SIG_SUSPEND          (32+6)
++#         define SIG_THR_RESTART      (32+5)
++          extern int _end[];
++#         define DATAEND (_end)
++#     else
++#         define SIG_SUSPEND SIGUSR1
++#         define SIG_THR_RESTART SIGUSR2
++#     endif
++#     define FREEBSD_STACKBOTTOM
++#     ifdef __ELF__
++#         define DYNAMIC_LOADING
++#     endif
++      extern char etext[];
++      extern char * GC_FreeBSDGetDataStart();
++#     define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
++#   endif
+ #   ifdef NETBSD
+ #     define OS_TYPE "NETBSD"
+ #     ifdef __ELF__
+@@ -2060,7 +2089,7 @@
+ #   define SUNOS5SIGS
+ # endif
+ 
+-# if defined(FREEBSD) && (__FreeBSD__ >= 4)
++# if defined(FREEBSD) && ((__FreeBSD__ >= 4) || (__FreeBSD_kernel__ >= 4))
+ #   define SUNOS5SIGS
+ # endif
+ 
+@@ -2123,7 +2152,7 @@
+ #   define CACHE_LINE_SIZE 32 /* Wild guess   */
+ # endif
+ 
+-# ifdef LINUX
++# if defined(LINUX) || defined(__GLIBC__)
+ #   define REGISTER_LIBRARIES_EARLY
+     /* We sometimes use dl_iterate_phdr, which may acquire an internal        
*/
+     /* lock.  This isn't safe after the world has stopped.  So we must        
*/
+@@ -2204,7 +2233,7 @@
+ #if defined(SPARC)
+ # define CAN_SAVE_CALL_ARGS
+ #endif
+-#if (defined(I386) || defined(X86_64)) && defined(LINUX)
++#if (defined(I386) || defined(X86_64)) && (defined(LINUX) || 
defined(__GLIBC__))
+           /* SAVE_CALL_CHAIN is supported if the code is compiled to save     
*/
+           /* frame pointers by default, i.e. no -fomit-frame-pointer flag.    
*/
+ # define CAN_SAVE_CALL_ARGS
+
+only in patch2:
+unchanged:
+--- mono-1.1.18.orig/libgc/configure
++++ mono-1.1.18/libgc/configure
+@@ -3974,6 +4636,32 @@
+ 
+       THREADDLLIBS="-lpthread -lrt"
+       ;;
++      *-*-kfreebsd*-gnu)
++        cat >>confdefs.h <<\_ACEOF
++#define GC_FREEBSD_THREADS 1
++_ACEOF
++
++        INCLUDES="$INCLUDES -pthread"
++        THREADDLLIBS=-pthread
++        cat >>confdefs.h <<\_ACEOF
++#define _REENTRANT 1
++_ACEOF
++
++        if test "${enable_parallel_mark}" = yes; then
++          cat >>confdefs.h <<\_ACEOF
++#define PARALLEL_MARK 1
++_ACEOF
++
++        fi
++        cat >>confdefs.h <<\_ACEOF
++#define THREAD_LOCAL_ALLOC 1
++_ACEOF
++
++        cat >>confdefs.h <<\_ACEOF
++#define USE_COMPILER_TLS 1
++_ACEOF
++
++        ;;
+      *-*-freebsd4*)
+       { echo "$as_me:$LINENO: WARNING: \"FreeBSD does not yet fully support 
threads with Boehm GC.\"" >&5
+ echo "$as_me: WARNING: \"FreeBSD does not yet fully support threads with 
Boehm GC.\"" >&2;}
+
+only in patch2:
+unchanged:
+--- mono-1.1.18.orig/configure
++++ mono-1.1.18/configure
+@@ -2245,6 +2828,16 @@
+               libdl=
+               libgc_threads=no
+               ;;
++      *-*-kfreebsd*-gnu)
++              platform_win32=no
++              CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS -D_GNU_SOURCE 
-D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -DTHREAD_LOCAL_ALLOC -pthread"
++              libmono_cflags="-D_REENTRANT -DTHREAD_LOCAL_ALLOC -pthread"
++              libmono_ldflags="-lpthread -pthread"
++              libdl="-ldl"
++              libgc_threads=pthreads
++              need_link_unlink=yes
++              with_sigaltstack=no
++              ;;
+ # these flags will work for all versions of -STABLE
+ #
+       *-*-*freebsd4*)
+@@ -35603,6 +38772,11 @@
+       LIBC="libc.so.12"
+       INTL="libintl.so.0"
+       ;;
++     *-*-kfreebsd*-gnu)
++      LIBC="libc.so.0.1"
++      INTL="libc.so.0.1"
++      X11="libX11.so.6"
++      ;;
+     *-*-*freebsd*)
+       LIBC="libc.so"
+       INTL="libintl.so"

Reply via email to