]>
Commit | Line | Data |
---|---|---|
b168057a | 1 | # Copyright (C) 1995-2015 Free Software Foundation, Inc. |
94e365c6 UD |
2 | # This file is part of the GNU C Library. |
3 | ||
4 | # The GNU C Library is free software; you can redistribute it and/or | |
41bdb6e2 AJ |
5 | # modify it under the terms of the GNU Lesser General Public |
6 | # License as published by the Free Software Foundation; either | |
7 | # version 2.1 of the License, or (at your option) any later version. | |
94e365c6 UD |
8 | |
9 | # The GNU C Library is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 12 | # Lesser General Public License for more details. |
94e365c6 | 13 | |
41bdb6e2 | 14 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
15 | # License along with the GNU C Library; if not, see |
16 | # <http://www.gnu.org/licenses/>. | |
94e365c6 UD |
17 | |
18 | subdir := dlfcn | |
a5f891ac JM |
19 | |
20 | include ../Makeconfig | |
21 | ||
019e7a64 | 22 | headers := bits/dlfcn.h dlfcn.h |
94e365c6 | 23 | extra-libs := libdl |
c0f62c56 | 24 | libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr dladdr1 dlinfo \ |
9dcafc55 UD |
25 | dlmopen dlfcn |
26 | routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines))) | |
5f21997b | 27 | elide-routines.os := $(routines) |
94e365c6 UD |
28 | |
29 | extra-libs-others := libdl | |
30 | ||
3f2e46a4 | 31 | ifeq ($(build-shared),yes) |
94e365c6 | 32 | libdl-routines += dlopenold |
9dcafc55 | 33 | libdl-shared-only-routines := dlopenold dlfcn |
94e365c6 UD |
34 | endif |
35 | ||
4380ef5e | 36 | ifeq (yes,$(build-shared)) |
c3fd12a2 | 37 | tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \ |
6de1f625 | 38 | bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \ |
44a6213c | 39 | bug-atexit3 tstatexit bug-dl-leaf tst-rec-dlopen |
4380ef5e | 40 | endif |
1c298d08 UD |
41 | modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \ |
42 | defaultmod2 errmsg1mod modatexit modcxaatexit \ | |
7237d704 | 43 | bug-dlsym1-lib1 bug-dlsym1-lib2 bug-atexit1-lib \ |
e4693aa7 | 44 | bug-atexit2-lib bug-dl-leaf-lib \ |
ccdb048d | 45 | bug-dl-leaf-lib-cb moddummy1 moddummy2 |
be1152ca | 46 | |
1a379ea0 UD |
47 | failtestmod.so-no-z-defs = yes |
48 | glreflib2.so-no-z-defs = yes | |
49 | errmsg1mod.so-no-z-defs = yes | |
50 | ||
2119dcfa | 51 | ifeq (yes,$(build-shared)) |
3d0f5d0c MR |
52 | tests += tststatic tststatic2 tststatic3 tststatic4 tststatic5 |
53 | tests-static += tststatic tststatic2 tststatic3 tststatic4 tststatic5 | |
54 | modules-names += modstatic modstatic2 modstatic3 modstatic5 | |
5b643faf | 55 | tststatic-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf |
f3bc5e5a | 56 | tststatic2-ENV = $(tststatic-ENV) |
f91f1c0f MR |
57 | tststatic3-ENV = $(tststatic-ENV) |
58 | tststatic4-ENV = $(tststatic-ENV) | |
3d0f5d0c | 59 | tststatic5-ENV = $(tststatic-ENV) |
e4693aa7 RM |
60 | |
61 | ifneq (,$(CXX)) | |
e4693aa7 | 62 | modules-names += bug-atexit3-lib |
44a6213c RM |
63 | else |
64 | tests-unsupported += bug-atexit3 | |
e4693aa7 | 65 | endif |
be1152ca UD |
66 | endif |
67 | ||
376e973a | 68 | extra-test-objs += $(modules-names:=.os) |
f08e9a26 | 69 | generated += $(modules-names:=.so) |
4380ef5e | 70 | |
94e365c6 | 71 | include ../Rules |
4380ef5e UD |
72 | |
73 | test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) | |
4380ef5e | 74 | |
5181d776 RM |
75 | ifeq ($(build-shared),yes) |
76 | # Build all the modules even when not actually running test programs. | |
77 | tests: $(test-modules) | |
78 | endif | |
79 | ||
00213fe4 | 80 | $(objpfx)glrefmain: $(libdl) |
4380ef5e UD |
81 | $(objpfx)glrefmain.out: $(objpfx)glrefmain \ |
82 | $(objpfx)glreflib1.so $(objpfx)glreflib2.so | |
d743ba1e UD |
83 | |
84 | $(objpfx)failtest: $(libdl) | |
85 | $(objpfx)failtest.out: $(objpfx)failtestmod.so | |
00213fe4 AJ |
86 | |
87 | $(objpfx)tst-dladdr: $(libdl) | |
88 | $(objpfx)tst-dladdr.out: $(objpfx)glreflib1.so | |
3fe40015 | 89 | |
45e4762c | 90 | $(objpfx)tst-dlinfo: $(libdl) |
1c298d08 UD |
91 | $(objpfx)tst-dlinfo.out: $(objpfx)glreflib3.so |
92 | LDFLAGS-glreflib3.so = -Wl,-rpath,: | |
45e4762c | 93 | |
ad10cac8 | 94 | LDFLAGS-default = $(LDFLAGS-rdynamic) |
3fe40015 | 95 | $(objpfx)default: $(libdl) $(objpfx)defaultmod1.so $(objpfx)defaultmod2.so |
765ade4b | 96 | $(objpfx)defaultmod1.so: $(libdl) |
ad10cac8 | 97 | LDFLAGS-defaultmod2.so = $(LDFLAGS-Bsymbolic) |
765ade4b | 98 | $(objpfx)defaultmod2.so: $(libdl) |
f116c77f UD |
99 | |
100 | $(objpfx)errmsg1: $(libdl) | |
101 | $(objpfx)errmsg1.out: $(objpfx)errmsg1 $(objpfx)errmsg1mod.so | |
c08bc50a UD |
102 | |
103 | $(objpfx)tstatexit: $(libdl) | |
104 | $(objpfx)tstatexit.out: $(objpfx)tstatexit $(objpfx)modatexit.so | |
105 | ||
106 | $(objpfx)tstcxaatexit: $(libdl) | |
107 | $(objpfx)tstcxaatexit.out: $(objpfx)tstcxaatexit $(objpfx)modcxaatexit.so | |
108 | ||
be1152ca UD |
109 | $(objpfx)tststatic: $(objpfx)libdl.a |
110 | $(objpfx)tststatic.out: $(objpfx)tststatic $(objpfx)modstatic.so | |
111 | ||
5f21997b UD |
112 | $(objpfx)tststatic2: $(objpfx)libdl.a |
113 | $(objpfx)tststatic2.out: $(objpfx)tststatic2 $(objpfx)modstatic.so \ | |
114 | $(objpfx)modstatic2.so | |
115 | ||
765ade4b | 116 | $(objpfx)modstatic2.so: $(libdl) |
be1152ca | 117 | |
f91f1c0f MR |
118 | $(objpfx)tststatic3: $(objpfx)libdl.a |
119 | $(objpfx)tststatic3.out: $(objpfx)tststatic3 $(objpfx)modstatic3.so | |
120 | ||
121 | $(objpfx)tststatic4: $(objpfx)libdl.a | |
122 | $(objpfx)tststatic4.out: $(objpfx)tststatic4 $(objpfx)modstatic3.so | |
123 | ||
3d0f5d0c MR |
124 | $(objpfx)tststatic5: $(objpfx)libdl.a |
125 | $(objpfx)tststatic5.out: $(objpfx)tststatic5 $(objpfx)modstatic5.so | |
126 | ||
472d82fc UD |
127 | $(objpfx)bug-dlopen1: $(libdl) |
128 | ||
c3fd12a2 RM |
129 | $(objpfx)bug-dlsym1: $(libdl) $(objpfx)bug-dlsym1-lib2.so |
130 | $(objpfx)bug-dlsym1.out: $(objpfx)bug-dlsym1-lib1.so \ | |
131 | $(objpfx)bug-dlsym1-lib2.so | |
765ade4b | 132 | $(objpfx)bug-dlsym1-lib1.so: $(objpfx)bug-dlsym1-lib2.so |
c3fd12a2 | 133 | |
7237d704 UD |
134 | $(objpfx)bug-atexit1: $(libdl) |
135 | $(objpfx)bug-atexit1.out: $(objpfx)bug-atexit1-lib.so | |
7237d704 UD |
136 | |
137 | $(objpfx)bug-atexit2: $(libdl) | |
138 | $(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so | |
c3fd12a2 | 139 | |
44a6213c | 140 | ifneq (,$(CXX)) |
fab7ce3f | 141 | LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh |
6de1f625 UD |
142 | $(objpfx)bug-atexit3: $(libdl) |
143 | $(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so | |
44a6213c | 144 | endif |
3b813b29 MF |
145 | |
146 | $(objpfx)bug-dl-leaf: $(objpfx)bug-dl-leaf-lib.so | |
147 | $(objpfx)bug-dl-leaf.out: $(objpfx)bug-dl-leaf-lib-cb.so | |
148 | $(objpfx)bug-dl-leaf-lib.so: $(libdl) | |
149 | $(objpfx)bug-dl-leaf-lib-cb.so: $(objpfx)bug-dl-leaf-lib.so | |
ccdb048d CD |
150 | |
151 | $(objpfx)tst-rec-dlopen: $(libdl) | |
152 | $(objpfx)tst-rec-dlopen.out: $(objpfx)moddummy1.so $(objpfx)moddummy2.so |