Patchwork [1.1] tests: Fix linker failure for fdc-test

login
register
mail settings
Submitter Stefan Weil
Date May 15, 2012, 5:27 a.m.
Message ID <1337059639-4936-1-git-send-email-sw@weilnetz.de>
Download mbox | patch
Permalink /patch/159230/
State Accepted
Headers show

Comments

Stefan Weil - May 15, 2012, 5:27 a.m.
When QEMU was built with the simple trace backend, linking failed:

  LINK  tests/fdc-test
oslib-posix.o: In function `trace_qemu_memalign':
qemu/bin/debug/x86/./trace.h:31: undefined reference to `trace3'
oslib-posix.o: In function `trace_qemu_vmalloc':
qemu/bin/debug/x86/./trace.h:35: undefined reference to `trace2'
oslib-posix.o: In function `trace_qemu_vfree':
qemu/bin/debug/x86/./trace.h:39: undefined reference to `trace1'
collect2: error: ld returned 1 exit status
make: *** [tests/fdc-test] Fehler 1

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 tests/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Stefan Weil - May 15, 2012, 5:33 a.m.
Am 15.05.2012 07:27, schrieb Stefan Weil:
> When QEMU was built with the simple trace backend, linking failed: 
> LINK tests/fdc-test oslib-posix.o: In function `trace_qemu_memalign': 
> qemu/bin/debug/x86/./trace.h:31: undefined reference to `trace3' 
> oslib-posix.o: In function `trace_qemu_vmalloc': 
> qemu/bin/debug/x86/./trace.h:35: undefined reference to `trace2' 
> oslib-posix.o: In function `trace_qemu_vfree': 
> qemu/bin/debug/x86/./trace.h:39: undefined reference to `trace1' 
> collect2: error: ld returned 1 exit status make: *** [tests/fdc-test] 
> Fehler 1 Signed-off-by: Stefan Weil <sw@weilnetz.de> --- 
> tests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 
> diff --git a/tests/Makefile b/tests/Makefile index 20e4da9..f1b317a 
> 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -68,7 +68,7 @@ 
> tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o 
> tests/test-qmp-marsh tests/rtc-test$(EXESUF): tests/rtc-test.o 
> $(trace-obj-y) tests/m48t59-test$(EXESUF): tests/m48t59-test.o 
> $(trace-obj-y) -tests/fdc-test$(EXESUF): tests/fdc-test.o 
> tests/libqtest.o +tests/fdc-test$(EXESUF): tests/fdc-test.o 
> tests/libqtest.o $(trace-obj-y) # QTest rules 

... and after this linker failure was fixed, the test reports an error:

GTESTER check-qtest-sparc64
**
ERROR:/home/stefan/src/qemu/qemu.org/qemu/tests/fdc-test.c:120:test_media_change: 
assertion failed ((dir) & (DSKCHG) == 0): (0x00000080 == 0x00000000)
GTester: last random seed: R02Sd438078cdc65f1843886ab2983bf20ba
**
ERROR:/home/stefan/src/qemu/qemu.org/qemu/tests/fdc-test.c:120:test_media_change: 
assertion failed ((dir) & (DSKCHG) == 0): (0x00000080 == 0x00000000)
GTester: last random seed: R02Sb6ef6a57dc94cacf2d7ba4e3bd34b7a4

I like buildbots. They also fail in the same test with a timeout,
that's why I had run this check.

Regards,
Stefan W.
Stefan Weil - May 15, 2012, 5:48 a.m.
Am 15.05.2012 07:33, schrieb Stefan Weil:
> Am 15.05.2012 07:27, schrieb Stefan Weil:
>> When QEMU was built with the simple trace backend, linking failed: 
>> LINK tests/fdc-test oslib-posix.o: In function `trace_qemu_memalign': 
>> qemu/bin/debug/x86/./trace.h:31: undefined reference to `trace3' 
>> oslib-posix.o: In function `trace_qemu_vmalloc': 
>> qemu/bin/debug/x86/./trace.h:35: undefined reference to `trace2' 
>> oslib-posix.o: In function `trace_qemu_vfree': 
>> qemu/bin/debug/x86/./trace.h:39: undefined reference to `trace1' 
>> collect2: error: ld returned 1 exit status make: *** [tests/fdc-test] 
>> Fehler 1 Signed-off-by: Stefan Weil <sw@weilnetz.de> --- 
>> tests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 
>> diff --git a/tests/Makefile b/tests/Makefile index 20e4da9..f1b317a 
>> 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -68,7 +68,7 @@ 
>> tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o 
>> tests/test-qmp-marsh tests/rtc-test$(EXESUF): tests/rtc-test.o 
>> $(trace-obj-y) tests/m48t59-test$(EXESUF): tests/m48t59-test.o 
>> $(trace-obj-y) -tests/fdc-test$(EXESUF): tests/fdc-test.o 
>> tests/libqtest.o +tests/fdc-test$(EXESUF): tests/fdc-test.o 
>> tests/libqtest.o $(trace-obj-y) # QTest rules 
>
> ... and after this linker failure was fixed, the test reports an error:
>
> GTESTER check-qtest-sparc64
> **
> ERROR:/home/stefan/src/qemu/qemu.org/qemu/tests/fdc-test.c:120:test_media_change: 
> assertion failed ((dir) & (DSKCHG) == 0): (0x00000080 == 0x00000000)
> GTester: last random seed: R02Sd438078cdc65f1843886ab2983bf20ba
> **
> ERROR:/home/stefan/src/qemu/qemu.org/qemu/tests/fdc-test.c:120:test_media_change: 
> assertion failed ((dir) & (DSKCHG) == 0): (0x00000080 == 0x00000000)
> GTester: last random seed: R02Sb6ef6a57dc94cacf2d7ba4e3bd34b7a4
>
> I like buildbots. They also fail in the same test with a timeout,
> that's why I had run this check.
>
> Regards,
> Stefan W.


The failure was caused by old object files. Obviously there are missing
dependencies in tests/Makefile, therefore running "make check"
before running "make" can cause harm.

When I run "make && make check", all is fine.

Regards,
Stefan W.
Kevin Wolf - May 15, 2012, 8:01 a.m.
Am 15.05.2012 07:27, schrieb Stefan Weil:
> When QEMU was built with the simple trace backend, linking failed:
> 
>   LINK  tests/fdc-test
> oslib-posix.o: In function `trace_qemu_memalign':
> qemu/bin/debug/x86/./trace.h:31: undefined reference to `trace3'
> oslib-posix.o: In function `trace_qemu_vmalloc':
> qemu/bin/debug/x86/./trace.h:35: undefined reference to `trace2'
> oslib-posix.o: In function `trace_qemu_vfree':
> qemu/bin/debug/x86/./trace.h:39: undefined reference to `trace1'
> collect2: error: ld returned 1 exit status
> make: *** [tests/fdc-test] Fehler 1
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>

Oops, seems I didn't rebase carefully enough.

Reviewed-by: Kevin Wolf <kwolf@redhat.com>

I also applied this to the block branch just in case, but I'm excepting
Anthony to pick it up and push directly.

Kevin

Patch

diff --git a/tests/Makefile b/tests/Makefile
index 20e4da9..f1b317a 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -68,7 +68,7 @@  tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marsh
 
 tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y)
 tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y)
-tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o
+tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o $(trace-obj-y)
 
 # QTest rules