9
votes

I have found in my actual program for ARM CortexA8 with linux a following issue:

´*** glibc detected *** ./PRUssExternal: double free or corruption (top): 0x00024fe8 ***´

I`m searching for that in the web and I found that the most usefull program to manage this is issue is Valgrind.

How to track down a double free or corruption error in C++ with gdb

Then I try to compile to my system in a cross compilation, with the following options in the configuration. I´m using Valgrind 3.8.1

@-virtual-machine:~/valgrind-3.8.1$ CC=arm-cortexa8-linux-gnueabi-gcc CFLAGS="-pipe -Os -mtune=cortex-a8 -march=armv7-a -mabi=aapcs-linux -msoft-float -I/opt/OSELAS.Toolchain-2011.11.3/arm-cortexa8-linux-gnueabi/gcc-4.6.2-glibc-2.14.1-binutils-2.21.1a-kernel-2.6.39-sanitez/sysroot-arm-cortexa8-linux-gnueabi/usr/include" LDFLAGS="-L/opt/OSELAS.Toolchain-2011.11.3/arm-cortexa8-linux-gnueabi/gcc-4.6.2-glibc-2.14.1-binutils-2.21.1a-kernel-2.6.39-sanitez/sysroot-arm-cortexa8-linux-gnueabi/usr/lib" ./configure -prefix=/opt/valgrid -host=arm-cortexa8-linux-gnueabi -target=arm-none-linux-gnueabi -build=x86_64-ubuntu-linux

And the output of this configuration is:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-cortexa8-linux-gnueabi-strip... arm-cortexa8-linux-gnueabi-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether ln -s works... yes
checking for arm-cortexa8-linux-gnueabi-gcc... arm-cortexa8-linux-gnueabi-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether arm-cortexa8-linux-gnueabi-gcc accepts -g... yes
checking for arm-cortexa8-linux-gnueabi-gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of arm-cortexa8-linux-gnueabi-gcc... gcc3
checking whether arm-cortexa8-linux-gnueabi-gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... arm-cortexa8-linux-gnueabi-gcc -E
checking for arm-cortexa8-linux-gnueabi-g++... arm-cortexa8-linux-gnueabi-g++
checking whether we are using the GNU C++ compiler... yes
checking whether arm-cortexa8-linux-gnueabi-g++ accepts -g... yes
checking dependency style of arm-cortexa8-linux-gnueabi-g++... gcc3
checking for arm-cortexa8-linux-gnueabi-ranlib... arm-cortexa8-linux-gnueabi-ranlib
checking for a sed that does not truncate output... /bin/sed
checking for ar... /usr/bin/ar
checking for perl... /usr/bin/perl
checking for gdb... /usr/bin/gdb
checking dependency style of arm-cortexa8-linux-gnueabi-gcc... gcc3
checking for diff -u... yes
checking for a supported version of gcc... ok (4.6.2)
checking build system type... x86_64-ubuntu-linux-gnu
checking host system type... arm-cortexa8-linux-gnueabi
checking for a supported CPU... no (arm)
configure: error: Unsupported host architecture. Sorry

In the last line of this output, My Issue is appeared although I looked for some information and the Cortexa8 it is one of the supported plattaforms.

valgrind on the ARM9?

For that reason my question is whether my board is not supported because the libraries that I use are not compatible or it could be other reason. Or in other hand I could compile the valgrind without fear and jump this checking.

Thanks for your time

-Regards

Breci01010...

1
According to sourceforge.net/mailarchive/… , this could be an effect of your unusually explicit toolchain name. So following that, you could try --host=armv7-unknown-linux-gnueabi.unixsmurf
Thanks unixsmurf, I have already tested changing to the new configuration in host and so it works propertly. Thanks for your time -Regardsbreci010101
Hi, I have compiled and installed succesfully the valdgrid in the CortexA8. But the problem that I find now it is because I don´t use the standard C libraies How to compile valgrid How someone knows other system works more friendly with non-standard libraries that isn´t gdb. -Thanksbreci010101

1 Answers

13
votes

You should edit configure file. Find a line "armv7*" and change it to "arm*" - this would be enough.