OSDN Git Service

android-x86/bionic.git
8 years agoMerge "Add a test for snprintf on a PTHREAD_STACK_MIN-sized stack."
Elliott Hughes [Fri, 5 Feb 2016 20:48:01 +0000 (20:48 +0000)]
Merge "Add a test for snprintf on a PTHREAD_STACK_MIN-sized stack."

8 years agoAdd a test for snprintf on a PTHREAD_STACK_MIN-sized stack.
Elliott Hughes [Fri, 5 Feb 2016 19:18:41 +0000 (11:18 -0800)]
Add a test for snprintf on a PTHREAD_STACK_MIN-sized stack.

This is a common thing for people to want to do, snprintf requires
a lot of stack for itself, and PTHREAD_STACK_MIN should be usable
for realistic code.

Change-Id: Ib09cfb4e0beec1c69ee0944c3ea4c5d03a94c491

8 years agoMerge "Add check for pthread_self() when looking up a thread"
Dimitry Ivanov [Fri, 5 Feb 2016 04:29:54 +0000 (04:29 +0000)]
Merge "Add check for pthread_self() when looking up a thread"

8 years agoAdd check for pthread_self() when looking up a thread
Dimitry Ivanov [Fri, 5 Feb 2016 00:21:01 +0000 (16:21 -0800)]
Add check for pthread_self() when looking up a thread

Check if thread_id is in fact pthread_self before
locking on g_thread_list_lock in __pthread_internal_find.

The main reason for doing this is not performance but to allow
the linker use raise() which was not working because pthread_kill()
couldn't find pthread_self() thread because the global thread
list is initialized in libc.so and the linker's version of this
list is empty.

Bug: http://b/25867917
Change-Id: I18fe620e8cd465b30f0e1ff45fff32958f3c5c00

8 years agoMerge "Add in6addr_any and in6addr_loopback symbols."
Elliott Hughes [Wed, 3 Feb 2016 23:12:10 +0000 (23:12 +0000)]
Merge "Add in6addr_any and in6addr_loopback symbols."

8 years agoAdd in6addr_any and in6addr_loopback symbols.
Elliott Hughes [Wed, 3 Feb 2016 22:13:52 +0000 (14:13 -0800)]
Add in6addr_any and in6addr_loopback symbols.

Change-Id: I3a90fa448b6bd43321672ba74b84a4e9e8a67738

8 years agoMerge "Really add adjtimex(2), and add clock_adjtime(2) too."
Elliott Hughes [Wed, 3 Feb 2016 22:03:09 +0000 (22:03 +0000)]
Merge "Really add adjtimex(2), and add clock_adjtime(2) too."

8 years agoMerge "linker: Change the library search order"
Dimitry Ivanov [Wed, 3 Feb 2016 21:58:40 +0000 (21:58 +0000)]
Merge "linker: Change the library search order"

8 years agoReally add adjtimex(2), and add clock_adjtime(2) too.
Elliott Hughes [Wed, 3 Feb 2016 21:19:10 +0000 (13:19 -0800)]
Really add adjtimex(2), and add clock_adjtime(2) too.

Change-Id: I81fde2ec9fdf787bb19a784ad13df92d33a4f852

8 years agoMerge "Add fopen64/freopen64/tmpfile64 aliases."
Elliott Hughes [Wed, 3 Feb 2016 20:52:42 +0000 (20:52 +0000)]
Merge "Add fopen64/freopen64/tmpfile64 aliases."

8 years agoAdd fopen64/freopen64/tmpfile64 aliases.
Elliott Hughes [Wed, 3 Feb 2016 19:24:28 +0000 (11:24 -0800)]
Add fopen64/freopen64/tmpfile64 aliases.

Our fopen/freopen/tmpfile are already always O_LARGEFILE, but let's add
the aliases for _LARGEFILE_SOURCE compatibility.

Bug: http://b/24807045
Change-Id: I5d99b3ef3c9f27ce70f13313f6a92e96c7f21f80

8 years agoMerge "Fix ifaddrs#getifaddrs_INET flakiness."
Elliott Hughes [Wed, 3 Feb 2016 18:55:20 +0000 (18:55 +0000)]
Merge "Fix ifaddrs#getifaddrs_INET flakiness."

8 years agoMerge "Expose ftello64."
Elliott Hughes [Wed, 3 Feb 2016 18:43:17 +0000 (18:43 +0000)]
Merge "Expose ftello64."

8 years agoFix ifaddrs#getifaddrs_INET flakiness.
Elliott Hughes [Wed, 3 Feb 2016 15:42:33 +0000 (07:42 -0800)]
Fix ifaddrs#getifaddrs_INET flakiness.

The interface name wasn't being nul-terminated for the ioctl. Also clean up
the code a bit to give more useful diagnostics on failure.

Bug: http://b/26887941
Change-Id: I30c6bdc1a32733971a27ed1fb7db9d8239b6262b

8 years agoExpose ftello64.
Elliott Hughes [Wed, 3 Feb 2016 06:39:15 +0000 (22:39 -0800)]
Expose ftello64.

Also add the missing test that would have caught this.

Bug: http://b/24807045
Change-Id: I756a4d825595b52396b15898e3f717156fd1ba2f

8 years agoMerge "Fix our fortify tests for global -Werror."
Dan Albert [Wed, 3 Feb 2016 02:28:42 +0000 (02:28 +0000)]
Merge "Fix our fortify tests for global -Werror."

8 years agoMerge "use GNU C89 extern inline semantics for __size_mul_overflow()"
Josh Gao [Wed, 3 Feb 2016 01:28:48 +0000 (01:28 +0000)]
Merge "use GNU C89 extern inline semantics for __size_mul_overflow()"

8 years agouse GNU C89 extern inline semantics for __size_mul_overflow()
Xia Yang [Thu, 21 Jan 2016 02:34:59 +0000 (18:34 -0800)]
use GNU C89 extern inline semantics for __size_mul_overflow()

__size_mul_overflow generates warning under following compilation envrionment:

-OX -D_FORTIFY_SOURCE=2 (X=1, 2, 3)

For example:

echo '#include <stdio.h>' | \
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-gcc \
    -I bionic/libc/arch-arm/include \
    -I bionic/libc/include \
    -I bionic/libc/kernel/uapi \
    -I bionic/libc/kernel/common \
    -I bionic/libc/kernel/uapi/asm-arm \
    -I bionic/libm/include \
    -I bionic/libm/include/arm \
    -I bionic/libc/include \
    -Werror \
    -O1 \
    -D_FORTIFY_SOURCE=2 \
    -c \
    -x c \
    -

bionic/libc/include/stdio.h:360:13: error: '__size_mul_overflow' is
static but used in inline function 'fread' which is not static [-Werror]
         if (__size_mul_overflow(size, count, &total)) {
                          ^

C99 - 6.7.4
"An inline definition of a function with external linkage shall not contain
a definition of a modifiable object with static storage duration, and shall
not contain a reference to an identifier with internal linkage."

As standard does not require compiler to determine when it is safe to
reference an internal function in an external inline function, but instead
delegalizes such reference as a whole, gcc throws a warning for such code
under C99 compilation.  Warning produced by libc header is inhereted widely
and strips the option of using -Werror to track code sanity.

Replace static inline specifier with gnu89 extern inline. Latter "is used
only for inlining. In no case is the function compiled on its own", which
is slightly different from former semantically, but should produce the same
result here.

Change-Id: I6a3374498e5499d110e54468cf9d0d67d2debbe2

8 years agoFix our fortify tests for global -Werror.
Dan Albert [Wed, 3 Feb 2016 01:13:03 +0000 (17:13 -0800)]
Fix our fortify tests for global -Werror.

If anyone has a better way of doing this it would be welcome...

Bug: http://b/26936282
Change-Id: I796896866327b4b5b5ee4ec36994fb320993f85d

8 years agoMerge "Remove the unused TrackHeader structure."
Christopher Ferris [Tue, 2 Feb 2016 22:09:30 +0000 (22:09 +0000)]
Merge "Remove the unused TrackHeader structure."

8 years agoRemove the unused TrackHeader structure.
Christopher Ferris [Tue, 2 Feb 2016 21:09:59 +0000 (13:09 -0800)]
Remove the unused TrackHeader structure.

Change-Id: I07ae5de717e1fcfbe5dfe552a531db9f630da622

8 years agoMerge "Add better free tracking."
Christopher Ferris [Tue, 2 Feb 2016 20:40:36 +0000 (20:40 +0000)]
Merge "Add better free tracking."

8 years agoMerge changes I8ca219fa,Ia92d35b1
Greg Hackmann [Tue, 2 Feb 2016 18:03:35 +0000 (18:03 +0000)]
Merge changes I8ca219fa,Ia92d35b1

* changes:
  socket.h: update AF_* constants
  Add adjtimex

8 years agolinker: Change the library search order
Dimitry Ivanov [Tue, 2 Feb 2016 07:00:55 +0000 (23:00 -0800)]
linker: Change the library search order

Look into "/system/lib" before "/vendor/lib", this way
we can ensure that in case of name conflict /system libraries
take precedence.

Change-Id: Ifacdc9dc7a4e175853f499ed09782b2257f09e5a

8 years agosocket.h: update AF_* constants
Greg Hackmann [Thu, 28 Jan 2016 19:07:26 +0000 (11:07 -0800)]
socket.h: update AF_* constants

Change-Id: I8ca219fa429ca8d8f872ed1db98275cd1a06f00b
Signed-off-by: Greg Hackmann <ghackmann@google.com>
8 years agoAdd better free tracking.
Christopher Ferris [Fri, 29 Jan 2016 02:35:05 +0000 (18:35 -0800)]
Add better free tracking.

Included in this change:

- Change the tag when a pointer is freed so it's easy to detect if
  an already freed pointer is being used.
- Move the free backtrace out of the header. This backtrace is only
  used under only some circumstances, so no need to allocate space
  in all headers for it.
- Add new option free_track_backtrace_num_frames to specify how many
  frames to record when the free occurs. This removes the dependency
  on the backtrace option to get backtraces.

Bug: 26739265
Change-Id: I76f5209507dcf46af67ada162a7cb2bf282116f2

8 years agoMerge "Tell kati about generated dependencies around crt"
Shinichiro Hamaji [Fri, 29 Jan 2016 06:37:46 +0000 (06:37 +0000)]
Merge "Tell kati about generated dependencies around crt"

8 years agoMerge "Add min/max values for config values."
Christopher Ferris [Fri, 29 Jan 2016 02:31:07 +0000 (02:31 +0000)]
Merge "Add min/max values for config values."

8 years agoAdd adjtimex
Greg Hackmann [Thu, 28 Jan 2016 01:13:51 +0000 (17:13 -0800)]
Add adjtimex

Change-Id: Ia92d35b1851e73c9f157a749dba1e98f68309a8d
Signed-off-by: Greg Hackmann <ghackmann@google.com>
8 years agoTell kati about generated dependencies around crt
Shinichiro Hamaji [Thu, 28 Jan 2016 10:39:50 +0000 (19:39 +0900)]
Tell kati about generated dependencies around crt

This was a regression since kati has been introduced. Without
this, touching libc/arch-common/bionic/__dso_handle.h doesn't
let ninja rebuild object files.

Bug: 26839129
Change-Id: Ie9ef4559c0d1ff0910a4d250ea36938b291d15db

8 years agoMerge "linker: mark library .bss pages with anon:.bss"
Dimitry Ivanov [Thu, 28 Jan 2016 03:50:24 +0000 (03:50 +0000)]
Merge "linker: mark library .bss pages with anon:.bss"

8 years agoAdd min/max values for config values.
Christopher Ferris [Thu, 28 Jan 2016 01:23:36 +0000 (17:23 -0800)]
Add min/max values for config values.

This is to only allow realistic values for some of the options.

Bug: 26739265

Change-Id: I172d5401c27e5d638d80f1c93c678c26c4dae0fc

8 years agolinker: mark library .bss pages with anon:.bss
Dimitry Ivanov [Thu, 28 Jan 2016 02:12:03 +0000 (18:12 -0800)]
linker: mark library .bss pages with anon:.bss

Bug: http://b/26778774
Change-Id: Ie2cdd841b7238de50ef389a897d79f915229616b

8 years agoMerge changes I7dc213e9,I2928d682
Dimitry Ivanov [Wed, 27 Jan 2016 23:36:18 +0000 (23:36 +0000)]
Merge changes I7dc213e9,I2928d682

* changes:
  Hide '__moddi3' symbol for x86 and mips
  Hide '__isthreaded' for lp64 libc.so

8 years agoHide '__moddi3' symbol for x86 and mips
Dimitry Ivanov [Wed, 27 Jan 2016 23:12:19 +0000 (15:12 -0800)]
Hide '__moddi3' symbol for x86 and mips

Bug: http://b/26805673
Change-Id: I7dc213e9f25510a2a74a30e8c43fd7a64cb3dbdb

8 years agoHide '__isthreaded' for lp64 libc.so
Dimitry Ivanov [Wed, 27 Jan 2016 22:54:36 +0000 (14:54 -0800)]
Hide '__isthreaded' for lp64 libc.so

Bug: http://b/26805673
Change-Id: I2928d68287894be9f9ae7ed1858af512d8c80a3b

8 years agoMerge "Remove unused file."
Christopher Ferris [Wed, 27 Jan 2016 20:25:55 +0000 (20:25 +0000)]
Merge "Remove unused file."

8 years agoRemove unused file.
Christopher Ferris [Wed, 27 Jan 2016 18:58:36 +0000 (10:58 -0800)]
Remove unused file.

This file should have been deleted with the malloc debug rewrite, but
popped back into existence due to a merge conflict.

Change-Id: I74e53daaf3febf650b20e3da5329558ac84c5bcd

8 years agoMerge "Fix a sign extension bug in stdio."
Elliott Hughes [Wed, 27 Jan 2016 02:38:46 +0000 (02:38 +0000)]
Merge "Fix a sign extension bug in stdio."

8 years agoMerge "Unify names for pages allocated for small objects"
Dimitry Ivanov [Wed, 27 Jan 2016 02:28:41 +0000 (02:28 +0000)]
Merge "Unify names for pages allocated for small objects"

8 years agoFix a sign extension bug in stdio.
Elliott Hughes [Wed, 27 Jan 2016 02:25:52 +0000 (18:25 -0800)]
Fix a sign extension bug in stdio.

This also lets us test the EOVERFLOW behavior, which pointed out that the
fgetpos/fsetpos return on failure has always been wrong...

Bug: http://b/24807045
Change-Id: I35273eb07c8c9155af858adb27569983397580b6

8 years agoUnify names for pages allocated for small objects
Dimitry Ivanov [Wed, 27 Jan 2016 01:53:17 +0000 (17:53 -0800)]
Unify names for pages allocated for small objects

Bug: http://b/26776399
Change-Id: Id5b6f143a526cecca56de18ddad8857dfa1dd165

8 years agoMerge "Replace snprintf() with __libc_format_buffer()"
Tom Cherry [Wed, 27 Jan 2016 00:09:52 +0000 (00:09 +0000)]
Merge "Replace snprintf() with __libc_format_buffer()"

8 years agoReplace snprintf() with __libc_format_buffer()
Tom Cherry [Tue, 26 Jan 2016 23:27:07 +0000 (15:27 -0800)]
Replace snprintf() with __libc_format_buffer()

If snprintf() is called from the linker, it may erroneously return a
null string.  The libc internal __libc_format_buffer() does not have
this problem, so it is now used instead.

Bug: 26756577

Change-Id: I37a97e27f59b3c0a087f54a6603cc3aff7f07522

8 years agoMerge "Implement funopen64."
Elliott Hughes [Tue, 26 Jan 2016 23:26:43 +0000 (23:26 +0000)]
Merge "Implement funopen64."

8 years agoMerge "Fix lockf for LP32."
Elliott Hughes [Tue, 26 Jan 2016 22:56:36 +0000 (22:56 +0000)]
Merge "Fix lockf for LP32."

8 years agoMerge "Move android_ network functions to LIBC_PRIVATE"
Dimitry Ivanov [Tue, 26 Jan 2016 22:47:56 +0000 (22:47 +0000)]
Merge "Move android_ network functions to LIBC_PRIVATE"

8 years agoImplement funopen64.
Elliott Hughes [Tue, 26 Jan 2016 22:13:04 +0000 (14:13 -0800)]
Implement funopen64.

Bug: http://b/24807045
Change-Id: I161920978161389be34b707cc6ce8e05f760d552

8 years agoMove android_ network functions to LIBC_PRIVATE
Dimitry Ivanov [Tue, 26 Jan 2016 22:07:32 +0000 (14:07 -0800)]
Move android_ network functions to LIBC_PRIVATE

Make following functions platform-private:
 android_getaddrinfofornet
 android_getaddrinfofornetcontext
 android_gethostbyaddrfornet
 android_gethostbynamefornet

Bug: http://b/26794226
Change-Id: I0855b0b82721e4d24e918508931b4d5587fcae7d

8 years agoFix lockf for LP32.
Elliott Hughes [Tue, 26 Jan 2016 22:32:55 +0000 (14:32 -0800)]
Fix lockf for LP32.

Bug: http://b/13077650
Change-Id: Ibbe2d907d23791c908475e0875a5c745ac948813

8 years agoMerge "Factor out the waiting for children in bionic tests."
Elliott Hughes [Tue, 26 Jan 2016 21:32:13 +0000 (21:32 +0000)]
Merge "Factor out the waiting for children in bionic tests."

8 years agoFactor out the waiting for children in bionic tests.
Elliott Hughes [Tue, 26 Jan 2016 21:04:57 +0000 (13:04 -0800)]
Factor out the waiting for children in bionic tests.

Change-Id: I4a1e51b6920b33dc892d447f5bd6d10f1cb2704a

8 years agoMerge "Support _FILE_OFFSET_BITS=64 for most of <stdio.h>."
Elliott Hughes [Tue, 26 Jan 2016 20:51:59 +0000 (20:51 +0000)]
Merge "Support _FILE_OFFSET_BITS=64 for most of <stdio.h>."

8 years agoMerge "Implement POSIX lockf."
Elliott Hughes [Tue, 26 Jan 2016 20:45:32 +0000 (20:45 +0000)]
Merge "Implement POSIX lockf."

8 years agoImplement POSIX lockf.
Elliott Hughes [Tue, 26 Jan 2016 02:06:24 +0000 (18:06 -0800)]
Implement POSIX lockf.

This has been requested a few times over the years. This is basically
a very late rebase of https://android-review.googlesource.com/45470
which was abandoned years ago. One addition is that this version has
_FILE_OFFSET_BITS=64 support.

POSIX puts this in <unistd.h>. glibc also has it in <fcntl.h>.

Bug: http://b/13077650
Change-Id: I5862b1dc326e326c01ad92438ecc1578d19ba739

8 years agoSupport _FILE_OFFSET_BITS=64 for most of <stdio.h>.
Elliott Hughes [Mon, 25 Jan 2016 23:50:59 +0000 (15:50 -0800)]
Support _FILE_OFFSET_BITS=64 for most of <stdio.h>.

This doesn't address funopen, but does add fgetpos/fsetpos/fseeko/ftello.

Bug: http://b/24807045
Change-Id: Ibff6f00df5fb699c8e8f13b91a75caf024540b73

8 years agoMerge "Revert "Revert "Make sem_wait able to return errno EINTR for sdk > 23."""
Yabin Cui [Tue, 26 Jan 2016 02:20:24 +0000 (02:20 +0000)]
Merge "Revert "Revert "Make sem_wait able to return errno EINTR for sdk > 23."""

8 years agoRevert "Revert "Make sem_wait able to return errno EINTR for sdk > 23.""
Yabin Cui [Tue, 26 Jan 2016 01:38:44 +0000 (17:38 -0800)]
Revert "Revert "Make sem_wait able to return errno EINTR for sdk > 23.""

This reverts commit 6d5108520225fd2c4b10ca63565545ec120aab4a.
And add missing bionic_sdk_version.h.

Change-Id: I24cc738b1fd1d26234c52afbc787f5b3c4a9c9cb

8 years agoMerge "Fix gcc test issues."
Christopher Ferris [Tue, 26 Jan 2016 01:35:03 +0000 (01:35 +0000)]
Merge "Fix gcc test issues."

8 years agoFix gcc test issues.
Christopher Ferris [Tue, 26 Jan 2016 01:23:38 +0000 (17:23 -0800)]
Fix gcc test issues.

Change-Id: I2b26b779f5198c7c9362a452b971260a8852aa7b

8 years agoMerge "Revert "Make sem_wait able to return errno EINTR for sdk > 23.""
Elliott Hughes [Tue, 26 Jan 2016 00:32:38 +0000 (00:32 +0000)]
Merge "Revert "Make sem_wait able to return errno EINTR for sdk > 23.""

8 years agoRevert "Make sem_wait able to return errno EINTR for sdk > 23."
Dan Albert [Tue, 26 Jan 2016 00:20:06 +0000 (00:20 +0000)]
Revert "Make sem_wait able to return errno EINTR for sdk > 23."

Broke the build. There's no such file as bionic_sdk_version.h anywhere in the tree.

This reverts commit 892b61d3409e8cdf0e121c688737eb058d57f7ab.

Change-Id: Iec3f4588edfb1d1524bb5f16451fd05dc6ebe44a

8 years agoMerge "Make sem_wait able to return errno EINTR for sdk > 23."
Yabin Cui [Mon, 25 Jan 2016 23:39:29 +0000 (23:39 +0000)]
Merge "Make sem_wait able to return errno EINTR for sdk > 23."

8 years agoMerge "Fix build for gcc."
Christopher Ferris [Mon, 25 Jan 2016 22:44:56 +0000 (22:44 +0000)]
Merge "Fix build for gcc."

8 years agoFix build for gcc.
Christopher Ferris [Mon, 25 Jan 2016 22:36:34 +0000 (14:36 -0800)]
Fix build for gcc.

Gcc doesn't like the brace object initialization, so make all of
the Feature objects explicit.

Also, no arguments to the error_log macros make gcc unhappy, so add
an option to turn these into warnings. These will be fixed when we
add the explicit _error and _warn log functions.

Change-Id: I35af834dabb5548923e893dd980a751fdebfa13a

8 years agoMake sem_wait able to return errno EINTR for sdk > 23.
Yabin Cui [Mon, 25 Jan 2016 19:37:16 +0000 (11:37 -0800)]
Make sem_wait able to return errno EINTR for sdk > 23.

Posix standards says sem_wait is interruptible by the delivery
of a signal. To keep compatiblity with old apps, only fix that
in newer sdk versions.

Bug: 26743454

Change-Id: I924cbb436658e3e0f397c922d866ece99b8241a3

8 years agoMerge "Malloc debug rewrite."
Christopher Ferris [Mon, 25 Jan 2016 20:48:29 +0000 (20:48 +0000)]
Merge "Malloc debug rewrite."

8 years agoMerge "Move internal FILE flags macros to "local.h" from <stdio.h>."
Elliott Hughes [Mon, 25 Jan 2016 19:35:36 +0000 (19:35 +0000)]
Merge "Move internal FILE flags macros to "local.h" from <stdio.h>."

8 years agoMerge "Include libz for new libelf."
Chih-hung Hsieh [Mon, 25 Jan 2016 19:31:23 +0000 (19:31 +0000)]
Merge "Include libz for new libelf."

8 years agoInclude libz for new libelf.
Chih-Hung Hsieh [Mon, 25 Jan 2016 18:28:26 +0000 (10:28 -0800)]
Include libz for new libelf.

New external/elfutils needs libz.

Change-Id: Ib2f2d56d4831809509a0fb3a849656f68adece7f

8 years agoMove internal FILE flags macros to "local.h" from <stdio.h>.
Elliott Hughes [Mon, 25 Jan 2016 19:10:47 +0000 (11:10 -0800)]
Move internal FILE flags macros to "local.h" from <stdio.h>.

Bug: http://b/24807045
Change-Id: Ia42ec1907370b4af957ece94a856f71c7ee27cb7

8 years agoMalloc debug rewrite.
Christopher Ferris [Tue, 17 Nov 2015 01:30:32 +0000 (17:30 -0800)]
Malloc debug rewrite.

The major components of the rewrite:

- Completely remove the qemu shared library code. Nobody was using it
  and it appears to have broken at some point.
- Adds the ability to enable/disable different options independently.
- Adds a new option that can enable the backtrace on alloc/free when
  a process gets a specific signal.
- Adds a new way to enable malloc debug. If a special property is
  set, and the process has an environment variable set, then debug
  malloc will be enabled. This allows something that might be
  a derivative of app_process to be started with an environment variable
  being enabled.
- get_malloc_leak_info() used to return one element for each pointer that
  had the exact same backtrace. The new version returns information for
  every one of the pointers with same backtrace. It turns out ddms already
  automatically coalesces these, so the old method simply hid the fact
  that there where multiple pointers with the same amount of backtrace.
- Moved all of the malloc debug specific code into the library.
  Nothing related to the malloc debug data structures remains in libc.
- Removed the calls to the debug malloc cleanup routine. Instead, I
  added an atexit call with the debug malloc cleanup routine. This gets
  around most problems related to the timing of doing the cleanup.

The new properties and environment variables:

libc.debug.malloc.options
  Set by option name (such as "backtrace"). Setting this to a bad value
  will cause a usage statement to be printed to the log.

libc.debug.malloc.program
  Same as before. If this is set, then only the program named will
  be launched with malloc debug enabled. This is not a complete match,
  but if any part of the property is in the program name, malloc debug is
  enabled.

libc.debug.malloc.env_enabled
  If set, then malloc debug is only enabled if the running process has the
  environment variable LIBC_DEBUG_MALLOC_ENABLE set.

Bug: 19145921

Change-Id: I7b0e58cc85cc6d4118173fe1f8627a391b64c0d7

8 years agoMerge "Add _seek64 to FILE."
Elliott Hughes [Mon, 25 Jan 2016 18:50:41 +0000 (18:50 +0000)]
Merge "Add _seek64 to FILE."

8 years agoMerge "Remove dlmalloc."
Josh Gao [Mon, 25 Jan 2016 18:42:55 +0000 (18:42 +0000)]
Merge "Remove dlmalloc."

8 years agoMerge "Add another stdio test."
Elliott Hughes [Mon, 25 Jan 2016 18:31:35 +0000 (18:31 +0000)]
Merge "Add another stdio test."

8 years agoRemove dlmalloc.
Josh Gao [Thu, 7 Jan 2016 01:57:44 +0000 (17:57 -0800)]
Remove dlmalloc.

Bug: http://b/17207577
Change-Id: Ie009badca6deb1f91b27a4340b70cdd6bedff893

8 years agoAdd _seek64 to FILE.
Elliott Hughes [Fri, 22 Jan 2016 23:04:51 +0000 (15:04 -0800)]
Add _seek64 to FILE.

Move fdopen/fopen/freopen and change them to initialize _seek64 instead
of the legacy _seek. The in-memory streams can stick with _seek for now,
since you're not going to fit a > 4GiB in-memory stream on a 32-bit device
anyway.

Bug: http://b/24807045
Change-Id: I09dcb426817b571415ce24d4d15f364cdda395b3

8 years agoMerge "Put struct FILE back how NDK-built apps expect it."
Elliott Hughes [Sat, 23 Jan 2016 04:50:40 +0000 (04:50 +0000)]
Merge "Put struct FILE back how NDK-built apps expect it."

8 years agoPut struct FILE back how NDK-built apps expect it.
Elliott Hughes [Sat, 23 Jan 2016 03:18:48 +0000 (19:18 -0800)]
Put struct FILE back how NDK-built apps expect it.

The first rule of stdio is you never change struct FILE. This broke all
NDK-built apps that used stdin/stdout/stderr. (Which is more than you
might think, given that those streams don't go anywhere useful. Svelte!)

I've added a big code comment because I knew when I removed the field that
doing so was a mistake, but I couldn't think why.

Bug: http://b/24807045
Bug: http://b/26747402
Change-Id: Ie1233586b223bb1cdf8e354c66d5ff23487a833a

8 years agoAdd another stdio test.
Elliott Hughes [Sat, 23 Jan 2016 03:22:44 +0000 (19:22 -0800)]
Add another stdio test.

This test didn't catch anything, but it does ensure that we exercise
the "lots of files" case.

Bug: http://b/26747402
Change-Id: I6c51c6436029572a49190d509f131eb93b808652

8 years agoMerge "Revert "Temporary apply LIBC version to __pthread_gettid""
Dimitry Ivanov [Fri, 22 Jan 2016 18:38:08 +0000 (18:38 +0000)]
Merge "Revert "Temporary apply LIBC version to __pthread_gettid""

8 years agoMerge "Loosen up sys_time.gettimeofday."
Elliott Hughes [Fri, 22 Jan 2016 03:19:20 +0000 (03:19 +0000)]
Merge "Loosen up sys_time.gettimeofday."

8 years agoRevert "Temporary apply LIBC version to __pthread_gettid"
Dimitry Ivanov [Thu, 21 Jan 2016 22:25:32 +0000 (22:25 +0000)]
Revert "Temporary apply LIBC version to __pthread_gettid"

This reverts commit 0ef1d121b5e4845f4ef3b59ae9a1f99ceb531186.

Bug: http://b/26392296
Bug: http://b/26391427
Change-Id: I7bbb555de3a43813e7623ff6ad4e17874d283eca

8 years agoMerge "libc: hide __signalfd4 symbol"
Dimitry Ivanov [Fri, 22 Jan 2016 01:41:27 +0000 (01:41 +0000)]
Merge "libc: hide __signalfd4 symbol"

8 years agoMerge "libc: hide fake_gmtime_r and fake_localtime_r"
Dimitry Ivanov [Fri, 22 Jan 2016 01:40:45 +0000 (01:40 +0000)]
Merge "libc: hide fake_gmtime_r and fake_localtime_r"

8 years agoLoosen up sys_time.gettimeofday.
Elliott Hughes [Fri, 22 Jan 2016 00:43:43 +0000 (16:43 -0800)]
Loosen up sys_time.gettimeofday.

We've seen it take 1146us on Nexus 9 (which did have exceptionally slow
system calls).

Bug: http://b/26724042
Change-Id: I263b7e1267d58fe4a6528403d03e5b245fdcd528

8 years agolibc: hide fake_gmtime_r and fake_localtime_r
Dimitry Ivanov [Fri, 22 Jan 2016 00:05:23 +0000 (16:05 -0800)]
libc: hide fake_gmtime_r and fake_localtime_r

Bug: http://b/26274444
Change-Id: Icf96a00142a287d8d3466d2545e213e605601b42

8 years agoMerge "linker: align allocated blocks to 16 bytes"
Dimitry Ivanov [Thu, 21 Jan 2016 23:23:49 +0000 (23:23 +0000)]
Merge "linker: align allocated blocks to 16 bytes"

8 years agolibc: hide __signalfd4 symbol
Dimitry Ivanov [Thu, 21 Jan 2016 23:19:52 +0000 (15:19 -0800)]
libc: hide __signalfd4 symbol

Bug: http://b/26274444
Change-Id: Iaa2df640cac07e2e407ca11b9701ee9e11729146

8 years agolinker: align allocated blocks to 16 bytes
Dimitry Ivanov [Thu, 21 Jan 2016 18:55:40 +0000 (10:55 -0800)]
linker: align allocated blocks to 16 bytes

C/C++ requires the result of malloc/new to be
aligned for any primitive type.

Change-Id: I715b7679e738f34b3b409993fb3ef242e1321b7f

8 years agoMerge "Simplify fseek/ftell."
Elliott Hughes [Thu, 21 Jan 2016 18:35:18 +0000 (18:35 +0000)]
Merge "Simplify fseek/ftell."

8 years agoSimplify fseek/ftell.
Elliott Hughes [Thu, 21 Jan 2016 01:14:53 +0000 (17:14 -0800)]
Simplify fseek/ftell.

Another step towards _FILE_OFFSET_BITS=64 support.

Bug: http://b/24807045
Change-Id: I00b83c81a7b108176c4d9437bc32611f73b7e967

8 years agoMerge "Remove dependency on zipalign."
Christopher Ferris [Thu, 21 Jan 2016 18:31:12 +0000 (18:31 +0000)]
Merge "Remove dependency on zipalign."

8 years agoMerge "Do not unmap reserved region on dlclose"
Dimitry Ivanov [Thu, 21 Jan 2016 05:30:31 +0000 (05:30 +0000)]
Merge "Do not unmap reserved region on dlclose"

8 years agoDo not unmap reserved region on dlclose
Dimitry Ivanov [Fri, 15 Jan 2016 19:13:35 +0000 (11:13 -0800)]
Do not unmap reserved region on dlclose

dlclose used to unmap the part of the reserved region
for ANDROID_DLEXT_RESERVED_ADDRESS that was neccessary
to map PT_LOAD segments. With this change dlclose
replaces mapped PT_LOAD segments with a PROT_NONE,
MAP_ANONYMOUS | MAP_NORESERVE.

Previously caller was unmapping the reserved region after
the failed dlclose which led to race condition when someone
else reused the region freed by dlclose but before the unmap
by the chromium code.

Bug: http://code.google.com/p/chromium/issues/detail?id=568880
Change-Id: I0f5eaa2bf6641f83dde469b631c518482acc59a2

8 years agoRemove dependency on zipalign.
Christopher Ferris [Wed, 20 Jan 2016 04:32:37 +0000 (20:32 -0800)]
Remove dependency on zipalign.

Roll our own version of zipalign so that we can break the dependency
on the build tools zipalign. This breaks the transitive dependency
on androidfw so that building bionic unit tests in brillo works again.

Also modify the DlExtTest.ExtInfoUseFdWithOffset test so it dynamically
gets the offset of the shared library inside of the zip instead of
hard-coding the value.

Bug: 25446938
Change-Id: Idfb5d3089960a94eefa2c76e03da1ad2f4d7fb2f

8 years agoMerge "Move stdio implementation details around a little."
Elliott Hughes [Wed, 20 Jan 2016 23:07:50 +0000 (23:07 +0000)]
Merge "Move stdio implementation details around a little."

8 years agoMerge "Update Android.bp to match Android.mk"
Colin Cross [Wed, 20 Jan 2016 21:10:34 +0000 (21:10 +0000)]
Merge "Update Android.bp to match Android.mk"

8 years agoUpdate Android.bp to match Android.mk
Colin Cross [Wed, 20 Jan 2016 20:01:19 +0000 (12:01 -0800)]
Update Android.bp to match Android.mk

Change-Id: Ia14a7af94d6220b3078b8d37b76990454b16703c

8 years agoMerge "Update Android.bp to match Android.mk"
Colin Cross [Wed, 20 Jan 2016 19:58:16 +0000 (19:58 +0000)]
Merge "Update Android.bp to match Android.mk"