Re: Building gcc with --coverage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2012-04-20 16:18, David Tengeri wrote:
Hello,

I want to measure the test coverage of gcc based on the tests shipped with it. To accomplish this, I tried to compile gcc 4.6.2 with the --coverage flag. But I got some errors and I don't know how to handle them. I googled it, but I didn't find any useful information, maybe somebody can help me.

I tried to compile gcc on 3 different systems. On my desktop, which runs a 64-bit Arch Linux, and I made a 32-bit Arch Linux and a 32-bit Debian 6.0 virtual machine on VirtualBox.

The normal builds are OK.

The configure command I've used on both systems:
../gcc_4_6_2/configure --prefix="/home/dtengeri/install/" --enable-languages="c,c++" CFLAGS="-g -O0 -fprofile-arcs -ftest-coverage" CXXFLAGS="-g -O0 -fprofile-arcs -ftest-coverage" LDFLAGS="-fprofile-arcs -ftest-coverage"

[configure-stage1-target-libgomp] Error 77
The config.log says:
/home/dtengeri/build/./gcc/cc1: symbol lookup error: /home/dtengeri/build/./gcc/libgcc_s.so.1: undefined symbol: atexit

atexit is defined in glibc. I have version 2.15-10 of glibc on my system. I've tried to pass -lc to LDFLAGS, but it didn't help.

Next I added --disable-shared parameter to the configure. In this case the build process reached stage 2. The compile stopped at configuring libiberty, because it can't find gcov related functions. So I modified the makefile and add the -fprofile-arcs flag to the XGCC_FLAGS_FOR_TARGET variable. After this the compile continued, but a segmentation fault occured at stage 2, at one of the configure of libgcc.

The second try was on a 32-bit Arch Linux running on VirtualBox. I got the same problem here. It missed the fstat() symbol without --disable-shared parameter and there was a segmentation fault with the --disable-shared parameter.

My third attempt was on the Debian.
I had to make the change of XGCC_FLAGS_FOR_TARGET in the Makefile here too.

First, the compile stopped when trying to configure libiberty at stage 2.It stopped at the checking for working fork. I left it for hours but nothing changed, it still wanted to check for working fork. So I changed the configure script in libiberty to bypass this check. The same error happened with gcc, so I modified the gcc/configure script too.
The next stop in the build process was the following command:
echo | /home/dtengeri/build/./gcc/xgcc -B/home/dtengeri/build/./gcc/ -E -dM - | \
      sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
         -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
      sort -u > tmp-macro_list

And this command didn't finish its job. I left it for a day. At the end of the day it allocates all of the memory on the virtual machine and used its cpu on 100%.

The situation is the same with --disable-shared on and off.

So I'm stucked here and I don't know what to do next.

Does anybody has any expreience in building gcc with --coverage option?

Regards,
David Tengeri

Ok, now I know this was a dumb question. There is --enable-coverage configure option, which does the same I want.... Now it compiles fine.

Regards,
David


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux