aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore9
-rwxr-xr-xbootstrap18
-rw-r--r--build-aux/config.rpath684
-rw-r--r--m4/extern-inline.m4114
-rw-r--r--m4/intl-thread-locale.m4219
5 files changed, 1042 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 560a2cd7..b69acd61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,7 +14,14 @@ config.rpath
14/config.log 14/config.log
15/app.info 15/app.info
16/debug 16/debug
17/build-aux 17/build-aux/texinfo.tex
18/build-aux/config.sub
19/build-aux/depcomp
20/build-aux/install-sh
21/build-aux/ltmain.sh
22/build-aux/mdate-sh
23/build-aux/test-driver
24/build-aux/config.guess
18/exclude 25/exclude
19/autom4te.cache 26/autom4te.cache
20/scripts 27/scripts
diff --git a/bootstrap b/bootstrap
index 7e150794..6f9e6c26 100755
--- a/bootstrap
+++ b/bootstrap
@@ -27,7 +27,23 @@ else
27fi 27fi
28 28
29if existence libtool || existence libtoolize || existence glibtoolize || existence slibtool; then 29if existence libtool || existence libtoolize || existence glibtoolize || existence slibtool; then
30 autoreconf -I m4 -i ${1+"$@"} 30 echo "Running autotools..."
31 aclocal -I m4 --install && \
32 libtoolize -c -i -v && \
33 autoconf && \
34 autoheader && \
35 automake -a -c --gnu
36 if test $? -ne 0 || ! test -x configure || ! test -f Makefile.in ; then
37 echo "Autotools failed, retrying with autoreconf..."
38 if ! autoreconf -i ${1+"$@"} ; then
39 echo "Failed to autoreconf, retrying with force install..."
40 if ! autoreconf -i -f ${1+"$@"} ; then
41 echo "*** Failed to create 'configure' and other autotools generated files. ***" >&2
42 exit 1
43 fi
44 fi
45 fi
46 echo "The ${bs_scrdir-.}/configure is ready to run."
31else 47else
32 echo "*** No libtoolize (libtool) or libtool found, please install it ***" >&2; 48 echo "*** No libtoolize (libtool) or libtool found, please install it ***" >&2;
33 exit 1 49 exit 1
diff --git a/build-aux/config.rpath b/build-aux/config.rpath
new file mode 100644
index 00000000..98183ff2
--- /dev/null
+++ b/build-aux/config.rpath
@@ -0,0 +1,684 @@
1#! /bin/sh
2# Output a system dependent set of variables, describing how to set the
3# run time search path of shared libraries in an executable.
4#
5# Copyright 1996-2016 Free Software Foundation, Inc.
6# Taken from GNU libtool, 2001
7# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8#
9# This file is free software; the Free Software Foundation gives
10# unlimited permission to copy and/or distribute it, with or without
11# modifications, as long as this notice is preserved.
12#
13# The first argument passed to this file is the canonical host specification,
14# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
15# or
16# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
17# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
18# should be set by the caller.
19#
20# The set of defined variables is at the end of this script.
21
22# Known limitations:
23# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
24# than 256 bytes, otherwise the compiler driver will dump core. The only
25# known workaround is to choose shorter directory names for the build
26# directory and/or the installation directory.
27
28# All known linkers require a '.a' archive for static linking (except MSVC,
29# which needs '.lib').
30libext=a
31shrext=.so
32
33host="$1"
34host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
35host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
36host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
37
38# Code taken from libtool.m4's _LT_CC_BASENAME.
39
40for cc_temp in $CC""; do
41 case $cc_temp in
42 compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
43 distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
44 \-*) ;;
45 *) break;;
46 esac
47done
48cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
49
50# Code taken from libtool.m4's _LT_COMPILER_PIC.
51
52wl=
53if test "$GCC" = yes; then
54 wl='-Wl,'
55else
56 case "$host_os" in
57 aix*)
58 wl='-Wl,'
59 ;;
60 mingw* | cygwin* | pw32* | os2* | cegcc*)
61 ;;
62 hpux9* | hpux10* | hpux11*)
63 wl='-Wl,'
64 ;;
65 irix5* | irix6* | nonstopux*)
66 wl='-Wl,'
67 ;;
68 linux* | k*bsd*-gnu | kopensolaris*-gnu)
69 case $cc_basename in
70 ecc*)
71 wl='-Wl,'
72 ;;
73 icc* | ifort*)
74 wl='-Wl,'
75 ;;
76 lf95*)
77 wl='-Wl,'
78 ;;
79 nagfor*)
80 wl='-Wl,-Wl,,'
81 ;;
82 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
83 wl='-Wl,'
84 ;;
85 ccc*)
86 wl='-Wl,'
87 ;;
88 xl* | bgxl* | bgf* | mpixl*)
89 wl='-Wl,'
90 ;;
91 como)
92 wl='-lopt='
93 ;;
94 *)
95 case `$CC -V 2>&1 | sed 5q` in
96 *Sun\ F* | *Sun*Fortran*)
97 wl=
98 ;;
99 *Sun\ C*)
100 wl='-Wl,'
101 ;;
102 esac
103 ;;
104 esac
105 ;;
106 newsos6)
107 ;;
108 *nto* | *qnx*)
109 ;;
110 osf3* | osf4* | osf5*)
111 wl='-Wl,'
112 ;;
113 rdos*)
114 ;;
115 solaris*)
116 case $cc_basename in
117 f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
118 wl='-Qoption ld '
119 ;;
120 *)
121 wl='-Wl,'
122 ;;
123 esac
124 ;;
125 sunos4*)
126 wl='-Qoption ld '
127 ;;
128 sysv4 | sysv4.2uw2* | sysv4.3*)
129 wl='-Wl,'
130 ;;
131 sysv4*MP*)
132 ;;
133 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
134 wl='-Wl,'
135 ;;
136 unicos*)
137 wl='-Wl,'
138 ;;
139 uts4*)
140 ;;
141 esac
142fi
143
144# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
145
146hardcode_libdir_flag_spec=
147hardcode_libdir_separator=
148hardcode_direct=no
149hardcode_minus_L=no
150
151case "$host_os" in
152 cygwin* | mingw* | pw32* | cegcc*)
153 # FIXME: the MSVC++ port hasn't been tested in a loooong time
154 # When not using gcc, we currently assume that we are using
155 # Microsoft Visual C++.
156 if test "$GCC" != yes; then
157 with_gnu_ld=no
158 fi
159 ;;
160 interix*)
161 # we just hope/assume this is gcc and not c89 (= MSVC++)
162 with_gnu_ld=yes
163 ;;
164 openbsd*)
165 with_gnu_ld=no
166 ;;
167esac
168
169ld_shlibs=yes
170if test "$with_gnu_ld" = yes; then
171 # Set some defaults for GNU ld with shared library support. These
172 # are reset later if shared libraries are not supported. Putting them
173 # here allows them to be overridden if necessary.
174 # Unlike libtool, we use -rpath here, not --rpath, since the documented
175 # option of GNU ld is called -rpath, not --rpath.
176 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
177 case "$host_os" in
178 aix[3-9]*)
179 # On AIX/PPC, the GNU linker is very broken
180 if test "$host_cpu" != ia64; then
181 ld_shlibs=no
182 fi
183 ;;
184 amigaos*)
185 case "$host_cpu" in
186 powerpc)
187 ;;
188 m68k)
189 hardcode_libdir_flag_spec='-L$libdir'
190 hardcode_minus_L=yes
191 ;;
192 esac
193 ;;
194 beos*)
195 if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
196 :
197 else
198 ld_shlibs=no
199 fi
200 ;;
201 cygwin* | mingw* | pw32* | cegcc*)
202 # hardcode_libdir_flag_spec is actually meaningless, as there is
203 # no search path for DLLs.
204 hardcode_libdir_flag_spec='-L$libdir'
205 if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
206 :
207 else
208 ld_shlibs=no
209 fi
210 ;;
211 haiku*)
212 ;;
213 interix[3-9]*)
214 hardcode_direct=no
215 hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
216 ;;
217 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
218 if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
219 :
220 else
221 ld_shlibs=no
222 fi
223 ;;
224 netbsd*)
225 ;;
226 solaris*)
227 if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
228 ld_shlibs=no
229 elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
230 :
231 else
232 ld_shlibs=no
233 fi
234 ;;
235 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
236 case `$LD -v 2>&1` in
237 *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
238 ld_shlibs=no
239 ;;
240 *)
241 if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
242 hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
243 else
244 ld_shlibs=no
245 fi
246 ;;
247 esac
248 ;;
249 sunos4*)
250 hardcode_direct=yes
251 ;;
252 *)
253 if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
254 :
255 else
256 ld_shlibs=no
257 fi
258 ;;
259 esac
260 if test "$ld_shlibs" = no; then
261 hardcode_libdir_flag_spec=
262 fi
263else
264 case "$host_os" in
265 aix3*)
266 # Note: this linker hardcodes the directories in LIBPATH if there
267 # are no directories specified by -L.
268 hardcode_minus_L=yes
269 if test "$GCC" = yes; then
270 # Neither direct hardcoding nor static linking is supported with a
271 # broken collect2.
272 hardcode_direct=unsupported
273 fi
274 ;;
275 aix[4-9]*)
276 if test "$host_cpu" = ia64; then
277 # On IA64, the linker does run time linking by default, so we don't
278 # have to do anything special.
279 aix_use_runtimelinking=no
280 else
281 aix_use_runtimelinking=no
282 # Test if we are trying to use run time linking or normal
283 # AIX style linking. If -brtl is somewhere in LDFLAGS, we
284 # need to do runtime linking.
285 case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
286 for ld_flag in $LDFLAGS; do
287 if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
288 aix_use_runtimelinking=yes
289 break
290 fi
291 done
292 ;;
293 esac
294 fi
295 hardcode_direct=yes
296 hardcode_libdir_separator=':'
297 if test "$GCC" = yes; then
298 case $host_os in aix4.[012]|aix4.[012].*)
299 collect2name=`${CC} -print-prog-name=collect2`
300 if test -f "$collect2name" && \
301 strings "$collect2name" | grep resolve_lib_name >/dev/null
302 then
303 # We have reworked collect2
304 :
305 else
306 # We have old collect2
307 hardcode_direct=unsupported
308 hardcode_minus_L=yes
309 hardcode_libdir_flag_spec='-L$libdir'
310 hardcode_libdir_separator=
311 fi
312 ;;
313 esac
314 fi
315 # Begin _LT_AC_SYS_LIBPATH_AIX.
316 echo 'int main () { return 0; }' > conftest.c
317 ${CC} ${LDFLAGS} conftest.c -o conftest
318 aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
319}'`
320 if test -z "$aix_libpath"; then
321 aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
322}'`
323 fi
324 if test -z "$aix_libpath"; then
325 aix_libpath="/usr/lib:/lib"
326 fi
327 rm -f conftest.c conftest
328 # End _LT_AC_SYS_LIBPATH_AIX.
329 if test "$aix_use_runtimelinking" = yes; then
330 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
331 else
332 if test "$host_cpu" = ia64; then
333 hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
334 else
335 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
336 fi
337 fi
338 ;;
339 amigaos*)
340 case "$host_cpu" in
341 powerpc)
342 ;;
343 m68k)
344 hardcode_libdir_flag_spec='-L$libdir'
345 hardcode_minus_L=yes
346 ;;
347 esac
348 ;;
349 bsdi[45]*)
350 ;;
351 cygwin* | mingw* | pw32* | cegcc*)
352 # When not using gcc, we currently assume that we are using
353 # Microsoft Visual C++.
354 # hardcode_libdir_flag_spec is actually meaningless, as there is
355 # no search path for DLLs.
356 hardcode_libdir_flag_spec=' '
357 libext=lib
358 ;;
359 darwin* | rhapsody*)
360 hardcode_direct=no
361 if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
362 :
363 else
364 ld_shlibs=no
365 fi
366 ;;
367 dgux*)
368 hardcode_libdir_flag_spec='-L$libdir'
369 ;;
370 freebsd2.[01]*)
371 hardcode_direct=yes
372 hardcode_minus_L=yes
373 ;;
374 freebsd* | dragonfly*)
375 hardcode_libdir_flag_spec='-R$libdir'
376 hardcode_direct=yes
377 ;;
378 hpux9*)
379 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
380 hardcode_libdir_separator=:
381 hardcode_direct=yes
382 # hardcode_minus_L: Not really in the search PATH,
383 # but as the default location of the library.
384 hardcode_minus_L=yes
385 ;;
386 hpux10*)
387 if test "$with_gnu_ld" = no; then
388 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
389 hardcode_libdir_separator=:
390 hardcode_direct=yes
391 # hardcode_minus_L: Not really in the search PATH,
392 # but as the default location of the library.
393 hardcode_minus_L=yes
394 fi
395 ;;
396 hpux11*)
397 if test "$with_gnu_ld" = no; then
398 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
399 hardcode_libdir_separator=:
400 case $host_cpu in
401 hppa*64*|ia64*)
402 hardcode_direct=no
403 ;;
404 *)
405 hardcode_direct=yes
406 # hardcode_minus_L: Not really in the search PATH,
407 # but as the default location of the library.
408 hardcode_minus_L=yes
409 ;;
410 esac
411 fi
412 ;;
413 irix5* | irix6* | nonstopux*)
414 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
415 hardcode_libdir_separator=:
416 ;;
417 netbsd*)
418 hardcode_libdir_flag_spec='-R$libdir'
419 hardcode_direct=yes
420 ;;
421 newsos6)
422 hardcode_direct=yes
423 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
424 hardcode_libdir_separator=:
425 ;;
426 *nto* | *qnx*)
427 ;;
428 openbsd*)
429 if test -f /usr/libexec/ld.so; then
430 hardcode_direct=yes
431 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
432 hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
433 else
434 case "$host_os" in
435 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
436 hardcode_libdir_flag_spec='-R$libdir'
437 ;;
438 *)
439 hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
440 ;;
441 esac
442 fi
443 else
444 ld_shlibs=no
445 fi
446 ;;
447 os2*)
448 hardcode_libdir_flag_spec='-L$libdir'
449 hardcode_minus_L=yes
450 ;;
451 osf3*)
452 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
453 hardcode_libdir_separator=:
454 ;;
455 osf4* | osf5*)
456 if test "$GCC" = yes; then
457 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
458 else
459 # Both cc and cxx compiler support -rpath directly
460 hardcode_libdir_flag_spec='-rpath $libdir'
461 fi
462 hardcode_libdir_separator=:
463 ;;
464 solaris*)
465 hardcode_libdir_flag_spec='-R$libdir'
466 ;;
467 sunos4*)
468 hardcode_libdir_flag_spec='-L$libdir'
469 hardcode_direct=yes
470 hardcode_minus_L=yes
471 ;;
472 sysv4)
473 case $host_vendor in
474 sni)
475 hardcode_direct=yes # is this really true???
476 ;;
477 siemens)
478 hardcode_direct=no
479 ;;
480 motorola)
481 hardcode_direct=no #Motorola manual says yes, but my tests say they lie
482 ;;
483 esac
484 ;;
485 sysv4.3*)
486 ;;
487 sysv4*MP*)
488 if test -d /usr/nec; then
489 ld_shlibs=yes
490 fi
491 ;;
492 sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
493 ;;
494 sysv5* | sco3.2v5* | sco5v6*)
495 hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
496 hardcode_libdir_separator=':'
497 ;;
498 uts4*)
499 hardcode_libdir_flag_spec='-L$libdir'
500 ;;
501 *)
502 ld_shlibs=no
503 ;;
504 esac
505fi
506
507# Check dynamic linker characteristics
508# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
509# Unlike libtool.m4, here we don't care about _all_ names of the library, but
510# only about the one the linker finds when passed -lNAME. This is the last
511# element of library_names_spec in libtool.m4, or possibly two of them if the
512# linker has special search rules.
513library_names_spec= # the last element of library_names_spec in libtool.m4
514libname_spec='lib$name'
515case "$host_os" in
516 aix3*)
517 library_names_spec='$libname.a'
518 ;;
519 aix[4-9]*)
520 library_names_spec='$libname$shrext'
521 ;;
522 amigaos*)
523 case "$host_cpu" in
524 powerpc*)
525 library_names_spec='$libname$shrext' ;;
526 m68k)
527 library_names_spec='$libname.a' ;;
528 esac
529 ;;
530 beos*)
531 library_names_spec='$libname$shrext'
532 ;;
533 bsdi[45]*)
534 library_names_spec='$libname$shrext'
535 ;;
536 cygwin* | mingw* | pw32* | cegcc*)
537 shrext=.dll
538 library_names_spec='$libname.dll.a $libname.lib'
539 ;;
540 darwin* | rhapsody*)
541 shrext=.dylib
542 library_names_spec='$libname$shrext'
543 ;;
544 dgux*)
545 library_names_spec='$libname$shrext'
546 ;;
547 freebsd[23].*)
548 library_names_spec='$libname$shrext$versuffix'
549 ;;
550 freebsd* | dragonfly*)
551 library_names_spec='$libname$shrext'
552 ;;
553 gnu*)
554 library_names_spec='$libname$shrext'
555 ;;
556 haiku*)
557 library_names_spec='$libname$shrext'
558 ;;
559 hpux9* | hpux10* | hpux11*)
560 case $host_cpu in
561 ia64*)
562 shrext=.so
563 ;;
564 hppa*64*)
565 shrext=.sl
566 ;;
567 *)
568 shrext=.sl
569 ;;
570 esac
571 library_names_spec='$libname$shrext'
572 ;;
573 interix[3-9]*)
574 library_names_spec='$libname$shrext'
575 ;;
576 irix5* | irix6* | nonstopux*)
577 library_names_spec='$libname$shrext'
578 case "$host_os" in
579 irix5* | nonstopux*)
580 libsuff= shlibsuff=
581 ;;
582 *)
583 case $LD in
584 *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
585 *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
586 *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
587 *) libsuff= shlibsuff= ;;
588 esac
589 ;;
590 esac
591 ;;
592 linux*oldld* | linux*aout* | linux*coff*)
593 ;;
594 linux* | k*bsd*-gnu | kopensolaris*-gnu)
595 library_names_spec='$libname$shrext'
596 ;;
597 knetbsd*-gnu)
598 library_names_spec='$libname$shrext'
599 ;;
600 netbsd*)
601 library_names_spec='$libname$shrext'
602 ;;
603 newsos6)
604 library_names_spec='$libname$shrext'
605 ;;
606 *nto* | *qnx*)
607 library_names_spec='$libname$shrext'
608 ;;
609 openbsd*)
610 library_names_spec='$libname$shrext$versuffix'
611 ;;
612 os2*)
613 libname_spec='$name'
614 shrext=.dll
615 library_names_spec='$libname.a'
616 ;;
617 osf3* | osf4* | osf5*)
618 library_names_spec='$libname$shrext'
619 ;;
620 rdos*)
621 ;;
622 solaris*)
623 library_names_spec='$libname$shrext'
624 ;;
625 sunos4*)
626 library_names_spec='$libname$shrext$versuffix'
627 ;;
628 sysv4 | sysv4.3*)
629 library_names_spec='$libname$shrext'
630 ;;
631 sysv4*MP*)
632 library_names_spec='$libname$shrext'
633 ;;
634 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
635 library_names_spec='$libname$shrext'
636 ;;
637 tpf*)
638 library_names_spec='$libname$shrext'
639 ;;
640 uts4*)
641 library_names_spec='$libname$shrext'
642 ;;
643esac
644
645sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
646escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
647shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
648escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
649escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
650escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
651
652LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
653
654# How to pass a linker flag through the compiler.
655wl="$escaped_wl"
656
657# Static library suffix (normally "a").
658libext="$libext"
659
660# Shared library suffix (normally "so").
661shlibext="$shlibext"
662
663# Format of library name prefix.
664libname_spec="$escaped_libname_spec"
665
666# Library names that the linker finds when passed -lNAME.
667library_names_spec="$escaped_library_names_spec"
668
669# Flag to hardcode \$libdir into a binary during linking.
670# This must work even if \$libdir does not exist.
671hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
672
673# Whether we need a single -rpath flag with a separated argument.
674hardcode_libdir_separator="$hardcode_libdir_separator"
675
676# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
677# resulting binary.
678hardcode_direct="$hardcode_direct"
679
680# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
681# resulting binary.
682hardcode_minus_L="$hardcode_minus_L"
683
684EOF
diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4
new file mode 100644
index 00000000..a2acf126
--- /dev/null
+++ b/m4/extern-inline.m4
@@ -0,0 +1,114 @@
1dnl 'extern inline' a la ISO C99.
2
3dnl Copyright 2012-2021 Free Software Foundation, Inc.
4dnl This file is free software; the Free Software Foundation
5dnl gives unlimited permission to copy and/or distribute it,
6dnl with or without modifications, as long as this notice is preserved.
7
8AC_DEFUN([gl_EXTERN_INLINE],
9[
10 AH_VERBATIM([extern_inline],
11[/* Please see the Gnulib manual for how to use these macros.
12
13 Suppress extern inline with HP-UX cc, as it appears to be broken; see
14 <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
15
16 Suppress extern inline with Sun C in standards-conformance mode, as it
17 mishandles inline functions that call each other. E.g., for 'inline void f
18 (void) { } inline void g (void) { f (); }', c99 incorrectly complains
19 'reference to static identifier "f" in extern inline function'.
20 This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
21
22 Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
23 on configurations that mistakenly use 'static inline' to implement
24 functions or macros in standard C headers like <ctype.h>. For example,
25 if isdigit is mistakenly implemented via a static inline function,
26 a program containing an extern inline function that calls isdigit
27 may not work since the C standard prohibits extern inline functions
28 from calling static functions (ISO C 99 section 6.7.4.(3).
29 This bug is known to occur on:
30
31 OS X 10.8 and earlier; see:
32 https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
33
34 DragonFly; see
35 http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
36
37 FreeBSD; see:
38 https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
39
40 OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
41 for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
42 Assume DragonFly and FreeBSD will be similar.
43
44 GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
45 inline semantics, unless -fgnu89-inline is used. It defines a macro
46 __GNUC_STDC_INLINE__ to indicate this situation or a macro
47 __GNUC_GNU_INLINE__ to indicate the opposite situation.
48 GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
49 semantics but warns, unless -fgnu89-inline is used:
50 warning: C99 inline functions are not supported; using GNU89
51 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
52 It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
53 */
54#if (((defined __APPLE__ && defined __MACH__) \
55 || defined __DragonFly__ || defined __FreeBSD__) \
56 && (defined __header_inline \
57 ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
58 && ! defined __clang__) \
59 : ((! defined _DONT_USE_CTYPE_INLINE_ \
60 && (defined __GNUC__ || defined __cplusplus)) \
61 || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
62 && defined __GNUC__ && ! defined __cplusplus))))
63# define _GL_EXTERN_INLINE_STDHEADER_BUG
64#endif
65#if ((__GNUC__ \
66 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
67 : (199901L <= __STDC_VERSION__ \
68 && !defined __HP_cc \
69 && !defined __PGI \
70 && !(defined __SUNPRO_C && __STDC__))) \
71 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
72# define _GL_INLINE inline
73# define _GL_EXTERN_INLINE extern inline
74# define _GL_EXTERN_INLINE_IN_USE
75#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
76 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
77# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
78 /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
79# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
80# else
81# define _GL_INLINE extern inline
82# endif
83# define _GL_EXTERN_INLINE extern
84# define _GL_EXTERN_INLINE_IN_USE
85#else
86# define _GL_INLINE static _GL_UNUSED
87# define _GL_EXTERN_INLINE static _GL_UNUSED
88#endif
89
90/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
91 suppress bogus "no previous prototype for 'FOO'"
92 and "no previous declaration for 'FOO'" diagnostics,
93 when FOO is an inline function in the header; see
94 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
95 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
96#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
97# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
98# define _GL_INLINE_HEADER_CONST_PRAGMA
99# else
100# define _GL_INLINE_HEADER_CONST_PRAGMA \
101 _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
102# endif
103# define _GL_INLINE_HEADER_BEGIN \
104 _Pragma ("GCC diagnostic push") \
105 _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
106 _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
107 _GL_INLINE_HEADER_CONST_PRAGMA
108# define _GL_INLINE_HEADER_END \
109 _Pragma ("GCC diagnostic pop")
110#else
111# define _GL_INLINE_HEADER_BEGIN
112# define _GL_INLINE_HEADER_END
113#endif])
114])
diff --git a/m4/intl-thread-locale.m4 b/m4/intl-thread-locale.m4
new file mode 100644
index 00000000..890fec00
--- /dev/null
+++ b/m4/intl-thread-locale.m4
@@ -0,0 +1,219 @@
1# intl-thread-locale.m4 serial 9
2dnl Copyright (C) 2015-2021 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6dnl
7dnl This file can be used in projects which are not available under
8dnl the GNU General Public License or the GNU Lesser General Public
9dnl License but which still want to provide support for the GNU gettext
10dnl functionality.
11dnl Please note that the actual code of the GNU gettext library is covered
12dnl by the GNU Lesser General Public License, and the rest of the GNU
13dnl gettext package is covered by the GNU General Public License.
14dnl They are *not* in the public domain.
15
16dnl Check how to retrieve the name of a per-thread locale (POSIX locale_t).
17dnl Sets gt_nameless_locales.
18AC_DEFUN([gt_INTL_THREAD_LOCALE_NAME],
19[
20 AC_REQUIRE([AC_CANONICAL_HOST])
21
22 dnl Persuade Solaris <locale.h> to define 'locale_t'.
23 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
24
25 dnl Test whether uselocale() exists and works at all.
26 gt_FUNC_USELOCALE
27
28 dnl On OpenBSD >= 6.2, the locale_t type and the uselocale(), newlocale(),
29 dnl duplocale(), freelocale() functions exist but are effectively useless,
30 dnl because the locale_t value depends only on the LC_CTYPE category of the
31 dnl locale and furthermore contains only one bit of information (it
32 dnl distinguishes the "C" locale from the *.UTF-8 locales). See
33 dnl <https://cvsweb.openbsd.org/src/lib/libc/locale/newlocale.c?rev=1.1&content-type=text/x-cvsweb-markup>.
34 dnl In the setlocale() implementation they have thought about the programs
35 dnl that use the API ("Even though only LC_CTYPE has any effect in the
36 dnl OpenBSD base system, store complete information about the global locale,
37 dnl such that third-party software can access it"), but for uselocale()
38 dnl they did not think about the programs.
39 dnl In this situation, even the HAVE_NAMELESS_LOCALES support does not work.
40 dnl So, define HAVE_FAKE_LOCALES and disable all locale_t support.
41 case "$gt_cv_func_uselocale_works" in
42 *yes)
43 AC_CHECK_HEADERS_ONCE([xlocale.h])
44 AC_CACHE_CHECK([for fake locale system (OpenBSD)],
45 [gt_cv_locale_fake],
46 [AC_RUN_IFELSE(
47 [AC_LANG_SOURCE([[
48#include <locale.h>
49#if HAVE_XLOCALE_H
50# include <xlocale.h>
51#endif
52int main ()
53{
54 locale_t loc1, loc2;
55 if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) return 1;
56 if (setlocale (LC_ALL, "fr_FR.UTF-8") == NULL) return 1;
57 loc1 = newlocale (LC_ALL_MASK, "de_DE.UTF-8", (locale_t)0);
58 loc2 = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", (locale_t)0);
59 return !(loc1 == loc2);
60}]])],
61 [gt_cv_locale_fake=yes],
62 [gt_cv_locale_fake=no],
63 [dnl Guess the locale system is fake only on OpenBSD.
64 case "$host_os" in
65 openbsd*) gt_cv_locale_fake="guessing yes" ;;
66 *) gt_cv_locale_fake="guessing no" ;;
67 esac
68 ])
69 ])
70 ;;
71 *) gt_cv_locale_fake=no ;;
72 esac
73 case "$gt_cv_locale_fake" in
74 *yes)
75 gt_fake_locales=yes
76 AC_DEFINE([HAVE_FAKE_LOCALES], [1],
77 [Define if the locale_t type contains insufficient information, as on OpenBSD.])
78 ;;
79 *)
80 gt_fake_locales=no
81 ;;
82 esac
83
84 case "$gt_cv_func_uselocale_works" in
85 *yes)
86 AC_CACHE_CHECK([for Solaris 11.4 locale system],
87 [gt_cv_locale_solaris114],
88 [case "$host_os" in
89 solaris*)
90 dnl Test whether <locale.h> defines locale_t as a typedef of
91 dnl 'struct _LC_locale_t **' (whereas Illumos defines it as a
92 dnl typedef of 'struct _locale *').
93 dnl Another possible test would be to include <sys/localedef.h>
94 dnl and test whether it defines the _LC_core_data_locale_t type.
95 dnl This type was added in Solaris 11.4.
96 AC_COMPILE_IFELSE(
97 [AC_LANG_PROGRAM([[
98 #include <locale.h>
99 struct _LC_locale_t *x;
100 locale_t y;
101 ]],
102 [[*y = x;]])],
103 [gt_cv_locale_solaris114=yes],
104 [gt_cv_locale_solaris114=no])
105 ;;
106 *) gt_cv_locale_solaris114=no ;;
107 esac
108 ])
109 ;;
110 *) gt_cv_locale_solaris114=no ;;
111 esac
112 if test $gt_cv_locale_solaris114 = yes; then
113 AC_DEFINE([HAVE_SOLARIS114_LOCALES], [1],
114 [Define if the locale_t type is as on Solaris 11.4.])
115 fi
116
117 dnl Solaris 12 will maybe provide getlocalename_l. If it does, it will
118 dnl improve the implementation of gl_locale_name_thread(), by removing
119 dnl the use of undocumented structures.
120 case "$gt_cv_func_uselocale_works" in
121 *yes)
122 AC_CHECK_FUNCS([getlocalename_l])
123 ;;
124 esac
125
126 dnl This code is for platforms where the locale_t type does not provide access
127 dnl to the name of each locale category. This code has the drawback that it
128 dnl requires the gnulib overrides of 'newlocale', 'duplocale', 'freelocale',
129 dnl which is a problem for GNU libunistring. Therefore try hard to avoid
130 dnl enabling this code!
131 gt_nameless_locales=no
132 case "$host_os" in
133 dnl It's needed on AIX 7.2.
134 aix*)
135 gt_nameless_locales=yes
136 AC_DEFINE([HAVE_NAMELESS_LOCALES], [1],
137 [Define if the locale_t type does not contain the name of each locale category.])
138 ;;
139 esac
140
141 dnl We cannot support uselocale() on platforms where the locale_t type is
142 dnl fake. So, set
143 dnl gt_good_uselocale = gt_working_uselocale && !gt_fake_locales.
144 if test $gt_working_uselocale = yes && test $gt_fake_locales = no; then
145 gt_good_uselocale=yes
146 AC_DEFINE([HAVE_GOOD_USELOCALE], [1],
147 [Define if the uselocale exists, may be safely called, and returns sufficient information.])
148 else
149 gt_good_uselocale=no
150 fi
151
152 dnl Set gt_localename_enhances_locale_funcs to indicate whether localename.c
153 dnl overrides newlocale(), duplocale(), freelocale() to keep track of locale
154 dnl names.
155 if test $gt_good_uselocale = yes && test $gt_nameless_locales = yes; then
156 gt_localename_enhances_locale_funcs=yes
157 LOCALENAME_ENHANCE_LOCALE_FUNCS=1
158 AC_DEFINE([LOCALENAME_ENHANCE_LOCALE_FUNCS], [1],
159 [Define if localename.c overrides newlocale(), duplocale(), freelocale().])
160 else
161 gt_localename_enhances_locale_funcs=no
162 fi
163])
164
165dnl Tests whether uselocale() exists and is usable.
166dnl Sets gt_working_uselocale and defines HAVE_WORKING_USELOCALE.
167AC_DEFUN([gt_FUNC_USELOCALE],
168[
169 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
170
171 dnl Persuade glibc and Solaris <locale.h> to define 'locale_t'.
172 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
173
174 AC_CHECK_FUNCS_ONCE([uselocale])
175
176 dnl On AIX 7.2, the uselocale() function is not documented and leads to
177 dnl crashes in subsequent setlocale() invocations.
178 dnl In 2019, some versions of z/OS lack the locale_t type and have a broken
179 dnl uselocale function.
180 if test $ac_cv_func_uselocale = yes; then
181 AC_CHECK_HEADERS_ONCE([xlocale.h])
182 AC_CACHE_CHECK([whether uselocale works],
183 [gt_cv_func_uselocale_works],
184 [AC_RUN_IFELSE(
185 [AC_LANG_SOURCE([[
186#include <locale.h>
187#if HAVE_XLOCALE_H
188# include <xlocale.h>
189#endif
190locale_t loc1;
191int main ()
192{
193 uselocale (NULL);
194 setlocale (LC_ALL, "en_US.UTF-8");
195 return 0;
196}]])],
197 [gt_cv_func_uselocale_works=yes],
198 [gt_cv_func_uselocale_works=no],
199 [# Guess no on AIX and z/OS, yes otherwise.
200 case "$host_os" in
201 aix* | openedition*) gt_cv_func_uselocale_works="guessing no" ;;
202 *) gt_cv_func_uselocale_works="guessing yes" ;;
203 esac
204 ])
205 ])
206 else
207 gt_cv_func_uselocale_works=no
208 fi
209 case "$gt_cv_func_uselocale_works" in
210 *yes)
211 gt_working_uselocale=yes
212 AC_DEFINE([HAVE_WORKING_USELOCALE], [1],
213 [Define if the uselocale function exists and may safely be called.])
214 ;;
215 *)
216 gt_working_uselocale=no
217 ;;
218 esac
219])