Commit Graph

205 Commits

Author SHA1 Message Date
Iliyan Malchev
276313ec18 bionic: add processed kernel headers a1026.h and tpa2018d1.h
Signed-off-by: Iliyan Malchev <malchev@google.com>
2010-02-02 11:56:29 -08:00
Mathias Agopian
5f53a18204 Revert "Add qsort_r() implementation to the C library."
This reverts commit 754c178ae5.

Turns out we don't need it afterall (needed a stable sort anyways).
So, we'll make that change in the dev branch instead.
2009-12-03 16:14:40 -08:00
David 'Digit' Turner
754c178ae5 Add qsort_r() implementation to the C library.
NOTE: This replaces qsort.c with the FreeBSD version. While
      the patch changes the source, it should not alter the
      implementation that should use the exact same algorithm.
2009-12-03 11:40:15 -08:00
Android (Google) Code Review
e1e684920f Merge change Ifa58a406 into eclair
* changes:
  libc: kernel: Update msm_kgsl.h header
2009-12-03 02:09:47 -08:00
David 'Digit' Turner
fe62de1ad0 Add support for R_ARM_REL32 to the dynamic linker.
Merged from eclair-mr2
2009-12-02 10:54:53 -08:00
Dima Zavin
7b12b4a349 libc: kernel: Update msm_kgsl.h header
Change-Id: Ifa58a406c9419c5ad73a1f9456add6dd54bfb2ba
Signed-off-by: Dima Zavin <dima@android.com>
2009-12-02 05:09:56 -08:00
Eric Fischer
cd5df2d92c Rebuild the time zone data files in 32-bit format instead of 64-bit.
The 64-bit data is not currently being used and more than doubles the size.
2009-11-24 13:52:05 -08:00
Eric Fischer
7e61789985 Correct the raw offsets in the time zone index for a few zones.
ZoneCompactor was using the system time zone database to get the offsets
instead of using the data it was compiling, so for newly added or recently
changed zones the index could be inconsistent with the data.

Affected zones: San_Luis, Casey, Davis, Mawson, Kathmandu, Novokuznetsk
2009-11-23 16:28:11 -08:00
Eric Fischer
a6083b7768 Update zoneinfo time zone data to version 2009s
http://b/issue?id=2272477
2009-11-20 14:39:55 -08:00
Dima Zavin
110044b131 libc: kernel: Update msm_kgsl.h header
Change-Id: I8b22bcb4816fca5e0b92fee4b2ccb0ef135be5a9
Signed-off-by: Dima Zavin <dima@android.com>
2009-11-13 02:29:17 -08:00
Mathias Agopian
199f9d9238 Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)
use 64 bytes cache lines, reduce the main loop to 64-bytes instead of
128 bytes and adjust the prefetch distance to the optimal value.
2009-10-28 03:17:02 -07:00
Android (Google) Code Review
763ac28357 Merge changes Ibcba4b4f,I9af341e1 into eclair
* changes:
  bionic/linker: make the buddy allocator compute max_order on its own
  bionic/linker: change the buddy allocator to take a handle to the managed area
2009-10-23 21:27:57 -04:00
Andy McFadden
96bbbe2177 Wrap ARM abort() to improve stack trace.
The code generated for Thumb and Thumb2 targets has different handling
for abort().  Because abort() is "noreturn", it doesn't need to preserve
the callee-save registers.  The Thumb2 version trashes LR and makes it
impossible to figure out who called abort().

This inserts a trivial stub function; net effect is stack traces are
reasonable after an abort().

For bug 2191452.

Eclair branch Dr. No approved by: hiroshi
2009-10-21 10:41:12 -07:00
Iliyan Malchev
bb9eedeff4 bionic/linker: make the buddy allocator compute max_order on its own
Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-10-19 18:10:35 -07:00
Iliyan Malchev
af7315acf6 bionic/linker: change the buddy allocator to take a handle to the managed area
-- rename struct ba_info to struct ba
-- move the static ba descriptor from ba.c to linker.c and rename it ba_prelink
-- ba_init, ba_allocate, ba_free, ba_start_addr, and ba_len all take a pointer
   to struct ba

Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-10-19 18:10:35 -07:00
Mathias Agopian
7e7d6c48a0 use local symbols in memset so it doesn't screw up profiling 2009-10-19 16:34:38 -07:00
Android (Google) Code Review
ff7b46b87c Merge change I3c998761 into eclair
* changes:
  Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.
2009-10-16 15:27:36 -04:00
Dima Zavin
5c32826841 libc: kernel: add linux/msm_q6venc.h kernel include for qsd8k h/w video encode
Change-Id: I58c6eb0d417d5a30fa245f693304a147631fd07f
Signed-off-by: Dima Zavin <dima@android.com>
2009-10-13 20:57:16 -07:00
Iliyan Malchev
0e24d2c944 update msm_camera.h
Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-10-13 20:28:29 -07:00
David 'Digit' Turner
3c99876116 Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.
The lowest bit of the symbol's value should be ignored when looking at UNDEF symbols
for correctness. It is used as an ARM/Thumb flag by the linker.
2009-10-13 16:55:18 -07:00
Dima Zavin
9a96aaa8ef libc: kernel: Update linux/msm_kgsl.h to latest
Change-Id: I530cea1110fc6e6ccf150e6b176e708030ce8a94
Signed-off-by: Dima Zavin <dima@android.com>
2009-10-07 20:19:16 -07:00
Mathias Agopian
e36502673d fix [2170898] abort() doesn't print a stack tarce
the issue here is that abort() can be called from anywhere, in particular
from malloc or free. When we try to use the debug_log functions, these
can end up calling into some code (like malloc/free) that called abort()
in the first place and end up in an infinite recursion loop.
2009-10-06 16:02:12 -07:00
David 'Digit' Turner
fdc5c1f56f Re-enable ARMv7 memcpy implementation.
Do not submit this patch before the one that modifies the Android emulator to
work-around a weird ARMv7 emulation issue. This is done to temporarily re-allow
the -user builds needed for QA.
2009-10-05 14:25:10 -07:00
David 'Digit' Turner
1e40783d9a Fix armv7-user builds by disabling the ARMv7-optimized memcpy.
This is required to work-around some corny bugs in ARMv7 emulation.

The emulation itself is required to run the dex pre-optimization pass
for -user builds.
2009-10-02 19:13:27 -07:00
Android (Google) Code Review
fe46030cdd Merge changes I3bd27087,I0c9ec550,I3a0e5e86 into eclair
* changes:
  bionic/linker: allow resolving of symbols from library back to executable
  bionic/linker: change lookup() to return soinfo, not base
  Revert "Revert "bionic/linker: fix symbol lookup during relocations""
2009-09-29 18:21:53 -04:00
Android (Google) Code Review
7a9e06fa7e Merge change I2a7ad975 into eclair
* changes:
  Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.
2009-09-29 18:04:51 -04:00
David 'Digit' Turner
2a7ad97539 Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.
For a detailed description of the problem and why this fix is
needed, plrease read the comments in libgcc_compat.c
2009-09-29 14:43:38 -07:00
Iliyan Malchev
4a9afcb101 bionic/linker: allow resolving of symbols from library back to executable
Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-09-29 14:33:46 -07:00
Iliyan Malchev
9ea64da6c5 bionic/linker: change lookup() to return soinfo, not base 2009-09-29 14:33:46 -07:00
Iliyan Malchev
6ed80c8814 Revert "Revert "bionic/linker: fix symbol lookup during relocations""
This reverts commit 33acbf0719.
2009-09-29 14:33:46 -07:00
Mathias Agopian
ee223d02d9 NEON optimized memcpy.
372 MB/s for large transfers, 440 MB/s for smaller ones down to 1KB. 130 MB/s for very small transfers ( < 32 bytes )
Performance is similar with non-congruent buffers.
2009-09-28 19:08:18 -07:00
Mathias Agopian
33acbf0719 Revert "bionic/linker: fix symbol lookup during relocations"
This reverts commit 8d0c0334f1.
2009-09-27 22:04:15 -07:00
Android (Google) Code Review
4e5a965d6a Merge change 27075 into eclair
* changes:
  bionic/linker: fix symbol lookup during relocations
2009-09-27 20:23:22 -04:00
Iliyan Malchev
8d0c0334f1 bionic/linker: fix symbol lookup during relocations
When resolving relocations while loading a library, the linker used to find
symbols by looking them up in the list of all linked libraries for the current
process, as opposed to following just the library's DT_NEEDED entries.  This
can cause a problem where the symbol is picked up from the wrong library.

Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-09-27 17:18:06 -07:00
David 'Digit' Turner
f355096a64 Remove NEON optimizations for memcpy 2009-09-27 07:08:46 -07:00
David 'Digit' Turner
bc10cd2900 Fix a typo that resulted in a crash in the boot sequence 2009-09-23 15:56:50 -07:00
Android (Google) Code Review
d154954f02 Merge change 26419 into eclair
* changes:
  Add pthread_mutex_lock_timeout_np
2009-09-23 15:10:02 -04:00
David 'Digit' Turner
3f56b7f65a Add pthread_mutex_lock_timeout_np
This is used to perform a mutex lock for a given amount of
milliseconds before giving up. Using the _np prefix since this
is absolutely not portable.

Also remove a compiler warning in pthread_attr_getstackaddr
2009-09-22 15:17:50 -07:00
David 'Digit' Turner
4a05d12cf5 Fix TLS access for ARMv6 and beyond.
For performance reasons, we don't call the kernel helper. Instead, we directly
access the TLS register on ARMv6 and higher. For ARMv5TE, keep using the hard-coded
address populated by the kernel on each task switch.

NOTE: Since we don't call the kernel helper, this must precisely match your
      kernel configuration. This is controlled by setting the ARCH_ARM_HAVE_TLS_REGISTER
      variable to 'true' in your board configuration file.
2009-09-22 10:03:59 -07:00
Dima Zavin
916edf2a3f libc: kernel-headers: update msm_mdp.h to include premultiplied alpha
Change-Id: I653d638353d9246287bcf568bbffd0f5dbc64019
Signed-off-by: Dima Zavin <dima@android.com>
2009-09-20 19:11:18 -07:00
Ben Cheng
bd192b470b Add stack unwinding directives to assembly leaf functions.
So that the real culprit of native crashes can surface in the stack trace.
2009-09-15 13:41:14 -07:00
Iliyan Malchev
824201294b bionic: update processed msm_camera.h
Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-09-11 00:29:59 -07:00
Android (Google) Code Review
4e57cf3f8c Merge change 24463 into eclair
* changes:
  Fix an infinite loop in time2sub.
2009-09-09 20:53:15 -04:00
David 'Digit' Turner
2093d350be Fix an infinite loop in time2sub.
The problem is that time_t is signed, and the original code relied on the
fact that (X + c < X) in case of overflow for c >= 0. Unfortunately, this
condition is only guaranteed by the standard for unsigned arithmetic, and
the gcc 4.4.0 optimizer did completely remove the corresponding test from
the code. This resulted in a missing boundary check, and an infinite loop.

The problem is solved by testing explicitely for TIME_T_MIN and TIME_T_MAX
in the loop that uses this.

Also fix increment_overflow and long_increment_overflow which were buggy
for exactly the same reasons.

Note: a similar fix is needed for system/core/libcutils
2009-09-09 17:45:00 -07:00
Erik Gilling
9e74f697e0 libc: add void to clock() function prototype
Signed-off-by: Erik Gilling <konkers@android.com>
2009-09-09 14:58:19 -07:00
Android (Google) Code Review
b4423ff7df Merge change 22848 into eclair
* changes:
  Neon-optimized versions of memcpy.
2009-09-02 15:06:32 -07:00
David 'Digit' Turner
1bbc56cd22 Neon-optimized versions of memcpy.
This optimization come from the external 0xdroid repository.
Original patch can be found here:

ebafe41c2c
2009-09-02 23:21:52 +02:00
Dima Zavin
2e5bd8f8aa libc: kernel-headers: Add qdsp6 vdec header
Change-Id: Ib6cd13e86cea84c1cc0901dee3e9ef05eb8279cd
Signed-off-by: Dima Zavin <dima@android.com>
2009-08-30 19:17:26 -07:00
Iliyan Malchev
898cc98f3d bionic: add sanitized lightsensor kernel header
Signed-off-by: Iliyan Malchev <malchev@google.com>
2009-08-20 16:31:28 -07:00
Dima Zavin
fcb10796ec Update pmem/hw3d/mdp headers
Signed-off-by: Dima Zavin <dima@android.com>
2009-08-19 18:48:57 -07:00