All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
@ 2020-05-24 15:58 Romain Naour
  2020-05-26 21:02 ` Romain Naour
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Romain Naour @ 2020-05-24 15:58 UTC (permalink / raw)
  To: buildroot

While cross-compiling, qt5webengine is building a host tool but
want to link the libstdc++ statically. This requires to install
libstdc++-static package on the host (Fedora package name).

Otherwise the link fail with:

  [185/185] LINK gn
  FAILED: gn
  /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
  /usr/bin/ld?: unable to find -lstdc++
  [...]
  Project ERROR: GN build error!

Add --no-static-libstdc++ argument to gn.pro to link to
libstdc++.so.6 instead of libstdc++.a.

--no-static-libstdc++ has been added by [1] but it force
linking statically by default.

[1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Ga?l Portay <gael.portay@collabora.com>
---
 ...ro-don-t-link-statically-with-libstc.patch | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch

diff --git a/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
new file mode 100644
index 0000000000..dff3e6c849
--- /dev/null
+++ b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
@@ -0,0 +1,51 @@
+From 7ae73da23ad998bd1e63ad213cf7a02e61191951 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Sat, 23 May 2020 19:01:19 +0200
+Subject: [PATCH] gn.pro: don't link statically with libstc++
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While cross-compiling, qt5webengine is building a host tool but
+want to link the libstdc++ statically. This requires to install
+libstdc++-static package on the host (Fedora package name).
+
+Otherwise the link fail with:
+
+  [185/185] LINK gn
+  FAILED: gn
+  /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
+  /usr/bin/ld?: unable to find -lstdc++
+  [...]
+  Project ERROR: GN build error!
+
+Add --no-static-libstdc++ argument to gn.pro to link to
+libstdc++.so.6 instead of libstdc++.a.
+
+--no-static-libstdc++ has been added by [1] but it force
+linking statically by default.
+
+[1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615
+
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ src/buildtools/gn.pro | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
+index 033202e6..5dd8e241 100644
+--- a/src/buildtools/gn.pro
++++ b/src/buildtools/gn.pro
+@@ -20,7 +20,8 @@ build_pass|!debug_and_release {
+ 
+             gn_gen_args = --no-last-commit-position --out-path $$out_path \
+                           --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
+-                          --ld \"$$which($$QMAKE_LINK)\"
++                          --ld \"$$which($$QMAKE_LINK)\" \
++                          --no-static-libstdc++
+ 
+             msvc:!clang_cl: gn_gen_args += --use-lto
+ 
+-- 
+2.25.4
+
-- 
2.25.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-24 15:58 [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host Romain Naour
@ 2020-05-26 21:02 ` Romain Naour
  2020-05-26 21:13   ` Peter Seiderer
  2020-05-29 21:34 ` Thomas Petazzoni
  2020-05-31 20:30 ` Yann E. MORIN
  2 siblings, 1 reply; 9+ messages in thread
From: Romain Naour @ 2020-05-26 21:02 UTC (permalink / raw)
  To: buildroot

Hi Peter,

Le 24/05/2020 ? 17:58, Romain Naour a ?crit?:
> While cross-compiling, qt5webengine is building a host tool but
> want to link the libstdc++ statically. This requires to install
> libstdc++-static package on the host (Fedora package name).
> 
> Otherwise the link fail with:
> 
>   [185/185] LINK gn
>   FAILED: gn
>   /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
>   /usr/bin/ld?: unable to find -lstdc++
>   [...]
>   Project ERROR: GN build error!
> 
> Add --no-static-libstdc++ argument to gn.pro to link to
> libstdc++.so.6 instead of libstdc++.a.
> 
> --no-static-libstdc++ has been added by [1] but it force
> linking statically by default.
> 
> [1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615

Did you noticed this issue while building for qt5declarative issue?
On my pc, the static glibc wasn't installed.

What do you think?

Best regards,
Romain

> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Cc: Ga?l Portay <gael.portay@collabora.com>
> ---
>  ...ro-don-t-link-statically-with-libstc.patch | 51 +++++++++++++++++++
>  1 file changed, 51 insertions(+)
>  create mode 100644 package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> 
> diff --git a/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> new file mode 100644
> index 0000000000..dff3e6c849
> --- /dev/null
> +++ b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> @@ -0,0 +1,51 @@
> +From 7ae73da23ad998bd1e63ad213cf7a02e61191951 Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour@gmail.com>
> +Date: Sat, 23 May 2020 19:01:19 +0200
> +Subject: [PATCH] gn.pro: don't link statically with libstc++
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +While cross-compiling, qt5webengine is building a host tool but
> +want to link the libstdc++ statically. This requires to install
> +libstdc++-static package on the host (Fedora package name).
> +
> +Otherwise the link fail with:
> +
> +  [185/185] LINK gn
> +  FAILED: gn
> +  /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
> +  /usr/bin/ld?: unable to find -lstdc++
> +  [...]
> +  Project ERROR: GN build error!
> +
> +Add --no-static-libstdc++ argument to gn.pro to link to
> +libstdc++.so.6 instead of libstdc++.a.
> +
> +--no-static-libstdc++ has been added by [1] but it force
> +linking statically by default.
> +
> +[1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615
> +
> +Signed-off-by: Romain Naour <romain.naour@gmail.com>
> +---
> + src/buildtools/gn.pro | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
> +index 033202e6..5dd8e241 100644
> +--- a/src/buildtools/gn.pro
> ++++ b/src/buildtools/gn.pro
> +@@ -20,7 +20,8 @@ build_pass|!debug_and_release {
> + 
> +             gn_gen_args = --no-last-commit-position --out-path $$out_path \
> +                           --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
> +-                          --ld \"$$which($$QMAKE_LINK)\"
> ++                          --ld \"$$which($$QMAKE_LINK)\" \
> ++                          --no-static-libstdc++
> + 
> +             msvc:!clang_cl: gn_gen_args += --use-lto
> + 
> +-- 
> +2.25.4
> +
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-26 21:02 ` Romain Naour
@ 2020-05-26 21:13   ` Peter Seiderer
  2020-05-27  5:19     ` Romain Naour
  0 siblings, 1 reply; 9+ messages in thread
From: Peter Seiderer @ 2020-05-26 21:13 UTC (permalink / raw)
  To: buildroot

Hello Romain,

On Tue, 26 May 2020 23:02:14 +0200, Romain Naour <romain.naour@gmail.com> wrote:

> Hi Peter,
> 
> Le 24/05/2020 ? 17:58, Romain Naour a ?crit?:
> > While cross-compiling, qt5webengine is building a host tool but
> > want to link the libstdc++ statically. This requires to install
> > libstdc++-static package on the host (Fedora package name).
> > 
> > Otherwise the link fail with:
> > 
> >   [185/185] LINK gn
> >   FAILED: gn
> >   /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
> >   /usr/bin/ld?: unable to find -lstdc++
> >   [...]
> >   Project ERROR: GN build error!
> > 
> > Add --no-static-libstdc++ argument to gn.pro to link to
> > libstdc++.so.6 instead of libstdc++.a.
> > 
> > --no-static-libstdc++ has been added by [1] but it force
> > linking statically by default.
> > 
> > [1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615  
> 
> Did you noticed this issue while building for qt5declarative issue?
> On my pc, the static glibc wasn't installed.

I think the problem is qt5webengine specific as it is the only package compiling
a host build tool GN....

Never observed the problem with qt5webengine, maybe because on OpenSUSE there is
a static libstdc++ provided with the 'normal' libstdc++ devel package, eg.
	$ rpm -qf /usr/lib64/gcc/x86_64-suse-linux/9/libstdc++.a
	libstdc++6-devel-gcc9-9.3.1+git1296-1.7.x86_64

Regards,
Peter

> 
> What do you think?
> 
> Best regards,
> Romain
> 
> > Signed-off-by: Romain Naour <romain.naour@gmail.com>
> > Cc: Ga?l Portay <gael.portay@collabora.com>
> > ---
> >  ...ro-don-t-link-statically-with-libstc.patch | 51 +++++++++++++++++++
> >  1 file changed, 51 insertions(+)
> >  create mode 100644 package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> > 
> > diff --git a/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> > new file mode 100644
> > index 0000000000..dff3e6c849
> > --- /dev/null
> > +++ b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> > @@ -0,0 +1,51 @@
> > +From 7ae73da23ad998bd1e63ad213cf7a02e61191951 Mon Sep 17 00:00:00 2001
> > +From: Romain Naour <romain.naour@gmail.com>
> > +Date: Sat, 23 May 2020 19:01:19 +0200
> > +Subject: [PATCH] gn.pro: don't link statically with libstc++
> > +MIME-Version: 1.0
> > +Content-Type: text/plain; charset=UTF-8
> > +Content-Transfer-Encoding: 8bit
> > +
> > +While cross-compiling, qt5webengine is building a host tool but
> > +want to link the libstdc++ statically. This requires to install
> > +libstdc++-static package on the host (Fedora package name).
> > +
> > +Otherwise the link fail with:
> > +
> > +  [185/185] LINK gn
> > +  FAILED: gn
> > +  /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
> > +  /usr/bin/ld?: unable to find -lstdc++
> > +  [...]
> > +  Project ERROR: GN build error!
> > +
> > +Add --no-static-libstdc++ argument to gn.pro to link to
> > +libstdc++.so.6 instead of libstdc++.a.
> > +
> > +--no-static-libstdc++ has been added by [1] but it force
> > +linking statically by default.
> > +
> > +[1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615
> > +
> > +Signed-off-by: Romain Naour <romain.naour@gmail.com>
> > +---
> > + src/buildtools/gn.pro | 3 ++-
> > + 1 file changed, 2 insertions(+), 1 deletion(-)
> > +
> > +diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
> > +index 033202e6..5dd8e241 100644
> > +--- a/src/buildtools/gn.pro
> > ++++ b/src/buildtools/gn.pro
> > +@@ -20,7 +20,8 @@ build_pass|!debug_and_release {
> > + 
> > +             gn_gen_args = --no-last-commit-position --out-path $$out_path \
> > +                           --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
> > +-                          --ld \"$$which($$QMAKE_LINK)\"
> > ++                          --ld \"$$which($$QMAKE_LINK)\" \
> > ++                          --no-static-libstdc++
> > + 
> > +             msvc:!clang_cl: gn_gen_args += --use-lto
> > + 
> > +-- 
> > +2.25.4
> > +
> >   
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-26 21:13   ` Peter Seiderer
@ 2020-05-27  5:19     ` Romain Naour
  0 siblings, 0 replies; 9+ messages in thread
From: Romain Naour @ 2020-05-27  5:19 UTC (permalink / raw)
  To: buildroot

Hi Peter,

Le 26/05/2020 ? 23:13, Peter Seiderer a ?crit?:
> Hello Romain,
> 
> On Tue, 26 May 2020 23:02:14 +0200, Romain Naour <romain.naour@gmail.com> wrote:
> 
>> Hi Peter,
>>
>> Le 24/05/2020 ? 17:58, Romain Naour a ?crit?:
>>> While cross-compiling, qt5webengine is building a host tool but
>>> want to link the libstdc++ statically. This requires to install
>>> libstdc++-static package on the host (Fedora package name).
>>>
>>> Otherwise the link fail with:
>>>
>>>   [185/185] LINK gn
>>>   FAILED: gn
>>>   /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
>>>   /usr/bin/ld?: unable to find -lstdc++
>>>   [...]
>>>   Project ERROR: GN build error!
>>>
>>> Add --no-static-libstdc++ argument to gn.pro to link to
>>> libstdc++.so.6 instead of libstdc++.a.
>>>
>>> --no-static-libstdc++ has been added by [1] but it force
>>> linking statically by default.
>>>
>>> [1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615  
>>
>> Did you noticed this issue while building for qt5declarative issue?
>> On my pc, the static glibc wasn't installed.
> 
> I think the problem is qt5webengine specific as it is the only package compiling
> a host build tool GN....
> 
> Never observed the problem with qt5webengine, maybe because on OpenSUSE there is
> a static libstdc++ provided with the 'normal' libstdc++ devel package, eg.
> 	$ rpm -qf /usr/lib64/gcc/x86_64-suse-linux/9/libstdc++.a
> 	libstdc++6-devel-gcc9-9.3.1+git1296-1.7.x86_64

I'm using Fedora, and the packaging between Linux distros can be quite
different. See for example, perl packaging in Debian (all in one) and the perl
packaging in Fedora (several dozen of packages).

For the libstdc++, the libstdc++-devel package doesn't provide the static
library. I have to install libstdc++-static package for that.

Best regards,
Romain


> 
> Regards,
> Peter
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-24 15:58 [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host Romain Naour
  2020-05-26 21:02 ` Romain Naour
@ 2020-05-29 21:34 ` Thomas Petazzoni
  2020-05-29 21:48   ` Romain Naour
  2020-05-31 20:30 ` Yann E. MORIN
  2 siblings, 1 reply; 9+ messages in thread
From: Thomas Petazzoni @ 2020-05-29 21:34 UTC (permalink / raw)
  To: buildroot

On Sun, 24 May 2020 17:58:18 +0200
Romain Naour <romain.naour@gmail.com> wrote:

> +             gn_gen_args = --no-last-commit-position --out-path $$out_path \
> +                           --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
> +-                          --ld \"$$which($$QMAKE_LINK)\"
> ++                          --ld \"$$which($$QMAKE_LINK)\" \
> ++                          --no-static-libstdc++

If we have to pass this, doesn't it mean that the host tools are built
statically ? Why are they built statically ? They really shouldn't be
built statically at all. I believe this is what should be fixed, rather
than just avoiding specifically from linking statically with libstdc++.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-29 21:34 ` Thomas Petazzoni
@ 2020-05-29 21:48   ` Romain Naour
  2020-05-31 13:08     ` Thomas Petazzoni
  0 siblings, 1 reply; 9+ messages in thread
From: Romain Naour @ 2020-05-29 21:48 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

Le 29/05/2020 ? 23:34, Thomas Petazzoni a ?crit?:
> On Sun, 24 May 2020 17:58:18 +0200
> Romain Naour <romain.naour@gmail.com> wrote:
> 
>> +             gn_gen_args = --no-last-commit-position --out-path $$out_path \
>> +                           --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
>> +-                          --ld \"$$which($$QMAKE_LINK)\"
>> ++                          --ld \"$$which($$QMAKE_LINK)\" \
>> ++                          --no-static-libstdc++
> 
> If we have to pass this, doesn't it mean that the host tools are built
> statically ? Why are they built statically ? They really shouldn't be
> built statically at all. I believe this is what should be fixed, rather
> than just avoiding specifically from linking statically with libstdc++.

Without this option host tools are built statically because this option is
enabled by default.

Adding --no-static-libstdc++ allow to link dynamically with libc.so.6.

Best regards,
Romain

> 
> Thomas
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-29 21:48   ` Romain Naour
@ 2020-05-31 13:08     ` Thomas Petazzoni
  2020-05-31 13:20       ` Romain Naour
  0 siblings, 1 reply; 9+ messages in thread
From: Thomas Petazzoni @ 2020-05-31 13:08 UTC (permalink / raw)
  To: buildroot

On Fri, 29 May 2020 23:48:09 +0200
Romain Naour <romain.naour@gmail.com> wrote:

> > If we have to pass this, doesn't it mean that the host tools are built
> > statically ? Why are they built statically ? They really shouldn't be
> > built statically at all. I believe this is what should be fixed, rather
> > than just avoiding specifically from linking statically with libstdc++.  
> 
> Without this option host tools are built statically because this option is
> enabled by default.

Can't we remove this, and instead link dynamically the host tools ?

> Adding --no-static-libstdc++ allow to link dynamically with libc.so.6.

--no-static-libstdc++ changes how we link against libc.so.6 ? Shouldn't
it only affect how we link against libstdc++.so ?

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-31 13:08     ` Thomas Petazzoni
@ 2020-05-31 13:20       ` Romain Naour
  0 siblings, 0 replies; 9+ messages in thread
From: Romain Naour @ 2020-05-31 13:20 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

Le 31/05/2020 ? 15:08, Thomas Petazzoni a ?crit?:
> On Fri, 29 May 2020 23:48:09 +0200
> Romain Naour <romain.naour@gmail.com> wrote:
> 
>>> If we have to pass this, doesn't it mean that the host tools are built
>>> statically ? Why are they built statically ? They really shouldn't be
>>> built statically at all. I believe this is what should be fixed, rather
>>> than just avoiding specifically from linking statically with libstdc++.  
>>
>> Without this option host tools are built statically because this option is
>> enabled by default.
> 
> Can't we remove this, and instead link dynamically the host tools ?

Sorry, I don't understand.

When --no-static-libstdc++ was added [1], it's default value was "false".
It means link statically libstdc++ if --no-static-libstdc++ is not provided on
the command line.

[1]
https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615

> 
>> Adding --no-static-libstdc++ allow to link dynamically with libc.so.6.
> 
> --no-static-libstdc++ changes how we link against libc.so.6 ? Shouldn't
> it only affect how we link against libstdc++.so ?

Sorry, I meant libstdc++.so here... not libc.so.6.

Best regards,
Romain


> 
> Thomas
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host
  2020-05-24 15:58 [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host Romain Naour
  2020-05-26 21:02 ` Romain Naour
  2020-05-29 21:34 ` Thomas Petazzoni
@ 2020-05-31 20:30 ` Yann E. MORIN
  2 siblings, 0 replies; 9+ messages in thread
From: Yann E. MORIN @ 2020-05-31 20:30 UTC (permalink / raw)
  To: buildroot

Romain, All,

On 2020-05-24 17:58 +0200, Romain Naour spake thusly:
> While cross-compiling, qt5webengine is building a host tool but
> want to link the libstdc++ statically. This requires to install
> libstdc++-static package on the host (Fedora package name).
> 
> Otherwise the link fail with:
> 
>   [185/185] LINK gn
>   FAILED: gn
>   /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
>   /usr/bin/ld?: unable to find -lstdc++
>   [...]
>   Project ERROR: GN build error!
> 
> Add --no-static-libstdc++ argument to gn.pro to link to
> libstdc++.so.6 instead of libstdc++.a.
> 
> --no-static-libstdc++ has been added by [1] but it force
> linking statically by default.
> 
> [1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Cc: Ga?l Portay <gael.portay@collabora.com>

Applied to master, after rewriting the commit log with the extra details
and explanations you provided as replies in the thread. Thanks! :-)

Regards,
Yann E. MORIN.

> ---
>  ...ro-don-t-link-statically-with-libstc.patch | 51 +++++++++++++++++++
>  1 file changed, 51 insertions(+)
>  create mode 100644 package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> 
> diff --git a/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> new file mode 100644
> index 0000000000..dff3e6c849
> --- /dev/null
> +++ b/package/qt5/qt5webengine/0001-gn.pro-don-t-link-statically-with-libstc.patch
> @@ -0,0 +1,51 @@
> +From 7ae73da23ad998bd1e63ad213cf7a02e61191951 Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour@gmail.com>
> +Date: Sat, 23 May 2020 19:01:19 +0200
> +Subject: [PATCH] gn.pro: don't link statically with libstc++
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +While cross-compiling, qt5webengine is building a host tool but
> +want to link the libstdc++ statically. This requires to install
> +libstdc++-static package on the host (Fedora package name).
> +
> +Otherwise the link fail with:
> +
> +  [185/185] LINK gn
> +  FAILED: gn
> +  /usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
> +  /usr/bin/ld?: unable to find -lstdc++
> +  [...]
> +  Project ERROR: GN build error!
> +
> +Add --no-static-libstdc++ argument to gn.pro to link to
> +libstdc++.so.6 instead of libstdc++.a.
> +
> +--no-static-libstdc++ has been added by [1] but it force
> +linking statically by default.
> +
> +[1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615
> +
> +Signed-off-by: Romain Naour <romain.naour@gmail.com>
> +---
> + src/buildtools/gn.pro | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
> +index 033202e6..5dd8e241 100644
> +--- a/src/buildtools/gn.pro
> ++++ b/src/buildtools/gn.pro
> +@@ -20,7 +20,8 @@ build_pass|!debug_and_release {
> + 
> +             gn_gen_args = --no-last-commit-position --out-path $$out_path \
> +                           --cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
> +-                          --ld \"$$which($$QMAKE_LINK)\"
> ++                          --ld \"$$which($$QMAKE_LINK)\" \
> ++                          --no-static-libstdc++
> + 
> +             msvc:!clang_cl: gn_gen_args += --use-lto
> + 
> +-- 
> +2.25.4
> +
> -- 
> 2.25.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-05-31 20:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-24 15:58 [Buildroot] [PATCH] package/qt5/qt5webengine: don't link with libstdc++.a on the host Romain Naour
2020-05-26 21:02 ` Romain Naour
2020-05-26 21:13   ` Peter Seiderer
2020-05-27  5:19     ` Romain Naour
2020-05-29 21:34 ` Thomas Petazzoni
2020-05-29 21:48   ` Romain Naour
2020-05-31 13:08     ` Thomas Petazzoni
2020-05-31 13:20       ` Romain Naour
2020-05-31 20:30 ` Yann E. MORIN

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.