1*4882a593SmuzhiyunFrom e9d1f80dffb4e29e44fc0b0627704af15cdd281a Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3*4882a593SmuzhiyunDate: Sun, 13 Mar 2022 12:05:04 +0100
4*4882a593SmuzhiyunSubject: [PATCH] src/corelib/configure.json: fix atomicfptr detection
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunFix atomicfptr detection on sparc v8 by linking with libatomic if needed
7*4882a593Smuzhiyunto avoid the following build failure:
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/sysroot -std=gnu++11 -w -fPIC  -I. -I/home/peko/autobuild/instance-0/output-1/build/qt5base-d16bf02a11953dcac01dca73e6f3778f293adefe/mkspecs/devices/linux-buildroot-g++ -o main.o main.cpp
10*4882a593Smuzhiyun> /home/peko/autobuild/instance-0/output-1/host/bin/sparc-linux-g++ --sysroot=/home/peko/autobuild/instance-0/output-1/host/sparc-buildroot-linux-uclibc/sysroot --sysroot=/home/peko/autobuild/instance-0/output-1/host/sparc-buildroot-linux-uclibc/sysroot -Wl,-O1 -o atomicfptr main.o   -lexecinfo  -lrt -lpthread -ldl
11*4882a593Smuzhiyun> /home/peko/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: main.o: in function `test(std::atomic<void (*)(int)> volatile&)':
12*4882a593Smuzhiyun> main.cpp:(.text+0x40): undefined reference to `__atomic_compare_exchange_4'
13*4882a593Smuzhiyun> collect2: error: ld returned 1 exit status
14*4882a593Smuzhiyun> make[1]: *** [Makefile:69: atomicfptr] Error 1
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun[...]
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunERROR: detected a std::atomic implementation that fails for function pointers.
19*4882a593SmuzhiyunPlease apply the patch corresponding to your Standard Library vendor, found in
20*4882a593Smuzhiyun  qtbase/config.tests/atomicfptr
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunFixes:
23*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/5a20e984a5536165056b3fbd93b8712e8ddbeed4
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
26*4882a593Smuzhiyun[Upstream status:
27*4882a593Smuzhiyunhttps://invent.kde.org/qt/qt/qtbase/-/merge_requests/138]
28*4882a593Smuzhiyun---
29*4882a593Smuzhiyun src/corelib/configure.json | 3 ++-
30*4882a593Smuzhiyun 1 file changed, 2 insertions(+), 1 deletion(-)
31*4882a593Smuzhiyun
32*4882a593Smuzhiyundiff --git a/src/corelib/configure.json b/src/corelib/configure.json
33*4882a593Smuzhiyunindex 9b5d19d41b..ac88f5856c 100644
34*4882a593Smuzhiyun--- a/src/corelib/configure.json
35*4882a593Smuzhiyun+++ b/src/corelib/configure.json
36*4882a593Smuzhiyun@@ -309,7 +309,8 @@
37*4882a593Smuzhiyun                     "test(fptr);"
38*4882a593Smuzhiyun                 ],
39*4882a593Smuzhiyun                 "qmake": "CONFIG += c++11"
40*4882a593Smuzhiyun-            }
41*4882a593Smuzhiyun+            },
42*4882a593Smuzhiyun+            "use": "libatomic"
43*4882a593Smuzhiyun         },
44*4882a593Smuzhiyun         "clock-monotonic": {
45*4882a593Smuzhiyun             "label": "POSIX monotonic clock",
46*4882a593Smuzhiyun--
47*4882a593Smuzhiyun2.34.1
48*4882a593Smuzhiyun
49