$ git diff --patch-with-stat --summary 4f75336d8fe8ad2264bacdf7c6a394902e9bb345..4f1ce9bec7d29d4b5e5cd7885feaf8d82e1895f9
.abf.yml | 2 +-
gnutls-3.8.0-clang.patch | 99 +++++++++++++++++++++++++++++-------------------
gnutls.spec | 46 ++++++----------------
3 files changed, 72 insertions(+), 75 deletions(-)
diff --git a/.abf.yml b/.abf.yml
index 678bea6..e0761e7 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
sources:
- gnutls-3.8.0.tar.xz: b7be709fefed484fc9044081961eb096e4c17d99
+ gnutls-3.8.3.tar.xz: 806156ac9563caab642d6274496b9cc5b2117612
diff --git a/gnutls-3.8.0-clang.patch b/gnutls-3.8.0-clang.patch
index 4e4c5a8..8ae57cf 100644
--- a/gnutls-3.8.0-clang.patch
+++ b/gnutls-3.8.0-clang.patch
@@ -1,18 +1,18 @@
-diff -up gnutls-3.8.0/config.h.in.2~ gnutls-3.8.0/config.h.in
---- gnutls-3.8.0/config.h.in.2~ 2023-02-09 15:56:16.000000000 +0100
-+++ gnutls-3.8.0/config.h.in 2023-02-11 18:40:50.379485967 +0100
-@@ -2317,7 +2317,7 @@
- _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+diff -up gnutls-3.8.1/config.h.in.2~ gnutls-3.8.1/config.h.in
+--- gnutls-3.8.1/config.h.in.2~ 2023-08-05 00:13:18.350065392 +0200
++++ gnutls-3.8.1/config.h.in 2023-08-05 00:14:00.306460767 +0200
+@@ -2362,7 +2362,7 @@
can be freed via 'free'; it can be used only after declaring 'free'. */
/* Applies to: functions. Cannot be used on inline functions. */
--#if _GL_GNUC_PREREQ (11, 0)
-+#if _GL_GNUC_PREREQ (11, 0) && !defined(__clang__)
- # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
- #else
- # define _GL_ATTRIBUTE_DEALLOC(f, i)
-diff -up gnutls-3.8.0/gl/stdio.in.h.2~ gnutls-3.8.0/gl/stdio.in.h
---- gnutls-3.8.0/gl/stdio.in.h.2~ 2023-02-09 15:54:17.000000000 +0100
-+++ gnutls-3.8.0/gl/stdio.in.h 2023-02-11 18:30:39.001238462 +0100
+ #ifndef _GL_ATTRIBUTE_DEALLOC
+-# if _GL_GNUC_PREREQ (11, 0)
++# if _GL_GNUC_PREREQ (11, 0) && !defined(__clang__)
+ # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+ # else
+ # define _GL_ATTRIBUTE_DEALLOC(f, i)
+diff -up gnutls-3.8.1/gl/stdio.in.h.2~ gnutls-3.8.1/gl/stdio.in.h
+--- gnutls-3.8.1/gl/stdio.in.h.2~ 2023-08-04 10:07:49.000000000 +0200
++++ gnutls-3.8.1/gl/stdio.in.h 2023-08-05 00:13:18.350065392 +0200
@@ -95,7 +95,7 @@
that can be freed by passing them as the Ith argument to the
function F. */
@@ -22,10 +22,10 @@ diff -up gnutls-3.8.0/gl/stdio.in.h.2~ gnutls-3.8.0/gl/stdio.in.h
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
# else
# define _GL_ATTRIBUTE_DEALLOC(f, i)
-diff -up gnutls-3.8.0/gl/string.in.h.2~ gnutls-3.8.0/gl/string.in.h
---- gnutls-3.8.0/gl/string.in.h.2~ 2023-02-09 15:54:17.000000000 +0100
-+++ gnutls-3.8.0/gl/string.in.h 2023-02-11 18:30:39.001238462 +0100
-@@ -71,7 +71,7 @@
+diff -up gnutls-3.8.1/gl/string.in.h.2~ gnutls-3.8.1/gl/string.in.h
+--- gnutls-3.8.1/gl/string.in.h.2~ 2023-08-04 10:07:49.000000000 +0200
++++ gnutls-3.8.1/gl/string.in.h 2023-08-05 00:13:18.350065392 +0200
+@@ -72,7 +72,7 @@
that can be freed by passing them as the Ith argument to the
function F. */
#ifndef _GL_ATTRIBUTE_DEALLOC
@@ -34,9 +34,9 @@ diff -up gnutls-3.8.0/gl/string.in.h.2~ gnutls-3.8.0/gl/string.in.h
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
# else
# define _GL_ATTRIBUTE_DEALLOC(f, i)
-diff -up gnutls-3.8.0/gl/wchar.in.h.2~ gnutls-3.8.0/gl/wchar.in.h
---- gnutls-3.8.0/gl/wchar.in.h.2~ 2023-02-09 15:54:17.000000000 +0100
-+++ gnutls-3.8.0/gl/wchar.in.h 2023-02-11 18:30:39.001238462 +0100
+diff -up gnutls-3.8.1/gl/wchar.in.h.2~ gnutls-3.8.1/gl/wchar.in.h
+--- gnutls-3.8.1/gl/wchar.in.h.2~ 2023-08-04 10:07:49.000000000 +0200
++++ gnutls-3.8.1/gl/wchar.in.h 2023-08-05 00:13:18.350065392 +0200
@@ -88,7 +88,7 @@
that can be freed by passing them as the Ith argument to the
function F. */
@@ -46,10 +46,22 @@ diff -up gnutls-3.8.0/gl/wchar.in.h.2~ gnutls-3.8.0/gl/wchar.in.h
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
# else
# define _GL_ATTRIBUTE_DEALLOC(f, i)
-diff -up gnutls-3.8.0/src/gl/string.in.h.2~ gnutls-3.8.0/src/gl/string.in.h
---- gnutls-3.8.0/src/gl/string.in.h.2~ 2023-02-09 15:55:13.000000000 +0100
-+++ gnutls-3.8.0/src/gl/string.in.h 2023-02-11 18:30:39.001238462 +0100
-@@ -71,7 +71,7 @@
+diff -up gnutls-3.8.1/m4/gnulib-common.m4.2~ gnutls-3.8.1/m4/gnulib-common.m4
+--- gnutls-3.8.1/m4/gnulib-common.m4.2~ 2023-08-05 00:13:18.350065392 +0200
++++ gnutls-3.8.1/m4/gnulib-common.m4 2023-08-05 00:14:20.886654880 +0200
+@@ -194,7 +194,7 @@ AC_DEFUN([gl_COMMON_BODY], [
+ can be freed via 'free'; it can be used only after declaring 'free'. */
+ /* Applies to: functions. Cannot be used on inline functions. */
+ #ifndef _GL_ATTRIBUTE_DEALLOC
+-# if _GL_GNUC_PREREQ (11, 0)
++# if _GL_GNUC_PREREQ (11, 0) && !defined(__clang__)
+ # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+ # else
+ # define _GL_ATTRIBUTE_DEALLOC(f, i)
+diff -up gnutls-3.8.1/src/gl/string.in.h.2~ gnutls-3.8.1/src/gl/string.in.h
+--- gnutls-3.8.1/src/gl/string.in.h.2~ 2023-08-04 10:08:39.000000000 +0200
++++ gnutls-3.8.1/src/gl/string.in.h 2023-08-05 00:13:18.350065392 +0200
+@@ -72,7 +72,7 @@
that can be freed by passing them as the Ith argument to the
function F. */
#ifndef _GL_ATTRIBUTE_DEALLOC
@@ -58,9 +70,9 @@ diff -up gnutls-3.8.0/src/gl/string.in.h.2~ gnutls-3.8.0/src/gl/string.in.h
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
# else
# define _GL_ATTRIBUTE_DEALLOC(f, i)
-diff -up gnutls-3.8.0/src/gl/wchar.in.h.2~ gnutls-3.8.0/src/gl/wchar.in.h
---- gnutls-3.8.0/src/gl/wchar.in.h.2~ 2023-02-09 15:55:15.000000000 +0100
-+++ gnutls-3.8.0/src/gl/wchar.in.h 2023-02-11 18:30:39.002238764 +0100
+diff -up gnutls-3.8.1/src/gl/wchar.in.h.2~ gnutls-3.8.1/src/gl/wchar.in.h
+--- gnutls-3.8.1/src/gl/wchar.in.h.2~ 2023-08-04 10:08:40.000000000 +0200
++++ gnutls-3.8.1/src/gl/wchar.in.h 2023-08-05 00:13:18.350065392 +0200
@@ -88,7 +88,7 @@
that can be freed by passing them as the Ith argument to the
function F. */
@@ -70,15 +82,24 @@ diff -up gnutls-3.8.0/src/gl/wchar.in.h.2~ gnutls-3.8.0/src/gl/wchar.in.h
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
# else
# define _GL_ATTRIBUTE_DEALLOC(f, i)
-diff -up gnutls-3.8.0/m4/gnulib-common.m4.omv~ gnutls-3.8.0/m4/gnulib-common.m4
---- gnutls-3.8.0/m4/gnulib-common.m4.omv~ 2023-02-11 18:56:39.642181406 +0100
-+++ gnutls-3.8.0/m4/gnulib-common.m4 2023-02-11 18:56:56.002047724 +0100
-@@ -182,7 +182,7 @@ AC_DEFUN([gl_COMMON_BODY], [
- _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
- can be freed via 'free'; it can be used only after declaring 'free'. */
- /* Applies to: functions. Cannot be used on inline functions. */
--#if _GL_GNUC_PREREQ (11, 0)
-+#if _GL_GNUC_PREREQ (11, 0) && !defined(__clang__)
- # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
- #else
- # define _GL_ATTRIBUTE_DEALLOC(f, i)
+diff -up gnutls-3.8.1/src/gl/c++defs.h.omv~ gnutls-3.8.1/src/gl/c++defs.h
+--- gnutls-3.8.1/src/gl/c++defs.h.omv~ 2023-08-05 00:29:52.107758195 +0200
++++ gnutls-3.8.1/src/gl/c++defs.h 2023-08-05 00:30:37.452211686 +0200
+@@ -279,7 +279,7 @@
+ causes a warning to be emitted when ::func is used but not when
+ GNULIB_NAMESPACE::func is used. func must be defined without overloaded
+ variants. */
+-#if defined __cplusplus && defined GNULIB_NAMESPACE
++#if defined __cplusplus && defined GNULIB_NAMESPACE && !defined(__clang__)
+ # define _GL_CXXALIASWARN(func) \
+ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
+ # define _GL_CXXALIASWARN_1(func,namespace) \
+@@ -306,7 +306,7 @@
+ /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
+ causes a warning to be emitted when the given overloaded variant of ::func
+ is used but not when GNULIB_NAMESPACE::func is used. */
+-#if defined __cplusplus && defined GNULIB_NAMESPACE
++#if defined __cplusplus && defined GNULIB_NAMESPACE && !defined(__clang__)
+ # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
+ GNULIB_NAMESPACE)
diff --git a/gnutls.spec b/gnutls.spec
index e4ec164..56f700f 100644
--- a/gnutls.spec
+++ b/gnutls.spec
@@ -27,16 +27,22 @@
%define sdev32name %mklib32name %{name} -d -s
# (tpg) enable PGO build
+%if ! %{cross_compiling}
%bcond_without pgo
-
-%ifarch %{ix86}
-%global ldflags %{ldflags} -Wl,-z,notext
+%else
+%bcond_with pgo
+# Workaround for libtool being a mess and adding -rpath /usr/lib64
+%define prefer_gcc 1
%endif
+# autoconf's check for symbol versioning is broken and doesn't recognize
+# working symbol versioning with lld 17's (better) defaults
+%global build_ldflags %{build_ldflags} -Wl,--undefined-version
+
Summary: Library providing a secure layer (SSL)
Name: gnutls
-Version: 3.8.0
-Release: 3
+Version: 3.8.3
+Release: 1
License: GPLv2+ and LGPLv2+
Group: System/Libraries
Url: http://www.gnutls.org
@@ -288,36 +294,6 @@ EOF
%find_lang %{name}
-# (tpg) strip LTO from "LLVM IR bitcode" files
-check_convert_bitcode() {
- printf '%s\n' "Checking for LLVM IR bitcode"
- llvm_file_name=$(realpath ${1})
- llvm_file_type=$(file ${llvm_file_name})
-
- if printf '%s\n' "${llvm_file_type}" | grep -q "LLVM IR bitcode"; then
-# recompile without LTO
- clang %{optflags} -fno-lto -Wno-unused-command-line-argument -x ir ${llvm_file_name} -c -o ${llvm_file_name}
- elif printf '%s\n' "${llvm_file_type}" | grep -q "current ar archive"; then
- printf '%s\n' "Unpacking ar archive ${llvm_file_name} to check for LLVM bitcode components."
-# create archive stage for objects
- archive_stage=$(mktemp -d)
- archive=${llvm_file_name}
- cd ${archive_stage}
- ar x ${archive}
- for archived_file in $(find -not -type d); do
- check_convert_bitcode ${archived_file}
- printf '%s\n' "Repacking ${archived_file} into ${archive}."
- ar r ${archive} ${archived_file}
- done
- ranlib ${archive}
- cd ..
- fi
-}
-
-for i in $(find %{buildroot} -type f -name "*.[ao]"); do
- check_convert_bitcode ${i}
-done
-
%files
%doc %{_docdir}/%{name}
%{_bindir}/[cgs]*