[OE-core] [PATCH 8/9] gcc-7.2: Fix libgfortran build

Richard Purdie richard.purdie at linuxfoundation.org
Tue Dec 19 11:08:45 UTC 2017


On Tue, 2017-12-12 at 09:23 -0800, Khem Raj wrote:
> From: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
> 
> Without this patch libbacktrace cannot be included/link during
> libgfortran build.
> 
> libbtool: link: cannot find the library
> `../libbacktrace/libbacktrace.la'
> or unhandled argument `../libbacktrace/libbacktrace.la
> 
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>  meta/recipes-devtools/gcc/gcc-7.2.inc              |  1 +
>  .../gcc/gcc-7.2/0051-Fix-gfortran-build.patch      | 53
> ++++++++++++++++++++++
>  2 files changed, 54 insertions(+)
>  create mode 100644 meta/recipes-devtools/gcc/gcc-7.2/0051-Fix-
> gfortran-build.patch
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-7.2.inc b/meta/recipes-
> devtools/gcc/gcc-7.2.inc
> index 1d40cba731..baf98aeba8 100644
> --- a/meta/recipes-devtools/gcc/gcc-7.2.inc
> +++ b/meta/recipes-devtools/gcc/gcc-7.2.inc
> @@ -75,6 +75,7 @@ SRC_URI = "\
>             file://0048-gcc-Enable-static-PIE.patch \
>             file://fix-segmentation-fault-precompiled-hdr.patch \
>             file://0050-RISC-V-Handle-non-legitimate-address-in-
> riscv_legiti.patch \
> +           file://0051-Fix-gfortran-build.patch \
>             ${BACKPORTS} \
>  "
>  BACKPORTS = "\
> diff --git a/meta/recipes-devtools/gcc/gcc-7.2/0051-Fix-gfortran-
> build.patch b/meta/recipes-devtools/gcc/gcc-7.2/0051-Fix-gfortran-
> build.patch
> new file mode 100644
> index 0000000000..a71b6b0bee
> --- /dev/null
> +++ b/meta/recipes-devtools/gcc/gcc-7.2/0051-Fix-gfortran-build.patch
> @@ -0,0 +1,53 @@
> +Without this patch libbacktrace cannot be included/link during
> +libgfortran build.
> +
> +libbtool: link: cannot find the library
> `../libbacktrace/libbacktrace.la'
> +or unhandled argument `../libbacktrace/libbacktrace.la'
> +
> +Upstream-Status: Inappropriate [OE specific]
> +Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
> +
> +diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am
> +index 2857af5943f9..e07760069a3c 100644
> +--- a/libgfortran/Makefile.am
> ++++ b/libgfortran/Makefile.am
> +@@ -37,7 +37,7 @@ toolexeclib_LTLIBRARIES = libgfortran.la
> + toolexeclib_DATA = libgfortran.spec
> + libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
> + libgfortran_la_LDFLAGS = -version-info `grep -v '^\#'
> $(srcdir)/libtool-version` \
> +-	$(LTLDFLAGS) $(LIBQUADLIB) ../libbacktrace/libbacktrace.la
> \
> ++	$(LTLDFLAGS) $(LIBQUADLIB)
> ../../libbacktrace/libbacktrace.la \
> + 	$(HWCAP_LDFLAGS) \
> + 	-lm $(extra_ldflags_libgfortran) \
> + 	$(version_arg) -Wc,-shared-libgcc
> +@@ -64,7 +64,7 @@ AM_CPPFLAGS = -iquote$(srcdir)/io
> -I$(srcdir)/$(MULTISRCTOP)../gcc \
> + 	      -I$(MULTIBUILDTOP)../libgcc \
> + 	      -I$(srcdir)/$(MULTISRCTOP)../libbacktrace \
> + 	      -I$(MULTIBUILDTOP)../libbacktrace \
> +-	      -I../libbacktrace
> ++	      -I../../libbacktrace
>> + # Fortran rules for complex multiplication and division
> + AM_CFLAGS += -fcx-fortran-rules
> +diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in
> +index 05b183dcadb0..c9e0280e412c 100644
> +--- a/libgfortran/Makefile.in
> ++++ b/libgfortran/Makefile.in
> +@@ -581,7 +581,7 @@ toolexeclib_LTLIBRARIES = libgfortran.la
> + toolexeclib_DATA = libgfortran.spec
> + libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
> + libgfortran_la_LDFLAGS = -version-info `grep -v '^\#'
> $(srcdir)/libtool-version` \
> +-	$(LTLDFLAGS) $(LIBQUADLIB) ../libbacktrace/libbacktrace.la
> \
> ++	$(LTLDFLAGS) $(LIBQUADLIB)
> ../../libbacktrace/libbacktrace.la \
> + 	$(HWCAP_LDFLAGS) \
> + 	-lm $(extra_ldflags_libgfortran) \
> + 	$(version_arg) -Wc,-shared-libgcc
> +@@ -602,7 +602,7 @@ AM_CPPFLAGS = -iquote$(srcdir)/io
> -I$(srcdir)/$(MULTISRCTOP)../gcc \
> + 	      -I$(MULTIBUILDTOP)../libgcc \
> + 	      -I$(srcdir)/$(MULTISRCTOP)../libbacktrace \
> + 	      -I$(MULTIBUILDTOP)../libbacktrace \
> +-	      -I../libbacktrace
> ++	      -I../../libbacktrace
>> + gfor_io_src = io/size_from_kind.c $(am__append_2)
> + gfor_io_headers = \

Did you try this for something other than x86_64? I think this won't
work when cross compiling and host != target.

I do have a better fix which might work in mind...

Cheers,

Richard




More information about the Openembedded-core mailing list