This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] x32: Set GLRO(dl_platform) to "x86_64" by default [BZ #22363]


On Mon, Oct 30, 2017 at 2:47 AM, Florian Weimer <fweimer@redhat.com> wrote:
> On 10/30/2017 08:05 AM, Andreas Schwab wrote:
>>
>> On Okt 29 2017, "H.J. Lu" <hjl.tools@gmail.com> wrote:
>>
>>> Set dl_platform to "x86_64" for x32 by default since kernel may set it
>>> to "i686".
>>
>>
>> Why does it do that?  Isn't that a kernel bug?
>
>
> The whole thing is a bit iffy.  Why does the kernel set AT_PLATFORM to i686
> when running on a x86_64 machine?  x86_64 would make more sense because it

Before x32 has 32-bit address space, it uses

include/asm/elf.h:#define COMPAT_ELF_PLATFORM         ("i686")

It is correct for i386 program, but incorrect for x32 program.

> allows the loader to select libraries which were compiled with
> -march=x86-64.  I think AT_PLATFORM should be about CPU capabilities, not
> the initial CPU mode after process creation.  The latter requires separate
> search paths anyway.
>

The whole AT_PLATFORM was useful before we implemented early CPUID
check in glibc.

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]