Commit Graph

184 Commits

Author SHA1 Message Date
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
Erik Gilling
30eb40241c bionic: linker: add error message if link failed due to previous error
Signed-off-by: Erik Gilling <konkers@android.com>
2009-08-13 16:18:07 -07:00
Android (Google) Code Review
ac68b70ed9 Merge change 9642
* changes:
  Don't request IPv6 addresses if AI_ADDRCONFIG is specified and the system has no IPv6 connectivity.
2009-08-08 09:46:30 -07:00
Jean-Baptiste Queru
44ac5d5d93 merge from open-source master 2009-08-07 17:04:35 -07:00
Android Code Review
bb08537104 Merge change 10057
* changes:
  Add mspace_merge_objects
2009-08-07 16:43:33 -07:00
Dima Zavin
81fa6d5f94 libc: add linux/msm_kgsl.h kernel include
Signed-off-by: Dima Zavin <dima@android.com>
2009-08-05 17:56:56 -07:00
Dima Zavin
4c4a9632bd libc: kernel: let clean_header tool take path to kernel originals as argument
Signed-off-by: Dima Zavin <dima@android.com>
2009-08-05 17:56:55 -07:00
Lorenzo Colitti
3d8f4ada56 Don't request IPv6 addresses if AI_ADDRCONFIG is specified and the system has no IPv6 connectivity. 2009-08-04 13:17:03 -07:00
Android (Google) Code Review
6e36f86333 Merge change 9546
* changes:
  Fix strftime to use localized month names.
2009-08-04 10:06:58 -07:00
Jean-Baptiste Queru
2b45974837 merge from open-source master 2009-08-04 09:00:15 -07:00
Eric Fischer
d5f72afd49 Fix strftime to use localized month names.
It was using the default locale (capital L) instead of the
current locale (lowercase l).

Bug 2030864
2009-08-03 15:43:18 -07:00
Jean-Baptiste Queru
c1e553a9cf merge from donut 2009-08-03 07:45:26 -07:00
Erik Gilling
8b09aa39c3 am fde8642f: bionic/linker: keep track of opened libraries by basename
Merge commit 'fde8642fc43bdd224e43e5ee9583a49a758fb03c'

* commit 'fde8642fc43bdd224e43e5ee9583a49a758fb03c':
  bionic/linker: keep track of opened libraries by basename
2009-07-30 06:57:18 -07:00
Jean-Baptiste Queru
61e844f48e merge from donut 2009-07-29 14:56:48 -07:00
Android (Google) Code Review
e5bcc9dc5c am 22b5eb85: Merge change 8281 into donut
Merge commit '22b5eb858dcbb537f2522ad920ca793348d574a2'

* commit '22b5eb858dcbb537f2522ad920ca793348d574a2':
  linker: remove newlines from DL_ERR so that dlerror works correctly
2009-07-29 14:47:55 -07:00
Erik Gilling
fde8642fc4 bionic/linker: keep track of opened libraries by basename
Prior to this change, the dynamic loader kept track of opened libraries
either by their base name (i.e., libfoo.so instead of /system/lib/libfoo.so)
when the shared library was loaded through the DT_NEEDED tag in an ELF header,
or by whatever name was passed to dlopen(). This created a number of problems,
among which:

1. dlopen("libfoo.so") and dlopen("/path/to/libfoo.so") would open the same
library twice;
2. dlopen("/path/to/libfoo.so") and then dlopen("libbar.so"), where libbar.so
depends on libfoo.so, would open libfoo.so twice.

This patch makes the dynamic loader keep track of each loaded library by
basename, which resolves the above ambiguity. The patch also enforces
library lookup by base name, which means that it will refuse to load another
library that has the same name.

Thanks for the inspiration Iliyan.

Signed-off-by: Erik Gilling <konkers@android.com>
Cc: Iliyan Malchev <malchev@google.com>
2009-07-28 20:36:47 -07:00
Android (Google) Code Review
22b5eb858d Merge change 8281 into donut
* changes:
  linker: remove newlines from DL_ERR so that dlerror works correctly
2009-07-28 17:35:12 -07:00
David 'Digit' Turner
9cfb12e6bc am 3773d35e: Make the DNS resolver accept domain names with an underscore.
Merge commit '3773d35eb98e22b5edab4d82fb72bdf86ff80494'

* commit '3773d35eb98e22b5edab4d82fb72bdf86ff80494':
  Make the DNS resolver accept domain names with an underscore.
2009-07-28 15:27:33 -07:00
David 'Digit' Turner
3773d35eb9 Make the DNS resolver accept domain names with an underscore.
More precisely, this accepts domain labels with an underscore in
the middle (i.e. not at the start or the end of the label). This
is needed to perform complex CNAME chain resolution in certain
VPN networks.
2009-07-27 19:19:29 +02:00
Jean-Baptiste Queru
eda65ce1a5 reconcile korg/master into goog/master 2009-07-26 11:43:53 -07:00
Jean-Baptiste Queru
e7274663f1 Merge korg/donut into korg/master 2009-07-25 17:48:00 -07:00
Erik Gilling
d00d23a9d4 linker: remove newlines from DL_ERR so that dlerror works correctly
Signed-off-by: Erik Gilling <konkers@android.com>
2009-07-22 17:10:39 -07:00