|
From: Jose R. <jr...@cr...> - 2005-09-05 07:19:19
|
Dear all, =20 I would like to install valgrind 3.0.1 on a RedHat Enterprise Linux WS 3 = for AMD 64 (dual processor), kernel version 2.4.21-9.ELsmp, gcc 3.4.3 =20 The problem is that the application can only be built in 32 bit mode, = since the libraries with which I=92m linking the code are only available in 32 = bit mode. =20 =20 I know that to debug 32 bit applications in a 64 bit platform I must = built valgrind in 32 but mode. Therefore my first approach was to set CFLAGS = to compile valgrind in 32 mode: =20 ./configure CFLAGS=3D-m32 CPPFLAGS=3D-m32 CCASFLAGS=3D-m32 -prefix=3D/home/jreis/valgrind/ =20 When I ran make I got the following error: =20 make[4]: Entering directory `/home/jreis/valgrind-3.0.0/coregrind/m_aspacemgr' if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../coregrind -I../.. -I../../coregrind/amd64 -I../../coregrind/linux -I../../coregrind/amd64-linux -I../../include -I/home/jreis/valgrind-3.0.0/VEX/pub -DVGA_amd64=3D1 -DVGO_linux=3D1 -DVGP_amd64_linux=3D1 -m32 -m64 -fomit-frame-pointer -mpreferred-stack-boundary=3D2 -Wmissing-prototypes -Winline -Wall = -Wshadow -O -g -Wno-long-long -MT read_procselfmaps.o -MD -MP -MF ".deps/read_procselfmaps.Tpo" -c -o read_procselfmaps.o = read_procselfmaps.c; \ then mv -f ".deps/read_procselfmaps.Tpo" ".deps/read_procselfmaps.Po"; = else rm -f ".deps/read_procselfmaps.Tpo"; exit 1; fi read_procselfmaps.c:1: error: -mpreferred-stack-boundary=3D2 is not = between 4 and 12 =20 =20 Since this approach was not working, I tested the suggestion which was = sent to this mailing list by Julian Seward on 2005-08-03 17:19: =93If you want to run 32-bit x86 executables under Valgrind on an AMD64, you will need to build Valgrind on an x86 machine and copy it to the AMD64 machine =94 =20 I built the valgrind on my 32-bit machine, running Suse 9.3 and = gcc-3.4.3, using the following commands: ./configure CFLAGS=3D-m32 CPPFLAGS=3D-m32 CCASFLAGS=3D-m32 -prefix=3D/home/jreis/valgrind/ make =20 Then I copy it to the 64 bit machine, but when I ran =91make install=92 = I got the following error: =20 gcc -m32 -mpreferred-stack-boundary=3D2 -Wmissing-prototypes -Winline = -Wall -Wshadow -O -g -Wno-long-long -o stage2 -Wl,--export-dynamic -g -Wl,--whole-archive m_replacemalloc/libreplacemalloc_core.a -Wl,--no-whole-archive -Wl,-defsym,kickstart_base=3D0xb0000000 -Wl,-T,stage2.lds m_cpuid.o m_debugger.o m_debuglog.o m_errormgr.o m_execontext.o m_hashtable.o m_libcbase.o m_libcassert.o m_libcfile.o m_libcmman.o m_libcprint.o m_libcproc.o m_libcsignal.o m_machine.o = m_main.o m_mallocfree.o m_options.o m_profile.o m_pthreadmodel.o m_redir.o m_signals.o m_skiplist.o m_stacks.o m_stacktrace.o m_syscall.o m_threadmodel.o m_threadstate.o m_tooliface.o m_trampoline.o = m_translate.o m_transtab.o m_ume.o m_debuginfo/libdebuginfo.a m_demangle/libdemangle.a m_scheduler/libscheduler.a m_dispatch/libdispatch.a m_aspacemgr/libaspacemgr.a m_sigframe/libsigframe.a = m_syswrap/libsyswrap.a /home/jreis/valgrind-3.0.0/VEX/libvex.a -ldl /usr/bin/ld:stage2.lds:129: syntax error collect2: ld returned 1 exit status =20 Do you have any idea of what is wrong? Do I need to set --build or = --host flags when I ran configure on my 32 bit machine? If so which value = should I use? =20 Regards =20 Jos=E9 Reis Project Engineer, Command & Control mailto:jr...@cr... =20 Critical Software SA Polo Tecnol=F3gico de Lisboa, lote 1 Estrada do Pa=E7o do Lumiar 1600-546 Lisboa Tel. +351 217101192 Fax. +351 217101103 <http://www.criticalsoftware.com/> http://www.criticalsoftware.com =20 |
|
From: Jose R. <jr...@cr...> - 2005-09-08 13:56:08
|
Dear all, =20 I would like to install valgrind 3.0.1 on a RedHat Enterprise Linux WS 3 = for AMD 64 (dual processor), kernel version 2.4.21-9.ELsmp, gcc 3.4.3 =20 The problem is that the application can only be built in 32 bit mode, = since the libraries with which I=92m linking the code are only available in 32 = bit mode. =20 =20 I know that to debug 32 bit applications in a 64 bit platform I must = built valgrind in 32 but mode. Therefore my first approach was to set CFLAGS = to compile valgrind in 32 mode: =20 ./configure CFLAGS=3D-m32 CPPFLAGS=3D-m32 CCASFLAGS=3D-m32 -prefix=3D/home/jreis/valgrind/ =20 When I ran make I got the following error: =20 make[4]: Entering directory `/home/jreis/valgrind-3.0.0/coregrind/m_aspacemgr' if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../coregrind -I../.. -I../../coregrind/amd64 -I../../coregrind/linux -I../../coregrind/amd64-linux -I../../include -I/home/jreis/valgrind-3.0.0/VEX/pub -DVGA_amd64=3D1 -DVGO_linux=3D1 -DVGP_amd64_linux=3D1 -m32 -m64 -fomit-frame-pointer -mpreferred-stack-boundary=3D2 -Wmissing-prototypes -Winline -Wall = -Wshadow -O -g -Wno-long-long -MT read_procselfmaps.o -MD -MP -MF ".deps/read_procselfmaps.Tpo" -c -o read_procselfmaps.o = read_procselfmaps.c; \ then mv -f ".deps/read_procselfmaps.Tpo" ".deps/read_procselfmaps.Po"; = else rm -f ".deps/read_procselfmaps.Tpo"; exit 1; fi read_procselfmaps.c:1: error: -mpreferred-stack-boundary=3D2 is not = between 4 and 12 =20 =20 Since this approach was not working, I tested the suggestion which was = sent to this mailing list by Julian Seward on 2005-08-03 17:19: =93If you want to run 32-bit x86 executables under Valgrind on an AMD64, you will need to build Valgrind on an x86 machine and copy it to the AMD64 machine =94 =20 I built the valgrind on my 32-bit machine, running Suse 9.3 and = gcc-3.4.3, using the following commands: ./configure CFLAGS=3D-m32 CPPFLAGS=3D-m32 CCASFLAGS=3D-m32 -prefix=3D/home/jreis/valgrind/ make =20 Then I copy it to the 64 bit machine, but when I ran =91make install=92 = I got the following error: =20 gcc -m32 -mpreferred-stack-boundary=3D2 -Wmissing-prototypes -Winline = -Wall -Wshadow -O -g -Wno-long-long -o stage2 -Wl,--export-dynamic -g -Wl,--whole-archive m_replacemalloc/libreplacemalloc_core.a -Wl,--no-whole-archive -Wl,-defsym,kickstart_base=3D0xb0000000 -Wl,-T,stage2.lds m_cpuid.o m_debugger.o m_debuglog.o m_errormgr.o m_execontext.o m_hashtable.o m_libcbase.o m_libcassert.o m_libcfile.o m_libcmman.o m_libcprint.o m_libcproc.o m_libcsignal.o m_machine.o = m_main.o m_mallocfree.o m_options.o m_profile.o m_pthreadmodel.o m_redir.o m_signals.o m_skiplist.o m_stacks.o m_stacktrace.o m_syscall.o m_threadmodel.o m_threadstate.o m_tooliface.o m_trampoline.o = m_translate.o m_transtab.o m_ume.o m_debuginfo/libdebuginfo.a m_demangle/libdemangle.a m_scheduler/libscheduler.a m_dispatch/libdispatch.a m_aspacemgr/libaspacemgr.a m_sigframe/libsigframe.a = m_syswrap/libsyswrap.a /home/jreis/valgrind-3.0.0/VEX/libvex.a -ldl /usr/bin/ld:stage2.lds:129: syntax error collect2: ld returned 1 exit status =20 Do you have any idea of what is wrong? Do I need to set --build or = --host flags when I ran configure on my 32 bit machine? If so which value = should I use? =20 Regards =20 Jos=E9 Reis Project Engineer, Command & Control mailto:jr...@cr... =20 Critical Software SA Polo Tecnol=F3gico de Lisboa, lote 1 Estrada do Pa=E7o do Lumiar 1600-546 Lisboa Tel. +351 217101192 Fax. +351 217101103 <http://www.criticalsoftware.com/> http://www.criticalsoftware.com =20 |
|
From: Tom H. <to...@co...> - 2005-09-05 07:38:06
|
In message <200...@li...>
Jose Reis <jr...@cr...> wrote:
> I know that to debug 32 bit applications in a 64 bit platform I must built
> valgrind in 32 but mode. Therefore my first approach was to set CFLAGS to
> compile valgrind in 32 mode:
>=20=20
> ./configure CFLAGS=3D-m32 CPPFLAGS=3D-m32 CCASFLAGS=3D-m32
> -prefix=3D/home/jreis/valgrind/
That won't work as the configure script won't know you are building
for a 32 bit platform so won't select the right platform specific
code.
If you want to build a 32 bit version on a 64 bit machine you should
use the --host switch to configure (and use valgrind 3.0.1 as it is
broken in the 3.0.0 release).
>=20=20
> Since this approach was not working, I tested the suggestion which was se=
nt
> to this mailing list by Julian Seward on 2005-08-03 17:19:
> =C2=93If you want to run 32-bit x86 executables under Valgrind
> on an AMD64, you will need to build Valgrind on an x86 machine and
> copy it to the AMD64 machine
> =C2=94
That is the easiest way to do it.
> I built the valgrind on my 32-bit machine, running Suse 9.3 and gcc-3.4.3,
> using the following commands:
> ./configure CFLAGS=3D-m32 CPPFLAGS=3D-m32 CCASFLAGS=3D-m32
> -prefix=3D/home/jreis/valgrind/
> make
>=20=20
> Then I copy it to the 64 bit machine, but when I ran =C2=91make install=
=C2=92 I got
> the following error:
You almost certainly need to do the make install on the 32 bit machine
and then copy the installed binaries over. I normally do it by building
a 32 bit RPM on a 32 bit machine and then installing it on a 64 bit machine.
Tom
--=20
Tom Hughes (to...@co...)
http://www.compton.nu/
|