OSDN Git Service

android-x86/bionic.git
7 years agoFix memmem behavior with empty needles.
Elliott Hughes [Mon, 15 Aug 2016 21:14:40 +0000 (14:14 -0700)]
Fix memmem behavior with empty needles.

Change-Id: I8b893d80c27b548652d843af9520d7adc8ba8902

7 years agoMerge "Fix mktime's errno behavior."
Treehugger Robot [Mon, 15 Aug 2016 20:06:57 +0000 (20:06 +0000)]
Merge "Fix mktime's errno behavior."

7 years agoMerge "linker: add test for empty shdr table"
Treehugger Robot [Mon, 15 Aug 2016 20:02:09 +0000 (20:02 +0000)]
Merge "linker: add test for empty shdr table"

7 years agoMerge "linker: add test for zero shstrndx"
Treehugger Robot [Mon, 15 Aug 2016 18:48:02 +0000 (18:48 +0000)]
Merge "linker: add test for zero shstrndx"

7 years agolinker: add test for empty shdr table
Dimitry Ivanov [Mon, 15 Aug 2016 18:30:45 +0000 (11:30 -0700)]
linker: add test for empty shdr table

Bug: http://b/30795430
Change-Id: Id839c22f88276f31e0615bc2a67d75e27a9aa7c6
Test: run bionic-unit-tests --gtest_filter=dlfcn.dlopen_invalid*

7 years agolinker: add test for zero shstrndx
Dimitry Ivanov [Mon, 15 Aug 2016 17:27:47 +0000 (10:27 -0700)]
linker: add test for zero shstrndx

Bug: http://b/30166532
Bug: http://b/30795430
Test: bionic-unit-tests --gtest_filter=dlfcn.dlopen_invalid*
Change-Id: I4cec73635cf403df9dd60b9a294d2298bb0abe3d

7 years agoMerge changes Ibcefd6d9,I249c0815,If59cb6da
Dimitry Ivanov [Sat, 13 Aug 2016 03:42:15 +0000 (03:42 +0000)]
Merge changes Ibcefd6d9,I249c0815,If59cb6da

* changes:
  Remove some duplication in the makefile
  linker: add test for zero e_shentsize
  Add test for misaligned section header

7 years agoMerge "versioner: Ignore if Clang is missing"
Treehugger Robot [Sat, 13 Aug 2016 03:27:11 +0000 (03:27 +0000)]
Merge "versioner: Ignore if Clang is missing"

7 years agoversioner: Ignore if Clang is missing
Andreas Gampe [Sat, 13 Aug 2016 02:10:21 +0000 (19:10 -0700)]
versioner: Ignore if Clang is missing

This happens in some branches. Work around for now.

Change-Id: I75c01a3ae52ce89f6c56a19728903bf86db0a309

7 years agoMerge "Move some POSIX math functions out of _USE_GNU/_USE_BSD."
Treehugger Robot [Sat, 13 Aug 2016 00:43:53 +0000 (00:43 +0000)]
Merge "Move some POSIX math functions out of _USE_GNU/_USE_BSD."

7 years agoMerge "versioner: copy unmodified headers when preprocessing."
Josh Gao [Sat, 13 Aug 2016 00:28:34 +0000 (00:28 +0000)]
Merge "versioner: copy unmodified headers when preprocessing."

7 years agoRemove some duplication in the makefile
Dimitry Ivanov [Fri, 12 Aug 2016 23:53:34 +0000 (16:53 -0700)]
Remove some duplication in the makefile

Bug: http://b/30795430
Test: bionic-unit-tests --gtest_filter=dlfcn.dlopen_invalid*
Change-Id: Ibcefd6d913abafe0b202a83399db72050510cd5d

7 years agoFix mktime's errno behavior.
Elliott Hughes [Fri, 12 Aug 2016 23:28:36 +0000 (16:28 -0700)]
Fix mktime's errno behavior.

Don't touch errno on success, do set it to EOVERFLOW (the only allowed errno
value according to POSIX: http://pubs.opengroup.org/onlinepubs/9699919799/functions/mktime.html)
on failure.

Bug: http://b/30477946
Change-Id: Ia915c7b9c3bfcd2f9025530cf5b068fe4dd4fd9e

7 years agoMove some POSIX math functions out of _USE_GNU/_USE_BSD.
Elliott Hughes [Fri, 12 Aug 2016 23:18:03 +0000 (16:18 -0700)]
Move some POSIX math functions out of _USE_GNU/_USE_BSD.

The signgam global and the j0/j1/jn and y0/y1/yn functions are POSIX.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html

Change-Id: I802997a2060a011a777c2b641f28c1d58dfe49ed

7 years agoversioner: copy unmodified headers when preprocessing.
Josh Gao [Fri, 12 Aug 2016 23:17:22 +0000 (16:17 -0700)]
versioner: copy unmodified headers when preprocessing.

Change-Id: I2517f560fd44fb519d6ee7e8d0a485036d3ecd87

7 years agoMerge changes I9b662ca9,Iad7f3fc9,I1b16a4b5,I47b07755,I6496a8c4, ...
Treehugger Robot [Fri, 12 Aug 2016 23:14:18 +0000 (23:14 +0000)]
Merge changes I9b662ca9,Iad7f3fc9,I1b16a4b5,I47b07755,I6496a8c4, ...

* changes:
  versioner: add support for preprocessing headers.
  versioner: fix makefiles.
  versioner: purge iostreams.
  versioner: assorted fixes.
  versioner: replace availability attributes with annotate.
  versioner: improve the test script.

7 years agolinker: add test for zero e_shentsize
Dimitry Ivanov [Fri, 12 Aug 2016 22:28:42 +0000 (15:28 -0700)]
linker: add test for zero e_shentsize

Bug: http://b/30166532
Bug: http://b/30795430
Change-Id: I249c081563f0ca7bcc799d8445a53683616eaa4e
Test: run bionic-unit-tests --gtest_filter=dlfcn.dlopen_invalid*

7 years agoAdd test for misaligned section header
Dimitry Ivanov [Fri, 12 Aug 2016 21:25:50 +0000 (14:25 -0700)]
Add test for misaligned section header

Make sure linker does not crash when dlopening
elf-file with odd section header offset.

Bug: http://b/30795430
Bug: http://b/30687964
Test: bionic-unit-tests --gtest_filter=dlfcn.dlopen_invalid*
Change-Id: If59cb6da85b8752a69dc5687de85f9a9b74c92b4

7 years agoMerge "POSIX says <sys/types.h> should make all the pthread_* types available."
Treehugger Robot [Fri, 12 Aug 2016 21:32:20 +0000 (21:32 +0000)]
Merge "POSIX says <sys/types.h> should make all the pthread_* types available."

7 years agoPOSIX says <sys/types.h> should make all the pthread_* types available.
Elliott Hughes [Fri, 12 Aug 2016 20:18:32 +0000 (13:18 -0700)]
POSIX says <sys/types.h> should make all the pthread_* types available.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html

Change-Id: I606194e15ceaa3129f266a9a460c358eaa8bf686

7 years agoMerge "POSIX says <locale.h> makes NULL visible."
Treehugger Robot [Fri, 12 Aug 2016 19:56:46 +0000 (19:56 +0000)]
Merge "POSIX says <locale.h> makes NULL visible."

7 years agoMerge "Fix sysconf(_SC_ARG_MAX)."
Elliott Hughes [Fri, 12 Aug 2016 19:53:45 +0000 (19:53 +0000)]
Merge "Fix sysconf(_SC_ARG_MAX)."

7 years agoMerge "Fix recvfrom prototype."
Treehugger Robot [Fri, 12 Aug 2016 19:48:38 +0000 (19:48 +0000)]
Merge "Fix recvfrom prototype."

7 years agoMerge "Fix pthread_barrierattr_getpshared prototype."
Treehugger Robot [Fri, 12 Aug 2016 19:13:37 +0000 (19:13 +0000)]
Merge "Fix pthread_barrierattr_getpshared prototype."

7 years agoMerge "POSIX says IPPORT_RESERVED is in <netdb.h>."
Treehugger Robot [Fri, 12 Aug 2016 18:52:58 +0000 (18:52 +0000)]
Merge "POSIX says IPPORT_RESERVED is in <netdb.h>."

7 years agoMerge "POSIX says SEM_FAILED shall have type sem_t*."
Treehugger Robot [Fri, 12 Aug 2016 18:42:44 +0000 (18:42 +0000)]
Merge "POSIX says SEM_FAILED shall have type sem_t*."

7 years agoMerge "POSIX says <fcntl.h> makes SEEK_* visible."
Treehugger Robot [Fri, 12 Aug 2016 18:35:17 +0000 (18:35 +0000)]
Merge "POSIX says <fcntl.h> makes SEEK_* visible."

7 years agoMerge "linker: disallow W + E PT_LOAD segments"
Dimitry Ivanov [Fri, 12 Aug 2016 17:55:35 +0000 (17:55 +0000)]
Merge "linker: disallow W + E PT_LOAD segments"

7 years agoMerge "Add two missing POSIX constant-only headers."
Treehugger Robot [Fri, 12 Aug 2016 17:42:12 +0000 (17:42 +0000)]
Merge "Add two missing POSIX constant-only headers."

7 years agoPOSIX says IPPORT_RESERVED is in <netdb.h>.
Elliott Hughes [Fri, 12 Aug 2016 17:38:35 +0000 (10:38 -0700)]
POSIX says IPPORT_RESERVED is in <netdb.h>.

In <netdb.h>:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netdb.h.html

Not in <netinet/in.h>:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html

Change-Id: Ie34cdb80eeb1443cf292944f3c68d8383aee2295

7 years agoPOSIX says SEM_FAILED shall have type sem_t*.
Elliott Hughes [Fri, 12 Aug 2016 17:28:52 +0000 (10:28 -0700)]
POSIX says SEM_FAILED shall have type sem_t*.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/semaphore.h.html

(Even if it didn't, this header previously referred to NULL without ensuring
that NULL was actually visible.)

Change-Id: I70577f4afc21f32c9e585076986127899ef8c8c1

7 years agoPOSIX says <locale.h> makes NULL visible.
Elliott Hughes [Fri, 12 Aug 2016 17:28:08 +0000 (10:28 -0700)]
POSIX says <locale.h> makes NULL visible.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/locale.h.html

Change-Id: I81a600153738dff6ce3d9cde95c787b71d81a368

7 years agoPOSIX says <fcntl.h> makes SEEK_* visible.
Elliott Hughes [Fri, 12 Aug 2016 17:16:34 +0000 (10:16 -0700)]
POSIX says <fcntl.h> makes SEEK_* visible.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html

We already had two copies of these constants, so time to factor them out
into bits/.

Change-Id: I213c0d2372e41463593f878d338002b8eaa918cd

7 years agoMerge "Use sysinfo(2) to implement more of <sys/sysinfo.h>."
Treehugger Robot [Fri, 12 Aug 2016 17:07:41 +0000 (17:07 +0000)]
Merge "Use sysinfo(2) to implement more of <sys/sysinfo.h>."

7 years agoAdd two missing POSIX constant-only headers.
Elliott Hughes [Fri, 12 Aug 2016 16:28:17 +0000 (09:28 -0700)]
Add two missing POSIX constant-only headers.

Change-Id: Ic175635a0edc16f9354445adeb7b90837d3e858b

7 years agoFix recvfrom prototype.
Elliott Hughes [Fri, 12 Aug 2016 16:20:07 +0000 (09:20 -0700)]
Fix recvfrom prototype.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html

Change-Id: Iba203c74045c88e53e28c2e0c8bc1f9ac63ce23e

7 years agoFix pthread_barrierattr_getpshared prototype.
Elliott Hughes [Fri, 12 Aug 2016 06:18:13 +0000 (23:18 -0700)]
Fix pthread_barrierattr_getpshared prototype.

As http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_barrierattr_getpshared.html
is my witness, there's a missing `const` here.

Change-Id: Ifd68188fb952460b64d144bdc21a53bc40ed82a7

7 years agolinker: disallow W + E PT_LOAD segments
Dimitry Ivanov [Thu, 11 Aug 2016 01:54:06 +0000 (18:54 -0700)]
linker: disallow W + E PT_LOAD segments

No mapped segment from the elf file can be writable and
executable at the same time. This commit adds a check
for malformed PT_LOAD segments in the elf-files.

Bug: http://b/30146890
Test: run bionic-unit-tests --gtest_filter=dlfcn.*
Change-Id: Ia23acbe5a48780b65d7e4a50bbe024cd528079f4

7 years agoMerge "dlerror returns char*, not const char*."
Treehugger Robot [Thu, 11 Aug 2016 23:16:59 +0000 (23:16 +0000)]
Merge "dlerror returns char*, not const char*."

7 years agodlerror returns char*, not const char*.
Elliott Hughes [Thu, 11 Aug 2016 22:02:45 +0000 (15:02 -0700)]
dlerror returns char*, not const char*.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlerror.html:

    char *dlerror(void);
    ...
    The application shall not modify the string returned.

Change-Id: I5e684bfd3930c39a2a30ea6fd005a5d5d3e5b181

7 years agoUse sysinfo(2) to implement more of <sys/sysinfo.h>.
Elliott Hughes [Thu, 11 Aug 2016 21:51:31 +0000 (14:51 -0700)]
Use sysinfo(2) to implement more of <sys/sysinfo.h>.

We already had implementations of some of the functions, and I didn't
bother rewriting them when we added sysinfo(2). Ross Anderson said in
https://www.lightbluetouchpaper.org/2016/07/29/yet-another-android-side-channel/
that we should "simply disable access to all procfs files", which made
me curious how many places we use /proc in bionic. This is the one that's
obviously unnecessary. The others I'm not aware of alternative APIs for.

Change-Id: Ia64f36b76f29a7a1dd67845270a5472e121aae10

7 years agoMerge "linker: use stat(2) to check file existence"
Dimitry Ivanov [Thu, 11 Aug 2016 19:53:02 +0000 (19:53 +0000)]
Merge "linker: use stat(2) to check file existence"

7 years agolinker: use stat(2) to check file existence
Dimitry Ivanov [Thu, 11 Aug 2016 18:11:52 +0000 (11:11 -0700)]
linker: use stat(2) to check file existence

open(2) can be used to open directories; use stat to
check that the file exists and is a regular file.

Addresses review comments for 5aa67675f853af9588ac9274ecf86d7858695ce2

Bug: http://b/30320104
Change-Id: Ia944db2f2f779a87ea01dd41dcd171e59c9bef01

7 years agoMerge "linker_asan: Translate absolute dlopen paths to use asan-libraries."
Treehugger Robot [Thu, 11 Aug 2016 17:38:06 +0000 (17:38 +0000)]
Merge "linker_asan: Translate absolute dlopen paths to use asan-libraries."

7 years agolinker_asan: Translate absolute dlopen paths to use asan-libraries.
Dimitry Ivanov [Wed, 10 Aug 2016 02:38:43 +0000 (19:38 -0700)]
linker_asan: Translate absolute dlopen paths to use asan-libraries.

This patch enables absolute path translation to instrumented library
when linker_asan is in use.

Test: adb shell cat /proc/<rlid pid>/maps | grep libril-qc-qmi-1.so
      check that it is mapped from /data/vendor/lib64 and not /vendor/lib64
Bug: http://b/30320104
Change-Id: I3bc24754b192afc0a72d6f3801f7b42141ce715b
(cherry picked from commit 5aa67675f853af9588ac9274ecf86d7858695ce2)

7 years agoMerge "Add ndk_library for libdl."
Treehugger Robot [Thu, 11 Aug 2016 01:33:31 +0000 (01:33 +0000)]
Merge "Add ndk_library for libdl."

7 years agoMerge "Add __attribute__((sentinel)) tags to execl and friends."
Treehugger Robot [Thu, 11 Aug 2016 01:19:23 +0000 (01:19 +0000)]
Merge "Add __attribute__((sentinel)) tags to execl and friends."

7 years agoMerge "Check alignment along with range of mapped file fragments"
Treehugger Robot [Thu, 11 Aug 2016 00:46:33 +0000 (00:46 +0000)]
Merge "Check alignment along with range of mapped file fragments"

7 years agoMerge "Move brillo closer to Android."
Treehugger Robot [Wed, 10 Aug 2016 23:59:19 +0000 (23:59 +0000)]
Merge "Move brillo closer to Android."

7 years agoMerge "Remove __static_cast macro from <sys/cdefs.h>."
Treehugger Robot [Wed, 10 Aug 2016 23:58:11 +0000 (23:58 +0000)]
Merge "Remove __static_cast macro from <sys/cdefs.h>."

7 years agoFix sysconf(_SC_ARG_MAX).
Elliott Hughes [Wed, 10 Aug 2016 22:51:06 +0000 (15:51 -0700)]
Fix sysconf(_SC_ARG_MAX).

ARG_MAX hasn't been a constant since Linux 2.6.23.

Bug: http://lists.landley.net/pipermail/toybox-landley.net/2016-August/008592.html
Change-Id: I1eddb562751604c75b89fa610d79be0655c53693
Test: ran the bionic tests on device and against glibc

7 years agoAdd __attribute__((sentinel)) tags to execl and friends.
Josh Gao [Wed, 10 Aug 2016 22:18:29 +0000 (15:18 -0700)]
Add __attribute__((sentinel)) tags to execl and friends.

Give a compile time diagnostic when the nullptr sentinel is missing
from an execl family call, instead of just pulling arbitrary values.

Bug: http://b/30793878
Change-Id: I1c49005c58b7ad4a5b04f0435b722d4c744e8f0e
Test: Built bullhead

7 years agoRemove __static_cast macro from <sys/cdefs.h>.
Elliott Hughes [Wed, 10 Aug 2016 21:18:01 +0000 (14:18 -0700)]
Remove __static_cast macro from <sys/cdefs.h>.

We don't use it, and we added the more general __BIONIC_CAST anyway.

Change-Id: I2cb8a108b58bb2cb24ed2b1890d9efed671196dc

7 years agoMerge "Fortify vsnprintf in more cases."
Elliott Hughes [Wed, 10 Aug 2016 21:11:09 +0000 (21:11 +0000)]
Merge "Fortify vsnprintf in more cases."

7 years agoMove brillo closer to Android.
Elliott Hughes [Wed, 10 Aug 2016 21:06:14 +0000 (14:06 -0700)]
Move brillo closer to Android.

Hiding our legacy cruft seemed like a good idea, but in practice it will only
mean worse interoperability.

Plus we got it wrong, as the recent `putw` example showed.

Change-Id: I167c7168eff133889028089c22a7a0dfb8d6d0cf

7 years agoFortify vsnprintf in more cases.
Elliott Hughes [Wed, 10 Aug 2016 18:07:54 +0000 (11:07 -0700)]
Fortify vsnprintf in more cases.

Bug: http://b/30445072
Change-Id: I1893890f0e3b56533eef053eda1bd96a0b9a5119

7 years agoCheck alignment along with range of mapped file fragments
Dimitry Ivanov [Tue, 9 Aug 2016 00:12:18 +0000 (17:12 -0700)]
Check alignment along with range of mapped file fragments

Improve sanity-checks of elf-file by adding alignment check
of mapped sections and section headers.

Bug: http://b/30687964
Change-Id: I7f06ddaa56a13989ce7be847b3a73c352e32c008
(cherry picked from commit 7e2d49ae3ebbae7ebf1ca033f86e87002c0dd83c)

7 years agoMerge "Remove more stdio copy/paste."
Treehugger Robot [Wed, 10 Aug 2016 00:43:39 +0000 (00:43 +0000)]
Merge "Remove more stdio copy/paste."

7 years agoRemove more stdio copy/paste.
Elliott Hughes [Tue, 9 Aug 2016 20:06:41 +0000 (13:06 -0700)]
Remove more stdio copy/paste.

Change-Id: Ia92629b75d2c153ecf1cec711e2f9575eef604ab

7 years agoMerge "linker: fix mips build"
Treehugger Robot [Tue, 9 Aug 2016 15:20:38 +0000 (15:20 +0000)]
Merge "linker: fix mips build"

7 years agolinker: fix mips build
Dimitry Ivanov [Tue, 9 Aug 2016 13:58:55 +0000 (06:58 -0700)]
linker: fix mips build

Change-Id: I88c5ba7f33825ae9b36992b32d30579ec4a66915
Test: lunch aosp_mips-eng && mm

7 years agoMerge "Don't use the same declaration to declare multiple symbol names."
Treehugger Robot [Tue, 9 Aug 2016 00:57:32 +0000 (00:57 +0000)]
Merge "Don't use the same declaration to declare multiple symbol names."

7 years agoMerge changes I868417f4,I57ac3667
Treehugger Robot [Tue, 9 Aug 2016 00:31:45 +0000 (00:31 +0000)]
Merge changes I868417f4,I57ac3667

* changes:
  Extract soinfo and globals to separate files.
  Move android_namespace_t to a separate file.

7 years agoversioner: add support for preprocessing headers.
Josh Gao [Wed, 27 Jul 2016 01:58:27 +0000 (18:58 -0700)]
versioner: add support for preprocessing headers.

Bug: http://b/30170081
Change-Id: I9b662ca9e0fa3a1f9c0211594e851f5f9bef7266

7 years agoDon't use the same declaration to declare multiple symbol names.
Josh Gao [Tue, 26 Jul 2016 23:47:48 +0000 (16:47 -0700)]
Don't use the same declaration to declare multiple symbol names.

This doesn't play well with preprocessing.

Bug: http://b/30170081
Change-Id: Id7fc648113336dcccdfa0a6b108f3d452aaf1ed2

7 years agoversioner: fix makefiles.
Josh Gao [Tue, 2 Aug 2016 22:50:05 +0000 (15:50 -0700)]
versioner: fix makefiles.

Move the Android.mk to src/ so that mm in that directory works.
Also, remove the dependency on FORCE_BUILD_LLVM_COMPONENTS.

Change-Id: Iad7f3fc96f5f26f9535141d752ba865b40d5ff7e

7 years agoversioner: purge iostreams.
Josh Gao [Tue, 2 Aug 2016 22:07:32 +0000 (15:07 -0700)]
versioner: purge iostreams.

Change-Id: I1b16a4b5c4a8a1333f05636c8c67890d8ce1a090

7 years agoversioner: assorted fixes.
Josh Gao [Tue, 2 Aug 2016 21:54:09 +0000 (14:54 -0700)]
versioner: assorted fixes.

Zero initialize the contents of ArchMap, keep track of the symbol name
in Declaration, remove unnecessary copies in loops.

Change-Id: I47b07755846f252b83ffc4c89547a34b2f7ab868

7 years agoversioner: replace availability attributes with annotate.
Josh Gao [Sat, 16 Jul 2016 00:25:21 +0000 (17:25 -0700)]
versioner: replace availability attributes with annotate.

Major refactor to use __attribute__((annotate)) to be able to keep
track of the semantic differences between __INTRODUCED_IN(x) and
__INTRODUCED_IN_X86(x), for use in the upcoming preprocessor.

Bug: http://b/30170081
Change-Id: I6496a8c40ba7f4553de9a2be0bbddcf37c813937

7 years agoversioner: improve the test script.
Josh Gao [Wed, 20 Jul 2016 18:23:20 +0000 (11:23 -0700)]
versioner: improve the test script.

Make it actually run under python3, and add checking for unexpected
success.

Change-Id: I9aac0e8cc1526fd63db21e57554f3aa5a9b4091d

7 years agoExtract soinfo and globals to separate files.
Dimitry Ivanov [Thu, 4 Aug 2016 18:50:36 +0000 (11:50 -0700)]
Extract soinfo and globals to separate files.

Move soinfo and globals out of linker.cpp to
separate files.

Breaking up huge linker.cpp into smaller peaces
in order to make it easier to extract part of the
code that belongs to libdl.so and remove parts of
the code that do not belong to linker

(refactoring part 2 of many)

Change-Id: I868417f4b8d2b84d0e8265e354bc7977161497e2

7 years agoMove android_namespace_t to a separate file.
Dimitry Ivanov [Wed, 3 Aug 2016 23:00:10 +0000 (16:00 -0700)]
Move android_namespace_t to a separate file.

Breaking up huge linker.cpp into smaller peaces
in order to make it easier to extract part of the
code that belongs to libdl.so and remove parts of
the code that do not belong to linker

(refactoring part 1 of many)

Change-Id: I57ac36677a815800dc127c8c45c3ea806c37e247
Test: bionic-unit-tests --gtest_filter=dl*:Dl*

7 years agoMerge "Update NOTICE files."
Elliott Hughes [Mon, 8 Aug 2016 23:04:01 +0000 (23:04 +0000)]
Merge "Update NOTICE files."

7 years agoUpdate NOTICE files.
Elliott Hughes [Mon, 8 Aug 2016 19:39:56 +0000 (12:39 -0700)]
Update NOTICE files.

Change-Id: I591dc91b54804aebc05ba6f9974ef9add660ecfe

7 years agoMerge "Guard fortify inlines with __ANDROID_API__."
Treehugger Robot [Sat, 6 Aug 2016 01:31:18 +0000 (01:31 +0000)]
Merge "Guard fortify inlines with __ANDROID_API__."

7 years agoMerge "Reimplement remove(3) without the lstat(2)."
Treehugger Robot [Sat, 6 Aug 2016 00:11:14 +0000 (00:11 +0000)]
Merge "Reimplement remove(3) without the lstat(2)."

7 years agoGuard fortify inlines with __ANDROID_API__.
Dan Albert [Tue, 2 Aug 2016 22:08:32 +0000 (15:08 -0700)]
Guard fortify inlines with __ANDROID_API__.

Test: make checkbuild with libc ndk_library patches applied
Change-Id: Ic5e248994c4f2702b0f4d6dfeda787187ea86017

7 years agoReimplement remove(3) without the lstat(2).
Elliott Hughes [Fri, 5 Aug 2016 22:53:03 +0000 (15:53 -0700)]
Reimplement remove(3) without the lstat(2).

This assumes that it's more likely we're unlinking a file than a directory,
though even if that's not true, as long as a failed unlink(2) is cheaper
than a successful lstat(2) -- which seems likely since there's no data to
copy -- we still win.

Change-Id: I0210e9cd3d31b8cf1813c55c810262ef327382ed

7 years agoAdd ndk_library for libdl.
Dan Albert [Thu, 4 Aug 2016 20:45:44 +0000 (13:45 -0700)]
Add ndk_library for libdl.

Test: make checkbuild
Bug: http://b/30465923
Change-Id: I8acf82f319d3b22948868bc5c4c377f2348af266

7 years agoMerge changes I01c4d9a8,Ic34734b4
Treehugger Robot [Thu, 4 Aug 2016 23:56:55 +0000 (23:56 +0000)]
Merge changes I01c4d9a8,Ic34734b4

* changes:
  Run genversion-scripts.py.
  Annotate libdl.map.txt.

7 years agoRun genversion-scripts.py.
Dan Albert [Thu, 4 Aug 2016 22:39:05 +0000 (15:39 -0700)]
Run genversion-scripts.py.

Change-Id: I01c4d9a85d3397b02b00b4d33fafe6d9ae692ed7

7 years agoAnnotate libdl.map.txt.
Dan Albert [Thu, 4 Aug 2016 20:43:20 +0000 (13:43 -0700)]
Annotate libdl.map.txt.

Test: readelf diff between soong generated stubs and prebuilts/ndk
Bug: http://b/30465923
Change-Id: Ic34734b40870c8b628449458798c0343648e4e97

7 years agoMerge "Guard include of uchar.h in stdatomic.h"
Pirama Arumuga Nainar [Thu, 4 Aug 2016 18:23:21 +0000 (18:23 +0000)]
Merge "Guard include of uchar.h in stdatomic.h"

7 years agoGuard include of uchar.h in stdatomic.h
Pirama Arumuga Nainar [Thu, 4 Aug 2016 16:40:18 +0000 (09:40 -0700)]
Guard include of uchar.h in stdatomic.h

Bionic stdatomic.h is also used for the host (via a copy in
prebuilts/clang).  Revert to guarding the include of uchar.h based on
__STDC_VERSION__, so it is included only when needed.

Change-Id: I5b45c7f5d16da223478512104702a3e4e5a975ae
Test: bionic tests on host and Angler.  Confirmed failures I am
      seeing are KIs.

7 years agoMerge changes Iecc1b127,Ib67f07db,I7672d34c
Treehugger Robot [Wed, 3 Aug 2016 17:50:37 +0000 (17:50 +0000)]
Merge changes Iecc1b127,Ib67f07db,I7672d34c

* changes:
  Run genversion-scripts.py.
  Only check arch tag if we have *any* arch tags.
  Add pylintrc.

7 years agoMerge changes Ib5962ea3,I8c1a7464,I06ce7c31
Treehugger Robot [Wed, 3 Aug 2016 00:22:11 +0000 (00:22 +0000)]
Merge changes Ib5962ea3,I8c1a7464,I06ce7c31

* changes:
  Add version information for legacy inlines.
  versioner: remove unnecessary kernel/common symlink.
  versioner: add symlink for kernel/android/uapi.

7 years agoRun genversion-scripts.py.
Dan Albert [Tue, 2 Aug 2016 22:20:36 +0000 (15:20 -0700)]
Run genversion-scripts.py.

Change-Id: Iecc1b127c67a96aecc4e86582c1cc3291a4acf00

7 years agoOnly check arch tag if we have *any* arch tags.
Dan Albert [Tue, 2 Aug 2016 22:19:26 +0000 (15:19 -0700)]
Only check arch tag if we have *any* arch tags.

With the introduction of new tags for ndk_library, we'll have a lot
of tags that aren't architecture tags. If we have something tagged
`introduced=21`, it should be in all architectures.

Change-Id: Ib67f07db14625f6903919c181050316eb183bed5

7 years agoAdd pylintrc.
Dan Albert [Tue, 2 Aug 2016 22:15:09 +0000 (15:15 -0700)]
Add pylintrc.

Disable all the style differences present in genversion-scripts.py.

Change-Id: I7672d34c4f7698ba445968dd5d9f5ef1fdc60056

7 years agoMerge changes Iedab3259,I333fe8ae
Treehugger Robot [Tue, 2 Aug 2016 21:44:20 +0000 (21:44 +0000)]
Merge changes Iedab3259,I333fe8ae

* changes:
  Put bsd_signal back.
  Unversion some symbols for the NDK.

7 years agoAdd version information for legacy inlines.
Josh Gao [Tue, 26 Jul 2016 23:34:40 +0000 (16:34 -0700)]
Add version information for legacy inlines.

Bug: http://b/30170081
Change-Id: Ib5962ea3037dd692a98b6691d263871549aac8af

7 years agoversioner: remove unnecessary kernel/common symlink.
Josh Gao [Wed, 27 Jul 2016 23:29:31 +0000 (16:29 -0700)]
versioner: remove unnecessary kernel/common symlink.

The target was moved by commit 5956b4e, but none of the headers
contained were actually necessary to compile any bionic headers.

Bug: http://b/30170081
Change-Id: I8c1a7464de0992c20af194340c0e36d131a836e7

7 years agoversioner: add symlink for kernel/android/uapi.
Josh Gao [Tue, 26 Jul 2016 21:04:01 +0000 (14:04 -0700)]
versioner: add symlink for kernel/android/uapi.

The android-only kernel headers were moved to their own directory by
commit d6e8b8c. Add a new symlink to match.

Change-Id: I06ce7c3167fbb1e058e4a137fae9375bb5792a46

7 years agoMerge "Correct libstdc++ version"
Dimitry Ivanov [Tue, 2 Aug 2016 18:17:08 +0000 (18:17 +0000)]
Merge "Correct libstdc++ version"

7 years agoPut bsd_signal back.
Dan Albert [Sat, 30 Jul 2016 00:45:21 +0000 (17:45 -0700)]
Put bsd_signal back.

With this change (and all the others below it in the stack), the only
difference between the arm android-9 libc.so in r13-beta1 and the one
we are now generating is the addition of LIBC_N and LIBC_O versions.

Test: make ndk, readelf stub libc.so to check symbol exists
Bug: https://github.com/android-ndk/ndk/issues/160
Change-Id: Iedab32592b2d979f3cc922ffd4ed406427de3dda

7 years agoUnversion some symbols for the NDK.
Dan Albert [Sat, 30 Jul 2016 00:37:08 +0000 (17:37 -0700)]
Unversion some symbols for the NDK.

These functions were erroneously released in LIBC_PRIVATE for M, but
in fact need to be public. Since we need to be able to load them on M
even if they were built for a lower platform (and M needs to load on
newer platforms), we need to unversion them.

Change-Id: I333fe8ae7380cc2a5dbd699414399ec52f602383

7 years agoMerge "More stdio one-liners."
Treehugger Robot [Tue, 2 Aug 2016 02:30:14 +0000 (02:30 +0000)]
Merge "More stdio one-liners."

7 years agoMore stdio one-liners.
Elliott Hughes [Mon, 1 Aug 2016 23:35:17 +0000 (16:35 -0700)]
More stdio one-liners.

This actually turns up a bug in fmemopen, so I guess that's what I'll
look at next...

Change-Id: I2971ecd1b5a3a3c7f43c22d985f88e389af89e97

7 years agoMerge changes I2d334db2,Iab9fbc73
Treehugger Robot [Mon, 1 Aug 2016 23:25:59 +0000 (23:25 +0000)]
Merge changes I2d334db2,Iab9fbc73

* changes:
  Clean up 32-bit x86 memset assembler.
  Fix x86 __memset_chk.

7 years agoCorrect libstdc++ version
Dimitry Ivanov [Mon, 1 Aug 2016 22:45:42 +0000 (15:45 -0700)]
Correct libstdc++ version

The version script is introduced in O

Bug: http://b/28987948
Change-Id: Icd0a27d1b67e8227e44aa6e771816f0e6ed489b8