libc: Enable high-performance memmove and bcopy for cortex-a15

Change-Id: Id8e4e595021dd13bf4ab5620f5fb0b0d80333616
Fix build issues with clang 3.4

clang 3.4 (just like gcc) implements _Unwind_GetIP - use Bionic's
implementation only if older clang versions are used.

Don't set incorrect values for WCHAR_MIN and WCHAR_MAX when using clang
in c++11 mode (c++11 has a builtin wchar_t that happens to be unsigned
in clang). Signed WCHAR_MIN and WCHAR_MAX defines in clang++ -std=c++11
cause anything using stlport to fail.

Change-Id: I46ed08b873f34e01c5e66aa8d91c71478bfcc25d
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>

Conflicts:
	libc/bionic/debug_stacktrace.cpp
Remove harmful attempts to be helpful in pthread_mutex functions.

Most callers won't check for EINVAL, so it's best to fail early.
GCC takes the nonnull attribute as a guarantee that an argument
won't be NULL, so these hacks were already ineffective, which is
how we found that at least one commercial game was using NULL
as if it's a mutex, but actually getting no-op behavior.

Bug: 11971278
Change-Id: I89646e043d931778805a8b692e07a34d076ee6bf
Move bionic over to GCC's 'warning' attribute.

This is a better solution than the old __warn_references because it's
a compile-time rather than link-time warning, it doesn't rely on something
that doesn't appear to be supported by gold (which is why you only used
to see these warnings on mips builds), and the errors refer to the exact
call site(s) rather than just telling you which object file contains a
reference to the bad function.

This is primarily so we can build bionic for aarch64; building libc.so
caused these warnings to fire (because link time is the wrong time) and
warnings are errors.

Change-Id: I5df9281b2a9d98b164a9b11807ea9472c6faa9e3
Properly detect timeout in pthread_mutex_lock_timeout_np_impl

Previously we were checking against a positive errno which
would not be returned from a system call.

Change-Id: I8e3a36f6fbf5ccc2191a152a1def37e2d6f93124
Small style cleanup.

Change-Id: Ib45a4a2296232968296f9bd7cc3592ba46fd412d

Conflicts:
	libc/bionic/pthread_cond.cpp
Clean up more recursive FORTIFY_SOURCE calls

Don't use FORTIFY_SOURCE on functions which implement
FORTIFY_SOURCE, to avoid infinite recursion problems.

The previous patch only addressed one of the problems.

Bug: 12216860
Change-Id: I6f30ae7cb5b481be9942add18182ea4839d348a6
We actually have modfl.

Change-Id: I22bb4d14f99a418819f2941c2dfec49094807c5f

Conflicts:
	libm/fake_long_double.c
Add C linkage for __open_2 and __openat_2.

Otherwise Clang mangle them with C++ names.

Change-Id: I844e28d834df8b0752b32d2aadd2013fc8804a43

Conflicts:
	libc/bionic/open.cpp
Don't abort in stdio.getdelim_invalid and stdio.getline_invalid.

Change-Id: Ie1aefed732f4bea77887bddd1be9a0578e247aa3
Add __popcountsi2 to the function compat list.

This is needed if we use Clang to compile Bionic, which won't include
__popcountsi2 anymore as Clang generates inline instructions. However
prebuilt binary blobs still depend on libc.so to resolve __popcountsi2.

Change-Id: I9001a3884c4be250c0ceebcd79922783fae1a0b7
Don't force O_LARGEFILE on LP64.

aarch64's strace is confused by this, and it isn't necessary anyway.

Change-Id: Ib07b649eb1c38ff0296003874f73af78c47bc276

Conflicts:
	libc/bionic/open.cpp
Allow GCC-built fortified code to run on a clang-built bionic.

Even though code built with clang won't be fully fortified
and won't contain calls to our various helpers, binaries built
with GCC will.

Change-Id: I389b2f1e22a3e89b22aadedc46397bf704f9ca79
Fix backwards compatible system property structure

The original structure included four reserved 32-bit values. This
change adds these back into the structure so that the
__system_property_find_compat function will (again) process the system
properties correctly.
Allocate additional space on stack for indirect syscall

The caller is only required to allocate 16 bytes on the
stack for a0-a3. syscall is handling up to 6 arguments so
additional space is needed on the stack to avoid corrupting the
callers frame.

Change-Id: I054b31696decc3e17d9c70af18cd278b852235d1

Conflicts:
	libc/arch-mips/bionic/syscall.S
Define fsid_t as well as __fsid_t.

Change-Id: Ib8efbd913a0e6bfe27b88c1342bd5cec926dd74e

Conflicts:
	libc/include/sys/vfs.h
Add SWAP_FLAG_* constants to <sys/swap.h>.

Bug: 9336527
Change-Id: I679be4d8425ba177dd782e714f465caf9daa976c
<fcntl.h> should get you the POSIX_FADV_* constants.

Change-Id: I9de8b840570b228308c12d72b7617b8758237fb8
<sched.h> should offer both __sched_priority and sched_priority.

If glibc hadn't already done things this way round, I'd have
called the field sched_priority and the macro __sched_priority
since that would seem less likely to cause trouble, but glibc
source compatibility is probably more important.

Change-Id: I8a8a477f2aa87cae641069c5c84b4fcab3152a82

Conflicts:
	libc/include/sched.h
We shouldn't have a <sys/dirent.h> that's a subset of <dirent.h>.

glibc has no <sys/dirent.h>. If we do have to bring this back, we
should probably just have one file #include the other.

Change-Id: I5c0bf9c03769daf3b23f69778e9f01f81c3de9ec