[PATCH v2] bfd: Fix Solaris/x86 ELF_MAXPAGESIZE
Rainer Orth
ro@CeBiTec.Uni-Bielefeld.DE
Tue Aug 19 09:13:22 GMT 2025
Jan Beulich <jbeulich@suse.com> writes:
> On 19.08.2025 09:23, Rainer Orth wrote:
>> I noticed that the alignment of the .text and .data sections on
>> Solaris/x86 doesn't match what /bin/ld does: gld uses the original i386
>> psABI default of 0x1000, while Solaris has moved to larger values as can
>> be seen both in the Oracle Solaris 11.4 Linkers and Libraries Guide,
>> ch. 15, Program Loading and Dynamic Linking, p. 15-6 and the system
>> headers (<sys/elf_{i386,amd64}.h>) that have
>>
>> #define ELF_386_MAXPGSZ 0x10000
>> #define ELF_AMD64_MAXPGSZ 0x100000 /* maximum page size */
>>
>> while the Solaris/SPARC values are already correct.
>>
>> #define ELF_SPARC_MAXPGSZ 0x10000 /* maximum page size */
>> #define ELF_SPARCV9_MAXPGSZ 0x100000
>>
>> To fix this, on i386 it's sufficient to redefine ELF_MAXPAGESIZE. On
>> x86_64, unlike i386, ELF_COMMONPAGESIZE is hardcoded as 0x1000, the
>> default, so setting ELF_MAXPAGESIZE has no effect on ELF_P_ALIGN.
>> Setting ELF_COMMONPAGESIZE to ELF_MAXPAGESIZE, too, fixes that and
>> brings both target in sync.
>>
>> Tested on {i386,amd64}-pc-solaris2.11, {i686,x86_64}-pc-linux-gnu, and
>> amd64-pc-freebsd14.0.
>>
>> Ok for trunk?
>
> Okay with one further cosmetic adjustment: In the last hunk, please either
> move your addition past ELF_MACHINE_CODE handling, or simply take the
> opportunity and purge that (which was necessary at some point, but isn't
> anymore, with L1OM and K1OM support removed).
I'd rather remove it since it just sets the default value again.
Should I just commit after retesting with ChangeLog augmented to
<elf32-x86-64> (ELF_MAXPAGESIZE): Restore previous value.
(ELF_MACHINE_CODE): Remove.
or rather post a v3?
Thanks.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
More information about the Binutils
mailing list