* [master][krogoth][PATCH v2 2/5] gcc 4.9: backport gperf fixes
@ 2016-05-10 16:04 danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 3/5] openjade-native: work around bug exposed by GCC 6 danismostlikely
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: danismostlikely @ 2016-05-10 16:04 UTC (permalink / raw)
To: openembedded-core
From: Dan McGregor <danismostlikely@gmail.com>
From: Daniel McGregor <daniel.mcgregor@vecima.com>
gperf was being used in a way that generated files don't conform to
the language standard. Backport the fix from upstream.
This is required to build these GCC versions when the host compiler
is GCC 6.
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
---
meta/recipes-devtools/gcc/gcc-4.9.inc | 1 +
.../gcc/gcc-4.9/0075-remove-prototypes-cfns.patch | 153 +++++++++++++++++++++
2 files changed, 154 insertions(+)
create mode 100644 meta/recipes-devtools/gcc/gcc-4.9/0075-remove-prototypes-cfns.patch
diff --git a/meta/recipes-devtools/gcc/gcc-4.9.inc b/meta/recipes-devtools/gcc/gcc-4.9.inc
index 7e03f31..2be0599 100644
--- a/meta/recipes-devtools/gcc/gcc-4.9.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.9.inc
@@ -90,6 +90,7 @@ SRC_URI = "\
file://0072-support-ffile-prefix-map.patch \
file://0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \
file://0074-fdebug-prefix-map-support-to-remap-relative-path.patch \
+ file://0075-remove-prototypes-cfns.patch \
"
SRC_URI[md5sum] = "6f831b4d251872736e8e9cc09746f327"
SRC_URI[sha256sum] = "2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e"
diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0075-remove-prototypes-cfns.patch b/meta/recipes-devtools/gcc/gcc-4.9/0075-remove-prototypes-cfns.patch
new file mode 100644
index 0000000..2954f2e
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.9/0075-remove-prototypes-cfns.patch
@@ -0,0 +1,153 @@
+Upstream-Status: backport
+
+From 8c3fa311caa86f61b4e28d1563d1110b44340fb2 Mon Sep 17 00:00:00 2001
+From: edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 25 Feb 2016 15:36:41 +0000
+Subject: [PATCH] 2016-02-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ Backported from mainline
+ 2016-02-19 Jakub Jelinek <jakub@redhat.com>
+ Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * Make-lang.in: Invoke gperf with -L C++.
+ * cfns.gperf: Remove prototypes for hash and libc_name_p
+ inlines.
+ * cfns.h: Regenerated.
+ * except.c (nothrow_libfn_p): Adjust.
+
+
+---
+ gcc/cp/Make-lang.in | 2 +-
+ gcc/cp/cfns.gperf | 10 ++--------
+ gcc/cp/cfns.h | 41 ++++++++++++++---------------------------
+ gcc/cp/except.c | 3 ++-
+ 5 files changed, 31 insertions(+), 37 deletions(-)
+
+diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
+index bd1c1d7..a0ea0d4 100644
+--- a/gcc/cp/Make-lang.in
++++ b/gcc/cp/Make-lang.in
+@@ -111,7 +111,7 @@ else
+ # deleting the $(srcdir)/cp/cfns.h file.
+ $(srcdir)/cp/cfns.h:
+ endif
+- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
++ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
+ $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
+
+ #\f
+diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
+index 05ca753..d9b16b8 100644
+--- a/gcc/cp/cfns.gperf
++++ b/gcc/cp/cfns.gperf
+@@ -1,3 +1,5 @@
++%language=C++
++%define class-name libc_name
+ %{
+ /* Copyright (C) 2000-2014 Free Software Foundation, Inc.
+
+@@ -16,14 +18,6 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ %}
+ %%
+ # The standard C library functions, for feeding to gperf; the result is used
+diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
+index c845ddf..65801d1 100644
+--- a/gcc/cp/cfns.h
++++ b/gcc/cp/cfns.h
+@@ -1,5 +1,5 @@
+-/* ANSI-C code produced by gperf version 3.0.3 */
+-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
++/* C++ code produced by gperf version 3.0.4 */
++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */
+
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+@@ -28,7 +28,7 @@
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+ #endif
+
+-#line 1 "cfns.gperf"
++#line 3 "cfns.gperf"
+
+ /* Copyright (C) 2000-2014 Free Software Foundation, Inc.
+
+@@ -47,25 +47,18 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ /* maximum key range = 391, duplicates = 0 */
+
+-#ifdef __GNUC__
+-__inline
+-#else
+-#ifdef __cplusplus
+-inline
+-#endif
+-#endif
+-static unsigned int
+-hash (register const char *str, register unsigned int len)
++class libc_name
++{
++private:
++ static inline unsigned int hash (const char *str, unsigned int len);
++public:
++ static const char *libc_name_p (const char *str, unsigned int len);
++};
++
++inline unsigned int
++libc_name::hash (register const char *str, register unsigned int len)
+ {
+ static const unsigned short asso_values[] =
+ {
+@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
+ return hval + asso_values[(unsigned char)str[len - 1]];
+ }
+
+-#ifdef __GNUC__
+-__inline
+-#ifdef __GNUC_STDC_INLINE__
+-__attribute__ ((__gnu_inline__))
+-#endif
+-#endif
+ const char *
+-libc_name_p (register const char *str, register unsigned int len)
++libc_name::libc_name_p (register const char *str, register unsigned int len)
+ {
+ enum
+ {
+diff --git a/gcc/cp/except.c b/gcc/cp/except.c
+index 221971a..32340f5 100644
+--- a/gcc/cp/except.c
++++ b/gcc/cp/except.c
+@@ -1030,7 +1030,8 @@ nothrow_libfn_p (const_tree fn)
+ unless the system headers are playing rename tricks, and if
+ they are, we don't want to be confused by them. */
+ id = DECL_NAME (fn);
+- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
++ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
++ IDENTIFIER_LENGTH (id));
+ }
+
+ /* Returns nonzero if an exception of type FROM will be caught by a
+--
+2.8.2
+
--
2.8.2
^ permalink raw reply related [flat|nested] 5+ messages in thread* [master][krogoth][PATCH 3/5] openjade-native: work around bug exposed by GCC 6
2016-05-10 16:04 [master][krogoth][PATCH v2 2/5] gcc 4.9: backport gperf fixes danismostlikely
@ 2016-05-10 16:04 ` danismostlikely
2016-05-14 1:03 ` Khem Raj
2016-05-10 16:04 ` [master][krogoth][PATCH 4/5] binutils: disable werror on native build danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 5/5] pkgconfig: fix build with host gcc 6 danismostlikely
2 siblings, 1 reply; 5+ messages in thread
From: danismostlikely @ 2016-05-10 16:04 UTC (permalink / raw)
To: openembedded-core
From: Dan McGregor <danismostlikely@gmail.com>
From: Daniel McGregor <daniel.mcgregor@vecima.com>
Simply turn off the optimzation that is causing this breakage. I had
originally used -fno-lifetime-dse, but -fno-tree-dse works at least
going back as far as gcc 4.8.
This isn't a real fix, but it allows openjade to work enough to complete
a build.
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
---
meta/recipes-devtools/openjade/openjade-native_1.3.2.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
index bc25008..afcb8ca 100644
--- a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
+++ b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
@@ -44,6 +44,7 @@ CONFIGUREOPTS := "${@d.getVar('CONFIGUREOPTS', True).replace('--datadir=${datadi
oe_runconf[vardepsexclude] += "CONFIGUREOPTS"
CFLAGS =+ "-I${S}/include"
+CXXFLAGS += "-fno-tree-dse"
SSTATEPOSTINSTFUNCS += "openjade_sstate_postinst"
SYSROOT_PREPROCESS_FUNCS += "openjade_sysroot_preprocess"
--
2.8.2
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [master][krogoth][PATCH 3/5] openjade-native: work around bug exposed by GCC 6
2016-05-10 16:04 ` [master][krogoth][PATCH 3/5] openjade-native: work around bug exposed by GCC 6 danismostlikely
@ 2016-05-14 1:03 ` Khem Raj
0 siblings, 0 replies; 5+ messages in thread
From: Khem Raj @ 2016-05-14 1:03 UTC (permalink / raw)
To: danismostlikely; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 1651 bytes --]
> On May 10, 2016, at 9:04 AM, danismostlikely@gmail.com wrote:
>
> From: Dan McGregor <danismostlikely@gmail.com>
>
> From: Daniel McGregor <daniel.mcgregor@vecima.com>
>
> Simply turn off the optimzation that is causing this breakage. I had
> originally used -fno-lifetime-dse, but -fno-tree-dse works at least
> going back as far as gcc 4.8.
>
> This isn't a real fix, but it allows openjade to work enough to complete
> a build.
would be good to add a comment on where its discussed e.g.
https://bugzilla.redhat.com/show_bug.cgi?id=1306162
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69534
>
> Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
> ---
> meta/recipes-devtools/openjade/openjade-native_1.3.2.bb | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
> index bc25008..afcb8ca 100644
> --- a/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
> +++ b/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
> @@ -44,6 +44,7 @@ CONFIGUREOPTS := "${@d.getVar('CONFIGUREOPTS', True).replace('--datadir=${datadi
> oe_runconf[vardepsexclude] += "CONFIGUREOPTS"
>
> CFLAGS =+ "-I${S}/include"
> +CXXFLAGS += "-fno-tree-dse"
>
> SSTATEPOSTINSTFUNCS += "openjade_sstate_postinst"
> SYSROOT_PREPROCESS_FUNCS += "openjade_sysroot_preprocess"
> --
> 2.8.2
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [master][krogoth][PATCH 4/5] binutils: disable werror on native build
2016-05-10 16:04 [master][krogoth][PATCH v2 2/5] gcc 4.9: backport gperf fixes danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 3/5] openjade-native: work around bug exposed by GCC 6 danismostlikely
@ 2016-05-10 16:04 ` danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 5/5] pkgconfig: fix build with host gcc 6 danismostlikely
2 siblings, 0 replies; 5+ messages in thread
From: danismostlikely @ 2016-05-10 16:04 UTC (permalink / raw)
To: openembedded-core
From: Dan McGregor <danismostlikely@gmail.com>
From: Daniel McGregor <daniel.mcgregor@vecima.com>
binutils has some warnings when compiled with gcc 6.0. Disable
werror for the native build to work around build failures.
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
---
meta/recipes-devtools/binutils/binutils_2.26.bb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/binutils/binutils_2.26.bb b/meta/recipes-devtools/binutils/binutils_2.26.bb
index b70ffbf..e976bad 100644
--- a/meta/recipes-devtools/binutils/binutils_2.26.bb
+++ b/meta/recipes-devtools/binutils/binutils_2.26.bb
@@ -13,7 +13,8 @@ EXTRA_OECONF += "--with-sysroot=/ \
EXTRA_OECONF_class-native = "--enable-targets=all \
--enable-64-bit-bfd \
--enable-install-libiberty \
- --enable-install-libbfd"
+ --enable-install-libbfd \
+ --disable-werror"
do_install_class-native () {
autotools_do_install
--
2.8.2
^ permalink raw reply related [flat|nested] 5+ messages in thread* [master][krogoth][PATCH 5/5] pkgconfig: fix build with host gcc 6
2016-05-10 16:04 [master][krogoth][PATCH v2 2/5] gcc 4.9: backport gperf fixes danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 3/5] openjade-native: work around bug exposed by GCC 6 danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 4/5] binutils: disable werror on native build danismostlikely
@ 2016-05-10 16:04 ` danismostlikely
2 siblings, 0 replies; 5+ messages in thread
From: danismostlikely @ 2016-05-10 16:04 UTC (permalink / raw)
To: openembedded-core
From: Dan McGregor <danismostlikely@gmail.com>
From: Daniel McGregor <daniel.mcgregor@vecima.com>
This simply disables the glib-2.0 warning identified by that recipe.
This package depends on host glib, so we can't patch it.
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
---
meta/recipes-devtools/pkgconfig/pkgconfig_git.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
index d34f608..88c99cd 100644
--- a/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ b/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
@@ -27,6 +27,7 @@ inherit autotools
EXTRA_OECONF = "--without-internal-glib"
EXTRA_OECONF_class-native = "--with-internal-glib"
EXTRA_OECONF_class-nativesdk = "--with-internal-glib"
+CFLAGS_append_class-native = " -Wno-error=format-nonliteral"
acpaths = "-I ."
--
2.8.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-05-14 1:03 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-10 16:04 [master][krogoth][PATCH v2 2/5] gcc 4.9: backport gperf fixes danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 3/5] openjade-native: work around bug exposed by GCC 6 danismostlikely
2016-05-14 1:03 ` Khem Raj
2016-05-10 16:04 ` [master][krogoth][PATCH 4/5] binutils: disable werror on native build danismostlikely
2016-05-10 16:04 ` [master][krogoth][PATCH 5/5] pkgconfig: fix build with host gcc 6 danismostlikely
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.