Compare commits

...

648 Commits

Author SHA1 Message Date
Elliott Hughes
fcaf4e9f9b Merge "Revert "More pthreads cleanup."" 2013-02-12 06:07:32 +00:00
Elliott Hughes
6f94de3ca4 Revert "More pthreads cleanup."
This reverts commit 2a1bb4e646

Change-Id: Ia443d0748015c8e9fc3121e40e68258616767b51
2013-02-12 06:06:22 +00:00
Elliott Hughes
85f491f96d Merge "More pthreads cleanup." 2013-02-12 02:33:08 +00:00
Elliott Hughes
83bf28e6a3 Merge "Fix MIPS build." 2013-02-12 02:08:05 +00:00
Elliott Hughes
ba342c11ad Fix MIPS build.
Change-Id: I4863f21f3c2fd597ea36cb7096fc72db808643a3
2013-02-11 18:06:23 -08:00
Elliott Hughes
c56be54a18 Merge "Use ENTRY/END in ARM __get_sp." 2013-02-12 00:59:43 +00:00
Elliott Hughes
d7a3a403c1 Use ENTRY/END in ARM __get_sp.
Change-Id: If2f159b266f5fa4ad9d188a17d4cd318b605e446
2013-02-11 16:58:34 -08:00
Elliott Hughes
cae7b2cfb5 Merge "Fix __pthread_clone on ARM to set errno on failure." 2013-02-12 00:49:28 +00:00
Elliott Hughes
5e3fc43dde Fix __pthread_clone on ARM to set errno on failure.
MIPS and x86 appear to have been correct already.

(Also fix unit tests that ASSERT_EQ with errno so that the
arguments are in the retarded junit order.)

Bug: 3461078
Change-Id: I2418ea98927b56e15b4ba9cfec97f5e7094c6291
2013-02-11 16:39:10 -08:00
Elliott Hughes
1fea0f258a Merge "Clean up ARM assembler files to use ENTRY/END." 2013-02-12 00:05:27 +00:00
Elliott Hughes
f94fd3ccc6 Clean up ARM assembler files to use ENTRY/END.
We also don't need legacy syscall support (non-"swi 0").

Change-Id: Id1012e8ca18bf13f3f4e42200f39ba0e2e632cbf
2013-02-11 15:36:59 -08:00
Elliott Hughes
2a1bb4e646 More pthreads cleanup.
POSIX says pthread_create returns EAGAIN, not ENOMEM.

Also pull pthread_attr_t functions into their own file.

Also pull pthread_setname_np into its own file.

Also remove unnecessary #includes from pthread_key.cpp.

Also account for those pthread keys used internally by bionic,
so they don't count against the number of keys available to user
code. (They do with glibc, but glibc's limit is the much more
generous 1024.)

Also factor out the common errno-restoring idiom to reduce gotos.

Bug: 6702535
Change-Id: I555e66efffcf2c1b5a2873569e91489156efca42
2013-02-11 14:56:39 -08:00
Elliott Hughes
2d3e72336e Merge "Revert "Revert "Pull the pthread_key_t functions out of pthread.c.""" 2013-02-11 20:21:59 +00:00
Elliott Hughes
44b53ad681 Revert "Revert "Pull the pthread_key_t functions out of pthread.c.""
This reverts commit 6260553d48

(Removing the accidental libm/Android.mk change.)

Change-Id: I6cddd9857c31facc05636e8221505b3d2344cb75
2013-02-11 12:20:33 -08:00
Elliott Hughes
8397cdba94 Merge "Revert "Pull the pthread_key_t functions out of pthread.c."" 2013-02-11 20:18:28 +00:00
Elliott Hughes
6260553d48 Revert "Pull the pthread_key_t functions out of pthread.c."
This reverts commit ad59322ae4

somehow my unfinished libm/Android.mk change got into here.

Change-Id: I46be626c5269d60fb1ced9862f2ebaa380b4e0af
2013-02-11 20:18:16 +00:00
Elliott Hughes
09e89c3ced Merge "Pull the pthread_key_t functions out of pthread.c." 2013-02-11 20:02:29 +00:00
Elliott Hughes
ad59322ae4 Pull the pthread_key_t functions out of pthread.c.
This was originally motivated by noticing that we were setting the
wrong bits for the well-known tls entries. That was a harmless bug
because none of the well-known tls entries has a destructor, but
it's best not to leave land mines lying around.

Also add some missing POSIX constants, a new test, and fix
pthread_key_create's return value when we hit the limit.

Change-Id: Ife26ea2f4b40865308e8410ec803b20bcc3e0ed1
2013-02-11 12:00:48 -08:00
Elliott Hughes
9a9bb243b5 Merge "Switch to using AT_RANDOM for the stack guards." 2013-02-08 19:17:33 +00:00
Elliott Hughes
d3920b3a99 Switch to using AT_RANDOM for the stack guards.
Bug: 7959813
Change-Id: I8db4b8912ba649bfe668c6f22aa44690ddd401a2
2013-02-08 11:16:13 -08:00
Elliott Hughes
03579da2d9 Merge "Add a few more missing libm long double stubs." 2013-02-08 02:02:39 +00:00
Elliott Hughes
170dbe25d6 Add a few more missing libm long double stubs.
Change-Id: I6c44b9f3eee730253a958d6cefdac99e6f79da3e
2013-02-07 17:45:11 -08:00
Nick Kralevich
fa75fce566 Merge "update xattr.h" 2013-02-08 00:42:29 +00:00
Nick Kralevich
b184d3ba33 update xattr.h
Change-Id: Ibd91167ba56e2692359b92fe3108da271f0c2e38
2013-02-07 16:23:16 -08:00
Elliott Hughes
964886afa3 Merge "Remove dead code from gensyscalls.py." 2013-02-07 22:17:55 +00:00
Elliott Hughes
cd6780b167 Remove dead code from gensyscalls.py.
Change-Id: I0df69f8fd990f829ccbfcd5123c17b523d5a4d45
2013-02-07 14:07:00 -08:00
Elliott Hughes
f6afd3b670 Merge "Fix x86 build, remove void* arithmetic." 2013-02-07 20:27:40 +00:00
Elliott Hughes
59e9a496b4 Merge "__progname should be const char*, not char*." 2013-02-07 20:16:32 +00:00
Elliott Hughes
646e058136 Fix x86 build, remove void* arithmetic.
Change-Id: Idc7f14af2e094ac33de315e808176237af063bb8
2013-02-07 12:16:10 -08:00
Elliott Hughes
e4ccf5a138 __progname should be const char*, not char*.
Change-Id: I8e846872c30a712fbc05c8da59ffa1cec1be31a4
2013-02-07 12:06:44 -08:00
Elliott Hughes
2f41531ff9 Merge "Clean up the argc/argv/envp/auxv handling." 2013-02-07 19:48:17 +00:00
Elliott Hughes
42b2c6a5ee Clean up the argc/argv/envp/auxv handling.
There's now only one place where we deal with this stuff, it only needs to
be parsed once by the dynamic linker (rather than by each recipient), and it's
now easier for us to get hold of auxv data early on.

Change-Id: I6314224257c736547aac2e2a650e66f2ea53bef5
2013-02-07 11:44:21 -08:00
Elliott Hughes
d4187efd7f Merge "Switch x86 syscall stubs over to the ENTER/END style of the ARM stubs." 2013-02-07 16:55:28 +00:00
Elliott Hughes
7582a9c119 Switch x86 syscall stubs over to the ENTER/END style of the ARM stubs.
Also update the x86 asm.h to support this; we need it for libm assembler
anyway.

Also clean up the _FBSDID hack in <sys/cdefs.h>.

Change-Id: Iababd977b8110ec022bf7c93f4d62ece47630e7c
2013-02-06 17:08:15 -08:00
Elliott Hughes
d32fdbaf03 Merge "Add a missing logbl stub." 2013-02-07 00:09:49 +00:00
Elliott Hughes
926a307ce1 Add a missing logbl stub.
This doesn't usually matter because there's a weak reference; you'd
miss this if you stopped using s_logb.c though.

Change-Id: I912fceae327a378031cd24a64aefa9dfd84f7f90
2013-02-06 16:07:54 -08:00
Elliott Hughes
c9ab32e4e9 Merge "Improve benchmarking tool, add a few math benchmarks." 2013-02-07 00:04:24 +00:00
Elliott Hughes
9edb3e004b Improve benchmarking tool, add a few math benchmarks.
Change-Id: I641305dd0e4ac0705381e735ed1604c5be7aa536
2013-02-06 15:47:09 -08:00
Elliott Hughes
d10a5a02d1 Merge "Remove the currently-unused i387 assembler to make way for the new." 2013-02-06 19:57:51 +00:00
Elliott Hughes
ef545a29ad Remove the currently-unused i387 assembler to make way for the new.
Change-Id: I37e4e8fce881246b9b028f9e1619247b1ac25261
2013-02-06 11:50:19 -08:00
Elliott Hughes
4fc2a74b29 Merge "Remove partial implementation of MIPS non-PIC support." 2013-02-06 19:40:47 +00:00
Elliott Hughes
d2b1a7311f Remove partial implementation of MIPS non-PIC support.
Change-Id: I3c287e52aae10559508174e73113367aea40e5c2
2013-02-06 11:02:28 -08:00
Elliott Hughes
d7ff139fec Merge "Remove bogus extra alignment from sbrk." 2013-02-06 00:57:44 +00:00
Elliott Hughes
428f5567be Remove bogus extra alignment from sbrk.
Bug: https://code.google.com/p/android/issues/detail?id=37349
Change-Id: I970c7b6be7bb7fbe6bbbe2c332f05816aeb0e09f
2013-02-05 16:10:59 -08:00
Elliott Hughes
a4f88fdcf0 Merge "Document the mallinfo struct, add missing attributes." 2013-02-04 21:53:18 +00:00
Elliott Hughes
24fad01755 Document the mallinfo struct, add missing attributes.
Change-Id: Ia97acce1f6a83bd8b3ba8dd20efd962bc96f35a9
2013-02-04 13:44:14 -08:00
Elliott Hughes
a3120aaf2f Merge "Add basic tests for posix_memalign." 2013-02-04 21:19:19 +00:00
Elliott Hughes
b16b72248b Add basic tests for posix_memalign.
Change-Id: Ie34fcc87aa9e8bfc715e25161752024b11e2032a
2013-02-04 13:18:00 -08:00
Elliott Hughes
a1821f0153 Merge "Regenerate msm_ion.h." 2013-02-04 18:42:14 +00:00
Elliott Hughes
3fac8f7f49 Regenerate msm_ion.h.
Bug: 8000377
Change-Id: If496d9972cb8aebfc996ac641aa762220aa71f3b
2013-02-01 18:21:08 -08:00
Elliott Hughes
3dc6b57cf5 Merge "Don't claim there were no leaks if we weren't even checking." 2013-02-02 01:18:44 +00:00
Elliott Hughes
9c81892c2e Don't claim there were no leaks if we weren't even checking.
Bug: 8107016
Change-Id: I9059f1f8374ebcdf00dfc6ac74d3709f501292c9
2013-02-01 17:07:40 -08:00
Elliott Hughes
1bf835558a Merge "Make sincosl call sinl and cosl." 2013-02-02 00:42:01 +00:00
Elliott Hughes
9b05df325c Make sincosl call sinl and cosl.
Bug: 2748728
Change-Id: Id18070963b91b144758c567ad7ac80758e3a638b
2013-02-01 16:32:50 -08:00
Elliott Hughes
ae70b94674 Merge "Update the libm/NOTICE file after the upgrade." 2013-02-02 00:26:12 +00:00
Elliott Hughes
d65bd8400e Update the libm/NOTICE file after the upgrade.
Change-Id: Icf9c44402d6f86117d61307219bb1cccd288854d
2013-02-01 16:16:54 -08:00
Elliott Hughes
a9dd36702f Merge "Restore bionic's <linux/elf-em.h>." 2013-02-02 00:11:33 +00:00
Elliott Hughes
a48e1b2aac Restore bionic's <linux/elf-em.h>.
Used by <linux/audit.h>.

Change-Id: Ica4ebb7f52a7fce13c52fdff35e187ded3939382
2013-02-01 16:10:28 -08:00
Elliott Hughes
44badc70cc Merge "Upgrade libm." 2013-02-01 23:07:49 +00:00
Elliott Hughes
a0ee07829a Upgrade libm.
This brings us up to date with FreeBSD HEAD, fixes various bugs, unifies
the set of functions we support on ARM, MIPS, and x86, fixes "long double",
adds ISO C99 support, and adds basic unit tests.

It turns out that our "long double" functions have always been broken
for non-normal numbers. This patch fixes that by not using the upstream
implementations and just forwarding to the regular "double" implementation
instead (since "long double" on Android is just "double" anyway, which is
what BSD doesn't support).

All the tests pass on ARM, MIPS, and x86, plus glibc on x86-64.

Bug: 3169850
Bug: 8012787
Bug: https://code.google.com/p/android/issues/detail?id=6697
Change-Id: If0c343030959c24bfc50d4d21c9530052c581837
2013-02-01 14:51:19 -08:00
Elliott Hughes
e1a124e5c9 Merge "Say explicitly if there were no leaks." 2013-01-30 19:53:49 +00:00
Elliott Hughes
1d12d57416 Say explicitly if there were no leaks.
Otherwise people trying to use this are left wondering "did I not leak, or did
the leak checking code not get called when I exited?".

Change-Id: If79b225f8a2e24dd69aba1fb836bf9e81bb00efe
2013-01-30 11:38:26 -08:00
Elliott Hughes
a990cf5b33 Merge "Clean up trailing whitespace in the kernel headers." 2013-01-30 18:13:29 +00:00
Elliott Hughes
c95eb57405 Clean up trailing whitespace in the kernel headers.
And fix the scripts so they stop letting trailing whitespace through.

Change-Id: Ie109fbe1f63321e565ba0fa60fee8e9cf3a61cfc
2013-01-30 10:13:07 -08:00
Elliott Hughes
323287ea7f Merge "Fix valgrind build." 2013-01-30 01:50:16 +00:00
Elliott Hughes
6fe67c3cf2 Fix valgrind build.
Change-Id: Ie375d32565d10f4c0c56da5422f52b68cb069654
2013-01-29 17:49:12 -08:00
Elliott Hughes
f67219783f Merge "Fix x86 build to use <elf.h>." 2013-01-30 00:41:24 +00:00
Elliott Hughes
d070df4c74 Fix x86 build to use <elf.h>.
Change-Id: I7b697d5eae69dc08eb31471a42cb8bbe5360be76
2013-01-29 16:40:39 -08:00
Elliott Hughes
5fb409b7b0 Merge "Bring the NOTICE files back up to date." 2013-01-30 00:33:53 +00:00
Elliott Hughes
448080d372 Bring the NOTICE files back up to date.
Change-Id: I978275cf6604b90595ee79d897c0460eeadc7dc8
2013-01-29 16:25:06 -08:00
Elliott Hughes
f09f6db5dd Merge "Use the NetBSD <sys/exec_elf.h>." 2013-01-30 00:06:11 +00:00
Elliott Hughes
a6a3ac5924 Use the NetBSD <sys/exec_elf.h>.
Replace a kernel header file dependency with files from NetBSD.
They're more complete, and ELF is ELF, whether you're on Linux or a BSD.

Bug: 7973611
Change-Id: I83ee719e7efdf432ec2ddbe8be271d05b2f558d7
2013-01-29 15:02:50 -08:00
Elliott Hughes
3db2fc5acb Merge "Don't collect useless stack frames; do demangle C++ symbols." 2013-01-29 19:59:30 +00:00
Elliott Hughes
35b621c5f4 Don't collect useless stack frames; do demangle C++ symbols.
Previously, we'd collect every stack frame and then throw some away
when we came to log them. This meant that stack traces were effectively
shorter than the buffers that had been allocated for them. This patch
only stores frames we'll actually output.

Also dynamically call the C++ demangler so we don't have to try to
read mangled names. Because no one knows the mangling of operator new[]
for int arrays off the top of their head.

Bug: 7291287
Change-Id: I42b022fd7cd61675d05171de4c3b2704d058ef2a
2013-01-29 09:56:31 -08:00
Elliott Hughes
a0151cbfba Merge "Unit tests for formatting code, fix %%." 2013-01-28 22:04:45 +00:00
Elliott Hughes
41b3179c9e Unit tests for formatting code, fix %%.
Also fix <signal.h> and <stdio.h> so they don't cause compiler warnings.

Change-Id: Ib1a746bf01de22d47dbd964de0e6af80a7c96303
2013-01-28 10:36:31 -08:00
Elliott Hughes
0a91b11d28 Merge "More debug malloc fixes." 2013-01-26 01:55:43 +00:00
Elliott Hughes
239e7a0756 More debug malloc fixes.
Include the leaky executable's name in the log output. Fix the "sh" test.
Use uintptr_t instead of intptr_t.

Also fix debug formatting of NULL with %s.

Bug: 7291287
Change-Id: I015bf341cd48d43a247173612e6ccb1bf1243d53
2013-01-25 17:13:45 -08:00
Elliott Hughes
6a94cb748b Merge "arm syscall : for eabi call_default don't use stack" 2013-01-25 21:57:58 +00:00
Nick Kralevich
b871e5d6b3 Merge "system_properties: do more checking of file" 2013-01-25 21:52:00 +00:00
Nick Kralevich
c16961b8c3 system_properties: do more checking of file
Check that the permissions on the properties file
are exactly as we expect them to be.

Make sure we close the fd if fstat fails.

Refactor the code slightly.

Change-Id: I5503fd58c3b8093ce7e6d05920748ed70eaf8e2c
2013-01-25 13:07:31 -08:00
Nick Kralevich
82ef8296dc Merge "prctl.h: include sys/cdefs.h" 2013-01-24 16:44:59 +00:00
Nick Kralevich
8e70b0d5c3 prctl.h: include sys/cdefs.h
prctl.h uses __BEGIN_DECLS but fails to include sys/cdefs.h
(where it's defined).  Code which includes prctl.h without
previously including sys/cdefs.h will fail to compile.

Fixed.

Change-Id: If4c9f3308f08b93596dcd00e351ae786807e9320
2013-01-23 16:49:47 -08:00
Nick Kralevich
b3351f1204 Merge "libc: use more secure system properties if available" 2013-01-23 18:50:24 +00:00
Nick Kralevich
32417fb376 libc: use more secure system properties if available
Currently, system properties are passed via the environment
variable ANDROID_PROPERTY_WORKSPACE and a file descriptor passed
from parent to child. This is insecure for setuid executables,
as the environment variable can be changed by the caller.

Modify system property handling so that we get the properties
from a root owned properties file, rather than using an
environment variable.  Fall back to the environment variable
if the file doesn't exist.

Bug: 8045561
Change-Id: I54f3efa98cf7d63d88788da5ce0d19e34fd7851a
2013-01-23 09:28:35 -08:00
Elliott Hughes
778a68e1e5 Merge "Don't free anything when reporting leaks." 2013-01-23 06:06:21 +00:00
Elliott Hughes
5c8f75ef8b Merge "Disable leak checking for mksh; it's way too leaky." 2013-01-23 06:05:19 +00:00
Elliott Hughes
848247a972 Don't free anything when reporting leaks.
We don't know that they're not going to be cleaned up by a
C++ global destructor that runs after us. This is the case with
bootanimation, for example.

Bug: 7291287
Change-Id: Iba402514d1735fdc2ae4bc95b65396d816be46c0
2013-01-22 18:36:28 -08:00
Elliott Hughes
84f8b5f401 Disable leak checking for mksh; it's way too leaky.
When each shell leaks ~240 allocations, you can't see the leaks from
the program you ran with "adb shell".

Bug: 7291287
Change-Id: Ib8780db72ba0114ebdb24768537da74bbb61f354
2013-01-22 18:35:14 -08:00
Elliott Hughes
28f82b260c Merge "Add const for first argument of sigismember for fit POSIX spec" 2013-01-23 01:11:28 +00:00
Elliott Hughes
8d6302cdcf Merge "Our strcoll(3) is no different from NetBSD's, so take exactly theirs." 2013-01-22 23:19:35 +00:00
Elliott Hughes
2b47307012 Our strcoll(3) is no different from NetBSD's, so take exactly theirs.
Change-Id: I45251047202a229f9175735ecc23c0ebcda71e8d
2013-01-22 15:10:19 -08:00
Elliott Hughes
547eba0a63 Merge "Avoid overflow in memccpy." 2013-01-22 22:53:54 +00:00
Elliott Hughes
c51cd764a2 Avoid overflow in memccpy.
Just take the upstream NetBSD code.

Bug: http://code.google.com/p/android/issues/detail?id=43078
Change-Id: Ibbbde9d00e8bc6a09c9503aab2b04b4e3d1f98b0
2013-01-22 14:41:23 -08:00
Elliott Hughes
85597e2b59 Merge "Clean up debuggerd-related logging." 2013-01-22 22:37:28 +00:00
Elliott Hughes
7af7895eeb Merge "Use the new non-allocating logging for dlmalloc failures." 2013-01-22 22:26:35 +00:00
Elliott Hughes
ce4cf90d79 Use the new non-allocating logging for dlmalloc failures.
Change-Id: I88afe0201ee5766a295fc5a9e710fba9d6e0d363
2013-01-22 14:24:52 -08:00
Elliott Hughes
6b8e321e61 Clean up debuggerd-related logging.
Bug: 7291287
Change-Id: Ia7aa386e8b75b8058d7d9e707e11b1da7dc62f00
2013-01-22 14:17:14 -08:00
Nick Kralevich
244bee5bb6 Merge "bionic_auxv.h: fix #define conflict" 2013-01-22 21:30:27 +00:00
Nick Kralevich
abc21c8056 bionic_auxv.h: fix #define conflict
Both libc/include/sys/auxv.h and libc/private/bionic_auxv.h
use _SYS_AUXV_H_ to see if a header file has already been included.
This prevents both of these files from being included at the same
time.

Fix this name conflict.

Change-Id: Ifaec88aa9779d784b95f8e75145117acf3d5cfc5
2013-01-22 13:09:04 -08:00
Elliott Hughes
02f96b9db0 Merge "Add missing extern "C"." 2013-01-22 19:22:47 +00:00
Elliott Hughes
f90b95ea1a Add missing extern "C".
Change-Id: Idbf24ce8482ff03f24caa89bafb08677b1c5cec3
2013-01-22 11:20:45 -08:00
Elliott Hughes
ca483765bd Merge "Fix the duplication in the debugging code." 2013-01-22 17:44:15 +00:00
Kito Cheng
f373b11f9f Add const for first argument of sigismember for fit POSIX spec
Change-Id: Icbc67375282f2a22dce02e4bacab15ddae846057
2013-01-20 00:15:23 +08:00
Elliott Hughes
1e980b6bc8 Fix the duplication in the debugging code.
We had two copies of the backtrace code, and two copies of the
libcorkscrew /proc/pid/maps code. This patch gets us down to one.

We also had hacks so we could log in the malloc debugging code.
This patch pulls the non-allocating "printf" code out of the
dynamic linker so everyone can share.

This patch also makes the leak diagnostics easier to read, and
makes it possible to paste them directly into the 'stack' tool (by
using relative PCs).

This patch also fixes the stdio standard stream leak that was
causing a leak warning every time tf_daemon ran.

Bug: 7291287
Change-Id: I66e4083ac2c5606c8d2737cb45c8ac8a32c7cfe8
2013-01-18 22:20:06 -08:00
Nick Kralevich
5496bbf6a3 Merge "Revert "Filter ANDROID_PROPERTY_WORKSPACE"" 2013-01-18 20:50:41 +00:00
Guang Zhu
4df577fef7 Revert "Filter ANDROID_PROPERTY_WORKSPACE"
Temporarily revert the change since DNS resolution seems
broken right now in ping util.

Bug: 8029617

This reverts commit a0f64756a4.
2013-01-18 11:28:47 -08:00
Nick Kralevich
4bfaf1e5f6 Merge "FORTIFY_SOURCE: optimize" 2013-01-18 00:49:36 +00:00
Elliott Hughes
e4ca88d9fa Merge "Add functionlity to the scripts to replace tokens in kernel headers based on architecture." 2013-01-18 00:34:13 +00:00
Nick Kralevich
a44e9afdd1 FORTIFY_SOURCE: optimize
Don't do the fortify_source checks if we can determine, at
compile time, that the provided operation is safe.

This avoids silliness like calling fortify source on things like:

  size_t len = strlen("asdf");
  printf("%d\n", len);

and allows the compiler to optimize this code to:

  printf("%d\n", 4);

Defer to gcc's builtin functions instead of pointing our code
to the libc implementation.

Change-Id: I5e1dcb61946461c4afaaaa983e39f07c7a0df0ae
2013-01-17 15:41:33 -08:00
Raghu Gandham
a864c2c234 Add functionlity to the scripts to replace tokens in kernel headers
based on architecture.
2013-01-17 14:39:09 -08:00
Nick Kralevich
f3fe19459f Merge "linker: add -Wl,--exclude-libs,ALL to LDFLAGS" 2013-01-17 16:41:31 +00:00
Nick Kralevich
d89ce40d8e linker: add -Wl,--exclude-libs,ALL to LDFLAGS
The linker is essentially a shared library, and incorporates
it's own copy of libc. Even though it's unnecessary, currently
/system/bin/linker is exporting various libc symbols (only to
apps which explicitly dlopen /system/bin/linker)

Add --exclude-libs,ALL, which tells the static linker to mark
all of the imported libc symbols as hidden. This reduces the
size of /system/bin/linker from 92K to 67K with no obvious
loss in functionality.

  $ adb shell ls -l /system/bin/linker
  -rwxrwxrwx root     root        92260 2013-01-16 16:52 linker

  $ adb shell ls -l /system/bin/linker
  -rwxrwxrwx root     root        67660 2013-01-16 16:49 linker

Documentation on exclude-libs can be found at
http://sourceware.org/binutils/docs-2.21/ld/Options.html

Change-Id: I4508287770e4b7a845def2e6b4af969f9c866c6a
2013-01-16 16:43:58 -08:00
Nick Kralevich
1271cdc1c9 Merge "Revert "stack protector: use AT_RANDOM"" 2013-01-16 21:36:53 +00:00
Nick Kralevich
36bd371e26 Revert "stack protector: use AT_RANDOM"
The AT_RANDOM changes broke setuid / setgid executables
such as "ping". When the linker executes a setuid program,
it cleans the environment, removing any invalid environment
entries, and adding "NULL"s to the end of the environment
array for each removed variable. Later on, we try to determine
the location of the aux environment variable, and get tripped
up by these extra NULLs.

Reverting this patch will get setuid executables working again,
but getauxval() is still broken for setuid programs because of
this bug.

This reverts commit e3a49a8661.

Change-Id: I05c58a896b1fe32cfb5d95d43b096045cda0aa4a
2013-01-16 13:16:42 -08:00
Nick Kralevich
ba117e4172 Merge "stack protector: use AT_RANDOM" 2013-01-16 11:23:26 -08:00
Nick Kralevich
1b34228bb2 Merge "Filter ANDROID_PROPERTY_WORKSPACE" 2013-01-16 11:11:17 -08:00
Nick Kralevich
e3a49a8661 stack protector: use AT_RANDOM
Populate the stack canaries from the kernel supplied
AT_RANDOM value, which doesn't involve any system calls.
This is slightly faster (6 fewer syscalls) and avoids
unnecessarily reading /dev/urandom, which depletes entropy.

Bug: 7959813

Change-Id: If2b43100a2a9929666df3de56b6139fed969e0f1
2013-01-16 10:09:52 -08:00
Elliott Hughes
14e1975e13 Merge "Fix signalfd for MIPS." 2013-01-16 09:42:51 -08:00
Elliott Hughes
f193b9fc21 Fix signalfd for MIPS.
Also mark signalfd's sigset_t* argument as non-nullable.

Change-Id: I466e09cdf3fb92480744c496da92274a97f99dd1
2013-01-16 09:40:25 -08:00
Matthieu Castet
faa0fdb119 arm syscall : for eabi call_default don't use stack
In the default case, we don't need to use the stack, we can save r7 with
ip register (that what does eglibc).

This allow to fix vfork data corruption
(see 3884bfe966), because vfork now don't
use the stack.
2013-01-16 14:53:37 +01:00
Nick Kralevich
a0f64756a4 Filter ANDROID_PROPERTY_WORKSPACE
When executing a setuid executable, filter out ANDROID_PROPERTY_WORKSPACE
from the environment. Some applications implicitly trust the property
space and don't realize that it's passed by an environment variable
which can be modified by the caller.

Change-Id: I3e3a98941f0a1f249a2ff983ecbcfe1278aa9159
2013-01-15 16:02:03 -08:00
Elliott Hughes
791e26d959 Merge "Revert "DO NOT MERGE Revert "Add the libcutils localtime_tz and mktime_t extensions to bionic.""" 2013-01-15 13:21:52 -08:00
Elliott Hughes
acb907fb0d Revert "DO NOT MERGE Revert "Add the libcutils localtime_tz and mktime_t extensions to bionic.""
This reverts commit f4b34b6c39.

The revert was only meant to apply to the jb-mr1 branch, but accidentally
leaked out into AOSP. This revert-revert gets AOSP master and internal
master back in sync.
2013-01-15 11:12:18 -08:00
Nick Kralevich
b59e358bb9 Merge "fix strerror_r test" 2013-01-15 10:56:07 -08:00
Nick Kralevich
606058933c fix strerror_r test
e6e60065ff modified strerror_r to
treat errno as signed. However, the change to the test code
modified the "strerror" test, not the "strerror_r" test.

Make the same change for the strerror_r code.

Change-Id: Ia236a53df5745935e229a4446a74da8bed0cfd7b
2013-01-15 10:35:09 -08:00
Ben Cheng
b09d7d8600 Merge "Add __aeabi_idiv to the dummy reference list." 2013-01-14 15:35:04 -08:00
Ben Cheng
35f5385aa5 Add __aeabi_idiv to the dummy reference list.
If the platform code is compiled with -mcpu=cortex-a15, then without this
change prebuilt libraries built against -march=armv7 cannot resolve the
dependency on __aeabi_idiv (provided by libgcc.a).

Bug: 7961327

cherry-picked from internal master.

Change-Id: I8fe59a98eb53d641518b882523c1d6a724fb7e55
2013-01-14 15:33:40 -08:00
Nick Kralevich
29fe857ec8 Merge "headers: update auxvec.h from Linux kernel" 2013-01-14 14:14:49 -08:00
Nick Kralevich
a67e4de662 headers: update auxvec.h from Linux kernel
Pull a new version of auxvec.h from the upstream Linux
kernel at commit b719f43059903820c31edb30f4663a2818836e7f

These files were generated using the following commands:

cd bionic/libc/kernel
./tools/clean_header.py -u ../../../external/kernel-headers/original/uapi/linux/auxvec.h
./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/auxvec.h
./tools/clean_header.py -u ../../../external/kernel-headers/original/asm-x86/auxvec.h

This change is needed to get AT_RANDOM defined.

Change-Id: Ib064649684b17af6ff4b1a31d501a05f78bb81d0
2013-01-14 11:49:59 -08:00
Ian Rogers
68fa57f000 Merge "Name anonymous mmap mallocs." 2013-01-14 10:54:44 -08:00
Nick Kralevich
bb897fa9f7 Merge "libc_init_static: apply relro earlier." 2013-01-14 10:21:23 -08:00
Elliott Hughes
09d13c393e Merge "Fix my git mistake." 2013-01-14 09:57:45 -08:00
Elliott Hughes
99c32055cb Fix my git mistake.
This was the formatting change that was supposed to be in
cf23905a4b.

Change-Id: Ib79fa031b68f6f541f532507eb589afeaedb831f
2013-01-14 09:56:21 -08:00
Elliott Hughes
48c632a381 Merge "[MIPS] Set DT_DEBUG dyntab entry if it is writable" 2013-01-14 09:31:04 -08:00
Chris Dearman
cf23905a4b [MIPS] Set DT_DEBUG dyntab entry if it is writable
This is primarily for MIPS exutables that do not have a
DT_MIPS_RLD_MAP entry.

Change-Id: I4c221d92debcfed961eeee2515123f3fb21ec8e6
Signed-off-by: Chris Dearman <chris@mips.com>
2013-01-14 09:30:25 -08:00
Nick Kralevich
9fb48ac257 libc_init_static: apply relro earlier.
The dynamic linker applies relro before the preinit and init
arrays are executed, so we should be consistent for statically
linked executables.

Change-Id: Ia0a49d0e981a6e8791f74eed00280edf576ba139
2013-01-11 18:38:26 -08:00
Ian Rogers
8921060253 Name anonymous mmap mallocs.
Change-Id: Icc53ba1eecb8445210623826d8e99a611d686f7f
2013-01-11 17:42:17 -08:00
Nick Kralevich
2c5153b043 libc: add getauxval()
Add support for getauxval().  This method allows a program an easy way
to retrieve information from the kernel auxiliary vector, and will
hopefully replace other clumsy ways of accessing this same information.

This particular function was also added to glibc in glibc 2.16.
See the following URLs for more details.

  * http://lwn.net/Articles/519085/
  * http://www.gnu.org/software/libc/manual/html_node/Auxiliary-Vector.html

This change is a prerequisite for bug 7959813.

Bug: http://code.google.com/p/android/issues/detail?id=38441
Change-Id: Iba19d899df334bddc6f4899077ece2fc87564ea8
2013-01-11 16:44:15 -08:00
Nick Kralevich
69c89942db Merge "Add stack canaries / strcpy tests." 2013-01-11 11:03:40 -08:00
Nick Kralevich
dcab1b2c76 Add stack canaries / strcpy tests.
Add a test to ensure that stack canaries are working
correctly. Since stack canaries aren't normally generated
on non-string functions, we have to enable stack-protector-all.

Add a test to ensure that an out of bounds strcpy generates
a runtime failure.

Change-Id: Id0d3e59fc4b9602da019e4d35c5c653e1a57fae4
2013-01-11 10:52:36 -08:00
Wink Saville
a12c54454f Fix unused warnings in pthread.c
Change-Id: I0287aadb825fd8cda29dc976bce55d75a1279fc5
2013-01-10 16:30:22 -08:00
Elliott Hughes
bfde0b6fd9 Merge "glibc 2.15 treats errno as signed in strerror(3)." 2013-01-10 16:24:36 -08:00
Elliott Hughes
e6e60065ff glibc 2.15 treats errno as signed in strerror(3).
And the only reason I hadn't done that in bionic is because I wanted to behave
the same as glibc.

Change-Id: I2cf1bf0aac82a748cd6305a2cabbac0790058570
2013-01-10 16:01:59 -08:00
Elliott Hughes
0d3700d957 Merge "Only have one copy of the kernel_sigset_t hack, and add more tests." 2013-01-10 15:12:46 -08:00
Elliott Hughes
c5d028fc91 Only have one copy of the kernel_sigset_t hack, and add more tests.
Change-Id: I377522fcba6fb4b5fd2754ab15b091014bd7c16f
2013-01-10 14:42:14 -08:00
Elliott Hughes
2bbb8fac61 Merge "Add signalfd call to bionic" 2013-01-10 13:17:27 -08:00
Rom Lemarchand
a4b2dc016f Add signalfd call to bionic
Add signalfd() call to bionic.

Adding the signalfd call was done in 3 steps:
- add signalfd4 system call (function name and syscall
  number) to libc/SYSCALLS.TXT
- generate all necessary headers by calling
  libc/tools/gensyscalls.py. This patch is adding
  the generated files since the build system
  does not call gensyscalls.py.
- create the signalfd wrapper in signalfd.cpp and add
  the function prototype to sys/signalfd.h

(cherry-pick of 0c11611c11, modified to
work with older versions of GCC still in use on some branches.)

Change-Id: I4c6c3f12199559af8be63f93a5336851b7e63355
2013-01-10 13:14:46 -08:00
Elliott Hughes
364d9ee62f Merge "Don't test GNU-style ELF hashes on MIPS." 2013-01-07 14:46:13 -08:00
Elliott Hughes
a43e906221 Don't test GNU-style ELF hashes on MIPS.
The MIPS toolchain can't generate them because they're incompatible
with the MIPS ABI (which requires .dynsym match the GOT, while GNU-style
requires .dynsym to be sorted by hash code), so there's nothing to test.

Change-Id: I2220f452fe6fe595ec1312544cc741dd390a36a5
2013-01-07 14:44:36 -08:00
Elliott Hughes
7e22db037e Merge "Fix an off-by-one error in the sigset_t function error handling." 2013-01-07 14:11:43 -08:00
Elliott Hughes
fb5e5cbdd4 Fix an off-by-one error in the sigset_t function error handling.
Spotted while running the tests on MIPS, where sigset_t is
actually large enough. The bits in sigset_t are used such that
signal 1 is represented by bit 0, so the range of signals is
actually [1, 8*sizeof(sigset_t)]; it seems clearer to reword
the code in terms of valid bit offsets [0, 8*sizeof(sigset_t)),
which leads to the usual bounds checking idiom.

Change-Id: Id899c288e15ff71c85dd2fd33c47f8e97aa1956f
2013-01-07 13:58:49 -08:00
Elliott Hughes
26c5b2d460 Merge "[MIPS] Rewrite fenv.h for Android" 2013-01-07 13:30:58 -08:00
Raghu Gandham
d199017101 [MIPS] Rewrite fenv.h for Android
Change-Id: I4d1e2f0b37b587426ccc9f26c525ec0d36637c7d
2013-01-04 16:32:54 -08:00
Elliott Hughes
63dc592789 Merge "Add AF_CAN and PF_CAN (and other missing families)." 2013-01-03 16:55:30 -08:00
Elliott Hughes
d73c0b300e Add AF_CAN and PF_CAN (and other missing families).
Change-Id: I2c183a6f5f7a7e81e87dad85d8c9aff9c43ed33a
2013-01-03 16:25:47 -08:00
Elliott Hughes
f0036944a1 Merge "Fix debug malloc." 2013-01-03 16:20:01 -08:00
Elliott Hughes
db492b3ca7 Fix debug malloc.
...which has been broken since the linker data structures went read-only.

Bug: 7941716
Change-Id: If28f6bac0fcb13e371e4d85b064544f561c8d692
2013-01-03 15:44:03 -08:00
Elliott Hughes
b1b5317799 Merge "sysconf.c was renamed to sysconf.cpp (and modified)..." 2013-01-03 11:54:57 -08:00
Elliott Hughes
7cbff41ba3 sysconf.c was renamed to sysconf.cpp (and modified)...
...but sysconf.c still lingers on due to some git/repo accident. Kill it.

Change-Id: Iae354ecb21abf03a3f718cc45cfdddb7a9347778
2013-01-03 11:53:35 -08:00
Elliott Hughes
fb62558bb4 Merge "Define _POSIX_MONOTONIC_CLOCK and implement sysconf(_SC_MONOTONIC_CLOCK)." 2013-01-02 15:51:15 -08:00
Elliott Hughes
a55f63083f Define _POSIX_MONOTONIC_CLOCK and implement sysconf(_SC_MONOTONIC_CLOCK).
Bug: http://code.google.com/p/android/issues/detail?id=39680
Change-Id: I11cf10a66f9d305868a725f04f581099fb88bbfc
2013-01-02 14:23:43 -08:00
Elliott Hughes
918d776f7e Merge "Support System.loadLibrary for libraries with transitive dependencies." 2012-12-21 17:46:22 -08:00
Elliott Hughes
f6524f8bda Merge "Fix format_number." 2012-12-20 19:08:17 -08:00
Elliott Hughes
eababde214 Fix format_number.
I broke this the other day when silencing x86 gcc warnings.

Bug: 7904160
Change-Id: I8e60cc1f8cbaff95248c8738d84e515413d839e4
2012-12-20 19:00:48 -08:00
Elliott Hughes
cade4c36e7 Support System.loadLibrary for libraries with transitive dependencies.
Also fix the FLAG_ERROR annoyance --- it's not helpful to cache failures.

Bug: 7896159
Bug: http://code.google.com/p/android/issues/detail?id=34416
Bug: http://code.google.com/p/android/issues/detail?id=22143
Change-Id: I60f235edb4ea4756e1f7ce56f7739f18e8a50789
2012-12-20 14:42:14 -08:00
Elliott Hughes
4b58214205 Merge "Fix x86 dynamic linker build." 2012-12-18 18:16:09 -08:00
Elliott Hughes
45288c5ce3 Fix x86 dynamic linker build.
Change-Id: Ia9fc6342e3d409de86dcd187c7402e8ac2ae96c8
2012-12-18 18:13:19 -08:00
Elliott Hughes
a4ebdcf5bd Merge "Check for unknown flags passed to dlopen(3)." 2012-12-18 16:38:37 -08:00
Elliott Hughes
e66190d2a9 Check for unknown flags passed to dlopen(3).
Change-Id: I56f4aab0e5a1487bc32d2c4d231e8bd15c4ac8da
2012-12-18 15:57:55 -08:00
Elliott Hughes
4c4b08a32e Merge "Fix <endian.h> and <sys/endian.h>." 2012-12-11 17:18:58 -08:00
Elliott Hughes
4fa35d8ae8 Fix <endian.h> and <sys/endian.h>.
Previously we'd been relying on getting the machine-specific <endian.h>
instead of the top-level <endian.h>, and <sys/endian.h> was basically broken.
Now, with this patch and the previous patch we should have <endian.h>
and <sys/endian.h> behaving the same. This is basically how NetBSD's endian.h
works, and was probably how ours was originally intended to work.

Bug: http://code.google.com/p/android/issues/detail?id=39824
Change-Id: I71de5a507e633de166013a658b5764df9e1aa09c
2012-12-11 16:17:33 -08:00
Elliott Hughes
0521ff8234 Merge "Use pthread_kill() in raise()" 2012-12-10 11:21:42 -08:00
Chris Dearman
d8a5a6f513 Use pthread_kill() in raise()
raise() should use pthread_kill() in a pthreads environment.
For bionic this means it should always be used.

Change-Id: Ic679272b664d2b8a7068b628fb83a9f7395c441f
2012-12-10 11:20:57 -08:00
Geremy Condra
6fcf1770e5 Merge "Added audit.h from the kernel." 2012-12-07 14:21:16 -08:00
Geremy Condra
03e1ebbdd6 Added audit.h from the kernel.
Just followed the recipe in I1ca996541d05b0d5927ab828a6ce49c09877ea01

Change-Id: I5713d9ce5ff62e310a694ecfbe21cad6577bcb4d
2012-12-07 14:13:23 -08:00
Nick Kralevich
c8354f501e Merge "FORTIFY_SOURCE: remove memcpy overlap checks" 2012-12-07 10:10:49 -08:00
Nick Kralevich
5787475390 FORTIFY_SOURCE: remove memcpy overlap checks
These checks haven't been as useful as I hoped, and it's
causing a false positive finding.  Remove the overlap
compile time checks.

Change-Id: I5d45dde10ae4663d728230d41fa904adf20acaea
2012-12-07 09:57:01 -08:00
Nick Kralevich
5dfdb70129 Merge "FORTIFY_SOURCE: fix up previous commit" 2012-12-06 14:48:24 -08:00
Nick Kralevich
8b6fea59ac FORTIFY_SOURCE: fix up previous commit
I forgot two files in 326ea5413d.

Change-Id: I30430f65bfafad4274193fc5b973959eac0791a7
2012-12-05 15:26:54 -08:00
Nick Kralevich
7a34ed2bb3 Merge "clean up FORTIFY_SOURCE handling." 2012-12-04 15:44:22 -08:00
Nick Kralevich
326ea5413d clean up FORTIFY_SOURCE handling.
Avoid duplicating huge chunks of code.

Change-Id: Id6145cdfce781c5ffba2abaaa79681d25a7ab28f
2012-12-04 15:27:30 -08:00
Nick Kralevich
db79e827eb Merge "FORTIFY_SOURCE: fortify strrchr" 2012-12-04 11:30:18 -08:00
Nick Kralevich
9a4d305340 FORTIFY_SOURCE: fortify strrchr
This change compliments 049e58369c

Change-Id: I27d015d70a520713c7472558a3c427f546d36ee4
2012-12-03 10:39:16 -08:00
Elliott Hughes
60fb68338b Merge "mmap: Remove madvise() workaround" 2012-12-03 09:13:20 -08:00
Elliott Hughes
46d64ed2e5 Merge "Add argument checking to sigemptyset(3) and friends." 2012-12-03 07:45:46 -08:00
Nick Kralevich
3acc908c79 Merge "FORTIFY_SOURCE: fortify strchr" 2012-11-30 16:50:59 -08:00
Elliott Hughes
da73f655fc Add argument checking to sigemptyset(3) and friends.
You could argue that this is hurting people smart enough to have manually
allocated a large-enough sigset_t, but those people are smart enough to
implement their own sigset functions too.

I wonder whether our least unpleasant way out of our self-inflicted 32-bit
cesspool is to have equivalents of _FILE_OFFSET_BITS such as _SIGSET_T_BITS,
so calling code could opt in? You'd have to be careful passing sigset_t
arguments between code compiled with different options.

Bug: 5828899
Change-Id: I0ae60ee8544835b069a2b20568f38ec142e0737b
2012-11-30 16:40:55 -08:00
Nick Kralevich
049e58369c FORTIFY_SOURCE: fortify strchr
Detect when strchr reads off the end of a buffer.

Change-Id: I0e952eedcff5c36d646a9c3bc4e1337b959224f2
2012-11-30 15:19:15 -08:00
Elliott Hughes
16c61f0885 Merge "Reduce the exposure of the __set_errno implementation detail." 2012-11-30 14:41:07 -08:00
Elliott Hughes
4a9e837840 Reduce the exposure of the __set_errno implementation detail.
Change-Id: I395e1b46a9491e34fc53e71853e932ea90b3d1cc
2012-11-30 12:05:18 -08:00
Elliott Hughes
97b70b2bda Merge "Replace .S version of x86 crtfiles with .c version" 2012-11-30 10:07:19 -08:00
Pavel Chupin
20c4a3a8ee Replace .S version of x86 crtfiles with .c version
This patch replaces .S versions of x86 crtfiles with .c which are much
easier to support. Some of the files are matching .c version of Arm
crtfiles. x86 files required some cleanup anyway and this cleanup actually
led to matching Arm files.

I didn't change anything to share the same crt*.c between x86 and Arm. I
prefer to keep them separate for a while in case any change is required
for one of the arch, but it's good thing to do in the following patches.

Change-Id: Ibcf033f8d15aa5b10c05c879fd4b79a64dfc70f3
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2012-11-30 17:41:25 +04:00
Elliott Hughes
07c0b73a7f Merge "Remove (near-)duplicate definitions of size_t and ssize_t." 2012-11-29 19:33:01 -08:00
Elliott Hughes
3975cec694 Remove (near-)duplicate definitions of size_t and ssize_t.
The near duplicates upset fussier compilers that insist that
typedefs be exactly the same, but the fix isn't to make all
copies identical...

Change-Id: Icfdace41726f36ec33c9ae919dbb5a54d3529cc9
2012-11-29 17:25:23 -08:00
Elliott Hughes
50e62e4051 Merge "Bug: __WINT_TYPE__ and wint_t reference to different types" 2012-11-29 15:51:57 -08:00
Elliott Hughes
99ea84b12d Merge "[MIPS] Fix the MIPS getsid system call" 2012-11-29 14:37:14 -08:00
Elliott Hughes
5d4b8421b3 Merge "Verify architecture neutral syscall numbers" 2012-11-29 14:34:19 -08:00
Elliott Hughes
7811422080 Merge "Define DEFFILEMODE and friends" 2012-11-29 14:31:19 -08:00
Chris Dearman
58aaaa730b [MIPS] Fix the MIPS getsid system call
Change-Id: I30a27941125bccb35d73a572a729ecf7dd555389
Signed-off-by: Chris Dearman <chris@mips.com>
2012-11-29 12:05:25 -08:00
Chris Dearman
285b02582b Verify architecture neutral syscall numbers
Also removed some dead code and fixed comment

Change-Id: I5d6a04b4af3d95e34368136cf2eeb3c9b6f99769
Signed-off-by: Chris Dearman <chris@mips.com>
2012-11-29 12:04:23 -08:00
Hakan Kvist
f27b7fb056 Define DEFFILEMODE and friends
Define the macros ACCESSPERMS, ALLPERMS and DEFFILEMODE.
These macros originates from BSD but has been available in glibc
for quite some time.

Change-Id: I429cd30aa4e73f53b153ee7740070cebba166c57
2012-11-29 11:53:33 -08:00
Elliott Hughes
dea13da340 Merge "Clean up _BYTE_ORDER definitions for better x86 portability." 2012-11-27 17:34:52 -08:00
Elliott Hughes
b15c58bb0f Clean up _BYTE_ORDER definitions for better x86 portability.
We'd manually hacked _BYTE_ORDER into the arm and mips "_types.h" headers,
but not into the x86 one. Judging by upstream, _BYTE_ORDER should be in
the "endian.h" headers instead, so let's uniformly do that.

I've also ironed out some of the other differences between the different
architectures' header files too.

Bug: http://code.google.com/p/android/issues/detail?id=39824
Change-Id: I19d3af7ffd74e1c02b1b6886aec0f0d11f44ab8d
2012-11-27 14:18:04 -08:00
Elliott Hughes
f2de6b0f6e Merge "Do not include '\0' when writing error messages to stderr" 2012-11-26 15:44:58 -08:00
Chris Dearman
20a24403bc Do not include '\0' when writing error messages to stderr
Change-Id: I6adc806c3920e5a4ae61ca55c40613fcf338b18c
Signed-off-by: Chris Dearman <chris@mips.com>
2012-11-26 15:43:17 -08:00
Elliott Hughes
429b05a1df Merge "Upgrade to tzdata2012j." 2012-11-26 14:52:07 -08:00
Elliott Hughes
5d2ef8724d Upgrade to tzdata2012j.
This reflects the following changes recently circulated on the tz mailing list:

  Libya moved to CET [2012-11-11], but with DST planned [2013].
  (Thanks to Even Scharning, Steffen Thorsen, and Tim Parenti.)

I also had to change the script to cope with:

  Signatures now have the extension .asc, not .sign, as that's more
  standard.  (Thanks to Phil Pennock.)

Change-Id: Ie9711c5c796b3c122daea9690929edcc3ddd32da
2012-11-26 14:51:39 -08:00
Sergey Melnikov
a437bff914 Bug: __WINT_TYPE__ and wint_t reference to different types
__WINT_TYPE__ type provided by gcc. It references to unsigned int
type for android and linux. Patch corrects wint_t typedef to
__WINT_TYPE__.

Signed-off-by: Sergey Melnikov <sergey.melnikov@intel.com>
Change-Id: Iabeb9fcb0b7bb303a8b220043e339126f125dd68
2012-11-26 12:01:58 +04:00
Nick Kralevich
635df850e5 mmap: Remove madvise() workaround
Remove mmap() calling madvise(MADV_MERGEABLE) added
in b8e1e9685e

Change-Id: I80dbf6afe750348964d83097f993ea6cb8a065d5
2012-11-19 11:46:33 -08:00
Nick Kralevich
8784709a2c Merge "We should use load_bias. This patch fixes MIPS NDK device exception test failures." 2012-11-19 10:45:18 -08:00
Chao-Ying Fu
c5db969aa4 We should use load_bias. This patch fixes MIPS NDK device exception test failures.
Change-Id: I4b718c36666e66062c1f13e4deea1ec7a7951c54
2012-11-19 10:30:15 -08:00
Nick Kralevich
fe07ca04e4 Merge "Support GNU_RELRO for static executables." 2012-11-16 08:45:52 -08:00
Nick Kralevich
170168cdf3 Merge "Temporarily address gcc 4.7 breakage." 2012-11-15 15:57:15 -08:00
Nick Kralevich
83697b8b76 Temporarily address gcc 4.7 breakage.
Change-Id: I8ebb2d5df2f8f8aedf252c94ff69505e61ed0a74
2012-11-15 15:48:19 -08:00
Nick Kralevich
ac3de8d080 Support GNU_RELRO for static executables.
In 9ec0f03a0d, we added dynamic
linker support for GNU_RELRO protections. These protections
make certain regions of memory read-only, helping protect certain
data structures from accidental or deliberate modifications.

This change adds GNU_RELRO support to STATIC executables.  We can
determine if we're compiled with relro protections by examining
our own program headers, which is passed to us by the kernel
in the AT_PHDR and AT_PHNUM auxiliary vectors.

Parts of this code were stolen from the dynamic linker.

Change-Id: Ic17eb5f932218538ec25347ece314d4dc7549de1
2012-11-15 12:52:06 -08:00
Elliott Hughes
c079dfe415 am 6542ac03: Merge "Add a memmove(3) benchmark."
* commit '6542ac0380581e0cd0ad47e2763b732d93e9d6bd':
  Add a memmove(3) benchmark.
2012-11-09 16:21:08 -08:00
Elliott Hughes
6542ac0380 Merge "Add a memmove(3) benchmark." 2012-11-09 16:17:35 -08:00
Elliott Hughes
d86d713b63 am b62e2770: Merge "Add optimized version of memset for Cortex A9"
* commit 'b62e2770e7c41f9cbe41acca4f25966eea2bc533':
  Add optimized version of memset for Cortex A9
2012-11-09 15:15:09 -08:00
Elliott Hughes
b62e2770e7 Merge "Add optimized version of memset for Cortex A9" 2012-11-09 15:06:50 -08:00
Henrik Smiding
884e4f839b Add optimized version of memset for Cortex A9
Adds new code to function memset, optimized for Cortex A9.

Copyright (C) ST-Ericsson SA 2010

Added neon implementation

Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson.

Change-Id: Id3c87767953439269040e15bd30a27aba709aef6
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
2012-11-09 15:05:32 -08:00
Elliott Hughes
fbe44ec043 Add a memmove(3) benchmark.
Change-Id: I9c0ffae0b5aae29521b7e68e5ce2318b5a401cba
2012-11-09 14:59:21 -08:00
Elliott Hughes
0b25791a28 am 49677dec: Merge "Add optimized version of memcpy for Cortex A9"
* commit '49677deca2c2984ae6c0a3df8fbada7132e82940':
  Add optimized version of memcpy for Cortex A9
2012-11-08 18:13:30 -08:00
Elliott Hughes
49677deca2 Merge "Add optimized version of memcpy for Cortex A9" 2012-11-08 18:04:28 -08:00
Henrik Smiding
6d0bcdc832 Add optimized version of memcpy for Cortex A9
Adds new code to memcpy function, optimized for Cortex A9.
Adds new ARM-only loop, for operations where source and
destination are aligned.

Copyright (C) ST-Ericsson SA 2010

Modified neon implementation to fit Cortex A9 cache line size,
for those running 32 bytes L2 cache line size.
Also split the implementation in aligned and unaligned access,
for those that allows unaligned memory access with Neon.
For totally aligned operations, arm-only code is used.

Change-Id: I95ebf6164cd6486b12a7e3e98e369db21e7e18d2
Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson.
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
2012-11-08 18:02:14 -08:00
Elliott Hughes
6181aead7b am c2132915: Merge "Add optimized version of memcmp for Cortex A9"
* commit 'c2132915158014f578c3f003c9399961fe8d6da2':
  Add optimized version of memcmp for Cortex A9
2012-11-08 17:53:41 -08:00
Elliott Hughes
c213291515 Merge "Add optimized version of memcmp for Cortex A9" 2012-11-08 17:48:19 -08:00
Elliott Hughes
66eada9632 am 7aca3103: Merge "Simple google3-compatible benchmarking."
* commit '7aca3103069d7603cff47db7141b64f6a9d94f86':
  Simple google3-compatible benchmarking.
2012-11-08 16:31:13 -08:00
Elliott Hughes
7aca310306 Merge "Simple google3-compatible benchmarking." 2012-11-08 16:26:45 -08:00
Elliott Hughes
7be369d4c6 Simple google3-compatible benchmarking.
Based on our open-source RE2 benchmarking code.

Includes benchmarks for a handful of <string.h> functions.

Change-Id: I30eb70d25dbf4ad5f2ca44976a8ce3b1ff7dad01
2012-11-08 15:37:43 -08:00
Elliott Hughes
70827cc85a am d460f3f1: Merge "Tests for string routines."
* commit 'd460f3f1af80af40d8c3fab12a68459d8d1ec4c5':
  Tests for string routines.
2012-11-08 09:29:33 -08:00
Elliott Hughes
d460f3f1af Merge "Tests for string routines." 2012-11-08 09:15:22 -08:00
Elliott Hughes
e4180f85b7 am 5408ac3c: Merge "Fix dlopen_library_with_only_gnu_hash_Test."
* commit '5408ac3c8dfe4857985b94fb7bd883fd3899c48b':
  Fix dlopen_library_with_only_gnu_hash_Test.
2012-11-07 18:31:37 -08:00
Elliott Hughes
5408ac3c8d Merge "Fix dlopen_library_with_only_gnu_hash_Test." 2012-11-07 18:19:00 -08:00
Elliott Hughes
6e33b0296d Fix dlopen_library_with_only_gnu_hash_Test.
Change-Id: Id3395f155587cfa74061f97a2cb4c6a6e59c13dc
2012-11-07 18:16:02 -08:00
Anna Tikhonova
036154b0c2 Tests for string routines.
Change-Id: I24068a228f59df1c3b758c5b2026a09720490616
Signed-off-by: Anna Tikhonova <anna.tikhonova@intel.com>
2012-11-07 18:14:29 -08:00
The Android Open Source Project
92b7fbf872 am 414aadc7: am 3bf2fcf9: Reconcile with jb-mr1-factory-release jb-mr1-release - do not merge
* commit '414aadc79de68713e0a80a033c03b651615176f8':
2012-11-06 11:16:38 -08:00
The Android Open Source Project
414aadc79d am 3bf2fcf9: Reconcile with jb-mr1-factory-release jb-mr1-release - do not merge
* commit '3bf2fcf9a2bc811bbee194b19f2a00c4cfb24701':
  Revert "Update ion header"
  :Revert "Update ion header"
  Revert "Upgrade to dlmalloc 2.8.5."
  Revert "Restore posix_memalign"
  When compiling with clang, don't "fortify_source" the strlcpy and strlcat.
  When compiling with clang, don't "fortify_source" the strlen.
  Revert "Fix the clang build: this compiler doesn't support the gnu_inline function attribute"
  Update msm_camera.h to version that supports instance handle based lookup
  Replace ALL_PREBUILTS with BUILD_PREBUILT
2012-11-06 11:13:52 -08:00
Elliott Hughes
8baaf6ff96 am 604a163e: Merge "Rewrite <fenv.h> for ARM."
* commit '604a163e4c7724f881605fdbda94db4f7c8f0e7a':
  Rewrite <fenv.h> for ARM.
2012-11-05 16:51:53 -08:00
Elliott Hughes
604a163e4c Merge "Rewrite <fenv.h> for ARM." 2012-11-05 16:43:35 -08:00
Elliott Hughes
062240853d am bb91e9fb: Merge "Upgrade to tzdata2012i."
* commit 'bb91e9fb96ec6ea8a6ebcf17bf70f66f957df30b':
  Upgrade to tzdata2012i.
2012-11-05 10:57:20 -08:00
Elliott Hughes
bb91e9fb96 Merge "Upgrade to tzdata2012i." 2012-11-05 10:42:58 -08:00
Elliott Hughes
ce876bebf2 am a41e6426: Merge "Tone down some of the overly-verbose linker logging."
* commit 'a41e6426073c57881f49bdaec46ca90a5b164401':
  Tone down some of the overly-verbose linker logging.
2012-11-05 09:19:57 -08:00
Elliott Hughes
a41e642607 Merge "Tone down some of the overly-verbose linker logging." 2012-11-05 09:13:31 -08:00
Elliott Hughes
9c94fc9fbe Tone down some of the overly-verbose linker logging.
We don't need to see every dlopen(3)/dlsym(3) failure unless LD_DEBUG is on.

Change-Id: I1edfe8b72f32ff54dd30e1acf32e20d470d5e9f7
2012-11-05 09:11:43 -08:00
Elliott Hughes
e3063f4e55 Upgrade to tzdata2012i.
Also support GPG signature verification of updates, and fix remaining
pylint complaints.

The 2012i release of the tz data reflects the following changes recently
circulated on the tz mailing list:

* Cuba switches from DST [2012-11-04] at 01:00.  (Thanks to Steffen Thorsen.)

Change-Id: Ie81d395afa40aa217a0196aad8ca1f9a870bbc31
2012-11-05 08:53:28 -08:00
Elliott Hughes
90e10d41c4 Rewrite <fenv.h> for ARM.
The old code was one big no-op.

Bug: http://code.google.com/p/android/issues/detail?id=38196
Change-Id: I201a6ffa477385b2629f45e8c948bdfbd47b5bf1
2012-11-05 08:50:19 -08:00
Elliott Hughes
bc35807fc6 am 9df2e000: Merge "Cleaning the linker environment as we initialize it requires less API."
* commit '9df2e000b5d56b2e529656034d684e370aa6a8d1':
  Cleaning the linker environment as we initialize it requires less API.
2012-11-02 13:56:00 -07:00
Elliott Hughes
cfb47daf4e am 01271b18: Merge "Make dynamic linker debugging always available."
* commit '01271b1812f2cec8aaf3c105b9f960f027b33a95':
  Make dynamic linker debugging always available.
2012-11-02 13:55:59 -07:00
Elliott Hughes
9df2e000b5 Merge "Cleaning the linker environment as we initialize it requires less API." 2012-11-02 13:47:50 -07:00
Elliott Hughes
01271b1812 Merge "Make dynamic linker debugging always available." 2012-11-02 13:46:55 -07:00
Elliott Hughes
61a9ccb41e Make dynamic linker debugging always available.
If you need to build your own linker to get debugging, the debugging
is never available when you need it.

Change-Id: I5ff7e55753459d49a2990f25d9aa155e0b8602e0
2012-11-02 13:46:23 -07:00
Elliott Hughes
0894b2c5d3 Cleaning the linker environment as we initialize it requires less API.
Change-Id: I612fd699e46833a411589478564a1f859223c380
2012-11-02 12:40:11 -07:00
Elliott Hughes
cdc5a17cef am ed537239: Merge "Adjust symbol lookup for DT_SYMBOLIC case"
* commit 'ed537239a94ebd11a8c262a319d81fd1f0d3f73f':
  Adjust symbol lookup for DT_SYMBOLIC case
2012-11-02 11:37:40 -07:00
Elliott Hughes
ed537239a9 Merge "Adjust symbol lookup for DT_SYMBOLIC case" 2012-11-02 11:25:49 -07:00
Pavel Chupin
c77c434149 Adjust symbol lookup for DT_SYMBOLIC case
According ELF spec re. DT_SYMBOLIC:
This element's presence in a shared object library alters the dynamic
linker's symbol resolution algorithm for references within the library.
Instead of starting a symbol search with the executable file, the
dynamic linker starts from the shared object itself. If the shared
object fails to supply the referenced symbol, the dynamic linker then
searches the executable file and other shared objects as usual.

This change implements the last part.

Change-Id: Iae95d53d455313a4306f11733941bcd3596ac85f
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2012-11-02 18:34:22 +04:00
Elliott Hughes
e109930e9f am dc77a228: Merge "Allow dlopen("egl/blah.so")."
* commit 'dc77a22850e31eb369ec9776c13c967566bf61d0':
  Allow dlopen("egl/blah.so").
2012-11-01 23:08:27 -07:00
Elliott Hughes
dc77a22850 Merge "Allow dlopen("egl/blah.so")." 2012-11-01 23:01:58 -07:00
Elliott Hughes
6971fe4ca5 Allow dlopen("egl/blah.so").
NVIDIA binary blobs construct strings to pass to dlopen(3) that
contain '/' but require that we fall back to LD_LIBRARY_PATH.

Change-Id: Iad831899986baace6962f4b335eeb288250a1e22
2012-11-01 22:59:19 -07:00
Elliott Hughes
7f7ac8cd19 am e3c7b519: Merge "Don\'t corrupt the thread list if the main thread exits."
* commit 'e3c7b5192e65eeb0bd90bf884d3435ed9adfad0e':
  Don't corrupt the thread list if the main thread exits.
2012-11-01 17:37:04 -07:00
Elliott Hughes
e3c7b5192e Merge "Don't corrupt the thread list if the main thread exits." 2012-11-01 17:28:01 -07:00
Elliott Hughes
4f251bee5d Don't corrupt the thread list if the main thread exits.
...and don't pass a non-heap pointer to free(3), either.

This patch replaces the "node** prev" with the clearer "node* prev"
style and fixes the null pointer dereference in the old code. That's
not sufficient to fix the reporter's bug, though. The pthread_internal_t*
for the main thread isn't heap-allocated --- __libc_init_tls causes a
pointer to a statically-allocated pthread_internal_t to be added to
the thread list.

Bug: http://code.google.com/p/android/issues/detail?id=37410
Change-Id: I112b7f22782fc789d58f9c783f7b323bda8fb8b7
2012-11-01 17:27:07 -07:00
Elliott Hughes
6db8f5bb75 am d30116cf: Merge "Keep the dynamic linker\'s soinfo pools mostly read-only."
* commit 'd30116cf4a590e7bea3b73fa49bb27502a920819':
  Keep the dynamic linker's soinfo pools mostly read-only.
2012-11-01 17:00:13 -07:00
Elliott Hughes
d30116cf4a Merge "Keep the dynamic linker's soinfo pools mostly read-only." 2012-11-01 16:49:37 -07:00
Elliott Hughes
d23736e4f2 Keep the dynamic linker's soinfo pools mostly read-only.
We'll need a lot more refactoring of this code before we can reduce
the granularity, but this is a step forward.

Change-Id: I07061720e734b571a8399c1d5b4f2f35cd681307
2012-11-01 16:48:14 -07:00
Elliott Hughes
65ba5b62c5 am 064f862d: Merge "Stop defining our own PAGE_SIZE and PAGE_MASK, and test dlclose(3) too."
* commit '064f862d557ab741575dfae479499a07ca0ab742':
  Stop defining our own PAGE_SIZE and PAGE_MASK, and test dlclose(3) too.
2012-11-01 14:14:00 -07:00
Elliott Hughes
064f862d55 Merge "Stop defining our own PAGE_SIZE and PAGE_MASK, and test dlclose(3) too." 2012-11-01 13:57:00 -07:00
Elliott Hughes
1a6961650c Stop defining our own PAGE_SIZE and PAGE_MASK, and test dlclose(3) too.
Also remove an unnecessary #include and a now-obsolete TODO.

Change-Id: I36d923721e349a286934b9534090a67ce0786e7b
2012-11-01 13:53:26 -07:00
Elliott Hughes
3bb62578be am 0be1819b: Merge "Dynamically allocate soinfo-structs in linker"
* commit '0be1819b22b33fbedcb150f96a196ed096abe2fc':
  Dynamically allocate soinfo-structs in linker
2012-11-01 11:44:29 -07:00
Elliott Hughes
0be1819b22 Merge "Dynamically allocate soinfo-structs in linker" 2012-11-01 11:36:02 -07:00
Magnus Malmborn
ba98d9237b Dynamically allocate soinfo-structs in linker
Request memory from the system when needed instead of having a fixed
array for soinfo structs. Note that malloc() et al can't be used in
linker, so use mmap() instead.

Change-Id: I4b495995931d7752b0e8c944e64d1fe41b9f7144
2012-11-01 11:31:39 -07:00
Elliott Hughes
1de3af51d4 am c0ac7eba: Merge "Reject .so files with no sysv hash table."
* commit 'c0ac7eba934fb88f321c75a71312ea482e9a85e9':
  Reject .so files with no sysv hash table.
2012-10-31 15:13:30 -07:00
Elliott Hughes
c0ac7eba93 Merge "Reject .so files with no sysv hash table." 2012-10-31 15:09:46 -07:00
Elliott Hughes
124fae9eab Reject .so files with no sysv hash table.
Also ensure that dlopen(3) errors always include the name of the library we
failed to open.

Also fix a bug where we'd fall back to searching LD_LIBRARY_PATH and the
built-in paths for names that include slashes.

Bug: http://code.google.com/p/android/issues/detail?id=38479
Change-Id: Ib2c009ed083344a7a012749d58f8679db2f26c78
2012-10-31 14:30:50 -07:00
Elliott Hughes
f510fc789a am b46530bd: Merge "Start cleaning up libm."
* commit 'b46530bd3e5984047bd780f5d3a6a5ebabd9f02d':
  Start cleaning up libm.
2012-10-31 13:51:50 -07:00
Elliott Hughes
b46530bd3e Merge "Start cleaning up libm." 2012-10-31 13:43:41 -07:00
Elliott Hughes
0f7809d5c3 Start cleaning up libm.
We have two copies of fenv.h for every architecture, one of which
isn't used. We also have unused makefiles and files for architectures
we don't support.

This patch removes all the obviously useless files.

Bug: http://code.google.com/p/android/issues/detail?id=38196
Change-Id: I1919b6621ba513aa24aa947a34815bc51191487c
2012-10-31 13:32:34 -07:00
The Android Open Source Project
089111a80a Reconcile with jb-mr1-release - do not merge
Change-Id: Ice07f7813d823b0419153d5ac321ad784a690af4
2012-10-31 09:15:16 -07:00
Elliott Hughes
3cd7a1653a am 084be591: Merge "linker: handle R_ARM_COPY relocations in a proper way"
* commit '084be591923d3d509cea0a0f4b11b073e362d730':
  linker: handle R_ARM_COPY relocations in a proper way
2012-10-30 17:18:04 -07:00
Elliott Hughes
084be59192 Merge "linker: handle R_ARM_COPY relocations in a proper way" 2012-10-30 17:10:30 -07:00
Ard Biesheuvel
5ae44f302b linker: handle R_ARM_COPY relocations in a proper way
If an executable contain copy relocations, other references
to the symbol it points to should be preempted and made to
point to the copy instead.

Also, the linker should make sure the target area has
sufficient space to contain the copy. It also checks
whether the library that supplies the symbol is built
with -Bsymbolic, and errors out if this is the case.

Change-Id: If135c83590092741cfd8f82f54816f363a4a4a3b
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
2012-10-30 17:09:21 -07:00
Elliott Hughes
914112ea21 am 155e8d1d: Merge "More dynamic linker cleanup."
* commit '155e8d1df5b8fdfeabda3e7b61d95beb5b8d1467':
  More dynamic linker cleanup.
2012-10-30 16:56:29 -07:00
Elliott Hughes
155e8d1df5 Merge "More dynamic linker cleanup." 2012-10-30 16:41:01 -07:00
Elliott Hughes
18a206c81d More dynamic linker cleanup.
I still want to break linker_format out into its own library so we can reuse
it for malloc debugging and so forth. (There are many similar pieces of code
in bionic, but the linker's one seems to be the most complete/functional.)

Change-Id: If3721853d28937c8e821ca1d23cf200e228a409a
2012-10-30 16:35:38 -07:00
Elliott Hughes
b0ac82e9ba Merge commit 'bd8ee3d3' into mm 2012-10-30 15:20:13 -07:00
Elliott Hughes
bd8ee3d35e am a811d7a8: Upgrade to tzdata2012h.
* commit 'a811d7a8e638ca49aee704c613cb9f1e03c3698d':
  Upgrade to tzdata2012h.
2012-10-30 14:30:12 -07:00
Elliott Hughes
4569ab9773 am 06b59610: Merge "Fix bug in pthread_join, pthread_exit, pthread_detach"
* commit '06b596104a9ed3ac089abd00186a5698d7e8544f':
  Fix bug in pthread_join, pthread_exit, pthread_detach
2012-10-30 13:04:23 -07:00
Elliott Hughes
06b596104a Merge "Fix bug in pthread_join, pthread_exit, pthread_detach" 2012-10-30 12:57:58 -07:00
Elliott Hughes
743a273e40 am 1f21ece4: Merge "Clean up the <libgen.h> implementation a little, bring in tests."
* commit '1f21ece48a87abbbdd9fb939b79a1dd81fb867eb':
  Clean up the <libgen.h> implementation a little, bring in tests.
2012-10-29 17:15:12 -07:00
Elliott Hughes
5f787190a9 am 4d36b0bd: Merge "Fix the pthread_join on self error case."
* commit '4d36b0bd38559ae0376b61a0ac2f5fa8329ec56d':
  Fix the pthread_join on self error case.
2012-10-29 17:15:09 -07:00
Elliott Hughes
0b8fa1d456 am 9297af94: Merge "Fix a potential NULL pointer dereference in _init_thread()."
* commit '9297af943887d9d6974aaec8c45a4e7d93422965':
  Fix a potential NULL pointer dereference in _init_thread().
2012-10-29 17:15:03 -07:00
Elliott Hughes
40e467ec66 am 33c4a3ad: Merge "libc: Fix alphasort() signature (and implementation)."
* commit '33c4a3adde3cf1753af0661f48ce86358e105277':
  libc: Fix alphasort() signature (and implementation).
2012-10-29 17:15:02 -07:00
Elliott Hughes
8576560979 am 8f9a1eb1: Merge "Upgrade to tzdata2012h."
* commit '8f9a1eb108f22fc2ce7283ef184d909ec0ca1152':
  Upgrade to tzdata2012h.
2012-10-29 17:15:01 -07:00
Elliott Hughes
a67cedb52c am 9e783963: Merge "Clean up the implementation of the <dirent.h> functions."
* commit '9e783963d58acf48e06902236ea64c7f5b337a0f':
  Clean up the implementation of the <dirent.h> functions.
2012-10-29 17:14:59 -07:00
Elliott Hughes
1f21ece48a Merge "Clean up the <libgen.h> implementation a little, bring in tests." 2012-10-29 15:03:36 -07:00
Elliott Hughes
58b575485c Clean up the <libgen.h> implementation a little, bring in tests.
Most of these tests were in system/extras, but I've added more to cover other
cases explicitly mentioned by POSIX.

Change-Id: I5e8d77e4179028d77306935cceadbb505515dcde
2012-10-29 14:27:10 -07:00
Sergey Melnikov
10ce96944e Fix bug in pthread_join, pthread_exit, pthread_detach
pthread_no_op_detach_after_join test from bionic-unit-tests hangs
on x86 emulator. There is a race in the pthread_join, pthread_exit,
pthread_detach functions:
- pthread_join waits for the non-detached thread
- pthread_detach sets the detached flag on that thread
- the thread executes pthread_exit which just kills the now-detached
thread, without sending the join notification.

This patch improves the test so it fails on ARM too, and modifies
pthread_detach to behave more like glibc, not setting the detach state if
called on a thread that's already being joined (but not returning an error).

Change-Id: I87dc688221ce979ef5178753dd63d01ac0b108e6
Signed-off-by: Sergey Melnikov <sergey.melnikov@intel.com>
2012-10-29 11:31:26 -07:00
Elliott Hughes
4d36b0bd38 Merge "Fix the pthread_join on self error case." 2012-10-29 10:30:16 -07:00
Elliott Hughes
14f19592ae Fix the pthread_join on self error case.
We should return EDEADLK, not deadlock the calling thread.

Change-Id: I1243483f709c11b2a60e41142725c54c7dbfcbc9
2012-10-29 10:19:44 -07:00
Elliott Hughes
9297af9438 Merge "Fix a potential NULL pointer dereference in _init_thread()." 2012-10-29 08:26:01 -07:00
Xi Wang
ae8eb74675 Fix a potential NULL pointer dereference in _init_thread().
The first NULL pointer check against `attr' suggests that `attr' can
be NULL.  Then later `attr' is directly dereferenced, suggesting the
opposite.

    if (attr == NULL) {
        ...
    } else {
        ...
    }
    ...
    if (attr->stack_base == ...) { ... }

The public API pthread_create(3) allows NULL, and interprets it as "default".
Our implementation actually swaps in a pointer to the global default
pthread_attr_t, so we don't need any NULL checks in _init_thread. (The other
internal caller passes its own pthread_attr_t.)

Change-Id: I0a4e79b83f5989249556a07eed1f2887e96c915e
Signed-off-by: Xi Wang <xi.wang@gmail.com>
2012-10-29 08:22:13 -07:00
Elliott Hughes
33c4a3adde Merge "libc: Fix alphasort() signature (and implementation)." 2012-10-29 07:45:13 -07:00
David 'Digit' Turner
c30396f5f2 libc: Fix alphasort() signature (and implementation).
The declaration for alphasort() in <dirent.h> used the deprecated:

  int alphasort(const void*, const void*);

while both Posix and GLibc use instead:

  int alphasort(const struct dirent** a, const struct dirent** b);

See: http://pubs.opengroup.org/onlinepubs/9699919799/functions/alphasort.html

This patch does the following:

- Update the declaration to match Posix/GLibc
- Get rid of the upstream BSD code which isn't compatible with the new
  signature.
- Implement a new trivial alphasort() with the right signature, and
  ensure that it uses strcoll() instead of strcmp().
- Remove Bionic-specific #ifdef .. #else .. #endif block in
  dirent_test.cpp which uses alphasort().

Even through strcoll() currently uses strcmp(), this does the right
thing in the case where we decide to update strcoll() to properly
implement locale-specific ordered comparison.

Change-Id: I4fd45604d8a940aaf2eb0ecd7d73e2f11c9bca96
2012-10-29 07:44:27 -07:00
Elliott Hughes
8f9a1eb108 Merge "Upgrade to tzdata2012h." 2012-10-29 07:29:13 -07:00
Elliott Hughes
f93fc10fc4 Upgrade to tzdata2012h.
The 2012h release reflects the following changes recently circulated
on the tz mailing list:

[Brazil]  Bahia no longer has DST.  (Thanks to Kelley Cook.)

[Brazil]  Tocantins has DST.  (Thanks to Rodrigo Severo.)

[Israel]  Israel has new DST rules next year.  (Thanks to Ephraim Silverberg.)

[Jordan]  Jordan stays on DST this winter.  (Thanks to Steffen Thorsen.)

Bug: 7429010
Change-Id: I0ec5fb72343e42f3f79490dfdea5f7f1946ae76f
2012-10-28 11:34:35 -07:00
Elliott Hughes
9e783963d5 Merge "Clean up the implementation of the <dirent.h> functions." 2012-10-26 16:42:48 -07:00
Elliott Hughes
063cfb2084 Clean up the implementation of the <dirent.h> functions.
Change-Id: I3c647cc9588525afc41fee90ee468d58cd13503a
2012-10-26 16:42:06 -07:00
Elliott Hughes
8cacc639b6 am 7193731a: Merge "Workaround g++ 4.7 compfail"
* commit '7193731ae6b8083bc7a5e5e468fb98b1dbcf3f3d':
  Workaround g++ 4.7 compfail
2012-10-25 15:20:29 -07:00
Elliott Hughes
85819efe8f am f2b3ac95: Merge "Fix recovery: don\'t assert if there\'s no tzdata."
* commit 'f2b3ac9502e08ef53d4eedd7e93ea9a00d185055':
  Fix recovery: don't assert if there's no tzdata.
2012-10-25 15:09:29 -07:00
Elliott Hughes
7193731ae6 Merge "Workaround g++ 4.7 compfail" 2012-10-25 15:00:45 -07:00
Elliott Hughes
f2b3ac9502 Merge "Fix recovery: don't assert if there's no tzdata." 2012-10-25 14:56:53 -07:00
Elliott Hughes
49271d89da Fix recovery: don't assert if there's no tzdata.
Change-Id: I4d808b57c63ec1ccc024da7fd6a65691e0d455c5
2012-10-25 14:56:08 -07:00
Elliott Hughes
df7f24f310 am 7b68e3f7: Merge "Per-thread -fstack-protector guards for x86."
* commit '7b68e3f799d87e84c56687033326924fd8fec84c':
  Per-thread -fstack-protector guards for x86.
2012-10-25 12:22:34 -07:00
Elliott Hughes
7b68e3f799 Merge "Per-thread -fstack-protector guards for x86." 2012-10-25 12:08:50 -07:00
Elliott Hughes
ad88a08631 Per-thread -fstack-protector guards for x86.
Based on a pair of patches from Intel:

  https://android-review.googlesource.com/#/c/43909/
  https://android-review.googlesource.com/#/c/44903/

For x86, this patch supports _both_ the global that ARM/MIPS use
and the per-thread TLS entry (%gs:20) that GCC uses by default. This
lets us support binaries built with any x86 toolchain (right now,
the NDK is emitting x86 code that uses the global).

I've also extended the original tests to cover ARM/MIPS too, and
be a little more thorough for x86.

Change-Id: I02f279a80c6b626aecad449771dec91df235ad01
2012-10-25 12:04:03 -07:00
Pavel Chupin
20aa6c0f4c Workaround g++ 4.7 compfail
error: C99 designator 'name' outside aggregate initializer

G++ 4.7+ can't handle some of C99 designated initializers.
Most likely it's just not implemented yet. Other possible workarounds is
to compile this as C not C++ or define name as char* instead of char[SIZE].

Appeared after this change https://android-review.googlesource.com/#/c/44470

Change-Id: Ib28157848ce759b8bb5dbb2ac0d9a768fa4e5107
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2012-10-25 17:58:45 +04:00
Elliott Hughes
60c7ac2622 am d0f2b7e7: Merge "More upstream NetBSD upgrades."
* commit 'd0f2b7e7e65f19f978c59abcbb522c08e76b1508':
  More upstream NetBSD upgrades.
2012-10-23 17:15:07 -07:00
Elliott Hughes
d0f2b7e7e6 Merge "More upstream NetBSD upgrades." 2012-10-23 16:55:19 -07:00
Elliott Hughes
ab44f52202 More upstream NetBSD upgrades.
Change-Id: Idb781d37de3b05585271d7d258ecffd5ba87d0b8
2012-10-23 16:05:09 -07:00
Elliott Hughes
45f075556b am e3dbe1e3: Merge "Upgrade more functions to the current upstream NetBSD copy."
* commit 'e3dbe1e3820d6ab0370566055e9cdc593c5cce48':
  Upgrade more functions to the current upstream NetBSD copy.
2012-10-23 13:55:59 -07:00
Elliott Hughes
e3dbe1e382 Merge "Upgrade more functions to the current upstream NetBSD copy." 2012-10-23 13:45:37 -07:00
Elliott Hughes
e8bcca3a2c Upgrade more functions to the current upstream NetBSD copy.
Change-Id: Ie0b3f8b3fccef28609eb210434413ebd51d6ef45
2012-10-23 12:29:53 -07:00
Elliott Hughes
4280143d37 am fb93e6a5: Merge "Move setlocale(3) and the wchar stubs over to .cpp."
* commit 'fb93e6a5b322a87e61de19421a72d6dfcc82b614':
  Move setlocale(3) and the wchar stubs over to .cpp.
2012-10-22 18:06:55 -07:00
Elliott Hughes
fb93e6a5b3 Merge "Move setlocale(3) and the wchar stubs over to .cpp." 2012-10-22 17:50:27 -07:00
Elliott Hughes
29c7f0b4d1 Move setlocale(3) and the wchar stubs over to .cpp.
Also separate out the C++ files so we can use -Werror on them. I'd
rather wait for LOCAL_CPPFLAGS to be in AOSP, but this also lets us
see which files still need to be sorted into one bucket or the other.

Change-Id: I6acc1f7c043935c70a3b089f705d218b9aaaba0a
2012-10-22 17:05:27 -07:00
Elliott Hughes
69ec117b22 am 5a9911e9: Merge "Add missing BEGIN_DECLS/END_DECLS for FORTIFY_SOURCE stdio prototypes."
* commit '5a9911e94086a15a7f2d5a7c9173847f123a46ea':
  Add missing BEGIN_DECLS/END_DECLS for FORTIFY_SOURCE stdio prototypes.
2012-10-22 16:29:13 -07:00
Elliott Hughes
9d5a96c0d9 am 574773b1: Merge "Clean up warnings in stubs.cpp."
* commit '574773b1eae797e2f7a1d11d0176755d2e74eb41':
  Clean up warnings in stubs.cpp.
2012-10-22 16:29:12 -07:00
Elliott Hughes
5a9911e940 Merge "Add missing BEGIN_DECLS/END_DECLS for FORTIFY_SOURCE stdio prototypes." 2012-10-22 16:13:04 -07:00
Elliott Hughes
574773b1ea Merge "Clean up warnings in stubs.cpp." 2012-10-22 16:12:47 -07:00
Elliott Hughes
ce45fea03d Add missing BEGIN_DECLS/END_DECLS for FORTIFY_SOURCE stdio prototypes.
Change-Id: I35ceb09fedf873c5e98e1e26efce5e4f00a17e74
2012-10-22 16:10:27 -07:00
Elliott Hughes
6fa26e21bc Clean up warnings in stubs.cpp.
Change-Id: Ie0792846de7cf5f5c72737494bf78ab8dcb8cc3e
2012-10-22 16:04:56 -07:00
Elliott Hughes
75f33adcb1 am 4e457759: Merge "Move the FORTIFY_SOURCE helpers over to .cpp."
* commit '4e457759893a6a6ab4f84a5aea231d0a11c7bb13':
  Move the FORTIFY_SOURCE helpers over to .cpp.
2012-10-22 15:57:42 -07:00
Elliott Hughes
4e45775989 Merge "Move the FORTIFY_SOURCE helpers over to .cpp." 2012-10-22 15:51:12 -07:00
Elliott Hughes
4035b7a321 Move the FORTIFY_SOURCE helpers over to .cpp.
Change-Id: Ib5067d51b983cac7760c975becce7fe2408ead04
2012-10-22 15:32:01 -07:00
Elliott Hughes
008744ceda am df92635a: Merge "Support zone.tab in bionic, and remove the file format version."
* commit 'df92635a57e8093d9cbffc38bbf513f3361ee91e':
  Support zone.tab in bionic, and remove the file format version.
2012-10-22 15:08:38 -07:00
Elliott Hughes
df92635a57 Merge "Support zone.tab in bionic, and remove the file format version." 2012-10-22 14:56:32 -07:00
Elliott Hughes
2393535f0d Support zone.tab in bionic, and remove the file format version.
Bug: 7012465
Change-Id: I6335c91ebadc609fae85bad94db972be7574b6e4
2012-10-22 14:47:58 -07:00
Elliott Hughes
417834b17e am eb370aa3: Merge "Make bionic look in /data/misc for tzdata updates."
* commit 'eb370aa31dd549ad7a7a2044dedab1140a7aeda9':
  Make bionic look in /data/misc for tzdata updates.
2012-10-22 11:53:22 -07:00
Elliott Hughes
eb370aa31d Merge "Make bionic look in /data/misc for tzdata updates." 2012-10-22 11:37:26 -07:00
Elliott Hughes
1c29572034 Make bionic look in /data/misc for tzdata updates.
Bug: 7012465
Change-Id: I4d1018f686f2409600fdb6630732cae33efe8f02
2012-10-22 11:34:05 -07:00
Elliott Hughes
629a28cdf3 am dc595d83: Merge "Change ZoneCompator to generate the single "tzdata" file."
* commit 'dc595d830898e5859bf98d7436af2a777a11f810':
  Change ZoneCompator to generate the single "tzdata" file.
2012-10-19 17:21:41 -07:00
Elliott Hughes
58d08711af am 7a85c42b: Merge "Update generate-NOTICE.py to know about tzdata."
* commit '7a85c42b8f7af801a31208ed83589b5397baee73':
  Update generate-NOTICE.py to know about tzdata.
2012-10-19 17:21:40 -07:00
Elliott Hughes
dc595d8308 Merge "Change ZoneCompator to generate the single "tzdata" file." 2012-10-19 17:12:37 -07:00
Elliott Hughes
7a85c42b8f Merge "Update generate-NOTICE.py to know about tzdata." 2012-10-19 17:07:46 -07:00
Elliott Hughes
5b1497acdb Change ZoneCompator to generate the single "tzdata" file.
Also remove the obsolete individual files, and the temporary script
that converted between the formats.

Bug: 7012465
Change-Id: I5a4030098e4d53e747fd6d395df2679d1567ee1f
2012-10-19 15:45:46 -07:00
Elliott Hughes
4612763b44 Update generate-NOTICE.py to know about tzdata.
Also regenerate the NOTICE files. One had slipped behind.

Bug: 7012465
Change-Id: Ice2e909b521472eb1acd53d8151038bebe19984a
2012-10-19 14:55:19 -07:00
Elliott Hughes
af72df5b98 am e75c273a: Merge "Track the tzdata2012g update in the new file format."
* commit 'e75c273ac434043153f22b1c2f89c042928407bc':
  Track the tzdata2012g update in the new file format.
2012-10-19 14:40:25 -07:00
Elliott Hughes
e75c273ac4 Merge "Track the tzdata2012g update in the new file format." 2012-10-19 14:30:05 -07:00
Elliott Hughes
8af5412efc Track the tzdata2012g update in the new file format.
Change-Id: Id18aeb1122df769d83c4be06fbf37681231e79f0
2012-10-19 14:28:56 -07:00
Elliott Hughes
98533cfa4b am 88cd1a21: Merge "Upgrade to tzdata2012g."
* commit '88cd1a2188cde62d9f94881549791b7c197b2116':
  Upgrade to tzdata2012g.
2012-10-19 13:51:19 -07:00
Elliott Hughes
f0af78c27b am 551ca77e: Merge "Do all the zoneinfo.* file generation in Java."
* commit '551ca77e35098272abfe9484457827c661d23ef0':
  Do all the zoneinfo.* file generation in Java.
2012-10-19 13:51:18 -07:00
Elliott Hughes
88cd1a2188 Merge "Upgrade to tzdata2012g." 2012-10-19 13:45:55 -07:00
Elliott Hughes
c2c2a48845 Upgrade to tzdata2012g.
This release reflects the following changes recently circulated on the tz
mailing list:

        Samoa fall 2012 and later.  (Thanks to Nicholas Pereira
        and Robert Elz.)

        Palestine fall 2012.  (Thanks to Steffen Thorsen.)

This release does not reflect the possible changes discussed yesterday
for Tocantins and Bahia.

(cherry-pick of f0e402dbd257ab495eab514b347db4b3d6844826.)

Change-Id: I8202292b11accedb811194a821dacf837a1bbd6e
2012-10-19 13:43:10 -07:00
Elliott Hughes
551ca77e35 Merge "Do all the zoneinfo.* file generation in Java." 2012-10-19 13:37:25 -07:00
Elliott Hughes
356c0af60b am 2266e495: Merge "Switch bionic over to using libcore\'s copy of libcore.util.ZoneInfo."
* commit '2266e4956f4b245903acd66f0cc32ec5caf5abae':
  Switch bionic over to using libcore's copy of libcore.util.ZoneInfo.
2012-10-19 13:18:07 -07:00
Elliott Hughes
328a484588 Do all the zoneinfo.* file generation in Java.
Bug: 7012465
Change-Id: Ia5d5ad75db94d680a6b34ccc26eb68d5bd2bfc29
2012-10-19 13:03:52 -07:00
Elliott Hughes
2266e4956f Merge "Switch bionic over to using libcore's copy of libcore.util.ZoneInfo." 2012-10-19 13:01:04 -07:00
Elliott Hughes
eb06129c5c Switch bionic over to using libcore's copy of libcore.util.ZoneInfo.
Bug: 7012465
Change-Id: I1225494c5d77a20fd48be1e904d8695ef95860e3
2012-10-19 12:05:24 -07:00
Elliott Hughes
fb8ecd6e2f am bc77942a: am f0e402db: Upgrade to tzdata2012g.
* commit 'bc77942a9a5b2a30eb04fab495cb30ac21bb150d':
  Upgrade to tzdata2012g.
2012-10-19 09:59:52 -07:00
Elliott Hughes
bc77942a9a am f0e402db: Upgrade to tzdata2012g.
* commit 'f0e402dbd257ab495eab514b347db4b3d6844826':
  Upgrade to tzdata2012g.
2012-10-19 09:57:49 -07:00
Elliott Hughes
4d71adbc0d am 10225071: Merge "Fixes x86 build."
* commit '102250719f8aff443741e54ba5633c7722544620':
  Fixes x86 build.
2012-10-18 13:56:02 -07:00
Elliott Hughes
102250719f Merge "Fixes x86 build." 2012-10-18 13:43:41 -07:00
Elliott Hughes
8b95404d00 Fixes x86 build.
Change-Id: I0e576784b2224668d58ebea03986d534ee0e43b4
2012-10-18 13:42:59 -07:00
Elliott Hughes
79c6a8d2b1 am ca7466d2: Merge "Make bionic\'s dependency on the tzdata explicit."
* commit 'ca7466d2b8ee6baad86afc82fa18cda4d931b6d3':
  Make bionic's dependency on the tzdata explicit.
2012-10-18 13:37:54 -07:00
Elliott Hughes
ca7466d2b8 Merge "Make bionic's dependency on the tzdata explicit." 2012-10-18 13:19:14 -07:00
Elliott Hughes
914d8d4cff Make bionic's dependency on the tzdata explicit.
Also stop building the obsolete three files, now bionic and libcore
both use the new single file.

Bug: 7012465
Change-Id: I1b9b49af7382c57b6cb8820c2275e6d4044b2bb6
2012-10-18 12:23:34 -07:00
Elliott Hughes
1b315363c2 am 5ae762a3: Merge "Pull bionic\'s time zone data from the new single \'tzdata\' file."
* commit '5ae762a393168932602eb7269a7d30a53de1c83c':
  Pull bionic's time zone data from the new single 'tzdata' file.
2012-10-18 10:59:27 -07:00
Elliott Hughes
5ae762a393 Merge "Pull bionic's time zone data from the new single 'tzdata' file." 2012-10-18 10:48:11 -07:00
Elliott Hughes
e5c8ced4f9 am 9ffaabcc: Merge "Remove obsolete CHANGES.TXT and ISSUES.TXT."
* commit '9ffaabcc49776676cb2ea60f0846f2c208f6d715':
  Remove obsolete CHANGES.TXT and ISSUES.TXT.
2012-10-18 10:26:36 -07:00
Elliott Hughes
9ffaabcc49 Merge "Remove obsolete CHANGES.TXT and ISSUES.TXT." 2012-10-18 10:09:47 -07:00
Elliott Hughes
d23af23268 Pull bionic's time zone data from the new single 'tzdata' file.
Bug: 7012465
Change-Id: Iec71e448bf7a40af30ca89150b3c336e67a44a43
2012-10-17 16:30:47 -07:00
Elliott Hughes
c2e4c310ff am 32ea9fe5: Merge "Put all the tzdata in one file."
* commit '32ea9fe5783e3cc9756205c0ac46482afc700a3d':
  Put all the tzdata in one file.
2012-10-17 16:09:31 -07:00
Elliott Hughes
32ea9fe578 Merge "Put all the tzdata in one file." 2012-10-17 15:52:09 -07:00
Elliott Hughes
fb018a2dde Put all the tzdata in one file.
I'll come back and remove the separate files (and change the regular 'generate'
script) when the separate files are obsolete, but in the interim period, it's
easier to have both old and new files available.

Bug: 7012465
Change-Id: I36e2fd49c08ff79ded6eca1c5bc4c08837cc490a
2012-10-17 14:24:50 -07:00
Elliott Hughes
ead7819f51 Remove obsolete CHANGES.TXT and ISSUES.TXT.
These haven't been updated in a long time, and "git log" is the source of truth.

Change-Id: I99036f6111e53425f32df510b7b717deb77513a5
2012-10-17 11:33:59 -07:00
Elliott Hughes
06abe13c5f am a2f596b6: Merge "Make dlerror(3) thread-safe."
* commit 'a2f596b65075db7916ffffa2f5059e7953719578':
  Make dlerror(3) thread-safe.
2012-10-17 11:03:12 -07:00
Elliott Hughes
a2f596b650 Merge "Make dlerror(3) thread-safe." 2012-10-17 10:50:48 -07:00
David 'Digit' Turner
c7dc842529 am 42ac0e50: Merge "Revert "libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>""
* commit '42ac0e50302c4d5ce855444e44615489ab662452':
  Revert "libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>"
2012-10-17 10:30:01 -07:00
David 'Digit' Turner
42ac0e5030 Merge "Revert "libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>"" 2012-10-17 10:11:23 -07:00
David 'Digit' Turner
c1b44ecc53 Revert "libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>"
This creates build issues in the internal Android tree.
Will investigate later.

Original patch: https://android-review.googlesource.com/#/c/38875/

Change-Id: I12c5995ebf172890051af42a5d3b31014c9c5117
2012-10-17 19:10:11 +02:00
David 'Digit' Turner
423a0740b5 am 4136c3a2: Merge "libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>"
* commit '4136c3a2b7f7546968c5a305aa2ef0663fcb6c6d':
  libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>
2012-10-17 07:32:56 -07:00
David 'Digit' Turner
4136c3a2b7 Merge "libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>" 2012-10-17 07:20:54 -07:00
David 'Digit' Turner
c124baaf29 libc: Provide ucontext_t/mcontext_t/<sys/ucontext.h>
This patch updates the C library headers to provide ucontext_t
definitions for three architectures.

+ Fix <signal.h> to always define 'struct sigcontext'.

The new declarations are announced with new macros defined in
<sys/cdefs.h> in order to make it easier to adapt client code
that already defines its own, incompatible, versions of the
structures seen here.

http://code.google.com/p/android/issues/detail?id=34784

Change-Id: Ie78c48690a4ce61c50593f6c39639be7fead3596
2012-10-17 15:59:23 +02:00
Elliott Hughes
5419b94747 Make dlerror(3) thread-safe.
I gave up trying to use the usual thread-local buffer idiom; calls to
calloc(3) and free(3) from any of the "dl" functions -- which live in
the dynamic linker -- end up resolving to the dynamic linker's stubs.
I tried to work around that, but was just making things more complicated.
This alternative costs us a well-known TLS slot (instead of the
dynamically-allocated TLS slot we'd have used otherwise, so no difference
there), plus an extra buffer inside every pthread_internal_t.

Bug: 5404023
Change-Id: Ie9614edd05b6d1eeaf7bf9172792d616c6361767
2012-10-16 17:58:17 -07:00
Elliott Hughes
ee7a28c529 am a9944cfe: Merge "LONG_LONG_MIN/MAX: Move declarations to <limits.h>"
* commit 'a9944cfe9e152ca46afb0a77300ec5a2a1a24e64':
  LONG_LONG_MIN/MAX: Move declarations to <limits.h>
2012-10-15 20:20:50 -07:00
Elliott Hughes
a9944cfe9e Merge "LONG_LONG_MIN/MAX: Move declarations to <limits.h>" 2012-10-15 17:34:13 -07:00
David 'Digit' Turner
f8a2c51bf3 LONG_LONG_MIN/MAX: Move declarations to <limits.h>
LONG_LONG_MIN, LONG_LONG_MAX and ULONG_LONG_MAX are
GLibc-specific macros that are better defined in <limits.h>
instead of the current exotic location (<pthread.h>).

Note that GCC's <limits.h> only defines these macros
when __GNU_LIBRARY__ is also defined. This is only the
case when building against GLibc, so manually redefine
the macros here.

Note that using LLONG_MIN/LLONG_MAX/ULLONG_MAX is the
C99-compliant way to get these values, but it's easier
to define these compatibility macros for the sake of
porting existing code.

Change-Id: I8023918d73b4685238054932f94a4006c1ca7d03
2012-10-15 18:52:55 +02:00
Elliott Hughes
1452324ff5 am fcf901d5: Merge "Fix realloc(3) when chk_malloc debugging is on."
* commit 'fcf901d5c0924a71a1405a2535051663281da048':
  Fix realloc(3) when chk_malloc debugging is on.
2012-10-12 17:14:29 -07:00
Elliott Hughes
fcf901d5c0 Merge "Fix realloc(3) when chk_malloc debugging is on." 2012-10-12 17:09:03 -07:00
Elliott Hughes
e7e274b13a Fix realloc(3) when chk_malloc debugging is on.
The tests for a NULL pointer and size 0 were the wrong way round.

From Intel's patch 9cae4f2ffc4778ed82be04711d8775a84092d4e2.

Change-Id: I118aff3358aa5f34126d74bfaa43f6e2f1a89055
2012-10-12 17:05:05 -07:00
Elliott Hughes
c2483ea9b6 am 9434e8fe: Merge "Make the dlfcn mutex static."
* commit '9434e8febc8b223db2d49e7f97140771700113b9':
  Make the dlfcn mutex static.
2012-10-12 11:21:59 -07:00
Elliott Hughes
9434e8febc Merge "Make the dlfcn mutex static." 2012-10-12 10:59:59 -07:00
Elliott Hughes
22d629211d Make the dlfcn mutex static.
More style fixes too, and removal of yet another lingering SH reference!

Change-Id: Iebc34a46475dd11845ad172b9108bb6ddd7585bb
2012-10-12 10:50:21 -07:00
Elliott Hughes
ab4e2ed182 am db4fdf1a: Merge "Fix dlerror(3)."
* commit 'db4fdf1aafb63b09ee967066d9b8107a9812db2d':
  Fix dlerror(3).
2012-10-12 10:47:59 -07:00
Elliott Hughes
db4fdf1aaf Merge "Fix dlerror(3)." 2012-10-12 10:27:44 -07:00
The Android Open Source Project
cf3fa7f457 Reconcile with jb-mr1-factory-release - do not merge
Change-Id: I833db3c1458b360d17442413b86b546dc650bc0c
2012-10-12 07:30:26 -07:00
Elliott Hughes
3b297c4079 Fix dlerror(3).
Add unit tests for dlerror(3) in various situations. I think We're at least
as good as glibc now.

Also factor out the ScopedPthreadMutexLock and use it here too.

Bug: http://code.google.com/p/android/issues/detail?id=38398
Change-Id: I040938b4366ab836e3df46d1d8055b92f4ea6ed8
2012-10-11 16:08:51 -07:00
Elliott Hughes
2facd5b5ef am 417fd233: Merge "Fix perf_event_open syscall for x86 and mips"
* commit '417fd2334a694cf6a831b81cd672b4ca31ff2f54':
  Fix perf_event_open syscall for x86 and mips
2012-10-11 10:42:00 -07:00
Elliott Hughes
417fd2334a Merge "Fix perf_event_open syscall for x86 and mips" 2012-10-11 10:26:00 -07:00
Shuo Gao
4e75c4b2d7 Fix perf_event_open syscall for x86 and mips
perf_event_open syscall has a different syscall number for
the 3 supported architectures: arm, x86 and mips. Currenlty
only the arm syscall number is defined for all architectures.
Tracing tools like perf will not work on other architectures
than arm.

Add the different values for perf_event_open on x86 and mips
and run gensyscalls.py to update generated headers.

Change-Id: I2ed78bd42c0e5df8dbc51d784be49cccda5fab30
Author: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
2012-10-11 10:24:51 -07:00
The Android Open Source Project
d1844d4b30 Reconcile with jb-mr1-release - do not merge
Change-Id: I8ceb7a33ab427c2d3e884e8b71064ecbc531fd1e
2012-10-11 05:56:36 -07:00
Ying Wang
0620122763 am ecbded40: am 2c287e95: Set up the private variables.
* commit 'ecbded40ff1278ddb155d3e1a5d137285f18629f':
  Set up the private variables.
2012-10-10 13:52:59 -07:00
Ying Wang
ecbded40ff am 2c287e95: Set up the private variables.
* commit '2c287e9510ec1d379b3cd779651b595dafb6a2ff':
  Set up the private variables.
2012-10-10 13:51:30 -07:00
Elliott Hughes
4c3d7a86bb am 1ceb9824: Merge "Fix a getcwd(3) bug and make our tests run correctly under valgrind."
* commit '1ceb9824ab39501e98300bc87f7984ee6b455ce8':
  Fix a getcwd(3) bug and make our tests run correctly under valgrind.
2012-10-09 18:27:11 -07:00
Elliott Hughes
1ceb9824ab Merge "Fix a getcwd(3) bug and make our tests run correctly under valgrind." 2012-10-09 18:14:37 -07:00
Elliott Hughes
c7f654dffe am b83cad79: Merge "Fix two comment typos."
* commit 'b83cad79838f780779bd129da9ed4662b741bd31':
  Fix two comment typos.
2012-10-09 17:38:01 -07:00
Elliott Hughes
b83cad7983 Merge "Fix two comment typos." 2012-10-09 17:23:38 -07:00
Elliott Hughes
e5d5f7f0d8 Fix two comment typos.
Change-Id: Icb2d6f7fa97ef5a4409a7606875e416cfab0a4b3
2012-10-09 17:23:09 -07:00
Elliott Hughes
156da96621 Fix a getcwd(3) bug and make our tests run correctly under valgrind.
The getcwd(3) bug was found by valgrind.

Bug: 7291287
Change-Id: I59f3bff1c1392a408b905934eebcd5d894d37492
2012-10-09 17:17:24 -07:00
Ying Wang
a55f0a1007 am b04598a6: Set up the private variables.
* commit 'b04598a63c3f0df597f6186beea3adafc665ef56':
  Set up the private variables.
2012-10-08 14:21:38 -07:00
Ying Wang
b04598a63c Set up the private variables.
Now we use private variables in transform-o-to-executable to support
build executables against the NDK.

Bug: 7170098
Change-Id: I6e505b33001b76f4b11fcbbb1d35392c4ddf4c70
2012-10-08 14:12:56 -07:00
Elliott Hughes
7e7853230f am 9a7366e8: am fa7e2586: Merge "Test flags before using "info""
* commit '9a7366e8943990619c494548050aa906f1971332':
  Test flags before using "info"
2012-10-03 17:42:35 -07:00
Elliott Hughes
9a7366e894 am fa7e2586: Merge "Test flags before using "info""
* commit 'fa7e2586176711896e6c0b94c7b811f7cbe29907':
  Test flags before using "info"
2012-10-03 17:41:08 -07:00
Elliott Hughes
fa7e258617 Merge "Test flags before using "info"" 2012-10-03 17:27:51 -07:00
Andy McFadden
1db6f2db49 Test flags before using "info"
Our debugger signal catcher expects to receive three args, but if
somebody cleared SA_SIGINFO we only get one, and bad things happen
when we try to use the second one.  Test to see if SA_SIGINFO is
still set before we try to use the argument.

(cherry-pick of f84bc8d6f6368f1c846124a8168761ee8cc589c0.)

Bug: 7272866
Change-Id: I69a65c25e833aea70acb78f9ba40ed93308583e6
2012-10-03 17:20:06 -07:00
The Android Open Source Project
ae8000f368 Reconcile with jb-mr1-release - do not merge
Change-Id: I80b71067d1e628d18a19d94219fcfa1000133abf
2012-10-03 07:33:03 -07:00
Naseer Ahmed
9c3892558f am 6b1ba118: am 3ef4fecd: bionic: update processed msm_mdp.h
* commit '6b1ba1184a5e0884686b63da837a85f8c861d1fc':
  bionic: update processed msm_mdp.h
2012-10-03 01:03:04 -07:00
Naseer Ahmed
6b1ba1184a am 3ef4fecd: bionic: update processed msm_mdp.h
* commit '3ef4fecd30c22f3c17c1dadfce4527e858b42e7e':
  bionic: update processed msm_mdp.h
2012-10-03 00:57:49 -07:00
Andy McFadden
51c7167d22 am 7c67e4e4: am 98957db5: Merge "Test flags before using "info"" into jb-mr1-dev
* commit '7c67e4e423f7608c50a1fc7c355d87593cfdbcca':
  Test flags before using "info"
2012-10-02 15:27:09 -07:00
Andy McFadden
7c67e4e423 am 98957db5: Merge "Test flags before using "info"" into jb-mr1-dev
* commit '98957db5536e93724c2e9e6bd19d5063f9d4dc2c':
  Test flags before using "info"
2012-10-02 15:24:25 -07:00
Andreas Huber
3a0aa5e0a0 am cafbc940: am 2e0452cb: bionic: update processed msm_vidc_enc.h
* commit 'cafbc9404310828ecddc55a1eed5fc897008b1f3':
  bionic: update processed msm_vidc_enc.h
2012-10-02 14:42:35 -07:00
Andreas Huber
cafbc94043 am 2e0452cb: bionic: update processed msm_vidc_enc.h
* commit '2e0452cbd1f5b981fbadb4021198d2c27ec1cde3':
  bionic: update processed msm_vidc_enc.h
2012-10-02 14:40:02 -07:00
Elliott Hughes
92e6de6f94 am b95ad82f: am 95a2a7f3: Merge "Fix MIPS build."
* commit 'b95ad82f7d175a4f79eb0cbf6caedf0653603590':
  Fix MIPS build.
2012-10-02 11:33:03 -07:00
Elliott Hughes
b95ad82f7d am 95a2a7f3: Merge "Fix MIPS build."
* commit '95a2a7f325330830d6227aa683948b325e38e653':
  Fix MIPS build.
2012-10-02 11:31:30 -07:00
Elliott Hughes
95a2a7f325 Merge "Fix MIPS build." 2012-10-02 11:22:33 -07:00
Elliott Hughes
857fed50cb Fix MIPS build.
ARM and x86 have custom memcpy implementations, but MIPS relies on the generic
one, which I recently moved.

Change-Id: I9e49243f63b27a4123f2c6623d6286ec82d333c7
2012-10-02 11:20:07 -07:00
Elliott Hughes
80a2983272 am 90172541: am b98204a9: Merge "Move non-upstream code into the libc/bionic directory."
* commit '90172541866696a5a46fae7ff7e186126ee37318':
  Move non-upstream code into the libc/bionic directory.
2012-10-02 09:25:12 -07:00
Elliott Hughes
9017254186 am b98204a9: Merge "Move non-upstream code into the libc/bionic directory."
* commit 'b98204a9fb5c84478a9710163df395486443c7f6':
  Move non-upstream code into the libc/bionic directory.
2012-10-02 09:22:03 -07:00
The Android Open Source Project
4cf143f1c8 Reconcile with jb-mr1-release - do not merge
Change-Id: I2c724a28984aa03b2887b3db58bd59699b428e85
2012-10-02 09:16:33 -07:00
Elliott Hughes
b98204a9fb Merge "Move non-upstream code into the libc/bionic directory." 2012-10-02 09:13:34 -07:00
Elliott Hughes
15edd80a69 am 39d7c607: am 75f43525: Merge "Always take GCC\'s definition of NULL."
* commit '39d7c6072dc4d587c32405f3c7de12e60559cfc8':
  Always take GCC's definition of NULL.
2012-10-01 18:21:35 -07:00
Elliott Hughes
39d7c6072d am 75f43525: Merge "Always take GCC\'s definition of NULL."
* commit '75f43525550c5cad3980f7dd125cb838836790b8':
  Always take GCC's definition of NULL.
2012-10-01 18:18:06 -07:00
Elliott Hughes
75f4352555 Merge "Always take GCC's definition of NULL." 2012-10-01 18:11:20 -07:00
Elliott Hughes
7d56ccbfaa Always take GCC's definition of NULL.
There's a (bad) definition of NULL in <linux/stddef.h>, and this
definition of NULL, and the One True definition in the <stddef.h> provided
by the compiler. This change at least kills one of the bad duplicates.
Killing the <linux/stddef.h> one is harder, because it's in a generated
file.

Change-Id: Iea4ccb12d6758199f312ea9cd753b84322d5c471
2012-10-01 17:56:58 -07:00
Elliott Hughes
a89864a20b Move non-upstream code into the libc/bionic directory.
I'll need at least one more pass, because there's some upstream code
lurking in libc/bionic, but this is still a step in the right direction.

Change-Id: I55927315972da8327ae01c5240ed587db17e8462
2012-10-01 17:35:49 -07:00
Elliott Hughes
baa7ee0370 am bb7dfcd3: am d3bf954e: Merge "Remove useless #defines and incorrect claims from header files."
* commit 'bb7dfcd3b8744fdf37857375ffe279d2b87a8b22':
  Remove useless #defines and incorrect claims from header files.
2012-10-01 15:52:56 -07:00
Elliott Hughes
bb7dfcd3b8 am d3bf954e: Merge "Remove useless #defines and incorrect claims from header files."
* commit 'd3bf954e9ffbdee8d732ccb6ad6143dc31b605fc':
  Remove useless #defines and incorrect claims from header files.
2012-10-01 15:50:51 -07:00
Elliott Hughes
d3bf954e9f Merge "Remove useless #defines and incorrect claims from header files." 2012-10-01 15:37:18 -07:00
Elliott Hughes
0cc0d250fd Remove useless #defines and incorrect claims from header files.
The various __need_* macros were write-only.

Change-Id: Id3cca34188e0801fdf93a038b22f2817226ad9c2
2012-10-01 15:12:40 -07:00
Elliott Hughes
a54d08a7c1 am a428bc12: am fe712e6c: Merge "Upgrade seed48 too."
* commit 'a428bc1288e28a05b036597db4f0409fa7f3923d':
  Upgrade seed48 too.
2012-10-01 14:47:52 -07:00
Elliott Hughes
a428bc1288 am fe712e6c: Merge "Upgrade seed48 too."
* commit 'fe712e6caedccbbba24bda8429cb0b8cc6057ff1':
  Upgrade seed48 too.
2012-10-01 14:46:46 -07:00
Elliott Hughes
fe712e6cae Merge "Upgrade seed48 too." 2012-10-01 14:38:09 -07:00
Elliott Hughes
6ed5bc12da am b650111a: am cd195eba: Merge "Upgrade to the current NetBSD rand implementation."
* commit 'b650111a11b84d7c91145c4f29b58b5742afa572':
  Upgrade to the current NetBSD rand implementation.
2012-10-01 14:15:36 -07:00
Elliott Hughes
31a1060a5a Upgrade seed48 too.
Missed this in 774c7f54ff.

Change-Id: Ic24fd67f003d0e2d192cfb08f96f63024ca817eb
2012-10-01 14:14:21 -07:00
Elliott Hughes
b650111a11 am cd195eba: Merge "Upgrade to the current NetBSD rand implementation."
* commit 'cd195eba1f9235b9b9d4dda70142d927b1b9802d':
  Upgrade to the current NetBSD rand implementation.
2012-10-01 14:13:16 -07:00
Elliott Hughes
cd195eba1f Merge "Upgrade to the current NetBSD rand implementation." 2012-10-01 14:05:09 -07:00
Elliott Hughes
774c7f54ff Upgrade to the current NetBSD rand implementation.
Also add basic unit tests.

Change-Id: I7fc7ef61d47c1e8fdf8b8eff67a635220c3afd56
2012-10-01 13:53:41 -07:00
Elliott Hughes
068f33981d am 0fa6279f: am 5b6346f6: Merge "bionic: linker: Need update the map->l_addr for execution."
* commit '0fa6279f394bb5a5cfeb7996d28b8fd2365477e7':
  bionic: linker: Need update the map->l_addr for execution.
2012-10-01 09:23:11 -07:00
Elliott Hughes
0fa6279f39 am 5b6346f6: Merge "bionic: linker: Need update the map->l_addr for execution."
* commit '5b6346f6d5dca4022fe0044dd2807c19ac596788':
  bionic: linker: Need update the map->l_addr for execution.
2012-10-01 09:21:08 -07:00
Elliott Hughes
5b6346f6d5 Merge "bionic: linker: Need update the map->l_addr for execution." 2012-10-01 09:09:17 -07:00
Jean-Baptiste Queru
adc32bc3b1 Merge from jb-mr1-aah-dev
Change-Id: Iea13ecd8b6edd42b3dc9c59755d51c1bb36afe4a
2012-09-28 17:06:59 -07:00
Saurabh Shah
c556da9ed7 am 204b26b4: bionic: Update msm_mdp.h with new MSMFB_OVERLAY_COMMIT ioctl
* commit '204b26b4402249566e0190154cddb2cfc2cf42a7':
  bionic: Update msm_mdp.h with new MSMFB_OVERLAY_COMMIT ioctl
2012-09-28 15:00:03 -07:00
Saurabh Shah
52b4ccbc49 am 204b26b4: bionic: Update msm_mdp.h with new MSMFB_OVERLAY_COMMIT ioctl
* commit '204b26b4402249566e0190154cddb2cfc2cf42a7':
  bionic: Update msm_mdp.h with new MSMFB_OVERLAY_COMMIT ioctl
2012-09-28 14:59:36 -07:00
Jean-Baptiste Queru
de1efebdca Merge from jb-mr1-aah-dev
Change-Id: I56ae94f8efe9eecedc17da2f573e8fde2b80d151
2012-09-28 14:29:56 -07:00
Elliott Hughes
8e1a87b547 am bb892a1b: am d03bfe68: Merge "Define ssize_t if necessary."
* commit 'bb892a1b63a2e88c98a2ba31aa659b7efac44e4f':
  Define ssize_t if necessary.
2012-09-28 10:28:30 -07:00
Elliott Hughes
bb892a1b63 am d03bfe68: Merge "Define ssize_t if necessary."
* commit 'd03bfe689a6e29aa010a927741f42c08f89ef04d':
  Define ssize_t if necessary.
2012-09-28 10:27:06 -07:00
Elliott Hughes
d03bfe689a Merge "Define ssize_t if necessary." 2012-09-28 10:16:58 -07:00
Elliott Hughes
422b6ef92c Define ssize_t if necessary.
Change-Id: I63801cc1f09be5e4ca20a6da7ec3366ba6441afd
2012-09-28 10:15:52 -07:00
Elliott Hughes
fb1e192e12 am 72b08af3: am f9163dd1: Merge "Add getdelim(3) and getline(3) to bionic"
* commit '72b08af300703a08bf2081304ab81b9e4dba003c':
  Add getdelim(3) and getline(3) to bionic
2012-09-28 09:55:02 -07:00
Elliott Hughes
72b08af300 am f9163dd1: Merge "Add getdelim(3) and getline(3) to bionic"
* commit 'f9163dd1f0f6cbd7b8305fa1b2ce46754ed95278':
  Add getdelim(3) and getline(3) to bionic
2012-09-28 09:53:08 -07:00
Elliott Hughes
f9163dd1f0 Merge "Add getdelim(3) and getline(3) to bionic" 2012-09-28 09:44:24 -07:00
Irina Tirdea
eac9eb462e Add getdelim(3) and getline(3) to bionic
Some userspace programs (e.g. perf) need getline.

Changes:
() add getdelim.c, getline.c from NetBSD (http://netbsd.org/) under the
NetBSD Foundation's (TNF) license ("2 clause" Berkeley-style license).
() add stub for reentrant.h header that is needed by getdelim.c
() add tests for getdelim(3) and getline(3).
() update NOTICE file.

Change-Id: I22ed82dd5904b9d7a3695535c04f502be3c27c5d
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
2012-09-27 11:38:57 -07:00
Elliott Hughes
209d67d448 am fd6ca57f: am e4030e0b: Merge "Fix several compiler warnings."
* commit 'fd6ca57f24cbfd8a8074ee6f1c22dd973f1b172f':
  Fix several compiler warnings.
2012-09-26 16:07:02 -07:00
Elliott Hughes
fd6ca57f24 am e4030e0b: Merge "Fix several compiler warnings."
* commit 'e4030e0bfc427e755477bbea69afe60308a62d91':
  Fix several compiler warnings.
2012-09-26 16:04:51 -07:00
Elliott Hughes
e4030e0bfc Merge "Fix several compiler warnings." 2012-09-26 15:51:01 -07:00
Elliott Hughes
bdc514700d am 2c29bcf7: am 827a2604: Merge "Replace __unused in kernel headers with __linux_unused to avoid conflicts with __unused macro in sys/cdefs.h"
* commit '2c29bcf77f0d7dd7fce284ac0c17ff12663413d0':
  Replace __unused in kernel headers with __linux_unused to avoid conflicts with __unused macro in sys/cdefs.h
2012-09-26 15:19:22 -07:00
Elliott Hughes
2c29bcf77f am 827a2604: Merge "Replace __unused in kernel headers with __linux_unused to avoid conflicts with __unused macro in sys/cdefs.h"
* commit '827a2604ee660df80feb231a1f8bcc96ea6e64ce':
  Replace __unused in kernel headers with __linux_unused to avoid conflicts with __unused macro in sys/cdefs.h
2012-09-26 15:17:07 -07:00
Elliott Hughes
827a2604ee Merge "Replace __unused in kernel headers with __linux_unused to avoid conflicts with __unused macro in sys/cdefs.h" 2012-09-26 14:58:11 -07:00
Elliott Hughes
ac184b2142 Fix several compiler warnings.
Change-Id: I55caa50a5937442734f4fcbdb4edf1c70f335bf8
2012-09-26 14:20:22 -07:00
Elliott Hughes
0792223a8a am dd9fbc86: am 8e630dac: Merge "Simple tests for dladdr(3)."
* commit 'dd9fbc8646178dc34a92c5fbc0adc8b503cc3cd9':
  Simple tests for dladdr(3).
2012-09-26 12:19:34 -07:00
Elliott Hughes
66569e3d53 am a48d5e5f: am 855dde44: Merge "Fix tmpfile(3)."
* commit 'a48d5e5f127df0f76b49e046be042f46f211e8bc':
  Fix tmpfile(3).
2012-09-26 12:19:33 -07:00
Elliott Hughes
dd9fbc8646 am 8e630dac: Merge "Simple tests for dladdr(3)."
* commit '8e630dacf61307e4681f04fc6b5ee593f30d91d0':
  Simple tests for dladdr(3).
2012-09-26 12:18:14 -07:00
Elliott Hughes
a48d5e5f12 am 855dde44: Merge "Fix tmpfile(3)."
* commit '855dde44266e3c8384ea419f51f9a5c748253eda':
  Fix tmpfile(3).
2012-09-26 12:18:13 -07:00
Elliott Hughes
8e630dacf6 Merge "Simple tests for dladdr(3)." 2012-09-26 12:10:56 -07:00
Elliott Hughes
855dde4426 Merge "Fix tmpfile(3)." 2012-09-26 12:04:59 -07:00
Elliott Hughes
91875dcd6e Fix tmpfile(3).
This could be better, but at least now it works.

Change-Id: I88b7cf3f7ce8e5fa0b3fe678b7d1679a68ffffc9
2012-09-26 12:02:17 -07:00
Elliott Hughes
8e15b08ae2 Simple tests for dladdr(3).
Change-Id: I22160b7fc9b950ea19adb6da42af2f893f4fe5d5
2012-09-26 11:44:01 -07:00
Nick Kralevich
06abf4edbf am 5989ed5c: am 25937d36: Merge "FORTIFY_SOURCE: add umask check"
* commit '5989ed5cb8a1d11c140aa61a718e386c2cc88307':
  FORTIFY_SOURCE: add umask check
2012-09-26 11:14:12 -07:00
Nick Kralevich
5989ed5cb8 am 25937d36: Merge "FORTIFY_SOURCE: add umask check"
* commit '25937d36a0639593520d2765c59736c40095f0ae':
  FORTIFY_SOURCE: add umask check
2012-09-26 11:12:34 -07:00
Nick Kralevich
25937d36a0 Merge "FORTIFY_SOURCE: add umask check" 2012-09-26 10:59:29 -07:00
Elliott Hughes
c323317810 am 00f33977: am 3307bff0: Merge "Revert dl_fbase initialization to the address where the shared object is loaded."
* commit '00f339771b7b5bca1abeb375feb3ce9a04f6daa7':
  Revert dl_fbase initialization to the address where the shared object is loaded.
2012-09-26 10:45:06 -07:00
Elliott Hughes
00f339771b am 3307bff0: Merge "Revert dl_fbase initialization to the address where the shared object is loaded."
* commit '3307bff0232a00f879053e94a5f37f1ca1256f7c':
  Revert dl_fbase initialization to the address where the shared object is loaded.
2012-09-26 10:43:00 -07:00
Elliott Hughes
3307bff023 Merge "Revert dl_fbase initialization to the address where the shared object is loaded." 2012-09-26 10:38:10 -07:00
Nick Kralevich
cd587701c8 FORTIFY_SOURCE: add umask check
Verify that the call to umask makes sense. While this wouldn't
have detected bug 7094213 (because the low order bits were all zero),
it might detect other similar bugs.

References: https://code.google.com/p/android-source-browsing/source/detail?r=acba45cc4b1f98f67fcdeda2f7c13ed57659b92a&repo=platform--libcore

Change-Id: I966a531d6b3cf8e1c5eacd69bd3cbec475b5fa58
2012-09-26 10:19:31 -07:00
The Android Open Source Project
db2b9d052b Reconcile with jb-mr1-release - do not merge
Change-Id: I5d92da8a0dae14bcd6a61f1e015f818d25066763
2012-09-26 09:05:40 -07:00
Raghu Gandham
0e77287209 Replace __unused in kernel headers with __linux_unused to avoid
conflicts with __unused macro in sys/cdefs.h

Change-Id: Ice664397e0b7c7a90795012f30be5e43a9675525
2012-09-25 17:54:43 -07:00
Raghu Gandham
e6dc2a664e Revert dl_fbase initialization to the address where the shared object is loaded.
Change-Id: If868cab774a1ae5ff370208216cecda9b8c3b9fd
2012-09-25 15:58:01 -07:00
Elliott Hughes
354867d702 am 0eb4f255: am 6e0e03c3: Merge "Add the cleaned kernel headers"
* commit '0eb4f255d2dc1778b9a5fabb0f65c81ac4dad4a4':
  Add the cleaned kernel headers
2012-09-24 13:50:04 -07:00
Elliott Hughes
0eb4f255d2 am 6e0e03c3: Merge "Add the cleaned kernel headers"
* commit '6e0e03c38bc0e864225b89b3fb273fb56ded8940':
  Add the cleaned kernel headers
2012-09-24 13:47:29 -07:00
Elliott Hughes
a06e11cc34 am c746bed8: am 7b0377ed: Merge "[MIPS] Removed the unused header"
* commit 'c746bed88931fab8abcc4d01a5c53b95fff1ba8f':
  [MIPS] Removed the unused header
2012-09-24 13:40:53 -07:00
Elliott Hughes
28bd96cc0b am d5c654c0: am 3b6914bf: Merge "Fix dlsym and dladdr to use load_bias instead of base"
* commit 'd5c654c053bb100cb2d4a71260a507e20eb30e79':
  Fix dlsym and dladdr to use load_bias instead of base
2012-09-24 13:40:42 -07:00
Elliott Hughes
6e0e03c38b Merge "Add the cleaned kernel headers" 2012-09-24 13:39:33 -07:00
Elliott Hughes
c746bed889 am 7b0377ed: Merge "[MIPS] Removed the unused header"
* commit '7b0377eda03abc9db79faa244e28aea1ac7b64da':
  [MIPS] Removed the unused header
2012-09-24 12:41:20 -07:00
Raghu Gandham
bfeb8a98b6 Add the cleaned kernel headers
Change-Id: Ied4e3ca765672ebaebe9d4d0909b3278c2ff3cd8
2012-09-24 12:33:57 -07:00
Elliott Hughes
7b0377eda0 Merge "[MIPS] Removed the unused header" 2012-09-24 12:24:01 -07:00
Raghu Gandham
d769826b0d [MIPS] Removed the unused header
Change-Id: I8756a862669d4e5f283945496983f11a59dea30c
2012-09-24 11:52:00 -07:00
Elliott Hughes
d5c654c053 am 3b6914bf: Merge "Fix dlsym and dladdr to use load_bias instead of base"
* commit '3b6914bf04942f74e9dba43a75d5d5ae94161b95':
  Fix dlsym and dladdr to use load_bias instead of base
2012-09-24 10:21:23 -07:00
Elliott Hughes
a9a1d8a5d2 am f4b34b6c: (-s ours) DO NOT MERGE Revert "Add the libcutils localtime_tz and mktime_t extensions to bionic."
* commit 'f4b34b6c3942be273ad7298a40be0d312b183aab':
  DO NOT MERGE Revert "Add the libcutils localtime_tz and mktime_t extensions to bionic."
2012-09-24 10:16:43 -07:00
Elliott Hughes
f153ed380d am f4b34b6c: DO NOT MERGE Revert "Add the libcutils localtime_tz and mktime_t extensions to bionic."
* commit 'f4b34b6c3942be273ad7298a40be0d312b183aab':
  DO NOT MERGE Revert "Add the libcutils localtime_tz and mktime_t extensions to bionic."
2012-09-24 10:16:37 -07:00
The Android Open Source Project
51d270af6d Reconcile with jb-mr1-release - do not merge
Change-Id: I933866be4d956f18dff51676c8027f807cea26d7
2012-09-24 10:11:18 -07:00
Elliott Hughes
3b6914bf04 Merge "Fix dlsym and dladdr to use load_bias instead of base" 2012-09-24 10:03:51 -07:00
Elliott Hughes
82ec685054 am 6c0e373d: am ec432608: am 0c24effd: Merge "Add the libcutils localtime_tz and mktime_t extensions to bionic."
* commit '6c0e373d38a9cb424bd6d9c4d5d6168960846aa5':
  Add the libcutils localtime_tz and mktime_t extensions to bionic.
2012-09-24 09:47:01 -07:00
Elliott Hughes
6da07f02bd am ecf67e15: am 2d51dddf: am 85049ead: Merge "Use hidden visibility for several internal-use-only functions."
* commit 'ecf67e152aecb67bff950d72582ef54b56191096':
  Use hidden visibility for several internal-use-only functions.
2012-09-24 09:46:47 -07:00
Elliott Hughes
0349e3d3ff am d2eea0e6: am baa74eff: am 882c6af9: Merge "[MIPS] Add CONFIG_32BIT to kernel_default_arch_macros for MIPS. Some of the required structure definitons are defined under this macro."
* commit 'd2eea0e6d6d4e7c406b06d90316713482d650290':
  [MIPS] Add CONFIG_32BIT to kernel_default_arch_macros for MIPS. Some of the required structure definitons are defined under this macro.
2012-09-24 09:46:46 -07:00
Naseer Ahmed
21e0a7ee8b am f7070074: bionic: Update MDP header for sync
* commit 'f707007435ee4798815bd507d86b1460204cfc4f':
  bionic: Update MDP header for sync
2012-09-24 09:26:33 -07:00
Raghu Gandham
c1993cac40 Fix dlsym and dladdr to use load_bias instead of base
Change-Id: If0f9aa944ccb1f90451aa6674428e34494331d2d
2012-09-21 17:00:30 -07:00
Rebecca Schultz Zavin
27cfd6afd4 am a9dca773: Update ion header to add FLAG_CACHED_NEEDS_SYNC
* commit 'a9dca77315b85f61e7386ca8dc931f79f6396531':
  Update ion header to add FLAG_CACHED_NEEDS_SYNC
2012-09-20 14:00:15 -07:00
The Android Open Source Project
0a6cbb97a8 Reconcile with jb-mr1-release - do not merge
Change-Id: I487c32c629ef85a9aea22fb7564fd868618f56c3
2012-09-20 10:34:47 -07:00
Iliyan Malchev
e55218223b am 4430aa6a: Merge "Update headers for Adreno graphics driver" into jb-mr1-dev
* commit '4430aa6aaaa8e93bb7fbca761bf18540a7d95ca0':
  Update headers for Adreno graphics driver
2012-09-18 20:30:06 -07:00
Elliott Hughes
ae0bccf7d3 am 0ef00090: am 30289f0d: am 47dc4d43: Merge "Make pthread_create more forgiving of invalid sched_policy. Bug: 7005326"
* commit '0ef00090444883508b6405726150fe7e12ca5476':
  Make pthread_create more forgiving of invalid sched_policy. Bug: 7005326
2012-09-18 17:26:14 -07:00
Dave Burke
baa09d1e0a am e5830324: Make pthread_create more forgiving of invalid sched_policy. Bug: 7005326
* commit 'e58303249b9e799a4fe84c5a2dfe71518441a6ec':
  Make pthread_create more forgiving of invalid sched_policy. Bug: 7005326
2012-09-18 00:05:21 -07:00
Elliott Hughes
1f1e7b70b7 am 2aceb4bc: am e2a17ef4: am 77ac158e: Merge "Don\'t copy strerror(3) or strsignal(3) strings if we can share."
* commit '2aceb4bcb30def2207fd8d6e7d30df35f9f91504':
  Don't copy strerror(3) or strsignal(3) strings if we can share.
2012-09-17 15:57:46 -07:00
Elliott Hughes
469bd6692b am 4b3ff1f0: am f8902bf7: am 047a285d: Merge "Fix <sys/klog.h> to correspond to the kernel operations."
* commit '4b3ff1f0fa141b95bacf52960be588c343d8e5d6':
  Fix <sys/klog.h> to correspond to the kernel operations.
2012-09-14 16:23:07 -07:00
Elliott Hughes
e409645c99 am b67d4ec5: am 950a3c01: am 51519521: Merge "Add tty defaults to bionic"
* commit 'b67d4ec5babf7d26bc0e52b942779012d14e14c8':
  Add tty defaults to bionic
2012-09-14 16:06:15 -07:00
Elliott Hughes
7e9d6d8abb am b2af8b68: am 66a97ea9: am 4e9d953a: Merge "libc: add ftw / nftw functions"
* commit 'b2af8b6848bfd5dbc6dbc10a8267b0e387780888':
  libc: add ftw / nftw functions
2012-09-13 17:13:57 -07:00
Elliott Hughes
c913407490 am 1eaa3e6f: am 77fd7075: am e895e6de: Merge "Update libc/NOTICE and record the incantation."
* commit '1eaa3e6f72bd20eeea64bb3f46d965658695dade':
  Update libc/NOTICE and record the incantation.
2012-09-13 17:13:56 -07:00
Kenny Root
c01915fd04 am 2b270a0c: am a4ea1a3d: am f7e403d6: Merge changes I06ee0b67,I914d2205
* commit '2b270a0caceaf79a799a55fc29fe43b6f0482ba9':
  Print out shared app gids correctly
  Add tests for Android-specific stubs
2012-09-13 15:36:06 -07:00
Elliott Hughes
c9829a2b6f am 155a70b9: am de9db8f7: am fa36875d: Merge "Make strerror(3) and strsignal(3) thread-safe, and add psignal(3) and psiginfo(3)."
* commit '155a70b93fcccf8e5dec108fb730e25471eaecba':
  Make strerror(3) and strsignal(3) thread-safe, and add psignal(3) and psiginfo(3).
2012-09-13 15:36:05 -07:00
Elliott Hughes
953dbbda49 am c7fda6a9: am d4623e56: am b338ea30: Merge "Upgrade to tzdata2012f."
* commit 'c7fda6a96daeb6d089f3d8f4426b6fc211017289':
  Upgrade to tzdata2012f.
2012-09-13 15:36:03 -07:00
Elliott Hughes
3d01901774 am bec648ee: am 8db4b91b: am d2236e2c: Merge "Fix Mac build."
* commit 'bec648ee9f47c4120e5a4f82c7f0e6d225cb107f':
  Fix Mac build.
2012-09-13 11:14:23 -07:00
Elliott Hughes
c005a55c74 am 478f8ff3: am b2550dd4: am 4a9b7c69: Merge "Add libdl into libc_malloc_debug_leak build"
* commit '478f8ff3f0bd0b805702eb1f90bd03eef6d19e89':
  Add libdl into libc_malloc_debug_leak build
2012-09-13 09:54:31 -07:00
Elliott Hughes
00f927f137 am 29861b5d: am 58d15966: am af4d630e: Merge "Added new test for dlopen which is failing for MIPS."
* commit '29861b5d8edf9506acd2289fb5b993b9a7997a59':
  Added new test for dlopen which is failing for MIPS.
2012-09-13 09:54:30 -07:00
Xiaokang Qin
9c3449ecd9 bionic: linker: Need update the map->l_addr for execution.
Currently, linker doesn't update the map->l_addr for execution.
Which could break the Unwind_Backtrace with PT_GNU_EH_FRAME enabled
in new toolchain.

Change-Id: Ifbd853134da64a962f7e4c4105e56a3f20def1b2
Author: Fengwei Yin <fengwei.yin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 57077
2012-09-13 18:09:20 +08:00
Elliott Hughes
cf57515f70 am f801cf55: resolved conflicts for merge of 47bda0c2 to jb-mr1-dev
* commit 'f801cf55bebc8d0d397fbe6db8cc91b3afb78149':
  Update the kernel headers to match external/kernel-headers.
2012-09-12 16:11:21 -07:00
Elliott Hughes
7f59867170 am ccd7ee62: am 90ae787b: am 666d06fe: Merge "Backwards and forwards compatibility for an upcoming <sys/socket.h> change."
* commit 'ccd7ee624a81d61675fa08e149fe190a317341eb':
  Backwards and forwards compatibility for an upcoming <sys/socket.h> change.
2012-09-12 11:08:30 -07:00
The Android Open Source Project
76a3777a4d Reconcile with jb-mr1-release - do not merge
Change-Id: I1cd7d82959c5e821c23be974b7eb9d4914593bef
2012-09-12 07:39:34 -07:00
Elliott Hughes
68221a76b7 am cc0f2253: am 7f798147: am cc8668f2: Merge "[MIPS] Check error status from pipe system call"
* commit 'cc0f225365d7103baaba80517850489a5ff17d89':
  [MIPS] Check error status from pipe system call
2012-09-11 16:48:50 -07:00
Elliott Hughes
eeabbaee88 am f50b99f4: am e8b4d67a: am 59726bed: Merge "Rename crtstart variables as crtbegin, to match reality."
* commit 'f50b99f471a9af07b2dec6ac3fe1abca5ba9a20b':
  Rename crtstart variables as crtbegin, to match reality.
2012-09-10 12:06:50 -07:00
Ying Wang
33d552a4d1 am e3738414: am f9920563: am 67546bf2: Merge "Generate header dependency makefiles for the crt*.o"
* commit 'e3738414a62f9c9b43e158af590d127b9659030d':
  Generate header dependency makefiles for the crt*.o
2012-09-10 10:09:13 -07:00
Elliott Hughes
934e18e715 am af4371b4: am 56ba6336: am f1d57e16: Merge "Add more pthreads tests."
* commit 'af4371b46b71116bd40b6ef1eb32fdfc301a38e9':
  Add more pthreads tests.
2012-09-07 20:36:20 -07:00
Elliott Hughes
5804b88a44 am b0102454: am 7c7a7f8e: am d10309c3: Merge "Rename __dso_handle_so.c to __dso_handle_so.h"
* commit 'b010245490f50601b13ee17238e31162b6143d71':
  Rename __dso_handle_so.c to __dso_handle_so.h
2012-09-07 11:11:35 -07:00
Elliott Hughes
ffcb92e779 am b18d4f63: am 72fcdbe9: am 691ef3c8: Merge "Add mlockall and munlockall for Google TV."
* commit 'b18d4f6361c4ae011c7661da46ad0501eecba591':
  Add mlockall and munlockall for Google TV.
2012-09-07 11:11:34 -07:00
Ian Rogers
e9859df7cc am 973bf681: am 77039d34: am e8f81547: Merge "Fix build warning of initialization but no use."
* commit '973bf681b74d418704202cbfefef5d3be031b066':
  Fix build warning of initialization but no use.
2012-09-06 11:52:24 -07:00
Elliott Hughes
684669dfd7 am de0dc251: am 41ff8b98: am 6e3b0f2d: Merge "Don\'t corrupt the thread list in static executables."
* commit 'de0dc251120e03622d89d7af2ce44530d665e065':
  Don't corrupt the thread list in static executables.
2012-09-06 10:46:41 -07:00
The Android Open Source Project
c0ee117170 Reconcile with jb-mr1-release - do not merge
Change-Id: If42e786ae4ba616676fad3872f3c36f0c0be16f8
2012-09-06 07:52:32 -07:00
Ajay Dudani
d58928e831 am 183d0a57: Update msm_ion.h ioctls so they dont conflict with ion.h
* commit '183d0a57a292a33d92baa099b14425805a94306d':
  Update msm_ion.h ioctls so they dont conflict with ion.h
2012-09-05 21:49:44 -07:00
Ajay Dudani
bf3da78e69 am 85811fc7: Revert "msm_ion: switch to using legacy_ion.h"
* commit '85811fc7c244c977186cff501063d5f67fb5352b':
  Revert "msm_ion: switch to using legacy_ion.h"
2012-09-05 21:45:39 -07:00
Ajay Dudani
7649d62255 am dc81b447: Revert "add legacy_ion.h"
* commit 'dc81b44759b30a7fe0951d35f658700afd806bea':
  Revert "add legacy_ion.h"
2012-09-05 21:44:13 -07:00
Elliott Hughes
8140487f60 am 2da90705: am 008f4df5: am ff4608ae: Merge "Add missing dependencies."
* commit '2da907059e187ffdcc25b15af91f912eecdcf776':
  Add missing dependencies.
2012-09-05 14:57:27 -07:00
Elliott Hughes
d5b14e3552 am faf361a6: am 2fc3e1ef: am b2c5bd54: Merge "ARM: warn about atexit() calls from legacy shared libraries"
* commit 'faf361a6ac23af030268728f6eb02a3d1080a5ff':
  ARM: warn about atexit() calls from legacy shared libraries
2012-09-05 10:34:23 -07:00
Elliott Hughes
340ff83f98 am ac3e35cd: am a76f2eca: am 26f2e4a1: Merge "ARM: make CRT_LEGACY_WORKAROUND work as intended"
* commit 'ac3e35cd8f1ba8133905ee3700e092efef98ab12':
  ARM: make CRT_LEGACY_WORKAROUND work as intended
2012-09-05 10:03:37 -07:00
Ian Rogers
64f4e71418 am f71d757f: am 7310a1c4: am 82978cae: Merge "Avoid malloc lock while calling pthread_atfork."
* commit 'f71d757f6eea0394654b5c07a580bf3b4d048853':
  Avoid malloc lock while calling pthread_atfork.
2012-09-05 07:54:35 -07:00
Elliott Hughes
9deb460a26 am ab558163: am b9f0a6eb: am be19a367: Merge "termios: add tcdrain"
* commit 'ab558163a3f79834d4aa3107f4fed20bb242860b':
  termios: add tcdrain
2012-09-04 18:15:48 -07:00
Elliott Hughes
fe7ac11afa am f34c6d77: am bc374078: am 5ff23471: Merge "Add getsid system call to bionic"
* commit 'f34c6d7796102cf33bd8887efd0ba3f70884acd9':
  Add getsid system call to bionic
2012-09-04 16:49:27 -07:00
Elliott Hughes
ad639c1d2b am 877ad30f: am 507bcabb: am e03ab936: Merge "Add missing MALLOC_FAILURE_ACTION calls to dlmalloc."
* commit '877ad30fd6e8745b43063947a9220d1f1398ee02':
  Add missing MALLOC_FAILURE_ACTION calls to dlmalloc.
2012-09-04 16:03:30 -07:00
Elliott Hughes
1d07eda8db am c0e3b9dd: am b438c54d: am 1db615b4: Merge "bionic: Fix TINY_ANDROID build"
* commit 'c0e3b9ddd6c7dae0a402067c79609ddefcde125b':
  bionic: Fix TINY_ANDROID build
2012-09-04 13:51:57 -07:00
Ian Rogers
5b0e2de6ae am b9ad1a1e: am 6abab301: am 6fe901ef: Merge "Upgrade to dlmalloc 2.8.6."
* commit 'b9ad1a1e001cc06db121994ca0da7deb4c60914a':
  Upgrade to dlmalloc 2.8.6.
2012-08-31 09:01:07 -07:00
Elliott Hughes
418ecb7ec8 am 8c368b5d: am dde94f4c: am 8b4e8a93: Merge "Improve the dynamic linker diagnostics."
* commit '8c368b5d1d43bf5d9fdf1f6e99190437da882f95':
  Improve the dynamic linker diagnostics.
2012-08-29 14:09:36 -07:00
Nick Kralevich
29e526527c am fe7d7d46: am 92133ca4: am 17d9be8a: Merge "disable _FORTIFY_SOURCE under clang"
* commit 'fe7d7d4693463945155b8548f9c33db5b3c90377':
  disable _FORTIFY_SOURCE under clang
2012-08-29 14:09:32 -07:00
Elliott Hughes
b37328627b am 8900e2de: am e5b85f45: am 0d7177c0: Merge "Clean up warnings in the malloc_debug_* files."
* commit '8900e2de450726982de466bfc3639dd71630178c':
  Clean up warnings in the malloc_debug_* files.
2012-08-29 13:22:18 -07:00
Ian Rogers
71258e0d20 am 15afed42: Merge "Revert "Revert "Restore posix_memalign""" into jb-mr1-dev
* commit '15afed42ca0b9e5954b121d1a6ca1bdb6b5dc55c':
  Revert "Revert "Restore posix_memalign""
2012-08-29 08:55:24 -07:00
Ian Rogers
1df8fe33d5 am f71fa083: Merge "Revert "Revert "Upgrade to dlmalloc 2.8.5.""" into jb-mr1-dev
* commit 'f71fa0830a1d1280174f25309b05612af4f20fb3':
  Revert "Revert "Upgrade to dlmalloc 2.8.5.""
2012-08-29 08:55:23 -07:00
Iliyan Malchev
7e5851922c am 66edcd9d: msm_ion: switch to using legacy_ion.h
* commit '66edcd9dad6a10622015f6350ea9bc11a358801a':
  msm_ion: switch to using legacy_ion.h
2012-08-29 01:37:21 -07:00
Iliyan Malchev
ba13ae7672 am 5f1d206d: add legacy_ion.h
* commit '5f1d206de357684365a98c53b505491e18b6694a':
  add legacy_ion.h
2012-08-29 01:37:20 -07:00
Nick Kralevich
2868bbabf3 am 4f90a093: am d3d09f7d: am 069c64cd: Merge "ARM: make sure __on_dlclose() actually gets called"
* commit '4f90a0932c087e4bb13dab2d30a424c04c1f9f80':
  ARM: make sure __on_dlclose() actually gets called
2012-08-28 13:43:57 -07:00
Nick Kralevich
036fa6e669 am 54662dd4: am 1389db8b: am e026b1d8: Merge "ARM: remove dummy entries from .so init_array/fini_array"
* commit '54662dd4de8151383be4b518f4161f171359186f':
  ARM: remove dummy entries from .so init_array/fini_array
2012-08-28 13:06:48 -07:00
Nick Kralevich
773a783295 am d7440f37: am 7cab2188: am ad180738: Merge "linker: Fix ARM_R_COPY relocations"
* commit 'd7440f3725b196f6624f74d2cee50dbdac647372':
  linker: Fix ARM_R_COPY relocations
2012-08-28 13:06:47 -07:00
Nick Kralevich
8816088095 am 3ffdef19: am c7d9c400: am c410a961: Merge "libc: remove ctors/dtors sections"
* commit '3ffdef19b4e9c8bae4fb0591afc0074eab0e5ac6':
  libc: remove ctors/dtors sections
2012-08-28 10:40:58 -07:00
Nick Kralevich
5443561d5d am 48c88804: am 775dabd4: am 9dfaa63a: Merge "Allow linker to compile with -DLINKER_DEBUG=1"
* commit '48c88804293c8ebebe8c6035b0e077f4d55fe625':
  Allow linker to compile with -DLINKER_DEBUG=1
2012-08-27 16:09:49 -07:00
Elliott Hughes
ea108d8a66 am 8c7f4777: am d2d8031d: am bc366292: Merge "Added missing cache failed notification"
* commit '8c7f4777ec2127a95f7f0aea3bf32fe9309a6ada':
  Added missing cache failed notification
2012-08-27 15:25:02 -07:00
Iliyan Malchev
c9008991f3 am 3ad36e52: bionic: update sanitized MSM, V4L2 kernel headers
* commit '3ad36e525f1e0c5c35c9e854e542acff48e515a8':
  bionic: update sanitized MSM, V4L2 kernel headers
2012-08-27 15:13:48 -07:00
The Android Open Source Project
75f3d25cef Reconcile with jb-mr1-release - do not merge
Change-Id: I81e9084dd1f51185ecced85fecd1439a72f8c82c
2012-08-25 07:15:24 -07:00
Ian Rogers
1f84a4e426 am a190cbb8: am 05fddb41: am a37ce7fa: Merge "Add missing va_end() to prevent stack corruptions"
* commit 'a190cbb825c690e9e2423e022cabb844a0cd8a5a':
  Add missing va_end() to prevent stack corruptions
2012-08-24 15:25:44 -07:00
Rebecca Schultz Zavin
fa5942cc08 am cbd76d15: Merge "Update ion header" into jb-mr1-dev
* commit 'cbd76d15aff86ed63747d2a3b41a999e0cf9302f':
  Update ion header
2012-08-23 16:33:19 -07:00
Nick Kralevich
dd5d865d92 am 81af404b: am e8198b97: am 26facba2: Merge "hardening: remove pointless ARM __get_pc() function"
* commit '81af404b634dc75581ab2dedf0c3d68b8666aee4':
  hardening: remove pointless ARM __get_pc() function
2012-08-23 12:35:53 -07:00
The Android Open Source Project
b1d4387222 Reconcile with jb-mr1-release - do not merge
Change-Id: I3a81059b919617b639d4b39c40235301db4dd86a
2012-08-22 15:34:31 -07:00
Brian Carlstrom
4a56211b0b am f72ee269: Revert "Upgrade to dlmalloc 2.8.5."
* commit 'f72ee269274170cd46af2844a2fe88767fb6e43c':
  Revert "Upgrade to dlmalloc 2.8.5."
2012-08-22 13:55:11 -07:00
Brian Carlstrom
7163345437 am 78a3069f: Revert "Restore posix_memalign"
* commit '78a3069f827386df6166ccf9366a89be782f1dde':
  Revert "Restore posix_memalign"
2012-08-22 13:55:10 -07:00
Jean-Baptiste Queru
2400c7a60e am e49df020: am 170ad354: am c7de0225: Merge "Use unambiguous mnemonics"
* commit 'e49df0203c112bf44b166cde733554072b115ec5':
  Use unambiguous mnemonics
2012-08-22 07:33:51 -07:00
Erik Gilling
fed121126a am 974e16cd: update linux/sync.h
* commit '974e16cd829b6f75a5861759e86c1c09768272f2':
  update linux/sync.h
2012-08-21 19:11:07 -07:00
The Android Open Source Project
a5b7d6dd00 Reconcile with jb-mr1-release - do not merge
Change-Id: I559e0ba590f5beee87871ecfbdfc185566d40f9f
2012-08-21 16:04:39 -07:00
Andrew Hsieh
5e2aa357d2 am f861705f: am 5cd1efb2: am 1bd035cf: Merge "Enclosed functions in fenv.h with __BEGIN_DECLS/__END_DECLS"
* commit 'f861705f8c64af968b542c23932994cd17bb5db9':
  Enclosed functions in fenv.h with __BEGIN_DECLS/__END_DECLS
2012-08-21 03:33:02 -07:00
Ian Rogers
7c6cc4dffd am 4ac3b0a1: am 8af726b2: am 7b0d9b79: Merge "Restore posix_memalign"
* commit '4ac3b0a1487cc97e86bd98959e23bf2303942945':
  Restore posix_memalign
2012-08-20 19:46:25 -07:00
Brian Carlstrom
638b0fd953 am cc1f4acb: Restore posix_memalign
* commit 'cc1f4acbda8f12c2020c2e5f1f8a03221c9ae4e9':
  Restore posix_memalign
2012-08-20 18:36:44 -07:00
Brian Carlstrom
94c82633c7 am 76f60e2e: am fe87596a: am c37dcd3d: Merge "Upgrade to dlmalloc 2.8.5."
* commit '76f60e2ebd8750c4e4594158745e752b6a10ea0b':
  Upgrade to dlmalloc 2.8.5.
2012-08-20 16:34:22 -07:00
Elliott Hughes
98f26893a6 am dd0e991c: am 2651d6c6: am 9417a80e: Merge "Always define the 64-bit int types."
* commit 'dd0e991c6a0d4d71f1698fd57608a7d42401b6da':
  Always define the 64-bit int types.
2012-08-17 17:00:03 -07:00
Elliott Hughes
ea5dea8edb am db2903fa: am cbeccc84: am 200de748: Merge "Fix race condition in pthread_create()"
* commit 'db2903fac3d4548de1fd0fda1d3b7460c723282e':
  Fix race condition in pthread_create()
2012-08-17 16:28:00 -07:00
Elliott Hughes
d060b824dd am efd39834: am e5242bfd: am 1771a33d: Merge "Add link.h for all platforms with dl_phdr_info"
* commit 'efd3983446c6574c9662b01f441776cf299c0c80':
  Add link.h for all platforms with dl_phdr_info
2012-08-17 14:03:53 -07:00
Joe Onorato
947f2e610a am 28ae6f5d: am cefb93b6: am 6c98cdb1: Merge "Don\'t over-generalize makefiles. Host modules always build. This isn\'t needed on eng builds."
* commit '28ae6f5dfd024dd3f860b134ebed56a0248a1097':
  Don't over-generalize makefiles.  Host modules always build. This isn't needed on eng builds.
2012-08-17 00:14:21 -07:00
The Android Open Source Project
89a4090eca Reconcile with jb-mr1-release - do not merge
Change-Id: I56a0568d05e01d6ca908c97af3036ffe5a057df0
2012-08-16 19:09:40 -07:00
Elliott Hughes
1291162410 am a7d8f3d5: am c80ca54f: am 60ef95e1: Merge "Enhance getcwd(3) to handle NULL like glibc."
* commit 'a7d8f3d50e6b0858b3b6494d772167286cdeb986':
  Enhance getcwd(3) to handle NULL like glibc.
2012-08-16 17:07:18 -07:00
Elliott Hughes
ca82e1f3d1 am 820ad428: am 74438bb2: am 449d4634: Merge "bionic: add macro protection for MALLOC_ALIGNMENT"
* commit '820ad4283d71c4f2303f80d8ccbe6c90a6ec5407':
  bionic: add macro protection for MALLOC_ALIGNMENT
2012-08-16 14:27:28 -07:00
Scott Anderson
cc8165aea5 am 09d9dd3a: Merge "Add clean kernel header for uhid." into jb-mr1-dev
* commit '09d9dd3acdf74630eb7eb6896007e803085f45c6':
  Add clean kernel header for uhid.
2012-08-16 12:05:44 -07:00
Elliott Hughes
949d6faa96 am a626bbdb: am 4af9141c: am ae728099: Merge "enable clone system call for x86"
* commit 'a626bbdb361539d6667932027ea9ffa26ef1faf4':
  enable clone system call for x86
2012-08-15 17:25:35 -07:00
Elliott Hughes
31041a0138 am 29af938c: am ab8850f7: am 07cd1125: Merge "Fix comment typos."
* commit '29af938cbd9b898c92f44c022dc7f5d3ab9782a7':
  Fix comment typos.
2012-08-15 17:09:39 -07:00
Elliott Hughes
cdbd3406f5 am 4d63f33c: am 76aad1d2: am e1cd69a7: Merge "Regenerate all NOTICE files with the latest version of the script."
* commit '4d63f33cdc74c340c13b96143833f669835764f2':
  Regenerate all NOTICE files with the latest version of the script.
2012-08-15 17:09:38 -07:00
Elliott Hughes
f53c75e513 am 2e3756b4: am 9b3bbcda: am fe43c768: Merge "Switch to the current NetBSD regex implementation."
* commit '2e3756b4d36c9b7f6a892b87757d41b3201b9773':
  Switch to the current NetBSD regex implementation.
2012-08-15 16:01:22 -07:00
The Android Open Source Project
e24cde4406 Reconcile with jb-mr1-release - do not merge
Change-Id: I2f6d32a6bc10f17d85930b21c2ac55c91d5e252e
2012-08-15 08:26:11 -07:00
Elliott Hughes
ff45d5cdbf am 82259117: am 008a0a5d: am 53493a9b: Merge "Sort NOTICE entries."
* commit '82259117753adffdab3ce74efb12d30a5289ad2b':
  Sort NOTICE entries.
2012-08-14 15:46:26 -07:00
Iliyan Malchev
912dd71259 am df88d88f: Merge changes I2e8af44e,Ie9250a0e into jb-mr1-dev
* commit 'df88d88f56f37cdf75ab03c6b68a42010d9ac6c7':
  update msm_mdp.h header to support vsync
  update processed msm_camera.h and msm_isp.h
2012-08-14 15:41:38 -07:00
Elliott Hughes
0a3f66e9a0 am fdbecf3b: am 63696738: am b6a97196: Merge "More cleanup."
* commit 'fdbecf3b5a16f8e35e1ad67ec9c807eb66e2ac3b':
  More cleanup.
2012-08-14 15:13:10 -07:00
Elliott Hughes
7bb37492cc am 89a35435: am 16a0cbaa: am b7c6991c: Merge "Update MS_ mount flags, define unshare() syscall."
* commit '89a3543568ffedb54473f961f36f17d211d9c7e1':
  Update MS_ mount flags, define unshare() syscall.
2012-08-14 12:31:15 -07:00
Elliott Hughes
028ed539dd am dc320d99: am 82b69fcb: am b9c6854c: Merge "linker: avoid clobbering the .dynamic section of shared libs"
* commit 'dc320d99f1e09c0e42fc86f3cb28c15b77d7701b':
  linker: avoid clobbering the .dynamic section of shared libs
2012-08-14 12:17:27 -07:00
Elliott Hughes
bfcd552500 am b6d6ec53: am 370a7094: am c50e0197: Merge "Switch to upstream NetBSD tdelete/tfind/tsearch."
* commit 'b6d6ec5326a016e60d2bd82edf857aaec6d5ce95':
  Switch to upstream NetBSD tdelete/tfind/tsearch.
2012-08-14 12:17:26 -07:00
Jeff Sharkey
21f7ef9eb2 am d8450043: Merge "Update MS_ mount flags, define unshare() syscall." into jb-mr1-dev
* commit 'd8450043b060358e1235a1f052d63aa4527b2400':
  Update MS_ mount flags, define unshare() syscall.
2012-08-14 12:06:36 -07:00
Elliott Hughes
2bc1cadeff am 93a9d534: am d544bdfa: am 54655eaf: Merge "Fix nice..."
* commit '93a9d53485677fb5b897a127b27e6bdbc40911c7':
  Fix nice...
2012-08-13 17:15:40 -07:00
Elliott Hughes
aa29740ce2 am 69fc1522: am aa6c8994: am b66bc514: Merge "Clean up warnings in stubs.cpp."
* commit '69fc1522a30df39fcf115f09f7665b590677ba27':
  Clean up warnings in stubs.cpp.
2012-08-13 16:27:05 -07:00
Elliott Hughes
c37b31d848 am eab7bddd: am ca09412a: am 222eec2e: Merge "Handle naming for system uids running as secondary users"
* commit 'eab7bddd9eb585ce3992314c9e411b909c05e87b':
  Handle naming for system uids running as secondary users
2012-08-13 16:07:46 -07:00
Elliott Hughes
c64c1b49fd am ad8ff472: am c1eb7619: am 440e417d: Merge "Add dependencies on all the makefiles."
* commit 'ad8ff472b6d80561629db4826452fddf3007bdce':
  Add dependencies on all the makefiles.
2012-08-13 16:07:45 -07:00
Elliott Hughes
141a3b109c am cfd0345f: am 35dcf19b: am 66fba009: Merge "Update arch-mips/asm/unistd.h for the newer syscalls"
* commit 'cfd0345fe056cf945f5b6f61d4316536781697b4':
  Update arch-mips/asm/unistd.h for the newer syscalls
2012-08-13 16:07:44 -07:00
Amith Yamasani
c6c26a08c8 am ca7ee8a9: Merge "Handle naming for system uids running as secondary users" into jb-mr1-dev
* commit 'ca7ee8a9e50d99f3d014a523460191b1e67e9c9f':
  Handle naming for system uids running as secondary users
2012-08-13 13:52:07 -07:00
Elliott Hughes
94d7f701d1 am 71c0366f: am e135d7f3: am a61ac525: Merge "Fix module constructor order."
* commit '71c0366fc7f5436c6cffc2f43637f487dd734444':
  Fix module constructor order.
2012-08-13 11:13:18 -07:00
Nick Kralevich
34e5212961 am 19b10419: am 89fd9ecc: am 20b94c0c: Merge "linker: don\'t perform unnecessary mprotects"
* commit '19b104193067a42806dd291a20af29ebbd1c37f0':
  linker: don't perform unnecessary mprotects
2012-08-13 09:50:30 -07:00
Elliott Hughes
7261264c3a am 2a22a69e: am 877dc946: am 072a7e6c: Merge "MIPS support to the libc Makefile"
* commit '2a22a69e942cde007a1253e82be44548cfc018f8':
  MIPS support to the libc Makefile
2012-08-11 15:18:04 -07:00
Ben Cheng
daedcfc595 am 9eeaa4bd: am 7e3918eb: am 0bf5cf87: Merge "Set the dynamic field in the link map for the linker itself."
* commit '9eeaa4bd17b7131e20ad2e36f1372605e80a1332':
  Set the dynamic field in the link map for the linker itself.
2012-08-11 15:18:03 -07:00
Elliott Hughes
516b26f2bf am 0837c69a: am edf09bf9: am 316ee626: Merge "MIPS support to sigsuspend and sigwait routines"
* commit '0837c69a63439b0c1bf3fbf1b93f3003fc5c9a2d':
  MIPS support to sigsuspend and sigwait routines
2012-08-10 15:18:59 -07:00
Nick Kralevich
17f65bf468 am 73d99958: am fabeb736: am 38a02b4b: Merge "crtend*: Add GNU_STACK note"
* commit '73d99958bb8bb4cd8f8a7632aeb7e6afaa1e38f1':
  crtend*: Add GNU_STACK note
2012-08-10 14:48:44 -07:00
Elliott Hughes
623ed02e35 am d71ada63: am 535477ca: am 3ede900b: Merge "Revert "Revert "Switch to NetBSD\'s strxfrm(3)."""
* commit 'd71ada630d5390b7fb6838cb48cb79a1581df1b1':
  Revert "Revert "Switch to NetBSD's strxfrm(3).""
2012-08-10 14:14:29 -07:00
Elliott Hughes
be01adce36 am 5adc7fdc: am b54e5f2a: am a1822dce: Merge "Add unshare() syscall."
* commit '5adc7fdc2bc8e6e513c3dd9cd0c5cb7617d08d14':
  Add unshare() syscall.
2012-08-10 13:08:05 -07:00
Elliott Hughes
4fc5f6c366 am 5140b785: am f6922be2: am f91e2f72: Merge "Fix typo in SIGTTOU description."
* commit '5140b785a04827d34225241f99f17e49aadbf3bb':
  Fix typo in SIGTTOU description.
2012-08-10 12:52:23 -07:00
Elliott Hughes
7186a13284 am 55206504: am a618ea30: am 4ec9e343: Merge "Revert "Switch to NetBSD\'s strxfrm(3).""
* commit '552065048334cc893dadbc926701d08dc6c66fcc':
  Revert "Switch to NetBSD's strxfrm(3)."
2012-08-10 12:52:22 -07:00
Elliott Hughes
731ecf0a31 am 29b8fb3d: am 3e83da43: am 9ad1d6f5: Merge "Switch to NetBSD\'s strxfrm(3)."
* commit '29b8fb3d5ea06d05fcd36e298b464dce7dc06803':
  Switch to NetBSD's strxfrm(3).
2012-08-10 12:52:20 -07:00
Elliott Hughes
d18b181a25 am b6c1e34d: am dc6d5327: am 0836a7ff: Merge "Auto-generate a complete NOTICE file."
* commit 'b6c1e34dca58734c949b6c80d68c74104e1190e0':
  Auto-generate a complete NOTICE file.
2012-08-10 12:38:37 -07:00
Jeff Sharkey
9a477de2f5 am 6ccc2c8f: Merge "Add unshare() syscall." into jb-mr1-dev
* commit '6ccc2c8f435e42db3d844698f82ab6884798624a':
  Add unshare() syscall.
2012-08-10 11:31:20 -07:00
The Android Open Source Project
1551f18af0 Reconcile with jb-mr1-release - do not merge
Change-Id: Idae4db637990d9326dffba6d0679f520f7c69da0
2012-08-10 08:51:39 -07:00
Elliott Hughes
8e1e66da21 am 31ab6ac0: am 8cc8f7e0: am 709bb0f7: Merge "Remove ThirdPartyProject.prop."
* commit '31ab6ac05ebbf29f767a15525f6f7fa2054cc8e3':
  Remove ThirdPartyProject.prop.
2012-08-09 14:49:14 -07:00
Elliott Hughes
9550a7c57c am 3fc21198: am 531d348d: am a17b85d9: Merge "Remove the last .jam file."
* commit '3fc211983eb447dd4309c2f8d0e8c33ae685f02f':
  Remove the last .jam file.
2012-08-09 12:13:27 -07:00
Elliott Hughes
0ac6d23515 am b13ad93f: am 3820229b: am d504eee9: Merge "MIPS support to sys/ headers"
* commit 'b13ad93f4a452b1ec7a37e1426f664787b83836f':
  MIPS support to sys/ headers
2012-08-08 17:47:30 -07:00
Elliott Hughes
1afca3f698 am 73ac7d94: am d2040cb2: am f655ce7e: Merge "Fix x86 build."
* commit '73ac7d94b7cf627524be97da7704206b5ffd4fcf':
  Fix x86 build.
2012-08-08 17:47:29 -07:00
Elliott Hughes
b02f100fa4 am 366c0199: am f3ffb8fa: am 78129204: Merge "Clean up the linker a bit, remove prelinking support."
* commit '366c01992a73c40c1b6722bf9d51755c4a7ea83e':
  Clean up the linker a bit, remove prelinking support.
2012-08-08 15:32:19 -07:00
Elliott Hughes
96fd66018c am 10e2d222: am d463f6e9: am 34959e0b: Merge "Clean up libc/Android.mk a bit after the crtbrand changes."
* commit '10e2d222ce3db0c310c00cd1a5cffdd2223b5dfe':
  Clean up libc/Android.mk a bit after the crtbrand changes.
2012-08-08 14:43:55 -07:00
Jean-Baptiste Queru
d0a7bc2fd6 am affd1b42: am 9f3a8aaf: am 7e248be7: Merge "Add a .note.android.ident section to Android ELF binaries."
* commit 'affd1b4243f37d32881e190302bd418000465c10':
  Add a .note.android.ident section to Android ELF binaries.
2012-08-08 14:10:45 -07:00
The Android Open Source Project
d9c2de10d9 Reconcile with jb-mr1-release - do not merge
Change-Id: I753a2c0b3bfb42c526b954e58d8874daf31420ed
2012-08-07 11:02:30 -07:00
The Android Open Source Project
45193df53a Reconcile with jb-mr1-release - do not merge
Change-Id: If9b215d19d88c3f1793013adc8cb81c8c890faa0
2012-08-06 13:34:18 -07:00
The Android Open Source Project
1466b1aad2 Reconcile with jb-mr1-release - do not merge
Change-Id: I801dd8874ff1b1b61858cac3bf716906825b214d
2012-08-06 13:17:46 -07:00
Shih-wei Liao
25ef2bbf01 am 3b4c9db2: am df523880: am e2731d98: Merge "When compiling with clang, don\'t "fortify_source" the strlcpy and strlcat."
* commit '3b4c9db2561233fb81ac0c42b3976deb2e648df0':
  When compiling with clang, don't "fortify_source" the strlcpy and strlcat.
2012-08-06 11:10:41 -07:00
Shih-wei Liao
42bfbd1e61 am 6ff66601: am ce4a5cd5: am 8173d767: Merge "Revert "Fix the clang build: this compiler doesn\'t support the gnu_inline function attribute""
* commit '6ff66601a47d7b74544310e4a5535d572e23d68e':
  Revert "Fix the clang build: this compiler doesn't support the gnu_inline function attribute"
2012-08-06 10:20:48 -07:00
Shih-wei Liao
ed33635da7 am cddedade: am 924fd920: am 601a49d3: Merge "When compiling with clang, don\'t "fortify_source" the strlen."
* commit 'cddedade5b1138d5ddafe5b084923f21bba75526':
  When compiling with clang, don't "fortify_source" the strlen.
2012-08-06 10:20:47 -07:00
Elliott Hughes
a870ded21a am eaac1e5a: am 94ce1356: am 7c92b6ca: Merge "Remove an awkward #include that is no longer upstream."
* commit 'eaac1e5a1c62a9dc9edd3a858a367bbb16194272':
  Remove an awkward #include that is no longer upstream.
2012-08-06 08:08:05 -07:00
Elliott Hughes
8ccbc90a3b am 4bac8f68: am 7e81ee04: am 1c861728: Merge "Remove yet more SH4 cruft."
* commit '4bac8f689efd8f10850e60c52c206b20e4a90fd7':
  Remove yet more SH4 cruft.
2012-08-03 15:14:16 -07:00
Elliott Hughes
9f8c7daf40 am c9dbebe3: am f5385754: am aea5f00d: Merge "bionic: modify syscall to use 6 registers to pass parameter."
* commit 'c9dbebe344d2f6a4623a67d1c005bcb6137642c4':
  bionic: modify syscall to use 6 registers to pass parameter.
2012-08-03 14:33:20 -07:00
Elliott Hughes
58234e788b am 48955d24: am c6f15ecf: am 1510795f: Merge "Upgrade to tzdata2012e."
* commit '48955d24b9f3e8c15028a6dbb54e2e96fd41780a':
  Upgrade to tzdata2012e.
2012-08-03 13:39:38 -07:00
David Turner
c7813c0857 am d7552a31: am 2f2b7212: am 16d40217: Merge "Fix the clang build: this compiler doesn\'t support the gnu_inline function attribute"
* commit 'd7552a3101affbc531f3c33deca10c28417a864c':
  Fix the clang build: this compiler doesn't support the gnu_inline function attribute
2012-08-03 05:02:00 -07:00
Elliott Hughes
df7aa95031 am 9b6a4538: am 0ce92b96: am 1e304a3b: Merge "[MIPS] Support for TLS register"
* commit '9b6a45386555a11aa1c7f473b21c480b4a158ea7':
  [MIPS] Support for TLS register
2012-08-02 18:49:12 -07:00
Elliott Hughes
e5bd6efa08 am f94effda: am fd4685be: am 52f3ee96: Merge "MIPS support for libc."
* commit 'f94effdab27f2bbe3f079d454e71ca9e60166318':
  MIPS support for libc.
2012-08-02 16:37:07 -07:00
Elliott Hughes
79d834b5ab am 82dcfee5: am 19e30fc4: am a1c0f08d: Merge "Fix a ENOTUP/ENOTSUP typo."
* commit '82dcfee5fcd5243ff9df2aa7497e83dd567b6f95':
  Fix a ENOTUP/ENOTSUP typo.
2012-08-02 16:10:34 -07:00
Elliott Hughes
422067eb3c am c0719660: am 670766c5: am 994935f6: Merge "Error numbers are target specific."
* commit 'c07196605cc9bb55af2173832536e342e902d2c5':
  Error numbers are target specific.
2012-08-02 16:10:32 -07:00
Elliott Hughes
0b8dda0e42 am 673c092e: am 54830578: am f34ecbff: Merge "MIPS support to the linker"
* commit '673c092e0fc40afa291086d06ab39a6d22e7f894':
  MIPS support to the linker
2012-08-02 15:43:44 -07:00
Brian Muramatsu
fa22fd9f81 am 402ec708: Merge "Update msm_camera.h to version that supports instance handle based lookup" into jb-mr1-dev
* commit '402ec70899909f0b32c1ac304e3f26434424a3b3':
  Update msm_camera.h to version that supports instance handle based lookup
2012-08-02 15:22:34 -07:00
The Android Open Source Project
d7b3cc0c69 Reconcile with jb-mr1-release - do not merge
Change-Id: Ia1f59a486efa98614b8f97f9432e1040c90d2ec7
2012-08-02 11:26:02 -07:00
The Android Open Source Project
8f2f246618 Reconcile with jb-mr1-release - do not merge
Change-Id: I2295284f2cccfc72a25c2675762cc613faa337a4
2012-08-01 13:11:49 -07:00
Shih-wei Liao
cfc8b93c4e am 4f13bdd4: am 7565d5b1: am 0ca9d074: Merge "Had include/arm/fenv.h, but missed include/mips/fenv.h."
* commit '4f13bdd45c73194a49d3a5844746248c7dcd9432':
  Had include/arm/fenv.h, but missed include/mips/fenv.h.
2012-07-31 21:05:09 -07:00
Elliott Hughes
029cf34cfd am 81f1617a: am 8d2c5b24: am b910b6f8: Merge "Updated the cleaned header file mman.h for MIPS."
* commit '81f1617a689931388c0b223ec729297b3a2bc792':
  Updated the cleaned header file mman.h for MIPS.
2012-07-31 15:33:45 -07:00
The Android Open Source Project
6ac557918a Reconcile with jb-mr1-release - do not merge
Change-Id: Icba591905e72d5567b361d7e994cafc65e6f932a
2012-07-31 15:02:24 -07:00
Elliott Hughes
494e534b00 am f1997971: am 7645355e: am a513f70b: Merge "bionic: Stack pointer/signal race condition."
* commit 'f19979710a2f34e5a6ef5cc6f900c40690d65db4':
  bionic: Stack pointer/signal race condition.
2012-07-31 10:41:41 -07:00
Elliott Hughes
ad2e065de1 am b78aa539: am bf397b60: am 21372896: Merge "fix __cxa_finalize() implementation to be thread safe."
* commit 'b78aa5390492cfe288d0128b749b18d2c740635e':
  fix __cxa_finalize() implementation to be thread safe.
2012-07-31 10:41:40 -07:00
The Android Open Source Project
0531d199dc Reconcile with jb-mr1-release
Change-Id: Ib68b14addd9f82526c451c988ae2e307cd7add19
2012-07-30 15:03:20 -07:00
Henrik Smiding
3ebd31c0a1 Add optimized version of memcmp for Cortex A9
Adds new code to function memcmp, optimized for Cortex A9.

Copyright (C) ST-Ericsson SA 2010

Added neon optimization

Change-Id: I8864d277042db40778b33232feddd90a02a27fb0
Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson.
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
2012-05-19 14:04:59 +02:00
1427 changed files with 28595 additions and 30898 deletions

View File

@@ -8,68 +8,13 @@ libc_common_src_files := \
$(syscall_src) \
unistd/abort.c \
unistd/alarm.c \
unistd/brk.c \
unistd/daemon.c \
unistd/eventfd.c \
unistd/exec.c \
unistd/fcntl.c \
unistd/fnmatch.c \
unistd/fstatfs.c \
unistd/ftime.c \
unistd/ftok.c \
unistd/getdtablesize.c \
unistd/gethostname.c \
unistd/getopt_long.c \
unistd/getpgrp.c \
unistd/getpriority.c \
unistd/getpt.c \
unistd/initgroups.c \
unistd/isatty.c \
unistd/issetugid.c \
unistd/killpg.c \
unistd/lseek64.c \
unistd/mmap.c \
unistd/open.c \
unistd/openat.c \
unistd/opendir.c \
unistd/pathconf.c \
unistd/perror.c \
unistd/popen.c \
unistd/pread.c \
unistd/pselect.c \
unistd/ptsname.c \
unistd/ptsname_r.c \
unistd/pwrite.c \
unistd/raise.c \
unistd/reboot.c \
unistd/recv.c \
unistd/sbrk.c \
unistd/send.c \
unistd/setegid.c \
unistd/setuid.c \
unistd/seteuid.c \
unistd/setreuid.c \
unistd/setresuid.c \
unistd/setpgrp.c \
unistd/sigblock.c \
unistd/siginterrupt.c \
unistd/siglist.c \
unistd/signal.c \
unistd/signame.c \
unistd/sigsetmask.c \
unistd/sigsuspend.c \
unistd/sigwait.c \
unistd/sleep.c \
unistd/statfs.c \
unistd/syslog.c \
unistd/system.c \
unistd/tcgetpgrp.c \
unistd/tcsetpgrp.c \
unistd/time.c \
unistd/umount.c \
unistd/unlockpt.c \
unistd/usleep.c \
unistd/wait.c \
stdio/asprintf.c \
stdio/clrerr.c \
stdio/fclose.c \
@@ -84,7 +29,6 @@ libc_common_src_files := \
stdio/fileno.c \
stdio/findfp.c \
stdio/flags.c \
stdio/flockfile.c \
stdio/fopen.c \
stdio/fprintf.c \
stdio/fpurge.c \
@@ -123,7 +67,6 @@ libc_common_src_files := \
stdio/sscanf.c \
stdio/stdio.c \
stdio/tempnam.c \
stdio/tmpfile.c \
stdio/tmpnam.c \
stdio/ungetc.c \
stdio/vasprintf.c \
@@ -136,37 +79,13 @@ libc_common_src_files := \
stdio/vsscanf.c \
stdio/wbuf.c \
stdio/wsetup.c \
stdio/__fgets_chk.c \
stdio/__snprintf_chk.c \
stdio/__sprintf_chk.c \
stdio/__vsnprintf_chk.c \
stdio/__vsprintf_chk.c \
stdlib/_rand48.c \
stdlib/assert.c \
stdlib/atexit.c \
stdlib/atoi.c \
stdlib/atol.c \
stdlib/atoll.c \
stdlib/bsearch.c \
stdlib/ctype_.c \
stdlib/div.c \
stdlib/exit.c \
stdlib/getenv.c \
stdlib/jrand48.c \
stdlib/ldiv.c \
stdlib/lldiv.c \
stdlib/locale.c \
stdlib/lrand48.c \
stdlib/mrand48.c \
stdlib/nrand48.c \
stdlib/putenv.c \
stdlib/qsort.c \
stdlib/seed48.c \
stdlib/setenv.c \
stdlib/setjmperr.c \
stdlib/srand48.c \
stdlib/strntoimax.c \
stdlib/strntoumax.c \
stdlib/strtod.c \
stdlib/strtoimax.c \
stdlib/strtol.c \
@@ -176,50 +95,28 @@ libc_common_src_files := \
stdlib/strtoumax.c \
stdlib/tolower_.c \
stdlib/toupper_.c \
stdlib/wchar.c \
string/index.c \
string/memccpy.c \
string/memchr.c \
string/memmem.c \
string/memrchr.c \
string/memswap.c \
string/strcasecmp.c \
string/strcasestr.c \
string/strcat.c \
string/strchr.c \
string/strcoll.c \
string/strcspn.c \
string/strdup.c \
string/strlcat.c \
string/strlcpy.c \
string/strncat.c \
string/strncpy.c \
string/strndup.c \
string/strnlen.c \
string/strpbrk.c \
string/strrchr.c \
string/strsep.c \
string/strspn.c \
string/strstr.c \
string/strtok.c \
string/strtotimeval.c \
string/__memcpy_chk.c \
string/__memmove_chk.c \
string/__memset_chk.c \
string/__strcat_chk.c \
string/__strcpy_chk.c \
string/__strlcat_chk.c \
string/__strlcpy_chk.c \
string/__strlen_chk.c \
string/__strncat_chk.c \
string/__strncpy_chk.c \
wchar/wcpcpy.c \
wchar/wcpncpy.c \
wchar/wcscasecmp.c \
wchar/wcscat.c \
wchar/wcschr.c \
wchar/wcscmp.c \
wchar/wcscoll.c \
wchar/wcscpy.c \
wchar/wcscspn.c \
wchar/wcsdup.c \
@@ -243,64 +140,103 @@ libc_common_src_files := \
wchar/wmemcpy.c \
wchar/wmemmove.c \
wchar/wmemset.c \
inet/bindresvport.c \
inet/inet_addr.c \
inet/inet_aton.c \
inet/inet_ntoa.c \
inet/inet_ntop.c \
inet/inet_pton.c \
inet/ether_aton.c \
inet/ether_ntoa.c \
tzcode/asctime.c \
tzcode/difftime.c \
tzcode/localtime.c \
tzcode/strftime.c \
tzcode/strptime.c \
bionic/__set_errno.c \
bionic/bionic_clone.c \
bionic/cpuacct.c \
bionic/arc4random.c \
bionic/basename.c \
bionic/basename_r.c \
bionic/atoi.c \
bionic/atol.c \
bionic/atoll.c \
bionic/bindresvport.c \
bionic/bionic_clone.c \
bionic/clearenv.c \
bionic/dirname.c \
bionic/dirname_r.c \
bionic/drand48.c \
bionic/erand48.c \
bionic/cpuacct.c \
bionic/daemon.c \
bionic/err.c \
bionic/ether_aton.c \
bionic/ether_ntoa.c \
bionic/fcntl.c \
bionic/fdprintf.c \
bionic/flockfile.c \
bionic/fork.c \
bionic/fstatfs.c \
bionic/ftime.c \
bionic/ftok.c \
bionic/fts.c \
bionic/getcwd.cpp \
bionic/if_nametoindex.c \
bionic/getdtablesize.c \
bionic/gethostname.c \
bionic/getpgrp.c \
bionic/getpriority.c \
bionic/getpt.c \
bionic/if_indextoname.c \
bionic/if_nametoindex.c \
bionic/initgroups.c \
bionic/ioctl.c \
bionic/isatty.c \
bionic/issetugid.c \
bionic/ldexp.c \
bionic/libc_init_common.c \
bionic/logd_write.c \
bionic/lseek64.c \
bionic/md5.c \
bionic/memchr.c \
bionic/memmem.c \
bionic/memmove_words.c \
bionic/memrchr.c \
bionic/memswap.c \
bionic/mmap.c \
bionic/openat.c \
bionic/open.c \
bionic/pathconf.c \
bionic/perror.c \
bionic/pread.c \
bionic/pselect.c \
bionic/ptsname.c \
bionic/ptsname_r.c \
bionic/pututline.c \
bionic/pwrite.c \
bionic/realpath.c \
bionic/sched_getaffinity.c \
bionic/sched_getcpu.c \
bionic/reboot.c \
bionic/recv.c \
bionic/sched_cpualloc.c \
bionic/sched_cpucount.c \
bionic/sched_getaffinity.c \
bionic/sched_getcpu.c \
bionic/semaphore.c \
bionic/sha1.c \
bionic/strerror.cpp \
bionic/strerror_r.cpp \
bionic/strsignal.cpp \
bionic/stubs.cpp \
bionic/send.c \
bionic/setegid.c \
bionic/seteuid.c \
bionic/setpgrp.c \
bionic/setresuid.c \
bionic/setreuid.c \
bionic/setuid.c \
bionic/sigblock.c \
bionic/siginterrupt.c \
bionic/siglist.c \
bionic/signal.c \
bionic/signame.c \
bionic/sigsetmask.c \
bionic/sigsuspend.c \
bionic/sleep.c \
bionic/statfs.c \
bionic/strndup.c \
bionic/strnlen.c \
bionic/strntoimax.c \
bionic/strntoumax.c \
bionic/strtotimeval.c \
bionic/system_properties.c \
bionic/tdestroy.c \
bionic/time64.c \
bionic/tcgetpgrp.c \
bionic/tcsetpgrp.c \
bionic/thread_atexit.c \
bionic/utime.c \
bionic/time64.c \
bionic/umount.c \
bionic/unlockpt.c \
bionic/usleep.c \
bionic/utmp.c \
bionic/wait.c \
bionic/wcscoll.c \
netbsd/gethnamaddr.c \
netbsd/isc/ev_timers.c \
netbsd/isc/ev_streams.c \
netbsd/inet/nsap_addr.c \
netbsd/resolv/__dn_comp.c \
netbsd/resolv/__res_close.c \
@@ -329,20 +265,87 @@ libc_common_src_files := \
netbsd/nameser/ns_print.c \
netbsd/nameser/ns_samedomain.c \
libc_bionic_src_files := \
bionic/assert.cpp \
bionic/brk.cpp \
bionic/debug_format.cpp \
bionic/dirent.cpp \
bionic/eventfd.cpp \
bionic/__fgets_chk.cpp \
bionic/getauxval.cpp \
bionic/getcwd.cpp \
bionic/libc_init_common.cpp \
bionic/libgen.cpp \
bionic/__memcpy_chk.cpp \
bionic/__memmove_chk.cpp \
bionic/__memset_chk.cpp \
bionic/pthread_sigmask.cpp \
bionic/raise.cpp \
bionic/sbrk.cpp \
bionic/__set_errno.cpp \
bionic/setlocale.cpp \
bionic/signalfd.cpp \
bionic/sigwait.cpp \
bionic/__strcat_chk.cpp \
bionic/__strcpy_chk.cpp \
bionic/strerror.cpp \
bionic/strerror_r.cpp \
bionic/__strlcat_chk.cpp \
bionic/__strlcpy_chk.cpp \
bionic/__strlen_chk.cpp \
bionic/__strncat_chk.cpp \
bionic/__strncpy_chk.cpp \
bionic/strsignal.cpp \
bionic/stubs.cpp \
bionic/tdestroy.cpp \
bionic/tmpfile.cpp \
bionic/__umask_chk.cpp \
bionic/__vsnprintf_chk.cpp \
bionic/__vsprintf_chk.cpp \
bionic/wchar.cpp \
libc_upstream_netbsd_src_files := \
upstream-netbsd/libc/compat-43/creat.c \
upstream-netbsd/libc/gen/ftw.c \
upstream-netbsd/libc/gen/nftw.c \
upstream-netbsd/libc/gen/nice.c \
upstream-netbsd/libc/gen/psignal.c \
upstream-netbsd/libc/regex/regcomp.c \
upstream-netbsd/libc/regex/regerror.c \
upstream-netbsd/libc/regex/regexec.c \
upstream-netbsd/libc/regex/regfree.c \
upstream-netbsd/libc/stdlib/tdelete.c \
upstream-netbsd/libc/stdlib/tfind.c \
upstream-netbsd/libc/stdlib/tsearch.c \
upstream-netbsd/libc/string/strxfrm.c \
upstream-netbsd/common/lib/libc/hash/sha1/sha1.c \
upstream-netbsd/common/lib/libc/inet/inet_addr.c \
upstream-netbsd/libc/compat-43/creat.c \
upstream-netbsd/libc/gen/ftw.c \
upstream-netbsd/libc/gen/nftw.c \
upstream-netbsd/libc/gen/nice.c \
upstream-netbsd/libc/gen/psignal.c \
upstream-netbsd/libc/gen/setjmperr.c \
upstream-netbsd/libc/gen/utime.c \
upstream-netbsd/libc/inet/inet_ntoa.c \
upstream-netbsd/libc/inet/inet_ntop.c \
upstream-netbsd/libc/inet/inet_pton.c \
upstream-netbsd/libc/isc/ev_streams.c \
upstream-netbsd/libc/isc/ev_timers.c \
upstream-netbsd/libc/regex/regcomp.c \
upstream-netbsd/libc/regex/regerror.c \
upstream-netbsd/libc/regex/regexec.c \
upstream-netbsd/libc/regex/regfree.c \
upstream-netbsd/libc/stdio/getdelim.c \
upstream-netbsd/libc/stdio/getline.c \
upstream-netbsd/libc/stdlib/bsearch.c \
upstream-netbsd/libc/stdlib/div.c \
upstream-netbsd/libc/stdlib/drand48.c \
upstream-netbsd/libc/stdlib/erand48.c \
upstream-netbsd/libc/stdlib/jrand48.c \
upstream-netbsd/libc/stdlib/ldiv.c \
upstream-netbsd/libc/stdlib/lldiv.c \
upstream-netbsd/libc/stdlib/lrand48.c \
upstream-netbsd/libc/stdlib/mrand48.c \
upstream-netbsd/libc/stdlib/nrand48.c \
upstream-netbsd/libc/stdlib/_rand48.c \
upstream-netbsd/libc/stdlib/seed48.c \
upstream-netbsd/libc/stdlib/srand48.c \
upstream-netbsd/libc/stdlib/tdelete.c \
upstream-netbsd/libc/stdlib/tfind.c \
upstream-netbsd/libc/stdlib/tsearch.c \
upstream-netbsd/libc/string/memccpy.c \
upstream-netbsd/libc/string/strcasestr.c \
upstream-netbsd/libc/string/strcoll.c \
upstream-netbsd/libc/string/strxfrm.c \
upstream-netbsd/libc/unistd/killpg.c \
# The following files are common, but must be compiled
# with different C flags when building a static C library.
@@ -358,40 +361,40 @@ libc_upstream_netbsd_src_files := \
# below.
#
libc_static_common_src_files := \
unistd/sysconf.c \
bionic/__errno.c \
bionic/sysconf.cpp \
# Architecture specific source files go here
# =========================================================
ifeq ($(TARGET_ARCH),arm)
libc_common_src_files += \
arch-arm/bionic/__get_sp.S \
arch-arm/bionic/_exit_with_stack_teardown.S \
arch-arm/bionic/_setjmp.S \
arch-arm/bionic/abort_arm.S \
arch-arm/bionic/atomics_arm.c \
arch-arm/bionic/clone.S \
arch-arm/bionic/eabi.c \
arch-arm/bionic/_exit_with_stack_teardown.S \
arch-arm/bionic/ffs.S \
arch-arm/bionic/futex_arm.S \
arch-arm/bionic/__get_sp.S \
arch-arm/bionic/kill.S \
arch-arm/bionic/libgcc_compat.c \
arch-arm/bionic/tkill.S \
arch-arm/bionic/tgkill.S \
arch-arm/bionic/memcmp.S \
arch-arm/bionic/memcmp16.S \
arch-arm/bionic/memcmp.S \
arch-arm/bionic/memcpy.S \
arch-arm/bionic/memset.S \
arch-arm/bionic/_setjmp.S \
arch-arm/bionic/setjmp.S \
arch-arm/bionic/sigsetjmp.S \
arch-arm/bionic/strlen.c.arm \
arch-arm/bionic/strcpy.S \
arch-arm/bionic/strcmp.S \
arch-arm/bionic/strcpy.S \
arch-arm/bionic/strlen.c.arm \
arch-arm/bionic/syscall.S \
string/memmove.c.arm \
arch-arm/bionic/tgkill.S \
arch-arm/bionic/tkill.S \
bionic/memmove.c.arm \
bionic/socketcalls.c \
string/bcopy.c \
string/strncmp.c \
unistd/socketcalls.c
# These files need to be arm so that gdbserver
# can set breakpoints in them without messing
@@ -403,7 +406,8 @@ libc_common_src_files += \
bionic/ptrace.c.arm
libc_static_common_src_files += \
bionic/pthread.c.arm \
bionic/pthread.c.arm \
bionic/pthread_key.cpp.arm \
# these are used by the static and dynamic versions of the libc
# respectively
@@ -443,7 +447,8 @@ libc_common_src_files += \
bionic/ptrace.c
libc_static_common_src_files += \
bionic/pthread.c \
bionic/pthread.c \
bionic/pthread_key.cpp \
libc_arch_static_src_files := \
bionic/dl_iterate_phdr_static.c
@@ -476,8 +481,8 @@ libc_common_src_files += \
arch-mips/string/mips_strlen.c
libc_common_src_files += \
bionic/memcmp.c \
string/bcopy.c \
string/memcmp.c \
string/strcmp.c \
string/strcpy.c \
string/strncmp.c
@@ -489,7 +494,8 @@ libc_common_src_files += \
bionic/ptrace.c
libc_static_common_src_files += \
bionic/pthread.c
bionic/pthread.c \
bionic/pthread_key.cpp \
libc_arch_static_src_files := \
bionic/dl_iterate_phdr_static.c
@@ -508,7 +514,6 @@ libc_common_cflags := \
-I$(LOCAL_PATH)/private \
-DPOSIX_MISTAKE \
-DLOG_ON_HEAP_ERROR \
-std=gnu99 \
-Wall -Wextra
# these macro definitions are required to implement the
@@ -625,7 +630,7 @@ ifeq ($(TARGET_ARCH),mips)
libc_crt_target_so_cflags := -fPIC
endif
ifeq ($(TARGET_ARCH),x86)
libc_crtbegin_extension := S
libc_crtbegin_extension := c
libc_crt_target_so_cflags := -fPIC
endif
ifeq ($(libc_crtbegin_extension),)
@@ -739,7 +744,7 @@ WITH_MALLOC_CHECK_LIBC_A := $(strip $(WITH_MALLOC_CHECK_LIBC_A))
include $(CLEAR_VARS)
LOCAL_SRC_FILES := bionic/ssp.c
LOCAL_SRC_FILES := bionic/ssp.cpp
LOCAL_CFLAGS := $(libc_common_cflags) -fno-stack-protector
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libbionic_ssp
@@ -762,6 +767,7 @@ LOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files)
LOCAL_CFLAGS := \
$(libc_common_cflags) \
-I$(LOCAL_PATH)/upstream-netbsd \
-I$(LOCAL_PATH)/upstream-netbsd/libc/include \
-include upstream-netbsd/netbsd-compat.h
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_netbsd
@@ -771,6 +777,22 @@ LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY)
# ========================================================
# libc_bionic.a - home-grown C library code
# ========================================================
#
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_bionic_src_files)
LOCAL_CFLAGS := $(libc_common_cflags) -Werror
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_bionic
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY)
# ========================================================
# libc_common.a
# ========================================================
@@ -778,11 +800,13 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(libc_common_src_files)
LOCAL_CFLAGS := $(libc_common_cflags)
LOCAL_CFLAGS := $(libc_common_cflags) \
-std=gnu99 \
-I$(LOCAL_PATH)/upstream-netbsd/libc/include # for netbsd private headers
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc_common
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_WHOLE_STATIC_LIBRARIES := libbionic_ssp libc_netbsd
LOCAL_WHOLE_STATIC_LIBRARIES := libbionic_ssp libc_bionic libc_netbsd
LOCAL_SYSTEM_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY)
@@ -803,11 +827,12 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
$(libc_arch_static_src_files) \
$(libc_static_common_src_files) \
bionic/libc_init_static.c
bionic/libc_init_static.cpp
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_CFLAGS := $(libc_common_cflags) \
-DLIBC_STATIC
-DLIBC_STATIC \
-std=gnu99
LOCAL_MODULE := libc_nomalloc
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
@@ -827,10 +852,11 @@ LOCAL_SRC_FILES := \
$(libc_static_common_src_files) \
bionic/dlmalloc.c \
bionic/malloc_debug_common.cpp \
bionic/libc_init_static.c
bionic/libc_init_static.cpp
LOCAL_CFLAGS := $(libc_common_cflags) \
-DLIBC_STATIC
-DLIBC_STATIC \
-std=gnu99
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_MODULE := libc
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
@@ -851,7 +877,7 @@ include $(CLEAR_VARS)
# Since this code is experimental it is disabled by default.
# see libc/bionic/pthread_debug.c for details
LOCAL_CFLAGS := $(libc_common_cflags) -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=0
LOCAL_CFLAGS := $(libc_common_cflags) -std=gnu99 -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=0
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_SRC_FILES := \
@@ -859,8 +885,8 @@ LOCAL_SRC_FILES := \
$(libc_static_common_src_files) \
bionic/dlmalloc.c \
bionic/malloc_debug_common.cpp \
bionic/pthread_debug.c \
bionic/libc_init_dynamic.c
bionic/pthread_debug.cpp \
bionic/libc_init_dynamic.cpp
ifeq ($(TARGET_ARCH),arm)
LOCAL_NO_CRT := true
@@ -875,6 +901,7 @@ endif
LOCAL_MODULE:= libc
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_REQUIRED_MODULES := tzdata
# WARNING: The only library libc.so should depend on is libdl.so! If you add other libraries,
# make sure to add -Wl,--exclude-libs=libgcc.a to the LOCAL_LDFLAGS for those libraries. This
@@ -911,10 +938,10 @@ LOCAL_CFLAGS := \
LOCAL_C_INCLUDES := $(libc_common_c_includes)
LOCAL_SRC_FILES := \
bionic/debug_mapinfo.cpp \
bionic/debug_stacktrace.cpp \
bionic/malloc_debug_leak.cpp \
bionic/malloc_debug_check.cpp \
bionic/malloc_debug_check_mapinfo.cpp \
bionic/malloc_debug_stacktrace.cpp
LOCAL_MODULE:= libc_malloc_debug_leak
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk

View File

@@ -37,6 +37,40 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 1995-1999, 2001, 2003 Internet Software Consortium.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 1997-2001 Internet Software Consortium.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (C) 2006 The Android Open Source Project
All rights reserved.
@@ -65,22 +99,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------
Copyright (C) 2008 The Android Open Source Project
All rights reserved.
@@ -328,6 +346,50 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (C) 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------
Copyright (C) 2013 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.
-------------------------------------------------------------------
Copyright (c) 1980, 1983, 1988, 1993
The Regents of the University of California. All rights reserved.
@@ -438,6 +500,40 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1982, 1986, 1993
The Regents of the University of California. All rights reserved.
(c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. 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.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
-------------------------------------------------------------------
Copyright (c) 1983, 1987, 1989
The Regents of the University of California. All rights reserved.
@@ -569,7 +665,11 @@ are met:
2. 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.
3. Neither the name of the University nor the names of its contributors
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by the University of
California, Berkeley and its contributors.
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
@@ -585,24 +685,6 @@ 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.
Portions Copyright (c) 1993 by Digital Equipment Corporation.
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies, and that
the name of Digital Equipment Corporation not be used in advertising or
publicity pertaining to distribution of the document or software without
specific, written prior permission.
THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 1983, 1993
@@ -1406,38 +1488,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1990 Regents of the University of California.
All rights reserved.
This code is derived from software contributed to Berkeley by
Chris Torek.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. 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.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
-------------------------------------------------------------------
Copyright (c) 1990 The Regents of the University of California.
All rights reserved.
@@ -1591,35 +1641,6 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 1990, 1993
The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. 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.
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
-------------------------------------------------------------------
Copyright (c) 1990, 1993
The Regents of the University of California. All rights reserved.
@@ -2376,6 +2397,35 @@ to anyone/anything when using this software.
-------------------------------------------------------------------
Copyright (c) 1994 The NetBSD Foundation, Inc.
All rights reserved.
This code is derived from software contributed to The NetBSD Foundation
by Christos Zoulas.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
-------------------------------------------------------------------
Copyright (c) 1995 - 2001 Kungliga Tekniska Högskolan
(Royal Institute of Technology, Stockholm, Sweden).
All rights reserved.
@@ -2463,32 +2513,6 @@ rights to redistribute these changes.
-------------------------------------------------------------------
Copyright (c) 1995, 1996 Erik Theisen. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. 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.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
-------------------------------------------------------------------
Copyright (c) 1996 by Internet Software Consortium.
Permission to use, copy, modify, and distribute this software for any
@@ -3596,23 +3620,6 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
Copyright (c) 1997-1999 by Internet Software Consortium.
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
Copyright (c) 1999 by Internet Software Consortium.
@@ -3673,6 +3680,23 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2005 by Internet Systems Consortium, Inc. ("ISC")
Copyright (c) 1995-1999 by Internet Software Consortium
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------
Copyright (c) 2007-2008 Michael G Schwern
This software originally derived from Paul Sheer's pivotal_gmtime_r.c.
@@ -3833,6 +3857,33 @@ SUCH DAMAGE.
-------------------------------------------------------------------
Copyright (c) 2009 The NetBSD Foundation, Inc.
This code is derived from software contributed to The NetBSD Foundation
by Roy Marples.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. 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 AUTHOR ``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 AUTHOR 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.
-------------------------------------------------------------------
Copyright (c) 2010 MIPS Technologies, Inc.
All rights reserved.

View File

@@ -62,7 +62,7 @@ int getgroups:getgroups32(int, gid_t *) 205,205,-1
int getgroups:getgroups(int, gid_t *) -1,-1,80
pid_t getpgid(pid_t) 132
pid_t getppid() 64
pid_t getsid(pid_t) 147
pid_t getsid(pid_t) 147,147,151
pid_t setsid() 66
int setgid:setgid32(gid_t) 214,214,-1
int setgid:setgid(gid_t) -1,-1,46
@@ -225,6 +225,7 @@ int __rt_sigaction:rt_sigaction (int sig, const struct sigaction *act, struc
int __rt_sigprocmask:rt_sigprocmask (int how, const sigset_t *set, sigset_t *oset, size_t sigsetsize) 175,175,195
int __rt_sigtimedwait:rt_sigtimedwait(const sigset_t *set, struct siginfo_t *info, struct timespec_t *timeout, size_t sigset_size) 177,177,197
int sigpending(sigset_t *) 73
int signalfd4(int fd, const sigset_t *mask, size_t sizemask, int flags) 355,327,324
# sockets
int socket(int, int, int) 281,-1,183
@@ -288,7 +289,7 @@ int delete_module(const char*, unsigned int) 129
int klogctl:syslog(int, char *, int) 103
int sysinfo(struct sysinfo *) 116
int personality(unsigned long) 136
long perf_event_open(struct perf_event_attr *attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags) 364
long perf_event_open(struct perf_event_attr *attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags) 364,336,333
# futex
int futex(void *, int, int, void *, void *, int) 240,240,238

View File

@@ -25,10 +25,10 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
.global __get_sp
.type __get_sp, %function
__get_sp:
mov r0, sp
bx lr
#include <machine/asm.h>
ENTRY(__get_sp)
mov r0, sp
bx lr
END(__get_sp)

View File

@@ -25,27 +25,20 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <asm/unistd.h>
#include <machine/asm.h>
#include <sys/linux-syscalls.h>
@ void _exit_with_stack_teardown(void * stackBase, int stackSize, int retCode)
// void _exit_with_stack_teardown(void* stackBase, int stackSize, int retCode)
ENTRY(_exit_with_stack_teardown)
#if __ARM_EABI__
mov lr, r2
ldr r7, =__NR_munmap
swi #0 @ the stack is destroyed by this call
swi #0 // the stack is destroyed by this call
mov r0, lr
ldr r7, =__NR_exit
swi #0
#else
mov lr, r2
swi # __NR_munmap @ the stack is destroyed by this call
mov r0, lr
swi # __NR_exit
#endif
@ exit() should never return, cause a crash if it does
mov r0, #0
ldr r0, [r0]
// exit() should never return, cause a crash if it does
mov r0, #0
ldr r0, [r0]
END(_exit_with_stack_teardown)

View File

@@ -50,10 +50,9 @@ atexit(void (*func)(void))
* calling library may have been dlclose()'d, causing the program to
* crash.
*/
static char const warning[] =
"WARNING: generic atexit() called from legacy shared library\n";
static char const warning[] = "WARNING: generic atexit() called from legacy shared library\n";
__libc_android_log_print(ANDROID_LOG_WARN, "libc", warning);
__libc_android_log_write(ANDROID_LOG_WARN, "libc", warning);
fprintf(stderr, warning);
return (__cxa_atexit((void (*)(void *))func, NULL, NULL));

View File

@@ -25,47 +25,39 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/linux-syscalls.h>
#include <machine/asm.h>
#include <machine/asm.h>
#include <sys/linux-syscalls.h>
// int __pthread_clone(int (*fn)(void*), void* child_stack, int flags, void* arg);
ENTRY(__pthread_clone)
@ insert the args onto the new stack
# Copy the args onto the new stack.
stmdb r1!, {r0, r3}
@ do the system call
@ get flags
# The sys_clone system call only takes two arguments: 'flags' and 'child_stack'.
# 'child_stack' is already in r1, but we need to move 'flags' into position.
mov r0, r2
@ new sp is already in r1
#if __ARM_EABI__
stmfd sp!, {r4, r7}
# System call.
ldr r7, =__NR_clone
swi #0
#else
swi #__NR_clone
#endif
movs r0, r0
#if __ARM_EABI__
ldmnefd sp!, {r4, r7}
#endif
blt __error
beq 1f
# In parent, reload saved registers then either exit or set errno.
ldmfd sp!, {r4, r7}
bxne lr
b __set_syscall_errno
@ pick the function arg and call address off the stack and jump
@ to the C __thread_entry function which does some setup and then
@ calls the thread's start function
1: # The child.
# pick the function arg and call address off the stack and jump
# to the C __thread_entry function which does some setup and then
# calls the thread's start function
pop {r0, r1}
mov r2, sp @ __thread_entry needs the TLS pointer
# __thread_entry needs the TLS pointer
mov r2, sp
b __thread_entry
__error:
mov r0, #-1
bx lr
END(__pthread_clone)
@@ -76,8 +68,8 @@ END(__pthread_clone)
# pid_t *pid, void *tls, pid_t *ctid,
# int (*fn)(void *), void* arg );
#
# NOTE: This is not the same signature than the GLibc
# __clone function here !! Placing 'fn' and 'arg'
# NOTE: This is not the same signature as the glibc
# __clone function. Placing 'fn' and 'arg'
# at the end of the parameter list makes the
# implementation much simpler.
#
@@ -96,20 +88,18 @@ ENTRY(__bionic_clone)
str r5, [r1, #-4]
str r6, [r1, #-8]
# system call
# System call
ldr r7, =__NR_clone
swi #0
movs r0, r0
beq 1f
# in parent, reload saved registers
# then either exit or error
#
# In the parent, reload saved registers then either exit or set errno.
ldmfd sp!, {r4, r5, r6, r7}
bxne lr
b __set_syscall_errno
1: # in the child - pick arguments
1: # The child.
ldr r0, [sp, #-4]
ldr r1, [sp, #-8]
b __bionic_clone_entry

View File

@@ -26,21 +26,9 @@
* SUCH DAMAGE.
*/
typedef struct
{
void (**preinit_array)(void);
void (**init_array)(void);
void (**fini_array)(void);
} structors_array_t;
extern int main(int argc, char **argv, char **env);
extern void __libc_init(
unsigned int *elfdata,
void (*onexit)(void),
int (*slingshot)(int, char**, char**),
structors_array_t const * const structors
);
#include "../../bionic/libc_init_common.h"
#include <stddef.h>
#include <stdint.h>
__attribute__ ((section (".preinit_array")))
void (*__PREINIT_ARRAY__)(void) = (void (*)(void)) -1;
@@ -51,17 +39,14 @@ void (*__INIT_ARRAY__)(void) = (void (*)(void)) -1;
__attribute__ ((section (".fini_array")))
void (*__FINI_ARRAY__)(void) = (void (*)(void)) -1;
__attribute__((visibility("hidden")))
void _start() {
__LIBC_HIDDEN__ void _start() {
structors_array_t array;
void *elfdata;
array.preinit_array = &__PREINIT_ARRAY__;
array.init_array = &__INIT_ARRAY__;
array.fini_array = &__FINI_ARRAY__;
array.init_array = &__INIT_ARRAY__;
array.fini_array = &__FINI_ARRAY__;
elfdata = __builtin_frame_address(0) + sizeof(void *);
__libc_init(elfdata, (void *) 0, &main, &array);
void* raw_args = (void*) ((uintptr_t) __builtin_frame_address(0) + sizeof(void*));
__libc_init(raw_args, NULL, &main, &array);
}
#include "__dso_handle.h"

View File

@@ -25,32 +25,14 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/linux-syscalls.h>
#include <machine/asm.h>
#include <machine/cpu-features.h>
#define FUTEX_WAIT 0
#define FUTEX_WAKE 1
/* __futex_wait(*ftx, val, *timespec) */
/* __futex_wake(*ftx, counter) */
/* __futex_syscall3(*ftx, op, val) */
/* __futex_syscall4(*ftx, op, val, *timespec) */
.global __futex_wait
.type __futex_wait, %function
.global __futex_wake
.type __futex_wake, %function
.global __futex_syscall3
.type __futex_syscall3, %function
.global __futex_syscall4
.type __futex_syscall4, %function
#if __ARM_EABI__
// __futex_syscall3(*ftx, op, val)
ENTRY(__futex_syscall3)
stmdb sp!, {r4, r7}
.save {r4, r7}
@@ -60,53 +42,32 @@ ENTRY(__futex_syscall3)
bx lr
END(__futex_syscall3)
ENTRY(__futex_wait)
stmdb sp!, {r4, r7}
.save {r4, r7}
mov r3, r2
mov r2, r1
mov r1, #FUTEX_WAIT
ldr r7, =__NR_futex
swi #0
ldmia sp!, {r4, r7}
bx lr
END(__futex_wait)
ENTRY(__futex_wake)
.save {r4, r7}
stmdb sp!, {r4, r7}
mov r2, r1
mov r1, #FUTEX_WAKE
ldr r7, =__NR_futex
swi #0
ldmia sp!, {r4, r7}
bx lr
END(__futex_wake)
#else
ENTRY(__futex_syscall3)
swi #__NR_futex
bx lr
END(__futex_syscall3)
ENTRY(__futex_wait)
mov r3, r2
mov r2, r1
mov r1, #FUTEX_WAIT
swi #__NR_futex
bx lr
END(__futex_wait)
ENTRY(__futex_wake)
mov r2, r1
mov r1, #FUTEX_WAKE
swi #__NR_futex
bx lr
END(__futex_wake)
#endif
// __futex_syscall4(*ftx, op, val, *timespec)
ENTRY(__futex_syscall4)
b __futex_syscall3
END(__futex_syscall4)
// __futex_wait(*ftx, val, *timespec)
ENTRY(__futex_wait)
stmdb sp!, {r4, r7}
.save {r4, r7}
mov r3, r2
mov r2, r1
mov r1, #FUTEX_WAIT
ldr r7, =__NR_futex
swi #0
ldmia sp!, {r4, r7}
bx lr
END(__futex_wait)
// __futex_wake(*ftx, counter)
ENTRY(__futex_wake)
.save {r4, r7}
stmdb sp!, {r4, r7}
mov r2, r1
mov r1, #FUTEX_WAKE
ldr r7, =__NR_futex
swi #0
ldmia sp!, {r4, r7}
bx lr
END(__futex_wake)

View File

@@ -110,6 +110,7 @@
XX(__aeabi_fsub) \
XX(__aeabi_i2d) \
XX(__aeabi_i2f) \
XX(__aeabi_idiv) \
XX(__aeabi_l2d) \
XX(__aeabi_l2f) \
XX(__aeabi_lmul) \

View File

@@ -29,43 +29,92 @@
#include <machine/cpu-features.h>
#include <machine/asm.h>
#ifdef HAVE_32_BYTE_CACHE_LINE
#define CACHE_LINE_SIZE 32
#else
#define CACHE_LINE_SIZE 64
#endif
/*
* Optimized memcmp() for ARM9.
* This would not be optimal on XScale or ARM11, where more prefetching
* and use of PLD will be needed.
* The 2 major optimzations here are
* (1) The main loop compares 16 bytes at a time
* (2) The loads are scheduled in a way they won't stall
* Optimized memcmp() for Cortex-A9.
*/
ENTRY(memcmp)
PLD (r0, #0)
PLD (r1, #0)
pld [r0, #(CACHE_LINE_SIZE * 0)]
pld [r0, #(CACHE_LINE_SIZE * 1)]
/* take of the case where length is 0 or the buffers are the same */
cmp r0, r1
cmpne r2, #0
moveq r0, #0
bxeq lr
pld [r1, #(CACHE_LINE_SIZE * 0)]
pld [r1, #(CACHE_LINE_SIZE * 1)]
/* make sure we have at least 8+4 bytes, this simplify things below
* and avoid some overhead for small blocks
*/
cmp r2, #(8+4)
bmi 10f
/*
* Neon optimization
* Comparing 32 bytes at a time
*/
#if defined(__ARM_NEON__) && defined(NEON_UNALIGNED_ACCESS)
subs r2, r2, #32
blo 3f
/* preload all the cache lines we need. */
pld [r0, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 2)]
1: /* The main loop compares 32 bytes at a time */
vld1.8 {d0 - d3}, [r0]!
pld [r0, #(CACHE_LINE_SIZE * 2)]
vld1.8 {d4 - d7}, [r1]!
pld [r1, #(CACHE_LINE_SIZE * 2)]
/* Start subtracting the values and merge results */
vsub.i8 q0, q2
vsub.i8 q1, q3
vorr q2, q0, q1
vorr d4, d5
vmov r3, ip, d4
/* Check if there are any differences among the 32 bytes */
orrs r3, ip
bne 2f
subs r2, r2, #32
bhs 1b
b 3f
2:
/* Check if the difference was in the first or last 16 bytes */
sub r0, #32
vorr d0, d1
sub r1, #32
vmov r3, ip, d0
orrs r3, ip
/* if the first 16 bytes are equal, we only have to rewind 16 bytes */
ittt eq
subeq r2, #16
addeq r0, #16
addeq r1, #16
3: /* fix-up the remaining count */
add r2, r2, #32
cmp r2, #(8+4)
bmi 10f
#endif
.save {r4, lr}
/* save registers */
stmfd sp!, {r4, lr}
PLD (r0, #32)
PLD (r1, #32)
/* since r0 hold the result, move the first source
* pointer somewhere else
*/
mov r4, r0
/* make sure we have at least 8+4 bytes, this simplify things below
* and avoid some overhead for small blocks
*/
cmp r2, #(8+4)
bmi 8f
/* align first pointer to word boundary
* offset = -src & 3
@@ -103,8 +152,8 @@ ENTRY(memcmp)
subs r2, r2, #(32 + 4)
bmi 1f
0: PLD (r4, #64)
PLD (r1, #64)
0: pld [r4, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 2)]
ldr r0, [r4], #4
ldr lr, [r1, #4]!
eors r0, r0, ip
@@ -170,12 +219,24 @@ ENTRY(memcmp)
9: /* restore registers and return */
ldmfd sp!, {r4, lr}
bx lr
10: /* process less than 12 bytes */
cmp r2, #0
moveq r0, #0
bxeq lr
mov r3, r0
11:
ldrb r0, [r3], #1
ldrb ip, [r1], #1
subs r0, ip
bxne lr
subs r2, r2, #1
bne 11b
bx lr
END(memcmp)
5: /*************** non-congruent case ***************/
and r0, r1, #3
cmp r0, #2
@@ -192,8 +253,8 @@ END(memcmp)
bic r1, r1, #3
ldr lr, [r1], #4
6: PLD (r1, #64)
PLD (r4, #64)
6: pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r4, #(CACHE_LINE_SIZE * 2)]
mov ip, lr, lsr #16
ldr lr, [r1], #4
ldr r0, [r4], #4

View File

@@ -37,28 +37,35 @@
#ifdef HAVE_32_BYTE_CACHE_LINE
/* a prefetch distance of 2 cache-lines */
#define CACHE_LINE_SIZE 32
#define PREFETCH_DISTANCE (CACHE_LINE_SIZE*2)
#else
/* a prefetch distance of 4 cache-lines works best experimentally */
#define CACHE_LINE_SIZE 64
#define PREFETCH_DISTANCE (CACHE_LINE_SIZE*4)
#endif
ENTRY(memcpy)
.save {r0, lr}
/* start preloading as early as possible */
pld [r1, #(CACHE_LINE_SIZE*0)]
pld [r1, #(CACHE_LINE_SIZE * 0)]
stmfd sp!, {r0, lr}
pld [r1, #(CACHE_LINE_SIZE*1)]
pld [r1, #(CACHE_LINE_SIZE * 1)]
/* If Neon supports unaligned access then remove the align code,
* unless a size limit has been specified.
*/
#ifndef NEON_UNALIGNED_ACCESS
/* do we have at least 16-bytes to copy (needed for alignment below) */
cmp r2, #16
blo 5f
/* check if buffers are aligned. If so, run arm-only version */
eor r3, r0, r1
ands r3, r3, #0x3
beq 11f
/* align destination to cache-line for the write-buffer */
rsb r3, r0, #0
ands r3, r3, #0xF
beq 0f
beq 2f
/* copy up to 15-bytes (count in r3) */
sub r2, r2, r3
@@ -79,10 +86,9 @@ ENTRY(memcpy)
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0, :64]!
2:
0: /* preload immediately the next cache line, which we may need */
pld [r1, #(CACHE_LINE_SIZE*0)]
pld [r1, #(CACHE_LINE_SIZE*1)]
/* preload immediately the next cache line, which we may need */
pld [r1, #(CACHE_LINE_SIZE * 0)]
pld [r1, #(CACHE_LINE_SIZE * 1)]
#ifdef HAVE_32_BYTE_CACHE_LINE
/* make sure we have at least 32 bytes to copy */
@@ -108,23 +114,22 @@ ENTRY(memcpy)
subs r2, r2, #64
blo 2f
/* preload all the cache lines we need.
* NOTE: the number of pld below depends on PREFETCH_DISTANCE,
* ideally would would increase the distance in the main loop to
* avoid the goofy code below. In practice this doesn't seem to make
* a big difference.
*/
pld [r1, #(CACHE_LINE_SIZE*2)]
pld [r1, #(CACHE_LINE_SIZE*3)]
pld [r1, #(PREFETCH_DISTANCE)]
/* preload all the cache lines we need. */
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
1: /* The main loop copies 64 bytes at a time */
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
pld [r1, #(PREFETCH_DISTANCE)]
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
#ifdef HAVE_32_BYTE_CACHE_LINE
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
#else
pld [r1, #(CACHE_LINE_SIZE * 3)]
#endif
subs r2, r2, #64
vst1.8 {d0 - d3}, [r0, :128]!
vst1.8 {d4 - d7}, [r0, :128]!
vst1.8 {d0 - d3}, [r0, :128]!
vst1.8 {d4 - d7}, [r0, :128]!
bhs 1b
2: /* fix-up the remaining count and make sure we have >= 32 bytes left */
@@ -133,9 +138,9 @@ ENTRY(memcpy)
blo 4f
3: /* 32 bytes at a time. These cache lines were already preloaded */
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d0 - d3}, [r1]!
subs r2, r2, #32
vst1.8 {d0 - d3}, [r0, :128]!
vst1.8 {d0 - d3}, [r0, :128]!
bhs 3b
#endif
4: /* less than 32 left */
@@ -145,7 +150,6 @@ ENTRY(memcpy)
// copies 16 bytes, 128-bits aligned
vld1.8 {d0, d1}, [r1]!
vst1.8 {d0, d1}, [r0, :128]!
5: /* copy up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
@@ -164,6 +168,164 @@ ENTRY(memcpy)
ldmfd sp!, {r0, lr}
bx lr
#else /* NEON_UNALIGNED_ACCESS */
// Check so divider is at least 16 bytes, needed for alignment code.
cmp r2, #16
blo 5f
#ifdef NEON_MEMCPY_ALIGNMENT_DIVIDER
/* Check the upper size limit for Neon unaligned memory access in memcpy */
#if NEON_MEMCPY_ALIGNMENT_DIVIDER >= 16
cmp r2, #NEON_MEMCPY_ALIGNMENT_DIVIDER
blo 3f
#endif
/* check if buffers are aligned. If so, run arm-only version */
eor r3, r0, r1
ands r3, r3, #0x3
beq 11f
/* align destination to 16 bytes for the write-buffer */
rsb r3, r0, #0
ands r3, r3, #0xF
beq 3f
/* copy up to 15-bytes (count in r3) */
sub r2, r2, r3
movs ip, r3, lsl #31
ldrmib lr, [r1], #1
strmib lr, [r0], #1
ldrcsb ip, [r1], #1
ldrcsb lr, [r1], #1
strcsb ip, [r0], #1
strcsb lr, [r0], #1
movs ip, r3, lsl #29
bge 1f
// copies 4 bytes, destination 32-bits aligned
vld1.32 {d0[0]}, [r1]!
vst1.32 {d0[0]}, [r0, :32]!
1: bcc 2f
// copies 8 bytes, destination 64-bits aligned
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0, :64]!
2:
/* preload immediately the next cache line, which we may need */
pld [r1, #(CACHE_LINE_SIZE * 0)]
pld [r1, #(CACHE_LINE_SIZE * 1)]
3:
#endif
/* make sure we have at least 64 bytes to copy */
subs r2, r2, #64
blo 2f
/* preload all the cache lines we need */
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
1: /* The main loop copies 64 bytes at a time */
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
#ifdef HAVE_32_BYTE_CACHE_LINE
pld [r1, #(CACHE_LINE_SIZE * 2)]
pld [r1, #(CACHE_LINE_SIZE * 3)]
#else
pld [r1, #(CACHE_LINE_SIZE * 3)]
#endif
subs r2, r2, #64
vst1.8 {d0 - d3}, [r0]!
vst1.8 {d4 - d7}, [r0]!
bhs 1b
2: /* fix-up the remaining count and make sure we have >= 32 bytes left */
add r2, r2, #64
subs r2, r2, #32
blo 4f
3: /* 32 bytes at a time. These cache lines were already preloaded */
vld1.8 {d0 - d3}, [r1]!
subs r2, r2, #32
vst1.8 {d0 - d3}, [r0]!
bhs 3b
4: /* less than 32 left */
add r2, r2, #32
tst r2, #0x10
beq 5f
// copies 16 bytes, 128-bits aligned
vld1.8 {d0, d1}, [r1]!
vst1.8 {d0, d1}, [r0]!
5: /* copy up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
vld1.8 {d0}, [r1]!
vst1.8 {d0}, [r0]!
1: bge 2f
vld1.32 {d0[0]}, [r1]!
vst1.32 {d0[0]}, [r0]!
2: movs ip, r2, lsl #31
ldrmib r3, [r1], #1
ldrcsb ip, [r1], #1
ldrcsb lr, [r1], #1
strmib r3, [r0], #1
strcsb ip, [r0], #1
strcsb lr, [r0], #1
ldmfd sp!, {r0, lr}
bx lr
#endif /* NEON_UNALIGNED_ACCESS */
11:
/* Simple arm-only copy loop to handle aligned copy operations */
stmfd sp!, {r4, r5, r6, r7, r8}
pld [r1, #(CACHE_LINE_SIZE * 2)]
/* Check alignment */
rsb r3, r1, #0
ands r3, #3
beq 2f
/* align source to 32 bits. We need to insert 2 instructions between
* a ldr[b|h] and str[b|h] because byte and half-word instructions
* stall 2 cycles.
*/
movs r12, r3, lsl #31
sub r2, r2, r3 /* we know that r3 <= r2 because r2 >= 4 */
ldrmib r3, [r1], #1
ldrcsb r4, [r1], #1
ldrcsb r5, [r1], #1
strmib r3, [r0], #1
strcsb r4, [r0], #1
strcsb r5, [r0], #1
2:
subs r2, #32
blt 5f
pld [r1, #(CACHE_LINE_SIZE * 3)]
3: /* Main copy loop, copying 32 bytes at a time */
pld [r1, #(CACHE_LINE_SIZE * 4)]
ldmia r1!, {r3, r4, r5, r6, r7, r8, r12, lr}
subs r2, r2, #32
stmia r0!, {r3, r4, r5, r6, r7, r8, r12, lr}
bge 3b
5: /* Handle any remaining bytes */
adds r2, #32
beq 6f
movs r12, r2, lsl #28
ldmcsia r1!, {r3, r4, r5, r6} /* 16 bytes */
ldmmiia r1!, {r7, r8} /* 8 bytes */
stmcsia r0!, {r3, r4, r5, r6}
stmmiia r0!, {r7, r8}
movs r12, r2, lsl #30
ldrcs r3, [r1], #4 /* 4 bytes */
ldrmih r4, [r1], #2 /* 2 bytes */
strcs r3, [r0], #4
strmih r4, [r0], #2
tst r2, #0x1
ldrneb r3, [r1] /* last byte */
strneb r3, [r0]
6:
ldmfd sp!, {r4, r5, r6, r7, r8}
ldmfd sp!, {r0, pc}
END(memcpy)

View File

@@ -26,23 +26,113 @@
* SUCH DAMAGE.
*/
#include <machine/cpu-features.h>
#include <machine/asm.h>
/*
* Optimized memset() for ARM.
*
* memset() returns its first argument.
*/
#if defined(__ARM_NEON__)
.fpu neon
#endif
ENTRY(bzero)
mov r2, r1
mov r1, #0
END(bzero)
ENTRY(memset)
#if defined(__ARM_NEON__)
#ifdef NEON_MEMSET_DIVIDER
cmp r2, #NEON_MEMSET_DIVIDER
bhi 11f
#endif
.save {r0}
stmfd sp!, {r0}
vdup.8 q0, r1
#ifndef NEON_UNALIGNED_ACCESS
/* do we have at least 16-bytes to write (needed for alignment below) */
cmp r2, #16
blo 3f
/* align destination to 16 bytes for the write-buffer */
rsb r3, r0, #0
ands r3, r3, #0xF
beq 2f
/* write up to 15-bytes (count in r3) */
sub r2, r2, r3
movs ip, r3, lsl #31
strmib r1, [r0], #1
strcsb r1, [r0], #1
strcsb r1, [r0], #1
movs ip, r3, lsl #29
bge 1f
// writes 4 bytes, 32-bits aligned
vst1.32 {d0[0]}, [r0, :32]!
1: bcc 2f
// writes 8 bytes, 64-bits aligned
vst1.8 {d0}, [r0, :64]!
2:
#endif
/* make sure we have at least 32 bytes to write */
subs r2, r2, #32
blo 2f
vmov q1, q0
1: /* The main loop writes 32 bytes at a time */
subs r2, r2, #32
#ifndef NEON_UNALIGNED_ACCESS
vst1.8 {d0 - d3}, [r0, :128]!
#else
vst1.8 {d0 - d3}, [r0]!
#endif
bhs 1b
2: /* less than 32 left */
add r2, r2, #32
tst r2, #0x10
beq 3f
// writes 16 bytes, 128-bits aligned
#ifndef NEON_UNALIGNED_ACCESS
vst1.8 {d0, d1}, [r0, :128]!
#else
vst1.8 {d0, d1}, [r0]!
#endif
3: /* write up to 15-bytes (count in r2) */
movs ip, r2, lsl #29
bcc 1f
vst1.8 {d0}, [r0]!
1: bge 2f
vst1.32 {d0[0]}, [r0]!
2: movs ip, r2, lsl #31
strmib r1, [r0], #1
strcsb r1, [r0], #1
strcsb r1, [r0], #1
ldmfd sp!, {r0}
bx lr
11:
#endif
/*
* Optimized memset() for ARM.
*
* memset() returns its first argument.
*/
/* compute the offset to align the destination
* offset = (4-(src&3))&3 = -src & 3
*/
.save {r0, r4-r7, lr}
stmfd sp!, {r0, r4-r7, lr}
rsb r3, r0, #0
@@ -70,7 +160,7 @@ ENTRY(memset)
mov r5, r1
mov r6, r1
mov r7, r1
rsb r3, r0, #0
ands r3, r3, #0x1C
beq 3f
@@ -78,7 +168,7 @@ ENTRY(memset)
andhi r3, r2, #0x1C
sub r2, r2, r3
/* conditionnaly writes 0 to 7 words (length in r3) */
/* conditionally writes 0 to 7 words (length in r3) */
movs r3, r3, lsl #28
stmcsia r0!, {r1, lr}
stmcsia r0!, {r1, lr}
@@ -95,7 +185,7 @@ ENTRY(memset)
bhs 1b
2: add r2, r2, #32
/* conditionnaly stores 0 to 31 bytes */
/* conditionally stores 0 to 31 bytes */
movs r2, r2, lsl #28
stmcsia r0!, {r1,r3,r12,lr}
stmmiia r0!, {r1, lr}

View File

@@ -25,47 +25,21 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <machine/asm.h>
#include <sys/linux-syscalls.h>
.text
.align 4
.type syscall,#function
.globl syscall
.text
.align
#if __ARM_EABI__
syscall:
ENTRY(syscall)
mov ip, sp
stmfd sp!, {r4, r5, r6, r7}
stmfd sp!, {r4, r5, r6, r7}
mov r7, r0
mov r0, r1
mov r1, r2
mov r2, r3
ldmfd ip, {r3, r4, r5, r6}
ldmfd ip, {r3, r4, r5, r6}
swi #0
ldmfd sp!, {r4, r5, r6, r7}
movs r0, r0
bxpl lr
b __set_syscall_errno
#else
#ifndef __NR_syscall
#define __NR_syscall 113
#endif
syscall:
stmfd sp!, {r4, r5, lr}
ldr r4, [sp, #12]
ldr r5, [sp, #16]
swi __NR_syscall
ldmfd sp!, {r4, r5, lr}
movs r0, r0
bxpl lr
b __set_syscall_errno
#endif
END(syscall)

View File

@@ -35,17 +35,6 @@
#ifndef _ARM__TYPES_H_
#define _ARM__TYPES_H_
#if !defined(__ARM_EABI__)
/* the kernel defines size_t as unsigned int, but g++ wants it to be unsigned long */
#define _SIZE_T
#define _SSIZE_T
#define _PTRDIFF_T
typedef unsigned long size_t;
typedef long ssize_t;
typedef long ptrdiff_t;
#endif
/* 7.18.1.1 Exact-width integer types */
typedef __signed char __int8_t;
typedef unsigned char __uint8_t;
@@ -98,6 +87,8 @@ typedef unsigned long __psize_t;
/* Standard system types */
typedef int __clock_t;
typedef int __clockid_t;
typedef double __double_t;
typedef float __float_t;
typedef long __ptrdiff_t;
typedef int __time_t;
typedef int __timer_t;
@@ -116,10 +107,4 @@ typedef int __rune_t;
typedef void * __wctrans_t;
typedef void * __wctype_t;
#ifdef __ARMEB__
#define _BYTE_ORDER _BIG_ENDIAN
#else
#define _BYTE_ORDER _LITTLE_ENDIAN
#endif
#endif /* _ARM__TYPES_H_ */

View File

@@ -0,0 +1,138 @@
/* $NetBSD: elf_machdep.h,v 1.10 2012/08/05 04:12:46 matt Exp $ */
#ifndef _ARM_ELF_MACHDEP_H_
#define _ARM_ELF_MACHDEP_H_
#if defined(__ARMEB__)
#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
#else
#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
#endif
#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
#define ELF64_MACHDEP_ID_CASES \
/* no 64-bit ELF machine types supported */
/* Processor specific flags for the ELF header e_flags field. */
#define EF_ARM_RELEXEC 0x00000001
#define EF_ARM_HASENTRY 0x00000002
#define EF_ARM_INTERWORK 0x00000004 /* GNU binutils 000413 */
#define EF_ARM_SYMSARESORTED 0x00000004 /* ARM ELF A08 */
#define EF_ARM_APCS_26 0x00000008 /* GNU binutils 000413 */
#define EF_ARM_DYNSYMSUSESEGIDX 0x00000008 /* ARM ELF B01 */
#define EF_ARM_APCS_FLOAT 0x00000010 /* GNU binutils 000413 */
#define EF_ARM_MAPSYMSFIRST 0x00000010 /* ARM ELF B01 */
#define EF_ARM_PIC 0x00000020
#define EF_ARM_ALIGN8 0x00000040 /* 8-bit structure alignment. */
#define EF_ARM_NEW_ABI 0x00000080
#define EF_ARM_OLD_ABI 0x00000100
#define EF_ARM_SOFT_FLOAT 0x00000200
#define EF_ARM_EABIMASK 0xff000000
#define EF_ARM_EABI_VER1 0x01000000
#define EF_ARM_EABI_VER2 0x02000000
#define EF_ARM_EABI_VER3 0x03000000
#define EF_ARM_EABI_VER4 0x04000000
#define EF_ARM_EABI_VER5 0x05000000
#define ELF32_MACHDEP_ID_CASES \
case EM_ARM: \
break;
#define ELF32_MACHDEP_ID EM_ARM
#define ARCH_ELFSIZE 32 /* MD native binary size */
/* Processor specific relocation types */
#define R_ARM_NONE 0
#define R_ARM_PC24 1
#define R_ARM_ABS32 2
#define R_ARM_REL32 3
#define R_ARM_PC13 4
#define R_ARM_ABS16 5
#define R_ARM_ABS12 6
#define R_ARM_THM_ABS5 7
#define R_ARM_ABS8 8
#define R_ARM_SBREL32 9
#define R_ARM_THM_PC22 10
#define R_ARM_THM_PC8 11
#define R_ARM_AMP_VCALL9 12
#define R_ARM_SWI24 13
#define R_ARM_THM_SWI8 14
#define R_ARM_XPC25 15
#define R_ARM_THM_XPC22 16
/* TLS relocations */
#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */
#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */
#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */
/* 20-31 are reserved for ARM Linux. */
#define R_ARM_COPY 20
#define R_ARM_GLOB_DAT 21
#define R_ARM_JUMP_SLOT 22
#define R_ARM_RELATIVE 23
#define R_ARM_GOTOFF 24
#define R_ARM_GOTPC 25
#define R_ARM_GOT32 26
#define R_ARM_PLT32 27
#define R_ARM_ALU_PCREL_7_0 32
#define R_ARM_ALU_PCREL_15_8 33
#define R_ARM_ALU_PCREL_23_15 34
#define R_ARM_ALU_SBREL_11_0 35
#define R_ARM_ALU_SBREL_19_12 36
#define R_ARM_ALU_SBREL_27_20 37
/* 96-111 are reserved to G++. */
#define R_ARM_GNU_VTENTRY 100
#define R_ARM_GNU_VTINHERIT 101
#define R_ARM_THM_PC11 102
#define R_ARM_THM_PC9 103
/* More TLS relocations */
#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic */
#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic */
#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS */
#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of */
#define R_ARM_TLS_LE32 108
#define R_ARM_TLS_LDO12 109
#define R_ARM_TLS_LE12 110
#define R_ARM_TLS_IE12GP 111
/* 112-127 are reserved for private experiments. */
#define R_ARM_RXPC25 249
#define R_ARM_RSBREL32 250
#define R_ARM_THM_RPC22 251
#define R_ARM_RREL32 252
#define R_ARM_RABS32 253
#define R_ARM_RPC24 254
#define R_ARM_RBASE 255
#define R_TYPE(name) __CONCAT(R_ARM_,name)
/* Processor specific program header flags */
#define PF_ARM_SB 0x10000000
#define PF_ARM_PI 0x20000000
#define PF_ARM_ENTRY 0x80000000
/* Processor specific section header flags */
#define SHF_ENTRYSECT 0x10000000
#define SHF_COMDEF 0x80000000
/* Processor specific symbol types */
#define STT_ARM_TFUNC STT_LOPROC
#ifdef _KERNEL
#ifdef ELFSIZE
#define ELF_MD_PROBE_FUNC ELFNAME2(arm_netbsd,probe)
#endif
struct exec_package;
int arm_netbsd_elf32_probe(struct lwp *, struct exec_package *, void *, char *,
vaddr_t *);
#endif
#endif /* _ARM_ELF_MACHDEP_H_ */

View File

@@ -77,7 +77,7 @@
#endif /* __ARM_ARCH__ */
#endif /* __GNUC__ */
#ifdef __ARMEB__
#if defined(__ARMEB__)
#define _BYTE_ORDER _BIG_ENDIAN
#else
#define _BYTE_ORDER _LITTLE_ENDIAN

View File

@@ -150,6 +150,7 @@ syscall_src += arch-arm/syscalls/__rt_sigaction.S
syscall_src += arch-arm/syscalls/__rt_sigprocmask.S
syscall_src += arch-arm/syscalls/__rt_sigtimedwait.S
syscall_src += arch-arm/syscalls/sigpending.S
syscall_src += arch-arm/syscalls/signalfd4.S
syscall_src += arch-arm/syscalls/socket.S
syscall_src += arch-arm/syscalls/socketpair.S
syscall_src += arch-arm/syscalls/bind.S

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__brk)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_brk
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__fcntl)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fcntl
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__fcntl64)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fcntl64
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__fork)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fork
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__fstatfs64)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fstatfs64
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__getcpu)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getcpu
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__getcwd)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getcwd
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__getpriority)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getpriority
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__ioctl)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_ioctl
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__open)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_open
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__openat)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_openat
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__ptrace)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_ptrace
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__reboot)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_reboot
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__rt_sigaction)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_rt_sigaction
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__rt_sigprocmask)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_rt_sigprocmask
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__rt_sigtimedwait)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_rt_sigtimedwait
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__sched_getaffinity)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_sched_getaffinity
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__set_tls)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_ARM_set_tls
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__setresuid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_setresuid32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__setreuid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_setreuid32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__setuid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_setuid32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__sigsuspend)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_sigsuspend
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__statfs64)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_statfs64
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__syslog)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_syslog
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__timer_create)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_timer_create
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__timer_delete)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_timer_delete
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__timer_getoverrun)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_timer_getoverrun
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__timer_gettime)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_timer_gettime
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__timer_settime)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_timer_settime
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(__wait4)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_wait4
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(_exit)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_exit_group
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(_exit_thread)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_exit
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(accept)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_accept
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(access)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_access
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(acct)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_acct
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(bind)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_bind
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(cacheflush)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_ARM_cacheflush
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(capget)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_capget
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(capset)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_capset
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(chdir)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_chdir
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(chmod)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_chmod
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(chown)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_chown32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(chroot)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_chroot
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(clock_getres)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_clock_getres
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(clock_gettime)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_clock_gettime
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(clock_nanosleep)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_clock_nanosleep
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(clock_settime)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_clock_settime
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(close)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_close
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(connect)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_connect
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(delete_module)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_delete_module
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(dup)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_dup
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(dup2)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_dup2
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(epoll_create)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_epoll_create
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(epoll_ctl)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_epoll_ctl
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(epoll_wait)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_epoll_wait
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(eventfd)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_eventfd2
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(execve)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_execve
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(faccessat)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_faccessat
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fchdir)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fchdir
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fchmod)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fchmod
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fchmodat)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fchmodat
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fchown)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fchown32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fdatasync)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fdatasync
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fgetxattr)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fgetxattr
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(flistxattr)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_flistxattr
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(flock)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_flock
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fremovexattr)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fremovexattr
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fstat)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fstat64
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fstatat)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fstatat64
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(fsync)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_fsync
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(ftruncate)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_ftruncate
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(ftruncate64)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_ftruncate64
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getdents)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getdents64
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getegid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getegid32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(geteuid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_geteuid32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getgid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getgid32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getgroups)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getgroups32
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getitimer)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getitimer
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getpeername)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getpeername
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getpgid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getpgid
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getpid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getpid
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

View File

@@ -3,11 +3,10 @@
#include <sys/linux-syscalls.h>
ENTRY(getppid)
.save {r4, r7}
stmfd sp!, {r4, r7}
mov ip, r7
ldr r7, =__NR_getppid
swi #0
ldmfd sp!, {r4, r7}
mov r7, ip
movs r0, r0
bxpl lr
b __set_syscall_errno

Some files were not shown because too many files have changed in this diff Show More