On Fri, Oct 24, 2014 at 8:44 AM, Christophe Lyon
<christophe.l...@linaro.org> wrote:
> On 29 September 2014 15:01, Christophe Lyon <christophe.l...@linaro.org> 
> wrote:
>> On 26 September 2014 23:05, Andreas Schwab <sch...@linux-m68k.org> wrote:
>>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34c65c4
>>>
>>>         * sanitizer_common/sanitizer_platform_limits_posix.h
>>>         (__sanitizer___kernel_old_uid_t, __sanitizer___kernel_old_gid_t)
>>>         [__aarch64__]: Define to unsigned short.
>>>
>>
>> Thanks for pointing this.
>>
>> My understanding is that this kind of patch has to be submitted to the
>> libsanitizer maintainers via the LLVM project.
>>
>> I'm going to take care of it.
>>
>> Christophe.
>>
>
> Hi,
>
> Although I tried to speed things up, this patch has not yet made it to
> GCC trunk, but it has been committed in upstream libsanitizer.
>
> While testing a cherry-pick of the relevant commit, I realized that we
> already have aarch64 machines running older kernels, and applying this
> patch means GCC would no longer build on such configurations.
>
> I'm unsure about the desirable approach:
> A- modify upsteam libsanitizer so that
> __sanitizer___kernel_old_[gu]id_t are defined to match the definition
> of the kernel headers used to build GCC
> B- drop backward compatibility and make it impossible to build
> gcc+libsanitizer on aarch64 with a kernel older than 3.15.3
>
> A: means I have to iterate with upstream libsanitizer, to discuss &
> agree on a patch, then cherry-pick it to GCC
> B: I can do it now, but since 3.15.3 is rather new, it's a bit harsh
> for users, and maybe a libsanitizer/configure.tgt update would be
> desirable to cleanly prevent trying to build libsanitizer in a no
> longer supported configuration.
>
> It also means that binary toolchains have another implicit dependency
> on the kernel versions (runtime and build-time ones).

The binary toolchain I am not worried about.  I and others use either
3.10 or 3.14 since those are the two long term supported kernels.

Thanks,
Andrew


>
>
> Thanks,
>
> Christophe.
>
>
>
>
>>> ---
>>>  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git 
>>> a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 
>>> b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
>>> index caa36a4..139fe0a 100644
>>> --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
>>> +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
>>> @@ -470,7 +470,7 @@ namespace __sanitizer {
>>>    typedef long __sanitizer___kernel_off_t;
>>>  #endif
>>>
>>> -#if defined(__powerpc__) || defined(__aarch64__) || defined(__mips__)
>>> +#if defined(__powerpc__) || defined(__mips__)
>>>    typedef unsigned int __sanitizer___kernel_old_uid_t;
>>>    typedef unsigned int __sanitizer___kernel_old_gid_t;
>>>  #else
>>> --
>>> 2.1.1
>>>
>>> --
>>> Andreas Schwab, sch...@linux-m68k.org
>>> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
>>> "And now for something completely different."

Reply via email to