Merge "Add __EXPORTED_HEADERS__ as predefined macro."
diff --git a/libc/arch-mips/bionic/pipe.S b/libc/arch-mips/bionic/pipe.S
deleted file mode 100644
index 0baf246..0000000
--- a/libc/arch-mips/bionic/pipe.S
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * The MIPS pipe syscall returns results in two registers, which
- * we have to copy into the supplied array. This prevents us from
- * using an auto-generated stub.
- */
-
-#include <asm/unistd.h>
-
-	.text
-
-/* int pipe(int[]) */
-
-	.type	pipe,@function
-	.global	pipe
-	.align	4
-	.ent	pipe
-pipe:
-	.set	noreorder
-	.cpload	$t9
-	li	$v0,__NR_pipe
-	syscall			/* syscall returns results in v0,v1 */
-	bnez	$a3, 1f		/* check errno */
-	 nop
-	sw	$v0, 0($a0)
-	sw	$v1, 4($a0)
-	j	$ra
-	 move	$v0, $zero
-1:
-	la	$t9, __set_errno
-	j	$t9
-	 move    $a0, $v0	/* delay slot, prepare args for __set_errno */
-	.end	pipe
diff --git a/libc/arch-mips/mips.mk b/libc/arch-mips/mips.mk
index 3f7094e..5b7d8ee 100644
--- a/libc/arch-mips/mips.mk
+++ b/libc/arch-mips/mips.mk
@@ -10,7 +10,6 @@
     arch-mips/bionic/ffs.S \
     arch-mips/bionic/memcmp16.S \
     arch-mips/bionic/memmove.c \
-    arch-mips/bionic/pipe.S \
     arch-mips/bionic/setjmp.S \
     arch-mips/bionic/sigsetjmp.S \
     arch-mips/bionic/vfork.S \
diff --git a/libc/include/sys/epoll.h b/libc/include/sys/epoll.h
index 625f4c2..1e207d8 100644
--- a/libc/include/sys/epoll.h
+++ b/libc/include/sys/epoll.h
@@ -25,10 +25,12 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+
 #ifndef _SYS_EPOLL_H_
 #define _SYS_EPOLL_H_
 
 #include <sys/cdefs.h>
+#include <sys/types.h>
 #include <asm/fcntl.h> /* For O_CLOEXEC. */
 
 __BEGIN_DECLS
diff --git a/libc/include/sys/inotify.h b/libc/include/sys/inotify.h
index a88cdee..dcdd29a 100644
--- a/libc/include/sys/inotify.h
+++ b/libc/include/sys/inotify.h
@@ -25,10 +25,12 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+
 #ifndef _SYS_INOTIFY_H_
 #define _SYS_INOTIFY_H_
 
 #include <sys/cdefs.h>
+#include <sys/types.h>
 #include <stdint.h>
 #include <linux/inotify.h>
 #include <asm/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK. */
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 4f05c7a..c6264a3 100755
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1688,8 +1688,10 @@
          * phdr_table_protect_segments() after all of them are applied
          * and all constructors are run.
          */
+#if !defined(ANDROID_X86_LINKER) // The platform itself has too many text relocations on x86.
         DL_WARN("%s has text relocations. This is wasting memory and prevents "
                 "security hardening. Please fix.", si->name);
+#endif
         if (phdr_table_unprotect_segments(si->phdr, si->phnum, si->load_bias) < 0) {
             DL_ERR("can't unprotect loadable segments for \"%s\": %s",
                    si->name, strerror(errno));