From 0727cc1c28b90eb887b997b363941e0c709ed46b Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 12 Jan 2017 22:27:13 +0100 Subject: [PATCH] fix build failure due to clash of bitwise defines Also fixup the changelog for past release versions. --- 0001-bitwise-clash.patch | 91 ++++++++++++++++++++++++++++++++++++++++ NetworkManager.spec | 13 +++--- 2 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 0001-bitwise-clash.patch diff --git a/0001-bitwise-clash.patch b/0001-bitwise-clash.patch new file mode 100644 index 0000000..8da1a94 --- /dev/null +++ b/0001-bitwise-clash.patch @@ -0,0 +1,91 @@ +From 2ed092d05591e76247bad17bb4d62fe509c38e90 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Tue, 10 Jan 2017 20:10:19 +0100 +Subject: [PATCH 1/1] sparse: avoid clash with __bitwise and __force from 4.10 + linux/types.h + +It also used __bitwise and __force. It seems easier to rename +our versions since they are local to this one single header. + +Also, undefine them afteerwards, so that we don't pollute the +preprocessor macro namespace. + +https://github.com/systemd/systemd/pull/5061 +(cherry picked from commit 13b2ac2214cb56264fc1e9b96e4ed4382da2db78) +--- + src/systemd/src/basic/sparse-endian.h | 47 +++++++++++++++++++---------------- + 1 file changed, 25 insertions(+), 22 deletions(-) + +diff --git a/src/systemd/src/basic/sparse-endian.h b/src/systemd/src/basic/sparse-endian.h +index c913fda..a3573b8 100644 +--- a/src/systemd/src/basic/sparse-endian.h ++++ b/src/systemd/src/basic/sparse-endian.h +@@ -26,19 +26,19 @@ + #include + + #ifdef __CHECKER__ +-#define __bitwise __attribute__((bitwise)) +-#define __force __attribute__((force)) ++#define __sd_bitwise __attribute__((bitwise)) ++#define __sd_force __attribute__((force)) + #else +-#define __bitwise +-#define __force ++#define __sd_bitwise ++#define __sd_force + #endif + +-typedef uint16_t __bitwise le16_t; +-typedef uint16_t __bitwise be16_t; +-typedef uint32_t __bitwise le32_t; +-typedef uint32_t __bitwise be32_t; +-typedef uint64_t __bitwise le64_t; +-typedef uint64_t __bitwise be64_t; ++typedef uint16_t __sd_bitwise le16_t; ++typedef uint16_t __sd_bitwise be16_t; ++typedef uint32_t __sd_bitwise le32_t; ++typedef uint32_t __sd_bitwise be32_t; ++typedef uint64_t __sd_bitwise le64_t; ++typedef uint64_t __sd_bitwise be64_t; + + #undef htobe16 + #undef htole16 +@@ -69,20 +69,23 @@ typedef uint64_t __bitwise be64_t; + #define bswap_64_on_be(x) __bswap_64(x) + #endif + +-static inline le16_t htole16(uint16_t value) { return (le16_t __force) bswap_16_on_be(value); } +-static inline le32_t htole32(uint32_t value) { return (le32_t __force) bswap_32_on_be(value); } +-static inline le64_t htole64(uint64_t value) { return (le64_t __force) bswap_64_on_be(value); } ++static inline le16_t htole16(uint16_t value) { return (le16_t __sd_force) bswap_16_on_be(value); } ++static inline le32_t htole32(uint32_t value) { return (le32_t __sd_force) bswap_32_on_be(value); } ++static inline le64_t htole64(uint64_t value) { return (le64_t __sd_force) bswap_64_on_be(value); } + +-static inline be16_t htobe16(uint16_t value) { return (be16_t __force) bswap_16_on_le(value); } +-static inline be32_t htobe32(uint32_t value) { return (be32_t __force) bswap_32_on_le(value); } +-static inline be64_t htobe64(uint64_t value) { return (be64_t __force) bswap_64_on_le(value); } ++static inline be16_t htobe16(uint16_t value) { return (be16_t __sd_force) bswap_16_on_le(value); } ++static inline be32_t htobe32(uint32_t value) { return (be32_t __sd_force) bswap_32_on_le(value); } ++static inline be64_t htobe64(uint64_t value) { return (be64_t __sd_force) bswap_64_on_le(value); } + +-static inline uint16_t le16toh(le16_t value) { return bswap_16_on_be((uint16_t __force)value); } +-static inline uint32_t le32toh(le32_t value) { return bswap_32_on_be((uint32_t __force)value); } +-static inline uint64_t le64toh(le64_t value) { return bswap_64_on_be((uint64_t __force)value); } ++static inline uint16_t le16toh(le16_t value) { return bswap_16_on_be((uint16_t __sd_force)value); } ++static inline uint32_t le32toh(le32_t value) { return bswap_32_on_be((uint32_t __sd_force)value); } ++static inline uint64_t le64toh(le64_t value) { return bswap_64_on_be((uint64_t __sd_force)value); } + +-static inline uint16_t be16toh(be16_t value) { return bswap_16_on_le((uint16_t __force)value); } +-static inline uint32_t be32toh(be32_t value) { return bswap_32_on_le((uint32_t __force)value); } +-static inline uint64_t be64toh(be64_t value) { return bswap_64_on_le((uint64_t __force)value); } ++static inline uint16_t be16toh(be16_t value) { return bswap_16_on_le((uint16_t __sd_force)value); } ++static inline uint32_t be32toh(be32_t value) { return bswap_32_on_le((uint32_t __sd_force)value); } ++static inline uint64_t be64toh(be64_t value) { return bswap_64_on_le((uint64_t __sd_force)value); } ++ ++#undef __sd_bitwise ++#undef __sd_force + + #endif /* SPARSE_ENDIAN_H */ +-- +2.9.3 + diff --git a/NetworkManager.spec b/NetworkManager.spec index f35c1e2..7965755 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -12,7 +12,7 @@ %global rpm_version 1.5.3 %global real_version 1.5.3 -%global release_version 4 +%global release_version 5 %global epoch_version 1 %global obsoletes_device_plugins 1:0.9.9.95-1 @@ -90,7 +90,7 @@ Name: NetworkManager Summary: Network connection manager and user applications Epoch: %{epoch_version} Version: %{rpm_version} -Release: %{release_version}%{?snap}%{?dist}.1 +Release: %{release_version}%{?snap}%{?dist} Group: System Environment/Base License: GPLv2+ URL: http://www.gnome.org/projects/NetworkManager/ @@ -100,7 +100,7 @@ Source1: NetworkManager.conf Source2: 00-server.conf Source3: 20-connectivity-fedora.conf -#Patch1: 0001-some.patch +Patch1: 0001-bitwise-clash.patch Requires(post): systemd Requires(preun): systemd @@ -349,7 +349,7 @@ by nm-connection-editor and nm-applet in a non-graphical environment. %prep %setup -q -n NetworkManager-%{real_version} -#%patch1 -p1 +%patch1 -p1 %build %if %{with regen_docs} @@ -668,10 +668,13 @@ fi %endif %changelog +* Thu Jan 12 2017 Thomas Haller - 1:1.5.3-5 +- fix build failure due to clash of bitwise defines + * Thu Jan 12 2017 Igor Gnatenko - 1:1.5.3-4.1 - Rebuild for readline 7.x -* Thu Dec 15 2016 Lubomir Rintel - 1:1.5.3-1 +* Thu Dec 15 2016 Lubomir Rintel - 1:1.5.3-4 - Update to a newer development snapshot * Tue Dec 6 2016 Thomas Haller - 1:1.5.2-4