From 4b7bdeb49177fb0904b6ac2c8b76aa10cc6ef9b0 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Jan 28 2011 12:42:00 +0000 Subject: 3.6.0-2 --- diff --git a/valgrind-3.6.0-pie.patch b/valgrind-3.6.0-pie.patch new file mode 100644 index 0000000..26c976b --- /dev/null +++ b/valgrind-3.6.0-pie.patch @@ -0,0 +1,40 @@ +From eb8d355b64e72bfdf1c8dd2534b1625d5d0118e0 Mon Sep 17 00:00:00 2001 +From: Dodji Seketeli +Date: Thu, 13 Jan 2011 16:04:39 +0100 +Subject: [PATCH] Fix crash loading certain binaries on ppc64 + +Increase the space left for VDSO on ppc64 compiled with 64KB page +size. the size of VDSO is at least 2 pages: one for the code and one +for the data. We ought to leave more than two page space then. The +patch leaves 8 pages space to comply with what is done already for 4KB +page sizes. +--- + coregrind/m_ume/elf.c | 10 ++++++---- + 1 files changed, 6 insertions(+), 4 deletions(-) + +--- valgrind/coregrind/m_ume/elf.c ++++ valgrind/coregrind/m_ume/elf.c +@@ -327,6 +327,7 @@ Int VG_(load_ELF)(Int fd, const HChar* name, /*MOD*/ExeInfo* info) + /* The kernel maps position-independent executables at TASK_SIZE*2/3; + duplicate this behavior as close as we can. */ + if (e->e.e_type == ET_DYN && ebase == 0) { ++ ESZ(Addr) hacky_load_address; + ebase = VG_PGROUNDDN(info->exe_base + + (info->exe_end - info->exe_base) * 2 / 3); + /* We really don't want to load PIEs at zero or too close. It +@@ -336,10 +337,11 @@ Int VG_(load_ELF)(Int fd, const HChar* name, /*MOD*/ExeInfo* info) + nonpointers. So, hackily, move it above 1MB. */ + /* Later .. is appears ppc32-linux tries to put [vdso] at 1MB, + which totally screws things up, because nothing else can go +- there. So bump the hacky load addess along by 0x8000, to +- 0x108000. */ +- if (ebase < 0x108000) +- ebase = 0x108000; ++ there. The size of [vdso] is around 2 or 3 pages, so bump ++ the hacky load addess along by 8 * VKI_PAGE_SIZE to be safe. */ ++ hacky_load_address = 0x100000 + 8 * VKI_PAGE_SIZE; ++ if (ebase < hacky_load_address) ++ ebase = hacky_load_address; + } + + info->phnum = e->e.e_phnum; diff --git a/valgrind-3.6.0-ppc64-pwrite64.patch b/valgrind-3.6.0-ppc64-pwrite64.patch new file mode 100644 index 0000000..3ffe8d5 --- /dev/null +++ b/valgrind-3.6.0-ppc64-pwrite64.patch @@ -0,0 +1,11 @@ +--- valgrind/coregrind/m_syswrap/syswrap-ppc64-linux.c.jj 2010-10-20 22:19:41.000000000 +0200 ++++ valgrind/coregrind/m_syswrap/syswrap-ppc64-linux.c 2011-01-28 13:12:32.698670101 +0100 +@@ -1379,7 +1379,7 @@ static SyscallTableEntry syscall_table[] + // _____(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 178 + GENXY(__NR_pread64, sys_pread64), // 179 + +-// _____(__NR_pwrite64, sys_pwrite64), // 180 ++ GENX_(__NR_pwrite64, sys_pwrite64), // 180 + GENX_(__NR_chown, sys_chown), // 181 + GENXY(__NR_getcwd, sys_getcwd), // 182 + LINXY(__NR_capget, sys_capget), // 183 diff --git a/valgrind.spec b/valgrind.spec index 53acc76..cc442d1 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -20,6 +20,8 @@ Patch13: valgrind-3.6.0-s390x-4.patch Patch14: valgrind-3.6.0-strcasecmp.patch Patch15: valgrind-3.6.0-xlc_dbl_u32-test-patch Patch16: valgrind-3.6.0-helgrind-tests.patch +Patch17: valgrind-3.6.0-ppc64-pwrite64.patch +Patch18: valgrind-3.6.0-pie.patch License: GPLv2 URL: http://www.valgrind.org/ Group: Development/Debuggers @@ -29,10 +31,10 @@ Obsoletes: valgrind-callgrind # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so %endif -%if 0%{?fedora} >= 13 || 0%{?rhel} >= 6 -BuildRequires: glibc-devel >= 2.12 +%if 0%{?fedora} >= 15 +BuildRequires: glibc-devel >= 2.13 %else -BuildRequires: glibc-devel >= 2.11 +BuildRequires: glibc-devel >= 2.12 %endif %ifnarch s390x BuildRequires: openmpi-devel >= 1.3.3 @@ -110,6 +112,8 @@ for details. %patch14 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 +%patch18 -p1 chmod 755 none/tests/s390x/filter_stderr @@ -211,6 +215,11 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Fri Jan 28 2011 Jakub Jelinek 3.6.0-2 +- rebuilt against glibc 2.13 (#673046) +- hook in pwrite64 syscall on ppc64 (#672858) +- fix PIE handling on ppc/ppc64 (#665289) + * Fri Nov 12 2010 Jakub Jelinek 3.6.0-1 - update to 3.6.0 - add s390x support (#632354)