Bart De VOS pointed out that removing absolute paths from the libc linker scripts is plainly wrong.
It dates from dawn ages of the original crosstool code, and is not well explained. At that time, binutils might not understand the sysroot stuff, and it was necessary to remove absolute paths in that case.
/trunk/scripts/build/libc/glibc.sh | 14 2 12 0 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
1 --- gdb-6.5/./gdb/gdbserver/thread-db.c.orig 2006-03-15 08:13:29.000000000 -0800
2 +++ gdb-6.5/./gdb/gdbserver/thread-db.c 2008-04-01 21:21:23.000000000 -0700
4 Foundation, Inc., 51 Franklin Street, Fifth Floor,
5 Boston, MA 02110-1301, USA. */
10 #include "linux-low.h"
11 @@ -134,6 +135,7 @@ thread_db_create_event (CORE_ADDR where)
14 struct inferior_linux_data *tdata;
18 fprintf (stderr, "Thread creation event.\n");
19 @@ -144,7 +146,13 @@ thread_db_create_event (CORE_ADDR where)
20 In the LinuxThreads implementation, this is safe,
21 because all events come from the manager thread
22 (except for its own creation, of course). */
23 - err = td_ta_event_getmsg (thread_agent, &msg);
24 + for (timeout = 0; timeout < 50000; timeout++)
26 + err = td_ta_event_getmsg (thread_agent, &msg);
27 + if (err != TD_NOMSG)
32 fprintf (stderr, "thread getmsg err: %s\n",
33 thread_db_err_str (err));