This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: libsanitizer merge from upstream r221802


On Mon, Dec 29, 2014 at 07:36:42PM +0100, David Abdurachmanov wrote:
> I believe this is breaking bootstrap on aarch64-linux-gnu with kernels <=3.15,
> 3.16 and above are fine.
> 
> __kernel_old_{gid,uid}_t were changed in 3.16 from unsigned int to unsigned
> short. <=3.15 kernel will trigger static asserts in libsanitizer while
> compiling GCC.
> 
> I created PR: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64435 (includes all
> the details).
> 
> Attaching a patch with resolved issues on F19 + 3.12 kernel (also bootstrapped
> in QEMU with F21 rootfs + 3.17 kernel) on aarch64-linux-gnu.

That looks very much wrong, ABI can't depend on what kernel headers you are
compiling against.
So, better would be just to ifdef out the check and always use 16-bit
__kernel_old_*_t on aarch64.  Are the
getresuid16/getresgid16/getgroups16/setgroups16 syscalls wired at all on
aarch64?  If not, then supposedly the sanitizer_common_syscalls.inc stuff
for these syscalls should be ifdefed out on aarch64 (or any other arch that
doesn't have those syscalls).

	Jakub


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