Replace -lpthread with -pthread on riscv64

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
David Abdurachmanov 2022-10-10 13:17:38 +03:00
parent 4b0828cd94
commit 91f422d8bc
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 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<int> 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": {

View File

@ -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 <davidlt@rivosinc.com> - 5.15.6-1.0.riscv64
- Replace -lpthread with -pthread on riscv64 (libatomic)
* Tue Sep 20 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.6-1
- 5.15.6