Replace -lpthread with -pthread on riscv64

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
David Abdurachmanov 2023-03-30 08:24:16 +03:00
parent c90eb37749
commit 41d2b0f299
Signed by: davidlt
GPG Key ID: 8B7F1DA0E2C9FDBB
2 changed files with 226 additions and 1 deletions

213
pthread-riscv64.patch Normal file
View File

@ -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<int> 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": {

View File

@ -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 <davidlt@rivosinc.com> - 5.15.8-10.0.riscv64
- Replace -lpthread with -pthread on riscv64 (libatomic)
* Wed Mar 29 2023 Than Ngo <than@redhat.com> - 5.15.8-10
- Related bz#2179854, Qt 5 render the Bold style CJK character very thick
with Noto CJK variable fonts