android-sdk/platform-bionic.git
7 years agoMerge "Fix pthread_getattr_np for the main thread."
Elliott Hughes [Tue, 26 Aug 2014 19:53:40 +0000 (19:53 +0000)]
Merge "Fix pthread_getattr_np for the main thread."

7 years agoFix pthread_getattr_np for the main thread.
Elliott Hughes [Tue, 26 Aug 2014 00:26:50 +0000 (17:26 -0700)]
Fix pthread_getattr_np for the main thread.

On most architectures the kernel subtracts a random offset to the stack
pointer in create_elf_tables by calling arch_align_stack before writing
the auxval table and so on. On all but x86 this doesn't cause a problem
because the random offset is less than a page, but on x86 it's up to two
pages. This means that our old technique of rounding the stack pointer
doesn't work. (Our old implementation of that technique was wrong too.)

It's also incorrect to assume that the main thread's stack base and size
are constant. Likewise to assume that the main thread has a guard page.
The main thread is not like other threads.

This patch switches to reading /proc/self/maps (and checking RLIMIT_STACK)
whenever we're asked.

Bug: 17111575
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>
Change-Id: I1d4dbffe7bc7bda1d353c3a295dbf68d29f63158

7 years agoMerge "Add standard throw() spec to delete operators."
Chih-Hung Hsieh [Mon, 25 Aug 2014 22:08:32 +0000 (22:08 +0000)]
Merge "Add standard throw() spec to delete operators."

7 years agoAdd standard throw() spec to delete operators.
Chih-Hung Hsieh [Mon, 25 Aug 2014 19:08:19 +0000 (12:08 -0700)]
Add standard throw() spec to delete operators.

Without these specs, clang will reports mismatch between standard definitions and these declarations/definitions. These specs are ignored when compiled with -fno-exceptions.

BUG: 17136236
Change-Id: I386c712a61dc4fc74dfde45f9ec2d3d037f2e9f1

7 years agoMerge "Fix, generalize stdatomic.h; improve test."
Hans Boehm [Fri, 22 Aug 2014 22:52:31 +0000 (22:52 +0000)]
Merge "Fix, generalize stdatomic.h; improve test."

7 years agoFix, generalize stdatomic.h; improve test.
Hans Boehm [Tue, 19 Aug 2014 23:14:01 +0000 (16:14 -0700)]
Fix, generalize stdatomic.h; improve test.

We seem to use this stdatomic.h sometimes, and slightly different prebuilts
at other times, making them all difficult to test, and making it unclear
which one we're testing.  This generalizes the bionic header so that it
can be used directly as the prebuilt header as well.  So long as they
don't diverge again, that should somewhat improve test coverage.

Use the correct builtin for atomic_is_lock_free.

Fix atomic_flag_init.

Turn on atomic tests even with __GLIBC__, since they now appear to pass.

Include uchar.h in stdatomic.h where needed.

Add a basic memory ordering test.

Fix bit-rotted comments in bionic tests makefile.

Change-Id: If6a14c1075b379395ba5d93357d56025c0ffab68

7 years agoMerge "Bump soinfo version"
Dmitriy Ivanov [Fri, 22 Aug 2014 20:44:56 +0000 (20:44 +0000)]
Merge "Bump soinfo version"

7 years agoBump soinfo version
Dmitriy Ivanov [Fri, 22 Aug 2014 19:25:04 +0000 (12:25 -0700)]
Bump soinfo version

 This includes:
 1. Placing has_ifunc after fields with version = 0
 2. Switch to has_min_version(v) function.
 3. Minor soinfo initialization refactoring (placement new + ctor)

Change-Id: I1bf5fde4d930914012ce5f3ad5acb48217da9b2d

7 years agoMerge "Fix dlmalloc build."
Dan Albert [Fri, 22 Aug 2014 18:06:36 +0000 (18:06 +0000)]
Merge "Fix dlmalloc build."

7 years agoFix dlmalloc build.
Dan Albert [Fri, 22 Aug 2014 18:05:48 +0000 (11:05 -0700)]
Fix dlmalloc build.

Change-Id: Ied542c40867ab443cdd2076bd2e535b00c4854e4

7 years agoMerge "Implement malloc_info(3)."
Dan Albert [Fri, 22 Aug 2014 17:39:18 +0000 (17:39 +0000)]
Merge "Implement malloc_info(3)."

7 years agoImplement malloc_info(3).
Dan Albert [Wed, 20 Aug 2014 16:16:57 +0000 (09:16 -0700)]
Implement malloc_info(3).

Expose jemalloc stats through the malloc_info(3) interface.

Bug: 16874689
Change-Id: I4358ac283002e60ff161107028d1a3fb1e9afb0a

7 years agoMerge "Fix unistd.getpid_caching_and_clone."
Elliott Hughes [Fri, 22 Aug 2014 16:28:02 +0000 (16:28 +0000)]
Merge "Fix unistd.getpid_caching_and_clone."

7 years agoFix unistd.getpid_caching_and_clone.
Elliott Hughes [Fri, 22 Aug 2014 02:23:53 +0000 (19:23 -0700)]
Fix unistd.getpid_caching_and_clone.

This test only works if you're root (strictly: if you have permission to
CLONE_NEWNS), so it's useful to us when we're doing ad hoc testing (since
that's usually done as root), but it's not useful as part of CTS or when
running the tests on the host.

(cherry-pick of 84d0683a824fa02dbaa6d1b56a79223804b54e80.)

Bug: 16705621
Bug: 17170200
Change-Id: Ia92c871b15f7e45fc174bb59bc95540fd00ae745

7 years agoMerge "Remove _flush_cache(2) for mips64."
Dan Albert [Thu, 21 Aug 2014 21:51:41 +0000 (21:51 +0000)]
Merge "Remove _flush_cache(2) for mips64."

7 years agoMerge "Run constructors before resolving ifunc functions"
Dmitriy Ivanov [Thu, 21 Aug 2014 21:27:52 +0000 (21:27 +0000)]
Merge "Run constructors before resolving ifunc functions"

7 years agoRun constructors before resolving ifunc functions
Dmitriy Ivanov [Thu, 21 Aug 2014 20:54:03 +0000 (13:54 -0700)]
Run constructors before resolving ifunc functions

Bug: 17177284
Change-Id: I5714b9bc2d1ca8f8711806bfb68da3d524213e99

7 years agoRemove _flush_cache(2) for mips64.
Dan Albert [Thu, 21 Aug 2014 19:13:24 +0000 (12:13 -0700)]
Remove _flush_cache(2) for mips64.

Also remove declaration.

The only user is compiler-rt, and they can replace that call with one to
syscall(2). compiler-rt doesn't currently build on mips64 anyway.

Bug: 11156955
Change-Id: Ieae0ba49c8e7aa50253401fc1d7c2d17bc867d39

7 years agoMerge "__gnu_basename(3) is accounted for."
Dan Albert [Thu, 21 Aug 2014 19:14:44 +0000 (19:14 +0000)]
Merge "__gnu_basename(3) is accounted for."

7 years ago__gnu_basename(3) is accounted for.
Dan Albert [Thu, 21 Aug 2014 18:36:07 +0000 (11:36 -0700)]
__gnu_basename(3) is accounted for.

Change-Id: I3836b14a797c4a8d121c6d29d95791ac768257da

7 years agoMerge "Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream."
Elliott Hughes [Thu, 21 Aug 2014 02:39:34 +0000 (02:39 +0000)]
Merge "Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream."

7 years agoAdd POSIX-2008 fmemopen, open_memstream, and open_wmemstream.
Elliott Hughes [Wed, 20 Aug 2014 23:10:49 +0000 (16:10 -0700)]
Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream.

Bug: 17164505
Change-Id: I59e28a08ff8b6ab632230b11a5807cfd5278aeb5

7 years agoMerge "Simplify _ALIGN_TEXT."
Elliott Hughes [Wed, 20 Aug 2014 20:36:04 +0000 (20:36 +0000)]
Merge "Simplify _ALIGN_TEXT."

7 years agoSimplify _ALIGN_TEXT.
Elliott Hughes [Wed, 20 Aug 2014 20:11:58 +0000 (13:11 -0700)]
Simplify _ALIGN_TEXT.

Bug: 16872067
Change-Id: I2b622f252c21ce1b344c040f828ab3f4bf9b6c0a

7 years agoMerge "Regenerate "services.h" from /etc/services."
Elliott Hughes [Wed, 20 Aug 2014 19:21:54 +0000 (19:21 +0000)]
Merge "Regenerate "services.h" from /etc/services."

7 years agoRegenerate "services.h" from /etc/services.
Elliott Hughes [Wed, 20 Aug 2014 19:11:31 +0000 (12:11 -0700)]
Regenerate "services.h" from /etc/services.

Change-Id: Iec118f9a342b5c1f6ce6d48965798b12a7159ad3

7 years agoMerge "Clean up some of our python scripts."
Elliott Hughes [Wed, 20 Aug 2014 19:07:51 +0000 (19:07 +0000)]
Merge "Clean up some of our python scripts."

7 years agoClean up some of our python scripts.
Elliott Hughes [Wed, 20 Aug 2014 18:16:11 +0000 (11:16 -0700)]
Clean up some of our python scripts.

Change-Id: Ifa75345db43434298cfb6113fbe2f7a33b88c79d

7 years agoMerge "Add <stdio_ext.h> for elfutils."
Elliott Hughes [Wed, 20 Aug 2014 17:41:08 +0000 (17:41 +0000)]
Merge "Add <stdio_ext.h> for elfutils."

7 years agoAdd <stdio_ext.h> for elfutils.
Elliott Hughes [Wed, 20 Aug 2014 00:00:33 +0000 (17:00 -0700)]
Add <stdio_ext.h> for elfutils.

Bug: 17139679
Change-Id: I1605ac382dbb6f23b2d874dbb9769f3cde4a6a99

7 years agoMerge "Work around atomic_load(const T*) issues."
Hans Boehm [Tue, 19 Aug 2014 22:34:00 +0000 (22:34 +0000)]
Merge "Work around atomic_load(const T*) issues."

7 years agoWork around atomic_load(const T*) issues.
Hans Boehm [Tue, 19 Aug 2014 21:07:55 +0000 (14:07 -0700)]
Work around atomic_load(const T*) issues.

Bug:17067219
Change-Id: I78e753bcf03464f5f05c3f37e394f2727d282589

7 years agoMerge "Add in_port_t and move it and in_addr_t to the correct header file."
Elliott Hughes [Tue, 19 Aug 2014 20:11:53 +0000 (20:11 +0000)]
Merge "Add in_port_t and move it and in_addr_t to the correct header file."

7 years agoAdd in_port_t and move it and in_addr_t to the correct header file.
Elliott Hughes [Tue, 19 Aug 2014 19:43:50 +0000 (12:43 -0700)]
Add in_port_t and move it and in_addr_t to the correct header file.

No one's reported this, but I saw it in an Android port of fuser(1).

We still have lots of problems in our network headers because we
get most of the structs direct from the kernel, and it doesn't use
types like this (which is why we've got away without this one for
so long). One day we should probably look at cleaning that up, but
doing so can wait.

Change-Id: If15edf0cfc32716fa312d7ed97c48321b760d979

7 years agoMerge "Implement the GNU basename(3) in addition to the POSIX one."
Elliott Hughes [Tue, 19 Aug 2014 22:04:58 +0000 (22:04 +0000)]
Merge "Implement the GNU basename(3) in addition to the POSIX one."

7 years agoImplement the GNU basename(3) in addition to the POSIX one.
Elliott Hughes [Tue, 19 Aug 2014 21:30:30 +0000 (14:30 -0700)]
Implement the GNU basename(3) in addition to the POSIX one.

Code like perf(1) needs this.

Bug: 11860789
Change-Id: I907eb448052a7b165e4012d74303330d32328cb2

7 years agoMerge "Move the meat of <features.h> into <sys/cdefs.h>."
Elliott Hughes [Tue, 19 Aug 2014 18:55:17 +0000 (18:55 +0000)]
Merge "Move the meat of <features.h> into <sys/cdefs.h>."

7 years agoMove the meat of <features.h> into <sys/cdefs.h>.
Elliott Hughes [Tue, 19 Aug 2014 18:16:41 +0000 (11:16 -0700)]
Move the meat of <features.h> into <sys/cdefs.h>.

This way it's a lot harder for us to screw up (since we should always
be including <sys/cdefs.h> anyway).

Bug: 14659579
Change-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53

7 years agoMerge "Remove unused defines from <features.h>."
Elliott Hughes [Tue, 19 Aug 2014 17:39:21 +0000 (17:39 +0000)]
Merge "Remove unused defines from <features.h>."

7 years agoRemove unused defines from <features.h>.
Elliott Hughes [Tue, 19 Aug 2014 17:07:00 +0000 (10:07 -0700)]
Remove unused defines from <features.h>.

Bug: 14659579
Change-Id: I2ab02b13cafe3faad31248b843d39ab2cdbfeb91

7 years agoMerge "Fix _BSD_SOURCE/__USE_BSD."
Elliott Hughes [Tue, 19 Aug 2014 16:48:43 +0000 (16:48 +0000)]
Merge "Fix _BSD_SOURCE/__USE_BSD."

7 years agoFix _BSD_SOURCE/__USE_BSD.
Elliott Hughes [Tue, 19 Aug 2014 16:18:03 +0000 (09:18 -0700)]
Fix _BSD_SOURCE/__USE_BSD.

Bug: 14659579
Change-Id: I80ec9584f054c02d1078828f6bca759c42bc1d4c

7 years agoMerge "Revert "Add support for protected local symbol lookup.""
Dmitriy Ivanov [Tue, 19 Aug 2014 16:45:34 +0000 (16:45 +0000)]
Merge "Revert "Add support for protected local symbol lookup.""

7 years agoRevert "Add support for protected local symbol lookup."
Dmitriy Ivanov [Mon, 18 Aug 2014 22:08:51 +0000 (15:08 -0700)]
Revert "Add support for protected local symbol lookup."

This reverts commit d97e9f546ea195686a78e539315b273393609b9e.

Bug: 17107521
(cherry picked from commit 9419420919ea846bbad5510850c7aaec95021648)

Change-Id: I1a6df946ac8075699e77d68ffa6ac4a21b88e4bf

7 years agoMerge "Missing #include <sys/cdefs.h>."
Dan Albert [Tue, 19 Aug 2014 18:29:31 +0000 (18:29 +0000)]
Merge "Missing #include <sys/cdefs.h>."

7 years agoMissing #include <sys/cdefs.h>.
Dan Albert [Tue, 19 Aug 2014 18:06:33 +0000 (11:06 -0700)]
Missing #include <sys/cdefs.h>.

Needed for __BEGIN_DECLS/__END_DECLS. Currently fine because it's being
included after other files that do this.

Change-Id: I1f12368fc461f6ef5ca90992cf19f317f0b5d7af

7 years agoMerge "Expose android_set_abort_message()."
Dan Albert [Tue, 19 Aug 2014 17:18:19 +0000 (17:18 +0000)]
Merge "Expose android_set_abort_message()."

7 years agoExpose android_set_abort_message().
Dan Albert [Mon, 18 Aug 2014 21:37:42 +0000 (14:37 -0700)]
Expose android_set_abort_message().

Removes the leading underscores from __android_set_abort_message() and
moves its declaration into a public header file.

Bug: 17059126
Change-Id: I470c79db47ec783ea7a54b800f8b78ecbe7479ab

7 years agoMerge "Fix leak_realloc, copy entire allocation."
Christopher Ferris [Mon, 18 Aug 2014 20:12:59 +0000 (20:12 +0000)]
Merge "Fix leak_realloc, copy entire allocation."

7 years agoFix leak_realloc, copy entire allocation.
Christopher Ferris [Sat, 16 Aug 2014 01:42:58 +0000 (18:42 -0700)]
Fix leak_realloc, copy entire allocation.

Bug: 16874447

(cherry picked from commit 5df0839cea98bd8c37d8dba5b94b98e99c681a94)

Change-Id: I9280505c0c1c3b5da24ba590448dcd6e7a230406

7 years agomalloc_usable_size returns the original size.
Christopher Ferris [Thu, 14 Aug 2014 19:48:04 +0000 (12:48 -0700)]
malloc_usable_size returns the original size.

Bug: 16874447

(cherry picked from commit 59c1ee44d0a560a754513fab12641c8a57a20d9e)

Change-Id: I70839632974367c8b9893fb1f9c5ee4364608470

7 years agoMerge "malloc_usable_size returns the original size."
Christopher Ferris [Mon, 18 Aug 2014 20:12:54 +0000 (20:12 +0000)]
Merge "malloc_usable_size returns the original size."

7 years agoMerge "Hide C++ stuff in libc. Put it back in libstdc++."
Dan Albert [Mon, 18 Aug 2014 19:56:41 +0000 (19:56 +0000)]
Merge "Hide C++ stuff in libc. Put it back in libstdc++."

7 years agoHide C++ stuff in libc. Put it back in libstdc++.
Dan Albert [Fri, 15 Aug 2014 21:20:04 +0000 (14:20 -0700)]
Hide C++ stuff in libc. Put it back in libstdc++.

Bug: 17062445
Change-Id: I027b186719654c2865b08c3fa83f90fa00c1e838

7 years agoMerge "Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE)."
Elliott Hughes [Tue, 19 Aug 2014 00:27:01 +0000 (00:27 +0000)]
Merge "Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE)."

7 years agoFix <features.h> (_BSD_SOURCE and _GNU_SOURCE).
Elliott Hughes [Mon, 18 Aug 2014 23:04:03 +0000 (16:04 -0700)]
Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).

<features.h> is supposed to take user-settable stuff like _GNU_SOURCE
and _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in
the C library headers. Instead, bionic used to unconditionally define
_BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header
files (which makes no sense whatsoever).

Bug: 14659579
Change-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987

7 years agoMerge "Improve <sys/cdefs.h>."
Elliott Hughes [Mon, 18 Aug 2014 22:11:55 +0000 (22:11 +0000)]
Merge "Improve <sys/cdefs.h>."

7 years agoImprove <sys/cdefs.h>.
Elliott Hughes [Mon, 18 Aug 2014 21:45:42 +0000 (14:45 -0700)]
Improve <sys/cdefs.h>.

Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Change-Id: I3ef645c566b16a52217bc2e68c7d54b37c7c9522

7 years agoMerge "Add atexit test for attributed c-tor/d-tor"
Dmitriy Ivanov [Fri, 15 Aug 2014 22:57:37 +0000 (22:57 +0000)]
Merge "Add atexit test for attributed c-tor/d-tor"

7 years agoAdd atexit test for attributed c-tor/d-tor
Dmitriy Ivanov [Fri, 15 Aug 2014 21:22:07 +0000 (14:22 -0700)]
Add atexit test for attributed c-tor/d-tor

 1. Add test for __attribute__((constructor/destructor))
    and static constructor

 2. Compile C++ testlibs with -std=gnu++11

Change-Id: I67f9308144a0c638a51f111fcba8e1933fe0ba41

7 years agoMerge "Have stdatomic.h punt to C++ atomic when possible"
Hans Boehm [Fri, 15 Aug 2014 18:19:34 +0000 (18:19 +0000)]
Merge "Have stdatomic.h punt to C++ atomic when possible"

7 years agoHave stdatomic.h punt to C++ atomic when possible
Hans Boehm [Thu, 14 Aug 2014 22:26:03 +0000 (15:26 -0700)]
Have stdatomic.h punt to C++ atomic when possible

This is an alternate, somewhat simpler, fix that makes it safe to
include both <atomic> and <stdatomic.h> from C++ code in either order.
It means that C code consistently uses one implementation of atomics
and C++ another.  We still have to make sure that those two
implementations interoperate correctly at runtime; in particular,
any flavor of atomic object needs to be represented exactly like the
underlying type, with the proper alignment constraint.

Bug:17007799
Change-Id: Iffcfc5220d8fa150f89dd083a121b24d23f268fc

7 years agoMerge "Move mtctxres.c to libc_dns.a."
Dan Albert [Thu, 14 Aug 2014 23:17:17 +0000 (23:17 +0000)]
Merge "Move mtctxres.c to libc_dns.a."

7 years agoMove mtctxres.c to libc_dns.a.
Dan Albert [Thu, 14 Aug 2014 22:43:25 +0000 (15:43 -0700)]
Move mtctxres.c to libc_dns.a.

Has the effect of making ___mtctxres hidden.

Bug: 17007799
Change-Id: I5aa5f49344ad5ecb33f48737430561b329bcbb0d

7 years agoMerge "Keep symbols for linker"
Dmitriy Ivanov [Thu, 14 Aug 2014 22:50:52 +0000 (22:50 +0000)]
Merge "Keep symbols for linker"

7 years agoKeep symbols for linker
Dmitriy Ivanov [Thu, 14 Aug 2014 22:46:36 +0000 (15:46 -0700)]
Keep symbols for linker

Bug: 17011146
Change-Id: I314e72a1ac9325bf5ea84d52e3d5bc51d8ea00cf

7 years agoMerge "Change name of MB_CUR_MAX implementation function."
Dan Albert [Thu, 14 Aug 2014 21:19:11 +0000 (21:19 +0000)]
Merge "Change name of MB_CUR_MAX implementation function."

7 years agoChange name of MB_CUR_MAX implementation function.
Dan Albert [Thu, 14 Aug 2014 20:56:51 +0000 (13:56 -0700)]
Change name of MB_CUR_MAX implementation function.

Glibc calls theirs __ctype_get_mb_cur_max. Make ours match to cut down
on differences between bionic and glibc.

Bug: 11156955
Change-Id: Ib7231f01aa9676dff30aea0af25d597bfe07bc73

7 years agoMerge "Add more functionality to glibc symbol checker."
Dan Albert [Thu, 14 Aug 2014 21:18:49 +0000 (21:18 +0000)]
Merge "Add more functionality to glibc symbol checker."

7 years agoAdd more functionality to glibc symbol checker.
Dan Albert [Wed, 13 Aug 2014 20:04:28 +0000 (13:04 -0700)]
Add more functionality to glibc symbol checker.

Also scan NDK's unwanted symbols list (to show the things that we're
exporting but the NDK isn't. Symbols hidden in the NDK will be marked
with a *.

Add a -u (--unwanted) flag to disable the first two printed groups
(all symbols in bionic, all symbols in glibc). This is helpful when
wanting to grep in the list of unwanted symbols.

Finally, update the list of known differences between us and glibc.

Change-Id: I6fdb4126823098430454763c391bd8cd369a75bb

7 years agoMerge "Hide __libc_init_vdso()."
Dan Albert [Wed, 13 Aug 2014 21:07:11 +0000 (21:07 +0000)]
Merge "Hide __libc_init_vdso()."

7 years agoHide __libc_init_vdso().
Dan Albert [Wed, 13 Aug 2014 20:11:58 +0000 (13:11 -0700)]
Hide __libc_init_vdso().

Bug: 11156955
Change-Id: I7ee31e1ee2ce479c5746b374a239637d582815fe

7 years agoMerge "Add memory ordering constraint, convert to C11 atomics"
Hans Boehm [Thu, 14 Aug 2014 01:03:09 +0000 (01:03 +0000)]
Merge "Add memory ordering constraint, convert to C11 atomics"

7 years agoMerge "Hide ScopedTrace."
Dan Albert [Wed, 13 Aug 2014 20:07:44 +0000 (20:07 +0000)]
Merge "Hide ScopedTrace."

7 years agoHide ScopedTrace.
Dan Albert [Wed, 13 Aug 2014 18:25:01 +0000 (11:25 -0700)]
Hide ScopedTrace.

Bug: 11156955
Change-Id: I6cddc868d1c6503e30f1ffcf460f45670631d64a

7 years agoMerge "Optimize symbol lookup"
Dmitriy Ivanov [Wed, 13 Aug 2014 16:28:06 +0000 (16:28 +0000)]
Merge "Optimize symbol lookup"

7 years agoOptimize symbol lookup
Dmitriy Ivanov [Wed, 13 Aug 2014 04:02:13 +0000 (21:02 -0700)]
Optimize symbol lookup

 Do not run symbol lookup on already visited soinfos
 Not taking into account already visited libraries
 dramatically slows down dlsym in cases when there
 are multiple occurrences of a large library in
 dependency tree.

Bug: 16977077
Change-Id: I1379f30ed8b06758dd1cc76b80833ac8589afa50

7 years agoMerge "Hide __libc_malloc_dispatch."
Dan Albert [Tue, 12 Aug 2014 23:55:17 +0000 (23:55 +0000)]
Merge "Hide __libc_malloc_dispatch."

7 years agoHide __libc_malloc_dispatch.
Dan Albert [Tue, 12 Aug 2014 23:21:26 +0000 (16:21 -0700)]
Hide __libc_malloc_dispatch.

Now that -Bsymbolic is fixed, we can hide __libc_malloc_dispatch without
breaking ASAN.

Bug: 11156955
Change-Id: Ia2fc9b046a74e666b33aa6c6c5435f70a63b8021

7 years agoMerge "Added test for ifunc support in dynamic linker."
Dmitriy Ivanov [Thu, 14 Aug 2014 00:29:28 +0000 (00:29 +0000)]
Merge "Added test for ifunc support in dynamic linker."

7 years agoMerge "Label pages mapped by linker_allocator"
Dmitriy Ivanov [Mon, 11 Aug 2014 16:36:33 +0000 (16:36 +0000)]
Merge "Label pages mapped by linker_allocator"

7 years agoLabel pages mapped by linker_allocator
Dmitriy Ivanov [Fri, 8 Aug 2014 23:57:15 +0000 (16:57 -0700)]
Label pages mapped by linker_allocator

Change-Id: I7e0bf29bc1a480e9be0d1ae573ca1063d90d82ff

7 years agoMerge "Fix our x86 PIC_PROLOGUE."
Elliott Hughes [Sun, 10 Aug 2014 05:19:22 +0000 (05:19 +0000)]
Merge "Fix our x86 PIC_PROLOGUE."

7 years agoFix our x86 PIC_PROLOGUE.
Elliott Hughes [Sun, 10 Aug 2014 01:45:55 +0000 (18:45 -0700)]
Fix our x86 PIC_PROLOGUE.

The old definition only worked for functions that didn't use numbered
local labels. Upstream uses '666' not only as some kind of BSD in-joke,
but also because there's little likelihood of any function having
labels that high.

There's a wider question about whether we actually want to go via the
PLT at all in this code, but that's a question for another day.

(cherry-pick of 72d7e667c7e926cb120c4edb53cbf74c652ab915.)

Bug: 16906712
Change-Id: I3cd8ecc448b33f942bb6e783931808ef39091489

7 years agoAdd memory ordering constraint, convert to C11 atomics
Hans Boehm [Thu, 31 Jul 2014 22:53:22 +0000 (15:53 -0700)]
Add memory ordering constraint, convert to C11 atomics

Add an ordering constraint/fence to __system_property_serial.
This slows down a read on a Nexus 5 from about 50 to about 70 ns,
but avoids the possibility of seeing an inconsistent property value.
Use C11 atomic operations where easy and appropriate.
This code remains not fully C++11 memory model conformant, but
I would now expect the generated code to now be correct with current compilers.

Bug:14970171
Change-Id: I0891ff1d0f914ae5c3857e3d76b6a7c8a4a07d83

7 years agoAdded test for ifunc support in dynamic linker.
Brigid Smith [Wed, 23 Jul 2014 18:22:25 +0000 (11:22 -0700)]
Added test for ifunc support in dynamic linker.

ifuncs now work in i386 and x86_64 when called in the same library as
well as in a different library.

Bug:6657325
Change-Id: Ic0c48b1b0a76cb90f36c20c79f68294cc3fd44a1

7 years agoMerge "Make __set_errno hidden in asm."
Dan Albert [Fri, 8 Aug 2014 22:36:57 +0000 (22:36 +0000)]
Merge "Make __set_errno hidden in asm."

7 years agoMake __set_errno hidden in asm.
Dan Albert [Fri, 8 Aug 2014 22:19:20 +0000 (15:19 -0700)]
Make __set_errno hidden in asm.

This fixes the build after the -Bsymbolic change.

Bug: 16853291
Change-Id: I989c9fec3c32e0289ea257a3bd2b7fd2709b6ce2

7 years agoMerge "Revert "Fix incorrect relocations for x86.""
Dan Albert [Fri, 8 Aug 2014 22:35:00 +0000 (22:35 +0000)]
Merge "Revert "Fix incorrect relocations for x86.""

7 years agoRevert "Fix incorrect relocations for x86."
Dan Albert [Fri, 8 Aug 2014 22:15:29 +0000 (15:15 -0700)]
Revert "Fix incorrect relocations for x86."

Bug: 16853291
This reverts commit 512bc5232689bec9c763c8247b59de970096ff87.

7 years agoMerge "Add a way to disable backtracing in malloc debug."
Christopher Ferris [Fri, 8 Aug 2014 16:46:18 +0000 (16:46 +0000)]
Merge "Add a way to disable backtracing in malloc debug."

7 years agoAdd a way to disable backtracing in malloc debug.
Christopher Ferris [Thu, 7 Aug 2014 23:21:21 +0000 (16:21 -0700)]
Add a way to disable backtracing in malloc debug.

The property libc.debug.malloc.nobacktrace set to non-zero disables
getting backtracing when using mode 1 or mode 10.

Bug: 16874447

(cherry picked from 49de01a5be7bfb07baaea7415647d838383e1b59)

Change-Id: I6bbefe5420b14991fe84c2f849222dcd7cb592bf

7 years agoMerge "Remove misleading arm/arm64 PIC_SYM."
Elliott Hughes [Fri, 8 Aug 2014 16:16:48 +0000 (16:16 +0000)]
Merge "Remove misleading arm/arm64 PIC_SYM."

7 years agoRemove misleading arm/arm64 PIC_SYM.
Elliott Hughes [Thu, 7 Aug 2014 18:52:38 +0000 (11:52 -0700)]
Remove misleading arm/arm64 PIC_SYM.

Bug: 16823325
Change-Id: Ic8ff3a628bb4cd71361e3a1c2cfde4b3d39c50b1

7 years agoMerge "Create a distinct temp directory for each run."
Christopher Ferris [Fri, 8 Aug 2014 07:07:48 +0000 (07:07 +0000)]
Merge "Create a distinct temp directory for each run."

7 years agoCreate a distinct temp directory for each run.
Christopher Ferris [Tue, 5 Aug 2014 19:19:27 +0000 (12:19 -0700)]
Create a distinct temp directory for each run.

Modify make__NR_name so that only __ARM_NR_ is exempted from the
__NR_ being prepended. This avoids a case where using a name starting
with __ but is not a valid syscall name in SYSCALLS.TXT does not generate
code that will compile but references the function itself and causes
link errors.

Fix all of the directory references from dir_part1 + dir_part2 to
use os.path.join() instead.

Change-Id: Ib9527eba6f25f26a30c5cb0ad431f3f88a7683cf

7 years agoMerge "Android is all-PIC/PIE."
Elliott Hughes [Thu, 7 Aug 2014 18:25:35 +0000 (18:25 +0000)]
Merge "Android is all-PIC/PIE."

7 years agoAndroid is all-PIC/PIE.
Elliott Hughes [Thu, 7 Aug 2014 17:51:32 +0000 (10:51 -0700)]
Android is all-PIC/PIE.

Clean up the x86/x86_64 assembler. The motivator (other than reducing
confusion) was that asm.h incorrectly checked PIC rather than __PIC__.

Bug: 16823325
Change-Id: Iaa9d45009e93a4b31b719021c93ac221e336479b

7 years agoMerge "Fix incorrect relocations for x86."
Dan Albert [Thu, 7 Aug 2014 23:23:22 +0000 (23:23 +0000)]
Merge "Fix incorrect relocations for x86."

7 years agoFix incorrect relocations for x86.
Dan Albert [Thu, 7 Aug 2014 17:46:42 +0000 (10:46 -0700)]
Fix incorrect relocations for x86.

These calls were not going through the PLT like they should have been.

Bug: 16853291
Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c