755 Commits

Author SHA1 Message Date
Mark D Horn
dc3bc87b43 Update X86 Bionic CRT files for unwind/exceptions
Several updates to Bionic crt*.o files to implement Linux/x86
stack unwind/exception handling.
Mark __dso_handle as hidden.
Note: Requires complete rebuild due to CRT changes. Google will
need to regenerate and check-in all the prebuilt x86 CRT object
files and libraries which link to them.

Change-Id: I191ce1afb0dee7bbc28dcd9694e5919226dbd070
Signed-off-by: Bruce J Beare <bruce.j.beare@intel.com>
Signed-off-by: Mark D Horn <mark.d.horn@intel.com>
Author: Lu, Hongjiu <hongjiu.lu@intel.com>
2011-05-24 13:31:50 -07:00
David 'Digit' Turner
b6cd6816d2 libc: Fix leak in the DNS thread-specific state.
NOTE: This is a back-port from the internal HC branch.

This patch fixes a leak that occurs when creating a new
thread-specific DNS resolver state object.

Essentially, each thread that calls gethostbyname() or getaddrinfo()
at least once will leak a small memory block. Another leak happens
anytime these functions are called after a change of the network
settings.

The leak is insignificant and hard to notice on typical programs.
However, netd tends to create one new thread for each DNS request
it processes, and quickly grows in size after a > 20 hours.

The same problem is seen in other system processes that tend to
create one thread per request too.

The leak occured becasue res_ninit() was called twice when creating
a new thread-specific DNS resolver state in _res_get_thread().

This function could not properly reset an existing thread and was
leaking a memory block.

The patch does two things:

- First, it fixes res_ninit() to prevent any leakage when resetting
  the state of a given res_state instance.

- Second, it modifies the _res_get_thread() implementation to
  make it more explicit, and avoid calling res_ninit() twice
  in a row on first-time creation.

Fix for Bug 4089945, and Bug 4090857

Change-Id: Icde1d4d1dfb9383efdbf38d0658ba915be77942e
2011-05-18 13:48:20 +02:00
David Turner
a7a9dddb5d Merge "bionic: Add ARM optimized strcmp()" 2011-05-17 04:29:20 -07:00
David Turner
c5c84c8643 Merge "vfscanf: Add support for L type modifier for long long" 2011-05-17 04:07:27 -07:00
David Turner
e8f7e30b05 Merge "bionic, libthread_db x86 fixes" 2011-05-09 08:03:51 -07:00
Chris Fries
712e4f81e0 vfscanf: Add support for L type modifier for long long
scanf()'s man page suggests support for %Ld, (and ioux).
Implement this so that 3rd party code will work correctly.

Change-Id: Idce9d266071cb688ca71429395a2d9edf6813595
2011-05-05 11:02:33 -05:00
Brian Carlstrom
be7f5da0bd Tracking change to dns proxy protocol
The gethostbyaddr code in system/netd now expects a string address
from inet_ntop, not raw bytes, in order to properly pass addresses
containing null and probably spaces and newlines characeters as well.

Bug: 4344448
Change-Id: I8ec0eab94d5b1d38e9269ba3afb2825e946f8df3
2011-04-29 16:43:16 -07:00
Bruce Beare
8e551a6319 bionic, libthread_db x86 fixes
Change-Id: I3be997f5f1f6a894a3c200d4f325cf3bfd428c66
Author: James Rose <james.rose@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-04-27 09:12:58 -07:00
Jim Huang
f50e9be593 bionic: Add ARM optimized strcmp()
Reference results of the experiments on TI OMAP3430 at 600 MHz

$ bench_strcmp -N "strcmp_1k" -s 1k -I 200

[original C code]
             prc thr   usecs/call      samples   errors cnt/samp     size
strcmp_1k      1   1     10.38000          102        0    15000     1024

[ARM optimized code]
             prc thr   usecs/call      samples   errors cnt/samp     size
strcmp_1k      1   1      3.08840           88        0    15000     1024

The work was derived from ARM Ltd, contributed to newlib, and reworked
for Android by Linaro.

Change-Id: Ib0d5755e1eb9adb07d80ef0252f57a5c4c57a425
Signed-off-by: Jim Huang <jserv@0xlab.org>
2011-04-20 15:39:43 +08:00
Brad Fitzpatrick
9b6e8af699 am 3ef36b21: Merge "Use system property to set dns cache size"
* commit '3ef36b2115d0802e668e325b59af6ef14d999e71':
  Use system property to set dns cache size
2011-04-11 15:35:44 -07:00
Brad Fitzpatrick
3ef36b2115 Merge "Use system property to set dns cache size" 2011-04-11 09:42:30 -07:00
David Turner
aad685ce00 am 4c090434: Merge "removing shadowing redeclaration of result"
* commit '4c090434a4fcffb3a8bb7ebee7cc6e52befceeae':
  removing shadowing redeclaration of result
2011-04-05 07:35:09 -07:00
David Turner
2b10d912cc am fcee105b: Merge "x86 libc: fix the wrong return value of syscall"
* commit 'fcee105b2baca9eb338e89ecc9ba99e15dd31e78':
  x86 libc: fix the wrong return value of syscall
2011-04-05 07:35:07 -07:00
David Turner
4c090434a4 Merge "removing shadowing redeclaration of result" 2011-04-05 07:14:28 -07:00
Kan-Ru Chen
8488efaa09 x86 libc: fix the wrong return value of syscall
According to Intel ABI spec, there is no need to save %eax, %ecx, %edx
on the stack. Worse, popping %eax will wipe out the return value.

Change-Id: Ida536c3b98174b8deef88f8f3b9352eaaeb7c0c0
2011-03-29 13:16:42 +08:00
David 'Digit' Turner
8c6b848e43 am 0e47a919: Merge "libc: <sys/cdefs.h>: Fix the use of __STDC_VERSION__ from C++"
* commit '0e47a919f413ff14a540a0dbad873ee8f834b210':
  libc: <sys/cdefs.h>: Fix the use of __STDC_VERSION__ from C++
2011-03-25 08:51:56 -07:00
Christopher Schwardt
0f5587097b removing shadowing redeclaration of result
Change-Id: Ic1f86962dfb8620cf5c63ff4913b2f0bf908abb5
2011-03-22 15:35:40 +01:00
David 'Digit' Turner
8eda21baa5 libc: <sys/cdefs.h>: Fix the use of __STDC_VERSION__ from C++
See http://code.google.com/p/android/issues/detail?id=14627 for context.

Change-Id: Idb10b675667d0d6e64dcb1d382be11e45aa6f4c4
2011-03-22 14:22:32 +01:00
Brad Fitzpatrick
c59b248241 am 5a6f593b: Merge "Use sigemptyset to initialise sigset_t values. sigset_t may not be implemented as an integral type."
* commit '5a6f593b6197b96f980d9d45f9a981ef8705caf4':
  Use sigemptyset to initialise sigset_t values. sigset_t may not be implemented as an integral type.
2011-03-16 11:41:24 -07:00
Brad Fitzpatrick
5a6f593b61 Merge "Use sigemptyset to initialise sigset_t values. sigset_t may not be implemented as an integral type." 2011-03-16 11:15:37 -07:00
Mike Lockwood
c8fe4add6d am 3f14ff34: DO NOT MERGE: Update USB accessory kernel header to include serial number support
* commit '3f14ff34dfbd00fcffb18b10a1a3e17e2cc5ebdf':
  DO NOT MERGE: Update USB accessory kernel header to include serial number support
2011-03-15 14:49:22 -07:00
Mike Lockwood
3f14ff34df DO NOT MERGE: Update USB accessory kernel header to include serial number support
Change-Id: I61d889b107bd5e052ebac393883b87dac730ea6a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-14 19:16:28 -04:00
Mike Lockwood
78befc1211 am 6139fa33: DO NOT MERGE: linux/usb/f_accessory.h: Update USB accessory kernel header
* commit '6139fa33ab823e935471fa71bba4c6f715ad6c56':
  DO NOT MERGE: linux/usb/f_accessory.h: Update USB accessory kernel header
2011-03-14 13:35:03 -07:00
Chris Dearman
c1519a52ef Use sigemptyset to initialise sigset_t values.
sigset_t may not be implemented as an integral type.

Change-Id: I3f5ec86d6383685979d8d23ef508b6c609569b38
Signed-off-by: Raghu Gandham <raghu@mips.com>
2011-03-14 12:15:22 -07:00
Brad Fitzpatrick
08a4ce983b am 0c398985: Merge "[ENDIAN] Build md5 code correctly for bigendian targets"
* commit '0c3989854fa3ea3ffb4152c013f68f2a21a52dc1':
  [ENDIAN] Build md5 code correctly for bigendian targets
2011-03-14 10:52:05 -07:00
Brad Fitzpatrick
0c3989854f Merge "[ENDIAN] Build md5 code correctly for bigendian targets" 2011-03-14 10:39:10 -07:00
Mike Lockwood
6139fa33ab DO NOT MERGE: linux/usb/f_accessory.h: Update USB accessory kernel header
For bugs b/4079236, b/4073248 and b/4080288

Change-Id: Id9cdbe95d7dd892bf38e16e7da505ee0eae26b99
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-11 19:02:16 -05:00
David 'Digit' Turner
638608b11a am da8ea213: Merge "libc: <stdint.h>: Don\'t make __STD_CONSTANT_MACROS available if only __STD_LIMIT_MACROS is defined."
* commit 'da8ea213abb8bec08da37622179061630bd8e2f8':
  libc: <stdint.h>: Don't make __STD_CONSTANT_MACROS available if only __STD_LIMIT_MACROS is defined.
2011-03-11 11:13:45 -08:00
David 'Digit' Turner
b299039d06 am e6e2ba1d: Merge "libc: <pthread.h>: Replace \'#if __cplusplus\' by \'#ifdef __cplusplus\'"
* commit 'e6e2ba1d40241c85de16d75cbd397cc3670d7535':
  libc: <pthread.h>: Replace '#if __cplusplus' by '#ifdef __cplusplus'
2011-03-11 11:12:11 -08:00
David 'Digit' Turner
da8ea213ab Merge "libc: <stdint.h>: Don't make __STD_CONSTANT_MACROS available if only __STD_LIMIT_MACROS is defined." 2011-03-11 09:32:33 -08:00
David 'Digit' Turner
847b183f63 libc: <pthread.h>: Replace '#if __cplusplus' by '#ifdef __cplusplus'
See http://code.google.com/p/android/issues/detail?id=15221

Change-Id: Ia7b6668c28737810d6c4941604c6adf232a27c61
2011-03-11 14:51:19 +01:00
David 'Digit' Turner
8b3cea6732 libc: <stdint.h>: Don't make __STD_CONSTANT_MACROS available if only __STD_LIMIT_MACROS is defined.
Change-Id: I8b0ea266eab9c6f75d8407b704953ecaef948221
2011-03-11 14:39:05 +01:00
David 'Digit' Turner
0d6bbc7af0 am dfe6eda5: Merge "libc: <stdint.h>: fix typo in INTMAX_C()/UINTMAX_C() definition"
* commit 'dfe6eda57e1e463427f941d5d71f8ccb5297d6d2':
  libc: <stdint.h>: fix typo in INTMAX_C()/UINTMAX_C() definition
2011-03-10 12:14:51 -08:00
David 'Digit' Turner
0b73dac8aa am d6722bdd: Merge "libc: <stdint.h>: Proper C++"
* commit 'd6722bdd201e2747c55ec7255db7f1d5864ccdd3':
  libc: <stdint.h>: Proper C++
2011-03-10 12:11:41 -08:00
David 'Digit' Turner
0e5411b4ba libc: <stdint.h>: fix typo in INTMAX_C()/UINTMAX_C() definition
Change-Id: I3c74269901a288c448734dd7eb442a62b9348db8
2011-03-10 20:35:17 +01:00
Paul Lind
865e3789dd [ENDIAN] Build md5 code correctly for bigendian targets
Signed-off-by: Raghu Gandham <raghu@mips.com>
2011-03-10 11:13:50 -08:00
David 'Digit' Turner
08ff1a6474 libc: <stdint.h>: Proper C++
This patch prevents the definition of various macros when <stdint.h> is
included from C++. The ISO C99 standard mentions that when this header
is included from a C++ source file, limit and constant related macros
should only be defined when asked explicitely by defining
__STDC_LIMIT_MACROS and __STD_CONSTANT_MACROS, respectively.

The <stdint.h> lacked the proper #ifdef .. #endif blocks for the
following macros:

    INTPTR_MIN, INTPTR_MAX, UINTPTR_MAX, PTRDIFF_MIN, PTRDIFF_MAX
    INTMAX_MIN, INTMAX_MAX, UINTMAX_MAX,
    INPTR_C, UINTPR_C, PTRDIFF_C, INTMAX_C, UINTMAX_C

This is intended to fix http://code.google.com/p/android/issues/detail?id=14380
after we copy this file to development/ndk/platforms/android-3/include/

Change-Id: Ia77e0822edfaaf568ea599d7de673b310eeeaa4a
2011-03-10 18:02:01 +01:00
David 'Digit' Turner
962dcb2221 am fed58049: Merge "libc: Fix PTHREAD_RWLOCK_INITIALIZER"
* commit 'fed58049d50083e4c960d89f4bbd516a181c2d18':
  libc: Fix PTHREAD_RWLOCK_INITIALIZER
  Proxy getnameinfo through netd
  Updated gcc 4.4.3 IA toolchain doesn't require the .ctors list
  Convert cname lenght before use
2011-03-10 01:51:19 -08:00
David 'Digit' Turner
ca4462d76c libc: Fix PTHREAD_RWLOCK_INITIALIZER
The macro definition was incorrect and resulted in a compile error
when used.

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

Change-Id: I8fa6047b63e7f56b53653774327099822c469cd1
2011-03-10 10:23:44 +01:00
Mike Lockwood
2703b7046c am 6bd73ed4: Add linux/usb/f_accessory.h header for USB accessory driver DO NOT MERGE
* commit '6bd73ed417c52ed57d5f62ea9988b6071a1efbeb':
  Add linux/usb/f_accessory.h header for USB accessory driver DO NOT MERGE
2011-03-09 13:31:58 -08:00
Brad Fitzpatrick
1ed86fa491 Merge "Proxy getnameinfo through netd" 2011-02-22 07:18:56 -08:00
David Turner
5d90cb30f4 Merge "Updated gcc 4.4.3 IA toolchain doesn't require the .ctors list" 2011-02-22 07:05:32 -08:00
Mattias Falk
149f7dfe04 Proxy getnameinfo through netd
Proxy the parts of getnameinfo that utilize
the dns cache through netd.

Change-Id: I1d57c451ea6b179c34828cf57a4182b262674003
2011-02-22 08:22:16 +01:00
Mike Lockwood
6bd73ed417 Add linux/usb/f_accessory.h header for USB accessory driver DO NOT MERGE
Change-Id: I972d28065ee7e77e93699512310fcd6d5742ed0d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-21 12:35:22 -05:00
David Turner
aac93c2370 Merge "Convert cname lenght before use" 2011-02-16 18:58:45 -08:00
Bruce Beare
48e1feaa9d Updated gcc 4.4.3 IA toolchain doesn't require the .ctors list
Change-Id: Ia840a19a45257128eccdcf25d105f500f2d90741
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-02-16 17:50:23 -08:00
Mattias Falk
066ecc8f4a Convert cname lenght before use
The length of the cname is sent in big-endian
order. Thus, it has to be converted before used
in android_getaddrinfo_proxy

Change-Id: I1a0cc12780c47f7493fcf06f690515829f88c01e
2011-02-15 08:44:20 +01:00
Mattias Falk
3a4910c616 Use system property to set dns cache size
Use system property ro.net.dns_cache_size to set
the size of the cache. If the system property
is not set the default cache size is defined by
CONFIG_MAX_ENTRIES.

The number of entries in the hash table will be equal
to the number of max entries allowed in the cache.

Change-Id: I77d69d7c178937fa483d0b40512483ad29232d28
2011-02-14 12:41:11 +01:00
Dmitry Shmidt
a3db183abe Update
Change-Id: I41f590dec6bfd26c36cf01601cf03502d02d29af
2011-02-11 11:49:37 -08:00
David Turner
76299d196f Merge "Remove an extra register move." 2011-02-06 15:01:57 -08:00