From 91f422d8bc6290672ab06c70efeddfb760c68331 Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Mon, 10 Oct 2022 13:17:38 +0300 Subject: [PATCH] Replace -lpthread with -pthread on riscv64 Signed-off-by: David Abdurachmanov --- pthread-riscv64.patch | 213 ++++++++++++++++++++++++++++++++++++++++++ qt5-qtbase.spec | 14 ++- 2 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 pthread-riscv64.patch diff --git a/pthread-riscv64.patch b/pthread-riscv64.patch new file mode 100644 index 0000000..32cce3e --- /dev/null +++ b/pthread-riscv64.patch @@ -0,0 +1,213 @@ +diff --git a/mkspecs/aix-g++-64/qmake.conf b/mkspecs/aix-g++-64/qmake.conf +index 7f620a9..2126732 100644 +--- a/mkspecs/aix-g++-64/qmake.conf ++++ b/mkspecs/aix-g++-64/qmake.conf +@@ -62,7 +62,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 -lm + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthreads ++QMAKE_LIBS_THREAD = -pthreads + + QMAKE_AR = ar -X64 cq + QMAKE_OBJCOPY = objcopy +diff --git a/mkspecs/aix-g++/qmake.conf b/mkspecs/aix-g++/qmake.conf +index d2f26a1..2183bf3 100644 +--- a/mkspecs/aix-g++/qmake.conf ++++ b/mkspecs/aix-g++/qmake.conf +@@ -62,7 +62,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 -lm + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthreads ++QMAKE_LIBS_THREAD = -pthreads + + QMAKE_AR = ar cqs + QMAKE_OBJCOPY = objcopy +diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf +index 544cc22..add969b 100644 +--- a/mkspecs/common/linux.conf ++++ b/mkspecs/common/linux.conf +@@ -33,7 +33,7 @@ QMAKE_LIBS_EGL = -lEGL + QMAKE_LIBS_OPENGL = -lGL + QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 + QMAKE_LIBS_OPENVG = -lOpenVG +-QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_THREAD = -pthread + QMAKE_LIBS_VULKAN = + + QMAKE_INCDIR_WAYLAND = +diff --git a/mkspecs/common/solaris.conf b/mkspecs/common/solaris.conf +index d217662..1c9ae6e 100644 +--- a/mkspecs/common/solaris.conf ++++ b/mkspecs/common/solaris.conf +@@ -21,7 +21,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthread -lrt ++QMAKE_LIBS_THREAD = -pthread -lrt + QMAKE_LIBS_NETWORK = -lresolv -lsocket -lxnet -lnsl + + QMAKE_AR = ar cq +diff --git a/mkspecs/cygwin-g++/qmake.conf b/mkspecs/cygwin-g++/qmake.conf +index a4f64d9..d594774 100644 +--- a/mkspecs/cygwin-g++/qmake.conf ++++ b/mkspecs/cygwin-g++/qmake.conf +@@ -61,7 +61,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_THREAD = -pthread + QMAKE_PREFIX_SHLIB = lib + QMAKE_EXTENSION_SHLIB = dll + QMAKE_PREFIX_STATICLIB = lib +diff --git a/mkspecs/devices/linux-archos-gen8-g++/qmake.conf b/mkspecs/devices/linux-archos-gen8-g++/qmake.conf +index 66662f9..a93e4f9 100644 +--- a/mkspecs/devices/linux-archos-gen8-g++/qmake.conf ++++ b/mkspecs/devices/linux-archos-gen8-g++/qmake.conf +@@ -41,7 +41,7 @@ QMAKE_CFLAGS += $${COMPILER_FLAGS} + QMAKE_CXXFLAGS += $${COMPILER_FLAGS} + QMAKE_CXXFLAGS_RELEASE += -O3 + +-QMAKE_LIBS += -lrt -lpthread -ldl ++QMAKE_LIBS += -lrt -pthread -ldl + + # Extra stuff (OpenGL, DirectFB, ...) + QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/usr/include +diff --git a/mkspecs/devices/linux-beagleboard-g++/qmake.conf b/mkspecs/devices/linux-beagleboard-g++/qmake.conf +index 604da50..9dbf82c 100644 +--- a/mkspecs/devices/linux-beagleboard-g++/qmake.conf ++++ b/mkspecs/devices/linux-beagleboard-g++/qmake.conf +@@ -33,7 +33,7 @@ QMAKE_CFLAGS += $${COMPILER_FLAGS} + QMAKE_CXXFLAGS += $${COMPILER_FLAGS} + QMAKE_CXXFLAGS_RELEASE += -O3 + +-QMAKE_LIBS += -lrt -lpthread -ldl ++QMAKE_LIBS += -lrt -pthread -ldl + + # Extra stuff (OpenGL, DirectFB, ...) + QMAKE_INCDIR_EGL = +diff --git a/mkspecs/hpuxi-g++-64/qmake.conf b/mkspecs/hpuxi-g++-64/qmake.conf +index 4c376de..0a3ec98 100644 +--- a/mkspecs/hpuxi-g++-64/qmake.conf ++++ b/mkspecs/hpuxi-g++-64/qmake.conf +@@ -62,7 +62,7 @@ QMAKE_LFLAGS_DEBUG = + QMAKE_LFLAGS_SHLIB = -fPIC -shared + QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB + QMAKE_LFLAGS_SONAME = -Wl,+h, +-QMAKE_LFLAGS_THREAD = -lpthread ++QMAKE_LFLAGS_THREAD = -pthread + QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats + QMAKE_LFLAGS_RPATH = -Wl,+b, + +@@ -70,7 +70,7 @@ QMAKE_LIBS = -lm + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_THREAD = -pthread + QMAKE_LIBS_YACC = -ly + + QMAKE_AR = ar cqs +diff --git a/mkspecs/hurd-g++/qmake.conf b/mkspecs/hurd-g++/qmake.conf +index f701755..ba40b0b 100644 +--- a/mkspecs/hurd-g++/qmake.conf ++++ b/mkspecs/hurd-g++/qmake.conf +@@ -33,7 +33,7 @@ QMAKE_LIBS_EGL = -lEGL + QMAKE_LIBS_OPENGL = -lGL + QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 + QMAKE_LIBS_OPENVG = -lOpenVG +-QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_THREAD = -pthread + + QMAKE_AR = ar cqs + QMAKE_OBJCOPY = objcopy +diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf +index 09f897d..7832366 100644 +--- a/mkspecs/linux-icc/qmake.conf ++++ b/mkspecs/linux-icc/qmake.conf +@@ -38,7 +38,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 -lm + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_THREAD = -pthread + + QMAKE_AR = xiar cqs + QMAKE_OBJCOPY = objcopy +diff --git a/mkspecs/lynxos-g++/qmake.conf b/mkspecs/lynxos-g++/qmake.conf +index 1a44d93..8b2de6c 100644 +--- a/mkspecs/lynxos-g++/qmake.conf ++++ b/mkspecs/lynxos-g++/qmake.conf +@@ -65,7 +65,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 -lm + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_THREAD = -pthread + + QMAKE_AR = ar cqs + QMAKE_OBJCOPY = objcopy +diff --git a/mkspecs/solaris-cc-64/qmake.conf b/mkspecs/solaris-cc-64/qmake.conf +index e2317de..f6cc9aa 100644 +--- a/mkspecs/solaris-cc-64/qmake.conf ++++ b/mkspecs/solaris-cc-64/qmake.conf +@@ -81,7 +81,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthread -lrt ++QMAKE_LIBS_THREAD = -pthread -lrt + QMAKE_LIBS_NETWORK = -lresolv -lsocket -lxnet -lnsl + + QMAKE_AR = CC -xar -o +diff --git a/mkspecs/solaris-cc/qmake.conf b/mkspecs/solaris-cc/qmake.conf +index 1a711e7..af1a142 100644 +--- a/mkspecs/solaris-cc/qmake.conf ++++ b/mkspecs/solaris-cc/qmake.conf +@@ -64,7 +64,7 @@ QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl + QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl + QMAKE_LIBS_OPENGL = -lGL +-QMAKE_LIBS_THREAD = -lpthread -lrt ++QMAKE_LIBS_THREAD = -pthread -lrt + QMAKE_LIBS_NETWORK = -lresolv -lsocket -lxnet -lnsl + + QMAKE_AR = CC -xar -o +diff --git a/mkspecs/unsupported/linux-host-g++/qmake.conf b/mkspecs/unsupported/linux-host-g++/qmake.conf +index 7853ade..b73763d 100644 +--- a/mkspecs/unsupported/linux-host-g++/qmake.conf ++++ b/mkspecs/unsupported/linux-host-g++/qmake.conf +@@ -102,7 +102,7 @@ QMAKE_LIBS_EGL = -lEGL + QMAKE_LIBS_OPENGL = -lGL + QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 + QMAKE_LIBS_OPENVG = -lOpenVG +-QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_THREAD = -pthread + + QMAKE_AR = host-ar cqs + QMAKE_OBJCOPY = host-objcopy +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index 74c7181..9f957bd 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -355,7 +355,7 @@ + "std::future f = std::async([]() { return 42; });", + "(void)f.get();" + ], +- "qmake": "unix:LIBS += -lpthread" ++ "qmake": "unix:LIBS += -pthread" + } + }, + "cxx11_random": { +@@ -466,7 +466,7 @@ + "shm_open(\"test\", O_RDWR | O_CREAT | O_EXCL, 0666);", + "shm_unlink(\"test\");" + ], +- "qmake": "linux: LIBS += -lpthread -lrt" ++ "qmake": "linux: LIBS += -pthread -lrt" + } + }, + "linkat": { diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 9dcaa7f..f692eaa 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -61,7 +61,7 @@ BuildRequires: pkgconfig(libsystemd) Name: qt5-qtbase Summary: Qt5 - QtBase components Version: 5.15.6 -Release: 1%{?dist} +Release: 1.0.riscv64%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -146,6 +146,10 @@ Source100: kde-5.15-rollup-20220920.patch.gz # CVS-2021-38593 Patch101: qtbase-everywhere-src-5.15.4-cve-2021-38593.patch +# riscv64, libatomic issue, sub-word atomics need libatomic +# -pthread links that by default via GCC spec +Patch300: pthread-riscv64.patch + # Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires. # Those themes are there for platform integration. If the required libraries are # not there, the platform to integrate with isn't either. Then Qt will just @@ -421,6 +425,11 @@ Qt5 libraries used for drawing widgets and OpenGL items. %patch100 -p1 %patch101 -p1 +#riscv64 +%ifarch riscv64 +%patch300 -p1 -b .riscv_libatomic +%endif + # move some bundled libs to ensure they're not accidentally used pushd src/3rdparty mkdir UNUSED @@ -1097,6 +1106,9 @@ fi %changelog +* Mon Oct 10 2022 David Abdurachmanov - 5.15.6-1.0.riscv64 +- Replace -lpthread with -pthread on riscv64 (libatomic) + * Tue Sep 20 2022 Jan Grulich - 5.15.6-1 - 5.15.6