Fix compilation error on rawhide for gettid() compat implementation

This commit is contained in:
Thomas Haller 2019-03-11 18:22:03 +01:00
parent 6cdec870c5
commit b19e5ac269
2 changed files with 58 additions and 1 deletions

View File

@ -0,0 +1,53 @@
From cff233001de6fe9f53cff3f7e7cb9f3ea21c6b15 Mon Sep 17 00:00:00 2001
From: Thomas Haller <thaller@redhat.com>
Date: Mon, 11 Mar 2019 18:11:13 +0100
Subject: [PATCH 1/1] shared/systemd: fix gettid() compat implementation
shadowing function from glibc
On Fedora rawhide we get the following build failure:
In file included from shared/systemd/src/basic/alloc-util.c:3:
./shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h:114:21: error: static declaration of 'gettid' follows non-static declaration
114 | static inline pid_t gettid(void) {
| ^~~~~~
In file included from /usr/include/unistd.h:1170,
from /usr/include/glib-2.0/gio/gcredentials.h:32,
from /usr/include/glib-2.0/gio/gio.h:46,
from ./shared/nm-utils/nm-macros-internal.h:31,
from ./shared/nm-default.h:293,
from ./shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h:22,
from shared/systemd/src/basic/alloc-util.c:3:
/usr/include/bits/unistd_ext.h:34:16: note: previous declaration of 'gettid' was here
34 | extern __pid_t gettid (void) __THROW;
| ^~~~~~
glibc supports now gettid() call ([1]) which conflicts with our compat
implementation. Rename it.
[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92
(cherry picked from commit 10276322bde8f015e48ac06f6a7509f514eb46f0)
(cherry picked from commit cfb970b2778d7bde97fea4f5718d4a2a9a9d68f5)
---
shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h b/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h
index 06008ce86..b10722d71 100644
--- a/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h
+++ b/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h
@@ -111,9 +111,10 @@ raw_getpid (void) {
#endif
}
-static inline pid_t gettid(void) {
+static inline pid_t _nm_gettid(void) {
return (pid_t) syscall(SYS_gettid);
}
+#define gettid() _nm_gettid ()
/* we build with C11 and thus <uchar.h> provides char32_t,char16_t. */
#define HAVE_CHAR32_T 1
--
2.20.1

View File

@ -10,7 +10,7 @@
%global epoch_version 1
%global rpm_version 1.16.0
%global real_version 1.15.91
%global release_version 0.2
%global release_version 0.3
%global snapshot %{nil}
%global git_sha %{nil}
@ -112,6 +112,7 @@ Source4: 20-connectivity-fedora.conf
Source5: 20-connectivity-redhat.conf
#Patch1: 0001-some.patch
Patch1: 0001-shared-systemd-fix-gettid-compat-implementation-shad.patch
Requires(post): systemd
Requires(post): /usr/sbin/update-alternatives
@ -1003,6 +1004,9 @@ fi
%changelog
* Mon Mar 11 2019 Thomas Haller <thaller@redhat.com> - 1:1.16.0-0.3
- Fix compilation error on rawhide for gettid() compat implementation
* Mon Mar 11 2019 Thomas Haller <thaller@redhat.com> - 1:1.16.0-0.2
- Update to 1.15.91 release (1.16-rc2)