hanchenye-llvm-project/compiler-rt
Kostya Serebryany 9d91336a83 [compiler-rt] adjust platform_limits_linux.cc #include of posix_types
Summary:
Hello,

Building a recent gcc on a powerpc-linux system advertsing:

 Red Hat Enterprise Linux Server release 5.10 (Tikanga)

we stumbled on a compilation error on a file originating
from compiler-rt/lib/sanitizer-common.

sanitizer_platform_limits_linux.cc #includes asm/posix_types.h,
which, on our system, uses __kernel_fd_set and associated macros.
These aren't defined at the point of their use, and the compilation
fails with symptoms like:

  In file included from ../../../../src/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc:29:0:
  /usr/include/asm/posix_types.h:72:51: error: '__kernel_fd_set' has not been declared
  static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
  ...

The attached patch is a suggestion to fix this, by including linux/posix_types.h
instead of asm/posix_types.h. linux/posix_types defines the necessary types and
macros, then #includes asm/posix_types.h.

We have been using it locally for gcc without problems for a couple of years
on powerpc, x86 and x86_64-linux platforms. It is still needed for gcc-6 on
our powerpc host and applies cleanly on the compiler-rt trunk.

Comments ?

Thanks much in advance for your feedback,

With Kind Regards,

Olivier


Reviewers: llvm-commits, kcc

Subscribers: kcc, kubabrecka

Differential Revision: http://reviews.llvm.org/D19799

llvm-svn: 268283
2016-05-02 19:10:48 +00:00
..
cmake [CMake] Adding another missing include. NFC. 2016-04-28 21:16:45 +00:00
include [libFuzzer] extend the weak memcmp/strcmp/strncmp interceptors to receive the result of the computations. With that, don't do any mutations if memcmp/etc returned 0 2016-01-12 00:43:42 +00:00
lib [compiler-rt] adjust platform_limits_linux.cc #include of posix_types 2016-05-02 19:10:48 +00:00
make [PGO] Add API for profile merge from buffer 2016-03-03 18:54:46 +00:00
test [sanitizer] Fix a crash in SizeClassAllocator32 with an out-of-range pointer 2016-05-02 15:23:01 +00:00
unittests Replace hardcoded comment at 'lit.site.cfg.in' 2016-04-16 07:03:45 +00:00
www Update references to new lists.llvm.org mailing lists. 2015-08-05 03:58:00 +00:00
.arcconfig
.gitignore
CMakeLists.txt [asan] Disable thread-safe static initilization with VS 2015 2016-03-21 20:08:59 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:38:50 +00:00
Makefile
README.txt

README.txt

Compiler-RT
================================

This directory and its subdirectories contain source code for the compiler
support routines.

Compiler-RT is open source software. You may freely distribute it under the
terms of the license agreement found in LICENSE.txt.

================================