Am 28.04.2014 21:35, schrieb Peter Maydell: > The test_path binary is (unlike the other test binaries in tests/tcg) > actually intended to be compiled with the same compiler used to build > the main QEMU executables. It actually #includes a number of the > QEMU source files in an attempt to unit-test the util/path.c functions, > and so if it is not compiled with the same compiler used by configure > to set CONFIG_ settings then it is liable to fail to build. > Fix the makefile to build it with CC, not CC_I386, and fix the test > itself not to include a lot of unnecessary trace related source > files which cause the build to fail if the trace backend is anything > other than 'simple'. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > The particular build failure you usually hit is that CC is an > x86-64 compiler supporting __int128_t whereas CC_I386 does not, > and then the code in the headers using those types blows up. > > The whole attempt to unit test by compiling bits of the .c files > seems terribly fragile to me; this is the only test we have that > does it, so if anybody has a better approach to testing these path.c > functions I'd like to know. > > Stefan, you added the trace .c files in commit 6d4adef48dd6bb but > I can't work out why they're needed -- the test builds fine for > me without them whether we configured using the default or simple > backends, and it definitely doesn't compile if we used the default > backend and the test includes the trace .c files...
Before my commit, a trace.c was included which was no longer available, so I simply replaced it by its successor (which needed additional trace .c files). I can confirm that removing those trace files also works. That's of course a better solution. Stefan