From patchwork Tue May 26 09:53:35 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?J=C3=B6rg_Krause?= X-Patchwork-Id: 476418 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id F29771402B2 for ; Tue, 26 May 2015 19:53:01 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 74A7C332C9; Tue, 26 May 2015 09:53:00 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zllKaXsLQYjD; Tue, 26 May 2015 09:52:58 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id EF76133314; Tue, 26 May 2015 09:52:57 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 3951C1BF83A for ; Tue, 26 May 2015 09:52:57 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 351E0A33C9 for ; Tue, 26 May 2015 09:52:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7aWzq6596nVL for ; Tue, 26 May 2015 09:52:56 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mx02.posteo.de (mx02.posteo.de [89.146.194.165]) by fraxinus.osuosl.org (Postfix) with ESMTPS id E988DA33C2 for ; Tue, 26 May 2015 09:52:55 +0000 (UTC) Received: from dovecot03.posteo.de (unknown [185.67.36.28]) by mx02.posteo.de (Postfix) with ESMTPS id 23BB01F5E862 for ; Tue, 26 May 2015 11:52:52 +0200 (CEST) Received: from mail.posteo.de (localhost [127.0.0.1]) by dovecot03.posteo.de (Postfix) with ESMTPSA id 3lwrFH6dDZz5vNJ for ; Tue, 26 May 2015 11:52:51 +0200 (CEST) Received: from timelineX.localdomain (ip5b40199e.dynamic.kabel-deutschland.de [91.64.25.158]) (Authenticated sender: joerg.krause@embedded.rocks) by embedded.rocks (Postfix) with ESMTPSA id A5F6D9804DD; Tue, 26 May 2015 11:52:50 +0200 (CEST) From: =?UTF-8?q?J=C3=B6rg=20Krause?= To: buildroot@buildroot.org Date: Tue, 26 May 2015 11:53:35 +0200 Message-Id: <1432634015-24079-1-git-send-email-joerg.krause@embedded.rocks> X-Mailer: git-send-email 2.4.1 MIME-Version: 1.0 Subject: [Buildroot] [PATCH 1/1] package/mtd: add patch to fix host build error with gcc 5.1 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" host-mtd build fails with gcc 5.1: error: redefinition of ‘hashtable_iterator_key’ error: redefinition of ‘hashtable_iterator_value’ Indeed, both functions are defined twice - once in the header and once in the source file. This is permitted in C11 (and maybe in C99). Add a patch to fix the build with toolchains using C11 as default. Signed-off-by: Jörg Krause --- .../mtd/0005-Fix-redefinition-build-error.patch | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 package/mtd/0005-Fix-redefinition-build-error.patch diff --git a/package/mtd/0005-Fix-redefinition-build-error.patch b/package/mtd/0005-Fix-redefinition-build-error.patch new file mode 100644 index 0000000..b29c3a5 --- /dev/null +++ b/package/mtd/0005-Fix-redefinition-build-error.patch @@ -0,0 +1,70 @@ +From d00e6c6d623485ced942a018dc9b06a52c8f90e4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Mon, 25 May 2015 16:37:27 +0200 +Subject: [PATCH 1/1] Fix redefinition build error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Building host-mtd with C11 (default for gcc 5.1) fails with: + error: redefinition of ‘hashtable_iterator_key’ + error: redefinition of ‘hashtable_iterator_value’ + +These two functions are defined both in the header and the C source file. +Fix this by removing the definition in the C source file and convert the +"extern inline" to "static inline" in the header file. + +Signed-off-by: Jörg Krause +--- + mkfs.ubifs/hashtable/hashtable_itr.c | 12 ------------ + mkfs.ubifs/hashtable/hashtable_itr.h | 4 ++-- + 2 files changed, 2 insertions(+), 14 deletions(-) + +diff --git a/mkfs.ubifs/hashtable/hashtable_itr.c b/mkfs.ubifs/hashtable/hashtable_itr.c +index 24f4dde..d102453 100644 +--- a/mkfs.ubifs/hashtable/hashtable_itr.c ++++ b/mkfs.ubifs/hashtable/hashtable_itr.c +@@ -35,18 +35,6 @@ hashtable_iterator(struct hashtable *h) + } + + /*****************************************************************************/ +-/* key - return the key of the (key,value) pair at the current position */ +-/* value - return the value of the (key,value) pair at the current position */ +- +-void * +-hashtable_iterator_key(struct hashtable_itr *i) +-{ return i->e->k; } +- +-void * +-hashtable_iterator_value(struct hashtable_itr *i) +-{ return i->e->v; } +- +-/*****************************************************************************/ + /* advance - advance the iterator to the next element + * returns zero if advanced to end of table */ + +diff --git a/mkfs.ubifs/hashtable/hashtable_itr.h b/mkfs.ubifs/hashtable/hashtable_itr.h +index 87a97eb..5c94a04 100644 +--- a/mkfs.ubifs/hashtable/hashtable_itr.h ++++ b/mkfs.ubifs/hashtable/hashtable_itr.h +@@ -28,7 +28,7 @@ hashtable_iterator(struct hashtable *h); + /* hashtable_iterator_key + * - return the value of the (key,value) pair at the current position */ + +-extern inline void * ++static inline void * + hashtable_iterator_key(struct hashtable_itr *i) + { + return i->e->k; +@@ -37,7 +37,7 @@ hashtable_iterator_key(struct hashtable_itr *i) + /*****************************************************************************/ + /* value - return the value of the (key,value) pair at the current position */ + +-extern inline void * ++static inline void * + hashtable_iterator_value(struct hashtable_itr *i) + { + return i->e->v; +-- +2.4.1 +