Aarch64 kernel with 32bit userspace question

Marek Vasut marex at denx.de
Thu Feb 9 03:14:22 PST 2017


On 02/09/2017 11:51 AM, Ard Biesheuvel wrote:
> On 9 February 2017 at 10:14, Marek Vasut <marex at denx.de> wrote:
>> Hi,
>>
>> I'm trying multilib userland on aarch64, but I'm running into a problem.
>> I have a simple test code:
>>
>> -->8--
>> #include <signal.h>
>>
>> int main(void) {
>>     return 0;
>> }
>> --8<--
>>
>> If I compile that with aarch64 gcc , it compiles just fine.
>>
>> If I compile the same thing with 32bit armv7ahf multilib gcc, the
>> build fails on "unknown type name '__uint128_t'". This comes from
>> arch/arm64/include/uapi/asm/sigcontext.h , which has __uint128_t in
>> struct fpsimd_context {} . The signal.h includes that (through a few
>> glibc headers) and that's what triggers the failure. __uint128_t is
>> defined on aarch64 , but it is not on armv7a (32bit).
>>
> 
> This is a toolchain or glibc bug: the arm64 version of that header
> should never be pulled in when using a AArch32 toolchain, regardless
> of whether you run it on arm64, ARM (or x86, for that matter)

Aha. So which version of the header should be pulled in ? The one from
arch/arm/include/uapi/asm/sigcontext.h (that doesn't make much sense to
me) ?

-- 
Best regards,
Marek Vasut



More information about the linux-arm-kernel mailing list