2002-08-07 Ulrich Drepper <drepper@redhat.com>
+ * elf/dl-load.c (_dl_map_object_from_fd): Add missing \n in error
+ message.
+
* stdlib/isomac.c (get_null_defines): Treat NOT_IN_libc special.
It is known to be defined.
#else
/* Uh-oh, the binary expects TLS support but we cannot
provide it. */
- _dl_fatal_printf ("cannot handle file '%s' with TLS data", name);
+ _dl_fatal_printf ("cannot handle file '%s' with TLS data\n", name);
#endif
break;
}
+2002-08-07 Ulrich Drepper <drepper@redhat.com>
+
+ * thread_dbP.h: Define LINUXTHREADS_INITIAL_REPORT_EVENTS.
+ * td_thr_event_enable.c (td_thr_event_enable): If th->th_unique is
+ null write to __linuxthreads_initial_report_events.
+ * td_symbol_list.c (symbol_list_arr): Add
+ __linuxthreads_initial_report_events.
+
2002-07-16 Ulrich Drepper <drepper@redhat.com>
* td_thr_clear_event.c: Yet more changes to help with TLS-enabled
/* Return list of symbols the library can request.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
[LINUXTHREADS_CREATE_EVENT] = "__linuxthreads_create_event",
[LINUXTHREADS_DEATH_EVENT] = "__linuxthreads_death_event",
[LINUXTHREADS_REAP_EVENT] = "__linuxthreads_reap_event",
+ [LINUXTHREADS_INITIAL_REPORT_EVENTS] = "__linuxthreads_initial_report_events",
[NUM_MESSAGES] = NULL
};
LOG ("td_thr_event_enable");
/* Write the new value into the thread data structure. */
- if (th->th_unique != NULL)
- if (ps_pdwrite (th->th_ta_p->ph,
- ((char *) th->th_unique
- + offsetof (struct _pthread_descr_struct,
- p_report_events)),
- &onoff, sizeof (int)) != PS_OK)
- return TD_ERR; /* XXX Other error value? */
+ if (th->th_unique == NULL)
+ {
+ psaddr_t addr;
+
+ if (td_lookup (th->th_ta_p->ph, LINUXTHREADS_INITIAL_REPORT_EVENTS,
+ &addr) != PS_OK)
+ /* Cannot read the symbol. This should not happen. */
+ return TD_ERR;
+
+ if (ps_pdwrite (th->th_ta_p->ph, addr, &onoff, sizeof (int)) != PS_OK)
+ return TD_ERR;
+
+ return TD_OK;
+ }
+
+ if (ps_pdwrite (th->th_ta_p->ph,
+ ((char *) th->th_unique
+ + offsetof (struct _pthread_descr_struct,
+ p_report_events)),
+ &onoff, sizeof (int)) != PS_OK)
+ return TD_ERR; /* XXX Other error value? */
return TD_OK;
}
LINUXTHREADS_CREATE_EVENT,
LINUXTHREADS_DEATH_EVENT,
LINUXTHREADS_REAP_EVENT,
+ LINUXTHREADS_INITIAL_REPORT_EVENTS,
NUM_MESSAGES
};