arm*-*-linux* is broken currently for what looks like the same reasons as
the powerpc port.
Have you tried Benjamin Kosnik's patch? Does it fix the problem?
I hadn't but that seems to have fixed the issue. Thanks.
I spent some time this morning looking into what it would take to enable
this for arm*-*-linux* today and the first thing that I noticed is that the
testsuite is essentially driven by a shell script that caters to native
testing on the only port that this was developed for. It also expects -m32
and -m64 to be a standard option in all ports that want to turn this on.
Also because the tests are not using dejagnu it's going to be a right pain
to get this to work for cross-testing and unless that works reliably one
isn't going to be able to get this feature working easily.
Also whatever is target specific in the testsuite like environment-fail-32.s
and environment-fail-64.s needs to live in it's own target folders.
Basically this feature needs to follow conventions that exist already in
other parts of the source base or atleast have plans to get there surely ?
I haven't seen this in the reviews that I've seen so far, so apologies if
this has already been raised.
I know that the testsuite, as committed, is not in DejaGnu format and
that it will need to be converted to DejaGnu format. I also know that
it is currently specific to the platform on which the feature was
developed. The plan has always been to fix this. There was some
private discussion about whether it would be better to commit the
testsuite in its current state or not to commit a testsuite at all
with the initial project commit. I was told that it would be better
to show that there is some way of testing this feature, even if the
testsuite is not in its final form, than to not show any way of
testing it at all.
Good to know there is atleast a plan to fix this. It would have been
better to state this in a public review or as part of your merge request
or indeed fix this properly before merging .....
I will work on getting the testsuite into a better form and also on
writing up some documentation on the platform-specific pieces of the
vtable verification feature (for those who wish to port it to other
platforms).
Cool - thanks .
So I tried playing with it on native arm*-*-*linux builds for sometime
and ran into the first problem which came while just building vtv_start.c .
/bin/bash ./libtool --tag=CC --mode=compile
/home/ramrad01/build-vtv1/./gcc/xgcc -B/home/ramrad01/build-vtv1/./gcc/
-B/usr/local/armv7l-unknown-linux-gnueabihf/bin/
-B/usr/local/armv7l-unknown-linux-gnueabihf/lib/ -isystem
/usr/local/armv7l-unknown-linux-gnueabihf/include -isystem
/usr/local/armv7l-unknown-linux-gnueabihf/sys-include -I.
-I../../../gcc/libvtv -I../../../gcc/libvtv/../include -D_GNU_SOURCE
-Wall -Wextra -fno-exceptions -g -O2 -MT vtv_start.lo -MD -MP -MF
.deps/vtv_start.Tpo -c -o vtv_start.lo vtv_start.c
libtool: compile: /home/ramrad01/build-vtv1/./gcc/xgcc
-B/home/ramrad01/build-vtv1/./gcc/
-B/usr/local/armv7l-unknown-linux-gnueabihf/bin/
-B/usr/local/armv7l-unknown-linux-gnueabihf/lib/ -isystem
/usr/local/armv7l-unknown-linux-gnueabihf/include -isystem
/usr/local/armv7l-unknown-linux-gnueabihf/sys-include -I.
-I../../../gcc/libvtv -I../../../gcc/libvtv/../include -D_GNU_SOURCE
-Wall -Wextra -fno-exceptions -g -O2 -MT vtv_start.lo -MD -MP -MF
.deps/vtv_start.Tpo -c vtv_start.c -fPIC -DPIC -o .libs/vtv_start.o
vtv_start.c:57:1: warning: constructor priorities from 0 to 100 are
reserved for the implementation [enabled by default]
{
^
vtv_start.c:65:3: internal compiler error: Segmentation fault
= { };
^
0x3aa3f5 crash_signal
../../gcc/gcc/toplev.c:335
0x52a669 default_elf_asm_named_section(char const*, unsigned int,
tree_node*)
../../gcc/gcc/varasm.c:6219
0x52c041 switch_to_section
../../gcc/gcc/varasm.c:7035
0x52c5b1 output_object_block
../../gcc/gcc/varasm.c:7209
0x52c5b1 output_object_block_htab
../../gcc/gcc/varasm.c:7270
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [vtv_start.lo] Error 1
make[2]: Leaving directory
`/home/ramrad01/build-vtv1/armv7l-unknown-linux-gnueabihf/libvtv'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/home/ramrad01/build-vtv1/armv7l-unknown-linux-gnueabihf/libvtv'
make: *** [all] Error 2
It might be because of inconsistencies for handling comdat linkage with
regards to the ARM C++ ABI variations but it's too late for me to dig
further tonight.
regards
Ramana