]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgo/configure.ac
fix single argument static_assert
[thirdparty/gcc.git] / libgo / configure.ac
CommitLineData
7a938933
ILT
1# configure.ac -- Go library configure script.
2
3# Copyright 2009 The Go Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style
5# license that can be found in the LICENSE file.
6
7# Process this file with autoreconf to produce configure.
8
7a938933
ILT
9AC_INIT(package-unused, version-unused,, libgo)
10AC_CONFIG_SRCDIR(Makefile.am)
11AC_CONFIG_HEADER(config.h)
12
f1412546 13libtool_VERSION=23:0:0
7a938933
ILT
14AC_SUBST(libtool_VERSION)
15
16AM_ENABLE_MULTILIB(, ..)
17
18AC_CANONICAL_SYSTEM
19target_alias=${target_alias-$host_alias}
20
73b6d7a9 21AM_INIT_AUTOMAKE([1.9.3 no-define foreign no-dist subdir-objects -Wall -Wno-portability -Wno-override])
7a938933
ILT
22AH_TEMPLATE(PACKAGE, [Name of package])
23AH_TEMPLATE(VERSION, [Version number of package])
24
25m4_rename([_AC_ARG_VAR_PRECIOUS],[glibgo_PRECIOUS])
26m4_define([_AC_ARG_VAR_PRECIOUS],[])
27AC_PROG_CC
28AC_PROG_GO
4d12cf3c 29AM_PROG_AS
7a938933
ILT
30m4_rename_force([glibgo_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
31
32AC_SUBST(CFLAGS)
33
f163907e
ILT
34case ${host} in
35 *-*-aix*)
83cc5e2b 36 # Check default architecture for FAT library creation
d040555a
CC
37 if test -z "`$CC -x c -E /dev/null -g3 -o - | grep 64BIT`" ; then
38 AIX_EXTRA_ARCH='64'
83cc5e2b 39 else
d040555a 40 AIX_EXTRA_ARCH='32'
83cc5e2b 41 fi
d040555a 42 AC_SUBST(AIX_EXTRA_ARCH)
f163907e
ILT
43 ;;
44esac
45
7a938933
ILT
46AM_MAINTAINER_MODE
47
48AC_PROG_LD
49AC_PROG_RANLIB
50AC_CHECK_TOOL(OBJCOPY, objcopy, missing-objcopy)
51
52AC_LIBTOOL_DLOPEN
53AM_PROG_LIBTOOL
54AC_SUBST(enable_shared)
55AC_SUBST(enable_static)
6a6d3817 56AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes])
7a938933 57
d983a802
ILT
58CC_FOR_BUILD=${CC_FOR_BUILD:-gcc}
59AC_SUBST(CC_FOR_BUILD)
60
de27caac
ILT
61AC_PROG_AWK
62
7a938933
ILT
63WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual'
64AC_SUBST(WARN_FLAGS)
65
45ba6bf2
DS
66AC_ARG_ENABLE([werror],
67 [AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
68AS_IF([test "x$enable_werror" != "xno" && test "x$GCC" = "xyes"],
69 [WERROR="-Werror"])
7a938933
ILT
70AC_SUBST(WERROR)
71
72glibgo_toolexecdir=no
73glibgo_toolexeclibdir=no
7a938933
ILT
74
75AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
76AC_ARG_ENABLE([version-specific-runtime-libs],
77 AC_HELP_STRING([--enable-version-specific-runtime-libs],
78 [Specify that runtime libraries should be installed in a compiler-specific directory]),
79 [case "$enableval" in
80 yes) version_specific_libs=yes ;;
81 no) version_specific_libs=no ;;
82 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
83 esac],
84 [version_specific_libs=no])
85AC_MSG_RESULT($version_specific_libs)
86
ba386bea
ILT
87GCC_WITH_TOOLEXECLIBDIR
88
7a938933
ILT
89# Version-specific runtime libs processing.
90if test $version_specific_libs = yes; then
91 glibgo_toolexecdir='${libdir}/gcc/${host_alias}'
92 glibgo_toolexeclibdir='${toolexecdir}/${gcc_version}$(MULTISUBDIR)'
93fi
94
95# Calculate glibgo_toolexecdir, glibgo_toolexeclibdir
96# Install a library built with a cross compiler in tooldir, not libdir.
317ea7c0
ILT
97if test -n "$with_cross_host" &&
98 test x"$with_cross_host" != x"no"; then
99 nover_glibgo_toolexecdir='${exec_prefix}/${host_alias}'
ba386bea
ILT
100 case ${with_toolexeclibdir} in
101 no)
102 nover_glibgo_toolexeclibdir='${toolexecdir}/lib'
103 ;;
104 *)
105 nover_glibgo_toolexeclibdir=${with_toolexeclibdir}
106 ;;
107 esac
317ea7c0
ILT
108else
109 nover_glibgo_toolexecdir='${libdir}/gcc/${host_alias}'
110 nover_glibgo_toolexeclibdir='${libdir}'
111fi
6c76a95d 112multi_os_directory=`$GOC -print-multi-os-directory`
317ea7c0
ILT
113case $multi_os_directory in
114 .) ;; # Avoid trailing /.
115 *) nover_glibgo_toolexeclibdir=${nover_glibgo_toolexeclibdir}/${multi_os_directory} ;;
116esac
117
7a938933 118if test x"$glibgo_toolexecdir" = x"no"; then
317ea7c0
ILT
119 glibgo_toolexecdir="${nover_glibgo_toolexecdir}"
120 glibgo_toolexeclibdir="${nover_glibgo_toolexeclibdir}"
7a938933
ILT
121fi
122
7a938933
ILT
123AC_SUBST(glibgo_toolexecdir)
124AC_SUBST(glibgo_toolexeclibdir)
317ea7c0 125AC_SUBST(nover_glibgo_toolexeclibdir)
7a938933
ILT
126
127# See if the user wants to configure without libffi. Some
128# architectures don't support it. FIXME: We should set a default
129# based on the host.
130AC_ARG_WITH(libffi,
131 AS_HELP_STRING([--without-libffi],
132 [don't use libffi]),
133 [:],
134 [with_libffi=${with_libffi_default-yes}])
135
136LIBFFI=
137LIBFFIINCS=
138if test "$with_libffi" != no; then
139 AC_DEFINE(USE_LIBFFI, 1, [Define if we're to use libffi.])
140 LIBFFI=../libffi/libffi_convenience.la
141 LIBFFIINCS='-I$(top_srcdir)/../libffi/include -I../libffi/include'
142fi
143AC_SUBST(LIBFFI)
144AC_SUBST(LIBFFIINCS)
8b9cfd76 145AM_CONDITIONAL(USE_LIBFFI, test "$with_libffi" != "no")
7a938933 146
9a85ed03
ILT
147# See if the user wants to configure without libatomic. This is useful if we are
148# on an architecture for which libgo does not need an atomic support library and
149# libatomic does not support our C compiler.
150AC_ARG_WITH(libatomic,
151 AS_HELP_STRING([--without-libatomic],
152 [don't use libatomic]),
153 [:],
154 [with_libatomic=${with_libatomic_default-yes}])
155
156LIBATOMIC=
157if test "$with_libatomic" != no; then
158 LIBATOMIC=../libatomic/libatomic_convenience.la
159fi
160AC_SUBST(LIBATOMIC)
161
18c70075
ILT
162# Used to tell GNU make to include a file without telling automake to
163# include it.
164go_include="-include"
165AC_SUBST(go_include)
166
a8464243
ILT
167# All known GOOS values. This is the union of all operating systems
168# supported by the gofrontend and all operating systems supported by
169# the gc toolchain.
cfcbb422 170ALLGOOS="aix android darwin dragonfly freebsd hurd illumos ios irix js linux netbsd openbsd plan9 rtems solaris windows zos"
a8464243 171
7a938933
ILT
172is_darwin=no
173is_freebsd=no
654d2ec0 174is_irix=no
7a938933 175is_linux=no
1efa38d1 176is_netbsd=no
4ccad563 177is_openbsd=no
f038dae6 178is_dragonfly=no
7a938933 179is_rtems=no
f2ee78b8 180is_solaris=no
f163907e 181is_aix=no
d9f0237f 182is_hurd=no
c3b5b97b 183GOOS=unknown
7a938933 184case ${host} in
f2ee78b8
ILT
185 *-*-darwin*) is_darwin=yes; GOOS=darwin ;;
186 *-*-freebsd*) is_freebsd=yes; GOOS=freebsd ;;
654d2ec0 187 *-*-irix6*) is_irix=yes; GOOS=irix ;;
f2ee78b8 188 *-*-linux*) is_linux=yes; GOOS=linux ;;
df4aa89a 189 *-*-netbsd*) is_netbsd=yes; GOOS=netbsd ;;
4ccad563 190 *-*-openbsd*) is_openbsd=yes; GOOS=openbsd ;;
f038dae6 191 *-*-dragonfly*) is_dragonfly=yes; GOOS=dragonfly ;;
f2ee78b8
ILT
192 *-*-rtems*) is_rtems=yes; GOOS=rtems ;;
193 *-*-solaris2*) is_solaris=yes; GOOS=solaris ;;
f163907e 194 *-*-aix*) is_aix=yes; GOOS=aix ;;
d9f0237f 195 *-*-gnu*) is_hurd=yes; GOOS=hurd ;;
7a938933
ILT
196esac
197AM_CONDITIONAL(LIBGO_IS_DARWIN, test $is_darwin = yes)
198AM_CONDITIONAL(LIBGO_IS_FREEBSD, test $is_freebsd = yes)
654d2ec0 199AM_CONDITIONAL(LIBGO_IS_IRIX, test $is_irix = yes)
7a938933 200AM_CONDITIONAL(LIBGO_IS_LINUX, test $is_linux = yes)
df4aa89a 201AM_CONDITIONAL(LIBGO_IS_NETBSD, test $is_netbsd = yes)
4ccad563 202AM_CONDITIONAL(LIBGO_IS_OPENBSD, test $is_openbsd = yes)
824393bd 203AM_CONDITIONAL(LIBGO_IS_DRAGONFLY, test $is_dragonfly = yes)
7a938933 204AM_CONDITIONAL(LIBGO_IS_RTEMS, test $is_rtems = yes)
f2ee78b8 205AM_CONDITIONAL(LIBGO_IS_SOLARIS, test $is_solaris = yes)
f163907e 206AM_CONDITIONAL(LIBGO_IS_AIX, test $is_aix = yes)
d9f0237f 207AM_CONDITIONAL(LIBGO_IS_HURD, test $is_hurd = yes)
22b955cc 208AM_CONDITIONAL(LIBGO_IS_BSD, test $is_darwin = yes -o $is_dragonfly = yes -o $is_freebsd = yes -o $is_netbsd = yes -o $is_openbsd = yes)
c3b5b97b 209AC_SUBST(GOOS)
a8464243 210AC_SUBST(ALLGOOS)
7a938933 211
cfc6d9ae
ILT
212if test "${GOOS}" = "unknown"; then
213 AC_MSG_ERROR("could not determine GOOS from ${host}")
214fi
215
7134cf28
ILT
216dnl Test whether we need to use DejaGNU or whether we can use the
217dnl simpler gotest approach. We can only use gotest for a native
218dnl build.
219USE_DEJAGNU=no
220case ${host} in
221 *-*-rtems*) USE_DEJAGNU=yes ;;
553752e1 222 ${build}) ;;
7134cf28
ILT
223 *) USE_DEJAGNU=yes ;;
224esac
225AC_SUBST(USE_DEJAGNU)
226
a8464243
ILT
227# All known GOARCH values. This is the union of all architectures
228# supported by the gofrontend and all architectures supported by the
229# gc toolchain.
ffad1c54
ILT
230# To add a new architecture:
231# - add it to this list
232# - if appropriate, add an entry to ALLGOARCHFAMILY below
233# - add an entry to the case on ${host} below to set GOARCH
234# - update goarchList in libgo/go/go/build/syslist.go
235# - update goarch.sh to report the values for this architecture
236# - update go-set-goarch in gcc/testsuite/go.test/go-test.exp
237# - update ptrSizeMap and intSizeMap in libgo/go/cmd/cgo/main.go
238# - update arch lists in libgo/match.sh
239# - update arch lists in libgo/testsuite/gotest
240# - update +build lines in several places
241# - libgo/go/runtime/lfstack_NNbit.go
242# - libgo/go/runtime/hashNN.go
243# - libgo/go/runtime/unalignedN.go
244# - libgo/go/syscall/endian_XX.go
245# - possibly others
246# - possibly update files in libgo/go/internal/syscall/unix
87cbbc45 247ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 ppc ppc64 ppc64le riscv riscv64 s390 s390x sh shbe sparc sparc64 wasm"
a8464243 248
ffad1c54 249# All known GOARCH family values.
87cbbc45 250ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 NIOS2 PPC PPC64 RISCV RISCV64 S390 S390X SH SPARC SPARC64 WASM"
a8464243 251
c3b5b97b 252GOARCH=unknown
7a938933 253case ${host} in
e59b9171 254 alpha*-*-*)
e59b9171
ILT
255 GOARCH=alpha
256 ;;
71d0d50a 257 aarch64-*-*)
71d0d50a
ILT
258 GOARCH=arm64
259 ;;
9961856c
ILT
260 aarch64_be-*-*)
261 GOARCH=arm64be
262 ;;
ca11cc98 263 arm*-*-* | strongarm*-*-* | ep9312*-*-* | xscale-*-*)
ca11cc98 264 GOARCH=arm
1a2f01ef
ILT
265 case ${host} in
266 arm*b*-*-*)
267 GOARCH=armbe
1a2f01ef
ILT
268 ;;
269 esac
ca11cc98 270 ;;
7a938933 271changequote(,)dnl
c3b5b97b 272 i[34567]86-*-* | x86_64-*-*)
7a938933 273changequote([,])dnl
73b6d7a9 274 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
c3b5b97b
ILT
275#ifdef __x86_64__
276#error 64-bit
73b6d7a9
ILT
277#endif
278])],
44ef0300 279 [GOARCH=386],
73b6d7a9 280 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
44ef0300
ILT
281#ifdef __ILP32__
282#error x32
73b6d7a9
ILT
283#endif
284])],
44ef0300
ILT
285 [GOARCH=amd64],
286 [GOARCH=amd64p32]))
7a938933 287 ;;
4f8e688a 288 ia64-*-*)
4f8e688a
ILT
289 GOARCH=ia64
290 ;;
ca11cc98 291 m68k*-*-*)
ca11cc98
ILT
292 GOARCH=m68k
293 ;;
294 mips*-*-*)
73b6d7a9 295 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
85a09210
ILT
296#if _MIPS_SIM != _ABIO32
297#error not o32
73b6d7a9
ILT
298#endif
299])],
85a09210 300[mips_abi="o32"],
73b6d7a9 301 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
85a09210
ILT
302#if _MIPS_SIM != _ABIN32
303#error not n32
73b6d7a9
ILT
304#endif
305])],
85a09210 306[mips_abi="n32"],
73b6d7a9 307 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
85a09210
ILT
308#if _MIPS_SIM != _ABI64
309#error not n64
73b6d7a9
ILT
310#endif
311])],
85a09210 312[mips_abi="n64"],
85a09210 313 [AC_MSG_ERROR([unknown MIPS ABI])
b95cd48b 314[mips_abi="n32"]])])])
85a09210 315 case "$mips_abi" in
1701a9d8
ILT
316 "o32") GOARCH=mips ;;
317 "n32") GOARCH=mips64p32 ;;
318 "n64") GOARCH=mips64 ;;
85a09210 319 esac
a8464243 320 case "${host}" in
1701a9d8
ILT
321 mips*el-*-*)
322 GOARCH="${GOARCH}le"
a8464243 323 ;;
a8464243 324 esac
ca11cc98 325 ;;
746d6ed4
ILT
326 nios2-*-*)
327 GOARCH=nios2
328 ;;
ca11cc98 329 rs6000*-*-* | powerpc*-*-*)
73b6d7a9 330 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
ca11cc98
ILT
331#ifdef _ARCH_PPC64
332#error 64-bit
73b6d7a9
ILT
333#endif
334])],
ffad1c54 335[GOARCH=ppc],
a8464243 336 [
73b6d7a9 337AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6f7ccafa
ILT
338#if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__)
339#error 64be
73b6d7a9
ILT
340#endif
341])],
ffad1c54
ILT
342[GOARCH=ppc64le],
343[GOARCH=ppc64])])
7a938933 344 ;;
2c5499b5
MR
345 riscv*-*-*)
346 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
347#if __riscv_xlen == 64
348#error 64-bit
349#endif
350])],
351[GOARCH=riscv],
352[GOARCH=riscv64])
b613cc2e 353 ;;
1fec5f52 354 s390*-*-*)
73b6d7a9 355 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1fec5f52
ILT
356#if defined(__s390x__)
357#error 64-bit
73b6d7a9
ILT
358#endif
359])],
ffad1c54
ILT
360[GOARCH=s390],
361[GOARCH=s390x])
fd0c1dd1 362 ;;
ffad1c54 363 sh3eb*-*-* | sh4eb*-*-*)
fd0c1dd1 364 GOARCH=shbe
fd0c1dd1 365 ;;
ffad1c54 366 sh3*-*-* | sh4*-*-*)
fd0c1dd1 367 GOARCH=sh
fd0c1dd1 368 ;;
f2ee78b8 369 sparc*-*-*)
73b6d7a9 370 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
f2ee78b8
ILT
371#if defined(__sparcv9) || defined(__arch64__)
372#error 64-bit
73b6d7a9
ILT
373#endif
374])],
ffad1c54
ILT
375[GOARCH=sparc],
376[GOARCH=sparc64])
f2ee78b8 377 ;;
7a938933 378esac
c3b5b97b 379AC_SUBST(GOARCH)
a8464243
ILT
380AC_SUBST(ALLGOARCH)
381AC_SUBST(ALLGOARCHFAMILY)
7a938933 382
cfc6d9ae
ILT
383if test "${GOARCH}" = "unknown"; then
384 AC_MSG_ERROR("could not determine GOARCH from ${host}")
385fi
386
de0f55db
ILT
387AM_CONDITIONAL(LIBGO_IS_X86, test "$GOARCH" = "386" -o "$GOARCH" = "amd64" -o "$GOARCH" = "amd64p32")
388
cba8a572
ILT
389FUNCTION_DESCRIPTORS=false
390case ${host} in
391 rs6000*-*-* | powerpc*-*-*)
392 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
393#if _CALL_ELF == 1
394#error descriptors
395#endif
396])],
397 [FUNCTION_DESCRIPTORS=false],
398 [FUNCTION_DESCRIPTORS=true])
399 ;;
400esac
401AC_SUBST(FUNCTION_DESCRIPTORS)
402
ca11cc98 403dnl Some files are only present when needed for specific architectures.
de27caac
ILT
404GO_LIBCALL_OS_FILE=
405GO_LIBCALL_OS_ARCH_FILE=
406GO_SYSCALL_OS_FILE=
407GO_SYSCALL_OS_ARCH_FILE=
204b9fc2
ILT
408if test -f "${srcdir}/go/syscall/libcall_${GOOS}.go"; then
409 GO_LIBCALL_OS_FILE="go/syscall/libcall_${GOOS}.go"
de27caac 410fi
204b9fc2
ILT
411if test -f "${srcdir}/go/syscall/libcall_${GOOS}_${GOARCH}.go"; then
412 GO_LIBCALL_OS_ARCH_FILE="go/syscall/libcall_${GOOS}_${GOARCH}.go"
de27caac 413fi
204b9fc2
ILT
414if test -f "${srcdir}/go/syscall/syscall_${GOOS}.go"; then
415 GO_SYSCALL_OS_FILE="go/syscall/syscall_${GOOS}.go"
de27caac 416fi
204b9fc2
ILT
417if test -f "${srcdir}/go/syscall/syscall_${GOOS}_${GOARCH}.go"; then
418 GO_SYSCALL_OS_ARCH_FILE="go/syscall/syscall_${GOOS}_${GOARCH}.go"
ca11cc98 419fi
de27caac
ILT
420AC_SUBST(GO_LIBCALL_OS_FILE)
421AC_SUBST(GO_LIBCALL_OS_ARCH_FILE)
422AC_SUBST(GO_SYSCALL_OS_FILE)
423AC_SUBST(GO_SYSCALL_OS_ARCH_FILE)
ca11cc98 424
d48be5df
ILT
425dnl Special flags used to generate sysinfo.go.
426OSCFLAGS="-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
90630d19 427case "$target" in
9f3b1e6c
ILT
428 mips-sgi-irix6.5*)
429 # IRIX 6 needs _XOPEN_SOURCE=500 for the XPG5 version of struct
430 # msghdr in <sys/socket.h>.
d48be5df 431 OSCFLAGS="$OSCFLAGS -D_XOPEN_SOURCE=500"
9f3b1e6c 432 ;;
93ee143d 433 *-*-solaris2.*)
90630d19 434 # Solaris 10+ needs this so struct msghdr gets the msg_control
bbe847a1 435 # etc. fields in <sys/socket.h> (_XPG4_2). _XOPEN_SOURCE=600 as
90630d19 436 # above doesn't work with C99.
bbe847a1 437 OSCFLAGS="$OSCFLAGS -std=gnu99 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__"
90630d19
ILT
438 ;;
439esac
440AC_SUBST(OSCFLAGS)
441
08934aed
ILT
442dnl Check if assembler supports disabling hardware capability support.
443GCC_CHECK_ASSEMBLER_HWCAP
c3c54e0f 444
7a938933
ILT
445dnl Use -fsplit-stack when compiling C code if available.
446AC_CACHE_CHECK([whether -fsplit-stack is supported],
f2ee78b8 447[libgo_cv_c_split_stack_supported],
7a938933
ILT
448[CFLAGS_hold=$CFLAGS
449CFLAGS="$CFLAGS -fsplit-stack"
73b6d7a9 450AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
f2ee78b8
ILT
451[libgo_cv_c_split_stack_supported=yes],
452[libgo_cv_c_split_stack_supported=no])
7a938933 453CFLAGS=$CFLAGS_hold])
c33c18cd
ILT
454
455dnl Make sure the linker permits -fsplit-stack. Old versions of gold will
456dnl reject split-stack code calling non-split-stack code on targets
457dnl they don't support.
458AC_CACHE_CHECK([whether linker supports split/non-split linked together],
459[libgo_cv_c_linker_split_non_split],
460[cat > conftest1.c << EOF
461extern void f();
462int main() { f(); return 0; }
463EOF
464cat > conftest2.c << EOF
465void f() {}
466EOF
207f844e
ILT
467$CC -c -fsplit-stack $CFLAGS $CPPFLAGS conftest1.c >/dev/null 2>&1
468$CC -c $CFLAGS $CPPFLAGS conftest2.c > /dev/null 2>&1
469if $CC -o conftest conftest1.$ac_objext conftest2.$ac_objext > /dev/null 2>&1; then
c33c18cd
ILT
470 libgo_cv_c_linker_split_non_split=yes
471else
472 libgo_cv_c_linker_split_non_split=no
473fi
474rm -f conftest1.* conftest2.* conftest])
475
476if test "$libgo_cv_c_split_stack_supported" = yes -a "$libgo_cv_c_linker_split_non_split" = yes; then
7a938933
ILT
477 SPLIT_STACK=-fsplit-stack
478 AC_DEFINE(USING_SPLIT_STACK, 1,
479 [Define if the compiler supports -fsplit-stack])
480else
481 SPLIT_STACK=
482fi
483AC_SUBST(SPLIT_STACK)
484AM_CONDITIONAL(USING_SPLIT_STACK,
c33c18cd 485 test "$libgo_cv_c_split_stack_supported" = yes -a "$libgo_cv_c_linker_split_non_split" = yes)
7a938933 486
a2bf11d1
ILT
487dnl If the compiler supports split-stack but the linker does not, then
488dnl we need to explicitly disable split-stack for Go.
489if test "$libgo_cv_c_split_stack_supported" = yes -a "$libgo_cv_c_linker_split_non_split" = no; then
490 GO_SPLIT_STACK=-fno-split-stack
491else
492 GO_SPLIT_STACK=
493fi
494AC_SUBST(GO_SPLIT_STACK)
495
7a938933
ILT
496dnl Check whether the linker does stack munging when calling from
497dnl split-stack into non-split-stack code. We check this by looking
498dnl at the --help output. FIXME: This is only half right: it's
499dnl possible for the linker to support this for some targets but not
500dnl others.
c33c18cd
ILT
501dnl This is slightly different from the above check, which is whether
502dnl the linker permits the call at all.
7a938933 503AC_CACHE_CHECK([whether linker supports split stack],
f2ee78b8 504[libgo_cv_c_linker_supports_split_stack],
f56c5dd1
ILT
505[libgo_cv_c_linker_supports_split_stack=no
506if $GOC -Wl,--help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then
f2ee78b8 507 libgo_cv_c_linker_supports_split_stack=yes
f56c5dd1 508fi])
f2ee78b8 509if test "$libgo_cv_c_linker_supports_split_stack" = yes; then
7a938933
ILT
510 AC_DEFINE(LINKER_SUPPORTS_SPLIT_STACK, 1,
511 [Define if the linker support split stack adjustments])
512fi
513
4c46b5f0
ILT
514AC_CACHE_CHECK([whether compiler is llgo],
515[libgo_cv_c_goc_is_llgo],
516[libgo_cv_c_goc_is_llgo=no
517if $GOC -dumpversion 2>/dev/null | grep llgo >/dev/null 2>&1; then
518 libgo_cv_c_goc_is_llgo=yes
519fi])
520AM_CONDITIONAL(GOC_IS_LLGO, test "$libgo_cv_c_goc_is_llgo" = yes)
521
505b439a
ILT
522dnl Test for the -lm library.
523MATH_LIBS=
524AC_CHECK_LIB([m], [sqrt], MATH_LIBS=-lm)
525AC_SUBST(MATH_LIBS)
526
f2ee78b8
ILT
527dnl Test for -lsocket and -lnsl. Copied from libjava/configure.ac.
528AC_CACHE_CHECK([for socket libraries], libgo_cv_lib_sockets,
529 [libgo_cv_lib_sockets=
530 libgo_check_both=no
531 AC_CHECK_FUNC(connect, libgo_check_socket=no, libgo_check_socket=yes)
532 if test "$libgo_check_socket" = "yes"; then
533 unset ac_cv_func_connect
534 AC_CHECK_LIB(socket, main, libgo_cv_lib_sockets="-lsocket",
535 libgo_check_both=yes)
536 fi
537 if test "$libgo_check_both" = "yes"; then
538 libgo_old_libs=$LIBS
539 LIBS="$LIBS -lsocket -lnsl"
540 unset ac_cv_func_accept
541 AC_CHECK_FUNC(accept,
542 [libgo_check_nsl=no
543 libgo_cv_lib_sockets="-lsocket -lnsl"])
544 unset ac_cv_func_accept
545 LIBS=$libgo_old_libs
546 fi
547 unset ac_cv_func_gethostbyname
548 libgo_old_libs="$LIBS"
549 AC_CHECK_FUNC(gethostbyname, ,
550 [AC_CHECK_LIB(nsl, main,
551 [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lnsl"])])
552 unset ac_cv_func_gethostbyname
88cf4de8
ILT
553 AC_CHECK_FUNC(sendfile, ,
554 [AC_CHECK_LIB(sendfile, main,
555 [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lsendfile"])])
f2ee78b8
ILT
556 LIBS=$libgo_old_libs
557])
558NET_LIBS="$libgo_cv_lib_sockets"
559AC_SUBST(NET_LIBS)
560
6c94a9fa
ILT
561dnl Test whether the compiler supports the -pthread option.
562AC_CACHE_CHECK([whether -pthread is supported],
f2ee78b8 563[libgo_cv_lib_pthread],
6c94a9fa 564[CFLAGS_hold=$CFLAGS
35e7db41 565CFLAGS="$CFLAGS -pthread -L../libatomic/.libs"
73b6d7a9 566AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
f2ee78b8
ILT
567[libgo_cv_lib_pthread=yes],
568[libgo_cv_lib_pthread=no])
6c94a9fa
ILT
569CFLAGS=$CFLAGS_hold])
570PTHREAD_CFLAGS=
f2ee78b8 571if test "$libgo_cv_lib_pthread" = yes; then
35e7db41
ILT
572 # RISC-V apparently adds -latomic when using -pthread.
573 PTHREAD_CFLAGS="-pthread -L../libatomic/.libs"
6c94a9fa
ILT
574fi
575AC_SUBST(PTHREAD_CFLAGS)
576
577dnl Test for the -lpthread library.
578PTHREAD_LIBS=
579AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS=-lpthread)
580AC_SUBST(PTHREAD_LIBS)
581
2b1a604a
ILT
582dnl Test if -lucontext is required for makecontext.
583AC_SEARCH_LIBS([makecontext], [ucontext])
584
bbbe8b33 585dnl Test if -lrt is required for sched_yield or nanosleep or clock_gettime.
ed4ebabc 586AC_SEARCH_LIBS([sched_yield], [rt])
ae135907 587AC_SEARCH_LIBS([nanosleep], [rt])
bbbe8b33 588AC_SEARCH_LIBS([clock_gettime], [rt])
ed4ebabc 589
7a938933
ILT
590AC_C_BIGENDIAN
591
592GCC_CHECK_UNWIND_GETIPINFO
593
7f195a22 594AC_CHECK_HEADERS(fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
6222bddc
ILT
595
596AC_CHECK_HEADERS([netinet/icmp6.h], [], [],
597[#include <netinet/in.h>
598])
adb0401d 599
1410c222 600AC_CHECK_HEADERS([linux/filter.h linux/if_addr.h linux/if_ether.h linux/if_tun.h linux/netlink.h linux/rtnetlink.h], [], [],
adb0401d
ILT
601[#ifdef HAVE_SYS_SOCKET_H
602#include <sys/socket.h>
603#endif
604])
605
7a938933 606AM_CONDITIONAL(HAVE_SYS_MMAN_H, test "$ac_cv_header_sys_mman_h" = yes)
8955c80a 607
d8ccfadb 608AC_CHECK_FUNCS(strerror_r strsignal wait4 mincore setenv unsetenv dl_iterate_phdr memmem)
8955c80a 609AM_CONDITIONAL(HAVE_STRERROR_R, test "$ac_cv_func_strerror_r" = yes)
0b3189e7 610AM_CONDITIONAL(HAVE_WAIT4, test "$ac_cv_func_wait4" = yes)
7a938933 611
cfcbb422
ILT
612AC_STRUCT_DIRENT_D_TYPE
613
f163907e 614AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
5d46bf05 615AC_TYPE_OFF_T
7f195a22
ILT
616
617CFLAGS_hold="$CFLAGS"
618CFLAGS="$OSCFLAGS $CFLAGS"
7905a9ac
ILT
619AC_CHECK_TYPES([loff_t], [], [], [[
620#include <sys/types.h>
621#include <fcntl.h>
622]])
7f195a22 623CFLAGS="$CFLAGS_hold"
e02ed81e 624
324612b3
ILT
625LIBS_hold="$LIBS"
626LIBS="$LIBS -lm"
627AC_CHECK_FUNCS(cosl expl logl sinl tanl acosl asinl atanl atan2l expm1l ldexpl log10l log1pl)
628LIBS="$LIBS_hold"
629
08ee945e
ILT
630CFLAGS_hold="$CFLAGS"
631CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
632LIBS_hold="$LIBS"
633LIBS="$LIBS $PTHREAD_LIBS"
634AC_CHECK_FUNCS(sem_timedwait)
635CFLAGS="$CFLAGS_hold"
636LIBS="$LIBS_hold"
637
d2b480bc
ILT
638LIBS_hold="$LIBS"
639LIBS="$LIBS $MATH_LIBS"
640AC_CHECK_FUNCS(matherr)
641LIBS="$LIBS_hold"
642
7a938933
ILT
643dnl For x86 we want to use the -minline-all-stringops option to avoid
644dnl forcing a stack split when calling memcpy and friends.
645AC_CACHE_CHECK([whether compiler supports -minline-all-stringops],
f2ee78b8 646[libgo_cv_c_stringops],
7a938933
ILT
647[CFLAGS_hold=$CFLAGS
648CFLAGS="$CFLAGS -minline-all-stringops"
73b6d7a9 649AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
f2ee78b8
ILT
650[libgo_cv_c_stringops=yes],
651[libgo_cv_c_stringops=no])
7a938933
ILT
652CFLAGS=$CFLAGS_hold])
653STRINGOPS_FLAG=
f2ee78b8 654if test "$libgo_cv_c_stringops" = yes; then
7a938933
ILT
655 STRINGOPS_FLAG=-minline-all-stringops
656fi
657AC_SUBST(STRINGOPS_FLAG)
658
9d465faf 659dnl For x86 we want to compile the math library with -mfancy-math-387
28f3c814 660dnl so that we can use the builtin instructions directly.
9d465faf
ILT
661AC_CACHE_CHECK([whether compiler supports -mfancy-math-387],
662[libgo_cv_c_fancymath],
663[CFLAGS_hold=$CFLAGS
664CFLAGS="$CFLAGS -mfancy-math-387"
73b6d7a9 665AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
9d465faf
ILT
666[libgo_cv_c_fancymath=yes],
667[libgo_cv_c_fancymath=no])
668CFLAGS=$CFLAGS_hold])
669MATH_FLAG=
670if test "$libgo_cv_c_fancymath" = yes; then
28f3c814 671 MATH_FLAG="-mfancy-math-387"
9d465faf 672fi
28f3c814 673MATH_FLAG="${MATH_FLAG} -ffp-contract=off -fno-math-errno -fno-trapping-math"
9d465faf
ILT
674AC_SUBST(MATH_FLAG)
675
7a938933
ILT
676CFLAGS_hold=$CFLAGS
677CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
e02ed81e 678AC_CHECK_TYPES([off64_t])
7a938933
ILT
679CFLAGS=$CFLAGS_hold
680
207c35fa
ILT
681dnl Work out the size of the epoll_events struct on GNU/Linux.
682AC_CACHE_CHECK([epoll_event size],
683[libgo_cv_c_epoll_event_size],
684[AC_COMPUTE_INT(libgo_cv_c_epoll_event_size,
685[sizeof (struct epoll_event)],
686[#include <sys/epoll.h>],
687[libgo_cv_c_epoll_event_size=0])])
688SIZEOF_STRUCT_EPOLL_EVENT=${libgo_cv_c_epoll_event_size}
689AC_SUBST(SIZEOF_STRUCT_EPOLL_EVENT)
690
691dnl Work out the offset of the fd field in the epoll_events struct on
692dnl GNU/Linux.
693AC_CACHE_CHECK([epoll_event data.fd offset],
694[libgo_cv_c_epoll_event_fd_offset],
695[AC_COMPUTE_INT(libgo_cv_c_epoll_event_fd_offset,
696[offsetof (struct epoll_event, data.fd)],
697[#include <stddef.h>
698#include <sys/epoll.h>],
699[libgo_cv_c_epoll_event_fd_offset=0])])
700STRUCT_EPOLL_EVENT_FD_OFFSET=${libgo_cv_c_epoll_event_fd_offset}
701AC_SUBST(STRUCT_EPOLL_EVENT_FD_OFFSET)
702
476013d6 703dnl Check if <sys/stat.h> uses timespec_t for st_?tim members. Introduced
082fc7e8 704dnl in Solaris 11.4 for XPG7 compatibility.
476013d6
ILT
705AC_EGREP_HEADER([timespec_t.*st_atim], [sys/stat.h],
706 [have_stat_timespec=yes], [have_stat_timespec=no])
707AM_CONDITIONAL(HAVE_STAT_TIMESPEC, test $have_stat_timespec = yes)
708
d2b480bc
ILT
709dnl See if struct exception is defined in <math.h>.
710AC_CHECK_TYPE([struct exception],
711[libgo_has_struct_exception=yes],
712[libgo_has_struct_exception=no],
713[#include <math.h>])
714if test "$libgo_has_struct_exception" = "yes"; then
715 AC_DEFINE(HAVE_STRUCT_EXCEPTION, 1,
716 [Define to 1 if <math.h> defines struct exception])
717fi
718
7f57843f
ILT
719dnl See whether setcontext changes the value of TLS variables.
720AC_CACHE_CHECK([whether setcontext clobbers TLS variables],
721[libgo_cv_lib_setcontext_clobbers_tls],
e6c5817d
ILT
722[CFLAGS_hold="$CFLAGS"
723CFLAGS="$PTHREAD_CFLAGS"
724LIBS_hold="$LIBS"
7f57843f 725LIBS="$LIBS $PTHREAD_LIBS"
e6c5817d
ILT
726AC_CHECK_SIZEOF([void *])
727AS_VAR_ARITH([ptr_type_size], [$ac_cv_sizeof_void_p \* 8])
7f57843f
ILT
728AC_RUN_IFELSE(
729 [AC_LANG_SOURCE([
730#include <pthread.h>
731#include <stdlib.h>
732#include <ucontext.h>
733#include <unistd.h>
734
735__thread int tls;
736
737static char stack[[10 * 1024 * 1024]];
738static ucontext_t c;
739
740/* Called via makecontext/setcontext. */
741
742static void
743cfn (void)
744{
745 exit (tls);
746}
747
748/* Called via pthread_create. */
749
750static void *
751tfn (void *dummy)
752{
753 /* The thread should still see this value after calling
754 setcontext. */
755 tls = 0;
756
757 setcontext (&c);
758
759 /* The call to setcontext should not return. */
760 abort ();
761}
762
763int
764main ()
765{
766 pthread_t tid;
767
768 /* The thread should not see this value. */
769 tls = 1;
770
771 if (getcontext (&c) < 0)
772 abort ();
773
774 c.uc_stack.ss_sp = stack;
ca59d219
ILT
775#ifdef MAKECONTEXT_STACK_TOP
776 c.uc_stack.ss_sp += sizeof stack;
777#endif
7f57843f
ILT
778 c.uc_stack.ss_flags = 0;
779 c.uc_stack.ss_size = sizeof stack;
780 c.uc_link = NULL;
781 makecontext (&c, cfn, 0);
782
783 if (pthread_create (&tid, NULL, tfn, NULL) != 0)
784 abort ();
785
786 if (pthread_join (tid, NULL) != 0)
787 abort ();
788
789 /* The thread should have called exit. */
790 abort ();
791}
792])],
793[libgo_cv_lib_setcontext_clobbers_tls=no],
794[libgo_cv_lib_setcontext_clobbers_tls=yes],
e6c5817d
ILT
795[case "$target:$ptr_type_size" in
796 i?86-*-solaris2.1[[01]]:64 | x86_64*-*-solaris2.1[[01]]:64)
797 libgo_cv_lib_setcontext_clobbers_tls=yes ;;
798 *)
799 libgo_cv_lib_setcontext_clobbers_tls=no ;;
7f57843f
ILT
800 esac
801])
e6c5817d 802CFLAGS="$CFLAGS_hold"
7f57843f
ILT
803LIBS="$LIBS_hold"
804])
805if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then
806 AC_DEFINE(SETCONTEXT_CLOBBERS_TLS, 1,
807 [Define if setcontext clobbers TLS variables])
808fi
809
cc1a9ac8
ILT
810AC_CACHE_CHECK([whether .eh_frame section should be read-only],
811libgo_cv_ro_eh_frame, [
812libgo_cv_ro_eh_frame=no
813echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
814if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
815 if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
816 libgo_cv_ro_eh_frame=yes
817 elif grep '.section.*eh_frame.*#alloc' conftest.c \
818 | grep -v '#write' > /dev/null; then
819 libgo_cv_ro_eh_frame=yes
820 fi
821fi
822rm -f conftest.*
823])
824if test "x$libgo_cv_ro_eh_frame" = xyes; then
825 AC_DEFINE(EH_FRAME_FLAGS, "a",
826 [Define to the flags needed for the .section .eh_frame directive.])
827else
828 AC_DEFINE(EH_FRAME_FLAGS, "aw",
829 [Define to the flags needed for the .section .eh_frame directive.])
830fi
831
a819231d
ILT
832AC_CACHE_CHECK([if compiler supports -Qunused-arguments],
833[libgo_cv_c_unused_arguments],
834[CFLAGS_hold=$CFLAGS
835CFLAGS="$CFLAGS -Qunused-arguments"
73b6d7a9 836AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
a819231d
ILT
837[libgo_cv_c_unused_arguments=yes],
838[libgo_cv_c_unused_arguments=no])
839CFLAGS=$CFLAGS_hold])
840
cc1a9ac8
ILT
841AC_CACHE_CHECK([if assembler supports GNU comdat group syntax],
842libgo_cv_as_comdat_gnu, [
843echo '.section .text,"axG",@progbits,.foo,comdat' > conftest.s
a819231d
ILT
844CFLAGS_hold=$CFLAGS
845if test "$libgo_cv_c_unused_arguments" = yes; then
846 CFLAGS="$CFLAGS -Qunused-arguments"
847fi
cc1a9ac8
ILT
848if $CC $CFLAGS -c conftest.s > /dev/null 2>&1; then
849 libgo_cv_as_comdat_gnu=yes
850else
851 libgo_cv_as_comdat_gnu=no
852fi
a819231d 853CFLAGS=$CFLAGS_hold
cc1a9ac8
ILT
854])
855if test "x$libgo_cv_as_comdat_gnu" = xyes; then
856 AC_DEFINE(HAVE_AS_COMDAT_GAS, 1,
857 [Define if your assembler supports GNU comdat group syntax.])
858fi
859
860AC_CACHE_CHECK([assembler supports pc related relocs],
861libgo_cv_as_x86_pcrel, [
862libgo_cv_as_x86_pcrel=yes
863echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
a819231d
ILT
864CFLAGS_hold=$CFLAGS
865if test "$libgo_cv_c_unused_arguments" = yes; then
866 CFLAGS="$CFLAGS -Qunused-arguments"
867fi
cc1a9ac8
ILT
868if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
869 libgo_cv_as_x86_pcrel=no
870fi
a819231d 871CFLAGS=$CFLAGS_hold
cc1a9ac8
ILT
872])
873if test "x$libgo_cv_as_x86_pcrel" = xyes; then
874 AC_DEFINE(HAVE_AS_X86_PCREL, 1,
875 [Define if your assembler supports PC relative relocs.])
876fi
877
878AC_CACHE_CHECK([assembler supports unwind section type],
879libgo_cv_as_x86_64_unwind_section_type, [
880libgo_cv_as_x86_64_unwind_section_type=yes
881echo '.section .eh_frame,"a",@unwind' > conftest.s
a819231d
ILT
882CFLAGS_hold=$CFLAGS
883if test "$libgo_cv_c_unused_arguments" = yes; then
884 CFLAGS="$CFLAGS -Qunused-arguments"
885fi
cc1a9ac8
ILT
886if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
887 libgo_cv_as_x86_64_unwind_section_type=no
888fi
a819231d 889CFLAGS=$CFLAGS_hold
cc1a9ac8
ILT
890])
891if test "x$libgo_cv_as_x86_64_unwind_section_type" = xyes; then
892 AC_DEFINE(HAVE_AS_X86_64_UNWIND_SECTION_TYPE, 1,
893 [Define if your assembler supports unwind section type.])
894fi
895
b379f8d8
ILT
896AC_CACHE_CHECK([assembler supports AES instructions],
897libgo_cv_as_x86_aes, [
898libgo_cv_as_x86_aes=yes
899echo 'aesenc %xmm0, %xmm1' > conftest.s
900CFLAGS_hold=$CFLAGS
901if test "$libgo_cv_c_unused_arguments" = yes; then
902 CFLAGS="$CFLAGS -Qunused-arguments"
903fi
904if $CC $CFLAGS -c conftest.s 2>&1 | grep -i error > /dev/null; then
905 libgo_cv_as_x86_aes=no
906fi
907CFLAGS=$CFLAGS_hold
908])
909if test "x$libgo_cv_as_x86_aes" = xyes; then
910 AC_DEFINE(HAVE_AS_X86_AES, 1,
911 [Define if your assembler supports AES instructions.])
912fi
913
e478cacb
ILT
914dnl Test whether the linker supports the -static option.
915AC_CACHE_CHECK([whether -static is supported],
916[libgo_cv_ld_static],
917[LDFLAGS_hold=$LDFLAGS
918LDFLAGS="$LDFLAGS -static"
919AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
920[libgo_cv_ld_static=yes],
921[libgo_cv_ld_static=no])
922LDFLAGS=$LDFLAGS_hold])
923AM_CONDITIONAL(HAVE_STATIC_LINK, test "$libgo_cv_ld_static" = yes)
924
08dfde5a
ILT
925AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
926
7a938933
ILT
927AC_CACHE_SAVE
928
929if test ${multilib} = yes; then
930 multilib_arg="--enable-multilib"
931else
932 multilib_arg=
933fi
934
b72813a6 935AC_CONFIG_FILES(Makefile testsuite/Makefile testsuite/libgo-test-support.exp)
7a938933
ILT
936
937AC_CONFIG_COMMANDS([default],
938[if test -n "$CONFIG_FILES"; then
939 # Multilibs need MULTISUBDIR defined correctly in certain makefiles so
940 # that multilib installs will end up installed in the correct place.
941 # The testsuite needs it for multilib-aware ABI baseline files.
942 # To work around this not being passed down from config-ml.in ->
943 # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually
944 # append it here. Only modify Makefiles that have just been created.
945 #
946 # Also, get rid of this simulated-VPATH thing that automake does.
947 cat > vpsed << \_EOF
948s!`test -f '$<' || echo '$(srcdir)/'`!!
949_EOF
950 for i in $SUBDIRS; do
951 case $CONFIG_FILES in
952 *${i}/Makefile*)
953 #echo "Adding MULTISUBDIR to $i/Makefile"
954 sed -f vpsed $i/Makefile > tmp
955 grep '^MULTISUBDIR =' Makefile >> tmp
956 mv tmp $i/Makefile
957 ;;
958 esac
959 done
960 rm vpsed
961 fi
962],
963[
964# Variables needed in config.status (file generation) which aren't already
965# passed by autoconf.
966SUBDIRS="$SUBDIRS"
967])
968
969AC_OUTPUT