mbox series

[v2,0/7] Move gcc target libs installation to target package

Message ID 20230930075426.513345-1-thomas.petazzoni@bootlin.com
Headers show
Series Move gcc target libs installation to target package | expand

Message

Thomas Petazzoni Sept. 30, 2023, 7:54 a.m. UTC
Hello,

Currently, the gcc runtime libraries installed in
STAGING_DIR/TARGET_DIR are installed by host-gcc-final, a host
package. It works of course, but isn't very clean. But more
importantly, it prevents us from having a sane handling of licensing
for gcc. Indeed, the host gcc components are GPLv3, but the target
components of gcc are GPLv3 with the important linking exception.

In order to handle this, this series proposes to split the
host-gcc-final package into a host package (which already exists) and
a target package (which is added as part of this series). The logic
installing the gcc runtime libraries is moved to the target gcc-final
package. Once this is done, the series adds the relevant licensing
information to host-gcc-initial, host-gcc-final and gcc-final.

Changes from v1:

- Instead of introducing a separate gcc-runtime package, keep the
  logic in gcc-final, but with a target variant package. This was
  suggested by Romain Naour and indeed makes a lot of sense.

- Split into finer grained commits now that we're keeping things in
  gcc-final.mk.

Thomas Petazzoni (7):
  package/gcc/gcc-final: rework installation of libgcc_s/libatomic
  package/gcc/gcc-final: remove useless comment and empty variable
  package/gcc/gcc-final: move to make foreach loops
  package/gcc/gcc-final: split lib install by target/staging
  package/gcc/gcc-final: move hook further down
  package/gcc/gcc-final: add a target variant in charge of target
    installation
  package/gcc: add license information

 package/gcc/Config.in                         |  3 +
 package/gcc/gcc-final/gcc-final.mk            | 97 ++++++++-----------
 package/gcc/gcc-initial/gcc-initial.mk        |  2 +
 package/gcc/gcc.hash                          |  7 ++
 package/gcc/gcc.mk                            |  3 +
 toolchain/toolchain-buildroot/Config.in       |  1 +
 .../toolchain-buildroot.mk                    |  4 +-
 7 files changed, 60 insertions(+), 57 deletions(-)
 create mode 100644 package/gcc/Config.in

Comments

Romain Naour Sept. 30, 2023, 1:16 p.m. UTC | #1
Hello Thomas,

Le 30/09/2023 à 09:54, Thomas Petazzoni via buildroot a écrit :
> Hello,
> 
> Currently, the gcc runtime libraries installed in
> STAGING_DIR/TARGET_DIR are installed by host-gcc-final, a host
> package. It works of course, but isn't very clean. But more
> importantly, it prevents us from having a sane handling of licensing
> for gcc. Indeed, the host gcc components are GPLv3, but the target
> components of gcc are GPLv3 with the important linking exception.
> 
> In order to handle this, this series proposes to split the
> host-gcc-final package into a host package (which already exists) and
> a target package (which is added as part of this series). The logic
> installing the gcc runtime libraries is moved to the target gcc-final
> package. Once this is done, the series adds the relevant licensing
> information to host-gcc-initial, host-gcc-final and gcc-final.

Series applied to master.

Best regards,
Romain


> 
> Changes from v1:
> 
> - Instead of introducing a separate gcc-runtime package, keep the
>   logic in gcc-final, but with a target variant package. This was
>   suggested by Romain Naour and indeed makes a lot of sense.
> 
> - Split into finer grained commits now that we're keeping things in
>   gcc-final.mk.
> 
> Thomas Petazzoni (7):
>   package/gcc/gcc-final: rework installation of libgcc_s/libatomic
>   package/gcc/gcc-final: remove useless comment and empty variable
>   package/gcc/gcc-final: move to make foreach loops
>   package/gcc/gcc-final: split lib install by target/staging
>   package/gcc/gcc-final: move hook further down
>   package/gcc/gcc-final: add a target variant in charge of target
>     installation
>   package/gcc: add license information
> 
>  package/gcc/Config.in                         |  3 +
>  package/gcc/gcc-final/gcc-final.mk            | 97 ++++++++-----------
>  package/gcc/gcc-initial/gcc-initial.mk        |  2 +
>  package/gcc/gcc.hash                          |  7 ++
>  package/gcc/gcc.mk                            |  3 +
>  toolchain/toolchain-buildroot/Config.in       |  1 +
>  .../toolchain-buildroot.mk                    |  4 +-
>  7 files changed, 60 insertions(+), 57 deletions(-)
>  create mode 100644 package/gcc/Config.in
>