]>
Commit | Line | Data |
---|---|---|
d4697bc9 | 1 | # Copyright (C) 1991-2014 Free Software Foundation, Inc. |
28f540f4 RM |
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. | |
28f540f4 RM |
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. |
28f540f4 | 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/>. | |
28f540f4 RM |
17 | |
18 | # | |
19 | # Makefile for stdlib routines | |
20 | # | |
21 | subdir := stdlib | |
22 | ||
f62c8abc | 23 | headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h \ |
c6251f03 | 24 | monetary.h bits/monetary-ldbl.h \ |
42be025f | 25 | inttypes.h stdint.h bits/wordsize.h \ |
f0cf0902 RM |
26 | errno.h sys/errno.h bits/errno.h \ |
27 | ucontext.h sys/ucontext.h \ | |
cc7834d6 OB |
28 | alloca.h fmtmsg.h \ |
29 | bits/stdlib-bsearch.h | |
28f540f4 RM |
30 | |
31 | routines := \ | |
7cc27f44 | 32 | atof atoi atol atoll \ |
28f540f4 RM |
33 | abort \ |
34 | bsearch qsort msort \ | |
f65fd747 | 35 | getenv putenv setenv secure-getenv \ |
c08bc50a | 36 | exit on_exit atexit cxa_atexit cxa_finalize old_atexit \ |
ba384f6e | 37 | quick_exit at_quick_exit cxa_at_quick_exit cxa_thread_atexit_impl \ |
59dd8641 RM |
38 | abs labs llabs \ |
39 | div ldiv lldiv \ | |
28f540f4 | 40 | mblen mbstowcs mbtowc wcstombs wctomb \ |
a18f587d | 41 | random random_r rand rand_r \ |
60478656 RM |
42 | drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ |
43 | srand48 seed48 lcong48 \ | |
44 | drand48_r erand48_r lrand48_r nrand48_r mrand48_r jrand48_r \ | |
45 | srand48_r seed48_r lcong48_r \ | |
46 | drand48-iter \ | |
2f6d1f1b | 47 | strtol strtoul strtoll strtoull \ |
0501d603 | 48 | strtol_l strtoul_l strtoll_l strtoull_l \ |
28f540f4 | 49 | strtof strtod strtold \ |
0501d603 | 50 | strtof_l strtod_l strtold_l \ |
fa0bc87c | 51 | system canonicalize \ |
857fa1b8 | 52 | a64l l64a \ |
b9b49b44 | 53 | rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \ |
af69217f UD |
54 | strtoimax strtoumax wcstoimax wcstoumax \ |
55 | getcontext setcontext makecontext swapcontext | |
72f10127 | 56 | aux = grouping groupingwc tens_in_limb |
28f540f4 | 57 | |
c08bc50a UD |
58 | # These routines will be omitted from the libc shared object. |
59 | # Instead the static object files will be included in a special archive | |
60 | # linked against when the shared library will be used. | |
610e67ed | 61 | static-only-routines = atexit at_quick_exit |
c08bc50a | 62 | |
9f6c1fc4 | 63 | test-srcs := tst-fmtmsg |
3ca97e8f UD |
64 | tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ |
65 | test-canon test-canon2 tst-strtoll tst-environ \ | |
f17c2202 RM |
66 | tst-xpg-basename tst-random tst-random2 tst-bsearch \ |
67 | tst-limits tst-rand48 bug-strtod tst-setcontext \ | |
2282c90c | 68 | test-a64l tst-qsort tst-system testmb2 bug-strtod2 \ |
a12dcecc | 69 | tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ |
148e12ed | 70 | tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ |
92505456 | 71 | tst-makecontext2 tst-strtod6 tst-unsetenv1 \ |
84b3fd84 | 72 | tst-makecontext3 bug-getcontext bug-fmtmsg1 \ |
2a27fd6d | 73 | tst-secure-getenv tst-strtod-overflow tst-strtod-round \ |
ba384f6e | 74 | tst-tininess tst-strtod-underflow tst-tls-atexit |
84b3fd84 | 75 | tests-static := tst-secure-getenv |
28f540f4 | 76 | |
ba384f6e SP |
77 | modules-names = tst-tls-atexit-lib |
78 | ||
574b268e UD |
79 | include ../Makeconfig |
80 | ||
81 | ifeq ($(build-shared),yes) | |
82 | tests += tst-putenv | |
83 | endif | |
3ef21326 RM |
84 | |
85 | # Several mpn functions from GNU MP are used by the strtod function. | |
0e3426bb | 86 | mpn-routines := inlines add_n addmul_1 cmp divmod_1 divrem udiv_qrnnd \ |
b5a08c5a | 87 | lshift rshift mod_1 mul mul_1 mul_n sub_n submul_1 |
3ef21326 RM |
88 | mpn-headers = longlong.h gmp.h gmp-impl.h gmp-mparam.h asm-syntax.h |
89 | ||
90 | routines := $(strip $(routines) $(mpn-routines)) \ | |
91 | dbl2mpn ldbl2mpn \ | |
92 | mpn2flt mpn2dbl mpn2ldbl | |
9c7ff11a | 93 | aux += fpioconst mp_clz_tab |
574b268e UD |
94 | |
95 | tests-extras += tst-putenvmod | |
376e973a | 96 | extra-test-objs += tst-putenvmod.os |
3ef21326 | 97 | |
574b268e | 98 | generated += isomac isomac.out tst-putenvmod.so |
3ef21326 | 99 | |
e07bb02a UD |
100 | CFLAGS-bsearch.c = $(uses-callbacks) |
101 | CFLAGS-msort.c = $(uses-callbacks) | |
102 | CFLAGS-qsort.c = $(uses-callbacks) | |
6bbc689e UD |
103 | CFLAGS-system.c = -fexceptions |
104 | CFLAGS-system.os = -fomit-frame-pointer | |
f1c30c98 | 105 | CFLAGS-fmtmsg.c = -fexceptions |
dff14448 | 106 | |
c75ccd4c RM |
107 | CFLAGS-strfmon.c = $(libio-mtsafe) |
108 | CFLAGS-strfmon_l.c = $(libio-mtsafe) | |
917e27b8 | 109 | |
a4db3439 | 110 | CFLAGS-tst-bsearch.c = $(stack-align-test-flags) |
06f6ca90 | 111 | CFLAGS-tst-qsort.c = $(stack-align-test-flags) |
148e12ed | 112 | CFLAGS-tst-makecontext2.c = $(stack-align-test-flags) |
a4db3439 | 113 | |
28f540f4 | 114 | include ../Rules |
3ef21326 | 115 | |
e25054c4 | 116 | # Testdir has to be named stdlib and needs to be writable |
9f835f5f | 117 | test-canon-ARGS = --test-dir=${common-objpfx}stdlib |
e25054c4 | 118 | |
98d3e993 | 119 | tst-strtod-ENV = LOCPATH=$(common-objpfx)localedata |
df859a0c | 120 | tst-strtod3-ENV = LOCPATH=$(common-objpfx)localedata |
d6220e9e | 121 | tst-strtod4-ENV = LOCPATH=$(common-objpfx)localedata |
64f6281c | 122 | tst-strtod5-ENV = LOCPATH=$(common-objpfx)localedata |
16edf13b | 123 | testmb2-ENV = LOCPATH=$(common-objpfx)localedata |
400aa020 | 124 | bug-fmtmsg1-ENV = SEV_LEVEL=foo,11,newsev |
98d3e993 | 125 | |
1eb687d0 | 126 | # Run a test on the header files we use. |
c08bc50a | 127 | tests: $(objpfx)isomac.out |
2cca3867 | 128 | |
03ac099f | 129 | ifeq ($(run-built-tests),yes) |
2cca3867 AJ |
130 | tests: $(objpfx)tst-fmtmsg.out |
131 | endif | |
ca41028b UD |
132 | |
133 | $(objpfx)isomac.out: $(objpfx)isomac | |
7eff7a05 | 134 | $(dir $<)$(notdir $<) '$(CC)' \ |
08f60b25 | 135 | '-I../include $(+sysdep-includes) $(sysincludes) -I..' > $<.out |
1eb687d0 | 136 | |
e69924e3 | 137 | isomac-CFLAGS = -O |
1eb687d0 UD |
138 | $(objpfx)isomac: isomac.c |
139 | $(native-compile) | |
9f6c1fc4 UD |
140 | |
141 | $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg | |
740b3dbe | 142 | $(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)stdlib/ |
574b268e UD |
143 | |
144 | $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so | |
d4c2917f | 145 | LDFLAGS-tst-putenv = $(no-as-needed) |
574b268e | 146 | |
fab7ce3f | 147 | $(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os $(link-libc-deps) |
574b268e UD |
148 | $(build-module) |
149 | CFLAGS-tst-putenvmod.c = -DNOT_IN_libc=1 | |
75ea32ab UD |
150 | |
151 | ifeq ($(build-shared),yes) | |
152 | link-libm = $(common-objpfx)math/libm.so | |
153 | else | |
154 | link-libm = $(common-objpfx)math/libm.a | |
155 | endif | |
156 | $(objpfx)bug-getcontext: $(link-libm) | |
6c9b0f68 | 157 | $(objpfx)tst-strtod-round: $(link-libm) |
2a27fd6d JM |
158 | $(objpfx)tst-tininess: $(link-libm) |
159 | $(objpfx)tst-strtod-underflow: $(link-libm) | |
ee091edf | 160 | $(objpfx)tst-strtod6: $(link-libm) |
ba384f6e SP |
161 | |
162 | tst-tls-atexit-lib.so-no-z-defs = yes | |
163 | ||
ffabd393 | 164 | $(objpfx)tst-tls-atexit: $(common-objpfx)nptl/libpthread.so \ |
ba384f6e SP |
165 | $(common-objpfx)dlfcn/libdl.so |
166 | $(objpfx)tst-tls-atexit.out: $(objpfx)tst-tls-atexit-lib.so |