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."