found 396699 0.98-1
reopen 396699
thanks
Hi,
the current version still fails to build on GNU/kFreeBSD.
Please find attached patch to fix that, it contains
- reorder "*freebsd*" and "*kfreebsd*-gnu" entries in configure.ac/configure
needed for both kfreebsd-i386 and kfreebsd-amd64
- adding three chunks for src/mm/boehm-gc/
needed only for kfreebsd-amd64, as boehm-gc used in cacao 0.98
does support kfreebsd-i386 but does not support kfreebsd-amd64 yet.
It would also be nice if you can ask cacao upstream
to include this changes.
Thanks in advance
Petr
only in patch2:
unchanged:
--- cacao-0.98.orig/src/mm/boehm-gc/os_dep.c
+++ cacao-0.98/src/mm/boehm-gc/os_dep.c
@@ -86,7 +86,7 @@
# define NEED_FIND_LIMIT
# endif
-#if defined(FREEBSD) && (defined(I386) || defined(powerpc) ||
defined(__powerpc__))
+#if defined(FREEBSD) && (defined(I386) || defined(X86_64) || defined(powerpc)
|| defined(__powerpc__))
# include <machine/trap.h>
# if !defined(PCR)
# define NEED_FIND_LIMIT
@@ -1394,7 +1394,7 @@
}
# endif
-# if defined(FREEBSD) && (defined(I386) || defined(powerpc) ||
defined(__powerpc__)) && !defined(PCR)
+# if defined(FREEBSD) && (defined(I386) || defined(X86_64) || defined(powerpc)
|| defined(__powerpc__)) && !defined(PCR)
/* Its unclear whether this should be identical to the above, or */
/* whether it should apply to non-X86 architectures. */
/* For now we don't assume that there is always an empty page after */
only in patch2:
unchanged:
--- cacao-0.98.orig/src/mm/boehm-gc/include/private/gcconfig.h
+++ cacao-0.98/src/mm/boehm-gc/include/private/gcconfig.h
@@ -334,6 +334,10 @@
# define I386
# define mach_type_known
# endif
+# if defined(FREEBSD) && defined(__x86_64__)
+# define X86_64
+# define mach_type_known
+# endif
# if defined(__NetBSD__) && (defined(i386) || defined(__i386__))
# define I386
# define mach_type_known
only in patch2:
unchanged:
--- cacao-0.98.orig/configure.ac
+++ cacao-0.98/configure.ac
@@ -129,6 +129,13 @@
ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -ansi -pedantic -Wall
-Wno-long-long"
;;
+dnl must be before *freebsd*
+*kfreebsd*-gnu)
+ OS_DIR="freebsd"
+ INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long
-D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED
-D_BSD_SOURCE"
+ ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall
-Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
-D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
+ ;;
+
*freebsd* )
OS_DIR="freebsd"
INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long
-D_XOPEN_SOURCE_EXTENDED"
@@ -141,12 +148,6 @@
ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
;;
-*kfreebsd*-gnu)
- OS_DIR="freebsd"
- INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long
-D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED
-D_BSD_SOURCE"
- ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall
-Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
-D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
- ;;
-
dnl must be before *linux*
*uclinux | *elf )
OS_DIR="uclinux"
only in patch2:
unchanged:
--- cacao-0.98.orig/configure
+++ cacao-0.98/configure
@@ -2768,6 +2768,12 @@
ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -ansi -pedantic -Wall
-Wno-long-long"
;;
+*kfreebsd*-gnu)
+ OS_DIR="freebsd"
+ INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long
-D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED
-D_BSD_SOURCE"
+ ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall
-Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
-D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
+ ;;
+
*freebsd* )
OS_DIR="freebsd"
INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long
-D_XOPEN_SOURCE_EXTENDED"
@@ -2780,12 +2786,6 @@
ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
;;
-*kfreebsd*-gnu)
- OS_DIR="freebsd"
- INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long
-D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED
-D_BSD_SOURCE"
- ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall
-Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
-D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
- ;;
-
*uclinux | *elf )
OS_DIR="uclinux"
INTRP_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -Wall -Wno-long-long
-D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED
-D_BSD_SOURCE"