|
From: Stephen W. <wo...@sw...> - 2006-05-27 20:59:27
|
Hi all, I love valgrind and use it all the time on my 32 bit boxes, but I'm migrating to newer 64 bit hardware and I can not get valgrind to build and install. I'm running a debian Sarge box with the amd64 port on it and everything is 64 bit. > woodbri@carto:/u/software/valgrind-3.1.1$ uname -a > Linux carto 2.6.15-1-em64t-p4-smp #2 SMP Tue Mar 7 08:19:39 UTC 2006 x86_64 GNU/Linux ./configure seems to run and the messages seem to be reasonable. make runs through compiling the -m32 version but dies here: rm -f libvex.a ar clq libvex.a priv/ir/irdefs.o priv/ir/irmatch.o priv/ir/iropt.o priv/main/vex_main.o priv/main/vex_globals.o priv/main/vex_util.o priv/host-x86/hdefs.o priv/host-amd64/hdefs.o priv/host-arm/hdefs.o priv/host-ppc32/hdefs.o priv/host-x86/isel.o priv/host-amd64/isel.o priv/host-arm/isel.o priv/host-ppc32/isel.o priv/host-generic/h_generic_regs.o priv/host-generic/h_generic_simd64.o priv/host-generic/reg_alloc2.o priv/guest-generic/g_generic_x87.o priv/guest-generic/bb_to_IR.o priv/guest-x86/ghelpers.o priv/guest-amd64/ghelpers.o priv/guest-arm/ghelpers.o priv/guest-ppc32/ghelpers.o priv/guest-x86/toIR.o priv/guest-amd64/toIR.o priv/guest-arm/toIR.o priv/guest-ppc32/toIR.o mv -f libvex.a libvex_x86_linux.a make[4]: Leaving directory `/u/software/valgrind-3.1.1/VEX' gcc -m64 -fomit-frame-pointer -O -g -Wmissing-prototypes -Winline -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-long-long -o memcheck-x86-linux -static -Wl,-defsym,valt_load_address=0x70000000 -nodefaultlibs -nostartfiles -u _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds memcheck_x86_linux-mac_leakcheck.o memcheck_x86_linux-mac_malloc_wrappers.o memcheck_x86_linux-mc_main.o memcheck_x86_linux-mac_shared.o memcheck_x86_linux-mc_translate.o ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc /usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux/3.3.5/./libgcc.a when searching for -lgcc /usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux/3.3.5/libgcc.a when searching for -lgcc /usr/bin/ld: cannot find -lgcc collect2: ld returned 1 exit status make[3]: *** [memcheck-x86-linux] Error 1 make[3]: Leaving directory `/u/software/valgrind-3.1.1/memcheck' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/u/software/valgrind-3.1.1/memcheck' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/u/software/valgrind-3.1.1' make: *** [all] Error 2 So I think the problem is that while the compiler supports the -m32 flag, ./configure did not check to see if there are 32 bit libraries installed (there are not installed, in fact I don't think they exist in the 64 bit repository). Has anyone else run into this or have a suggestion on how to tell ./configure to not build the -m32 version. Or am I missing the point and there is something else going on? I'd appreciate any help, -Steve |
|
From: Julian S. <js...@ac...> - 2006-05-27 21:10:51
|
Ah. You remind me of an undocumented new "feature" in the upcoming 3.2.0 which solves precisely this problem. It's trying to do a 32- and 64-bit build on a platform which only supports 64 bit builds. In 3.2.0 (and with the current svn trunk) you'll be able to configure with --enable-only64bit; this should cause it to omit the 32-bit build. J > Hi all, > > I love valgrind and use it all the time on my 32 bit boxes, but I'm > migrating to newer 64 bit hardware and I can not get valgrind to build > and install. > > I'm running a debian Sarge box with the amd64 port on it and everything > is 64 bit. > > > woodbri@carto:/u/software/valgrind-3.1.1$ uname -a > > Linux carto 2.6.15-1-em64t-p4-smp #2 SMP Tue Mar 7 08:19:39 UTC 2006 > > x86_64 GNU/Linux > > ./configure seems to run and the messages seem to be reasonable. make > runs through compiling the -m32 version but dies here: > > rm -f libvex.a > ar clq libvex.a priv/ir/irdefs.o priv/ir/irmatch.o priv/ir/iropt.o > priv/main/vex_main.o priv/main/vex_globals.o priv/main/vex_util.o > priv/host-x86/hdefs.o priv/host-amd64/hdefs.o priv/host-arm/hdefs.o > priv/host-ppc32/hdefs.o priv/host-x86/isel.o priv/host-amd64/isel.o > priv/host-arm/isel.o priv/host-ppc32/isel.o > priv/host-generic/h_generic_regs.o priv/host-generic/h_generic_simd64.o > priv/host-generic/reg_alloc2.o priv/guest-generic/g_generic_x87.o > priv/guest-generic/bb_to_IR.o priv/guest-x86/ghelpers.o > priv/guest-amd64/ghelpers.o priv/guest-arm/ghelpers.o > priv/guest-ppc32/ghelpers.o priv/guest-x86/toIR.o > priv/guest-amd64/toIR.o priv/guest-arm/toIR.o priv/guest-ppc32/toIR.o > mv -f libvex.a libvex_x86_linux.a > make[4]: Leaving directory `/u/software/valgrind-3.1.1/VEX' > gcc -m64 -fomit-frame-pointer -O -g -Wmissing-prototypes -Winline > -Wall -Wshadow -Wpointer-arith -Wstrict-prototypes > -Wmissing-declarations -Wno-long-long -o memcheck-x86-linux -static > -Wl,-defsym,valt_load_address=0x70000000 -nodefaultlibs -nostartfiles -u > _start -m32 -Wl,-T,../valt_load_address_x86_linux.lds > memcheck_x86_linux-mac_leakcheck.o > memcheck_x86_linux-mac_malloc_wrappers.o memcheck_x86_linux-mc_main.o > memcheck_x86_linux-mac_shared.o memcheck_x86_linux-mc_translate.o > ../coregrind/libcoregrind_x86_linux.a ../VEX/libvex_x86_linux.a -lgcc > /usr/bin/ld: skipping incompatible > /usr/lib/gcc-lib/x86_64-linux/3.3.5/./libgcc.a when searching for -lgcc > /usr/bin/ld: skipping incompatible > /usr/lib/gcc-lib/x86_64-linux/3.3.5/libgcc.a when searching for -lgcc > /usr/bin/ld: cannot find -lgcc > collect2: ld returned 1 exit status > make[3]: *** [memcheck-x86-linux] Error 1 > make[3]: Leaving directory `/u/software/valgrind-3.1.1/memcheck' > make[2]: *** [all-recursive] Error 1 > make[2]: Leaving directory `/u/software/valgrind-3.1.1/memcheck' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/u/software/valgrind-3.1.1' > make: *** [all] Error 2 > > So I think the problem is that while the compiler supports the -m32 > flag, ./configure did not check to see if there are 32 bit libraries > installed (there are not installed, in fact I don't think they exist in > the 64 bit repository). > > Has anyone else run into this or have a suggestion on how to tell > ./configure to not build the -m32 version. Or am I missing the point and > there is something else going on? > > I'd appreciate any help, > -Steve > > > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost and Risk! > Fully trained technicians. The highest number of Red Hat certifications in > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642 > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users |
|
From: Tom H. <to...@co...> - 2006-05-29 09:37:45
Attachments:
valgrind-32on64.patch
|
In message <447...@sw...>
Stephen Woodbridge <wo...@sw...> wrote:
> I love valgrind and use it all the time on my 32 bit boxes, but I'm
> migrating to newer 64 bit hardware and I can not get valgrind to build
> and install.
>
> I'm running a debian Sarge box with the amd64 port on it and everything
> is 64 bit.
[ snipped ]
> So I think the problem is that while the compiler supports the -m32
> flag, ./configure did not check to see if there are 32 bit libraries
> installed (there are not installed, in fact I don't think they exist in
> the 64 bit repository).
This is primarily a Debian issue because unlike like most linux
distributions Debian's 64 bit version is a pure 64 bit only version
with no 32 bit support. At least that is my understanding.
Julian's told you how to force a 64 bit only build, but could you
give the attached patch a go as well - it should automatically
select a 64 bit only build if 32 bit programs can't be built.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|