summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/118/debug/1193628
blob: b3c5591dac87a9f9da3239d2383c894d9bb987a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
debug: 0.806
semantic: 0.804
user-level: 0.794
permissions: 0.785
assembly: 0.781
graphic: 0.765
device: 0.765
register: 0.762
virtual: 0.759
architecture: 0.731
performance: 0.724
files: 0.703
PID: 0.695
arm: 0.695
risc-v: 0.684
peripherals: 0.673
mistranslation: 0.672
VMM: 0.668
ppc: 0.649
TCG: 0.643
hypervisor: 0.637
kernel: 0.624
socket: 0.622
network: 0.607
KVM: 0.592
vnc: 0.590
boot: 0.571
x86: 0.456
i386: 0.270

Undefined References

I've been able to make qemu on ubuntu 13.04 for all last releases: 1.4.0 -> 1.5.0

Unfortunately, when I launch one of them with a Cisco ASA, it crashes inside GNS3 (latest release) for Ubuntu.
The top GNS3 developer told me they experienced similar results and advised me to use qemu 1.1.0.

The problem is that I cannot link that version. I always have these errors:
 
"LINK  qemu-ga
qemu-timer.o: In function `dynticks_rearm_timer':
/home/actionmystique/Downloads/qemu-1.1.0/qemu-timer.c:538: undefined reference to `timer_gettime'
/home/actionmystique/Downloads/qemu-1.1.0/qemu-timer.c:551: undefined reference to `timer_settime'
qemu-timer.o: In function `dynticks_stop_timer':
/home/actionmystique/Downloads/qemu-1.1.0/qemu-timer.c:524: undefined reference to `timer_delete'
qemu-timer.o: In function `dynticks_start_timer':
/home/actionmystique/Downloads/qemu-1.1.0/qemu-timer.c:510: undefined reference to `timer_create'
collect2: error: ld returned 1 exit status
make: *** [qemu-ga] Error 1"

The man pages say we need to link with '-lrt' option, but I could not find it in the Makefile.
I do not know how to correct this issue.

As you note, 1.1 is now pretty old; you will be much better off in the long run investigating why your guest OS doesn't work under current QEMU.


This is a change in glibc.  Since version 2.17, clock_gettime() and friends were moved from -lrt to the main libc, so for linking with clock_gettime(), -lrt isn't needed anymore.

However, (old) qemu configure only checked clock_gettime(), and used other functions like timer_create() &Co above.

There was a patch:

commit 8bacde8d86a09699207d85d4bab06162aed18dc4
Author: Natanael Copa <email address hidden>
Date:   Wed Sep 12 09:06:51 2012 +0000

    configure: properly check if -lrt and -lm is needed
    
    Fixes build against uClibc.

    uClibc provides 2 versions of clock_gettime(), one with realtime
    support and one without (this is so you can avoid linking in -lrt
    unless actually needed). This means that the clock_gettime() don't
    need -lrt. We still need it for timer_create() so we check for this
    function in addition.
    
    We also need check if -lm is needed for isnan().
    
    Both -lm and -lrt are needed for libs_qga.

which was applied past qemu-1.2, so 1.4 and 1.5 versions have it, and _should_ work fine.

Thanks,

/mjt

@Peter Maydell (pmaydell): you're right, but in the meantime, I needed to find another solution.

@Michael Tokarev (mjt+launchpad-tls): Thanks a lot for your answer, it helped me pass this hindrance... to find 2 other obstacles.

Regarding the first one: I patched the two files as recommended (and added comments to the third one). There's a confusing thing though: the displayed "configure" file is very different from the one which is distributed with the 1.1.0 release, so the line numbers are not correct.
The patch needs to be done from line #2569, instead of #2673.

Anyway, I was able to continue making qemu until this error: 
"  LINK  lm32-softmmu/qemu-system-lm32
/usr/bin/ld: milkymist-tmu2.o: undefined reference to symbol 'XFree'
/usr/bin/ld: note: 'XFree' is defined in DSO /usr/lib/i386-linux-gnu/libX11.so.6 so try adding it to the linker command line
/usr/lib/i386-linux-gnu/libX11.so.6: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-lm32] Error 1
make: *** [subdir-lm32-softmmu] Error 2"

I had to apply another patch to "configure" from here: http://permalink.gmane.org/gmane.comp.emulators.qemu/193007

Then I ran into another issue:
"  CC    cris-linux-user/signal.o
/home/actionmystique/Downloads/qemu-1.1.0/linux-user/signal.c:3479:24: error: field ‘info’ has incomplete type
make[1]: *** [signal.o] Error 1
make: *** [subdir-cris-linux-user] Error 2"

This was solved with a last patch on "linux-user/signal.c" from: http://git.qemu.org/?p=qemu.git;a=commit;h=02d2bd5d57812154cfb978bc2098cf49d551583d

And now I'm finally able to compile, link and install qemu-1.1.0 on Ubuntu 13.04 without any error! :)

N.B: I have attached the four files as tar.gz for further reference; you may want to include these new files into qemu 1.1.0.

QEMU 1.1.0 is not maintained anymore, so closing this as "Won't fix".