[DragonFlyBSD - Bug #1525] boehm-gc problems
Chris Turner via Redmine
bugtracker-admin at leaf.dragonflybsd.org
Thu Oct 11 10:58:54 PDT 2012
Issue #1525 has been updated by Chris Turner.
This hacky patch fixes the non-threaded test on i386 running recent current (still gcc44)
- basically, it looks like the #ifdef's haven't kept up with the dynamic linker / elf toolkit,
so alot of the byte / symbol mangling isn't needed and GC can use fancier builtin API's to
programatically access the stuff.
I'll clean this up later and take a crack at the threaded version.
Cheers,
- Chris
# diff -urw dyn_load.c.orig dyn_load.c
--- dyn_load.c.orig 2012-08-09 20:25:13.000000000 +0000
+++ dyn_load.c 2012-10-11 17:53:50.000000000 +0000
@@ -83,6 +83,12 @@
# define ELFSIZE ARCH_ELFSIZE
#endif
+#if defined(__DragonFly__)
+# include <elf.h>
+# include <dlfcn.h>
+# include <link.h>
+#endif
+
#if defined(SCO_ELF) || defined(DGUX) || defined(HURD) \
|| (defined(__ELF__) && (defined(LINUX) || defined(FREEBSD) \
|| defined(NETBSD) || defined(OPENBSD)))
@@ -398,7 +404,7 @@
# pragma weak dl_iterate_phdr
#endif
-#if (defined(FREEBSD) && __FreeBSD__ >= 7)
+#if (defined(FREEBSD) && __FreeBSD__ >= 7) && defined(__DragonFly__)
/* On the FreeBSD system, any target system at major version 7 shall */
/* have dl_iterate_phdr; therefore, we need not make it weak as above. */
# define HAVE_DL_ITERATE_PHDR
@@ -646,7 +652,8 @@
return(0);
}
if( cachedResult == 0 ) {
-# if defined(NETBSD) && defined(RTLD_DI_LINKMAP)
+/* HACK */
+# if defined(__DragonFly__) && 1
struct link_map *lm = NULL;
if (!dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lm))
cachedResult = lm;
----------------------------------------
Bug #1525: boehm-gc problems
http://bugs.dragonflybsd.org/issues/1525
Author: Hasso Tepper
Status: New
Priority: Normal
Assignee:
Category:
Target version:
Although devel/boehm-gc builds on DragonFly, there are problems - its own
testuite doesn't run. The test for garbage collecting functionality either
segfaults or hangs and if boehm-gc is built with threading support (making it
treat DragonFly as FreeBSD), threading test does the same.
Note, that boehm-gc is used by in many software pieces (mainly various
programming languages) and is probably onw of reasons why so many languages
actually fail to run on DragonFly.
How to test:
fetch http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.1.tar.gz
tar zxf gc-7.1.tar.gz
cd gc-7.1
./configure --disable-threads
gmake
gmake check
--
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account
More information about the Bugs
mailing list