aboutsummaryrefslogtreecommitdiff
path: root/devel/valgrind/files
diff options
context:
space:
mode:
authorSimon Barner <barner@FreeBSD.org>2005-09-20 00:40:08 +0000
committerSimon Barner <barner@FreeBSD.org>2005-09-20 00:40:08 +0000
commitd711a485a0330a373306e3f3880b50f8120b9df5 (patch)
treea0e0956abe0065badcea70ea0da695f0952aab7f /devel/valgrind/files
parentd58ede3d2faa8b00a856b4564e1ed0b3a16b9eed (diff)
downloadports-d711a485a0330a373306e3f3880b50f8120b9df5.tar.gz
ports-d711a485a0330a373306e3f3880b50f8120b9df5.zip
- Fix on FreeBSD 6 and above: [1] [2]
Valgrind did not handle the following sysarch calls, and thus crashed immediately o get_fsbase o set_fsbase o get_gsbase o set_fsbase - Valgrind no longer dumps core when its client application does. [2] Valgrind-snapshot does contain for safing the client's core dump, but it does not work (it resulted in a crash) and has therefore been disabled. - Fix crash with valgrind-snapshot when the application to debug does not exists or cannot be accessed. - Fix symlink farms for threading libraries. FreeBSD 4-7 are handled. [2] - Bump PORTREVISION Reported by: Ulrich Spoerlein <q@galgenberg.net> [1], Chris Gilbert <Chris@lainos.org> [2] PR: ports/86007 [1]
Notes
Notes: svn path=/head/; revision=143183
Diffstat (limited to 'devel/valgrind/files')
-rw-r--r--devel/valgrind/files/patch-Makefile.am54
-rw-r--r--devel/valgrind/files/patch-configure11
-rw-r--r--devel/valgrind/files/patch-configure.in49
-rw-r--r--devel/valgrind/files/patch-coregrind_Makefile.am51
-rw-r--r--devel/valgrind/files/patch-coregrind_vg_signals.c18
-rw-r--r--devel/valgrind/files/patch-coregrind_vg_syscalls.c56
-rw-r--r--devel/valgrind/files/patch-include_vg_kerneliface.h11
7 files changed, 239 insertions, 11 deletions
diff --git a/devel/valgrind/files/patch-Makefile.am b/devel/valgrind/files/patch-Makefile.am
new file mode 100644
index 000000000000..1d52c6bf7e90
--- /dev/null
+++ b/devel/valgrind/files/patch-Makefile.am
@@ -0,0 +1,54 @@
+--- Makefile.am.orig Thu Apr 8 21:05:08 2004
++++ Makefile.am Tue Sep 20 00:01:29 2005
+@@ -50,26 +50,46 @@
+
+ install-exec-hook:
+ $(mkinstalldirs) $(DESTDIR)$(valdir)
+- rm -f $(DESTDIR)$(valdir)/libpthread.so.0
++
+ if !IS_LINUX
+ if IS_FREEBSD4
+ rm -f $(DESTDIR)$(valdir)/libc_r.so.4
+-else
++endif
++if IS_FREEBSD5
+ rm -f $(DESTDIR)$(valdir)/libc_r.so.5
+ rm -f $(DESTDIR)$(valdir)/libkse.so.1
+ rm -f $(DESTDIR)$(valdir)/libthr.so.1
+- rm -f $(DESTDIR)$(valdir)/libpthread.so.1
++endif
++if IS_FREEBSD6
++ rm -f $(DESTDIR)$(valdir)/libc_r.so.6
++ rm -f $(DESTDIR)$(valdir)/libthr.so.2
++ rm -f $(DESTDIR)$(valdir)/libpthread.so.2
++endif
++if IS_FREEBSD7
++ rm -f $(DESTDIR)$(valdir)/libc_r.so.6
++ rm -f $(DESTDIR)$(valdir)/libthr.so.2
++ rm -f $(DESTDIR)$(valdir)/libpthread.so.2
+ endif
+ endif
+- $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libpthread.so.0
+ if !IS_LINUX
+ if IS_FREEBSD4
+ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libc_r.so.4
+-else
++endif
++if IS_FREEBSD5
+ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libc_r.so.5
+ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libkse.so.1
+ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libthr.so.1
+ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libpthread.so.1
++endif
++if IS_FREEBSD6
++ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libc_r.so.6
++ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libthr.so.2
++ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libpthread.so.2
++endif
++if IS_FREEBSD7
++ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libc_r.so.6
++ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libthr.so.2
++ $(LN_S) libpthread.so $(DESTDIR)$(valdir)/libpthread.so.2
+ endif
+ endif
+
diff --git a/devel/valgrind/files/patch-configure b/devel/valgrind/files/patch-configure
deleted file mode 100644
index 86bf6240d9a4..000000000000
--- a/devel/valgrind/files/patch-configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.orig Sat Aug 21 00:06:00 2004
-+++ configure Sat Aug 21 00:06:24 2004
-@@ -4010,7 +4010,7 @@
-
- ;;
-
-- *freebsd5*)
-+ *freebsd[567]*)
- echo "$as_me:$LINENO: result: ok (${host_os})" >&5
- echo "${ECHO_T}ok (${host_os})" >&6
- VG_PLATFORM="x86-freebsd"
diff --git a/devel/valgrind/files/patch-configure.in b/devel/valgrind/files/patch-configure.in
new file mode 100644
index 000000000000..54349f9ffe06
--- /dev/null
+++ b/devel/valgrind/files/patch-configure.in
@@ -0,0 +1,49 @@
+--- configure.in.orig Sun Mar 14 13:52:47 2004
++++ configure.in Mon Sep 19 23:58:01 2005
+@@ -135,11 +135,35 @@
+
+ ;;
+
++ *freebsd7*)
++ AC_MSG_RESULT([ok (${host_os})])
++ VG_PLATFORM="x86-freebsd"
++ AM_CONDITIONAL(IS_LINUX, false)
++ AM_CONDITIONAL(IS_FREEBSD4, false)
++ AM_CONDITIONAL(IS_FREEBSD5, false)
++ AM_CONDITIONAL(IS_FREEBSD6, false)
++ AM_CONDITIONAL(IS_FREEBSD7, true)
++
++ ;;
++ *freebsd6*)
++ AC_MSG_RESULT([ok (${host_os})])
++ VG_PLATFORM="x86-freebsd"
++ AM_CONDITIONAL(IS_LINUX, false)
++ AM_CONDITIONAL(IS_FREEBSD4, false)
++ AM_CONDITIONAL(IS_FREEBSD5, false)
++ AM_CONDITIONAL(IS_FREEBSD6, true)
++ AM_CONDITIONAL(IS_FREEBSD7, false)
++
++ ;;
++
+ *freebsd5*)
+ AC_MSG_RESULT([ok (${host_os})])
+ VG_PLATFORM="x86-freebsd"
+ AM_CONDITIONAL(IS_LINUX, false)
+ AM_CONDITIONAL(IS_FREEBSD4, false)
++ AM_CONDITIONAL(IS_FREEBSD5, true)
++ AM_CONDITIONAL(IS_FREEBSD6, false)
++ AM_CONDITIONAL(IS_FREEBSD7, false)
+
+ ;;
+
+@@ -148,7 +172,9 @@
+ VG_PLATFORM="x86-freebsd"
+ AM_CONDITIONAL(IS_LINUX, false)
+ AM_CONDITIONAL(IS_FREEBSD4, true)
+-
++ AM_CONDITIONAL(IS_FREEBSD5, false)
++ AM_CONDITIONAL(IS_FREEBSD6, false)
++ AM_CONDITIONAL(IS_FREEBSD7, false)
+ ;;
+
+ *)
diff --git a/devel/valgrind/files/patch-coregrind_Makefile.am b/devel/valgrind/files/patch-coregrind_Makefile.am
new file mode 100644
index 000000000000..c3eff9742481
--- /dev/null
+++ b/devel/valgrind/files/patch-coregrind_Makefile.am
@@ -0,0 +1,51 @@
+--- coregrind/Makefile.am.orig Sun Mar 14 13:52:47 2004
++++ coregrind/Makefile.am Tue Sep 20 00:01:58 2005
+@@ -162,11 +162,23 @@
+ vg_unsafe.h
+
+ if !IS_LINUX
++if IS_FREEBSD5
+ MANUAL_DEPS_EXTRA = $(inplacedir)/libc_r.so.5 \
+ $(inplacedir)/libkse.so.1 \
+ $(inplacedir)/libthr.so.1 \
+ $(inplacedir)/libpthread.so.1
+ endif
++if IS_FREEBSD6
++MANUAL_DEPS_EXTRA = $(inplacedir)/libc_r.so.6 \
++ $(inplacedir)/libthr.so.2 \
++ $(inplacedir)/libpthread.so.2
++endif
++if IS_FREEBSD7
++MANUAL_DEPS_EXTRA = $(inplacedir)/libc_r.so.6 \
++ $(inplacedir)/libthr.so.2 \
++ $(inplacedir)/libpthread.so.2
++endif
++endif
+
+ MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS) $(inplacedir)/libpthread.so.0 ${MANUAL_DEPS_EXTRA}
+
+@@ -180,9 +192,23 @@
+ ln -sf $(top_srcdir)/$(subdir)/$$i $$to; \
+ done
+ if !IS_LINUX
+- ln -sf libpthread.so.0 $(inplacedir)/libc_r.so.5
++if IS_FREEBSD4
+ ln -sf libpthread.so.0 $(inplacedir)/libc_r.so.4
++endif
++if IS_FREEBSD5
++ ln -sf libpthread.so.0 $(inplacedir)/libc_r.so.5
+ ln -sf libpthread.so.0 $(inplacedir)/libkse.so.1
+ ln -sf libpthread.so.0 $(inplacedir)/libthr.so.1
+ ln -sf libpthread.so.0 $(inplacedir)/libpthread.so.1
++endif
++if IS_FREEBSD6
++ ln -sf libpthread.so.0 $(inplacedir)/libc_r.so.6
++ ln -sf libpthread.so.0 $(inplacedir)/libthr.so.2
++ ln -sf libpthread.so.0 $(inplacedir)/libpthread.so.2
++endif
++if IS_FREEBSD7
++ ln -sf libpthread.so.0 $(inplacedir)/libc_r.so.6
++ ln -sf libpthread.so.0 $(inplacedir)/libthr.so.2
++ ln -sf libpthread.so.0 $(inplacedir)/libpthread.so.2
++endif
+ endif
diff --git a/devel/valgrind/files/patch-coregrind_vg_signals.c b/devel/valgrind/files/patch-coregrind_vg_signals.c
new file mode 100644
index 000000000000..be277882e91a
--- /dev/null
+++ b/devel/valgrind/files/patch-coregrind_vg_signals.c
@@ -0,0 +1,18 @@
+--- coregrind/vg_signals.c.orig Mon Sep 19 21:16:07 2005
++++ coregrind/vg_signals.c Mon Sep 19 21:28:05 2005
+@@ -1488,6 +1488,15 @@
+ VG_(start_GDB)( tid );
+ }
+
++ if (core) {
++ static struct vki_rlimit zero = { 0, 0 };
++
++ VG_(message) (Vg_UserMsg, "Core dumping not implemented. Please re-run valgrind after fixing the crash.");
++
++ /* make sure we don't get a confusing kernel-generated coredump */
++ VG_(setrlimit)(VKI_RLIMIT_CORE, &zero);
++ }
++
+ if (VG_(fatal_signal_set)) {
+ VG_(fatal_sigNo) = sigNo;
+ __builtin_longjmp(VG_(fatal_signal_jmpbuf), 1);
diff --git a/devel/valgrind/files/patch-coregrind_vg_syscalls.c b/devel/valgrind/files/patch-coregrind_vg_syscalls.c
new file mode 100644
index 000000000000..f18c56469461
--- /dev/null
+++ b/devel/valgrind/files/patch-coregrind_vg_syscalls.c
@@ -0,0 +1,56 @@
+--- coregrind/vg_syscalls.c.orig Fri Jul 16 19:21:08 2004
++++ coregrind/vg_syscalls.c Wed Sep 14 22:13:44 2005
+@@ -1369,6 +1369,38 @@
+ &tst->m_eflags,
+ arg1, arg2);
+ break;
++ case 7:
++ SYSCALL_TRACK( pre_mem_write, tid,
++ "sysarch.get_fsbase(args)", arg2, sizeof(UInt));
++ tst->m_eax = VG_(do_syscall_err)(__NR_sysarch,
++ tst->m_edx,
++ &tst->m_eflags,
++ arg1, arg2);
++ break;
++ case 8:
++ SYSCALL_TRACK( pre_mem_read, tid,
++ "sysarch.set_fsbase(args)", arg2, sizeof(UInt));
++ tst->m_eax = VG_(do_syscall_err)(__NR_sysarch,
++ tst->m_edx,
++ &tst->m_eflags,
++ arg1, arg2);
++ break;
++ case 9:
++ SYSCALL_TRACK( pre_mem_read, tid,
++ "sysarch.get_gsbase(args)", arg2, sizeof(UInt));
++ tst->m_eax = VG_(do_syscall_err)(__NR_sysarch,
++ tst->m_edx,
++ &tst->m_eflags,
++ arg1, arg2);
++ break;
++ case 10:
++ SYSCALL_TRACK( pre_mem_read, tid,
++ "sysarch.set_gsbase(args)", arg2, sizeof(UInt));
++ tst->m_eax = VG_(do_syscall_err)(__NR_sysarch,
++ tst->m_edx,
++ &tst->m_eflags,
++ arg1, arg2);
++ break;
+ default:
+ VG_(core_panic)("Unhandled sysarch call");
+ }
+@@ -1392,6 +1424,14 @@
+ break;
+ case 6: /* vm86 */
+ break;
++ case 7: /* get_fsbase */
++ break;
++ case 8: /* set_fsbase */
++ break;
++ case 9: /* get_gsbase */
++ break;
++ case 10: /* set_gsbase */
++ break;
+ default:
+ VG_(core_panic)("Unhandled sysarch call");
+ }
diff --git a/devel/valgrind/files/patch-include_vg_kerneliface.h b/devel/valgrind/files/patch-include_vg_kerneliface.h
new file mode 100644
index 000000000000..e9b9973ec183
--- /dev/null
+++ b/devel/valgrind/files/patch-include_vg_kerneliface.h
@@ -0,0 +1,11 @@
+--- include/vg_kerneliface.h.orig Mon Sep 19 21:20:22 2005
++++ include/vg_kerneliface.h Mon Sep 19 21:22:41 2005
+@@ -975,6 +975,8 @@
+ unsigned long long rlim_max;
+ } vki_rlimit;
+
++#define VKI_RLIMIT_DATA 2
++#define VKI_RLIMIT_CORE 4
+ #define VKI_RLIMIT_NOFILE 8
+ #endif
+