xf.li | bdd93d5 | 2023-05-12 07:10:14 -0700 | [diff] [blame] | 1 | # Copyright (C) 1995-2016 Free Software Foundation, Inc. |
| 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 |
| 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. |
| 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 |
| 12 | # Lesser General Public License for more details. |
| 13 | |
| 14 | # You should have received a copy of the GNU Lesser General Public |
| 15 | # License along with the GNU C Library; if not, see |
| 16 | # <http://www.gnu.org/licenses/>. |
| 17 | |
| 18 | subdir := dlfcn |
| 19 | |
| 20 | include ../Makeconfig |
| 21 | |
| 22 | headers := bits/dlfcn.h dlfcn.h |
| 23 | extra-libs := libdl |
| 24 | libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr dladdr1 dlinfo \ |
| 25 | dlmopen dlfcn |
| 26 | routines := $(patsubst %,s%,$(filter-out dlfcn,$(libdl-routines))) |
| 27 | elide-routines.os := $(routines) |
| 28 | |
| 29 | extra-libs-others := libdl |
| 30 | |
| 31 | ifeq ($(build-shared),yes) |
| 32 | libdl-routines += dlopenold |
| 33 | libdl-shared-only-routines := dlopenold dlfcn |
| 34 | endif |
| 35 | |
| 36 | ifeq (yes,$(build-shared)) |
| 37 | tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \ |
| 38 | bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \ |
| 39 | bug-atexit3 tstatexit bug-dl-leaf tst-rec-dlopen |
| 40 | endif |
| 41 | modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \ |
| 42 | defaultmod2 errmsg1mod modatexit modcxaatexit \ |
| 43 | bug-dlsym1-lib1 bug-dlsym1-lib2 bug-atexit1-lib \ |
| 44 | bug-atexit2-lib bug-dl-leaf-lib \ |
| 45 | bug-dl-leaf-lib-cb moddummy1 moddummy2 |
| 46 | |
| 47 | failtestmod.so-no-z-defs = yes |
| 48 | glreflib2.so-no-z-defs = yes |
| 49 | errmsg1mod.so-no-z-defs = yes |
| 50 | |
| 51 | ifeq (yes,$(build-shared)) |
| 52 | tests += tststatic tststatic2 tststatic3 tststatic4 tststatic5 |
| 53 | tests-static += tststatic tststatic2 tststatic3 tststatic4 tststatic5 |
| 54 | modules-names += modstatic modstatic2 modstatic3 modstatic5 |
| 55 | tststatic-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf |
| 56 | tststatic2-ENV = $(tststatic-ENV) |
| 57 | tststatic3-ENV = $(tststatic-ENV) |
| 58 | tststatic4-ENV = $(tststatic-ENV) |
| 59 | tststatic5-ENV = $(tststatic-ENV) |
| 60 | |
| 61 | ifneq (,$(CXX)) |
| 62 | modules-names += bug-atexit3-lib |
| 63 | else |
| 64 | tests-unsupported += bug-atexit3 |
| 65 | endif |
| 66 | endif |
| 67 | |
| 68 | extra-test-objs += $(modules-names:=.os) |
| 69 | generated += $(modules-names:=.so) |
| 70 | |
| 71 | include ../Rules |
| 72 | |
| 73 | test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) |
| 74 | |
| 75 | ifeq ($(build-shared),yes) |
| 76 | # Build all the modules even when not actually running test programs. |
| 77 | tests: $(test-modules) |
| 78 | endif |
| 79 | |
| 80 | $(objpfx)glrefmain: $(libdl) |
| 81 | $(objpfx)glrefmain.out: $(objpfx)glrefmain \ |
| 82 | $(objpfx)glreflib1.so $(objpfx)glreflib2.so |
| 83 | |
| 84 | $(objpfx)failtest: $(libdl) |
| 85 | $(objpfx)failtest.out: $(objpfx)failtestmod.so |
| 86 | |
| 87 | $(objpfx)tst-dladdr: $(libdl) |
| 88 | $(objpfx)tst-dladdr.out: $(objpfx)glreflib1.so |
| 89 | |
| 90 | $(objpfx)tst-dlinfo: $(libdl) |
| 91 | $(objpfx)tst-dlinfo.out: $(objpfx)glreflib3.so |
| 92 | LDFLAGS-glreflib3.so = -Wl,-rpath,: |
| 93 | |
| 94 | LDFLAGS-default = $(LDFLAGS-rdynamic) |
| 95 | $(objpfx)default: $(libdl) $(objpfx)defaultmod1.so $(objpfx)defaultmod2.so |
| 96 | $(objpfx)defaultmod1.so: $(libdl) |
| 97 | LDFLAGS-defaultmod2.so = $(LDFLAGS-Bsymbolic) |
| 98 | $(objpfx)defaultmod2.so: $(libdl) |
| 99 | |
| 100 | $(objpfx)errmsg1: $(libdl) |
| 101 | $(objpfx)errmsg1.out: $(objpfx)errmsg1 $(objpfx)errmsg1mod.so |
| 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 | |
| 109 | $(objpfx)tststatic: $(objpfx)libdl.a |
| 110 | $(objpfx)tststatic.out: $(objpfx)tststatic $(objpfx)modstatic.so |
| 111 | |
| 112 | $(objpfx)tststatic2: $(objpfx)libdl.a |
| 113 | $(objpfx)tststatic2.out: $(objpfx)tststatic2 $(objpfx)modstatic.so \ |
| 114 | $(objpfx)modstatic2.so |
| 115 | |
| 116 | $(objpfx)modstatic2.so: $(libdl) |
| 117 | |
| 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 | |
| 124 | $(objpfx)tststatic5: $(objpfx)libdl.a |
| 125 | $(objpfx)tststatic5.out: $(objpfx)tststatic5 $(objpfx)modstatic5.so |
| 126 | |
| 127 | $(objpfx)bug-dlopen1: $(libdl) |
| 128 | |
| 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 |
| 132 | $(objpfx)bug-dlsym1-lib1.so: $(objpfx)bug-dlsym1-lib2.so |
| 133 | |
| 134 | $(objpfx)bug-atexit1: $(libdl) |
| 135 | $(objpfx)bug-atexit1.out: $(objpfx)bug-atexit1-lib.so |
| 136 | |
| 137 | $(objpfx)bug-atexit2: $(libdl) |
| 138 | $(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so |
| 139 | |
| 140 | ifneq (,$(CXX)) |
| 141 | LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh |
| 142 | $(objpfx)bug-atexit3: $(libdl) |
| 143 | $(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so |
| 144 | endif |
| 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 |
| 150 | |
| 151 | $(objpfx)tst-rec-dlopen: $(libdl) |
| 152 | $(objpfx)tst-rec-dlopen.out: $(objpfx)moddummy1.so $(objpfx)moddummy2.so |