gtk+3: Fix build failure with gold linker

Submitted by Khem Raj on Feb. 21, 2019, 10:18 p.m. | Patch ID: 158994

Details

Message ID 20190221221834.37807-1-raj.khem@gmail.com
State Accepted
Commit e1e7064746c892544cb3bb72b54791cec2818ffd
Headers show

Commit Message

Khem Raj Feb. 21, 2019, 10:18 p.m.
Explicitly link in libfribidi

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../gtk+/gtk+3/link_fribidi.patch             | 19 +++++++++++++++++++
 meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb       |  1 +
 2 files changed, 20 insertions(+)
 create mode 100644 meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch

Patch hide | download patch | download mbox

diff --git a/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch b/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
new file mode 100644
index 0000000000..e4bbd799f1
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
@@ -0,0 +1,19 @@ 
+Link with libfribidi, this is to avoid under linking where these functions are
+used but the library is not linked in, and they are marked undefined by BFD linker
+but gold linker refuses to link
+
+| ./.libs/libgdk-3.so: error: undefined reference to 'fribidi_get_bidi_type'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+--- a/gdk/Makefile.am
++++ b/gdk/Makefile.am
+@@ -55,6 +55,7 @@ LDADD = 					\
+ 	-version-info $(LT_VERSION_INFO)	\
+ 	-export-dynamic 			\
+ 	-rpath $(libdir) 			\
++	-lfribidi	 			\
+ 	$(no_undefined)
+ 
+ #
diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
index 799cbd4707..92c9a3ebfb 100644
--- a/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
+++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
@@ -6,6 +6,7 @@  SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar
            file://0001-Hardcoded-libtool.patch \
            file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
            file://0003-Add-disable-opengl-configure-option.patch \
+           file://link_fribidi.patch \
           "
 SRC_URI[md5sum] = "32862355c08f6af3e7848c695cd4081b"
 SRC_URI[sha256sum] = "0be5fb0d302bc3de26ab58c32990d895831e2b7c7418d0ffea1206d6a3ddb02f"

Comments

Martin Jansa Feb. 24, 2019, 8:13 p.m.
On Thu, Feb 21, 2019 at 02:18:34PM -0800, Khem Raj wrote:
> Explicitly link in libfribidi
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  .../gtk+/gtk+3/link_fribidi.patch             | 19 +++++++++++++++++++
>  meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb       |  1 +
>  2 files changed, 20 insertions(+)
>  create mode 100644 meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch

+1

Tested-by: Martin Jansa <Martin.Jansa@gmail.com>
Ross Burton Feb. 24, 2019, 11:02 p.m.
Have you sent this upstream?

Ross

On Thu, 21 Feb 2019 at 22:19, Khem Raj <raj.khem@gmail.com> wrote:
>
> Explicitly link in libfribidi
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  .../gtk+/gtk+3/link_fribidi.patch             | 19 +++++++++++++++++++
>  meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb       |  1 +
>  2 files changed, 20 insertions(+)
>  create mode 100644 meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
>
> diff --git a/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch b/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
> new file mode 100644
> index 0000000000..e4bbd799f1
> --- /dev/null
> +++ b/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
> @@ -0,0 +1,19 @@
> +Link with libfribidi, this is to avoid under linking where these functions are
> +used but the library is not linked in, and they are marked undefined by BFD linker
> +but gold linker refuses to link
> +
> +| ./.libs/libgdk-3.so: error: undefined reference to 'fribidi_get_bidi_type'
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +
> +--- a/gdk/Makefile.am
> ++++ b/gdk/Makefile.am
> +@@ -55,6 +55,7 @@ LDADD =                                      \
> +       -version-info $(LT_VERSION_INFO)        \
> +       -export-dynamic                         \
> +       -rpath $(libdir)                        \
> ++      -lfribidi                               \
> +       $(no_undefined)
> +
> + #
> diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
> index 799cbd4707..92c9a3ebfb 100644
> --- a/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
> +++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
> @@ -6,6 +6,7 @@ SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar
>             file://0001-Hardcoded-libtool.patch \
>             file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
>             file://0003-Add-disable-opengl-configure-option.patch \
> +           file://link_fribidi.patch \
>            "
>  SRC_URI[md5sum] = "32862355c08f6af3e7848c695cd4081b"
>  SRC_URI[sha256sum] = "0be5fb0d302bc3de26ab58c32990d895831e2b7c7418d0ffea1206d6a3ddb02f"
> --
> 2.20.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj Feb. 25, 2019, 12:50 a.m.
On Sun, Feb 24, 2019 at 3:02 PM Burton, Ross <ross.burton@intel.com> wrote:
>
> Have you sent this upstream?
>
No, I haven't

> Ross
>
> On Thu, 21 Feb 2019 at 22:19, Khem Raj <raj.khem@gmail.com> wrote:
> >
> > Explicitly link in libfribidi
> >
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> >  .../gtk+/gtk+3/link_fribidi.patch             | 19 +++++++++++++++++++
> >  meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb       |  1 +
> >  2 files changed, 20 insertions(+)
> >  create mode 100644 meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
> >
> > diff --git a/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch b/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
> > new file mode 100644
> > index 0000000000..e4bbd799f1
> > --- /dev/null
> > +++ b/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
> > @@ -0,0 +1,19 @@
> > +Link with libfribidi, this is to avoid under linking where these functions are
> > +used but the library is not linked in, and they are marked undefined by BFD linker
> > +but gold linker refuses to link
> > +
> > +| ./.libs/libgdk-3.so: error: undefined reference to 'fribidi_get_bidi_type'
> > +
> > +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > +Upstream-Status: Pending
> > +
> > +--- a/gdk/Makefile.am
> > ++++ b/gdk/Makefile.am
> > +@@ -55,6 +55,7 @@ LDADD =                                      \
> > +       -version-info $(LT_VERSION_INFO)        \
> > +       -export-dynamic                         \
> > +       -rpath $(libdir)                        \
> > ++      -lfribidi                               \
> > +       $(no_undefined)
> > +
> > + #
> > diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
> > index 799cbd4707..92c9a3ebfb 100644
> > --- a/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
> > +++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.5.bb
> > @@ -6,6 +6,7 @@ SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar
> >             file://0001-Hardcoded-libtool.patch \
> >             file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
> >             file://0003-Add-disable-opengl-configure-option.patch \
> > +           file://link_fribidi.patch \
> >            "
> >  SRC_URI[md5sum] = "32862355c08f6af3e7848c695cd4081b"
> >  SRC_URI[sha256sum] = "0be5fb0d302bc3de26ab58c32990d895831e2b7c7418d0ffea1206d6a3ddb02f"
> > --
> > 2.20.1
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core