History log of /bionic/linker/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bda5da074eab4bdf374e1f4a19d480c62c72f5ff 28-Sep-2011 Mathias Agopian <mathias@google.com> fix prototype of dladdr

this breaks C++ source code in particular.

Change-Id: Ie06b5d31d23b5455e6950c470adc64dd5e7784df
lfcn.c
inker.c
inker.h
96e5faccdc5616bb6d4a55d50a0e6148f99d943b 30-Aug-2011 David 'Digit' Turner <digit@android.com> am 91966c30: am 0acdbe08: am 89ea107d: Merge "linker: allow debugging of constructors"

* commit '91966c30efbdc7feecd6c45a46ab488e715c0a35':
linker: allow debugging of constructors
91966c30efbdc7feecd6c45a46ab488e715c0a35 30-Aug-2011 David 'Digit' Turner <digit@android.com> am 0acdbe08: am 89ea107d: Merge "linker: allow debugging of constructors"

* commit '0acdbe0892105d01a38de9baf4e34eef22b8259c':
linker: allow debugging of constructors
38bccb271f121fc06eaa0d8fbd3c982bc44c36b7 29-Aug-2011 Nick Kralevich <nnk@google.com> linker.h: don't change the soinfo structure

In 48527c3f740a80b45acb5a6efc217f771ae50143, we modified the soinfo
structure to remove an unnecessary variable. However, third party
programs seem to be relying on the structure not changing.
Add a dummy variable back into place to preserve structure.

Bug: 5064106

Change-Id: I3014dda1a46e624644b09e156c3e9381ba3729bd
inker.h
e5ea45547e131ae842b7c79cd45b164470137367 27-Aug-2011 David 'Digit' Turner <digit@android.com> linker: allow debugging of constructors

This patch allows the debugging of constructors in shared
libraries and executables. It does so by ensuring that the
corresponding binary is visible to gdb before running the
constructors.

Change-Id: I0a3df726a04ad109944c834dcbba672b85d3991e
inker.c
ec92af8fe5d28c74f3505932135b1b8f3fbaad00 29-Jul-2011 Andy McFadden <fadden@android.com> Log signal info at time of receipt

When a fatal signal is received, we now write a message to the log
that looks like this:

F/libc ( 1540): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)

This is useful for debugging fatal signals that turn out not to be
fatal. This also changes the signal reset from SIG_IGN to SIG_DFL,
so that future non-fatal fatal signals are fatal.

The code that blocked SIGUSR1 to avoid being interrupted by the GC
has been removed.

Also, fix minor issues in format_buffer().

Bug 5035703

Change-Id: I8940af47297b5dcf3cf33537e3483ca5334ed565
ebugger.c
inker_format.c
48527c3f740a80b45acb5a6efc217f771ae50143 17-Jul-2011 Shih-wei Liao <sliao@google.com> Revert "Revert "linker: get rid of the buddy allocator""

This reverts commit f9a9cda23a6afc1c2dfdfd624cde23b61941eb5e.
This revert is promised once b/5039224, b/5036755, b/5036610 are resolved.
ndroid.mk
a.c
a.h
inker.c
inker.h
f9a9cda23a6afc1c2dfdfd624cde23b61941eb5e 16-Jul-2011 Nick Kralevich <nnk@google.com> Revert "linker: get rid of the buddy allocator"

This reverts commit 7059b1f02ea9197728c851edd9ae0dd7688fa700.
Bug: 5036610
ndroid.mk
a.c
a.h
inker.c
inker.h
7059b1f02ea9197728c851edd9ae0dd7688fa700 14-Jul-2011 Nick Kralevich <nnk@google.com> linker: get rid of the buddy allocator

Currently, the Android linker is placing shared libraries into
a well-known spot in memory. This is interfering with the kernel's
ASLR support.

This change stops forcing non-prelinked libraries into a particular
address space.

Also, get rid of FLAG_PRELINKED. As best I can tell, this flag
is never used.

Change-Id: I527af12fb54f821c2b5ca7693dbf63d022f8f4ae
ndroid.mk
a.c
a.h
inker.c
inker.h
a903811819c06e4d6e9e27fcc9db3ab5459009bc 07-Jun-2011 Martijn Coenen <maco@google.com> Revert "x86: Enable -fstack-protector"

This reverts commit e0b4844a20ffd022a568abb4203b3f7c759c7ff5,
causes netd to crash.
ndroid.mk
rch/x86/begin.S
65fb884d28c26dc84d27bea6861b3a95a327db66 06-Jun-2011 David Turner <digit@android.com> am 204d1f65: am b2c7e0c1: Merge "x86: Enable -fstack-protector"

* commit '204d1f65dbfc6d5a14a90627d9d1efcfce8261ee':
x86: Enable -fstack-protector
204d1f65dbfc6d5a14a90627d9d1efcfce8261ee 06-Jun-2011 David Turner <digit@android.com> am b2c7e0c1: Merge "x86: Enable -fstack-protector"

* commit 'b2c7e0c18b7ab04cfe306277c79165de0612a2d1':
x86: Enable -fstack-protector
e0b4844a20ffd022a568abb4203b3f7c759c7ff5 04-May-2011 Bruce Beare <bruce.j.beare@intel.com> x86: Enable -fstack-protector

Change-Id: Ib69514c3afcb4c1f5e5f3f8cd91acfd145a0866c
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
ndroid.mk
rch/x86/begin.S
c2af2c075f15fa22f7ac8f6bb9d2aab1c3bd3b31 02-May-2011 David Turner <digit@android.com> am 1af88c97: am d004dc99: Merge "Use MAP_FIXED when allocating prelinked shared library regions"

* commit '1af88c97432c88ec5b39d155e8c296d2a6eb1225':
Use MAP_FIXED when allocating prelinked shared library regions
1af88c97432c88ec5b39d155e8c296d2a6eb1225 02-May-2011 David Turner <digit@android.com> am d004dc99: Merge "Use MAP_FIXED when allocating prelinked shared library regions"

* commit 'd004dc9957cd8944d3db8ed92544c8ee65b117ca':
Use MAP_FIXED when allocating prelinked shared library regions
368070454b1349d1fcf29a5d1eb51c869fb538f6 14-Mar-2011 Iliyan Malchev <malchev@google.com> bionic: remove LOCAL_PRELINK_MODULE

Change-Id: Iad65ae18446b20d2aace7b8fe19b1a032b616e9c
Signed-off-by: Iliyan Malchev <malchev@google.com>
ndroid.mk
db4bce05493d09a20f1ebc0ab68c82e906327afd 10-Mar-2011 Chris Dearman <chris@mips.com> Use MAP_FIXED when allocating prelinked shared library regions

Prelinked libraries must be mapped to a fixed address. MAP_FIXED is ignored
for non-prelinked libraries (si->base==0)

Signed-off-by: Raghu Gandham <raghu@mips.com>
inker.c
81d79f9fb38d9ae8a5711f5774aa5a1516f6cc26 10-Mar-2011 David 'Digit' Turner <digit@android.com> am 962dcb22: am fed58049: Merge "libc: Fix PTHREAD_RWLOCK_INITIALIZER"

* commit '962dcb22218a1a6d4ebd05e4fc4a69875d037234':
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
48e1feaa9d7d7f36b5eba25baccd99a56adf9b64 27-Jan-2011 Bruce Beare <bruce.j.beare@intel.com> 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>
rch/x86/begin.S
72f9a5c374bf559e9c69a62c1d95304f913ef6b2 11-Feb-2011 Kenny Root <kroot@google.com> Increase SO_MAX to accomodate valgrind

system_server loads up 87 shared libraries upon start. Running under
valgrind pushes this just over the edge of 96. Increase SO_MAX to 128 to
give us some more headroom.

Change-Id: Iadceb14ab6d9621bdccd292570d50867828057d9
inker.c
b67c1bacd0fc27c26cc3ec19bd2c9ded19cecd08 21-Jan-2011 tedbo <tedbo@google.com> Fix bug in linker environment variable lookup.

The linker_env_get() method that is used to match an environment
variable was failing due to an incorrect equality check.

This was introduced in git change
be5755969d70668bbab0e0c0ed75ebd867189723.

The bug was causing the linker to ignore environment variables such
as LD_LIBRARY_PATH. This issue also affects the linker_env_secure()
path that removes unsafe environment variables, since it would
not match any in the unsecure variable list.

Change-Id: I14228df9252010e9fb4c1862bed5735f23e97aec
inker_environ.c
b3cdf7fef86eb17dba5640e9a1b158510326b9b7 21-Jan-2011 tedbo <tedbo@google.com> Fix bug in linker environment variable lookup.

The linker_env_get() method that is used to match an environment
variable was failing due to an incorrect equality check.

This was introduced in git change
be5755969d70668bbab0e0c0ed75ebd867189723.

The bug was causing the linker to ignore environment variables such
as LD_LIBRARY_PATH. This issue also affects the linker_env_secure()
path that removes unsafe environment variables, since it would
not match any in the unsecure variable list.

Change-Id: I169024de4a005321e768accd38246fc1d717271b
inker_environ.c
1f353828c3535c03899d6cc08d26f85fc688622e 18-Jan-2011 Glenn Kasten <gkasten@google.com> Fix typos

Change-Id: Ia02baba53be7034903f325258205441e5c193f7b
EADME.TXT
be5755969d70668bbab0e0c0ed75ebd867189723 16-Dec-2010 David 'Digit' Turner <digit@google.com> linker: Remove unsecure env. variable for setuid programs.

This removes several unsecure environment variables from the
environment block when the program being loaded is setuid. The
list of env. variables is the same than what GLibc uses at this
point.

Change-Id: I456d3ea0880fe0d4de0d3c5dd51871dd36e87fd6
ndroid.mk
inker.c
inker_environ.c
inker_environ.h
fedbcde6ef552e84bf7ce7598bca7dddf1722d6a 19-Sep-2010 Brian Swetland <swetland@google.com> add /vendor support

- add /vendor/lib to front of default library search path
- remove long-obsolete /lib from default library search path

Change-Id: I7d33bf899be018e7cc4c213d5790bbd991023a62
inker.c
a716190241da07f42cf874b04bf044261f36381c 18-Aug-2010 Dima Zavin <dima@android.com> linker: fix overwriting the real linker error string

Change-Id: Ia9165fd9aa1951b2bb81d0ac8f5bb3057aded8bd
Signed-off-by: Dima Zavin <dima@android.com>
inker.c
6774809b6249d9d4efd982b6e3ca377c84482d9a 22-Jul-2010 David 'Digit' Turner <digit@google.com> linker: Support dlopen(NULL, ...) properly.

Change-Id: Icba37823cb350c34848cc466d144c3a0af87c94c
inker.c
8bff9a31aa13ff83ccaedd54ebda96770e6cf910 11-Jun-2010 David 'Digit' Turner <digit@google.com> linker: remove libcutils dependency by re-implementing simpler socket_local_client.

Change-Id: I87f29fd59454d713b9ddfb13e6cf114822f52efd
ndroid.mk
ebugger.c
f4394458301909a83b7ee7f3b436c038b7235ea8 12-May-2010 Jean-Baptiste Queru <jbq@google.com> fix build

Change-Id: I243c98e20a250e0d40d481f16af481ff070219fd
inker.c
bb7928ccdae0cc5766f290e18ab14b07d80c6912 12-May-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Iecfd2bd3069f70bbe508042cc249fcf7ff24800d
4fd42c1dc002fa19349fa0d4ef97757eb1815032 31-Dec-2009 Matt Fischer <matt.fischer@garmin.com> Added support for LD_PRELOAD

The LD_PRELOAD environment variable allows the user to specify a list of
libraries which should be unconditionally loaded before any others. This
makes possible some useful tricks, such as library interposers.

Change-Id: I433d775ab08ef63a5fbe7b21f87a5642954fc32f
inker.c
5ef5272be985dfdeafa86077c306f6b64d334240 21-Apr-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I518bb4ae9d7269957365561d4d609f22cde519db
1698d9ebfc7e27271852a1fdf305a2ac37b3ebe4 31-Dec-2009 Matt Fischer <matt.fischer@garmin.com> Fixed support for RTLD_NEXT in dlsym()

The previous implementation of this flag was broken--it behaved identically
to RTLD_DEFAULT. This adds a proper implementation, which examines the address
of the calling function, and uses it to determine which library to use to begin
the symbol search process.

Change-Id: I2ad2b46363f68932af63a3828a22f9c7987eea67
lfcn.c
inker.c
inker.h
d04672513351af4eb302692e0f39fd5bd17191cb 31-Mar-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I483fedf77d978b1c6e52d73eebc14f011bb9f809
3cab22c8cf0dcf30718a1452ce9cbb637876cea3 19-Jan-2010 Min-su, Kim <min-su.kim@windriver.com> linker: fix the undefined weak symbols issue
inker.c
377d4c979dee3dcb5929e8f7a68a53c2407259ab 22-Mar-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I70266ee8c520b216773f267e46c8273d2334c31d
e2a8b1fd19fb3a8ead2ba28ddba27be19fa978b5 31-Dec-2009 Matt Fischer <matt.fischer@garmin.com> Added support for dladdr()

dladdr() is a GNU extension function, which allows the caller to retrieve
symbol information for a specified memory address. It is useful for things
like generating backtrace information at runtime.

Change-Id: I3a1def1a6c9c666d93e1e97b7d260dfa5b9b79a9
lfcn.c
inker.c
inker.h
5c734644eebf8d01be1e86cbe20a111a5c5a2738 20-Jan-2010 David 'Digit' Turner <digit@google.com> Fix debug output in the dynamic linker.

This provides a mini-printf implementation that reduces the
size of the dynamic linker by 25 KB, by preventing the drag of
formatting-related routines from the C library.

Also allow traces to be sent to the log, instead of stdout.

NOTE: You now need to modify Android.mk to enable/disable debug
output.
ndroid.mk
EADME.TXT
lfcn.c
inker.c
inker_debug.h
inker_format.c
inker_format.h
e100f52f4ad1b70762bbcc5ad9828bd258917ee5 11-Feb-2010 Iliyan Malchev <malchev@google.com> bionic/linker: rename ba_prelink to ba_nonprelink

-- fixes b/2432550
-- ba_prelink is used to manage non-prelinked libraries, hence ba_nonprelink is
a more appropriate name for it

Signed-off-by: Iliyan Malchev <malchev@google.com>
inker.c
90f82e5868de5a30d4842951b80be0c8a9cedc6d 25-Jan-2010 Doug Kwan <dougkwan@google.com> Fix typo in a comment.
ndroid.mk
1a2917ca954f575cc9698c99e54bd93087793c8f 25-Jan-2010 Doug Kwan <dougkwan@google.com> Align TEXT section to 4K boundary so that we can use both ld and gold.
ndroid.mk
278d157f437c0357b7c6d1fb1cbffbc0a72bb788 30-Sep-2009 Gary King <gking@nvidia.com> Use correct TLS codepath for linker

Replicate ARM libc build's HAVE_ARM_TLS_REGISTER preprocessor definition
logic, to ensure that the runtime linker uses the correct codepath for
accessing the TLS address
ndroid.mk
a3de55c83185ba3d1355f20b48ef9ec3fc4c281d 02-Dec-2009 David 'Digit' Turner <digit@google.com> am fe62de1a: Add support for R_ARM_REL32 to the dynamic linker.

Merge commit 'fe62de1ad036a1417df44b7b1a7c65cc79dc7091' into eclair-plus-aosp

* commit 'fe62de1ad036a1417df44b7b1a7c65cc79dc7091':
Add support for R_ARM_REL32 to the dynamic linker.
fe62de1ad036a1417df44b7b1a7c65cc79dc7091 02-Dec-2009 David 'Digit' Turner <digit@google.com> Add support for R_ARM_REL32 to the dynamic linker.

Merged from eclair-mr2
inker.c
inker.h
83d3d7491a2d3870efd8d5be9281ee942f5fad07 18-Nov-2009 David 'Digit' Turner <digit@google.com> am ebf3ea00: am 34ea5117: Add support for R_ARM_REL32 to the dynamic linker.

Merge commit 'ebf3ea006e5367fff93d2491eec24c4b1a633805'

* commit 'ebf3ea006e5367fff93d2491eec24c4b1a633805':
Add support for R_ARM_REL32 to the dynamic linker.
ebf3ea006e5367fff93d2491eec24c4b1a633805 18-Nov-2009 David 'Digit' Turner <digit@google.com> am 34ea5117: Add support for R_ARM_REL32 to the dynamic linker.

Merge commit '34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66' into eclair-mr2-plus-aosp

* commit '34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66':
Add support for R_ARM_REL32 to the dynamic linker.
34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66 17-Nov-2009 David 'Digit' Turner <digit@google.com> Add support for R_ARM_REL32 to the dynamic linker.
inker.c
inker.h
b152dde4cafffb3b37ca60c589f71110ca988c79 09-Nov-2009 Jean-Baptiste Queru <jbq@google.com> am 83362689: merge from open-source master

Merge commit '83362689f5b1f6393d376d242fe29541b63ead2d'

* commit '83362689f5b1f6393d376d242fe29541b63ead2d':
added and modified linker to support SuperH architecture
Add the BSD sys_signame array.
added and modified bionic code to support SuperH architecture
83362689f5b1f6393d376d242fe29541b63ead2d 09-Nov-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master
10be95cffc7f2b02d8baac55a9cf1b16d8afbadb 09-Nov-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master
ad13c57298e57d33c130fb03a2c6494da573408c 06-Nov-2009 Shin-ichiro KAWASAKI <shinichiro.kawasaki.mg@hitachi.com> added and modified linker to support SuperH architecture
ndroid.mk
rch/sh/begin.S
lfcn.c
inker.c
inker.h
e823807dc2fb5f2d44cd00d75c10ddd9f5e93bea 26-Oct-2009 Doug Kwan <dougkwan@google.com> Add weak symbol support. Also fix a bug caused by a typo.
inker.c
f1729553e310b55eef8ee784c95cd9dd8ffd24fd 24-Oct-2009 Iliyan Malchev <malchev@google.com> am 9e78de3e: am 70bba516: am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair

Merge commit '9e78de3e3c90ec3c2970431d8eae7378fdc0dac6'

* commit '9e78de3e3c90ec3c2970431d8eae7378fdc0dac6':
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
9e78de3e3c90ec3c2970431d8eae7378fdc0dac6 24-Oct-2009 Iliyan Malchev <malchev@google.com> am 70bba516: am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair

Merge commit '70bba5160f83ecd6251c4539f747ae39e9ed469c' into eclair-mr2-plus-aosp

* commit '70bba5160f83ecd6251c4539f747ae39e9ed469c':
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
53b32f8b7ef0ae319cc048ce1f0a81a4be8bce64 24-Oct-2009 Iliyan Malchev <malchev@google.com> am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair

Merge commit '763ac28357f604e0e4196e0a7ad5b0f5cdcf274a' into eclair-plus-aosp

* commit '763ac28357f604e0e4196e0a7ad5b0f5cdcf274a':
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
70bba5160f83ecd6251c4539f747ae39e9ed469c 24-Oct-2009 Iliyan Malchev <malchev@google.com> am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair

Merge commit '763ac28357f604e0e4196e0a7ad5b0f5cdcf274a' into eclair-mr2

* commit '763ac28357f604e0e4196e0a7ad5b0f5cdcf274a':
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
943043583a8f3a8de34970b550a3e8e8a6fb0fb8 24-Oct-2009 Doug Kwan <dougkwan@google.com> Clean up some linker code.
inker.c
bb9eedeff4ddc4550991eb4511003bda8672d6c4 19-Oct-2009 Iliyan Malchev <malchev@google.com> bionic/linker: make the buddy allocator compute max_order on its own

Signed-off-by: Iliyan Malchev <malchev@google.com>
a.c
inker.c
af7315acf6a3a5ac329b04cb543b5d8a95dc26f1 17-Oct-2009 Iliyan Malchev <malchev@google.com> 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>
a.c
a.h
inker.c
b3cfdb6220b9ce8ec6d25984ef086fa06f157236 20-Oct-2009 David 'Digit' Turner <digit@google.com> am eeaf6544: Merge change I7934a799 into eclair-mr2

Merge commit 'eeaf6544b676f68ccdd70a3fa78f44789a1bf69c' into eclair-mr2-plus-aosp

* commit 'eeaf6544b676f68ccdd70a3fa78f44789a1bf69c':
Prevent spurious EINTR to freeze process debugging
eeaf6544b676f68ccdd70a3fa78f44789a1bf69c 19-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I7934a799 into eclair-mr2

* changes:
Prevent spurious EINTR to freeze process debugging
5d436ddcae640e2b2af30a5654bec33273b7a9c3 16-Oct-2009 David 'Digit' Turner <digit@google.com> am 8213d5c3: am ff7b46b8: Merge change I3c998761 into eclair

Merge commit '8213d5c3c072b23f5cc1922d232efe7338091d9b' into eclair-mr2-plus-aosp

* commit '8213d5c3c072b23f5cc1922d232efe7338091d9b':
Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.
cd230988286eb6aa395e051345052773f1943294 16-Oct-2009 David 'Digit' Turner <digit@google.com> am ff7b46b8: Merge change I3c998761 into eclair

Merge commit 'ff7b46b87c4d85881d88c2105a94be6c6accb628' into eclair-plus-aosp

* commit 'ff7b46b87c4d85881d88c2105a94be6c6accb628':
Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.
7934a799e1041db9cff9753f4d87d7361f644450 16-Oct-2009 David 'Digit' Turner <digit@google.com> Prevent spurious EINTR to freeze process debugging
ebugger.c
73981476a389847e8537cca37503c43e107fadc9 14-Oct-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master
3c99876116356cae09231189f09e5a679fd0d2fd 14-Oct-2009 David 'Digit' Turner <digit@google.com> 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.
inker.c
4a9afcb10151b083cd2d75253385615f459172ed 29-Sep-2009 Iliyan Malchev <malchev@google.com> bionic/linker: allow resolving of symbols from library back to executable

Signed-off-by: Iliyan Malchev <malchev@google.com>
inker.c
9ea64da6c511e8f9f4edae4c10c20879957631ab 29-Sep-2009 Iliyan Malchev <malchev@google.com> bionic/linker: change lookup() to return soinfo, not base
lfcn.c
inker.c
inker.h
6ed80c8814db9eed1fb687be22322e38dc46a2fb 29-Sep-2009 Iliyan Malchev <malchev@google.com> Revert "Revert "bionic/linker: fix symbol lookup during relocations""

This reverts commit 33acbf0719c4f3db059bc9e1f52cf554a5d0295f.
inker.c
33acbf0719c4f3db059bc9e1f52cf554a5d0295f 28-Sep-2009 Mathias Agopian <mathias@google.com> Revert "bionic/linker: fix symbol lookup during relocations"

This reverts commit 8d0c0334f1106d36f2fd5c1cf6d5dc75a4b88850.
inker.c
8d0c0334f1106d36f2fd5c1cf6d5dc75a4b88850 25-Sep-2009 Iliyan Malchev <malchev@google.com> 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>
inker.c
5cf640c926e7d7b79934c97226433a3dc448e1eb 03-Jul-2009 Thinker K.F Li <thinker@branda.to> Fill l_ld of linkmaps with value from soinfo::dynamic.

GDB will try to read l_ld of linkmaps and compare the value to vma of
.dynamic sections from shared objects. Since linker does not assign l_ld,
GDB will complain about and re-compute l_addr from l_ld. And, GDB will get a
wrong value.
inker.c
30eb40241c612a7ddbd21c4daa4e7bbfd9d5e89f 14-Aug-2009 Erik Gilling <konkers@android.com> bionic: linker: add error message if link failed due to previous error

Signed-off-by: Erik Gilling <konkers@android.com>
inker.c
fde8642fc43bdd224e43e5ee9583a49a758fb03c 29-Jul-2009 Erik Gilling <konkers@android.com> 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>
inker.c
d00d23a9d4598108d7f498291b35c7730e48cf5c 23-Jul-2009 Erik Gilling <konkers@android.com> linker: remove newlines from DL_ERR so that dlerror works correctly

Signed-off-by: Erik Gilling <konkers@android.com>
inker.c
ef0bd1857041ffde069cf52138aaf22c1af7130e 17-Jul-2009 David 'Digit' Turner <digit@google.com> Pass the elfdata pointer in a slot of the temporary TLS area.

This is needed to properly initialize the C runtime when libc.so
is loaded by the dynamic linker.

Move the temporary TLS setup before the first system call, just
in case something really horrible happens, we won't crash when
trying to write an error code in 'errno'

Remove the broken TLS_SLOT_THREAD_ID setup. First, this slot
should normally receive the address of a pthread_internal_t,
not a kernel thread identifier. Second, it is never used by
the linker anyway.

Also remove an obsolete comment.
inker.c
bc3a5c26f1b9cf29da6abfc3e197258ef4c03362 03-Jun-2009 David Bartley <dtb@google.com> Add LD_LIBRARY_PATH support to bionic's linker
inker.c
0353195f344666256dba474a15c9ba22cf0cccc9 30-May-2009 Dima Zavin <dima@android.com> linker: Give more context for failures during library dependency resolution.

Signed-off-by: Dima Zavin <dima@android.com>
inker.c
2e85579c34047c305caf15fb0ebe02bf3d001d0e 21-May-2009 Dima Zavin <dima@android.com> linker: Make the errors reported by dlopen/dlsym be more useful.

Changed it so that when the linker generates error messages, they are
scribbled away into a buffer that dlfcn and friends can read from.

Since the error messages are generetad with snprintf, and snprintf
MAY call malloc during some code paths, we now link against a version
of libc that does not contain malloc/free/realloc/calloc. We then define
malloc and friends in the dynamic loader, and make them abort() if they
are ever called.

Signed-off-by: Dima Zavin <dima@android.com>
ndroid.mk
lfcn.c
inker.c
inker.h
inker_debug.h
8215679b355efe3829bab571bd566dc818ea4ccc 18-May-2009 David 'Digit' Turner <digit@google.com> Fix the parsing of the .fini_array in the dynamic linker (it should happen in reverse order).
Also add a small design overview document for the linker. The latter contains details on
how the initialization/finalization is supposed to work.
EADME.TXT
inker.c
d1b40d8c69dfca94185ea9231f6cb16f70c02e39 12-May-2009 Dima Zavin <dima@android.com> linker: Compute symbol name before lookup so we can also use it for error msg

Signed-off-by: Dima Zavin <dima@android.com>
inker.c
ba52b3092f361580a5dea7ab8fbe2a227b55ee43 01-May-2009 James Dong <jdong@google.com> Increase the limit of loaded shared libraries from 64 to 96 This change is required for OpenCORE 2.0
This is the same as Change 71 in master branch.
inker.c
5e12d7ec70472659623d2e4552a670d8877f2423 25-Mar-2009 Iliyan Malchev <> Automated import from //branches/donutburger/...@140950,140950
inker.c
1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
ODULE_LICENSE_APACHE2
OTICE
rch/arm/begin.S
rch/x86/begin.S
a.c
a.h
ebugger.c
lfcn.c
inker.c
inker.h
inker_debug.h
t.c
1767f908af327fa388b1c66883760ad851267013 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
ODULE_LICENSE_APACHE2
OTICE
rch/arm/begin.S
rch/x86/begin.S
ebugger.c
lfcn.c
inker.c
inker.h
inker_debug.h
t.c
a799b53f10e5a6fd51fef4436cfb7ec99836a516 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
ndroid.mk
a.c
a.h
inker.c
inker.h
inker_debug.h
fe5745033a4f397c62a4e00efd9257ac9f83755c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
ndroid.mk
a.c
a.h
inker.c
inker.h
inker_debug.h
6f04a0f4c72acff80dad04828cb69ef67fa609d1 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
inker.c
9f65adf2ba3bb15feb8b7a7b3eef788df3fd270e 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
rch/arm/begin.S
rch/x86/begin.S
ebugger.c
inker.c
inker.h
inker_debug.h
t.c
e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
ndroid.mk
inker.c
4e468ed2eb86a2406e14f1eca82072ee501d05fd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
ebugger.c
inker.c
inker_debug.h
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ndroid.mk
ODULE_LICENSE_APACHE2
OTICE
rch/arm/begin.S
rch/x86/begin.S
ebugger.c
lfcn.c
inker.c
inker.h
inker_debug.h
t.c