components/developer/valgrind/Makefile | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/manifests/sample-manifest.p5m | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/patches/04-execve.patch | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/patches/05-dtrace-fix.patch | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/patches/06-mremap.patch | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/patches/07-dtrace-section.patch | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/patches/08-gdbserver_tests.patch | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/pkg5 | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/test/results-all.master | ●●●●● patch | view | raw | blame | history | |
components/developer/valgrind/valgrind.p5m | ●●●●● patch | view | raw | blame | history |
components/developer/valgrind/Makefile
@@ -23,20 +23,18 @@ # Copyright (c) 2015-2017 Aurelien Larcher. All rights reserved. # Copyright (c) 2019 Michal Nowak # Copyright (c) 2021 David Stes # Copyright (c) 2022 Friedrich Kink # Copyright (c) 2022,2023 Friedrich Kink # BUILD_BITS= 64 include ../../../make-rules/shared-macros.mk COMPONENT_NAME= valgrind COMPONENT_VERSION= 3.19.0 COMPONENT_VERSION= 3.22.0 COMPONENT_FMRI= developer/debug/valgrind COMPONENT_CLASSIFICATION=Development/System COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION) COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.bz2 COMPONENT_ARCHIVE_HASH= sha256:dd5e34486f1a483ff7be7300cc16b4d6b24690987877c3278d797534d6738f02 COMPONENT_ARCHIVE_HASH= sha256:c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c COMPONENT_ARCHIVE_URL= https://sourceware.org/pub/valgrind/$(COMPONENT_ARCHIVE) COMPONENT_PROJECT_URL = https://valgrind.org COMPONENT_SUMMARY= Valgrind: instrumentation framework and tools to detect memory and threading problems @@ -51,10 +49,6 @@ COMPONENT_PRE_CONFIGURE_ACTION = \ ( $(CLONEY) $(SOURCE_DIR) $(@D) ) # Force use of GCC with given arch support CC=$(CC.gcc.$(BITS)) $(CC_BITS) -std=gnu99 CXX=$(CC.g++.$(BITS)) $(CC_BITS) # Flags are inferred from CC and tests rely on sigaction CFLAGS= -D__EXTENSIONS__ CXXFLAGS= -D__EXTENSIONS__ @@ -66,6 +60,9 @@ CONFIGURE_OPTIONS += --sbindir=$(USRSBINDIR) CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS)) CONFIGURE_OPTIONS += --libexecdir=$(CONFIGURE_LIBDIR.$(BITS)) CONFIGURE_OPTIONS += --enable-inner CONFIGURE_OPTIONS += --enable-tls CONFIGURE_OPTIONS += --with-mpicc=$(USRLIBDIR)/openmpi/gcc/bin/mpicc COMPONENT_PREP_ACTION += ( cd $(@D) && ./autogen.sh ) @@ -76,8 +73,8 @@ ( cd $(@D)/docs && $(ENV) $(GMAKE) man-pages ) # # currently 3.17.0 # == 787 tests, 95 stderr failures, 18 stdout failures, 3 stderrB failures, 6 stdoutB failures, 7 post failures == # currently 3.22.0 # == 835 tests, 62 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 6 post failures == # COMPONENT_TEST_TARGETS = regtest # check just overal test results @@ -85,5 +82,8 @@ # Build dependencies # Auto-generated dependencies REQUIRED_PACKAGES += runtime/perl-534 REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG) REQUIRED_PACKAGES += SUNWcs REQUIRED_PACKAGES += developer/gcc-13 REQUIRED_PACKAGES += runtime/perl REQUIRED_PACKAGES += system/library components/developer/valgrind/manifests/sample-manifest.p5m
@@ -10,10 +10,11 @@ # # # Copyright 2022 <contributor> # Copyright 2023 <contributor> # set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) set name=pkg.human-version value=$(HUMAN_VERSION) set name=pkg.summary value="$(COMPONENT_SUMMARY)" set name=info.classification value="$(COMPONENT_CLASSIFICATION)" set name=info.upstream-url value=$(COMPONENT_PROJECT_URL) @@ -32,6 +33,7 @@ file path=usr/bin/valgrind-di-server file path=usr/bin/valgrind-listener file path=usr/bin/vgdb file path=usr/include/valgrind/cachegrind.h file path=usr/include/valgrind/callgrind.h file path=usr/include/valgrind/config.h file path=usr/include/valgrind/dhat.h @@ -301,6 +303,8 @@ file path=usr/lib/$(MACH64)/valgrind/s390x-linux64.xml file path=usr/lib/$(MACH64)/valgrind/s390x-vx-linux-valgrind.xml file path=usr/lib/$(MACH64)/valgrind/s390x-vx-linux.xml file path=usr/lib/$(MACH64)/valgrind/valgrind-monitor-def.py file path=usr/lib/$(MACH64)/valgrind/valgrind-monitor.py file path=usr/lib/$(MACH64)/valgrind/vgpreload_core-amd64-solaris.so file path=usr/lib/$(MACH64)/valgrind/vgpreload_core-x86-solaris.so file path=usr/lib/$(MACH64)/valgrind/vgpreload_dhat-amd64-solaris.so @@ -314,99 +318,99 @@ file path=usr/lib/$(MACH64)/valgrind/vgpreload_memcheck-amd64-solaris.so file path=usr/lib/$(MACH64)/valgrind/vgpreload_memcheck-x86-solaris.so link path=usr/share/doc/valgrind/html/FAQ.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/FAQ.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/FAQ.html link path=usr/share/doc/valgrind/html/QuickStart.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/QuickStart.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/QuickStart.html link path=usr/share/doc/valgrind/html/bbv-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/bbv-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/bbv-manual.html link path=usr/share/doc/valgrind/html/cg-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/cg-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/cg-manual.html link path=usr/share/doc/valgrind/html/cl-format.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/cl-format.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/cl-format.html link path=usr/share/doc/valgrind/html/cl-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/cl-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/cl-manual.html link path=usr/share/doc/valgrind/html/design-impl.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/design-impl.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/design-impl.html link path=usr/share/doc/valgrind/html/dh-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dh-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dh-manual.html link path=usr/share/doc/valgrind/html/dist.authors.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.authors.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.authors.html link path=usr/share/doc/valgrind/html/dist.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.html link path=usr/share/doc/valgrind/html/dist.news.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.news.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.news.html link path=usr/share/doc/valgrind/html/dist.news.old.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.news.old.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.news.old.html link path=usr/share/doc/valgrind/html/dist.readme-android.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-android.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-android.html link path=usr/share/doc/valgrind/html/dist.readme-android_emulator.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-android_emulator.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-android_emulator.html link path=usr/share/doc/valgrind/html/dist.readme-developers.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-developers.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-developers.html link path=usr/share/doc/valgrind/html/dist.readme-freebsd.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-freebsd.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-freebsd.html link path=usr/share/doc/valgrind/html/dist.readme-mips.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-mips.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-mips.html link path=usr/share/doc/valgrind/html/dist.readme-missing.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-missing.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-missing.html link path=usr/share/doc/valgrind/html/dist.readme-packagers.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-packagers.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-packagers.html link path=usr/share/doc/valgrind/html/dist.readme-s390.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-s390.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-s390.html link path=usr/share/doc/valgrind/html/dist.readme-solaris.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme-solaris.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme-solaris.html link path=usr/share/doc/valgrind/html/dist.readme.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/dist.readme.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/dist.readme.html link path=usr/share/doc/valgrind/html/drd-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/drd-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/drd-manual.html link path=usr/share/doc/valgrind/html/faq.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/faq.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/faq.html link path=usr/share/doc/valgrind/html/hg-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/hg-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/hg-manual.html link path=usr/share/doc/valgrind/html/images/dh-tree.png \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/images/dh-tree.png target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/images/dh-tree.png link path=usr/share/doc/valgrind/html/images/home.png \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/images/home.png target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/images/home.png link path=usr/share/doc/valgrind/html/images/kcachegrind_xtree.png \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/images/kcachegrind_xtree.png target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/images/kcachegrind_xtree.png link path=usr/share/doc/valgrind/html/images/next.png \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/images/next.png target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/images/next.png link path=usr/share/doc/valgrind/html/images/prev.png \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/images/prev.png target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/images/prev.png link path=usr/share/doc/valgrind/html/images/up.png \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/images/up.png target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/images/up.png link path=usr/share/doc/valgrind/html/index.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/index.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/index.html link path=usr/share/doc/valgrind/html/license.gfdl.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/license.gfdl.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/license.gfdl.html link path=usr/share/doc/valgrind/html/license.gpl.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/license.gpl.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/license.gpl.html link path=usr/share/doc/valgrind/html/licenses.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/licenses.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/licenses.html link path=usr/share/doc/valgrind/html/lk-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/lk-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/lk-manual.html link path=usr/share/doc/valgrind/html/manual-core-adv.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/manual-core-adv.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/manual-core-adv.html link path=usr/share/doc/valgrind/html/manual-core.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/manual-core.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/manual-core.html link path=usr/share/doc/valgrind/html/manual-intro.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/manual-intro.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/manual-intro.html link path=usr/share/doc/valgrind/html/manual-writing-tools.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/manual-writing-tools.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/manual-writing-tools.html link path=usr/share/doc/valgrind/html/manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/manual.html link path=usr/share/doc/valgrind/html/mc-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/mc-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/mc-manual.html link path=usr/share/doc/valgrind/html/ms-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/ms-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/ms-manual.html link path=usr/share/doc/valgrind/html/nl-manual.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/nl-manual.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/nl-manual.html link path=usr/share/doc/valgrind/html/quick-start.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/quick-start.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/quick-start.html link path=usr/share/doc/valgrind/html/tech-docs.html \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/tech-docs.html target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/tech-docs.html link path=usr/share/doc/valgrind/html/vg_basic.css \ target=/usr/src/myoi-userland/components/developer/valgrind/valgrind-$(COMPONENT_VERSION)/docs/html/vg_basic.css target=/usr/src/oi-userland/components/developer/valgrind/valgrind-$(HUMAN_VERSION)/docs/html/vg_basic.css file path=usr/share/doc/valgrind/valgrind_manual.pdf file path=usr/share/doc/valgrind/valgrind_manual.ps file path=usr/share/man/man1/callgrind_annotate.1 components/developer/valgrind/patches/04-execve.patch
New file @@ -0,0 +1,18 @@ On Solaris, calling execve with -1 as a first argument causes segfault. Not intended for upstream. --- valgrind-3.22.0/none/tests/execve.c 2023-10-31 18:25:52.000000000 +0100 +++ valgrind-3.22.0/none/tests/execve.c.new 2023-12-26 17:42:45.810898858 +0100 @@ -28,8 +28,11 @@ doesn't actually exists, so execve doesn't accidentally succeeds. */ if (execve("/%/", NULL, NULL) >= 0) printf ("WHAT?"); +#if !defined(VGO_solaris) + /* On Solaris, execve segfaults when -1 is given as an argument. */ if (execve("/%/", (void *)-1, NULL) >= 0) printf ("WHAT?"); +#endif if (execve("/%/", v_null, NULL) >= 0) printf ("WHAT?"); if (execve("/%/", v_null, v_null) >= 0) components/developer/valgrind/patches/05-dtrace-fix.patch
New file @@ -0,0 +1,33 @@ The change that added this code did not take Solaris only block (hidden behind define macro) into consideration. Should be reported upstream. --- valgrind-3.22.0/coregrind/m_debuginfo/readelf.c +++ valgrind-3.22.0/coregrind/m_debuginfo/readelf.c @@ -2386,6 +2386,12 @@ Bool ML_(read_elf_debug_info) ( struct _ /* Accept .data where mapped as rw (data), even if zero-sized */ if (0 == VG_(strcmp)(name, ".data")) { + if (inrw2) { + inrw = inrw2; + } else { + inrw = inrw1; + } + # if defined(SOLARIS_PT_SUNDWTRACE_THRP) if ((size == VKI_PT_SUNWDTRACE_SIZE) && (svma == dtrace_data_vaddr)) { TRACE_SYMTAB("ignoring .data section for dtrace_data " @@ -2393,12 +2399,6 @@ Bool ML_(read_elf_debug_info) ( struct _ } else # endif /* SOLARIS_PT_SUNDWTRACE_THRP */ - if (inrw2) { - inrw = inrw2; - } else { - inrw = inrw1; - } - if (inrw && !di->data_present) { di->data_present = True; di->data_svma = svma; components/developer/valgrind/patches/06-mremap.patch
New file @@ -0,0 +1,61 @@ Add support for new mremap syscall. This can be offered upstream. --- valgrind-3.22.0/coregrind/m_aspacemgr/aspacemgr-common.c +++ valgrind-3.22.0/coregrind/m_aspacemgr/aspacemgr-common.c @@ -223,7 +223,7 @@ SysRes ML_(am_do_extend_mapping_NO_NOTIF /* Extend the mapping old_addr .. old_addr+old_len-1 to have length new_len, WITHOUT moving it. If it can't be extended in place, fail. */ -# if defined(VGO_linux) +# if defined(VGO_linux) || defined(VGO_solaris) return VG_(do_syscall5)( __NR_mremap, old_addr, old_len, new_len, @@ -244,7 +244,7 @@ SysRes ML_(am_do_relocate_nooverlap_mapp location and with the new length. Only needs to handle the case where the two areas do not overlap, neither length is zero, and all args are page aligned. */ -# if defined(VGO_linux) +# if defined(VGO_linux) || defined(VGO_solaris) return VG_(do_syscall5)( __NR_mremap, old_addr, old_len, new_len, --- valgrind-3.22.0/include/vki/vki-solaris.h +++ valgrind-3.22.0/include/vki/vki-solaris.h @@ -664,6 +664,11 @@ typedef struct vki_kcf_door_arg_s { #define vki_meminfo_t meminfo_t +#include <sys/mman.h> +#define VKI_MREMAP_FIXED MREMAP_FIXED +#define VKI_MREMAP_MAYMOVE MREMAP_MAYMOVE + + #include <sys/mntio.h> #define VKI_MNTIOC_GETEXTMNTENT MNTIOC_GETEXTMNTENT #define VKI_MNTIOC_GETMNTANY MNTIOC_GETMNTANY --- valgrind-3.22.0/include/vki/vki-scnums-solaris.h +++ valgrind-3.22.0/include/vki/vki-scnums-solaris.h @@ -178,6 +178,7 @@ #if defined(SOLARIS_UUIDSYS_SYSCALL) #define __NR_uuidsys SYS_uuidsys #endif /* SOLARIS_UUIDSYS_SYSCALL */ +#define __NR_mremap SYS_mremap #define __NR_mmapobj SYS_mmapobj #define __NR_setrlimit SYS_setrlimit #define __NR_getrlimit SYS_getrlimit --- valgrind-3.21.0/coregrind/m_syswrap/syswrap-solaris.c +++ valgrind-3.21.0/coregrind/m_syswrap/syswrap-solaris.c @@ -10951,6 +10951,9 @@ static SyscallTableEntry syscall_table[] #if defined(SOLARIS_UUIDSYS_SYSCALL) SOLXY(__NR_uuidsys, sys_uuidsys), /* 124 */ #endif /* SOLARIS_UUIDSYS_SYSCALL */ +#if defined(HAVE_MREMAP) + GENX_(__NR_mremap, sys_mremap), /* 126 */ +#endif /* HAVE_MREMAP */ SOLX_(__NR_mmapobj, sys_mmapobj), /* 127 */ GENX_(__NR_setrlimit, sys_setrlimit), /* 128 */ GENXY(__NR_getrlimit, sys_getrlimit), /* 129 */ components/developer/valgrind/patches/07-dtrace-section.patch
New file @@ -0,0 +1,50 @@ Solaris ELF objects can contain additional DTrace related .data section, which can confuse Valgrind. Previously, this was handled by detecting an ELF section outside all mapped regions. However, it seems that even this DTrace related section can be mapped into an existing region. This patch changes this detection such that section mapping is no longer relevant. Original fix: https://sourceware.org/git/?p=valgrind.git;h=6260274e4ed84f02d3fbe73adbd3b65893e73bd8 Should be reported upstream. --- valgrind-3.22.0/coregrind/m_debuginfo/readelf.c +++ valgrind-3.22.0/coregrind/m_debuginfo/readelf.c @@ -2153,17 +2153,24 @@ Bool ML_(read_elf_debug_info) ( struct _ } } } - if (!loaded) { -# if defined(SOLARIS_PT_SUNDWTRACE_THRP) - if ((a_phdr.p_memsz == VKI_PT_SUNWDTRACE_SIZE) - && ((a_phdr.p_flags & (PF_R | PF_W | PF_X)) == PF_R)) { - TRACE_SYMTAB("PT_LOAD[%ld]: ignore dtrace_data program " - "header\n", i); - dtrace_data_vaddr = a_phdr.p_vaddr; - continue; +# if defined(SOLARIS_PT_SUNDWTRACE_THRP) + if ((a_phdr.p_memsz == VKI_PT_SUNWDTRACE_SIZE) + && ((a_phdr.p_flags & (PF_R | PF_W | PF_X)) == PF_R)) { + if (dtrace_data_vaddr != 0) { + ML_(symerr)(di, True, "Multiple dtrace_data headers detected"); + goto out; } -# endif /* SOLARIS_PT_SUNDWTRACE_THRP */ + dtrace_data_vaddr = a_phdr.p_vaddr; + /* DTrace related section might be outside all mapped regions. */ + if (!loaded) { + TRACE_SYMTAB("PT_LOAD[%ld]: ignore dtrace_data program " + "header\n", i); + continue; + } + } +# endif /* SOLARIS_PT_SUNDWTRACE_THRP */ + if (!loaded) { ML_(symerr)(di, False, "ELF section outside all mapped regions"); /* This problem might be solved by further memory mappings. components/developer/valgrind/patches/08-gdbserver_tests.patch
New file @@ -0,0 +1,53 @@ gdbserver_tests test does not work at all simply waits for eternity --- valgrind-3.22.0/Makefile.in 2023-12-26 18:16:46.161022244 +0100 +++ valgrind-3.22.0/Makefile.in.new 2023-12-26 19:05:09.563683141 +0100 @@ -1435,18 +1435,18 @@ regtest: check $(top_srcdir)/gdbserver_tests/make_local_links $(GDB) - if @PERL@ tests/vg_regtest gdbserver_tests $(TOOLS) $(EXP_TOOLS) ; then \ - tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \ + if @PERL@ tests/vg_regtest $(TOOLS) $(EXP_TOOLS) ; then \ + tests/post_regtest_checks $(abs_top_srcdir) $(TOOLS) $(EXP_TOOLS); \ else \ tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \ false; \ fi post-regtest-checks: - tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS) + tests/post_regtest_checks $(abs_top_srcdir) $(TOOLS) $(EXP_TOOLS) nonexp-regtest: check @PERL@ tests/vg_regtest $(TOOLS) exp-regtest: check - @PERL@ tests/vg_regtest gdbserver_tests $(EXP_TOOLS) + @PERL@ tests/vg_regtest $(EXP_TOOLS) # Nb: gdbserver_tests are put in exp-regtest rather than nonexp-regtest # because they are tested with various valgrind tools, so might be using # an experimental tool. --- valgrind-3.22.0/Makefile.am 2023-10-31 18:25:52.000000000 +0100 +++ valgrind-3.22.0/Makefile.am.new 2023-12-26 19:06:33.986624317 +0100 @@ -76,18 +76,18 @@ ## Ensure make exits with error if PERL fails or post_regtest_checks fails. regtest: check $(top_srcdir)/gdbserver_tests/make_local_links $(GDB) - if @PERL@ tests/vg_regtest gdbserver_tests $(TOOLS) $(EXP_TOOLS) ; then \ - tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \ + if @PERL@ tests/vg_regtest $(TOOLS) $(EXP_TOOLS) ; then \ + tests/post_regtest_checks $(abs_top_srcdir) $(TOOLS) $(EXP_TOOLS); \ else \ tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \ false; \ fi post-regtest-checks: - tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS) + tests/post_regtest_checks $(abs_top_srcdir) $(TOOLS) $(EXP_TOOLS) nonexp-regtest: check @PERL@ tests/vg_regtest $(TOOLS) exp-regtest: check - @PERL@ tests/vg_regtest gdbserver_tests $(EXP_TOOLS) + @PERL@ tests/vg_regtest $(EXP_TOOLS) # Nb: gdbserver_tests are put in exp-regtest rather than nonexp-regtest # because they are tested with various valgrind tools, so might be using # an experimental tool. components/developer/valgrind/pkg5
@@ -1,9 +1,10 @@ { "dependencies": [ "SUNWcs", "runtime/perl-534", "shell/ksh93", "system/library" "developer/gcc-13", "runtime/perl", "system/library", "system/library/gcc-13-runtime" ], "fmris": [ "developer/debug/valgrind" components/developer/valgrind/test/results-all.master
@@ -1,130 +1 @@ == 787 tests, 95 stderr failures, 18 stdout failures, 3 stderrB failures, 6 stdoutB failures, 7 post failures == gdbserver_tests/hginfo (stderrB) gdbserver_tests/mcinvokeWS (stdoutB) gdbserver_tests/mcinvokeWS (stderrB) gdbserver_tests/mcsignopass (stderr) gdbserver_tests/mcsignopass (stdoutB) gdbserver_tests/mcsigpass (stderr) gdbserver_tests/mcsigpass (stdoutB) gdbserver_tests/nlgone_abrt (stderr) gdbserver_tests/nlpasssigalrm (stderr) gdbserver_tests/nlpasssigalrm (stdoutB) gdbserver_tests/nlpasssigalrm (stderrB) gdbserver_tests/nlvgdbsigqueue (stderr) gdbserver_tests/nlvgdbsigqueue (stdoutB) gdbserver_tests/solaris/nlcontrolc (stderr) gdbserver_tests/solaris/nlcontrolc (stdoutB) memcheck/tests/amd64-solaris/context_fpu (stdout) memcheck/tests/amd64-solaris/context_fpu (stderr) memcheck/tests/amd64-solaris/context_gpr (stdout) memcheck/tests/amd64-solaris/context_gpr (stderr) memcheck/tests/amd64-solaris/context_rflags (stdout) memcheck/tests/amd64-solaris/context_rflags (stderr) memcheck/tests/amd64-solaris/context_rflags2 (stderr) memcheck/tests/amd64-solaris/context_sse (stdout) memcheck/tests/amd64-solaris/context_sse (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/big_debuginfo_symbol (stderr) memcheck/tests/deep-backtrace (stderr) memcheck/tests/demangle (stderr) memcheck/tests/descr_belowsp (stderr) memcheck/tests/dw4 (stderr) memcheck/tests/execve1 (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/gone_abrt_xml (stderr) memcheck/tests/inltemplate (stderr) memcheck/tests/leak-autofreepool-0 (stderr) memcheck/tests/leak-autofreepool-1 (stderr) memcheck/tests/leak-autofreepool-4 (stderr) memcheck/tests/leak_cpp_interior (stderr) memcheck/tests/long_namespace_xml (stdout) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stdout) memcheck/tests/new_override (stderr) memcheck/tests/post-syscall (stderr) memcheck/tests/sem (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/signal2 (stdout) memcheck/tests/signal2 (stderr) memcheck/tests/solaris/context_stack_die (stderr) memcheck/tests/solaris/door_data (stderr) memcheck/tests/solaris/door_kill (stdout) memcheck/tests/solaris/door_kill (stderr) memcheck/tests/solaris/lsframe2 (stderr) memcheck/tests/solaris/scalar_getrandom (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/threadname (stderr) memcheck/tests/threadname_xml (stderr) memcheck/tests/vcpu_fnfns (stdout) helgrind/tests/bar_bad (stderr) helgrind/tests/bar_trivial (stderr) helgrind/tests/bug322621 (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/pth_barrier1 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) drd/tests/bar_bad (stderr) drd/tests/bar_bad_xml (stderr) drd/tests/concurrent_close (stderr) drd/tests/monitor_example (stderr) drd/tests/new_delete (stderr) drd/tests/omp_matinv (stderr) drd/tests/omp_matinv_racy (stderr) drd/tests/omp_printf (stderr) drd/tests/pth_cancel_locked (stderr) drd/tests/sigalrm (stderr) drd/tests/sigaltstack (stderr) drd/tests/swapcontext (stderr) drd/tests/tc22_exit_w_lock (stderr) massif/tests/deep-D (post) massif/tests/new-cpp (stderr) massif/tests/new-cpp (post) massif/tests/overloaded-new (stderr) massif/tests/overloaded-new (post) none/tests/amd64/fxtract (stdout) none/tests/amd64/ssse3_misaligned (stderr) none/tests/amd64-solaris/coredump_single_thread (stderr) none/tests/amd64-solaris/coredump_single_thread (post) none/tests/amd64-solaris/coredump_single_thread_sse (stderr) none/tests/amd64-solaris/coredump_single_thread_sse (post) none/tests/async-sigs (stderr) none/tests/bug234814 (stdout) none/tests/bug234814 (stderr) none/tests/faultstatus (stderr) none/tests/gxx304 (stderr) none/tests/pending (stdout) none/tests/pending (stderr) none/tests/ppoll_alarm (stderr) none/tests/pselect_alarm (stderr) none/tests/pth_2sig (stderr) none/tests/pth_cancel1 (stdout) none/tests/pth_cancel1 (stderr) none/tests/pth_cancel2 (stderr) none/tests/pth_self_kill_9 (stderr) none/tests/sem (stderr) none/tests/sigstackgrowth (stdout) none/tests/sigstackgrowth (stderr) none/tests/solaris/blockfault (stderr) none/tests/solaris/context_link (stdout) none/tests/solaris/context_link (stderr) none/tests/solaris/context_link2 (stderr) none/tests/solaris/context_stack (stderr) none/tests/solaris/coredump_many_threads (stderr) none/tests/solaris/coredump_many_threads (post) none/tests/solaris/pthread-stack (stderr) none/tests/solaris/sigresend (stdout) none/tests/solaris/sigresend (stderr) none/tests/solaris/stack-overflow (stderr) none/tests/syscall-restart1 (stderr) none/tests/syscall-restart2 (stderr) none/tests/thread-exits (stdout) none/tests/thread-exits (stderr) none/tests/x86/fxtract (stdout) none/tests/x86-solaris/coredump_single_thread (stderr) none/tests/x86-solaris/coredump_single_thread (post) none/tests/x86-solaris/coredump_single_thread_sse (stderr) == 835 tests, 62 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 6 post failures == components/developer/valgrind/valgrind.p5m
@@ -13,10 +13,11 @@ # Copyright 2015-2017 Aurelien Larcher # Copyright 2019 Michal Nowak # Copyright 2021-2022 David Stes # Copyright 2022 Friedrich Kink # Copyright 2022,2023 Friedrich Kink # set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) set name=pkg.human-version value=$(HUMAN_VERSION) set name=pkg.summary value="$(COMPONENT_SUMMARY)" set name=info.classification value="$(COMPONENT_CLASSIFICATION)" set name=info.upstream-url value=$(COMPONENT_PROJECT_URL) @@ -30,14 +31,15 @@ file path=usr/bin/callgrind_annotate file path=usr/bin/callgrind_control file path=usr/bin/cg_annotate file path=usr/bin/cg_diff file path=usr/bin/cg_merge file path=usr/bin/cg_annotate pkg.depend.bypass-generate=.* file path=usr/bin/cg_diff pkg.depend.bypass-generate=.* file path=usr/bin/cg_merge pkg.depend.bypass-generate=.* file path=usr/bin/ms_print file path=usr/bin/valgrind file path=usr/bin/valgrind-di-server file path=usr/bin/valgrind-listener file path=usr/bin/vgdb file path=usr/include/valgrind/cachegrind.h file path=usr/include/valgrind/callgrind.h file path=usr/include/valgrind/config.h file path=usr/include/valgrind/dhat.h @@ -297,6 +299,8 @@ file path=usr/lib/$(MACH64)/valgrind/s390x-linux64.xml file path=usr/lib/$(MACH64)/valgrind/s390x-vx-linux-valgrind.xml file path=usr/lib/$(MACH64)/valgrind/s390x-vx-linux.xml file path=usr/lib/$(MACH64)/valgrind/valgrind-monitor-def.py file path=usr/lib/$(MACH64)/valgrind/valgrind-monitor.py file path=usr/lib/$(MACH64)/valgrind/vgpreload_core-amd64-solaris.so file path=usr/lib/$(MACH64)/valgrind/vgpreload_core-x86-solaris.so file path=usr/lib/$(MACH64)/valgrind/vgpreload_dhat-amd64-solaris.so @@ -309,6 +313,7 @@ file path=usr/lib/$(MACH64)/valgrind/vgpreload_massif-x86-solaris.so file path=usr/lib/$(MACH64)/valgrind/vgpreload_memcheck-amd64-solaris.so file path=usr/lib/$(MACH64)/valgrind/vgpreload_memcheck-x86-solaris.so file path=usr/share/doc/valgrind/valgrind_manual.pdf file path=usr/share/man/man1/callgrind_annotate.1 file path=usr/share/man/man1/callgrind_control.1 file path=usr/share/man/man1/cg_annotate.1