Opened on 08/31/21 at 20:01:54
Last modified on 11/22/23 at 06:12:50
#4510 assigned defect
Fix ILP32 multilib variant in newlib for AArch64
Reported by: | Ryan Long | Owned by: | Sebastian Huber |
---|---|---|---|
Priority: | normal | Milestone: | 6.1 |
Component: | arch/aarch64 | Version: | 6 |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description (last modified by Joel Sherrill)
This flag is needed to force the generation of AArch64 assembly from C sources instead of using the hand-optimized code in newlib. The existing hand-optimized code has bugs for ILP32. There are multiple technical options to address this and lots of discussion:
- Update newlib from upstream ARM source code
- Add -DPREFER_SIZE_OVER_SPEED and always use C versions on aarch64
- Fix existing code
Attachments (3)
Change History (17)
Changed on 09/03/21 at 12:31:34 by Ryan Long
Attachment: | 0001-configure.host-Add-DPREFER_SIZE_OVER_SPEED.patch added |
---|
comment:1 Changed on 09/03/21 at 16:36:21 by Ryan Long
comment:2 follow-up: 3 Changed on 09/07/21 at 22:56:37 by Chris Johns
Who is fixing the upstream?
I have not been following newlib so is there a link to the discussion about this?
comment:3 Changed on 09/08/21 at 13:25:42 by Ryan Long
Replying to Chris Johns:
Who is fixing the upstream?
Kinsey has already gotten a fix merged with ARM. Newlib hasn't pulled those changes in yet though.
I have not been following newlib so is there a link to the discussion about this?
Here are the links to the discussions
https://sourceware.org/pipermail/newlib/2020/017781.html
https://sourceware.org/pipermail/newlib/2020/018169.html
https://sourceware.org/pipermail/newlib/2020/018197.html
comment:4 Changed on 09/09/21 at 08:28:12 by Chris Johns
As discussed on devel@
the ILP32 support should be fixed or patched in newlib and we should not cause an performance regressions for LP64 targets.
comment:5 Changed on 09/09/21 at 13:42:54 by Joel Sherrill
Description: | modified (diff) |
---|---|
Summary: | Add -DPREFER_SIZE_OVER_SPEED for AArch64 builds → Fix ILP32 multilib variant in newlib for AArch64 |
Changed on 09/10/21 at 21:42:33 by Ryan Long
Attachment: | 0001-aarch64-Add-ILP32-ABI-support-in-assembly.patch added |
---|
comment:6 Changed on 09/20/21 at 20:37:49 by Ryan Long <ryan.long@…>
comment:7 Changed on 09/20/21 at 20:37:52 by Ryan Long <ryan.long@…>
comment:8 Changed on 12/16/21 at 15:56:03 by Kinsey Moore
Resolution: | → fixed |
---|---|
Status: | new → closed |
This has been verified as fixed thanks to Ryan's patches.
Changed on 03/17/22 at 21:17:26 by Kinsey Moore
Attachment: | 0001-aarch64-Add-ILP32-ABI-support-in-assembly-v2.patch added |
---|
Fix patch for current newlib
comment:9 Changed on 03/17/22 at 21:53:24 by Kinsey Moore
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Reopening this since it needs to be tracked until the patch is merged with newlib from the upstream optimized-routines repo.
comment:10 Changed on 11/29/22 at 23:04:24 by Chris Johns
Milestone: | 6.1 → 7.1 |
---|---|
Version: | 6 → 7 |
Moved until ARM adds a correct patch to newlib.
comment:11 Changed on 07/27/23 at 15:01:56 by Sebastian Huber
Milestone: | 7.1 → 6.1 |
---|---|
Owner: | set to Sebastian Huber |
Status: | reopened → assigned |
Version: | 7 → 6 |
I guess you can wait forever if you want ARM to get this fixed. There are open issues in the ARM code:
https://github.com/ARM-software/optimized-routines/issues/56
comment:12 Changed on 07/27/23 at 15:11:38 by Kinsey Moore
I've actually had some luck getting changes into optimized-routines. The hard part is getting them merged into newlib.
comment:13 Changed on 07/27/23 at 15:12:55 by Sebastian Huber
I prepared some patches for Newlib, however, there is this open issue with the notes.
This patch is only temporary. It will be removed once it is fixed upstream.