blob: fae3d724393170c80b4480ab6b2ce6461863c96f (
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
|
other: 0.920
graphic: 0.823
performance: 0.821
socket: 0.786
device: 0.766
PID: 0.735
files: 0.723
debug: 0.686
boot: 0.669
network: 0.658
semantic: 0.582
permissions: 0.580
vnc: 0.569
KVM: 0.501
qemu --static user build fails with fedora rawhide glibc-2.30.9000
Building qemu latest git 654efcb511d on fedora rawhide fails with this configure line:
./configure \
--static \
--disable-system \
--enable-linux-user \
--disable-werror \
--disable-tools \
--disable-capstone
make fails with:
/usr/bin/ld: linux-user/syscall.o: in function `do_syscall1':
/root/qemu.git/linux-user/syscall.c:7769: undefined reference to `stime'
collect2: error: ld returned 1 exit status
Seems related to this glibc change: https://sourceware.org/git/?p=glibc.git;a=commit;h=12cbde1dae6fa4a9a792b64564c7e0debf7544cc
...
+* The obsolete function stime is no longer available to newly linked
+ binaries and it has been removed from <time.h> header. This function
+ has been deprecated in favor of clock_settime.
+
# rpm -q glibc
glibc-2.30.9000-17.fc32.x86_64
FWIW there's some other messages but I don't think they are fatal:
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64/libglib-2.0.a(gutils.c.o): in function `g_get_user_database_entry':
(.text+0x267): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: (.text+0xe0): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: (.text+0x11e): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
Also, --disable-capstone is required to avoid this error, but it is pre-existing, not sure if it's a bug, if so I can file a separate one:
LINK aarch64-linux-user/qemu-aarch64
/usr/bin/ld: cannot find -lcapstone
collect2: error: ld returned 1 exit status
We use stime() to implement the target stime syscall. We should probably switch to using clock_settime(CLOCK_REALTIME, ...) instead, as that's what glibc uses internally now to implement its stime():
https://sourceware.org/git/?p=glibc.git;a=blob;f=time/stime.c;h=6ea3b6dcc1a393b57b69ca24fbfe8023d9095837;hb=12cbde1dae6fa4a9a792b64564c7e0debf7544cc
Fixed by 0f1f2d4596ae ("linux-user: remove host stime() syscall")
|