From 41d2b0f299d18e93d9d0eaf5b89d5b48664d617e Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Thu, 30 Mar 2023 08:24:16 +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..284bc41 --- /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 7f620a95..21267325 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 d2f26a1b..2183bf37 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 544cc227..add969be 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 d2176628..1c9ae6ef 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 a4f64d9c..d594774f 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 66662f90..a93e4f98 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 604da50f..9dbf82c7 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 4c376de7..0a3ec98c 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 f701755f..ba40b0b5 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 09f897d0..78323668 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 1a44d932..8b2de6c9 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 e2317de3..f6cc9aa4 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 1a711e75..af1a142c 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 7853ade8..b73763d1 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 a9025a2d..89a69462 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:!vxworks:LIBS += -lpthread" ++ "qmake": "unix:!vxworks: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 2478b42..4381cde 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -57,7 +57,7 @@ Name: qt5-qtbase Summary: Qt5 - QtBase components Version: 5.15.8 -Release: 10%{?dist} +Release: 10.0.riscv64%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0 @@ -151,6 +151,10 @@ Patch101: qtbase-5.15.8-fix-missing-qtsan-include.patch Patch102: qtbase-QTBUG-111994.patch Patch103: qtbase-QTBUG-112136.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 @@ -429,6 +433,11 @@ Qt5 libraries used for drawing widgets and OpenGL items. %patch -P102 -p1 %patch -P103 -p1 +#riscv64 +%ifarch riscv64 +%patch -P300 -p1 -b .riscv_libatomic +%endif + # move some bundled libs to ensure they're not accidentally used pushd src/3rdparty mkdir UNUSED @@ -1107,6 +1116,9 @@ fi %changelog +* Thu Mar 30 2023 David Abdurachmanov - 5.15.8-10.0.riscv64 +- Replace -lpthread with -pthread on riscv64 (libatomic) + * Wed Mar 29 2023 Than Ngo - 5.15.8-10 - Related bz#2179854, Qt 5 render the Bold style CJK character very thick with Noto CJK variable fonts