| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This reverts commit 8d0c0334f1106d36f2fd5c1cf6d5dc75a4b88850.
|
|\
| |
| |
| |
| | |
* changes:
bionic/linker: fix symbol lookup during relocations
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When resolving relocations while loading a library, the linker used to find
symbols by looking them up in the list of all linked libraries for the current
process, as opposed to following just the library's DT_NEEDED entries. This
can cause a problem where the symbol is picked up from the wrong library.
Signed-off-by: Iliyan Malchev <malchev@google.com>
|
|/ |
|
| |
|
|\
| |
| |
| |
| | |
* changes:
Add pthread_mutex_lock_timeout_np
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is used to perform a mutex lock for a given amount of
milliseconds before giving up. Using the _np prefix since this
is absolutely not portable.
Also remove a compiler warning in pthread_attr_getstackaddr
|
|/
|
|
|
|
|
|
|
|
| |
For performance reasons, we don't call the kernel helper. Instead, we directly
access the TLS register on ARMv6 and higher. For ARMv5TE, keep using the hard-coded
address populated by the kernel on each task switch.
NOTE: Since we don't call the kernel helper, this must precisely match your
kernel configuration. This is controlled by setting the ARCH_ARM_HAVE_TLS_REGISTER
variable to 'true' in your board configuration file.
|
|
|
|
|
| |
Change-Id: I653d638353d9246287bcf568bbffd0f5dbc64019
Signed-off-by: Dima Zavin <dima@android.com>
|
|
|
|
| |
So that the real culprit of native crashes can surface in the stack trace.
|
|
|
|
| |
Signed-off-by: Iliyan Malchev <malchev@google.com>
|
|\
| |
| |
| |
| | |
* changes:
Fix an infinite loop in time2sub.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The problem is that time_t is signed, and the original code relied on the
fact that (X + c < X) in case of overflow for c >= 0. Unfortunately, this
condition is only guaranteed by the standard for unsigned arithmetic, and
the gcc 4.4.0 optimizer did completely remove the corresponding test from
the code. This resulted in a missing boundary check, and an infinite loop.
The problem is solved by testing explicitely for TIME_T_MIN and TIME_T_MAX
in the loop that uses this.
Also fix increment_overflow and long_increment_overflow which were buggy
for exactly the same reasons.
Note: a similar fix is needed for system/core/libcutils
|
|/
|
|
| |
Signed-off-by: Erik Gilling <konkers@android.com>
|
|\
| |
| |
| |
| | |
* changes:
Neon-optimized versions of memcpy.
|
| |
| |
| |
| |
| |
| |
| | |
This optimization come from the external 0xdroid repository.
Original patch can be found here:
http://gitorious.org/0xdroid/bionic/commit/ebafe41c2c02f8c09a3c1d7746047083df180ac5
|
|/
|
|
|
| |
Change-Id: Ib6cd13e86cea84c1cc0901dee3e9ef05eb8279cd
Signed-off-by: Dima Zavin <dima@android.com>
|
|
|
|
| |
Signed-off-by: Iliyan Malchev <malchev@google.com>
|
|
|
|
| |
Signed-off-by: Dima Zavin <dima@android.com>
|
|
|
|
| |
Signed-off-by: Erik Gilling <konkers@android.com>
|
|\
| |
| |
| |
| | |
* changes:
Don't request IPv6 addresses if AI_ADDRCONFIG is specified and the system has no IPv6 connectivity.
|
| |
| |
| |
| | |
has no IPv6 connectivity.
|
|\ \ |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
* changes:
Add mspace_merge_objects
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Dima Zavin <dima@android.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Dima Zavin <dima@android.com>
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
* changes:
Fix strftime to use localized month names.
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
It was using the default locale (capital L) instead of the
current locale (lowercase l).
Bug 2030864
|
|\ \ \ \
| |/ / /
|/| / /
| |/ / |
|
| |\ \ |
|
| |\ \ \ |
|
|\ \ \ \ \
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit 'fde8642fc43bdd224e43e5ee9583a49a758fb03c'
* commit 'fde8642fc43bdd224e43e5ee9583a49a758fb03c':
bionic/linker: keep track of opened libraries by basename
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Prior to this change, the dynamic loader kept track of opened libraries
either by their base name (i.e., libfoo.so instead of /system/lib/libfoo.so)
when the shared library was loaded through the DT_NEEDED tag in an ELF header,
or by whatever name was passed to dlopen(). This created a number of problems,
among which:
1. dlopen("libfoo.so") and dlopen("/path/to/libfoo.so") would open the same
library twice;
2. dlopen("/path/to/libfoo.so") and then dlopen("libbar.so"), where libbar.so
depends on libfoo.so, would open libfoo.so twice.
This patch makes the dynamic loader keep track of each loaded library by
basename, which resolves the above ambiguity. The patch also enforces
library lookup by base name, which means that it will refuse to load another
library that has the same name.
Thanks for the inspiration Iliyan.
Signed-off-by: Erik Gilling <konkers@android.com>
Cc: Iliyan Malchev <malchev@google.com>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '22b5eb858dcbb537f2522ad920ca793348d574a2'
* commit '22b5eb858dcbb537f2522ad920ca793348d574a2':
linker: remove newlines from DL_ERR so that dlerror works correctly
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* changes:
linker: remove newlines from DL_ERR so that dlerror works correctly
|
| | | |/ /
| | |/| |
| | | | |
| | | | | |
Signed-off-by: Erik Gilling <konkers@android.com>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '3773d35eb98e22b5edab4d82fb72bdf86ff80494'
* commit '3773d35eb98e22b5edab4d82fb72bdf86ff80494':
Make the DNS resolver accept domain names with an underscore.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
More precisely, this accepts domain labels with an underscore in
the middle (i.e. not at the start or the end of the label). This
is needed to perform complex CNAME chain resolution in certain
VPN networks.
|
|\ \ \ \
| | |/ /
| |/| | |
|
| |\ \ \
| | |_|/
| |/| | |
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
Merge commit '39f3745cf30efe38482ffead1c32f4e62f6fe32e'
* commit '39f3745cf30efe38482ffead1c32f4e62f6fe32e':
Restore malloc debug.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some libc changes were preventing the initialization call from being made.
The basic problem appears to be that libc_init_common.c is only built once,
and it's only built for the non-debug libc.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit 'b56b5659b3996e98c2060f168d1cff1474e77d2a'
* commit 'b56b5659b3996e98c2060f168d1cff1474e77d2a':
Fix the C library runtime initialization order.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows libc.so to run the C runtime initializer as soon as the
dynamic linker loads the shared library, i.e. before any other initializers
(e.g. static C++ constructors in other shared libraries the executable depends
on).
This also removes the bug where the initializers from the executable itself
were run twice: once by the dynamic linker, and another time by __libc_init
as defined by libc_init_dynamic.c
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit 'ef0bd1857041ffde069cf52138aaf22c1af7130e'
* commit 'ef0bd1857041ffde069cf52138aaf22c1af7130e':
Pass the elfdata pointer in a slot of the temporary TLS area.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is needed to properly initialize the C runtime when libc.so
is loaded by the dynamic linker.
Move the temporary TLS setup before the first system call, just
in case something really horrible happens, we won't crash when
trying to write an error code in 'errno'
Remove the broken TLS_SLOT_THREAD_ID setup. First, this slot
should normally receive the address of a pthread_internal_t,
not a kernel thread identifier. Second, it is never used by
the linker anyway.
Also remove an obsolete comment.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
* changes:
Updating v4l2 headers from kernel
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* changes:
linux: add headers for lis331dlh and sfh7743 sensor drivers.
|