]>
Commit | Line | Data |
---|---|---|
1 | dnl We require that everyone use exactly the same Autoconf version so that | |
2 | dnl the internal functions defined and used by the main configure script | |
3 | dnl match those expected by the fragments. When changing this version, | |
4 | dnl install.texi also needs to be updated. | |
5 | m4_define([GLIBC_AUTOCONF_VERSION], [2.71]) | |
6 | m4_if(m4_defn([AC_AUTOCONF_VERSION]), GLIBC_AUTOCONF_VERSION, [], | |
7 | [m4_fatal(m4_flatten( | |
8 | Exactly version GLIBC_AUTOCONF_VERSION of Autoconf is required but you have | |
9 | m4_defn([AC_AUTOCONF_VERSION]) | |
10 | ), [63])])dnl | |
11 | dnl | |
12 | dnl We define the macro GLIBC_PROVIDES to do an AC_PROVIDE for each macro | |
13 | dnl which appears in configure.ac before the sysdep configure scripts are run. | |
14 | dnl Each sysdep configure.ac does GLIBC_PROVIDES first, to avoid any | |
15 | dnl AC_REQUIREs or AC_BEFOREs duplicating their code. | |
16 | dnl | |
17 | define([GLIBC_PROVIDES], [dnl | |
18 | AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl | |
19 | AC_PROVIDE([AC_CONFIG_SUBDIRS])dnl | |
20 | AC_PROVIDE([_AS_ECHO_N_PREPARE])dnl | |
21 | AC_PROVIDE([_AS_ECHO_PREPARE])dnl | |
22 | AC_PROVIDE([_AS_CR_PREPARE])dnl | |
23 | AC_PROVIDE([_AS_TR_SH_PREPARE])dnl | |
24 | AC_PROVIDE([_AS_VAR_ARITH_PREPARE])dnl | |
25 | AC_PROVIDE([AC_PROG_INSTALL])dnl | |
26 | AC_PROVIDE([AC_PROG_CC])dnl | |
27 | AC_PROVIDE([AC_PROG_CPP])dnl | |
28 | AC_PROVIDE([_AS_PATH_SEPARATOR_PREPARE])dnl | |
29 | AC_PROVIDE([_AS_TEST_PREPARE])dnl | |
30 | AC_PROVIDE([_AS_BASENAME_PREPARE])dnl | |
31 | AC_PROVIDE([_AS_ME_PREPARE])dnl | |
32 | AC_PROVIDE([_AS_LINENO_PREPARE])dnl | |
33 | AC_PROVIDE([AS_SHELL_FN_as_fn_set_status])dnl | |
34 | AC_PROVIDE([AS_SHELL_FN_as_fn_exit])dnl | |
35 | AC_PROVIDE([AS_SHELL_FN_as_fn_arith])dnl | |
36 | AC_PROVIDE([AS_SHELL_FN_ac_fn_c_try_compile])dnl | |
37 | AC_PROVIDE([AS_SHELL_FN_ac_fn_c_try_cpp])dnl | |
38 | define([AS_MESSAGE_LOG_FD],5)dnl | |
39 | define([AS_MESSAGE_FD],6)dnl | |
40 | dnl Ripped out of AS_INIT, which does more cruft we do not want. | |
41 | m4_wrap([m4_divert_pop([BODY])[]]) | |
42 | m4_divert_push([BODY])[]dnl | |
43 | dnl End of ripped out of AS_INIT. | |
44 | # This file is generated from configure.ac by Autoconf. DO NOT EDIT! | |
45 | define([_AC_LANG], [C])dnl | |
46 | ])dnl | |
47 | dnl | |
48 | dnl Check for a symbol | |
49 | dnl | |
50 | AC_DEFUN([AC_CHECK_SYMBOL], [dnl | |
51 | AC_MSG_CHECKING(for $1) | |
52 | AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl | |
53 | AC_TRY_LINK(, | |
54 | changequote(,)dnl | |
55 | extern char *$1[]; puts(*$1);, | |
56 | changequote([,])dnl | |
57 | ac_cv_check_symbol_$1=yes, ac_cv_check_symbol_$1=no)]) | |
58 | if test "$ac_cv_check_symbol_$1" = yes; then | |
59 | changequote(,)dnl | |
60 | ac_tr_symbol=`echo $1 | tr '[a-z]' '[A-Z]'` | |
61 | changequote([,])dnl | |
62 | AC_DEFINE_UNQUOTED(HAVE_${ac_tr_symbol}) | |
63 | fi | |
64 | AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl | |
65 | dnl | |
66 | ||
67 | dnl Locate a program and check that its version is acceptable. | |
68 | dnl AC_PROG_CHECK_VER(var, namelist, version-switch, | |
69 | dnl [version-extract-regexp], version-glob [, do-if-fail]) | |
70 | AC_DEFUN([AC_CHECK_PROG_VER], | |
71 | [AC_CHECK_PROGS([$1], [$2]) | |
72 | if test -z "[$]$1"; then | |
73 | ac_verc_fail=yes | |
74 | else | |
75 | # Found it, now check the version. | |
76 | AC_MSG_CHECKING([version of [$]$1]) | |
77 | changequote(<<,>>)dnl | |
78 | ac_prog_version=`<<$>>$1 $3 2>&1 ifelse(<<$4>>,,, | |
79 | <<| sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'>>)` | |
80 | case $ac_prog_version in | |
81 | '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; | |
82 | <<$5>>) | |
83 | changequote([,])dnl | |
84 | ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; | |
85 | *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; | |
86 | ||
87 | esac | |
88 | AC_MSG_RESULT([$ac_prog_version]) | |
89 | fi | |
90 | ifelse([$6],,, | |
91 | [if test $ac_verc_fail = yes; then | |
92 | $6 | |
93 | fi]) | |
94 | ]) | |
95 | ||
96 | dnl These modifications are to allow for an empty cross compiler tree. | |
97 | define([_AC_COMPILER_EXEEXT], [EXEEXT= | |
98 | ]) | |
99 | ||
100 | AC_DEFUN([LIBC_PROG_FOO_GNU], | |
101 | [# Most GNU programs take a -v and spit out some text including | |
102 | # the word 'GNU'. Some try to read stdin, so give them /dev/null. | |
103 | if $1 -o conftest -v </dev/null 2>&1 | grep GNU > /dev/null 2>&1; then | |
104 | $2 | |
105 | else | |
106 | $3 | |
107 | fi | |
108 | rm -fr contest*]) | |
109 | ||
110 | AC_DEFUN([LIBC_PROG_BINUTILS], | |
111 | [# Was a --with-binutils option given? | |
112 | if test -n "$path_binutils"; then | |
113 | # Make absolute; ensure a single trailing slash. | |
114 | path_binutils=`(cd $path_binutils; pwd) | sed 's%/*$%/%'` | |
115 | CC="$CC -B$path_binutils" | |
116 | fi | |
117 | case "$CC" in | |
118 | *fuse-ld=lld*) LDNAME=ld.lld;; | |
119 | *) LDNAME=ld;; | |
120 | esac | |
121 | if test -z "$LD"; then | |
122 | LD=`$CC -print-prog-name=$LDNAME` | |
123 | fi | |
124 | if test -z "$AR"; then | |
125 | AR=`$CC -print-prog-name=ar` | |
126 | fi | |
127 | AC_SUBST(AR) | |
128 | if test -z "$OBJCOPY"; then | |
129 | OBJCOPY=`$CC -print-prog-name=objcopy` | |
130 | fi | |
131 | AC_SUBST(OBJCOPY) | |
132 | if test -z "$GPROF"; then | |
133 | GPROF=`$CC -print-prog-name=gprof` | |
134 | fi | |
135 | AC_SUBST(GPROF) | |
136 | if test -z "$READELF"; then | |
137 | READELF=`$CC -print-prog-name=readelf` | |
138 | fi | |
139 | AC_SUBST(READELF) | |
140 | if test -z "$OBJDUMP"; then | |
141 | OBJDUMP=`$CC -print-prog-name=objdump` | |
142 | fi | |
143 | AC_SUBST(OBJDUMP) | |
144 | if test -z "$NM"; then | |
145 | NM=`$CC -print-prog-name=nm` | |
146 | fi | |
147 | AC_SUBST(NM) | |
148 | ]) | |
149 | ||
150 | dnl Run a static link test with -nostdlib -nostartfiles. | |
151 | dnl LIBC_TRY_LINK_STATIC([code], [action-if-true], [action-if-false]) | |
152 | AC_DEFUN([LIBC_TRY_LINK_STATIC], | |
153 | [cat > conftest.c <<EOF | |
154 | int _start (void) { return 0; } | |
155 | int __start (void) { return 0; } | |
156 | $1 | |
157 | EOF | |
158 | AS_IF([AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -o conftest | |
159 | conftest.c -static -nostartfiles -nostdlib | |
160 | 1>&AS_MESSAGE_LOG_FD])], | |
161 | [$2], [$3]) | |
162 | rm -f conftest*]) | |
163 | ||
164 | dnl Test a compiler option or options with an empty input file. | |
165 | dnl LIBC_TRY_CC_OPTION([options], [action-if-true], [action-if-false]) | |
166 | AC_DEFUN([LIBC_TRY_CC_OPTION], | |
167 | [AS_IF([AC_TRY_COMMAND([${CC-cc} $1 -xc /dev/null -S -o /dev/null])], | |
168 | [$2], [$3])]) | |
169 | ||
170 | dnl Find and source sysdeps/*/preconfigure. | |
171 | dnl LIBC_PRECONFIGURE([$srcdir], [for]) | |
172 | AC_DEFUN([LIBC_PRECONFIGURE], [dnl | |
173 | if frags=`ls -d $1/sysdeps/*/preconfigure 2> /dev/null` | |
174 | then | |
175 | AC_MSG_CHECKING($2 preconfigure fragments) | |
176 | for frag in $frags; do | |
177 | name=`echo "$frag" | sed 's@/[[^/]]*[$]@@;s@^.*/@@'` | |
178 | echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD | |
179 | . "$frag" | |
180 | done | |
181 | AC_MSG_RESULT() | |
182 | fi]) | |
183 | ||
184 | # These two macros are taken from GCC's config/acx.m4. | |
185 | dnl Support the --with-pkgversion configure option. | |
186 | dnl ACX_PKGVERSION(default-pkgversion) | |
187 | AC_DEFUN([ACX_PKGVERSION],[ | |
188 | AC_ARG_WITH(pkgversion, | |
189 | AS_HELP_STRING([--with-pkgversion=PKG], | |
190 | [Use PKG in the version string in place of "$1"]), | |
191 | [case "$withval" in | |
192 | yes) AC_MSG_ERROR([package version not specified]) ;; | |
193 | no) PKGVERSION= ;; | |
194 | *) PKGVERSION="($withval) " ;; | |
195 | esac], | |
196 | PKGVERSION="($1) " | |
197 | ) | |
198 | PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'` | |
199 | AC_SUBST(PKGVERSION) | |
200 | AC_SUBST(PKGVERSION_TEXI) | |
201 | ]) | |
202 | ||
203 | dnl Support the --with-bugurl configure option. | |
204 | dnl ACX_BUGURL(default-bugurl) | |
205 | AC_DEFUN([ACX_BUGURL],[ | |
206 | AC_ARG_WITH(bugurl, | |
207 | AS_HELP_STRING([--with-bugurl=URL], | |
208 | [Direct users to URL to report a bug]), | |
209 | [case "$withval" in | |
210 | yes) AC_MSG_ERROR([bug URL not specified]) ;; | |
211 | no) BUGURL= | |
212 | ;; | |
213 | *) BUGURL="$withval" | |
214 | ;; | |
215 | esac], | |
216 | BUGURL="$1" | |
217 | ) | |
218 | case ${BUGURL} in | |
219 | "") | |
220 | REPORT_BUGS_TO= | |
221 | REPORT_BUGS_TEXI= | |
222 | ;; | |
223 | *) | |
224 | REPORT_BUGS_TO="<$BUGURL>" | |
225 | REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`} | |
226 | ;; | |
227 | esac; | |
228 | AC_SUBST(REPORT_BUGS_TO) | |
229 | AC_SUBST(REPORT_BUGS_TEXI) | |
230 | ]) | |
231 | ||
232 | dnl Check linker option support. | |
233 | dnl LIBC_LINKER_FEATURE([ld_option], [cc_option], [action-if-true], [action-if-false]) | |
234 | AC_DEFUN([LIBC_LINKER_FEATURE], | |
235 | [AC_MSG_CHECKING([for linker that supports $1]) | |
236 | libc_linker_feature=no | |
237 | cat > conftest.c <<EOF | |
238 | int _start (void) { return 42; } | |
239 | EOF | |
240 | if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp | |
241 | $2 -nostdlib -nostartfiles | |
242 | -fPIC -shared -o conftest.so conftest.c | |
243 | 1>&AS_MESSAGE_LOG_FD]) | |
244 | then | |
245 | if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp $2 -nostdlib \ | |
246 | -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \ | |
247 | | grep "warning: $1 ignored" > /dev/null 2>&1; then | |
248 | true | |
249 | else | |
250 | libc_linker_feature=yes | |
251 | fi | |
252 | fi | |
253 | rm -f conftest* | |
254 | if test $libc_linker_feature = yes; then | |
255 | $3 | |
256 | else | |
257 | $4 | |
258 | fi | |
259 | AC_MSG_RESULT($libc_linker_feature)]) | |
260 | ||
261 | dnl Add a makefile variable, with value set from a shell string | |
262 | dnl (expanded by the shell inside double quotes), to config.make. | |
263 | dnl LIBC_CONFIG_VAR(make-variable, shell-value) | |
264 | AC_DEFUN([LIBC_CONFIG_VAR], | |
265 | [config_vars="$config_vars | |
266 | $1 = $2"]) | |
267 | ||
268 | dnl Check that function FUNC was inlined as a builtin. The code fragment | |
269 | dnl CODE is compiled with additional options CC_OPTION. If FUNC is | |
270 | dnl not found in the assembly then it is assumed the compiler has support | |
271 | dnl for this builtin and has inlined the call. If the compiler has the | |
272 | dnl feature then ACTION-IF-TRUE is called, otherwise ACTION-IF-FALSE. | |
273 | dnl It is up to the caller to provide a CC_OPTION that ensures the | |
274 | dnl builtin is inlined if present. | |
275 | dnl Warning: This may not work for some machines. For example on ARM the | |
276 | dnl ABI dictates that some functions should not be inlined and instead | |
277 | dnl should be provided by a compiler helper library e.g. __aeabi_memcpy. | |
278 | dnl This is done to reduce code size. | |
279 | dnl LIBC_COMPILER_BUILTIN([func], [code], [cc_option], [action-if-true], [action-if-false]) | |
280 | AC_DEFUN([LIBC_COMPILER_BUILTIN_INLINED], | |
281 | [AC_MSG_CHECKING([for compiler support of inlined builtin function $1]) | |
282 | libc_compiler_builtin_inlined=no | |
283 | cat > conftest.c <<EOF | |
284 | int _start (void) { $2 return 0; } | |
285 | EOF | |
286 | if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp | |
287 | $3 -nostdlib -nostartfiles | |
288 | -S conftest.c -o - | grep -F "$1" | |
289 | 1>&AS_MESSAGE_LOG_FD]) | |
290 | then | |
291 | libc_compiler_builtin_inlined=yes | |
292 | fi | |
293 | rm -f conftest* | |
294 | if test $libc_compiler_builtin_inlined = yes; then | |
295 | $4 | |
296 | else | |
297 | $5 | |
298 | fi | |
299 | AC_MSG_RESULT($libc_compiler_builtin_inlined)]) | |
300 | ||
301 | dnl Default to slibdir named SLIBDIR instead of "lib", and rtlddir | |
302 | dnl named RTLDDIR instead of "lib". This is used to put 64-bit | |
303 | dnl libraries in /lib64. | |
304 | dnl LIBC_SLIBDIR_RTLDDIR([slibdir], [rtlddir]) | |
305 | AC_DEFUN([LIBC_SLIBDIR_RTLDDIR], | |
306 | [test -n "$libc_cv_slibdir" || | |
307 | case "$prefix" in | |
308 | /usr | /usr/) | |
309 | libc_cv_slibdir='/$1' | |
310 | libc_cv_rtlddir='/$2' | |
311 | if test "$libdir" = '${exec_prefix}/lib'; then | |
312 | libdir='${exec_prefix}/$1'; | |
313 | # Locale data can be shared between 32-bit and 64-bit libraries. | |
314 | libc_cv_complocaledir='${exec_prefix}/lib/locale' | |
315 | fi | |
316 | ;; | |
317 | esac]) |