Accepting request 367644 from filesystems

- hide min/max macros clashing with gcc 6 (bnc#966257) (forwarded request 367641 from dsterba)

OBS-URL: https://build.opensuse.org/request/show/367644
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/btrfsprogs?expand=0&rev=70
This commit is contained in:
Dominique Leuenberger 2016-03-11 08:37:45 +00:00 committed by Git OBS Bridge
parent b3477bba52
commit bd925a4e80
4 changed files with 200 additions and 1 deletions

View File

@ -0,0 +1,190 @@
From 25f809780a330530c652a805dfce02008fabe3ea Mon Sep 17 00:00:00 2001
From: Ondrej Kozina <okozina@redhat.com>
Date: Fri, 4 Mar 2016 14:46:11 +0100
Subject: [PATCH] btrfs-progs: libbtrfs: remove max/min macros from API
kerncompat.h header file is part of libbtrfs API. min/max macros cause
conflict while building projects dependant on libbtrfs. Moving those
macros to btrfs-progs internal header file fixes the conflict.
Signed-off-by: Ondrej Kozina <okozina@redhat.com>
Signed-off-by: David Sterba <dsterba@suse.com>
---
backref.c | 1 +
ctree.c | 1 +
extent_io.c | 1 +
file-item.c | 1 +
free-space-cache.c | 1 +
inode-map.c | 1 +
internal.h | 42 ++++++++++++++++++++++++++++++++++++++++++
kerncompat.h | 20 --------------------
utils.h | 1 +
9 files changed, 49 insertions(+), 20 deletions(-)
create mode 100644 internal.h
diff --git a/backref.c b/backref.c
index 8f41f829503d..7578e928d0bf 100644
--- a/backref.c
+++ b/backref.c
@@ -22,6 +22,7 @@
#include "backref.h"
#include "ulist.h"
#include "transaction.h"
+#include "internal.h"
#define pr_debug(...) do { } while (0)
diff --git a/ctree.c b/ctree.c
index 04cc476e9a8f..1f938d767142 100644
--- a/ctree.c
+++ b/ctree.c
@@ -20,6 +20,7 @@
#include "transaction.h"
#include "print-tree.h"
#include "repair.h"
+#include "internal.h"
static int split_node(struct btrfs_trans_handle *trans, struct btrfs_root
*root, struct btrfs_path *path, int level);
diff --git a/extent_io.c b/extent_io.c
index 88e92736280e..bdaecc0f1a45 100644
--- a/extent_io.c
+++ b/extent_io.c
@@ -27,6 +27,7 @@
#include "list.h"
#include "ctree.h"
#include "volumes.h"
+#include "internal.h"
void extent_io_tree_init(struct extent_io_tree *tree)
{
diff --git a/file-item.c b/file-item.c
index b46d7f107c98..7a3bbf35868b 100644
--- a/file-item.c
+++ b/file-item.c
@@ -25,6 +25,7 @@
#include "transaction.h"
#include "print-tree.h"
#include "crc32c.h"
+#include "internal.h"
#define MAX_CSUM_ITEMS(r,size) ((((BTRFS_LEAF_DATA_SIZE(r) - \
sizeof(struct btrfs_item) * 2) / \
diff --git a/free-space-cache.c b/free-space-cache.c
index d10a5f517b10..357d69e7870e 100644
--- a/free-space-cache.c
+++ b/free-space-cache.c
@@ -24,6 +24,7 @@
#include "extent_io.h"
#include "crc32c.h"
#include "bitops.h"
+#include "internal.h"
/*
* Kernel always uses PAGE_CACHE_SIZE for sectorsize, but we don't have
diff --git a/inode-map.c b/inode-map.c
index 346952b74144..9e4dcd3c3b0f 100644
--- a/inode-map.c
+++ b/inode-map.c
@@ -19,6 +19,7 @@
#include "ctree.h"
#include "disk-io.h"
#include "transaction.h"
+#include "internal.h"
/*
* walks the btree of allocated inodes and find a hole.
diff --git a/internal.h b/internal.h
new file mode 100644
index 000000000000..d5ea9986967e
--- /dev/null
+++ b/internal.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2007 Oracle. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License v2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ */
+
+#ifndef __INTERNAL_H__
+#define __INTERNAL_H__
+
+/*
+ * max/min macro
+ */
+#define min(x,y) ({ \
+ typeof(x) _x = (x); \
+ typeof(y) _y = (y); \
+ (void) (&_x == &_y); \
+ _x < _y ? _x : _y; })
+
+#define max(x,y) ({ \
+ typeof(x) _x = (x); \
+ typeof(y) _y = (y); \
+ (void) (&_x == &_y); \
+ _x > _y ? _x : _y; })
+
+#define min_t(type,x,y) \
+ ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
+#define max_t(type,x,y) \
+ ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
+
+#endif
diff --git a/kerncompat.h b/kerncompat.h
index 0f207b7fd5d5..ee65aa72ad6d 100644
--- a/kerncompat.h
+++ b/kerncompat.h
@@ -241,26 +241,6 @@ static inline long IS_ERR(const void *ptr)
}
/*
- * max/min macro
- */
-#define min(x,y) ({ \
- typeof(x) _x = (x); \
- typeof(y) _y = (y); \
- (void) (&_x == &_y); \
- _x < _y ? _x : _y; })
-
-#define max(x,y) ({ \
- typeof(x) _x = (x); \
- typeof(y) _y = (y); \
- (void) (&_x == &_y); \
- _x > _y ? _x : _y; })
-
-#define min_t(type,x,y) \
- ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
-#define max_t(type,x,y) \
- ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
-
-/*
* This looks more complex than it should be. But we need to
* get the type for the ~ right in round_down (it needs to be
* as wide as the result!), and we want to evaluate the macro
diff --git a/utils.h b/utils.h
index d53357a277ee..a4e55bf58914 100644
--- a/utils.h
+++ b/utils.h
@@ -23,6 +23,7 @@
#include "ctree.h"
#include <dirent.h>
#include <stdarg.h>
+#include "internal.h"
#define BTRFS_MKFS_SYSTEM_GROUP_SIZE (4 * 1024 * 1024)
#define BTRFS_MKFS_SMALL_VOLUME_SIZE (1024 * 1024 * 1024)
--
2.7.1

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Mon Mar 7 00:00:00 CET 2016 - dsterba@suse.cz
- hide min/max macros clashing with gcc 6 (bnc#966257)
(0001-btrfs-progs-libbtrfs-remove-max-min-macros-from-API.patch)
-------------------------------------------------------------------
Mon Feb 29 00:00:00 CET 2016 - dsterba@suse.cz

View File

@ -37,6 +37,8 @@ Source: https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs
Source1: boot-btrfs.sh
Source4: setup-btrfs.sh
Patch1: 0001-btrfs-progs-libbtrfs-remove-max-min-macros-from-API.patch
Patch163: 0163-btrfs-progs-fsck-fix-segfault.patch
Patch167: 0167-Btrfs-progs-make-find_and_setup_root-return-an-error.patch
Patch168: 0168-Btrfs-progs-don-t-bug-out-if-we-can-t-find-the-last-.patch
@ -109,6 +111,7 @@ build applications to interface with btrfs.
%prep
%setup -q -n btrfs-progs-v%{version}
%patch1 -p1
%patch163 -p1
%patch167 -p1
%patch168 -p1

View File

@ -7,7 +7,7 @@ Index: btrfs-progs-v4.1/version.sh
# Released under the GNU GPLv2
-v="v4.4.1"
+v="v4.4.1+20160229"
+v="v4.4.1+20160307"
opt=$1