On Sat, Mar 15, 2025 at 10:27 PM Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > Am 15. März 2025 23:17:58 MEZ schrieb Sam Edwards <cfswo...@gmail.com>: > >Hello again U-Boot list, > > > >This is v2 of my "misc. fixes" series, sent to prepare the codebase for more > >direct LLVM support in the near future. This series contains several fixes > >that > >I found in the process of preparing that support and which address issues > >independent of any future feature or enhancement. I am sending these now, > >both > >so that their inclusion is not delayed by discussion on my upcoming series > >and > >to make the latter more manageable. > > > >PLEASE APPLY PARTIALLY! I have tried to sort these so that the most > >straightforward changes come first. If any patch proves contentious, you can > >either skip it or stop applying the series at that point. Any patches that > >need > >revisions will be included in a future series, but I'm trying to avoid there > >being a v3 of *this* series. :) > > > >Happy Saturday, > >Sam > > Hello Sam, > > I wonder why there are only ARM and X86 specific patches in this series . > Wouldn't some of the changes also be needed for RISC-V and other > architectures?
Hi Heinrich, The breakdown of arch-specific patches is: 6 for ARM, 1 for RISC-V, 1 for X86. This distribution was only because ARM needed more work, not because it received more attention. (Some architectures, like "sandbox," required no fixes, and MIPS appears to need only compiler-side improvements at this time, for example.) > > For EFI we have carved out a linker script include file to harmonize the > linker scripts used by ARM and RISC-V. Shouldn't we do the same for main > U-Boot? I like the idea in principle, but I'm skeptical because EFI applications have a much more uniform and constrained memory layout compared to raw binaries on [vendor-specific board]. So while it's possible to mostly unify the memory layout, doing so would take significantly more effort than with EFI. Plus, most of our supported architectures don't have EFI at all, so unifying EFI across a few architectures isn't a strong indicator that this approach would scale well. Also, Linux doesn't do this either, and I'd expect they would have if it were a good idea. That said, I'd prefer to keep this patchset focused on fixing these immediate issues rather than reworking the linker scripts more broadly. If we want to explore that as a separate effort, I think it would need a deeper discussion. Happy Sunday, Sam > > Best regards > > Heinrich > > > > >Changes v1->v2: > >- Carried forward acked/reviewed tags > >- Dropped two patches (one was incorrect, the other can be fixed differently) > >- Minor phrasing changes to commit messages > >- Instead of removing `ENTRY(_start)`, I instead added `.globl _start` where > > appropriate, in the EFI apps > > > >Sam Edwards (15): > > arm: Remove stray .mmutable reference in linker script > > arm: Exclude eabi_compat from LTO > > arm: Add __aeabi_memclr in eabi_compat > > arm: Add aligned-memory aliases to eabi_compat > > arm: Discard unwanted sections in linker script > > arm: Replace 'adrl' in EFI crt0 > > x86: Fix call64's section flags > > makefile: Avoid objcopy --gap-fill for .hex/.srec > > makefile: Add `norelro` linker option > > makefile: Add READELF command variable > > arm: riscv: efi: Export _start symbol from crt0_*_efi stubs > > efi_loader: Move .dynamic out of .text in EFI > > scripts/Makefile.lib: efi: Preserve the .dynstr section as well > > spl: riscv: opensbi: Error on misaligned FDT > > spl: Align FDT load address > > > > Makefile | 14 ++++++++------ > > arch/arm/cpu/u-boot.lds | 29 ++++++++++------------------- > > arch/arm/lib/Makefile | 1 + > > arch/arm/lib/crt0_aarch64_efi.S | 1 + > > arch/arm/lib/crt0_arm_efi.S | 4 +++- > > arch/arm/lib/eabi_compat.c | 17 +++++++++++++++++ > > arch/riscv/lib/crt0_riscv_efi.S | 1 + > > arch/x86/cpu/i386/call64.S | 2 +- > > common/spl/spl_fit.c | 2 +- > > common/spl/spl_opensbi.c | 5 +++++ > > lib/efi_loader/elf_efi.ldsi | 6 +++--- > > scripts/Makefile.lib | 4 ++-- > > 12 files changed, 53 insertions(+), 33 deletions(-) > > >