From: Arkadiusz Miśkiewicz Date: Fri, 12 Oct 2018 18:32:26 +0000 (+0200) Subject: - up to 3.14.0; enabled lto (wchich usually makes gdb unusable on binary but binary... X-Git-Tag: auto/th/valgrind-3.14.0-1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fvalgrind.git;a=commitdiff_plain;h=644f5b9 - up to 3.14.0; enabled lto (wchich usually makes gdb unusable on binary but binary can be even 10% faster according to valgrind devs) --- diff --git a/valgrind-3.13.0-arch_prctl.patch b/valgrind-3.13.0-arch_prctl.patch deleted file mode 100644 index 4182210..0000000 --- a/valgrind-3.13.0-arch_prctl.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c -index 0f2ad8c51..407af7f76 100644 ---- a/coregrind/m_syswrap/syswrap-amd64-linux.c -+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c -@@ -249,6 +249,7 @@ PRE(sys_rt_sigreturn) - PRE(sys_arch_prctl) - { - ThreadState* tst; -+ Bool known_option = True; - PRINT( "arch_prctl ( %ld, %lx )", SARG1, ARG2 ); - - vg_assert(VG_(is_valid_tid)(tid)); -@@ -283,13 +284,16 @@ PRE(sys_arch_prctl) - POST_MEM_WRITE(ARG2, sizeof(unsigned long)); - } - else { -- VG_(core_panic)("Unsupported arch_prctl option"); -+ known_option = False; - } - - /* Note; the Status writeback to guest state that happens after - this wrapper returns does not change guest_FS_CONST or guest_GS_CONST; - hence that direct assignment to the guest state is safe here. */ -- SET_STATUS_Success( 0 ); -+ if (known_option) -+ SET_STATUS_Success( 0 ); -+ else -+ SET_STATUS_Failure( VKI_EINVAL ); - } - - // Parts of this are amd64-specific, but the *PEEK* cases are generic. diff --git a/valgrind-3.13.0-ld-separate-code.patch b/valgrind-3.13.0-ld-separate-code.patch deleted file mode 100644 index a8f8a90..0000000 --- a/valgrind-3.13.0-ld-separate-code.patch +++ /dev/null @@ -1,93 +0,0 @@ -commit 3bce9544deab0261c7c55ccdc46ce1f36e468040 -Author: Mark Wielaard -Date: Thu Jul 12 13:56:00 2018 +0200 - - Accept read-only PT_LOAD segments and .rodata. - - The new binutils ld -z separate-code option creates multiple read-only - PT_LOAD segments and might place .rodata in a non-executable segment. - - Allow and keep track of separate read-only segments and allow a readonly - page with .rodata section. - - Based on patches from Tom Hughes and - H.J. Lu . - - https://bugs.kde.org/show_bug.cgi?id=395682 - -index 13991b6..c36d498 100644 ---- a/coregrind/m_debuginfo/debuginfo.c -+++ b/coregrind/m_debuginfo/debuginfo.c -@@ -1126,9 +1126,7 @@ ULong VG_(di_notify_mmap)( Addr a, Bool allow_SkFileV, Int use_fd ) - # error "Unknown platform" - # endif - --# if defined(VGP_x86_darwin) && DARWIN_VERS >= DARWIN_10_7 - is_ro_map = seg->hasR && !seg->hasW && !seg->hasX; --# endif - - # if defined(VGO_solaris) - is_rx_map = seg->hasR && seg->hasX && !seg->hasW; -diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c -index 62192f0..95b97d6 100644 ---- a/coregrind/m_debuginfo/readelf.c -+++ b/coregrind/m_debuginfo/readelf.c -@@ -1881,7 +1881,7 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di ) - Bool loaded = False; - for (j = 0; j < VG_(sizeXA)(di->fsm.maps); j++) { - const DebugInfoMapping* map = VG_(indexXA)(di->fsm.maps, j); -- if ( (map->rx || map->rw) -+ if ( (map->rx || map->rw || map->ro) - && map->size > 0 /* stay sane */ - && a_phdr.p_offset >= map->foff - && a_phdr.p_offset < map->foff + map->size -@@ -1912,6 +1912,16 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di ) - i, (UWord)item.bias); - loaded = True; - } -+ if (map->ro -+ && (a_phdr.p_flags & (PF_R | PF_W | PF_X)) -+ == PF_R) { -+ item.exec = False; -+ VG_(addToXA)(svma_ranges, &item); -+ TRACE_SYMTAB( -+ "PT_LOAD[%ld]: acquired as ro, bias 0x%lx\n", -+ i, (UWord)item.bias); -+ loaded = True; -+ } - } - } - if (!loaded) { -@@ -2179,17 +2189,25 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di ) - } - } - -- /* Accept .rodata where mapped as rx (data), even if zero-sized */ -+ /* Accept .rodata where mapped as rx or rw (data), even if zero-sized */ - if (0 == VG_(strcmp)(name, ".rodata")) { -- if (inrx && !di->rodata_present) { -- di->rodata_present = True; -+ if (!di->rodata_present) { - di->rodata_svma = svma; -- di->rodata_avma = svma + inrx->bias; -+ di->rodata_avma = svma; - di->rodata_size = size; -- di->rodata_bias = inrx->bias; - di->rodata_debug_svma = svma; -- di->rodata_debug_bias = inrx->bias; -- /* NB was 'inrw' prior to r11794 */ -+ if (inrx) { -+ di->rodata_avma += inrx->bias; -+ di->rodata_bias = inrx->bias; -+ di->rodata_debug_bias = inrx->bias; -+ } else if (inrw) { -+ di->rodata_avma += inrw->bias; -+ di->rodata_bias = inrw->bias; -+ di->rodata_debug_bias = inrw->bias; -+ } else { -+ BAD(".rodata"); -+ } -+ di->rodata_present = True; - TRACE_SYMTAB("acquiring .rodata svma = %#lx .. %#lx\n", - di->rodata_svma, - di->rodata_svma + di->rodata_size - 1); diff --git a/valgrind-native-cpuid.patch b/valgrind-native-cpuid.patch index 5b43717..dd0617d 100644 --- a/valgrind-native-cpuid.patch +++ b/valgrind-native-cpuid.patch @@ -57,23 +57,15 @@ diff -uNr valgrind-3.6.0.orig/VEX/priv/guest_amd64_helpers.c valgrind-3.6.0/VEX/ /* This isn't entirely correct, CPUID should depend on the VEX capabilities, not on the underlying CPU. See bug #324882. */ if ((archinfo->hwcaps & VEX_HWCAPS_AMD64_SSE3) && -diff -uNr valgrind-3.6.0.orig/VEX/pub/libvex.h valgrind-3.6.0/VEX/pub/libvex.h ---- valgrind-3.6.0.orig/VEX/pub/libvex.h 2010-10-20 22:19:52.000000000 +0200 -+++ valgrind-3.6.0/VEX/pub/libvex.h 2011-01-17 20:41:02.906490947 +0100 -@@ -60,7 +60,6 @@ - } - VexArch; - -- - /* For a given architecture, these specify extra capabilities beyond - the minimum supported (baseline) capabilities. They may be OR'd - together, although some combinations don't make sense. (eg, SSE2 -@@ -270,6 +269,8 @@ - /* EXPERIMENTAL: chase across conditional branches? Not all - front ends honour this. Default: NO. */ - Bool guest_chase_cond; +--- valgrind-3.14.0/VEX/pub/libvex.h~ 2018-10-12 20:12:49.000000000 +0200 ++++ valgrind-3.14.0/VEX/pub/libvex.h 2018-10-12 20:13:55.990940300 +0200 +@@ -519,6 +519,8 @@ typedef + - '3': current, faster implementation; perhaps producing slightly worse + spilling decisions. */ + UInt regalloc_version; + /* For x86 and amd64 allow the use of native cpuid inst */ + Int iropt_native_cpuid; } VexControl; + diff --git a/valgrind.spec b/valgrind.spec index 339fb8d..e94237d 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -7,16 +7,14 @@ Summary: An open-source memory debugger Summary(pl.UTF-8): Otwarty odpluskwiacz pamięci Name: valgrind -Version: 3.13.0 -Release: 3 +Version: 3.14.0 +Release: 1 License: GPL v2+ Group: Development/Tools -Source0: ftp://sourceware.org/pub/valgrind/%{name}-%{version}.tar.bz2 -# Source0-md5: 817dd08f1e8a66336b9ff206400a5369 +Source0: https://sourceware.org/pub/valgrind/%{name}-%{version}.tar.bz2 +# Source0-md5: 74175426afa280184b62591b58c671b3 Patch0: %{name}-native-cpuid.patch Patch1: %{name}-ld_linux_strlen.patch -Patch2: valgrind-3.13.0-ld-separate-code.patch -Patch3: valgrind-3.13.0-arch_prctl.patch URL: http://valgrind.org/ BuildRequires: autoconf >= 2.50 BuildRequires: automake >= 1:1.10 @@ -59,8 +57,6 @@ pracować. %setup -q %patch0 -p1 %patch1 -p1 -%patch2 -p1 -%patch3 -p1 sed -i -e 's:^CFLAGS="-Wno-long-long":CFLAGS="$CFLAGS -Wno-long-long":' configure.ac @@ -76,7 +72,8 @@ ac_cv_path_GDB=/usr/bin/gdb \ --enable-tls \ %if %{_lib} != "lib" --enable-only64bit \ -%endif +%endif \ + --enable-lto=yes \ LDFLAGS="" # no strip! %{__make}