mbox series

[0/9] Fix binutils bug 21464 and remove it

Message ID 20210503111350.2933319-1-giulio.benetti@benettiengineering.com
Headers show
Series Fix binutils bug 21464 and remove it | expand

Message

Giulio Benetti May 3, 2021, 11:13 a.m. UTC
This patchset fixes binutils bug 21464 and fixes libgeos build failure
by introducing the gcc option flag -mcmodel. This is done by adding
upstreamed binutils and gcc patches. Note tha this way buildroot
toolchains can be considered bug binutils 21464 free and the only other
OpenRisc toolchain supported is the external Bootlin one. So this
patchset has to be considered valid once Bootlin updates its OpenRisc
by adding binutils and gcc patches that are added with patches in this
patchset.

Giulio Benetti (9):
  package/binutils: update or1k patches for plt link version with
    upstream
  package/binutils: add upstream backported patches to support
    -mcmodel=large gcc option
  package/gcc: add upstream patches that introduce -mcmodel=large option
    for or1k
  package/libgeos: fix build failure due to missing -mcmodel=large
  package/protobuf: fix build failure due to missing -mcmodel=large
  toolchain: remove binutils bug 21464
  package/libgeos: remove binutils bug 21464 dependency
  package/postgis: remove libgeos binutils bug 21464 inheritance
  package/protobuf: remove binutils bug 21464 dependency

 .../0010-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
 ...ith-plt-link-failure-for-local-calls.patch |  59 +++
 ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
 ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
 ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
 .../0003-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
 ...ith-plt-link-failure-for-local-calls.patch |  59 +++
 ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
 ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
 ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
 .../0003-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
 ...ith-plt-link-failure-for-local-calls.patch |  59 +++
 ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
 ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
 ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
 .../0003-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
 ...ith-plt-link-failure-for-local-calls.patch |  59 +++
 ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
 ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
 ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
 ...-mcmodel-option-to-handle-large-GOTs.patch | 200 +++++++
 ...-cmodel-large-when-building-crtstuff.patch |  60 +++
 ...-mcmodel-option-to-handle-large-GOTs.patch | 201 +++++++
 ...-cmodel-large-when-building-crtstuff.patch |  60 +++
 package/libgeos/Config.in                     |   4 +-
 package/libgeos/libgeos.mk                    |   4 +
 package/postgis/Config.in                     |   4 +-
 package/protobuf/Config.in                    |   1 -
 package/protobuf/protobuf.mk                  |   4 +
 toolchain/Config.in                           |   6 -
 30 files changed, 4035 insertions(+), 153 deletions(-)
 delete mode 100644 package/binutils/2.32/0010-bfd-elf32-or1k-fix-ld-assert.patch
 create mode 100644 package/binutils/2.32/0010-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
 create mode 100644 package/binutils/2.32/0011-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
 create mode 100644 package/binutils/2.32/0012-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
 create mode 100644 package/binutils/2.32/0013-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
 delete mode 100644 package/binutils/2.34/0003-bfd-elf32-or1k-fix-ld-assert.patch
 create mode 100644 package/binutils/2.34/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
 create mode 100644 package/binutils/2.34/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
 create mode 100644 package/binutils/2.34/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
 create mode 100644 package/binutils/2.34/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
 delete mode 100644 package/binutils/2.35.2/0003-bfd-elf32-or1k-fix-ld-assert.patch
 create mode 100644 package/binutils/2.35.2/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
 create mode 100644 package/binutils/2.35.2/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
 create mode 100644 package/binutils/2.35.2/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
 create mode 100644 package/binutils/2.35.2/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
 delete mode 100644 package/binutils/2.36.1/0003-bfd-elf32-or1k-fix-ld-assert.patch
 create mode 100644 package/binutils/2.36.1/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
 create mode 100644 package/binutils/2.36.1/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
 create mode 100644 package/binutils/2.36.1/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
 create mode 100644 package/binutils/2.36.1/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
 create mode 100644 package/gcc/10.3.0/0002-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch
 create mode 100644 package/gcc/10.3.0/0003-or1k-Use-cmodel-large-when-building-crtstuff.patch
 create mode 100644 package/gcc/9.3.0/0006-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch
 create mode 100644 package/gcc/9.3.0/0007-or1k-Use-cmodel-large-when-building-crtstuff.patch

Comments

Arnout Vandecappelle May 21, 2021, 8:46 a.m. UTC | #1
Hi Giulio,

 Thanks for these!

On 03/05/2021 13:13, Giulio Benetti wrote:
> This patchset fixes binutils bug 21464 and fixes libgeos build failure
> by introducing the gcc option flag -mcmodel. This is done by adding
> upstreamed binutils and gcc patches. Note tha this way buildroot
> toolchains can be considered bug binutils 21464 free and the only other
> OpenRisc toolchain supported is the external Bootlin one. So this
> patchset has to be considered valid once Bootlin updates its OpenRisc
> by adding binutils and gcc patches that are added with patches in this
> patchset.
> 
> Giulio Benetti (9):
>   package/binutils: update or1k patches for plt link version with
>     upstream
>   package/binutils: add upstream backported patches to support
>     -mcmodel=large gcc option
>   package/gcc: add upstream patches that introduce -mcmodel=large option
>     for or1k

 Patches 1-3 applied to master. Note that I had to fix all of them up because
they failed check-package. The [PATCH N/M] things are not allowed. Ideally, when
you add patches, you shouldn't just pluck them from the mailing list. Instead,
you should apply them in a git clone - preferably by cherry-picking with `git
cherry-pick -x <sha1>` if they have been applied upstream. Then you should
regenerate *all* patches `git format-patch -N <base>..`. Then verify that only
the patches that you intended to change have actually changed.


>   package/libgeos: fix build failure due to missing -mcmodel=large
>   package/protobuf: fix build failure due to missing -mcmodel=large

 As mentioned, these can only be applied after Thomas updates the bootlin
toolchains *and* the patch to update them in Buildroot has been merged. That's
not going to happen on master :-)

>   toolchain: remove binutils bug 21464
>   package/libgeos: remove binutils bug 21464 dependency
>   package/postgis: remove libgeos binutils bug 21464 inheritance
>   package/protobuf: remove binutils bug 21464 dependency

 These four should be squashed into a single patch.


 Regards,
 Arnout

> 
>  .../0010-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
>  ...ith-plt-link-failure-for-local-calls.patch |  59 +++
>  ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
>  ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
>  ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
>  .../0003-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
>  ...ith-plt-link-failure-for-local-calls.patch |  59 +++
>  ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
>  ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
>  ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
>  .../0003-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
>  ...ith-plt-link-failure-for-local-calls.patch |  59 +++
>  ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
>  ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
>  ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
>  .../0003-bfd-elf32-or1k-fix-ld-assert.patch   |  35 --
>  ...ith-plt-link-failure-for-local-calls.patch |  59 +++
>  ...elocation-R_OR1K_GOT_AHI16-for-gotha.patch | 256 +++++++++
>  ...K_GOT16-overflow-failures-in-presenc.patch |  61 +++
>  ...ge-plt_relocs-when-generating-plt-en.patch | 500 ++++++++++++++++++
>  ...-mcmodel-option-to-handle-large-GOTs.patch | 200 +++++++
>  ...-cmodel-large-when-building-crtstuff.patch |  60 +++
>  ...-mcmodel-option-to-handle-large-GOTs.patch | 201 +++++++
>  ...-cmodel-large-when-building-crtstuff.patch |  60 +++
>  package/libgeos/Config.in                     |   4 +-
>  package/libgeos/libgeos.mk                    |   4 +
>  package/postgis/Config.in                     |   4 +-
>  package/protobuf/Config.in                    |   1 -
>  package/protobuf/protobuf.mk                  |   4 +
>  toolchain/Config.in                           |   6 -
>  30 files changed, 4035 insertions(+), 153 deletions(-)
>  delete mode 100644 package/binutils/2.32/0010-bfd-elf32-or1k-fix-ld-assert.patch
>  create mode 100644 package/binutils/2.32/0010-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
>  create mode 100644 package/binutils/2.32/0011-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
>  create mode 100644 package/binutils/2.32/0012-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
>  create mode 100644 package/binutils/2.32/0013-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
>  delete mode 100644 package/binutils/2.34/0003-bfd-elf32-or1k-fix-ld-assert.patch
>  create mode 100644 package/binutils/2.34/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
>  create mode 100644 package/binutils/2.34/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
>  create mode 100644 package/binutils/2.34/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
>  create mode 100644 package/binutils/2.34/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
>  delete mode 100644 package/binutils/2.35.2/0003-bfd-elf32-or1k-fix-ld-assert.patch
>  create mode 100644 package/binutils/2.35.2/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
>  create mode 100644 package/binutils/2.35.2/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
>  create mode 100644 package/binutils/2.35.2/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
>  create mode 100644 package/binutils/2.35.2/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
>  delete mode 100644 package/binutils/2.36.1/0003-bfd-elf32-or1k-fix-ld-assert.patch
>  create mode 100644 package/binutils/2.36.1/0003-or1k-Fix-issue-with-plt-link-failure-for-local-calls.patch
>  create mode 100644 package/binutils/2.36.1/0004-or1k-Implement-relocation-R_OR1K_GOT_AHI16-for-gotha.patch
>  create mode 100644 package/binutils/2.36.1/0005-or1k-Avoid-R_OR1K_GOT16-overflow-failures-in-presenc.patch
>  create mode 100644 package/binutils/2.36.1/0006-or1k-Support-large-plt_relocs-when-generating-plt-en.patch
>  create mode 100644 package/gcc/10.3.0/0002-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch
>  create mode 100644 package/gcc/10.3.0/0003-or1k-Use-cmodel-large-when-building-crtstuff.patch
>  create mode 100644 package/gcc/9.3.0/0006-or1k-Add-mcmodel-option-to-handle-large-GOTs.patch
>  create mode 100644 package/gcc/9.3.0/0007-or1k-Use-cmodel-large-when-building-crtstuff.patch
>
Giulio Benetti May 21, 2021, 2:21 p.m. UTC | #2
Hi Arnout,

On 5/21/21 10:46 AM, Arnout Vandecappelle wrote:
>   Hi Giulio,
> 
>   Thanks for these!

Happy to help :-)

> On 03/05/2021 13:13, Giulio Benetti wrote:
>> This patchset fixes binutils bug 21464 and fixes libgeos build failure
>> by introducing the gcc option flag -mcmodel. This is done by adding
>> upstreamed binutils and gcc patches. Note tha this way buildroot
>> toolchains can be considered bug binutils 21464 free and the only other
>> OpenRisc toolchain supported is the external Bootlin one. So this
>> patchset has to be considered valid once Bootlin updates its OpenRisc
>> by adding binutils and gcc patches that are added with patches in this
>> patchset.
>>
>> Giulio Benetti (9):
>>    package/binutils: update or1k patches for plt link version with
>>      upstream
>>    package/binutils: add upstream backported patches to support
>>      -mcmodel=large gcc option
>>    package/gcc: add upstream patches that introduce -mcmodel=large option
>>      for or1k
> 
>   Patches 1-3 applied to master. Note that I had to fix all of them up because
> they failed check-package. The [PATCH N/M] things are not allowed. Ideally, when
> you add patches, you shouldn't just pluck them from the mailing list. Instead,
> you should apply them in a git clone - preferably by cherry-picking with `git
> cherry-pick -x <sha1>` if they have been applied upstream. Then you should
> regenerate *all* patches `git format-patch -N <base>..`. Then verify that only
> the patches that you intended to change have actually changed.

Oh right, thank you for modifying them, I've forgotten to check-package 
them.

> 
>>    package/libgeos: fix build failure due to missing -mcmodel=large
>>    package/protobuf: fix build failure due to missing -mcmodel=large
> 
>   As mentioned, these can only be applied after Thomas updates the bootlin
> toolchains *and* the patch to update them in Buildroot has been merged. That's
> not going to happen on master :-)

Ok

>>    toolchain: remove binutils bug 21464
>>    package/libgeos: remove binutils bug 21464 dependency
>>    package/postgis: remove libgeos binutils bug 21464 inheritance
>>    package/protobuf: remove binutils bug 21464 dependency
> 
>   These four should be squashed into a single patch.

I've just sent a v2 for this:
https://patchwork.ozlabs.org/project/buildroot/patch/20210521140942.3032331-1-giulio.benetti@benettiengineering.com/


Kind regards
Yann E. MORIN May 21, 2021, 9:26 p.m. UTC | #3
Giulio, Arnout, All,

On 2021-05-21 16:21 +0200, Giulio Benetti spake thusly:
> On 5/21/21 10:46 AM, Arnout Vandecappelle wrote:
> >On 03/05/2021 13:13, Giulio Benetti wrote:
> >>   toolchain: remove binutils bug 21464
> >>   package/libgeos: remove binutils bug 21464 dependency
> >>   package/postgis: remove libgeos binutils bug 21464 inheritance
> >>   package/protobuf: remove binutils bug 21464 dependency
> >  These four should be squashed into a single patch.
> I've just sent a v2 for this:
> https://patchwork.ozlabs.org/project/buildroot/patch/20210521140942.3032331-1-giulio.benetti@benettiengineering.com/

As a consequence, I've marked the original 4 as supersded in Patchwork,
which only leaves the remaining two:

    package/libgeos: fix build failure due to missing -mcmodel=large
    package/protobuf: fix build failure due to missing -mcmodel=large 

Thanks!

Regards,
Yann E. MORIN.
Giulio Benetti May 21, 2021, 9:28 p.m. UTC | #4
On 5/21/21 11:26 PM, Yann E. MORIN wrote:
> Giulio, Arnout, All,
> 
> On 2021-05-21 16:21 +0200, Giulio Benetti spake thusly:
>> On 5/21/21 10:46 AM, Arnout Vandecappelle wrote:
>>> On 03/05/2021 13:13, Giulio Benetti wrote:
>>>>    toolchain: remove binutils bug 21464
>>>>    package/libgeos: remove binutils bug 21464 dependency
>>>>    package/postgis: remove libgeos binutils bug 21464 inheritance
>>>>    package/protobuf: remove binutils bug 21464 dependency
>>>   These four should be squashed into a single patch.
>> I've just sent a v2 for this:
>> https://patchwork.ozlabs.org/project/buildroot/patch/20210521140942.3032331-1-giulio.benetti@benettiengineering.com/
> 
> As a consequence, I've marked the original 4 as supersded in Patchwork,
> which only leaves the remaining two:
> 
>      package/libgeos: fix build failure due to missing -mcmodel=large
>      package/protobuf: fix build failure due to missing -mcmodel=large

Oh yes, I've forgotten, thank you :-)

Kind regards