ddbb25bb86
Changes are: + Bug fixes: o If DESTDIR was set and the platform didn't have previous Gauche installed, make install failed saying something like "libgauche-0.9.so.0.3: cannot open shared object file: No such file or directory". The order of installation was adjusted to avoid it. o On FreeBSD, a bug in signal setup routine caused memory corruption. o every with more than one argument list didn't return the last return value of the predicate when all the arguments satisfied it, as specified in srfi-1 (it returned #t instead). It was also the case in stream-every. Both are fixed. o On MinGW, info command didn't work. o On MinGW, when you used non-console version gosh-noconsole.exe and tried to spawn a child process to communicate via pipes, gosh-noconsole.exe just died. + Improvements: o New procedure: string-scan-right o GC is now 7.2b
43 lines
1.3 KiB
C
43 lines
1.3 KiB
C
$NetBSD: patch-gc_dyn__load.c,v 1.1 2012/05/30 02:50:11 enami Exp $
|
|
|
|
commit a378494312ac9aedcb08fa7a9593506ce5620878
|
|
Author: Shiro Kawai <shiro@acm.org>
|
|
Date: Mon May 28 17:22:14 2012 -1000
|
|
|
|
Backport a gc patch for NetBSD 6
|
|
|
|
--- gc/dyn_load.c.orig 2012-05-26 10:42:03.000000000 +0000
|
|
+++ gc/dyn_load.c
|
|
@@ -77,6 +77,8 @@ STATIC GC_has_static_roots_func GC_has_s
|
|
#endif
|
|
|
|
#if defined(NETBSD)
|
|
+# include <sys/param.h>
|
|
+# include <dlfcn.h>
|
|
# include <machine/elf_machdep.h>
|
|
# define ELFSIZE ARCH_ELFSIZE
|
|
#endif
|
|
@@ -644,6 +646,15 @@ GC_FirstDLOpenedLinkMap(void)
|
|
return(0);
|
|
}
|
|
if( cachedResult == 0 ) {
|
|
+#if defined(NETBSD) && defined(RTLD_DI_LINKMAP)
|
|
+ struct link_map *lm = NULL;
|
|
+ int rv = dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lm);
|
|
+ if (rv != 0)
|
|
+ return (0);
|
|
+ if (lm == NULL)
|
|
+ return (0);
|
|
+ cachedResult = lm;
|
|
+#else /* !(defined(NETBSD) && defined(RTLD_DI_LINKMAP)) */
|
|
int tag;
|
|
for( dp = _DYNAMIC; (tag = dp->d_tag) != 0; dp++ ) {
|
|
if( tag == DT_DEBUG ) {
|
|
@@ -653,6 +664,7 @@ GC_FirstDLOpenedLinkMap(void)
|
|
break;
|
|
}
|
|
}
|
|
+#endif /* !(defined(NETBSD) && defined(RTLD_DI_LINKMAP)) */
|
|
}
|
|
return cachedResult;
|
|
}
|