Message ID | 1432636689-26907-1-git-send-email-joerg.krause@embedded.rocks |
---|---|
State | Accepted |
Headers | show |
Hi all, On Di, 2015-05-26 at 12:38 +0200, Jörg Krause wrote: > 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 sent to upstream: > https://patchwork.ozlabs.org/patch/467254/ > > Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> > --- > Changes v2 -> v3: > - Add Sob and URL to patch description (Baruch Siach) > > Changes v1 -> v2: > - Use (identical) patch sent upstream > --- Patch is accepted upstream now. I suggest to add this patch to 2015.05. Best regards Jörg Krause
Hi All, On Fri, May 29, 2015 at 09:39:09PM +0200, Jörg Krause wrote: > Hi all, > > On Di, 2015-05-26 at 12:38 +0200, Jörg Krause wrote: > > 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 sent to upstream: > > https://patchwork.ozlabs.org/patch/467254/ > > > > Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Tested-by: Doug Kehn <rdkehn@yahoo.com> > > --- > > Changes v2 -> v3: > > - Add Sob and URL to patch description (Baruch Siach) > > > > Changes v1 -> v2: > > - Use (identical) patch sent upstream > > --- > > Patch is accepted upstream now. I suggest to add this patch to 2015.05. Tested on Arch Linux host with GCC 5.1.0 and target arm-buildroot-linux-gnueabihf toolchain. Buildroot master a4a7aeed539631a91cae2c00dec4d20ccc6dda31. Regards, ...doug
Hi Jorg, Le 26/05/2015 12:38, Jörg Krause a écrit : > 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 sent to upstream: > https://patchwork.ozlabs.org/patch/467254/ > > Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Build tested with Fedora 22 host and gcc 5.1.1. Tested-by: Romain Naour <romain.naour@openwide.fr> Best regards, Romain Naour > --- > Changes v2 -> v3: > - Add Sob and URL to patch description (Baruch Siach) > > Changes v1 -> v2: > - Use (identical) patch sent upstream > --- > .../0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch | 76 ++++++++++++++++++++++ > 1 file changed, 76 insertions(+) > create mode 100644 package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch > > diff --git a/package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch b/package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch > new file mode 100644 > index 0000000..7ae691e > --- /dev/null > +++ b/package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch > @@ -0,0 +1,76 @@ > +From patchwork Sat May 2 12:38:06 2015 > +Content-Type: text/plain; charset="utf-8" > +MIME-Version: 1.0 > +Content-Transfer-Encoding: 7bit > +Subject: mkfs.ubifs: Fix build with gcc 5.1 > +From: Bernhard Walle <bernhard@bwalle.de> > +X-Patchwork-Id: 467254 > +Message-Id: <1430570286-30434-1-git-send-email-bernhard@bwalle.de> > +To: linux-mtd@lists.infradead.org > +Cc: Bernhard Walle <bernhard@bwalle.de> > +Date: Sat, 2 May 2015 14:38:06 +0200 > + > +In gcc 5.1, the default C standard which is used to compile a C file, > +has changed from gnu89 to gnu11. This changed the meaning of 'extern > +inline'. See https://gcc.gnu.org/gcc-5/porting_to.html. > + > +In mkfs.ubifs, this leads to multiple definitions of > +hashtable_iterator_key and -hashtable_iterator_value. I think the most > +pragmatic way to fix the issue is to replace 'extern inline' with > +'static inline' here. > + > +Fetch from: > +https://patchwork.ozlabs.org/patch/467254/ > + > +Signed-off-by: Bernhard Walle <bernhard@bwalle.de> > +Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> > +--- > + 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; >
Dear Jörg Krause, On Tue, 26 May 2015 12:38:09 +0200, Jörg Krause wrote: > 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 sent to upstream: > https://patchwork.ozlabs.org/patch/467254/ > > Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> > --- > Changes v2 -> v3: > - Add Sob and URL to patch description (Baruch Siach) Applied, thanks. Thomas
diff --git a/package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch b/package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch new file mode 100644 index 0000000..7ae691e --- /dev/null +++ b/package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch @@ -0,0 +1,76 @@ +From patchwork Sat May 2 12:38:06 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: mkfs.ubifs: Fix build with gcc 5.1 +From: Bernhard Walle <bernhard@bwalle.de> +X-Patchwork-Id: 467254 +Message-Id: <1430570286-30434-1-git-send-email-bernhard@bwalle.de> +To: linux-mtd@lists.infradead.org +Cc: Bernhard Walle <bernhard@bwalle.de> +Date: Sat, 2 May 2015 14:38:06 +0200 + +In gcc 5.1, the default C standard which is used to compile a C file, +has changed from gnu89 to gnu11. This changed the meaning of 'extern +inline'. See https://gcc.gnu.org/gcc-5/porting_to.html. + +In mkfs.ubifs, this leads to multiple definitions of +hashtable_iterator_key and -hashtable_iterator_value. I think the most +pragmatic way to fix the issue is to replace 'extern inline' with +'static inline' here. + +Fetch from: +https://patchwork.ozlabs.org/patch/467254/ + +Signed-off-by: Bernhard Walle <bernhard@bwalle.de> +Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> +--- + 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;
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 sent to upstream: https://patchwork.ozlabs.org/patch/467254/ Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> --- Changes v2 -> v3: - Add Sob and URL to patch description (Baruch Siach) Changes v1 -> v2: - Use (identical) patch sent upstream --- .../0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 package/mtd/0005-mkfs.ubifs-Fix-build-with-gcc-5.1.patch