about summary refs log tree commit diff
path: root/nptl_db/Makefile
blob: 8d53779246aacd647703cb05a0c46e3eecad5c3d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Copyright (C) 2002,2003,2009 Free Software Foundation, Inc.
# This file is part of the GNU C Library.

# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.

# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.

# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.

# Makefile for NPTL debug library subdirectory of GNU C Library.

subdir          := nptl_db

nptl_db-version = 1.0

extra-libs = libthread_db
extra-libs-others := $(extra-libs)

headers         = thread_db.h

libthread_db-routines = td_init td_log td_ta_new td_ta_delete \
			td_ta_get_nthreads td_ta_get_ph \
			td_ta_map_id2thr td_ta_map_lwp2thr \
			td_ta_thr_iter td_ta_tsd_iter \
			td_thr_get_info td_thr_getfpregs td_thr_getgregs \
			td_thr_getxregs td_thr_getxregsize td_thr_setfpregs \
			td_thr_setgregs td_thr_setprio td_thr_setsigpending \
			td_thr_setxregs td_thr_sigsetmask td_thr_tsd \
			td_thr_validate td_thr_dbsuspend td_thr_dbresume \
			td_ta_setconcurrency td_ta_enable_stats \
			td_ta_reset_stats td_ta_get_stats td_ta_event_addr \
			td_thr_event_enable td_thr_set_event \
			td_thr_clear_event td_thr_event_getmsg \
			td_ta_set_event td_ta_event_getmsg \
			td_ta_clear_event td_symbol_list \
			td_thr_tlsbase td_thr_tls_get_addr \
			fetch-value

libthread_db-inhibit-o = $(filter-out .os,$(object-suffixes))

# The ps_* callback functions are not defined.
libthread_db.so-no-z-defs = yes

distribute = thread_dbP.h shlib-versions proc_service.h \
	     db_info.c structs.def db-symbols.h \
	     db-symbols.awk rtld-db-symbols.awk
include ../Rules

# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it.
$(objpfx)libthread_db.so: $(common-objpfx)libc.so \
			  $(common-objpfx)libc_nonshared.a

tests: $(objpfx)db-symbols.out
$(objpfx)db-symbols.out: $(objpfx)db-symbols.v.i \
			 $(common-objpfx)nptl/libpthread.so
	readelf -W -s $(filter %.so,$^) | $(AWK) -f $< > $@

$(objpfx)db-symbols.v.i: db-symbols.awk

tests: $(objpfx)rtld-db-symbols.out
$(objpfx)rtld-db-symbols.out: $(objpfx)rtld-db-symbols.v.i \
			 $(common-objpfx)elf/ld.so
	readelf -W -s $(filter %.so,$^) | $(AWK) -f $< > $@

$(objpfx)rtld-db-symbols.v.i: rtld-db-symbols.awk db-symbols.awk