1 diff -Nur ../boehm-gc/CVS/Entries boehm-gc/CVS/Entries
2 --- ../boehm-gc/CVS/Entries Sat May 31 21:19:56 2003
3 +++ boehm-gc/CVS/Entries Wed Dec 31 16:00:00 1969
5 -/BCC_MAKEFILE/1.2/Fri Sep 14 00:43:21 2001//
6 -/ChangeLog/1.15/Wed Jan 22 06:02:28 2003//
7 -/EMX_MAKEFILE/1.2/Fri Sep 14 00:43:22 2001//
8 -/MacProjects.sit.hqx/1.2/Fri Sep 14 00:43:22 2001//
9 -/Makefile.DLLs/1.2/Fri Sep 14 00:43:22 2001//
10 -/Makefile.am/1.8/Thu Oct 24 23:42:27 2002//
11 -/Makefile.direct/1.4/Thu Mar 14 07:28:09 2002//
12 -/Makefile.dist/1.2/Fri Sep 14 00:43:22 2001//
13 -/Makefile.dj/1.3/Tue Oct 23 03:47:12 2001//
14 -/Makefile.in/1.9/Wed Jan 22 06:02:28 2003//
15 -/NT_MAKEFILE/1.2/Fri Sep 14 00:43:23 2001//
16 -/NT_THREADS_MAKEFILE/1.3/Tue Oct 23 03:47:12 2001//
17 -/OS2_MAKEFILE/1.2/Fri Sep 14 00:43:23 2001//
18 -/PCR-Makefile/1.2/Fri Sep 14 00:43:23 2001//
19 -/SMakefile.amiga/1.2/Fri Sep 14 00:43:24 2001//
20 -/WCC_MAKEFILE/1.2/Fri Sep 14 00:43:24 2001//
21 -/allchblk.c/1.5/Sun Apr 21 00:58:58 2002//
22 -/alloc.c/1.3/Thu Mar 14 07:28:10 2002//
23 -/alpha_mach_dep.s/1.2/Fri Sep 14 00:43:25 2001//
24 -/backgraph.c/1.1.1.1/Thu Mar 14 03:39:41 2002//
25 -/callprocs/1.2/Fri Sep 14 00:43:25 2001//
26 -/config.guess/1.3/Thu Mar 14 07:28:10 2002//
27 -/config.sub/1.3/Thu Mar 14 07:28:10 2002//
28 -/configure.host/1.2/Fri Sep 14 00:43:26 2001//
29 -/configure.in/1.10/Fri Aug 2 10:04:37 2002//
30 -/dbg_mlc.c/1.5/Thu Aug 1 15:37:15 2002//
31 -/digimars.mak/1.2/Fri Sep 14 00:43:26 2001//
32 -/dyn_load.c/1.6/Sun Apr 21 00:58:58 2002//
33 -/finalize.c/1.4/Thu Mar 14 07:28:11 2002//
34 -/gc.mak/1.3/Tue Oct 23 03:47:14 2001//
35 -/gc_cpp.cc/1.2/Fri Sep 14 00:43:27 2001//
36 -/gc_cpp.cpp/1.2/Fri Sep 14 00:43:27 2001//
37 -/gc_dlopen.c/1.3/Tue Oct 23 03:47:14 2001//
38 -/gcj_mlc.c/1.3/Thu Mar 14 07:28:12 2002//
39 -/if_mach.c/1.2/Fri Sep 14 00:43:28 2001//
40 -/install-sh/1.2/Fri Sep 14 00:43:28 2001//
41 -/irix_threads.c/1.5/Fri Aug 2 10:04:37 2002//
42 -/mach_dep.c/1.5/Fri Aug 2 10:04:37 2002//
43 -/malloc.c/1.4/Thu Mar 14 07:28:13 2002//
44 -/mallocx.c/1.2/Fri Sep 14 00:43:29 2001//
45 -/mark.c/1.4/Thu Apr 4 07:13:13 2002//
46 -/mark_rts.c/1.4/Thu Mar 14 07:28:14 2002//
47 -/misc.c/1.6/Sun Apr 21 00:58:59 2002//
48 -/mkinstalldirs/1.2/Fri Sep 14 00:43:30 2001//
49 -/os_dep.c/1.7/Fri Aug 2 10:04:37 2002//
50 -/pc_excludes/1.2/Fri Sep 14 00:43:31 2001//
51 -/powerpc_macosx_mach_dep.s/1.2/Fri Sep 14 00:43:31 2001//
52 -/ptr_chck.c/1.2/Fri Sep 14 00:43:31 2001//
53 -/reclaim.c/1.5/Thu Apr 4 07:13:15 2002//
54 -/solaris_pthreads.c/1.4/Thu Mar 14 07:28:17 2002//
55 -/solaris_threads.c/1.5/Thu Mar 14 07:28:18 2002//
56 -/threadlibs.c/1.4/Thu Mar 14 07:28:19 2002//
57 -/typd_mlc.c/1.2/Fri Sep 14 00:43:33 2001//
58 -/version.h/1.4/Thu Mar 14 07:28:19 2002//
59 -/win32_threads.c/1.6/Thu Oct 24 23:42:27 2002//
65 -/AmigaOS.c/1.2/Mon May 26 19:48:52 2003//
66 -/MacOS.c/1.2/Mon May 26 19:48:52 2003//
67 -/add_gc_prefix.c/1.2/Mon May 26 19:48:52 2003//
68 -/blacklst.c/1.2/Mon May 26 19:48:52 2003//
69 -/checksums.c/1.2/Mon May 26 19:48:52 2003//
70 -/gcc_support.c/1.2/Mon May 26 19:48:52 2003//
71 -/gcname.c/1.2/Mon May 26 19:48:52 2003//
72 -/headers.c/1.2/Mon May 26 19:48:52 2003//
73 -/hpux_test_and_clear.s/1.2/Mon May 26 19:48:52 2003//
74 -/ia64_save_regs_in_stack.s/1.1.1.1/Mon May 26 19:48:52 2003//
75 -/if_not_there.c/1.2/Mon May 26 19:48:52 2003//
76 -/linux_threads.c/1.8/Sun Jun 1 04:17:20 2003//
77 -/ltconfig/1.3/Sun Jun 1 04:17:20 2003//
78 -/ltmain.sh/1.3/Sun Jun 1 04:17:20 2003//
79 -/mips_ultrix_mach_dep.s/1.2/Mon May 26 19:48:52 2003//
80 -/new_hblk.c/1.3/Mon May 26 19:48:52 2003//
81 -/obj_map.c/1.2/Mon May 26 19:48:52 2003//
82 -/pcr_interface.c/1.2/Mon May 26 19:48:52 2003//
83 -/real_malloc.c/1.2/Mon May 26 19:48:52 2003//
84 -/rs6000_mach_dep.s/1.3/Mon May 26 19:48:52 2003//
85 -/setjmp_t.c/1.2/Mon May 26 19:48:52 2003//
86 -/sparc_netbsd_mach_dep.s/1.2/Mon May 26 19:48:52 2003//
87 -/sparc_sunos4_mach_dep.s/1.2/Mon May 26 19:48:52 2003//
88 -/specific.c/1.4/Mon May 26 19:48:52 2003//
89 -/stubborn.c/1.2/Mon May 26 19:48:52 2003//
90 -/acinclude.m4/1.4/Sun Jun 1 04:19:55 2003//
91 -/aclocal.m4/1.3/Sun Jun 1 04:19:55 2003//
92 -/configure/1.11/Sun Jun 1 04:19:56 2003//
93 -/libtool.m4/1.2/Sun Jun 1 04:19:56 2003//
94 diff -Nur ../boehm-gc/CVS/Repository boehm-gc/CVS/Repository
95 --- ../boehm-gc/CVS/Repository Sun May 25 12:49:01 2003
96 +++ boehm-gc/CVS/Repository Wed Dec 31 16:00:00 1969
98 -/cvs/root/gcc3/gcc3/boehm-gc
99 diff -Nur ../boehm-gc/CVS/Root boehm-gc/CVS/Root
100 --- ../boehm-gc/CVS/Root Sun May 25 12:49:01 2003
101 +++ boehm-gc/CVS/Root Wed Dec 31 16:00:00 1969
103 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
104 diff -Nur ../boehm-gc/ChangeLog boehm-gc/ChangeLog
105 --- ../boehm-gc/ChangeLog Tue Jan 21 22:02:28 2003
106 +++ boehm-gc/ChangeLog Tue May 13 17:08:56 2003
108 +2003-05-13 Release Manager
110 + * GCC 3.3 Released.
112 +2003-05-13 Release Manager
114 + * GCC 3.3 Released.
116 +2003-05-13 Release Manager
118 + * GCC 3.3 Released.
120 +2003-05-13 Release Manager
122 + * GCC 3.3 Released.
124 +2003-04-28 Mohan Embar <gnustuff@thisiscool.com>
126 + * configure.in: define GC_DLL under mingw if --enable-shared
127 + * configure: rebuilt
128 + * win32_threads.c: add #ifdef GC_DLL around DllMain
130 +2003-04-09 Tom Tromey <tromey@redhat.com>
132 + * include/private/gcconfig.h (LINUX_STACKBOTTOM): Define for
134 + (STACK_GRAN, HEURISTIC1): Don't define for POWERPC.
136 +2003-03-04 Hans Boehm <Hans.Boehm@hp.com>
137 + * include/private/gcconfig.h (GC_data_start): declare when needed.
138 + * include/private/gc_priv.h: Include gcconfig.h after ptr_t
141 +2003-03-03 Hans Boehm <Hans.Boehm@hp.com>
142 + * mark_rts.c (GC_cond_register_dynamic_libraries): add.
143 + (GC_push_roots): explicitly mark free list headers, register
144 + dynamic libraries only if !REGISTER_LIBRARIES_EARLY.
145 + * alloc.c (GC_stopped_mark): Conditionally call
146 + GC_cond_register_dynamic_libraries().
147 + (GC_collect_a_little_inner, GC_try_to_collect_inner): Check GC_dont_gc.
148 + * dyn_load.c (GC_register_main_static_data): define.
149 + (GC_register_dyn_libraries (Linux /proc, Linux ELF versions)):
150 + no longer skip main data. Register main data for static executable.
151 + * misc.c (GC_REGISTER_MAIN_STATIC_DATA): define.
152 + (GC_init_inner): Make main data registration conditional.
153 + * include/private/gc_priv.h (GC_register_main_static_data): declare.
154 + * include/private/gcconfig.h (REGISTER_LIBRARIES_EARLY): define
157 +2003-02-20 Alexandre Oliva <aoliva@redhat.com>
159 + * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
161 + * configure: Rebuilt.
163 +2003-02-11 Andreas Tobler <a.tobler@schweiz.ch>
165 + * include/private/gcconfig.h: undefine MPROTECT_VDB for MACOSX
167 +2003-01-27 Alexandre Oliva <aoliva@redhat.com>
169 + * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
170 + Remove USE_LIBDIR conditional.
171 + * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
172 + * Makefile.in, configure: Rebuilt.
174 2002-12-31 Tom Tromey <tromey@redhat.com>
177 diff -Nur ../boehm-gc/Mac_files/CVS/Entries boehm-gc/Mac_files/CVS/Entries
178 --- ../boehm-gc/Mac_files/CVS/Entries Sun May 25 12:49:07 2003
179 +++ boehm-gc/Mac_files/CVS/Entries Wed Dec 31 16:00:00 1969
181 -/MacOS_Test_config.h/1.2/Fri Sep 14 00:43:44 2001//
182 -/MacOS_config.h/1.2/Fri Sep 14 00:43:44 2001//
183 -/dataend.c/1.2/Fri Sep 14 00:43:44 2001//
184 -/datastart.c/1.2/Fri Sep 14 00:43:44 2001//
186 diff -Nur ../boehm-gc/Mac_files/CVS/Repository boehm-gc/Mac_files/CVS/Repository
187 --- ../boehm-gc/Mac_files/CVS/Repository Sun May 25 12:49:07 2003
188 +++ boehm-gc/Mac_files/CVS/Repository Wed Dec 31 16:00:00 1969
190 -/cvs/root/gcc3/gcc3/boehm-gc/Mac_files
191 diff -Nur ../boehm-gc/Mac_files/CVS/Root boehm-gc/Mac_files/CVS/Root
192 --- ../boehm-gc/Mac_files/CVS/Root Sun May 25 12:49:07 2003
193 +++ boehm-gc/Mac_files/CVS/Root Wed Dec 31 16:00:00 1969
195 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
196 diff -Nur ../boehm-gc/Makefile.am boehm-gc/Makefile.am
197 --- ../boehm-gc/Makefile.am Mon May 26 13:08:40 2003
198 +++ boehm-gc/Makefile.am Mon Jan 27 17:44:52 2003
203 -## Install a library built with a cross compiler in tooldir, not
206 -toolexeclibdir = $(libdir)$(MULTISUBDIR)
208 -toolexecdir = $(exec_prefix)/$(target_alias)
209 -toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
212 noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
214 GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
215 dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
216 -malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
217 +linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
218 obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
219 solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
220 -backgraph.c win32_threads.c \
221 -pthread_support.c pthread_stop_world.c darwin_stop_world.c
222 +backgraph.c win32_threads.c
224 -EXTRA_GC_SOURCES = alpha_mach_dep.S \
225 - mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_darwin_mach_dep.s \
226 - rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
227 - sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
230 -asm_libgc_sources = powerpc_darwin_mach_dep.s
234 +EXTRA_GC_SOURCES = alpha_mach_dep.s \
235 +mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
236 +rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
237 +sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
239 -libgcjgc_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
240 -libgcjgc_convenience_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
241 +libgcjgc_la_SOURCES = $(GC_SOURCES)
242 +libgcjgc_convenience_la_SOURCES = $(GC_SOURCES)
243 EXTRA_libgcjgc_la_SOURCES = $(EXTRA_GC_SOURCES)
244 EXTRA_libgcjgc_convenience_la_SOURCES = $(EXTRA_GC_SOURCES)
247 $(AM_CPPFLAGS) $(CPPFLAGS) \
248 $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS)
249 LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LDFLAGS) -o $@
251 +AM_CFLAGS = @GC_CFLAGS@
253 # Work around what appears to be a GNU make bug handling MAKEFLAGS
254 # values defined in terms of make variables, as is the case for CC and
255 diff -Nur ../boehm-gc/Makefile.am~ boehm-gc/Makefile.am~
256 --- ../boehm-gc/Makefile.am~ Thu Oct 24 16:42:27 2002
257 +++ boehm-gc/Makefile.am~ Wed Dec 31 16:00:00 1969
259 -## Process this file with automake to produce Makefile.in.
261 -## FIXME: `make dist' in this directory will not currently work. Many
262 -## files that should be in the distribution are not mentioned in this
265 -AUTOMAKE_OPTIONS = cygnus
269 -# Multilib support variables.
277 -## Install a library built with a cross compiler in tooldir, not
280 -toolexeclibdir = $(libdir)$(MULTISUBDIR)
282 -toolexecdir = $(exec_prefix)/$(target_alias)
283 -toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
286 -noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
288 -GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
289 -dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
290 -linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
291 -obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
292 -solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
293 -backgraph.c win32_threads.c
295 -EXTRA_GC_SOURCES = alpha_mach_dep.s \
296 -mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
297 -rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
298 -sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
300 -libgcjgc_la_SOURCES = $(GC_SOURCES)
301 -libgcjgc_convenience_la_SOURCES = $(GC_SOURCES)
302 -EXTRA_libgcjgc_la_SOURCES = $(EXTRA_GC_SOURCES)
303 -EXTRA_libgcjgc_convenience_la_SOURCES = $(EXTRA_GC_SOURCES)
305 -# Include THREADLIBS here to ensure that the correct versions of
306 -# linuxthread semaphore functions get linked:
307 -libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS)
308 -libgcjgc_la_DEPENDENCIES = @addobjs@
309 -libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
311 -libgcjgc_convenience_la_LIBADD = @addobjs@
312 -libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
314 -AM_CXXFLAGS = @GC_CFLAGS@
315 -AM_CFLAGS = @GC_CFLAGS@
317 -check_PROGRAMS = gctest
318 -# The following hack produces a warning from automake, but we need it in order
319 -# to build a file from a subdirectory. FIXME.
320 -test.o: tests/test.c
321 - $(COMPILE) -c $(srcdir)/tests/test.c
322 -# Using $< in the above seems to fail with the HP/UX on Itanium make.
324 -gctest_OBJECTS = test.o
325 -gctest_LDADD = ./libgcjgc.la $(THREADLIBS) $(EXTRA_TEST_LIBS)
326 -gctest_LDFLAGS = -shared-libgcc
327 -TESTS_ENVIRONMENT = LD_LIBRARY_PATH=../../$(MULTIBUILDTOP)gcc
330 -## FIXME: relies on internal code generated by automake.
331 -all_objs = @addobjs@ $(libgcjgc_la_OBJECTS)
332 -$(all_objs) : include/private/gcconfig.h include/private/gc_priv.h \
333 -include/private/gc_hdrs.h include/gc.h include/gc_gcj.h include/gc_mark.h
335 -## FIXME: we shouldn't have to do this, but automake forces us to.
337 -## We use -Wp,-P to strip #line directives. Irix `as' chokes on
339 - $(LTCOMPILE) -Wp,-P -x assembler-with-cpp -c $<
341 -## We have our own definition of LTCOMPILE because we want to use our
342 -## CFLAGS, not those passed in from the top level make.
343 -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) \
344 - $(AM_CPPFLAGS) $(CPPFLAGS) \
345 - $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS)
346 -LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LDFLAGS) -o $@
348 -AM_CFLAGS = @GC_CFLAGS@
350 -# Work around what appears to be a GNU make bug handling MAKEFLAGS
351 -# values defined in terms of make variables, as is the case for CC and
352 -# friends when we are called from the top level Makefile.
354 - "AR_FLAGS=$(AR_FLAGS)" \
355 - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
356 - "CFLAGS=$(CFLAGS)" \
357 - "CXXFLAGS=$(CXXFLAGS)" \
358 - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
359 - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
360 - "INSTALL=$(INSTALL)" \
361 - "INSTALL_DATA=$(INSTALL_DATA)" \
362 - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
363 - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
364 - "LDFLAGS=$(LDFLAGS)" \
365 - "LIBCFLAGS=$(LIBCFLAGS)" \
366 - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
368 - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
369 - "PICFLAG=$(PICFLAG)" \
370 - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
372 - "EXPECT=$(EXPECT)" \
373 - "RUNTEST=$(RUNTEST)" \
374 - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
375 - "exec_prefix=$(exec_prefix)" \
376 - "infodir=$(infodir)" \
377 - "libdir=$(libdir)" \
378 - "prefix=$(prefix)" \
379 - "tooldir=$(tooldir)" \
385 - "LIBCFLAGS=$(LIBCFLAGS)" \
387 - "PICFLAG=$(PICFLAG)" \
388 - "RANLIB=$(RANLIB)" \
389 - "DESTDIR=$(DESTDIR)"
391 -CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
394 -.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
395 - maintainer-clean-multi
398 -install-am: install-multi
399 -mostlyclean-am: mostlyclean-multi
400 -clean-am: clean-multi
401 -distclean-am: distclean-multi
402 -maintainer-clean-am: maintainer-clean-multi
405 - : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
407 - $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
409 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
411 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
413 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
414 -maintainer-clean-multi:
415 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
418 diff -Nur ../boehm-gc/Makefile.in boehm-gc/Makefile.in
419 --- ../boehm-gc/Makefile.in Mon May 26 13:08:48 2003
420 +++ boehm-gc/Makefile.in Tue May 13 17:18:14 2003
422 -# Makefile.in generated by automake 1.6.3 from Makefile.am.
424 +# Makefile.in generated automatically by automake 1.4 from Makefile.am
426 -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
427 -# Free Software Foundation, Inc.
428 +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
429 # This Makefile.in is free software; the Free Software Foundation
430 # gives unlimited permission to copy and/or distribute it,
431 # with or without modifications, as long as this notice is preserved.
433 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
434 # PARTICULAR PURPOSE.
443 includedir = @includedir@
444 oldincludedir = /usr/include
448 pkgdatadir = $(datadir)/@PACKAGE@
449 pkglibdir = $(libdir)/@PACKAGE@
450 pkgincludedir = $(includedir)/@PACKAGE@
456 AUTOMAKE = @AUTOMAKE@
457 AUTOHEADER = @AUTOHEADER@
459 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
461 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
462 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
463 INSTALL_DATA = @INSTALL_DATA@
464 -install_sh_DATA = $(install_sh) -c -m 644
465 -install_sh_PROGRAM = $(install_sh) -c
466 -install_sh_SCRIPT = $(install_sh) -c
467 INSTALL_SCRIPT = @INSTALL_SCRIPT@
468 -INSTALL_HEADER = $(INSTALL_DATA)
469 transform = @program_transform_name@
475 host_triplet = @host@
476 target_alias = @target_alias@
477 target_triplet = @target@
481 -PATH_SEPARATOR = @PATH_SEPARATOR@
490 CXXINCLUDES = @CXXINCLUDES@
496 EXTRA_TEST_LIBS = @EXTRA_TEST_LIBS@
499 GCJFLAGS = @GCJFLAGS@
500 GC_CFLAGS = @GC_CFLAGS@
501 INCLUDES = @INCLUDES@
502 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
506 +MAKEINFO = @MAKEINFO@
507 MY_CFLAGS = @MY_CFLAGS@
514 THREADLIBS = @THREADLIBS@
517 -am__include = @am__include@
518 -am__quote = @am__quote@
519 gc_basedir = @gc_basedir@
520 -install_sh = @install_sh@
521 mkinstalldirs = @mkinstalldirs@
522 target_all = @target_all@
523 +toolexecdir = @toolexecdir@
524 +toolexeclibdir = @toolexeclibdir@
526 AUTOMAKE_OPTIONS = cygnus
528 @@ -120,32 +108,24 @@
532 -@USE_LIBDIR_TRUE@toolexeclibdir = $(libdir)$(MULTISUBDIR)
533 -@USE_LIBDIR_FALSE@toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
534 -@USE_LIBDIR_FALSE@toolexecdir = $(exec_prefix)/$(target_alias)
536 noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
538 GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
539 dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
540 -malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
541 +linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
542 obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
543 solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
544 -backgraph.c win32_threads.c \
545 -pthread_support.c pthread_stop_world.c darwin_stop_world.c
547 +backgraph.c win32_threads.c
549 -EXTRA_GC_SOURCES = alpha_mach_dep.S \
550 - mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_darwin_mach_dep.s \
551 - rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
552 - sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
554 +EXTRA_GC_SOURCES = alpha_mach_dep.s \
555 +mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
556 +rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
557 +sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
559 -@POWERPC_DARWIN_TRUE@asm_libgc_sources = powerpc_darwin_mach_dep.s
560 -@POWERPC_DARWIN_FALSE@asm_libgc_sources =
562 -libgcjgc_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
563 -libgcjgc_convenience_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
564 +libgcjgc_la_SOURCES = $(GC_SOURCES)
565 +libgcjgc_convenience_la_SOURCES = $(GC_SOURCES)
566 EXTRA_libgcjgc_la_SOURCES = $(EXTRA_GC_SOURCES)
567 EXTRA_libgcjgc_convenience_la_SOURCES = $(EXTRA_GC_SOURCES)
569 @@ -159,11 +139,12 @@
570 libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
572 AM_CXXFLAGS = @GC_CFLAGS@
574 AM_CFLAGS = @GC_CFLAGS@
576 check_PROGRAMS = gctest
578 # Using $< in the above seems to fail with the HP/UX on Itanium make.
580 gctest_OBJECTS = test.o
581 gctest_LDADD = ./libgcjgc.la $(THREADLIBS) $(EXTRA_TEST_LIBS)
582 gctest_LDFLAGS = -shared-libgcc
583 @@ -223,127 +204,104 @@
584 CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
588 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
589 -CONFIG_CLEAN_FILES =
590 -LTLIBRARIES = $(noinst_LTLIBRARIES)
591 +CONFIG_CLEAN_FILES =
592 +LTLIBRARIES = $(noinst_LTLIBRARIES)
594 -am__objects_1 = allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo \
595 - dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo \
596 - irix_threads.lo malloc.lo mallocx.lo mark.lo mark_rts.lo \
597 - misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo \
598 - ptr_chck.lo real_malloc.lo reclaim.lo solaris_pthreads.lo \
599 - solaris_threads.lo specific.lo stubborn.lo typd_mlc.lo \
600 - backgraph.lo win32_threads.lo pthread_support.lo \
601 - pthread_stop_world.lo darwin_stop_world.lo
602 -@POWERPC_DARWIN_TRUE@am__objects_2 = powerpc_darwin_mach_dep.lo
603 -@POWERPC_DARWIN_FALSE@am__objects_2 =
604 -am_libgcjgc_la_OBJECTS = $(am__objects_1) $(am__objects_2)
605 -libgcjgc_la_OBJECTS = $(am_libgcjgc_la_OBJECTS)
606 -libgcjgc_convenience_la_LDFLAGS =
607 -am_libgcjgc_convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2)
608 -libgcjgc_convenience_la_OBJECTS = $(am_libgcjgc_convenience_la_OBJECTS)
609 -check_PROGRAMS = gctest$(EXEEXT)
610 -gctest_DEPENDENCIES = ./libgcjgc.la
613 -DEFAULT_INCLUDES = -I. -I$(srcdir)
614 +DEFS = @DEFS@ -I. -I$(srcdir)
615 CPPFLAGS = @CPPFLAGS@
619 -am__depfiles_maybe =
620 -CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
621 -LTCCASCOMPILE = $(LIBTOOL) --mode=compile $(CCAS) $(AM_CCASFLAGS) \
623 -CCASFLAGS = @CCASFLAGS@
624 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
625 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
627 +libgcjgc_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo checksums.lo \
628 +dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo \
629 +irix_threads.lo linux_threads.lo malloc.lo mallocx.lo mark.lo \
630 +mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo \
631 +ptr_chck.lo real_malloc.lo reclaim.lo solaris_pthreads.lo \
632 +solaris_threads.lo specific.lo stubborn.lo typd_mlc.lo backgraph.lo \
634 +libgcjgc_convenience_la_LDFLAGS =
635 +libgcjgc_convenience_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo \
636 +checksums.lo dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo \
637 +headers.lo irix_threads.lo linux_threads.lo malloc.lo mallocx.lo \
638 +mark.lo mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo \
639 +pcr_interface.lo ptr_chck.lo real_malloc.lo reclaim.lo \
640 +solaris_pthreads.lo solaris_threads.lo specific.lo stubborn.lo \
641 +typd_mlc.lo backgraph.lo win32_threads.lo
642 +check_PROGRAMS = gctest$(EXEEXT)
643 +gctest_DEPENDENCIES = ./libgcjgc.la
645 -DIST_SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) \
646 - $(libgcjgc_convenience_la_SOURCES) \
647 - $(EXTRA_libgcjgc_convenience_la_SOURCES)
649 -RECURSIVE_TARGETS = info-recursive dvi-recursive \
650 - uninstall-info-recursive all-recursive install-data-recursive \
651 - install-exec-recursive installdirs-recursive install-recursive \
652 - uninstall-recursive check-recursive installcheck-recursive
653 -SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) $(EXTRA_libgcjgc_convenience_la_SOURCES)
654 +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
656 +DIST_COMMON = ChangeLog Makefile.am Makefile.in acinclude.m4 aclocal.m4 \
657 +config.guess config.sub configure configure.in install-sh ltconfig \
658 +ltmain.sh mkinstalldirs
661 +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
666 +SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) $(EXTRA_libgcjgc_convenience_la_SOURCES)
667 +OBJECTS = $(libgcjgc_la_OBJECTS) $(libgcjgc_convenience_la_OBJECTS)
671 .SUFFIXES: .S .c .lo .o .obj .s
672 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
673 + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
675 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
676 + cd $(top_builddir) \
677 + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
679 -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
681 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
682 - cd $(top_srcdir) && \
683 - $(AUTOMAKE) --cygnus Makefile
684 -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
685 - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
686 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
687 + cd $(srcdir) && $(ACLOCAL)
689 -$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
690 +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
691 $(SHELL) ./config.status --recheck
692 -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
693 +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
694 cd $(srcdir) && $(AUTOCONF)
696 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
697 - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
698 +mostlyclean-noinstLTLIBRARIES:
700 clean-noinstLTLIBRARIES:
701 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
702 - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
703 - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
704 - test -z "$dir" && dir=.; \
705 - echo "rm -f \"$${dir}/so_locations\""; \
706 - rm -f "$${dir}/so_locations"; \
708 -libgcjgc.la: $(libgcjgc_la_OBJECTS) $(libgcjgc_la_DEPENDENCIES)
709 - $(LINK) $(libgcjgc_la_LDFLAGS) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS)
710 -libgcjgc_convenience.la: $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_DEPENDENCIES)
711 - $(LINK) $(libgcjgc_convenience_la_LDFLAGS) $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_LIBADD) $(LIBS)
713 -clean-checkPROGRAMS:
714 - @list='$(check_PROGRAMS)'; for p in $$list; do \
715 - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
716 - echo " rm -f $$p $$f"; \
719 -gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES)
720 - @rm -f gctest$(EXEEXT)
721 - $(LINK) $(gctest_LDFLAGS) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS)
722 +distclean-noinstLTLIBRARIES:
724 -mostlyclean-compile:
725 - -rm -f *.$(OBJEXT) core *.core
726 +maintainer-clean-noinstLTLIBRARIES:
733 +# FIXME: We should only use cygpath when building on Windows,
734 +# and only if it is available.
736 + $(COMPILE) -c `cygpath -w $<`
742 - $(CCASCOMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
746 - $(CCASCOMPILE) -c `cygpath -w $<`
747 +mostlyclean-compile:
748 + -rm -f *.o core *.core
752 - $(LTCCASCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
756 - $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
761 - $(COMPILE) -c `cygpath -w $<`
762 +maintainer-clean-compile:
765 - $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
766 + $(LIBTOOL) --mode=compile $(COMPILE) -c $<
769 - $(CCASCOMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
772 - $(CCASCOMPILE) -c `cygpath -w $<`
774 + $(LIBTOOL) --mode=compile $(COMPILE) -c $<
785 +maintainer-clean-libtool:
787 +libgcjgc.la: $(libgcjgc_la_OBJECTS) $(libgcjgc_la_DEPENDENCIES)
788 + $(LINK) $(libgcjgc_la_LDFLAGS) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS)
790 +libgcjgc_convenience.la: $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_DEPENDENCIES)
791 + $(LINK) $(libgcjgc_convenience_la_LDFLAGS) $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_LIBADD) $(LIBS)
793 +mostlyclean-checkPROGRAMS:
795 +clean-checkPROGRAMS:
796 + -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
798 +distclean-checkPROGRAMS:
800 +maintainer-clean-checkPROGRAMS:
802 +gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES)
803 + @rm -f gctest$(EXEEXT)
804 + $(LINK) $(gctest_LDFLAGS) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS)
806 # This directory's subdirectories are mostly independent; you can cd
807 # into them and run `make' without going through this Makefile.
809 # (1) if the variable is set in `config.status', edit `config.status'
810 # (which will cause the Makefiles to be regenerated when you run `make');
811 # (2) otherwise, pass the desired values on the `make' command line.
812 -$(RECURSIVE_TARGETS):
813 - @set fnord $$MAKEFLAGS; amf=$$2; \
817 +all-recursive install-data-recursive install-exec-recursive \
818 +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
819 +check-recursive installcheck-recursive info-recursive dvi-recursive:
820 + @set fnord $(MAKEFLAGS); amf=$$2; \
822 target=`echo $@ | sed s/-recursive//`; \
823 list='$(SUBDIRS)'; for subdir in $$list; do \
824 @@ -382,18 +364,13 @@
826 mostlyclean-recursive clean-recursive distclean-recursive \
827 maintainer-clean-recursive:
828 - @set fnord $$MAKEFLAGS; amf=$$2; \
829 + @set fnord $(MAKEFLAGS); amf=$$2; \
832 - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
833 - *) list='$(SUBDIRS)' ;; \
835 - rev=''; for subdir in $$list; do \
836 - if test "$$subdir" = "."; then :; else \
837 - rev="$$subdir $$rev"; \
839 + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
840 + rev="$$subdir $$rev"; \
841 + test "$$subdir" = "." && dot_seen=yes; \
844 + test "$$dot_seen" = "no" && rev=". $$rev"; \
845 target=`echo $@ | sed s/-recursive//`; \
846 for subdir in $$rev; do \
847 echo "Making $$target in $$subdir"; \
848 @@ -410,186 +387,211 @@
849 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
857 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
858 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
859 - unique=`for i in $$list; do \
860 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
862 - $(AWK) ' { files[$$0] = 1; } \
863 +ID: $(HEADERS) $(SOURCES) $(LISP)
864 + list='$(SOURCES) $(HEADERS)'; \
865 + unique=`for i in $$list; do echo $$i; done | \
866 + awk ' { files[$$0] = 1; } \
867 END { for (i in files) print i; }'`; \
869 + here=`pwd` && cd $(srcdir) \
870 + && mkid -f$$here/ID $$unique $(LISP)
872 -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
873 - $(TAGS_FILES) $(LISP)
874 +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
877 list='$(SUBDIRS)'; for subdir in $$list; do \
878 - if test "$$subdir" = .; then :; else \
879 + if test "$$subdir" = .; then :; else \
880 test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
884 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
885 - unique=`for i in $$list; do \
886 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
888 - $(AWK) ' { files[$$0] = 1; } \
889 + list='$(SOURCES) $(HEADERS)'; \
890 + unique=`for i in $$list; do echo $$i; done | \
891 + awk ' { files[$$0] = 1; } \
892 END { for (i in files) print i; }'`; \
893 - test -z "$(ETAGS_ARGS)$$tags$$unique" \
894 - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
898 - here=`$(am__cd) $(top_builddir) && pwd` \
899 - && cd $(top_srcdir) \
900 - && gtags -i $(GTAGS_ARGS) $$here
901 + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
902 + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
909 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
912 +maintainer-clean-tags:
914 +distdir = $(PACKAGE)-$(VERSION)
915 +top_distdir = $(distdir)
917 +# This target untars the dist file and tries a VPATH configuration. Then
918 +# it guarantees that the distribution is self-contained by making another
922 + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
923 + mkdir $(distdir)/=build
924 + mkdir $(distdir)/=inst
925 + dc_install_base=`cd $(distdir)/=inst && pwd`; \
926 + cd $(distdir)/=build \
927 + && ../configure --srcdir=.. --prefix=$$dc_install_base \
928 + && $(MAKE) $(AM_MAKEFLAGS) \
929 + && $(MAKE) $(AM_MAKEFLAGS) dvi \
930 + && $(MAKE) $(AM_MAKEFLAGS) check \
931 + && $(MAKE) $(AM_MAKEFLAGS) install \
932 + && $(MAKE) $(AM_MAKEFLAGS) installcheck \
933 + && $(MAKE) $(AM_MAKEFLAGS) dist
935 + @banner="$(distdir).tar.gz is ready for distribution"; \
936 + dashes=`echo "$$banner" | sed s/./=/g`; \
941 + -chmod -R a+r $(distdir)
942 + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
945 + -chmod -R a+r $(distdir)
946 + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
948 +distdir: $(DISTFILES)
951 + -chmod 777 $(distdir)
952 + @for file in $(DISTFILES); do \
953 + if test -f $$file; then d=.; else d=$(srcdir); fi; \
954 + if test -d $$d/$$file; then \
955 + cp -pr $$d/$$file $(distdir)/$$file; \
957 + test -f $(distdir)/$$file \
958 + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
959 + || cp -p $$d/$$file $(distdir)/$$file || :; \
962 + for subdir in $(SUBDIRS); do \
963 + if test "$$subdir" = .; then :; else \
964 + test -d $(distdir)/$$subdir \
965 + || mkdir $(distdir)/$$subdir \
967 + chmod 777 $(distdir)/$$subdir; \
968 + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
972 check-TESTS: $(TESTS)
973 - @failed=0; all=0; xfail=0; xpass=0; \
974 + @failed=0; all=0; \
975 srcdir=$(srcdir); export srcdir; \
977 - if test -n "$$list"; then \
978 - for tst in $$list; do \
979 - if test -f ./$$tst; then dir=./; \
980 - elif test -f $$tst; then dir=; \
981 - else dir="$(srcdir)/"; fi; \
982 - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
983 - all=`expr $$all + 1`; \
984 - case " $(XFAIL_TESTS) " in \
986 - xpass=`expr $$xpass + 1`; \
987 - failed=`expr $$failed + 1`; \
988 - echo "XPASS: $$tst"; \
991 - echo "PASS: $$tst"; \
994 - elif test $$? -ne 77; then \
995 - all=`expr $$all + 1`; \
996 - case " $(XFAIL_TESTS) " in \
998 - xfail=`expr $$xfail + 1`; \
999 - echo "XFAIL: $$tst"; \
1002 - failed=`expr $$failed + 1`; \
1003 - echo "FAIL: $$tst"; \
1008 - if test "$$failed" -eq 0; then \
1009 - if test "$$xfail" -eq 0; then \
1010 - banner="All $$all tests passed"; \
1012 - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
1015 - if test "$$xpass" -eq 0; then \
1016 - banner="$$failed of $$all tests failed"; \
1018 - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
1020 + for tst in $(TESTS); do \
1021 + if test -f $$tst; then dir=.; \
1022 + else dir="$(srcdir)"; fi; \
1023 + if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
1024 + all=`expr $$all + 1`; \
1025 + echo "PASS: $$tst"; \
1026 + elif test $$? -ne 77; then \
1027 + all=`expr $$all + 1`; \
1028 + failed=`expr $$failed + 1`; \
1029 + echo "FAIL: $$tst"; \
1031 - dashes=`echo "$$banner" | sed s/./=/g`; \
1032 - echo "$$dashes"; \
1033 - echo "$$banner"; \
1034 - echo "$$dashes"; \
1035 - test "$$failed" -eq 0; \
1038 + if test "$$failed" -eq 0; then \
1039 + banner="All $$all tests passed"; \
1041 + banner="$$failed of $$all tests failed"; \
1043 + dashes=`echo "$$banner" | sed s/./=/g`; \
1044 + echo "$$dashes"; \
1045 + echo "$$banner"; \
1046 + echo "$$dashes"; \
1047 + test "$$failed" -eq 0
1049 +info: info-recursive
1052 check-am: $(check_PROGRAMS)
1053 $(MAKE) $(AM_MAKEFLAGS) check-TESTS
1054 check: check-recursive
1056 +installcheck: installcheck-recursive
1058 +install-info: install-info-recursive
1060 +install-exec: install-exec-recursive
1063 +install-data: install-data-recursive
1066 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
1067 +install: install-recursive
1069 +uninstall: uninstall-recursive
1070 all-am: Makefile $(LTLIBRARIES)
1071 +all-redirect: all-recursive
1073 + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
1074 installdirs: installdirs-recursive
1077 -install: install-recursive
1078 -install-exec: install-exec-recursive
1079 -install-data: install-data-recursive
1080 -uninstall: uninstall-recursive
1082 -installcheck: installcheck-recursive
1084 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
1085 - INSTALL_STRIP_FLAG=-s \
1086 - `test -z '$(STRIP)' || \
1087 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
1088 mostlyclean-generic:
1093 -rm -f Makefile $(CONFIG_CLEAN_FILES)
1094 + -rm -f config.cache config.log stamp-h stamp-h[0-9]*
1096 maintainer-clean-generic:
1097 - @echo "This command is intended for maintainers to use"
1098 - @echo "it deletes files that may require special tools to rebuild."
1099 -clean: clean-recursive
1101 -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
1102 - clean-noinstLTLIBRARIES mostlyclean-am
1104 -distclean: distclean-recursive
1105 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
1106 -distclean-am: clean-am distclean-compile distclean-generic \
1107 - distclean-libtool distclean-tags
1113 -info: info-recursive
1114 +mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
1115 + mostlyclean-libtool mostlyclean-checkPROGRAMS \
1116 + mostlyclean-tags mostlyclean-generic
1119 +mostlyclean: mostlyclean-recursive
1122 +clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \
1123 + clean-checkPROGRAMS clean-tags clean-generic \
1127 +clean: clean-recursive
1130 +distclean-am: distclean-noinstLTLIBRARIES distclean-compile \
1131 + distclean-libtool distclean-checkPROGRAMS \
1132 + distclean-tags distclean-generic clean-am
1136 +distclean: distclean-recursive
1137 + -rm -f config.status
1140 +maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \
1141 + maintainer-clean-compile maintainer-clean-libtool \
1142 + maintainer-clean-checkPROGRAMS maintainer-clean-tags \
1143 + maintainer-clean-generic distclean-am
1144 + @echo "This command is intended for maintainers to use;"
1145 + @echo "it deletes files that may require special tools to rebuild."
1147 maintainer-clean: maintainer-clean-recursive
1148 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
1149 - -rm -rf autom4te.cache
1150 -maintainer-clean-am: distclean-am maintainer-clean-generic
1152 -mostlyclean: mostlyclean-recursive
1154 -mostlyclean-am: mostlyclean-compile mostlyclean-generic \
1155 - mostlyclean-libtool
1156 + -rm -f config.status
1160 -uninstall-info: uninstall-info-recursive
1162 -.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-TESTS check-am \
1163 - clean clean-checkPROGRAMS clean-generic clean-libtool \
1164 - clean-noinstLTLIBRARIES clean-recursive distclean \
1165 - distclean-compile distclean-generic distclean-libtool \
1166 - distclean-recursive distclean-tags dvi dvi-am dvi-recursive \
1167 - info info-am info-recursive install install-am install-data \
1168 - install-data-am install-data-recursive install-exec \
1169 - install-exec-am install-exec-recursive install-info \
1170 - install-info-am install-man install-recursive install-strip \
1171 - installcheck installcheck-am installdirs installdirs-am \
1172 - installdirs-recursive maintainer-clean maintainer-clean-generic \
1173 - maintainer-clean-recursive mostlyclean mostlyclean-compile \
1174 - mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
1175 - tags tags-recursive uninstall uninstall-am uninstall-info-am \
1176 - uninstall-info-recursive uninstall-recursive
1177 +.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
1178 +clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
1179 +mostlyclean-compile distclean-compile clean-compile \
1180 +maintainer-clean-compile mostlyclean-libtool distclean-libtool \
1181 +clean-libtool maintainer-clean-libtool mostlyclean-checkPROGRAMS \
1182 +distclean-checkPROGRAMS clean-checkPROGRAMS \
1183 +maintainer-clean-checkPROGRAMS install-data-recursive \
1184 +uninstall-data-recursive install-exec-recursive \
1185 +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
1186 +all-recursive check-recursive installcheck-recursive info-recursive \
1187 +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
1188 +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
1189 +distclean-tags clean-tags maintainer-clean-tags distdir check-TESTS \
1190 +info-am info dvi-am dvi check check-am installcheck-am installcheck \
1191 +install-info-am install-info install-exec-am install-exec \
1192 +install-data-am install-data install-am install uninstall-am uninstall \
1193 +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \
1194 +distclean-generic clean-generic maintainer-clean-generic clean \
1195 +mostlyclean distclean maintainer-clean
1197 # The following hack produces a warning from automake, but we need it in order
1198 # to build a file from a subdirectory. FIXME.
1200 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
1201 maintainer-clean-multi:
1202 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
1204 # Tell versions [3.59,3.63) of GNU make to not export all variables.
1205 # Otherwise a system limit (for SysV at least) may be exceeded.
1207 diff -Nur ../boehm-gc/allchblk.c boehm-gc/allchblk.c
1208 --- ../boehm-gc/allchblk.c Mon May 26 12:48:52 2003
1209 +++ boehm-gc/allchblk.c Mon Apr 8 17:39:15 2002
1211 struct hblk * GC_hblkfreelist[N_HBLK_FLS+1] = { 0 };
1215 word GC_free_bytes[N_HBLK_FLS+1] = { 0 };
1216 /* Number of free bytes on each list. */
1218 /* Is bytes + the number of free bytes on lists n .. N_HBLK_FLS */
1219 /* > GC_max_large_allocd_bytes? */
1223 - static GC_bool GC_enough_large_bytes_left(bytes,n)
1224 + GC_bool GC_enough_large_bytes_left(bytes,n)
1228 @@ -587,11 +583,11 @@
1229 if (!GC_use_entire_heap
1230 && size_avail != size_needed
1231 && USED_HEAP_SIZE >= GC_requested_heapsize
1232 - && !TRUE_INCREMENTAL && GC_should_collect()) {
1233 + && !GC_incremental && GC_should_collect()) {
1237 - /* If we have enough large blocks left to cover any */
1238 + /* If we enough large blocks left to cover any */
1239 /* previous request for large blocks, we go ahead */
1240 /* and split. Assuming a steady state, that should */
1241 /* be safe. It means that we can use the full */
1242 @@ -599,12 +595,6 @@
1243 if (!GC_enough_large_bytes_left(GC_large_allocd_bytes, n)) {
1246 - /* If we are deallocating lots of memory from */
1247 - /* finalizers, fail and collect sooner rather */
1249 - if (GC_finalizer_mem_freed > (GC_heapsize >> 4)) {
1252 # endif /* !USE_MUNMAP */
1254 /* If the next heap block is obviously better, go on. */
1255 diff -Nur ../boehm-gc/alloc.c boehm-gc/alloc.c
1256 --- ../boehm-gc/alloc.c Mon May 26 12:48:52 2003
1257 +++ boehm-gc/alloc.c Mon Mar 3 22:38:30 2003
1259 GC_bool GC_need_full_gc = FALSE;
1260 /* Need full GC do to heap growth. */
1263 - GC_bool GC_world_stopped = FALSE;
1264 -# define IF_THREADS(x) x
1266 -# define IF_THREADS(x)
1269 word GC_used_heap_size_after_full = 0;
1271 char * GC_copyright[] =
1273 unsigned long time_diff;
1275 if ((count++ & 3) != 0) return(0);
1277 GET_TIME(current_time);
1278 time_diff = MS_TIME_DIFF(current_time,GC_start_time);
1279 if (time_diff >= GC_time_limit) {
1287 #endif /* !SMALL_CONFIG */
1289 + (GC_large_free_bytes >> 2)
1290 /* use a bit more of large empty heap */
1292 - if (TRUE_INCREMENTAL) {
1293 + if (GC_incremental) {
1294 return scan_size / (2 * GC_free_space_divisor);
1296 return scan_size / GC_free_space_divisor;
1298 /* managed object should not alter result, assuming the client */
1299 /* is playing by the rules. */
1300 result = (signed_word)GC_words_allocd
1301 - - (signed_word)GC_mem_freed
1302 - + (signed_word)GC_finalizer_mem_freed - expl_managed;
1303 + - (signed_word)GC_mem_freed - expl_managed;
1304 if (result > (signed_word)GC_words_allocd) {
1305 result = GC_words_allocd;
1306 /* probably client bug or unfortunate scheduling */
1309 if (GC_should_collect()) {
1310 if (!GC_incremental) {
1311 + GC_notify_full_gc();
1312 GC_gcollect_inner();
1315 @@ -307,14 +302,10 @@
1317 * Stop the world garbage collection. Assumes lock held, signals disabled.
1318 * If stop_func is not GC_never_stop_func, then abort if stop_func returns TRUE.
1319 - * Return TRUE if we successfully completed the collection.
1321 GC_bool GC_try_to_collect_inner(stop_func)
1322 GC_stop_func stop_func;
1325 - CLOCK_TYPE start_time, current_time;
1327 if (GC_dont_gc) return FALSE;
1328 if (GC_incremental && GC_collection_in_progress()) {
1330 @@ -329,10 +320,8 @@
1331 GC_collect_a_little_inner(1);
1334 - if (stop_func == GC_never_stop_func) GC_notify_full_gc();
1336 if (GC_print_stats) {
1337 - if (GC_print_stats) GET_TIME(start_time);
1339 "Initiating full world-stop collection %lu after %ld allocd bytes\n",
1340 (unsigned long) GC_gc_no+1,
1341 @@ -371,13 +360,6 @@
1344 GC_finish_collection();
1345 -# if defined(CONDPRINT)
1346 - if (GC_print_stats) {
1347 - GET_TIME(current_time);
1348 - GC_printf1("Complete collection took %lu msecs\n",
1349 - MS_TIME_DIFF(current_time,start_time));
1356 result = (int)GC_collection_in_progress();
1359 - if (!result && GC_debugging_started) GC_print_all_smashed();
1363 @@ -467,17 +448,16 @@
1364 CLOCK_TYPE start_time, current_time;
1367 +# if defined(REGISTER_LIBRARIES_EARLY)
1368 + GC_cond_register_dynamic_libraries();
1372 GET_TIME(start_time);
1374 # if defined(CONDPRINT) && !defined(PRINTTIMES)
1375 if (GC_print_stats) GET_TIME(start_time);
1377 -# if defined(REGISTER_LIBRARIES_EARLY)
1378 - GC_cond_register_dynamic_libraries();
1381 - IF_THREADS(GC_world_stopped = TRUE);
1383 if (GC_print_stats) {
1384 GC_printf1("--> Marking for collection %lu ",
1388 GC_deficit = i; /* Give the mutator a chance. */
1389 - IF_THREADS(GC_world_stopped = FALSE);
1397 - IF_THREADS(GC_world_stopped = FALSE);
1400 GET_TIME(current_time);
1401 GC_printf1("World-stopped marking took %lu msecs\n",
1411 GC_print_address_map();
1416 /* Mark all objects on the free list. All objects should be */
1417 /* marked when we're done. */
1419 GC_words_allocd = 0;
1420 GC_words_wasted = 0;
1422 - GC_finalizer_mem_freed = 0;
1430 - if (GC_debugging_started) GC_print_all_smashed();
1431 GC_INVOKE_FINALIZERS();
1434 @@ -766,17 +741,14 @@
1439 - if (GC_debugging_started) GC_print_all_smashed();
1440 - GC_INVOKE_FINALIZERS();
1442 + if(result) GC_INVOKE_FINALIZERS();
1446 void GC_gcollect GC_PROTO(())
1448 + GC_notify_full_gc();
1449 (void)GC_try_to_collect(GC_never_stop_func);
1450 - if (GC_have_errors) GC_print_all_errors();
1453 word GC_n_heap_sects = 0; /* Number of sections currently in heap. */
1456 if (!GC_incremental && !GC_dont_gc &&
1457 (GC_dont_expand && GC_words_allocd > 0 || GC_should_collect())) {
1458 + GC_notify_full_gc();
1459 GC_gcollect_inner();
1461 word blocks_to_get = GC_heapsize/(HBLKSIZE*GC_free_space_divisor)
1462 @@ -1002,6 +975,7 @@
1463 && !GC_expand_hp_inner(needed_blocks)) {
1464 if (GC_fail_count++ < GC_max_retries) {
1465 WARN("Out of Memory! Trying to continue ...\n", 0);
1466 + GC_notify_full_gc();
1467 GC_gcollect_inner();
1469 # if !defined(AMIGA) || !defined(GC_AMIGA_FASTALLOC)
1470 @@ -1031,38 +1005,29 @@
1474 - ptr_t * flh = &(GC_obj_kinds[kind].ok_freelist[sz]);
1475 - GC_bool tried_minor = FALSE;
1476 + register ptr_t * flh = &(GC_obj_kinds[kind].ok_freelist[sz]);
1478 if (sz == 0) return(0);
1482 /* Do our share of marking work */
1483 - if(TRUE_INCREMENTAL) GC_collect_a_little_inner(1);
1484 + if(GC_incremental && !GC_dont_gc) GC_collect_a_little_inner(1);
1485 /* Sweep blocks for objects of this size */
1486 - GC_continue_reclaim(sz, kind);
1487 + GC_continue_reclaim(sz, kind);
1490 GC_new_hblk(sz, kind);
1494 - if (GC_incremental && GC_time_limit == GC_TIME_UNLIMITED
1495 - && ! tried_minor ) {
1496 - GC_collect_a_little_inner(1);
1497 - tried_minor = TRUE;
1499 - if (!GC_collect_or_expand((word)1,FALSE)) {
1500 + if (!GC_collect_or_expand((word)1,FALSE)) {
1508 - /* Successful allocation; reset failure count. */
1509 - GC_fail_count = 0;
1513 diff -Nur ../boehm-gc/alpha_mach_dep.s boehm-gc/alpha_mach_dep.s
1514 --- ../boehm-gc/alpha_mach_dep.s Mon May 26 12:48:52 2003
1515 +++ boehm-gc/alpha_mach_dep.s Fri Aug 17 11:30:45 2001
1517 - # $Id: darwin.patch,v 1.3 2003/09/10 04:15:49 megacz Exp $
1521 diff -Nur ../boehm-gc/autom4te.cache/output.0 boehm-gc/autom4te.cache/output.0
1522 --- ../boehm-gc/autom4te.cache/output.0 Mon May 26 13:14:22 2003
1523 +++ boehm-gc/autom4te.cache/output.0 Wed Dec 31 16:00:00 1969
1526 -@%:@ Guess values for system-dependent variables and create Makefiles.
1527 -@%:@ Generated by GNU Autoconf 2.57.
1529 -@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
1530 -@%:@ Free Software Foundation, Inc.
1531 -@%:@ This configure script is free software; the Free Software Foundation
1532 -@%:@ gives unlimited permission to copy, distribute and modify it.
1533 -## --------------------- ##
1534 -## M4sh Initialization. ##
1535 -## --------------------- ##
1537 -# Be Bourne compatible
1538 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
1541 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
1542 - # is contrary to our usage. Disable this feature.
1543 - alias -g '${1+"$@"}'='"$@"'
1544 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
1548 -# Support unset when possible.
1549 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
1556 -# Work around bugs in pre-3.0 UWIN ksh.
1557 -$as_unset ENV MAIL MAILPATH
1564 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
1565 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
1566 - LC_TELEPHONE LC_TIME
1568 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
1569 - eval $as_var=C; export $as_var
1575 -# Required to use basename.
1576 -if expr a : '\(a\)' >/dev/null 2>&1; then
1582 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
1583 - as_basename=basename
1589 -# Name of the executable.
1590 -as_me=`$as_basename "$0" ||
1591 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
1592 - X"$0" : 'X\(//\)$' \| \
1593 - X"$0" : 'X\(/\)$' \| \
1594 - . : '\(.\)' 2>/dev/null ||
1596 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
1597 - /^X\/\(\/\/\)$/{ s//\1/; q; }
1598 - /^X\/\(\/\).*/{ s//\1/; q; }
1602 -# PATH needs CR, and LINENO needs CR and PATH.
1603 -# Avoid depending upon Character Ranges.
1604 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
1605 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1606 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
1607 -as_cr_digits='0123456789'
1608 -as_cr_alnum=$as_cr_Letters$as_cr_digits
1610 -# The user is always right.
1611 -if test "${PATH_SEPARATOR+set}" != set; then
1612 - echo "#! /bin/sh" >conf$$.sh
1613 - echo "exit 0" >>conf$$.sh
1614 - chmod +x conf$$.sh
1615 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
1616 - PATH_SEPARATOR=';'
1624 - as_lineno_1=$LINENO
1625 - as_lineno_2=$LINENO
1626 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
1627 - test "x$as_lineno_1" != "x$as_lineno_2" &&
1628 - test "x$as_lineno_3" = "x$as_lineno_2" || {
1629 - # Find who we are. Look in the path if we contain no path at all
1630 - # relative or not.
1632 - *[\\/]* ) as_myself=$0 ;;
1633 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1634 -for as_dir in $PATH
1637 - test -z "$as_dir" && as_dir=.
1638 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
1643 - # We did not find ourselves, most probably we were run as `sh COMMAND'
1644 - # in which case we are not to be found in the path.
1645 - if test "x$as_myself" = x; then
1648 - if test ! -f "$as_myself"; then
1649 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
1650 - { (exit 1); exit 1; }; }
1652 - case $CONFIG_SHELL in
1654 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1655 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
1658 - test -z "$as_dir" && as_dir=.
1659 - for as_base in sh bash ksh sh5; do
1662 - if ("$as_dir/$as_base" -c '
1663 - as_lineno_1=$LINENO
1664 - as_lineno_2=$LINENO
1665 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
1666 - test "x$as_lineno_1" != "x$as_lineno_2" &&
1667 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
1668 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
1669 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
1670 - CONFIG_SHELL=$as_dir/$as_base
1671 - export CONFIG_SHELL
1672 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
1680 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
1681 - # uniformly replaced by the line number. The first 'sed' inserts a
1682 - # line-number line before each line; the second 'sed' does the real
1683 - # work. The second script uses 'N' to pair each line-number line
1684 - # with the numbered line, and appends trailing '-' during
1685 - # substitution so that $LINENO is not a special case at line end.
1686 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
1687 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
1688 - sed '=' <$as_myself |
1693 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
1696 - s,^['$as_cr_digits']*\n,,
1697 - ' >$as_me.lineno &&
1698 - chmod +x $as_me.lineno ||
1699 - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
1700 - { (exit 1); exit 1; }; }
1702 - # Don't try to exec as it changes $[0], causing all sort of problems
1703 - # (the dirname of $[0] is not the place where we might find the
1704 - # original and so on. Autoconf is especially sensible to this).
1706 - # Exit status is that of the last command.
1711 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
1712 - *c*,-n*) ECHO_N= ECHO_C='
1714 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
1715 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
1718 -if expr a : '\(a\)' >/dev/null 2>&1; then
1724 -rm -f conf$$ conf$$.exe conf$$.file
1726 -if ln -s conf$$.file conf$$ 2>/dev/null; then
1727 - # We could just check for DJGPP; but this test a) works b) is more generic
1728 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
1729 - if test -f conf$$.exe; then
1730 - # Don't use ln at all; we don't have any links
1735 -elif ln conf$$.file conf$$ 2>/dev/null; then
1740 -rm -f conf$$ conf$$.exe conf$$.file
1742 -if mkdir -p . 2>/dev/null; then
1748 -as_executable_p="test -f"
1750 -# Sed expression to map a string onto a valid CPP name.
1751 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
1753 -# Sed expression to map a string onto a valid variable name.
1754 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
1758 -# We need space, tab and new line, in precisely that order.
1767 -# Name of the host.
1768 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
1769 -# so uname gets run too.
1770 -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
1777 -ac_default_prefix=/usr/local
1778 -ac_config_libobj_dir=.
1783 -SHELL=${CONFIG_SHELL-/bin/sh}
1785 -# Maximum number of lines to put in a shell here document.
1786 -# This variable seems obsolete. It should probably be removed, and
1787 -# only ac_max_sed_lines should be used.
1788 -: ${ac_max_here_lines=38}
1790 -# Identity of this package.
1797 -ac_unique_file="gcj_mlc.c"
1798 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS gc_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os mkinstalldirs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE CC CXX AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GC_CFLAGS LN_S STRIP ac_ct_STRIP LIBTOOL CXXCPP CPPFLAGS THREADLIBS POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE EXTRA_TEST_LIBS target_all INCLUDES CXXINCLUDES addobjs MY_CFLAGS USE_LIBDIR_TRUE USE_LIBDIR_FALSE LIB@&t@OBJS LTLIBOBJS'
1801 -# Initialize some variables set by options.
1803 -ac_init_version=false
1804 -# The variables have the same names as the options, with
1805 -# dashes changed to underlines.
1806 -cache_file=/dev/null
1811 -program_prefix=NONE
1812 -program_suffix=NONE
1813 -program_transform_name=s,x,x,
1821 -# Installation directory options.
1822 -# These are left unexpanded so users can "make install exec_prefix=/foo"
1823 -# and all the variables that are supposed to be based on exec_prefix
1824 -# by default will actually change.
1825 -# Use braces instead of parens because sh, perl, etc. also accept them.
1826 -bindir='${exec_prefix}/bin'
1827 -sbindir='${exec_prefix}/sbin'
1828 -libexecdir='${exec_prefix}/libexec'
1829 -datadir='${prefix}/share'
1830 -sysconfdir='${prefix}/etc'
1831 -sharedstatedir='${prefix}/com'
1832 -localstatedir='${prefix}/var'
1833 -libdir='${exec_prefix}/lib'
1834 -includedir='${prefix}/include'
1835 -oldincludedir='/usr/include'
1836 -infodir='${prefix}/info'
1837 -mandir='${prefix}/man'
1842 - # If the previous option needs an argument, assign it.
1843 - if test -n "$ac_prev"; then
1844 - eval "$ac_prev=\$ac_option"
1849 - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
1851 - # Accept the important Cygnus configure options, so we can diagnose typos.
1853 - case $ac_option in
1855 - -bindir | --bindir | --bindi | --bind | --bin | --bi)
1857 - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
1858 - bindir=$ac_optarg ;;
1860 - -build | --build | --buil | --bui | --bu)
1861 - ac_prev=build_alias ;;
1862 - -build=* | --build=* | --buil=* | --bui=* | --bu=*)
1863 - build_alias=$ac_optarg ;;
1865 - -cache-file | --cache-file | --cache-fil | --cache-fi \
1866 - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
1867 - ac_prev=cache_file ;;
1868 - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
1869 - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
1870 - cache_file=$ac_optarg ;;
1872 - --config-cache | -C)
1873 - cache_file=config.cache ;;
1875 - -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
1876 - ac_prev=datadir ;;
1877 - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
1879 - datadir=$ac_optarg ;;
1881 - -disable-* | --disable-*)
1882 - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1883 - # Reject names that are not valid shell variable names.
1884 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1885 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
1886 - { (exit 1); exit 1; }; }
1887 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
1888 - eval "enable_$ac_feature=no" ;;
1890 - -enable-* | --enable-*)
1891 - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1892 - # Reject names that are not valid shell variable names.
1893 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1894 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
1895 - { (exit 1); exit 1; }; }
1896 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
1897 - case $ac_option in
1898 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
1899 - *) ac_optarg=yes ;;
1901 - eval "enable_$ac_feature='$ac_optarg'" ;;
1903 - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
1904 - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
1905 - | --exec | --exe | --ex)
1906 - ac_prev=exec_prefix ;;
1907 - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
1908 - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
1909 - | --exec=* | --exe=* | --ex=*)
1910 - exec_prefix=$ac_optarg ;;
1912 - -gas | --gas | --ga | --g)
1913 - # Obsolete; use --with-gas.
1916 - -help | --help | --hel | --he | -h)
1917 - ac_init_help=long ;;
1918 - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
1919 - ac_init_help=recursive ;;
1920 - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
1921 - ac_init_help=short ;;
1923 - -host | --host | --hos | --ho)
1924 - ac_prev=host_alias ;;
1925 - -host=* | --host=* | --hos=* | --ho=*)
1926 - host_alias=$ac_optarg ;;
1928 - -includedir | --includedir | --includedi | --included | --include \
1929 - | --includ | --inclu | --incl | --inc)
1930 - ac_prev=includedir ;;
1931 - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
1932 - | --includ=* | --inclu=* | --incl=* | --inc=*)
1933 - includedir=$ac_optarg ;;
1935 - -infodir | --infodir | --infodi | --infod | --info | --inf)
1936 - ac_prev=infodir ;;
1937 - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
1938 - infodir=$ac_optarg ;;
1940 - -libdir | --libdir | --libdi | --libd)
1942 - -libdir=* | --libdir=* | --libdi=* | --libd=*)
1943 - libdir=$ac_optarg ;;
1945 - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
1946 - | --libexe | --libex | --libe)
1947 - ac_prev=libexecdir ;;
1948 - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
1949 - | --libexe=* | --libex=* | --libe=*)
1950 - libexecdir=$ac_optarg ;;
1952 - -localstatedir | --localstatedir | --localstatedi | --localstated \
1953 - | --localstate | --localstat | --localsta | --localst \
1954 - | --locals | --local | --loca | --loc | --lo)
1955 - ac_prev=localstatedir ;;
1956 - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
1957 - | --localstate=* | --localstat=* | --localsta=* | --localst=* \
1958 - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
1959 - localstatedir=$ac_optarg ;;
1961 - -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
1963 - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
1964 - mandir=$ac_optarg ;;
1966 - -nfp | --nfp | --nf)
1967 - # Obsolete; use --without-fp.
1970 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
1971 - | --no-cr | --no-c | -n)
1974 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
1975 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
1976 - no_recursion=yes ;;
1978 - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
1979 - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
1980 - | --oldin | --oldi | --old | --ol | --o)
1981 - ac_prev=oldincludedir ;;
1982 - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
1983 - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
1984 - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
1985 - oldincludedir=$ac_optarg ;;
1987 - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
1989 - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
1990 - prefix=$ac_optarg ;;
1992 - -program-prefix | --program-prefix | --program-prefi | --program-pref \
1993 - | --program-pre | --program-pr | --program-p)
1994 - ac_prev=program_prefix ;;
1995 - -program-prefix=* | --program-prefix=* | --program-prefi=* \
1996 - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
1997 - program_prefix=$ac_optarg ;;
1999 - -program-suffix | --program-suffix | --program-suffi | --program-suff \
2000 - | --program-suf | --program-su | --program-s)
2001 - ac_prev=program_suffix ;;
2002 - -program-suffix=* | --program-suffix=* | --program-suffi=* \
2003 - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
2004 - program_suffix=$ac_optarg ;;
2006 - -program-transform-name | --program-transform-name \
2007 - | --program-transform-nam | --program-transform-na \
2008 - | --program-transform-n | --program-transform- \
2009 - | --program-transform | --program-transfor \
2010 - | --program-transfo | --program-transf \
2011 - | --program-trans | --program-tran \
2012 - | --progr-tra | --program-tr | --program-t)
2013 - ac_prev=program_transform_name ;;
2014 - -program-transform-name=* | --program-transform-name=* \
2015 - | --program-transform-nam=* | --program-transform-na=* \
2016 - | --program-transform-n=* | --program-transform-=* \
2017 - | --program-transform=* | --program-transfor=* \
2018 - | --program-transfo=* | --program-transf=* \
2019 - | --program-trans=* | --program-tran=* \
2020 - | --progr-tra=* | --program-tr=* | --program-t=*)
2021 - program_transform_name=$ac_optarg ;;
2023 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
2024 - | -silent | --silent | --silen | --sile | --sil)
2027 - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
2028 - ac_prev=sbindir ;;
2029 - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
2030 - | --sbi=* | --sb=*)
2031 - sbindir=$ac_optarg ;;
2033 - -sharedstatedir | --sharedstatedir | --sharedstatedi \
2034 - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
2035 - | --sharedst | --shareds | --shared | --share | --shar \
2037 - ac_prev=sharedstatedir ;;
2038 - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
2039 - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
2040 - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
2041 - | --sha=* | --sh=*)
2042 - sharedstatedir=$ac_optarg ;;
2044 - -site | --site | --sit)
2046 - -site=* | --site=* | --sit=*)
2047 - site=$ac_optarg ;;
2049 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
2051 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
2052 - srcdir=$ac_optarg ;;
2054 - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
2055 - | --syscon | --sysco | --sysc | --sys | --sy)
2056 - ac_prev=sysconfdir ;;
2057 - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
2058 - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
2059 - sysconfdir=$ac_optarg ;;
2061 - -target | --target | --targe | --targ | --tar | --ta | --t)
2062 - ac_prev=target_alias ;;
2063 - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
2064 - target_alias=$ac_optarg ;;
2066 - -v | -verbose | --verbose | --verbos | --verbo | --verb)
2069 - -version | --version | --versio | --versi | --vers | -V)
2070 - ac_init_version=: ;;
2072 - -with-* | --with-*)
2073 - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
2074 - # Reject names that are not valid shell variable names.
2075 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
2076 - { echo "$as_me: error: invalid package name: $ac_package" >&2
2077 - { (exit 1); exit 1; }; }
2078 - ac_package=`echo $ac_package| sed 's/-/_/g'`
2079 - case $ac_option in
2080 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
2081 - *) ac_optarg=yes ;;
2083 - eval "with_$ac_package='$ac_optarg'" ;;
2085 - -without-* | --without-*)
2086 - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
2087 - # Reject names that are not valid shell variable names.
2088 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
2089 - { echo "$as_me: error: invalid package name: $ac_package" >&2
2090 - { (exit 1); exit 1; }; }
2091 - ac_package=`echo $ac_package | sed 's/-/_/g'`
2092 - eval "with_$ac_package=no" ;;
2095 - # Obsolete; use --with-x.
2098 - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
2099 - | --x-incl | --x-inc | --x-in | --x-i)
2100 - ac_prev=x_includes ;;
2101 - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
2102 - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
2103 - x_includes=$ac_optarg ;;
2105 - -x-libraries | --x-libraries | --x-librarie | --x-librari \
2106 - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
2107 - ac_prev=x_libraries ;;
2108 - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
2109 - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
2110 - x_libraries=$ac_optarg ;;
2112 - -*) { echo "$as_me: error: unrecognized option: $ac_option
2113 -Try \`$0 --help' for more information." >&2
2114 - { (exit 1); exit 1; }; }
2118 - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
2119 - # Reject names that are not valid shell variable names.
2120 - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
2121 - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
2122 - { (exit 1); exit 1; }; }
2123 - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
2124 - eval "$ac_envvar='$ac_optarg'"
2125 - export $ac_envvar ;;
2128 - # FIXME: should be removed in autoconf 3.0.
2129 - echo "$as_me: WARNING: you should use --build, --host, --target" >&2
2130 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
2131 - echo "$as_me: WARNING: invalid host type: $ac_option" >&2
2132 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
2138 -if test -n "$ac_prev"; then
2139 - ac_option=--`echo $ac_prev | sed 's/_/-/g'`
2140 - { echo "$as_me: error: missing argument to $ac_option" >&2
2141 - { (exit 1); exit 1; }; }
2144 -# Be sure to have absolute paths.
2145 -for ac_var in exec_prefix prefix
2147 - eval ac_val=$`echo $ac_var`
2149 - [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
2150 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
2151 - { (exit 1); exit 1; }; };;
2155 -# Be sure to have absolute paths.
2156 -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
2157 - localstatedir libdir includedir oldincludedir infodir mandir
2159 - eval ac_val=$`echo $ac_var`
2161 - [\\/$]* | ?:[\\/]* ) ;;
2162 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
2163 - { (exit 1); exit 1; }; };;
2167 -# There might be people who depend on the old broken behavior: `$host'
2168 -# used to hold the argument of --host etc.
2169 -# FIXME: To remove some day.
2172 -target=$target_alias
2174 -# FIXME: To remove some day.
2175 -if test "x$host_alias" != x; then
2176 - if test "x$build_alias" = x; then
2177 - cross_compiling=maybe
2178 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
2179 - If a cross compiler is detected then cross compile mode will be used." >&2
2180 - elif test "x$build_alias" != "x$host_alias"; then
2181 - cross_compiling=yes
2186 -test -n "$host_alias" && ac_tool_prefix=$host_alias-
2188 -test "$silent" = yes && exec 6>/dev/null
2191 -# Find the source files, if location was not specified.
2192 -if test -z "$srcdir"; then
2193 - ac_srcdir_defaulted=yes
2194 - # Try the directory containing this script, then its parent.
2195 - ac_confdir=`(dirname "$0") 2>/dev/null ||
2196 -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
2197 - X"$0" : 'X\(//\)[^/]' \| \
2198 - X"$0" : 'X\(//\)$' \| \
2199 - X"$0" : 'X\(/\)' \| \
2200 - . : '\(.\)' 2>/dev/null ||
2202 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
2203 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
2204 - /^X\(\/\/\)$/{ s//\1/; q; }
2205 - /^X\(\/\).*/{ s//\1/; q; }
2207 - srcdir=$ac_confdir
2208 - if test ! -r $srcdir/$ac_unique_file; then
2212 - ac_srcdir_defaulted=no
2214 -if test ! -r $srcdir/$ac_unique_file; then
2215 - if test "$ac_srcdir_defaulted" = yes; then
2216 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
2217 - { (exit 1); exit 1; }; }
2219 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
2220 - { (exit 1); exit 1; }; }
2223 -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
2224 - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
2225 - { (exit 1); exit 1; }; }
2226 -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
2227 -ac_env_build_alias_set=${build_alias+set}
2228 -ac_env_build_alias_value=$build_alias
2229 -ac_cv_env_build_alias_set=${build_alias+set}
2230 -ac_cv_env_build_alias_value=$build_alias
2231 -ac_env_host_alias_set=${host_alias+set}
2232 -ac_env_host_alias_value=$host_alias
2233 -ac_cv_env_host_alias_set=${host_alias+set}
2234 -ac_cv_env_host_alias_value=$host_alias
2235 -ac_env_target_alias_set=${target_alias+set}
2236 -ac_env_target_alias_value=$target_alias
2237 -ac_cv_env_target_alias_set=${target_alias+set}
2238 -ac_cv_env_target_alias_value=$target_alias
2239 -ac_env_CXXCPP_set=${CXXCPP+set}
2240 -ac_env_CXXCPP_value=$CXXCPP
2241 -ac_cv_env_CXXCPP_set=${CXXCPP+set}
2242 -ac_cv_env_CXXCPP_value=$CXXCPP
2243 -ac_env_CPPFLAGS_set=${CPPFLAGS+set}
2244 -ac_env_CPPFLAGS_value=$CPPFLAGS
2245 -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
2246 -ac_cv_env_CPPFLAGS_value=$CPPFLAGS
2249 -# Report the --help message.
2251 -if test "$ac_init_help" = "long"; then
2252 - # Omit some internal or obsolete options to make the list less imposing.
2253 - # This message is too long to be a string in the A/UX 3.1 sh.
2255 -\`configure' configures this package to adapt to many kinds of systems.
2257 -Usage: $0 [OPTION]... [VAR=VALUE]...
2259 -To assign environment variables (e.g., CC, CFLAGS...), specify them as
2260 -VAR=VALUE. See below for descriptions of some of the useful variables.
2262 -Defaults for the options are specified in brackets.
2265 - -h, --help display this help and exit
2266 - --help=short display options specific to this package
2267 - --help=recursive display the short help of all the included packages
2268 - -V, --version display version information and exit
2269 - -q, --quiet, --silent do not print \`checking...' messages
2270 - --cache-file=FILE cache test results in FILE [disabled]
2271 - -C, --config-cache alias for \`--cache-file=config.cache'
2272 - -n, --no-create do not create output files
2273 - --srcdir=DIR find the sources in DIR [configure dir or \`..']
2278 -Installation directories:
2279 - --prefix=PREFIX install architecture-independent files in PREFIX
2280 - [$ac_default_prefix]
2281 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
2284 -By default, \`make install' will install all the files in
2285 -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
2286 -an installation prefix other than \`$ac_default_prefix' using \`--prefix',
2287 -for instance \`--prefix=\$HOME'.
2289 -For better control, use the options below.
2291 -Fine tuning of the installation directories:
2292 - --bindir=DIR user executables [EPREFIX/bin]
2293 - --sbindir=DIR system admin executables [EPREFIX/sbin]
2294 - --libexecdir=DIR program executables [EPREFIX/libexec]
2295 - --datadir=DIR read-only architecture-independent data [PREFIX/share]
2296 - --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
2297 - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
2298 - --localstatedir=DIR modifiable single-machine data [PREFIX/var]
2299 - --libdir=DIR object code libraries [EPREFIX/lib]
2300 - --includedir=DIR C header files [PREFIX/include]
2301 - --oldincludedir=DIR C header files for non-gcc [/usr/include]
2302 - --infodir=DIR info documentation [PREFIX/info]
2303 - --mandir=DIR man documentation [PREFIX/man]
2309 - --program-prefix=PREFIX prepend PREFIX to installed program names
2310 - --program-suffix=SUFFIX append SUFFIX to installed program names
2311 - --program-transform-name=PROGRAM run sed PROGRAM on installed program names
2314 - --build=BUILD configure for building on BUILD [guessed]
2315 - --host=HOST cross-compile to build programs to run on HOST [BUILD]
2316 - --target=TARGET configure for building compilers for TARGET [HOST]
2320 -if test -n "$ac_init_help"; then
2325 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
2326 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
2327 - --enable-multilib build many library versions (default)
2328 - --enable-maintainer-mode enable make rules and dependencies not useful
2329 - (and sometimes confusing) to the casual installer
2330 - --enable-shared=PKGS build shared libraries default=yes
2331 - --enable-static=PKGS build static libraries default=yes
2332 - --enable-fast-install=PKGS optimize for fast installation default=yes
2333 - --disable-libtool-lock avoid locking (might break parallel builds)
2334 - --enable-parallel-mark parallelize marking and free list construction
2335 - --enable-shared=PKGS build shared libraries default=no
2336 - --enable-full-debug include full support for pointer backtracing etc.
2339 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
2340 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2341 - --with-gnu-ld assume the C compiler uses GNU ld default=no
2342 - --with-pic try to use only PIC/non-PIC objects default=use both
2343 - --with-target-subdir=SUBDIR
2344 - configuring with a cross compiler
2345 - --with-cross-host=HOST configuring with a cross compiler
2346 - --with-ecos enable runtime eCos target support
2348 -Some influential environment variables:
2349 - CXXCPP C++ preprocessor
2350 - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
2351 - headers in a nonstandard directory <include dir>
2353 -Use these variables to override the choices made by `configure' or to help
2354 -it to find libraries and programs with nonstandard names/locations.
2359 -if test "$ac_init_help" = "recursive"; then
2360 - # If there are subdirs, report their specific --help.
2362 - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
2363 - test -d $ac_dir || continue
2366 -if test "$ac_dir" != .; then
2367 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
2368 - # A "../" for each directory in $ac_dir_suffix.
2369 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
2371 - ac_dir_suffix= ac_top_builddir=
2375 - .) # No --srcdir option. We are building in place.
2377 - if test -z "$ac_top_builddir"; then
2380 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
2382 - [\\/]* | ?:[\\/]* ) # Absolute path.
2383 - ac_srcdir=$srcdir$ac_dir_suffix;
2384 - ac_top_srcdir=$srcdir ;;
2385 - *) # Relative path.
2386 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
2387 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
2389 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
2391 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
2392 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
2393 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
2394 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
2397 - # Check for guested configure; otherwise get Cygnus style configure.
2398 - if test -f $ac_srcdir/configure.gnu; then
2400 - $SHELL $ac_srcdir/configure.gnu --help=recursive
2401 - elif test -f $ac_srcdir/configure; then
2403 - $SHELL $ac_srcdir/configure --help=recursive
2404 - elif test -f $ac_srcdir/configure.ac ||
2405 - test -f $ac_srcdir/configure.in; then
2407 - $ac_configure --help
2409 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
2415 -test -n "$ac_init_help" && exit 0
2416 -if $ac_init_version; then
2419 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
2420 -Free Software Foundation, Inc.
2421 -This configure script is free software; the Free Software Foundation
2422 -gives unlimited permission to copy, distribute and modify it.
2428 -This file contains any messages produced by compilers while
2429 -running configure, to aid debugging if configure makes a mistake.
2431 -It was created by $as_me, which was
2432 -generated by GNU Autoconf 2.57. Invocation command line was
2439 -@%:@@%:@ --------- @%:@@%:@
2440 -@%:@@%:@ Platform. @%:@@%:@
2441 -@%:@@%:@ --------- @%:@@%:@
2443 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
2444 -uname -m = `(uname -m) 2>/dev/null || echo unknown`
2445 -uname -r = `(uname -r) 2>/dev/null || echo unknown`
2446 -uname -s = `(uname -s) 2>/dev/null || echo unknown`
2447 -uname -v = `(uname -v) 2>/dev/null || echo unknown`
2449 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
2450 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
2452 -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
2453 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
2454 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
2455 -hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
2456 -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
2457 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
2458 -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
2462 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2463 -for as_dir in $PATH
2466 - test -z "$as_dir" && as_dir=.
2467 - echo "PATH: $as_dir"
2475 -@%:@@%:@ ----------- @%:@@%:@
2476 -@%:@@%:@ Core tests. @%:@@%:@
2477 -@%:@@%:@ ----------- @%:@@%:@
2482 -# Keep a trace of the command line.
2483 -# Strip out --no-create and --no-recursion so they do not pile up.
2484 -# Strip out --silent because we don't want to record it for future runs.
2485 -# Also quote any args containing shell meta-characters.
2486 -# Make two passes to allow for proper duplicate-argument suppression.
2488 -ac_configure_args0=
2489 -ac_configure_args1=
2491 -ac_must_keep_next=false
2497 - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
2498 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
2499 - | -silent | --silent | --silen | --sile | --sil)
2501 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
2502 - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2505 - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
2507 - ac_configure_args1="$ac_configure_args1 '$ac_arg'"
2508 - if test $ac_must_keep_next = true; then
2509 - ac_must_keep_next=false # Got value, back to normal.
2512 - *=* | --config-cache | -C | -disable-* | --disable-* \
2513 - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2514 - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2515 - | -with-* | --with-* | -without-* | --without-* | --x)
2516 - case "$ac_configure_args0 " in
2517 - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
2520 - -* ) ac_must_keep_next=true ;;
2523 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
2524 - # Get rid of the leading space.
2530 -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
2531 -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
2533 -# When interrupted or exit'd, cleanup temporary files, and complete
2534 -# config.log. We remove comments because anyway the quotes in there
2535 -# would cause problems or look ugly.
2536 -# WARNING: Be sure not to use single quotes in there, as some shells,
2537 -# such as our DU 5.0 friend, will then `close' the trap.
2538 -trap 'exit_status=$?
2539 - # Save into config.log some information that might help in debugging.
2544 -@%:@@%:@ ---------------- @%:@@%:@
2545 -@%:@@%:@ Cache variables. @%:@@%:@
2546 -@%:@@%:@ ---------------- @%:@@%:@
2549 - # The following way of writing the cache mishandles newlines in values,
2552 - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
2555 - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
2556 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
2560 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
2567 -@%:@@%:@ ----------------- @%:@@%:@
2568 -@%:@@%:@ Output variables. @%:@@%:@
2569 -@%:@@%:@ ----------------- @%:@@%:@
2572 - for ac_var in $ac_subst_vars
2574 - eval ac_val=$`echo $ac_var`
2575 - echo "$ac_var='"'"'$ac_val'"'"'"
2579 - if test -n "$ac_subst_files"; then
2581 -@%:@@%:@ ------------- @%:@@%:@
2582 -@%:@@%:@ Output files. @%:@@%:@
2583 -@%:@@%:@ ------------- @%:@@%:@
2586 - for ac_var in $ac_subst_files
2588 - eval ac_val=$`echo $ac_var`
2589 - echo "$ac_var='"'"'$ac_val'"'"'"
2594 - if test -s confdefs.h; then
2596 -@%:@@%:@ ----------- @%:@@%:@
2597 -@%:@@%:@ confdefs.h. @%:@@%:@
2598 -@%:@@%:@ ----------- @%:@@%:@
2601 - sed "/^$/d" confdefs.h | sort
2604 - test "$ac_signal" != 0 &&
2605 - echo "$as_me: caught signal $ac_signal"
2606 - echo "$as_me: exit $exit_status"
2608 - rm -f core core.* *.core &&
2609 - rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
2612 -for ac_signal in 1 2 13 15; do
2613 - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
2617 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
2618 -rm -rf conftest* confdefs.h
2619 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
2622 -# Predefined preprocessor variables.
2624 -cat >>confdefs.h <<_ACEOF
2625 -@%:@define PACKAGE_NAME "$PACKAGE_NAME"
2629 -cat >>confdefs.h <<_ACEOF
2630 -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
2634 -cat >>confdefs.h <<_ACEOF
2635 -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
2639 -cat >>confdefs.h <<_ACEOF
2640 -@%:@define PACKAGE_STRING "$PACKAGE_STRING"
2644 -cat >>confdefs.h <<_ACEOF
2645 -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
2649 -# Let the site file select an alternate cache file if it wants to.
2650 -# Prefer explicitly selected file to automatically selected ones.
2651 -if test -z "$CONFIG_SITE"; then
2652 - if test "x$prefix" != xNONE; then
2653 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
2655 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
2658 -for ac_site_file in $CONFIG_SITE; do
2659 - if test -r "$ac_site_file"; then
2660 - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
2661 -echo "$as_me: loading site script $ac_site_file" >&6;}
2662 - sed 's/^/| /' "$ac_site_file" >&5
2667 -if test -r "$cache_file"; then
2668 - # Some versions of bash will fail to source /dev/null (special
2669 - # files actually), so we avoid doing that.
2670 - if test -f "$cache_file"; then
2671 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
2672 -echo "$as_me: loading cache $cache_file" >&6;}
2673 - case $cache_file in
2674 - [\\/]* | ?:[\\/]* ) . $cache_file;;
2675 - *) . ./$cache_file;;
2679 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
2680 -echo "$as_me: creating cache $cache_file" >&6;}
2684 -# Check that the precious variables saved in the cache have kept the same
2686 -ac_cache_corrupted=false
2687 -for ac_var in `(set) 2>&1 |
2688 - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
2689 - eval ac_old_set=\$ac_cv_env_${ac_var}_set
2690 - eval ac_new_set=\$ac_env_${ac_var}_set
2691 - eval ac_old_val="\$ac_cv_env_${ac_var}_value"
2692 - eval ac_new_val="\$ac_env_${ac_var}_value"
2693 - case $ac_old_set,$ac_new_set in
2695 - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
2696 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
2697 - ac_cache_corrupted=: ;;
2699 - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
2700 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
2701 - ac_cache_corrupted=: ;;
2704 - if test "x$ac_old_val" != "x$ac_new_val"; then
2705 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
2706 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
2707 - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
2708 -echo "$as_me: former value: $ac_old_val" >&2;}
2709 - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
2710 -echo "$as_me: current value: $ac_new_val" >&2;}
2711 - ac_cache_corrupted=:
2714 - # Pass precious variables to config.status.
2715 - if test "$ac_new_set" = set; then
2716 - case $ac_new_val in
2717 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
2718 - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
2719 - *) ac_arg=$ac_var=$ac_new_val ;;
2721 - case " $ac_configure_args " in
2722 - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
2723 - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
2727 -if $ac_cache_corrupted; then
2728 - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
2729 -echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2730 - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
2731 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
2732 - { (exit 1); exit 1; }; }
2736 -ac_cpp='$CPP $CPPFLAGS'
2737 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2738 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2739 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
2760 -# This works around the fact that libtool configuration may change LD
2761 -# for this particular configuration, but some shells, instead of
2762 -# keeping the changes in LD private, export them just because LD is
2764 -ORIGINAL_LD_FOR_MULTILIBS=$LD
2767 -for ac_dir in . $srcdir/.; do
2768 - if test -f $ac_dir/install-sh; then
2769 - ac_aux_dir=$ac_dir
2770 - ac_install_sh="$ac_aux_dir/install-sh -c"
2772 - elif test -f $ac_dir/install.sh; then
2773 - ac_aux_dir=$ac_dir
2774 - ac_install_sh="$ac_aux_dir/install.sh -c"
2776 - elif test -f $ac_dir/shtool; then
2777 - ac_aux_dir=$ac_dir
2778 - ac_install_sh="$ac_aux_dir/shtool install -c"
2782 -if test -z "$ac_aux_dir"; then
2783 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . $srcdir/." >&5
2784 -echo "$as_me: error: cannot find install-sh or install.sh in . $srcdir/." >&2;}
2785 - { (exit 1); exit 1; }; }
2787 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2788 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2789 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2792 -# Make sure we can run config.sub.
2793 -$ac_config_sub sun4 >/dev/null 2>&1 ||
2794 - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
2795 -echo "$as_me: error: cannot run $ac_config_sub" >&2;}
2796 - { (exit 1); exit 1; }; }
2798 -echo "$as_me:$LINENO: checking build system type" >&5
2799 -echo $ECHO_N "checking build system type... $ECHO_C" >&6
2800 -if test "${ac_cv_build+set}" = set; then
2801 - echo $ECHO_N "(cached) $ECHO_C" >&6
2803 - ac_cv_build_alias=$build_alias
2804 -test -z "$ac_cv_build_alias" &&
2805 - ac_cv_build_alias=`$ac_config_guess`
2806 -test -z "$ac_cv_build_alias" &&
2807 - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
2808 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
2809 - { (exit 1); exit 1; }; }
2810 -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
2811 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
2812 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
2813 - { (exit 1); exit 1; }; }
2816 -echo "$as_me:$LINENO: result: $ac_cv_build" >&5
2817 -echo "${ECHO_T}$ac_cv_build" >&6
2819 -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2820 -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2821 -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2824 -echo "$as_me:$LINENO: checking host system type" >&5
2825 -echo $ECHO_N "checking host system type... $ECHO_C" >&6
2826 -if test "${ac_cv_host+set}" = set; then
2827 - echo $ECHO_N "(cached) $ECHO_C" >&6
2829 - ac_cv_host_alias=$host_alias
2830 -test -z "$ac_cv_host_alias" &&
2831 - ac_cv_host_alias=$ac_cv_build_alias
2832 -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
2833 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
2834 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
2835 - { (exit 1); exit 1; }; }
2838 -echo "$as_me:$LINENO: result: $ac_cv_host" >&5
2839 -echo "${ECHO_T}$ac_cv_host" >&6
2841 -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2842 -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2843 -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2846 -# Find a good install program. We prefer a C program (faster),
2847 -# so one script is as good as another. But avoid the broken or
2848 -# incompatible versions:
2849 -# SysV /etc/install, /usr/sbin/install
2850 -# SunOS /usr/etc/install
2851 -# IRIX /sbin/install
2853 -# AmigaOS /C/install, which installs bootblocks on floppy discs
2854 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
2855 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
2856 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
2857 -# ./install, which can be erroneously created by make from ./install.sh.
2858 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
2859 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
2860 -if test -z "$INSTALL"; then
2861 -if test "${ac_cv_path_install+set}" = set; then
2862 - echo $ECHO_N "(cached) $ECHO_C" >&6
2864 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2865 -for as_dir in $PATH
2868 - test -z "$as_dir" && as_dir=.
2869 - # Account for people who put trailing slashes in PATH elements.
2871 - ./ | .// | /cC/* | \
2872 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2875 - # OSF1 and SCO ODT 3.0 have their own names for install.
2876 - # Don't use installbsd from OSF since it installs stuff as root
2878 - for ac_prog in ginstall scoinst install; do
2879 - for ac_exec_ext in '' $ac_executable_extensions; do
2880 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2881 - if test $ac_prog = install &&
2882 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2883 - # AIX install. It has an incompatible calling convention.
2885 - elif test $ac_prog = install &&
2886 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2887 - # program-specific install script used by HP pwplus--don't use.
2890 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2902 - if test "${ac_cv_path_install+set}" = set; then
2903 - INSTALL=$ac_cv_path_install
2905 - # As a last resort, use the slow shell script. We don't cache a
2906 - # path for INSTALL within a source directory, because that will
2907 - # break other packages using the cache if that directory is
2908 - # removed, or if the path is relative.
2909 - INSTALL=$ac_install_sh
2912 -echo "$as_me:$LINENO: result: $INSTALL" >&5
2913 -echo "${ECHO_T}$INSTALL" >&6
2915 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
2916 -# It thinks the first close brace ends the variable substitution.
2917 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2919 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
2921 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
2923 -echo "$as_me:$LINENO: checking whether build environment is sane" >&5
2924 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
2927 -echo timestamp > conftestfile
2928 -# Do `set' in a subshell so we don't clobber the current shell's
2929 -# arguments. Must try -L first in case configure is actually a
2930 -# symlink; some systems play weird games with the mod time of symlinks
2931 -# (eg FreeBSD returns the mod time of the symlink's containing
2934 - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
2935 - if test "$*" = "X"; then
2937 - set X `ls -t $srcdir/configure conftestfile`
2939 - if test "$*" != "X $srcdir/configure conftestfile" \
2940 - && test "$*" != "X conftestfile $srcdir/configure"; then
2942 - # If neither matched, then we have a broken ls. This can happen
2943 - # if, for instance, CONFIG_SHELL is bash and it inherits a
2944 - # broken ls alias from the environment. This has actually
2945 - # happened. Such a system could not be considered "sane".
2946 - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
2947 -alias in your environment" >&5
2948 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
2949 -alias in your environment" >&2;}
2950 - { (exit 1); exit 1; }; }
2953 - test "$2" = conftestfile
2959 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
2960 -Check your system clock" >&5
2961 -echo "$as_me: error: newly created file is older than distributed files!
2962 -Check your system clock" >&2;}
2963 - { (exit 1); exit 1; }; }
2966 -echo "$as_me:$LINENO: result: yes" >&5
2967 -echo "${ECHO_T}yes" >&6
2968 -test "$program_prefix" != NONE &&
2969 - program_transform_name="s,^,$program_prefix,;$program_transform_name"
2970 -# Use a double $ so make ignores it.
2971 -test "$program_suffix" != NONE &&
2972 - program_transform_name="s,\$,$program_suffix,;$program_transform_name"
2973 -# Double any \ or $. echo might interpret backslashes.
2974 -# By default was `s,x,x', remove it if useless.
2975 -cat <<\_ACEOF >conftest.sed
2976 -s/[\\$]/&&/g;s/;s,x,x,$//
2978 -program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
2981 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
2982 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
2983 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
2984 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
2985 - echo $ECHO_N "(cached) $ECHO_C" >&6
2987 - cat >conftest.make <<\_ACEOF
2989 - @echo 'ac_maketemp="$(MAKE)"'
2991 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2992 -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
2993 -if test -n "$ac_maketemp"; then
2994 - eval ac_cv_prog_make_${ac_make}_set=yes
2996 - eval ac_cv_prog_make_${ac_make}_set=no
2998 -rm -f conftest.make
3000 -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
3001 - echo "$as_me:$LINENO: result: yes" >&5
3002 -echo "${ECHO_T}yes" >&6
3005 - echo "$as_me:$LINENO: result: no" >&5
3006 -echo "${ECHO_T}no" >&6
3007 - SET_MAKE="MAKE=${MAKE-make}"
3011 -# Check whether --enable-multilib or --disable-multilib was given.
3012 -if test "${enable_multilib+set}" = set; then
3013 - enableval="$enable_multilib"
3014 - case "${enableval}" in
3015 - yes) multilib=yes ;;
3016 - no) multilib=no ;;
3017 - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
3018 -echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
3019 - { (exit 1); exit 1; }; } ;;
3025 -if test "${srcdir}" = "."; then
3026 - if test "${with_target_subdir}" != "." -a -n "${with_target_subdir}"; then
3027 - gc_basedir="${srcdir}/${with_multisrctop}../."
3029 - gc_basedir="${srcdir}/${with_multisrctop}."
3032 - gc_basedir="${srcdir}/."
3036 -for ac_dir in $gc_basedir/.. $srcdir/$gc_basedir/..; do
3037 - if test -f $ac_dir/install-sh; then
3038 - ac_aux_dir=$ac_dir
3039 - ac_install_sh="$ac_aux_dir/install-sh -c"
3041 - elif test -f $ac_dir/install.sh; then
3042 - ac_aux_dir=$ac_dir
3043 - ac_install_sh="$ac_aux_dir/install.sh -c"
3045 - elif test -f $ac_dir/shtool; then
3046 - ac_aux_dir=$ac_dir
3047 - ac_install_sh="$ac_aux_dir/shtool install -c"
3051 -if test -z "$ac_aux_dir"; then
3052 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&5
3053 -echo "$as_me: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&2;}
3054 - { (exit 1); exit 1; }; }
3056 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
3057 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
3058 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
3061 - # This overrides the previous occurrence for automake, but not for
3062 - # autoconf, which is exactly what we want.
3064 -for ac_dir in .. $srcdir/..; do
3065 - if test -f $ac_dir/install-sh; then
3066 - ac_aux_dir=$ac_dir
3067 - ac_install_sh="$ac_aux_dir/install-sh -c"
3069 - elif test -f $ac_dir/install.sh; then
3070 - ac_aux_dir=$ac_dir
3071 - ac_install_sh="$ac_aux_dir/install.sh -c"
3073 - elif test -f $ac_dir/shtool; then
3074 - ac_aux_dir=$ac_dir
3075 - ac_install_sh="$ac_aux_dir/shtool install -c"
3079 -if test -z "$ac_aux_dir"; then
3080 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in .. $srcdir/.." >&5
3081 -echo "$as_me: error: cannot find install-sh or install.sh in .. $srcdir/.." >&2;}
3082 - { (exit 1); exit 1; }; }
3084 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
3085 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
3086 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
3090 -echo "$as_me:$LINENO: checking target system type" >&5
3091 -echo $ECHO_N "checking target system type... $ECHO_C" >&6
3092 -if test "${ac_cv_target+set}" = set; then
3093 - echo $ECHO_N "(cached) $ECHO_C" >&6
3095 - ac_cv_target_alias=$target_alias
3096 -test "x$ac_cv_target_alias" = "x" &&
3097 - ac_cv_target_alias=$ac_cv_host_alias
3098 -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
3099 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
3100 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
3101 - { (exit 1); exit 1; }; }
3104 -echo "$as_me:$LINENO: result: $ac_cv_target" >&5
3105 -echo "${ECHO_T}$ac_cv_target" >&6
3106 -target=$ac_cv_target
3107 -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
3108 -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
3109 -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
3112 -# The aliases save the names the user supplied, while $host etc.
3113 -# will get canonicalized.
3114 -test -n "$target_alias" &&
3115 - test "$program_prefix$program_suffix$program_transform_name" = \
3117 - program_prefix=${target_alias}-
3119 -# This works around an automake problem.
3120 -mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
3128 -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
3129 - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
3130 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
3131 - { (exit 1); exit 1; }; }
3136 -missing_dir=`cd $ac_aux_dir && pwd`
3137 -echo "$as_me:$LINENO: checking for working aclocal" >&5
3138 -echo $ECHO_N "checking for working aclocal... $ECHO_C" >&6
3139 -# Run test in a subshell; some versions of sh will print an error if
3140 -# an executable is not found, even if stderr is redirected.
3141 -# Redirect stdin to placate older versions of autoconf. Sigh.
3142 -if (aclocal --version) < /dev/null > /dev/null 2>&1; then
3144 - echo "$as_me:$LINENO: result: found" >&5
3145 -echo "${ECHO_T}found" >&6
3147 - ACLOCAL="$missing_dir/missing aclocal"
3148 - echo "$as_me:$LINENO: result: missing" >&5
3149 -echo "${ECHO_T}missing" >&6
3152 -echo "$as_me:$LINENO: checking for working autoconf" >&5
3153 -echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6
3154 -# Run test in a subshell; some versions of sh will print an error if
3155 -# an executable is not found, even if stderr is redirected.
3156 -# Redirect stdin to placate older versions of autoconf. Sigh.
3157 -if (autoconf --version) < /dev/null > /dev/null 2>&1; then
3159 - echo "$as_me:$LINENO: result: found" >&5
3160 -echo "${ECHO_T}found" >&6
3162 - AUTOCONF="$missing_dir/missing autoconf"
3163 - echo "$as_me:$LINENO: result: missing" >&5
3164 -echo "${ECHO_T}missing" >&6
3167 -echo "$as_me:$LINENO: checking for working automake" >&5
3168 -echo $ECHO_N "checking for working automake... $ECHO_C" >&6
3169 -# Run test in a subshell; some versions of sh will print an error if
3170 -# an executable is not found, even if stderr is redirected.
3171 -# Redirect stdin to placate older versions of autoconf. Sigh.
3172 -if (automake --version) < /dev/null > /dev/null 2>&1; then
3174 - echo "$as_me:$LINENO: result: found" >&5
3175 -echo "${ECHO_T}found" >&6
3177 - AUTOMAKE="$missing_dir/missing automake"
3178 - echo "$as_me:$LINENO: result: missing" >&5
3179 -echo "${ECHO_T}missing" >&6
3182 -echo "$as_me:$LINENO: checking for working autoheader" >&5
3183 -echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6
3184 -# Run test in a subshell; some versions of sh will print an error if
3185 -# an executable is not found, even if stderr is redirected.
3186 -# Redirect stdin to placate older versions of autoconf. Sigh.
3187 -if (autoheader --version) < /dev/null > /dev/null 2>&1; then
3188 - AUTOHEADER=autoheader
3189 - echo "$as_me:$LINENO: result: found" >&5
3190 -echo "${ECHO_T}found" >&6
3192 - AUTOHEADER="$missing_dir/missing autoheader"
3193 - echo "$as_me:$LINENO: result: missing" >&5
3194 -echo "${ECHO_T}missing" >&6
3197 -echo "$as_me:$LINENO: checking for working makeinfo" >&5
3198 -echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6
3199 -# Run test in a subshell; some versions of sh will print an error if
3200 -# an executable is not found, even if stderr is redirected.
3201 -# Redirect stdin to placate older versions of autoconf. Sigh.
3202 -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
3204 - echo "$as_me:$LINENO: result: found" >&5
3205 -echo "${ECHO_T}found" >&6
3207 - MAKEINFO="$missing_dir/missing makeinfo"
3208 - echo "$as_me:$LINENO: result: missing" >&5
3209 -echo "${ECHO_T}missing" >&6
3214 -# FIXME: We temporarily define our own version of AC_PROG_CC. This is
3215 -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
3216 -# are probably using a cross compiler, which will not be able to fully
3217 -# link an executable. This should really be fixed in autoconf
3223 -# Extract the first word of "gcc", so it can be a program name with args.
3224 -set dummy gcc; ac_word=$2
3225 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3226 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3227 -if test "${ac_cv_prog_CC+set}" = set; then
3228 - echo $ECHO_N "(cached) $ECHO_C" >&6
3230 - if test -n "$CC"; then
3231 - ac_cv_prog_CC="$CC" # Let the user override the test.
3233 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3234 -for as_dir in $PATH
3237 - test -z "$as_dir" && as_dir=.
3238 - for ac_exec_ext in '' $ac_executable_extensions; do
3239 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3240 - ac_cv_prog_CC="gcc"
3241 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3250 -if test -n "$CC"; then
3251 - echo "$as_me:$LINENO: result: $CC" >&5
3252 -echo "${ECHO_T}$CC" >&6
3254 - echo "$as_me:$LINENO: result: no" >&5
3255 -echo "${ECHO_T}no" >&6
3258 -if test -z "$CC"; then
3259 - # Extract the first word of "cc", so it can be a program name with args.
3260 -set dummy cc; ac_word=$2
3261 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3262 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3263 -if test "${ac_cv_prog_CC+set}" = set; then
3264 - echo $ECHO_N "(cached) $ECHO_C" >&6
3266 - if test -n "$CC"; then
3267 - ac_cv_prog_CC="$CC" # Let the user override the test.
3269 - ac_prog_rejected=no
3270 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3271 -for as_dir in $PATH
3274 - test -z "$as_dir" && as_dir=.
3275 - for ac_exec_ext in '' $ac_executable_extensions; do
3276 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3277 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
3278 - ac_prog_rejected=yes
3281 - ac_cv_prog_CC="cc"
3282 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3288 -if test $ac_prog_rejected = yes; then
3289 - # We found a bogon in the path, so make sure we never use it.
3290 - set dummy $ac_cv_prog_CC
3292 - if test $@%:@ != 0; then
3293 - # We chose a different compiler from the bogus one.
3294 - # However, it has the same basename, so the bogon will be chosen
3295 - # first if we set CC to just the basename; use the full file name.
3297 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
3303 -if test -n "$CC"; then
3304 - echo "$as_me:$LINENO: result: $CC" >&5
3305 -echo "${ECHO_T}$CC" >&6
3307 - echo "$as_me:$LINENO: result: no" >&5
3308 -echo "${ECHO_T}no" >&6
3311 - test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
3312 -echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
3313 - { (exit 1); exit 1; }; }
3318 -if test $ac_cv_c_compiler_gnu = yes; then
3320 - ac_test_CFLAGS="${CFLAGS+set}"
3321 - ac_save_CFLAGS="$CFLAGS"
3324 - if test "$ac_test_CFLAGS" = set; then
3325 - CFLAGS="$ac_save_CFLAGS"
3326 - elif test $ac_cv_prog_cc_g = yes; then
3333 - test "${CFLAGS+set}" = set || CFLAGS="-g"
3337 -# Likewise for AC_PROG_CXX.
3341 -for ac_prog in $CCC c++ g++ gcc CC cxx cc++
3343 - # Extract the first word of "$ac_prog", so it can be a program name with args.
3344 -set dummy $ac_prog; ac_word=$2
3345 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3346 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3347 -if test "${ac_cv_prog_CXX+set}" = set; then
3348 - echo $ECHO_N "(cached) $ECHO_C" >&6
3350 - if test -n "$CXX"; then
3351 - ac_cv_prog_CXX="$CXX" # Let the user override the test.
3353 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3354 -for as_dir in $PATH
3357 - test -z "$as_dir" && as_dir=.
3358 - for ac_exec_ext in '' $ac_executable_extensions; do
3359 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3360 - ac_cv_prog_CXX="$ac_prog"
3361 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3369 -CXX=$ac_cv_prog_CXX
3370 -if test -n "$CXX"; then
3371 - echo "$as_me:$LINENO: result: $CXX" >&5
3372 -echo "${ECHO_T}$CXX" >&6
3374 - echo "$as_me:$LINENO: result: no" >&5
3375 -echo "${ECHO_T}no" >&6
3378 - test -n "$CXX" && break
3380 -test -n "$CXX" || CXX="gcc"
3382 -test -z "$CXX" && { { echo "$as_me:$LINENO: error: no acceptable c++ found in \$PATH" >&5
3383 -echo "$as_me: error: no acceptable c++ found in \$PATH" >&2;}
3384 - { (exit 1); exit 1; }; }
3388 -if test $ac_cv_cxx_compiler_gnu = yes; then
3390 - ac_test_CXXFLAGS="${CXXFLAGS+set}"
3391 - ac_save_CXXFLAGS="$CXXFLAGS"
3394 - if test "$ac_test_CXXFLAGS" = set; then
3395 - CXXFLAGS="$ac_save_CXXFLAGS"
3396 - elif test $ac_cv_prog_cxx_g = yes; then
3403 - test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
3407 -# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
3408 -# run it explicitly here, it will be run implicitly before
3409 -# NEWLIB_CONFIGURE, which doesn't work because that means that it will
3410 -# be run before AC_CANONICAL_HOST.
3413 -if test -n "$ac_tool_prefix"; then
3414 - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
3415 -set dummy ${ac_tool_prefix}as; ac_word=$2
3416 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3417 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3418 -if test "${ac_cv_prog_AS+set}" = set; then
3419 - echo $ECHO_N "(cached) $ECHO_C" >&6
3421 - if test -n "$AS"; then
3422 - ac_cv_prog_AS="$AS" # Let the user override the test.
3424 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3425 -for as_dir in $PATH
3428 - test -z "$as_dir" && as_dir=.
3429 - for ac_exec_ext in '' $ac_executable_extensions; do
3430 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3431 - ac_cv_prog_AS="${ac_tool_prefix}as"
3432 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3441 -if test -n "$AS"; then
3442 - echo "$as_me:$LINENO: result: $AS" >&5
3443 -echo "${ECHO_T}$AS" >&6
3445 - echo "$as_me:$LINENO: result: no" >&5
3446 -echo "${ECHO_T}no" >&6
3450 -if test -z "$ac_cv_prog_AS"; then
3452 - # Extract the first word of "as", so it can be a program name with args.
3453 -set dummy as; ac_word=$2
3454 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3455 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3456 -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
3457 - echo $ECHO_N "(cached) $ECHO_C" >&6
3459 - if test -n "$ac_ct_AS"; then
3460 - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
3462 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3463 -for as_dir in $PATH
3466 - test -z "$as_dir" && as_dir=.
3467 - for ac_exec_ext in '' $ac_executable_extensions; do
3468 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3469 - ac_cv_prog_ac_ct_AS="as"
3470 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3478 -ac_ct_AS=$ac_cv_prog_ac_ct_AS
3479 -if test -n "$ac_ct_AS"; then
3480 - echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
3481 -echo "${ECHO_T}$ac_ct_AS" >&6
3483 - echo "$as_me:$LINENO: result: no" >&5
3484 -echo "${ECHO_T}no" >&6
3489 - AS="$ac_cv_prog_AS"
3492 -if test -n "$ac_tool_prefix"; then
3493 - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
3494 -set dummy ${ac_tool_prefix}ar; ac_word=$2
3495 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3496 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3497 -if test "${ac_cv_prog_AR+set}" = set; then
3498 - echo $ECHO_N "(cached) $ECHO_C" >&6
3500 - if test -n "$AR"; then
3501 - ac_cv_prog_AR="$AR" # Let the user override the test.
3503 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3504 -for as_dir in $PATH
3507 - test -z "$as_dir" && as_dir=.
3508 - for ac_exec_ext in '' $ac_executable_extensions; do
3509 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3510 - ac_cv_prog_AR="${ac_tool_prefix}ar"
3511 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3520 -if test -n "$AR"; then
3521 - echo "$as_me:$LINENO: result: $AR" >&5
3522 -echo "${ECHO_T}$AR" >&6
3524 - echo "$as_me:$LINENO: result: no" >&5
3525 -echo "${ECHO_T}no" >&6
3529 -if test -z "$ac_cv_prog_AR"; then
3531 - # Extract the first word of "ar", so it can be a program name with args.
3532 -set dummy ar; ac_word=$2
3533 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3534 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3535 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
3536 - echo $ECHO_N "(cached) $ECHO_C" >&6
3538 - if test -n "$ac_ct_AR"; then
3539 - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
3541 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3542 -for as_dir in $PATH
3545 - test -z "$as_dir" && as_dir=.
3546 - for ac_exec_ext in '' $ac_executable_extensions; do
3547 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3548 - ac_cv_prog_ac_ct_AR="ar"
3549 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3557 -ac_ct_AR=$ac_cv_prog_ac_ct_AR
3558 -if test -n "$ac_ct_AR"; then
3559 - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
3560 -echo "${ECHO_T}$ac_ct_AR" >&6
3562 - echo "$as_me:$LINENO: result: no" >&5
3563 -echo "${ECHO_T}no" >&6
3568 - AR="$ac_cv_prog_AR"
3571 -if test -n "$ac_tool_prefix"; then
3572 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
3573 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
3574 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3575 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3576 -if test "${ac_cv_prog_RANLIB+set}" = set; then
3577 - echo $ECHO_N "(cached) $ECHO_C" >&6
3579 - if test -n "$RANLIB"; then
3580 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
3582 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3583 -for as_dir in $PATH
3586 - test -z "$as_dir" && as_dir=.
3587 - for ac_exec_ext in '' $ac_executable_extensions; do
3588 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3589 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
3590 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3598 -RANLIB=$ac_cv_prog_RANLIB
3599 -if test -n "$RANLIB"; then
3600 - echo "$as_me:$LINENO: result: $RANLIB" >&5
3601 -echo "${ECHO_T}$RANLIB" >&6
3603 - echo "$as_me:$LINENO: result: no" >&5
3604 -echo "${ECHO_T}no" >&6
3608 -if test -z "$ac_cv_prog_RANLIB"; then
3609 - ac_ct_RANLIB=$RANLIB
3610 - # Extract the first word of "ranlib", so it can be a program name with args.
3611 -set dummy ranlib; ac_word=$2
3612 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3613 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3614 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
3615 - echo $ECHO_N "(cached) $ECHO_C" >&6
3617 - if test -n "$ac_ct_RANLIB"; then
3618 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
3620 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3621 -for as_dir in $PATH
3624 - test -z "$as_dir" && as_dir=.
3625 - for ac_exec_ext in '' $ac_executable_extensions; do
3626 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3627 - ac_cv_prog_ac_ct_RANLIB="ranlib"
3628 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3634 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
3637 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
3638 -if test -n "$ac_ct_RANLIB"; then
3639 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
3640 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
3642 - echo "$as_me:$LINENO: result: no" >&5
3643 -echo "${ECHO_T}no" >&6
3646 - RANLIB=$ac_ct_RANLIB
3648 - RANLIB="$ac_cv_prog_RANLIB"
3652 -# Find a good install program. We prefer a C program (faster),
3653 -# so one script is as good as another. But avoid the broken or
3654 -# incompatible versions:
3655 -# SysV /etc/install, /usr/sbin/install
3656 -# SunOS /usr/etc/install
3657 -# IRIX /sbin/install
3659 -# AmigaOS /C/install, which installs bootblocks on floppy discs
3660 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
3661 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
3662 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
3663 -# ./install, which can be erroneously created by make from ./install.sh.
3664 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
3665 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
3666 -if test -z "$INSTALL"; then
3667 -if test "${ac_cv_path_install+set}" = set; then
3668 - echo $ECHO_N "(cached) $ECHO_C" >&6
3670 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3671 -for as_dir in $PATH
3674 - test -z "$as_dir" && as_dir=.
3675 - # Account for people who put trailing slashes in PATH elements.
3677 - ./ | .// | /cC/* | \
3678 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
3681 - # OSF1 and SCO ODT 3.0 have their own names for install.
3682 - # Don't use installbsd from OSF since it installs stuff as root
3684 - for ac_prog in ginstall scoinst install; do
3685 - for ac_exec_ext in '' $ac_executable_extensions; do
3686 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
3687 - if test $ac_prog = install &&
3688 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3689 - # AIX install. It has an incompatible calling convention.
3691 - elif test $ac_prog = install &&
3692 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3693 - # program-specific install script used by HP pwplus--don't use.
3696 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
3708 - if test "${ac_cv_path_install+set}" = set; then
3709 - INSTALL=$ac_cv_path_install
3711 - # As a last resort, use the slow shell script. We don't cache a
3712 - # path for INSTALL within a source directory, because that will
3713 - # break other packages using the cache if that directory is
3714 - # removed, or if the path is relative.
3715 - INSTALL=$ac_install_sh
3718 -echo "$as_me:$LINENO: result: $INSTALL" >&5
3719 -echo "${ECHO_T}$INSTALL" >&6
3721 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
3722 -# It thinks the first close brace ends the variable substitution.
3723 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
3725 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
3727 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
3730 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
3731 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
3732 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
3733 -if test "${enable_maintainer_mode+set}" = set; then
3734 - enableval="$enable_maintainer_mode"
3735 - USE_MAINTAINER_MODE=$enableval
3737 - USE_MAINTAINER_MODE=no
3739 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
3740 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
3743 -if test $USE_MAINTAINER_MODE = yes; then
3744 - MAINTAINER_MODE_TRUE=
3745 - MAINTAINER_MODE_FALSE='#'
3747 - MAINTAINER_MODE_TRUE='#'
3748 - MAINTAINER_MODE_FALSE=
3750 - MAINT=$MAINTAINER_MODE_TRUE
3754 -# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
3755 -# at least currently, we never actually build a program, so we never
3756 -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
3757 -# fails, because we are probably configuring with a cross compiler
3758 -# which can't create executables. So we include AC_EXEEXT to keep
3759 -# automake happy, but we don't execute it, since we don't care about
3762 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
3763 - # to nothing, so nothing would remain between `then' and `fi' if it
3764 - # were not for the `:' below.
3769 -. ${srcdir}/configure.host
3771 -case ${gc_basedir} in
3772 -/* | A-Za-z:/\\*) gc_flagbasedir=${gc_basedir} ;;
3773 -*) gc_flagbasedir='$(top_builddir)/'${gc_basedir} ;;
3776 -gc_cflags="${gc_cflags} -I"'$(top_builddir)'"/./targ-include -I${gc_flagbasedir}/libc/include"
3779 - gc_cflags="${gc_cflags} -I${gc_flagbasedir}/../winsup/include"
3784 -GC_CFLAGS=${gc_cflags}
3788 -# Check whether --enable-shared or --disable-shared was given.
3789 -if test "${enable_shared+set}" = set; then
3790 - enableval="$enable_shared"
3791 - p=${PACKAGE-default}
3793 -yes) enable_shared=yes ;;
3794 -no) enable_shared=no ;;
3797 - # Look at the argument we got. We use all the common list separators.
3798 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3799 - for pkg in $enableval; do
3800 - if test "X$pkg" = "X$p"; then
3804 - IFS="$ac_save_ifs"
3810 -# Check whether --enable-static or --disable-static was given.
3811 -if test "${enable_static+set}" = set; then
3812 - enableval="$enable_static"
3813 - p=${PACKAGE-default}
3815 -yes) enable_static=yes ;;
3816 -no) enable_static=no ;;
3819 - # Look at the argument we got. We use all the common list separators.
3820 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3821 - for pkg in $enableval; do
3822 - if test "X$pkg" = "X$p"; then
3826 - IFS="$ac_save_ifs"
3832 -# Check whether --enable-fast-install or --disable-fast-install was given.
3833 -if test "${enable_fast_install+set}" = set; then
3834 - enableval="$enable_fast_install"
3835 - p=${PACKAGE-default}
3837 -yes) enable_fast_install=yes ;;
3838 -no) enable_fast_install=no ;;
3840 - enable_fast_install=no
3841 - # Look at the argument we got. We use all the common list separators.
3842 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3843 - for pkg in $enableval; do
3844 - if test "X$pkg" = "X$p"; then
3845 - enable_fast_install=yes
3848 - IFS="$ac_save_ifs"
3852 - enable_fast_install=yes
3855 -# Check whether --with-gnu-ld or --without-gnu-ld was given.
3856 -if test "${with_gnu_ld+set}" = set; then
3857 - withval="$with_gnu_ld"
3858 - test "$withval" = no || with_gnu_ld=yes
3863 -if test "$GCC" = yes; then
3864 - # Check if gcc -print-prog-name=ld gives a path.
3865 - echo "$as_me:$LINENO: checking for ld used by GCC" >&5
3866 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
3869 - # gcc leaves a trailing carriage return which upsets mingw
3870 - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
3872 - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
3875 - # Accept absolute paths.
3876 - [\\/]* | [A-Za-z]:[\\/]*)
3877 - re_direlt='/[^/][^/]*/\.\./'
3878 - # Canonicalize the path of ld
3879 - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
3880 - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
3881 - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
3883 - test -z "$LD" && LD="$ac_prog"
3886 - # If it fails, then pretend we aren't using GCC.
3890 - # If it is relative, then search for the first ld in PATH.
3891 - with_gnu_ld=unknown
3894 -elif test "$with_gnu_ld" = yes; then
3895 - echo "$as_me:$LINENO: checking for GNU ld" >&5
3896 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
3898 - echo "$as_me:$LINENO: checking for non-GNU ld" >&5
3899 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
3901 -if test "${lt_cv_path_LD+set}" = set; then
3902 - echo $ECHO_N "(cached) $ECHO_C" >&6
3904 - if test -z "$LD"; then
3905 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
3906 - for ac_dir in $PATH; do
3907 - test -z "$ac_dir" && ac_dir=.
3908 - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
3909 - lt_cv_path_LD="$ac_dir/$ac_prog"
3910 - # Check to see if the program is GNU ld. I'd rather use --version,
3911 - # but apparently some GNU ld's only accept -v.
3912 - # Break only if it was the GNU/non-GNU ld that we prefer.
3913 - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
3914 - test "$with_gnu_ld" != no && break
3916 - test "$with_gnu_ld" != yes && break
3920 - IFS="$ac_save_ifs"
3922 - lt_cv_path_LD="$LD" # Let the user override the test with a path.
3926 -LD="$lt_cv_path_LD"
3927 -if test -n "$LD"; then
3928 - echo "$as_me:$LINENO: result: $LD" >&5
3929 -echo "${ECHO_T}$LD" >&6
3931 - echo "$as_me:$LINENO: result: no" >&5
3932 -echo "${ECHO_T}no" >&6
3934 -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
3935 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
3936 - { (exit 1); exit 1; }; }
3937 -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
3938 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
3939 -if test "${lt_cv_prog_gnu_ld+set}" = set; then
3940 - echo $ECHO_N "(cached) $ECHO_C" >&6
3942 - # I'd rather use --version here, but apparently some GNU ld's only accept -v.
3943 -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
3944 - lt_cv_prog_gnu_ld=yes
3946 - lt_cv_prog_gnu_ld=no
3949 -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
3950 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
3951 -with_gnu_ld=$lt_cv_prog_gnu_ld
3954 -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
3955 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
3956 -if test "${lt_cv_ld_reload_flag+set}" = set; then
3957 - echo $ECHO_N "(cached) $ECHO_C" >&6
3959 - lt_cv_ld_reload_flag='-r'
3961 -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
3962 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
3963 -reload_flag=$lt_cv_ld_reload_flag
3964 -test -n "$reload_flag" && reload_flag=" $reload_flag"
3966 -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
3967 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
3968 -if test "${lt_cv_path_NM+set}" = set; then
3969 - echo $ECHO_N "(cached) $ECHO_C" >&6
3971 - if test -n "$NM"; then
3972 - # Let the user override the test.
3973 - lt_cv_path_NM="$NM"
3975 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
3976 - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
3977 - test -z "$ac_dir" && ac_dir=.
3978 - tmp_nm=$ac_dir/${ac_tool_prefix}nm
3979 - if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
3980 - # Check to see if the nm accepts a BSD-compat flag.
3981 - # Adding the `sed 1q' prevents false positives on HP-UX, which says:
3982 - # nm: unknown option "B" ignored
3983 - # Tru64's nm complains that /dev/null is an invalid object file
3984 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
3985 - lt_cv_path_NM="$tmp_nm -B"
3987 - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
3988 - lt_cv_path_NM="$tmp_nm -p"
3991 - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
3992 - continue # so that we can try to find one that supports BSD flags
3996 - IFS="$ac_save_ifs"
3997 - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
4001 -NM="$lt_cv_path_NM"
4002 -echo "$as_me:$LINENO: result: $NM" >&5
4003 -echo "${ECHO_T}$NM" >&6
4005 -echo "$as_me:$LINENO: checking whether ln -s works" >&5
4006 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
4008 -if test "$LN_S" = "ln -s"; then
4009 - echo "$as_me:$LINENO: result: yes" >&5
4010 -echo "${ECHO_T}yes" >&6
4012 - echo "$as_me:$LINENO: result: no, using $LN_S" >&5
4013 -echo "${ECHO_T}no, using $LN_S" >&6
4016 -echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5
4017 -echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
4018 -if test "${lt_cv_deplibs_check_method+set}" = set; then
4019 - echo $ECHO_N "(cached) $ECHO_C" >&6
4021 - lt_cv_file_magic_cmd='$MAGIC_CMD'
4022 -lt_cv_file_magic_test_file=
4023 -lt_cv_deplibs_check_method='unknown'
4024 -# Need to set the preceding variable on all platforms that support
4025 -# interlibrary dependencies.
4026 -# 'none' -- dependencies not supported.
4027 -# `unknown' -- same as none, but documents that we really don't know.
4028 -# 'pass_all' -- all dependencies passed with no checks.
4029 -# 'test_compile' -- check by making test program.
4030 -# 'file_magic [regex]' -- check by looking for files in library path
4031 -# which responds to the $file_magic_cmd with a given egrep regex.
4032 -# If you have `file' or equivalent on your system and you're not sure
4033 -# whether `pass_all' will *always* work, you probably want this one.
4037 - lt_cv_deplibs_check_method=pass_all
4041 - lt_cv_deplibs_check_method=pass_all
4045 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
4046 - lt_cv_file_magic_cmd='/usr/bin/file -L'
4047 - lt_cv_file_magic_test_file=/shlib/libc.so
4050 -cygwin* | mingw* |pw32*)
4051 - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
4052 - lt_cv_file_magic_cmd='$OBJDUMP -f'
4055 -darwin* | rhapsody*)
4056 - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
4057 - lt_cv_file_magic_cmd='/usr/bin/file -L'
4058 - case "$host_os" in
4059 - rhapsody* | darwin1.012)
4060 - lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
4062 - *) # Darwin 1.3 on
4063 - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
4069 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
4072 - # Not sure whether the presence of OpenBSD here was a mistake.
4073 - # Let's accept both of them until this is cleared up.
4074 - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
4075 - lt_cv_file_magic_cmd=/usr/bin/file
4076 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
4080 - lt_cv_deplibs_check_method=pass_all
4085 - lt_cv_deplibs_check_method=pass_all
4088 -hpux10.20*|hpux11*)
4091 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
4092 - lt_cv_file_magic_cmd=/usr/bin/file
4093 - lt_cv_file_magic_test_file=/usr/lib/libc.sl
4096 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
4097 - lt_cv_file_magic_cmd=/usr/bin/file
4098 - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
4106 - # this will be overridden with pass_all, but let us keep it just in case
4107 - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
4111 - *-32|*"-32 ") libmagic=32-bit;;
4112 - *-n32|*"-n32 ") libmagic=N32;;
4113 - *-64|*"-64 ") libmagic=64-bit;;
4114 - *) libmagic=never-match;;
4116 - # this will be overridden with pass_all, but let us keep it just in case
4117 - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
4120 - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
4121 - lt_cv_deplibs_check_method=pass_all
4124 -# This must be Linux ELF.
4127 - alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
4128 - lt_cv_deplibs_check_method=pass_all ;;
4130 - # glibc up to 2.1.1 does not perform some relocations on ARM
4131 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
4133 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
4137 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
4138 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
4140 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
4145 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
4146 - lt_cv_file_magic_cmd=/usr/bin/file
4147 - lt_cv_file_magic_test_file=/usr/lib/libnls.so
4150 -osf3* | osf4* | osf5*)
4151 - # this will be overridden with pass_all, but let us keep it just in case
4152 - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
4153 - lt_cv_file_magic_test_file=/shlib/libc.so
4154 - lt_cv_deplibs_check_method=pass_all
4158 - lt_cv_deplibs_check_method=pass_all
4162 - lt_cv_deplibs_check_method=pass_all
4163 - lt_cv_file_magic_test_file=/lib/libc.so
4166 -sysv5uw[78]* | sysv4*uw2*)
4167 - lt_cv_deplibs_check_method=pass_all
4170 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
4171 - case $host_vendor in
4173 - lt_cv_deplibs_check_method=pass_all
4176 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
4177 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
4184 -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
4185 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
4186 -file_magic_cmd=$lt_cv_file_magic_cmd
4187 -deplibs_check_method=$lt_cv_deplibs_check_method
4192 -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
4194 -# Only perform the check for file, if the check method requires it
4195 -case $deplibs_check_method in
4197 - if test "$file_magic_cmd" = '$MAGIC_CMD'; then
4198 - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
4199 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
4200 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
4201 - echo $ECHO_N "(cached) $ECHO_C" >&6
4203 - case $MAGIC_CMD in
4205 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
4208 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
4211 - ac_save_MAGIC_CMD="$MAGIC_CMD"
4212 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
4213 - ac_dummy="/usr/bin:$PATH"
4214 - for ac_dir in $ac_dummy; do
4215 - test -z "$ac_dir" && ac_dir=.
4216 - if test -f $ac_dir/${ac_tool_prefix}file; then
4217 - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
4218 - if test -n "$file_magic_test_file"; then
4219 - case $deplibs_check_method in
4221 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
4222 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4223 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
4224 - egrep "$file_magic_regex" > /dev/null; then
4229 -*** Warning: the command libtool uses to detect shared libraries,
4230 -*** $file_magic_cmd, produces output that libtool cannot recognize.
4231 -*** The result is that libtool may fail to recognize shared libraries
4232 -*** as such. This will affect the creation of libtool libraries that
4233 -*** depend on shared libraries, but programs linked with such libtool
4234 -*** libraries will work regardless of this problem. Nevertheless, you
4235 -*** may want to report the problem to your system manager and/or to
4236 -*** bug-libtool@gnu.org
4245 - IFS="$ac_save_ifs"
4246 - MAGIC_CMD="$ac_save_MAGIC_CMD"
4251 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4252 -if test -n "$MAGIC_CMD"; then
4253 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
4254 -echo "${ECHO_T}$MAGIC_CMD" >&6
4256 - echo "$as_me:$LINENO: result: no" >&5
4257 -echo "${ECHO_T}no" >&6
4260 -if test -z "$lt_cv_path_MAGIC_CMD"; then
4261 - if test -n "$ac_tool_prefix"; then
4262 - echo "$as_me:$LINENO: checking for file" >&5
4263 -echo $ECHO_N "checking for file... $ECHO_C" >&6
4264 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
4265 - echo $ECHO_N "(cached) $ECHO_C" >&6
4267 - case $MAGIC_CMD in
4269 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
4272 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
4275 - ac_save_MAGIC_CMD="$MAGIC_CMD"
4276 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
4277 - ac_dummy="/usr/bin:$PATH"
4278 - for ac_dir in $ac_dummy; do
4279 - test -z "$ac_dir" && ac_dir=.
4280 - if test -f $ac_dir/file; then
4281 - lt_cv_path_MAGIC_CMD="$ac_dir/file"
4282 - if test -n "$file_magic_test_file"; then
4283 - case $deplibs_check_method in
4285 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
4286 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4287 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
4288 - egrep "$file_magic_regex" > /dev/null; then
4293 -*** Warning: the command libtool uses to detect shared libraries,
4294 -*** $file_magic_cmd, produces output that libtool cannot recognize.
4295 -*** The result is that libtool may fail to recognize shared libraries
4296 -*** as such. This will affect the creation of libtool libraries that
4297 -*** depend on shared libraries, but programs linked with such libtool
4298 -*** libraries will work regardless of this problem. Nevertheless, you
4299 -*** may want to report the problem to your system manager and/or to
4300 -*** bug-libtool@gnu.org
4309 - IFS="$ac_save_ifs"
4310 - MAGIC_CMD="$ac_save_MAGIC_CMD"
4315 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4316 -if test -n "$MAGIC_CMD"; then
4317 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
4318 -echo "${ECHO_T}$MAGIC_CMD" >&6
4320 - echo "$as_me:$LINENO: result: no" >&5
4321 -echo "${ECHO_T}no" >&6
4333 -if test -n "$ac_tool_prefix"; then
4334 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
4335 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
4336 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4337 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4338 -if test "${ac_cv_prog_RANLIB+set}" = set; then
4339 - echo $ECHO_N "(cached) $ECHO_C" >&6
4341 - if test -n "$RANLIB"; then
4342 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
4344 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4345 -for as_dir in $PATH
4348 - test -z "$as_dir" && as_dir=.
4349 - for ac_exec_ext in '' $ac_executable_extensions; do
4350 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4351 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
4352 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4360 -RANLIB=$ac_cv_prog_RANLIB
4361 -if test -n "$RANLIB"; then
4362 - echo "$as_me:$LINENO: result: $RANLIB" >&5
4363 -echo "${ECHO_T}$RANLIB" >&6
4365 - echo "$as_me:$LINENO: result: no" >&5
4366 -echo "${ECHO_T}no" >&6
4370 -if test -z "$ac_cv_prog_RANLIB"; then
4371 - ac_ct_RANLIB=$RANLIB
4372 - # Extract the first word of "ranlib", so it can be a program name with args.
4373 -set dummy ranlib; ac_word=$2
4374 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4375 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4376 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
4377 - echo $ECHO_N "(cached) $ECHO_C" >&6
4379 - if test -n "$ac_ct_RANLIB"; then
4380 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
4382 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4383 -for as_dir in $PATH
4386 - test -z "$as_dir" && as_dir=.
4387 - for ac_exec_ext in '' $ac_executable_extensions; do
4388 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4389 - ac_cv_prog_ac_ct_RANLIB="ranlib"
4390 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4396 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
4399 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
4400 -if test -n "$ac_ct_RANLIB"; then
4401 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
4402 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
4404 - echo "$as_me:$LINENO: result: no" >&5
4405 -echo "${ECHO_T}no" >&6
4408 - RANLIB=$ac_ct_RANLIB
4410 - RANLIB="$ac_cv_prog_RANLIB"
4413 -if test -n "$ac_tool_prefix"; then
4414 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
4415 -set dummy ${ac_tool_prefix}strip; ac_word=$2
4416 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4417 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4418 -if test "${ac_cv_prog_STRIP+set}" = set; then
4419 - echo $ECHO_N "(cached) $ECHO_C" >&6
4421 - if test -n "$STRIP"; then
4422 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
4424 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4425 -for as_dir in $PATH
4428 - test -z "$as_dir" && as_dir=.
4429 - for ac_exec_ext in '' $ac_executable_extensions; do
4430 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4431 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
4432 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4440 -STRIP=$ac_cv_prog_STRIP
4441 -if test -n "$STRIP"; then
4442 - echo "$as_me:$LINENO: result: $STRIP" >&5
4443 -echo "${ECHO_T}$STRIP" >&6
4445 - echo "$as_me:$LINENO: result: no" >&5
4446 -echo "${ECHO_T}no" >&6
4450 -if test -z "$ac_cv_prog_STRIP"; then
4451 - ac_ct_STRIP=$STRIP
4452 - # Extract the first word of "strip", so it can be a program name with args.
4453 -set dummy strip; ac_word=$2
4454 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4455 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4456 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
4457 - echo $ECHO_N "(cached) $ECHO_C" >&6
4459 - if test -n "$ac_ct_STRIP"; then
4460 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
4462 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4463 -for as_dir in $PATH
4466 - test -z "$as_dir" && as_dir=.
4467 - for ac_exec_ext in '' $ac_executable_extensions; do
4468 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4469 - ac_cv_prog_ac_ct_STRIP="strip"
4470 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4476 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
4479 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
4480 -if test -n "$ac_ct_STRIP"; then
4481 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
4482 -echo "${ECHO_T}$ac_ct_STRIP" >&6
4484 - echo "$as_me:$LINENO: result: no" >&5
4485 -echo "${ECHO_T}no" >&6
4488 - STRIP=$ac_ct_STRIP
4490 - STRIP="$ac_cv_prog_STRIP"
4494 -# Check for any special flags to pass to ltconfig.
4495 -libtool_flags="--cache-file=$cache_file"
4496 -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
4497 -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
4498 -test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
4499 -test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
4500 -test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
4503 -# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
4504 -if test "${enable_libtool_lock+set}" = set; then
4505 - enableval="$enable_libtool_lock"
4508 -test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
4509 -test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
4512 -# Check whether --with-pic or --without-pic was given.
4513 -if test "${with_pic+set}" = set; then
4514 - withval="$with_pic"
4515 - pic_mode="$withval"
4519 -test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
4520 -test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
4522 -# Some flags need to be propagated to the compiler or linker for good
4526 - # Find out which ABI we are using.
4527 - echo '#line __oline__ "configure"' > conftest.$ac_ext
4528 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4529 - (eval $ac_compile) 2>&5
4531 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4532 - (exit $ac_status); }; then
4533 - case `/usr/bin/file conftest.$ac_objext` in
4538 - LD="${LD-ld} -n32"
4549 - # Find out which ABI we are using.
4550 - echo 'int i;' > conftest.$ac_ext
4551 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4552 - (eval $ac_compile) 2>&5
4554 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4555 - (exit $ac_status); }; then
4556 - case "`/usr/bin/file conftest.o`" in
4558 - HPUX_IA64_MODE="32"
4561 - HPUX_IA64_MODE="64"
4568 -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
4569 - # Find out which ABI we are using.
4570 - echo 'int i;' > conftest.$ac_ext
4571 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4572 - (eval $ac_compile) 2>&5
4574 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4575 - (exit $ac_status); }; then
4576 - case "`/usr/bin/file conftest.o`" in
4580 - LD="${LD-ld} -m elf_i386"
4583 - LD="${LD-ld} -m elf32ppclinux"
4586 - LD="${LD-ld} -m elf_s390"
4589 - LD="${LD-ld} -m elf32_sparc"
4596 - LD="${LD-ld} -m elf_x86_64"
4598 - ppc*-*linux*|powerpc*-*linux*)
4599 - LD="${LD-ld} -m elf64ppc"
4602 - LD="${LD-ld} -m elf64_s390"
4605 - LD="${LD-ld} -m elf64_sparc"
4615 - # On SCO OpenServer 5, we need -belf to get full-featured binaries.
4616 - SAVE_CFLAGS="$CFLAGS"
4617 - CFLAGS="$CFLAGS -belf"
4618 - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
4619 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
4620 -if test "${lt_cv_cc_needs_belf+set}" = set; then
4621 - echo $ECHO_N "(cached) $ECHO_C" >&6
4626 -ac_cpp='$CPP $CPPFLAGS'
4627 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4628 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4629 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4631 - cat >conftest.$ac_ext <<_ACEOF
4632 -#line $LINENO "configure"
4635 -cat confdefs.h >>conftest.$ac_ext
4636 -cat >>conftest.$ac_ext <<_ACEOF
4637 -/* end confdefs.h. */
4647 -rm -f conftest.$ac_objext conftest$ac_exeext
4648 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4649 - (eval $ac_link) 2>&5
4651 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4652 - (exit $ac_status); } &&
4653 - { ac_try='test -s conftest$ac_exeext'
4654 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4655 - (eval $ac_try) 2>&5
4657 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4658 - (exit $ac_status); }; }; then
4659 - lt_cv_cc_needs_belf=yes
4661 - echo "$as_me: failed program was:" >&5
4662 -sed 's/^/| /' conftest.$ac_ext >&5
4664 -lt_cv_cc_needs_belf=no
4666 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4668 -ac_cpp='$CPP $CPPFLAGS'
4669 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4670 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4671 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4674 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
4675 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
4676 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then
4677 - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
4678 - CFLAGS="$SAVE_CFLAGS"
4686 -# Save cache, so that ltconfig can load it
4687 -cat >confcache <<\_ACEOF
4688 -# This file is a shell script that caches the results of configure
4689 -# tests run on this system so they can be shared between configure
4690 -# scripts and configure runs, see configure's option --config-cache.
4691 -# It is not useful on other systems. If it contains results you don't
4692 -# want to keep, you may remove or edit it.
4694 -# config.status only pays attention to the cache file if you give it
4695 -# the --recheck option to rerun configure.
4697 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
4698 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
4699 -# following values.
4703 -# The following way of writing the cache mishandles newlines in values,
4704 -# but we know of no workaround that is simple, portable, and efficient.
4705 -# So, don't put newlines in cache variables' values.
4706 -# Ultrix sh set writes to stderr and can't be redirected directly,
4707 -# and sets the high bit in the cache file unless we assign to the vars.
4710 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
4712 - # `set' does not quote correctly, so add quotes (double-quote
4713 - # substitution turns \\\\ into \\, and sed turns \\ into \).
4716 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
4719 - # `set' quotes correctly as required by POSIX, so do not add quotes.
4721 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
4728 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
4730 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
4731 - : end' >>confcache
4732 -if diff $cache_file confcache >/dev/null 2>&1; then :; else
4733 - if test -w $cache_file; then
4734 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
4735 - cat confcache >$cache_file
4737 - echo "not updating unwritable cache $cache_file"
4742 -# Actually configure libtool. ac_aux_dir is where install-sh is found.
4743 -AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
4744 -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
4745 -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
4746 -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
4747 -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
4748 -deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
4749 -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
4750 -$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
4751 -|| { { echo "$as_me:$LINENO: error: libtool configure failed" >&5
4752 -echo "$as_me: error: libtool configure failed" >&2;}
4753 - { (exit 1); exit 1; }; }
4755 -# Reload cache, that may have been modified by ltconfig
4756 -if test -r "$cache_file"; then
4757 - # Some versions of bash will fail to source /dev/null (special
4758 - # files actually), so we avoid doing that.
4759 - if test -f "$cache_file"; then
4760 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
4761 -echo "$as_me: loading cache $cache_file" >&6;}
4762 - case $cache_file in
4763 - [\\/]* | ?:[\\/]* ) . $cache_file;;
4764 - *) . ./$cache_file;;
4768 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
4769 -echo "$as_me: creating cache $cache_file" >&6;}
4774 -# This can be used to rebuild libtool when needed
4775 -LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
4777 -# Always use our own libtool.
4778 -LIBTOOL='$(SHELL) $(top_builddir)/libtool'
4780 -# Redirect the config.log output again, so that the ltconfig log is not
4781 -# clobbered by the next message.
4782 -exec 5>>./config.log
4785 -ac_cpp='$CXXCPP $CPPFLAGS'
4786 -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4787 -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4788 -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
4789 -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
4790 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
4791 -if test -z "$CXXCPP"; then
4792 - if test "${ac_cv_prog_CXXCPP+set}" = set; then
4793 - echo $ECHO_N "(cached) $ECHO_C" >&6
4795 - # Double quotes because CXXCPP needs to be expanded
4796 - for CXXCPP in "$CXX -E" "/lib/cpp"
4798 - ac_preproc_ok=false
4799 -for ac_cxx_preproc_warn_flag in '' yes
4801 - # Use a header file that comes with gcc, so configuring glibc
4802 - # with a fresh cross-compiler works.
4803 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4804 - # <limits.h> exists even on freestanding compilers.
4805 - # On the NeXT, cc -E runs the code through the compiler's parser,
4806 - # not just through cpp. "Syntax error" is here to catch this case.
4807 - cat >conftest.$ac_ext <<_ACEOF
4808 -#line $LINENO "configure"
4811 -cat confdefs.h >>conftest.$ac_ext
4812 -cat >>conftest.$ac_ext <<_ACEOF
4813 -/* end confdefs.h. */
4815 -@%:@ include <limits.h>
4817 -@%:@ include <assert.h>
4821 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4822 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4824 - grep -v '^ *+' conftest.er1 >conftest.err
4825 - rm -f conftest.er1
4826 - cat conftest.err >&5
4827 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4828 - (exit $ac_status); } >/dev/null; then
4829 - if test -s conftest.err; then
4830 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4837 -if test -z "$ac_cpp_err"; then
4840 - echo "$as_me: failed program was:" >&5
4841 -sed 's/^/| /' conftest.$ac_ext >&5
4843 - # Broken: fails on valid input.
4846 -rm -f conftest.err conftest.$ac_ext
4848 - # OK, works on sane cases. Now check whether non-existent headers
4849 - # can be detected and how.
4850 - cat >conftest.$ac_ext <<_ACEOF
4851 -#line $LINENO "configure"
4854 -cat confdefs.h >>conftest.$ac_ext
4855 -cat >>conftest.$ac_ext <<_ACEOF
4856 -/* end confdefs.h. */
4857 -@%:@include <ac_nonexistent.h>
4859 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4860 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4862 - grep -v '^ *+' conftest.er1 >conftest.err
4863 - rm -f conftest.er1
4864 - cat conftest.err >&5
4865 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4866 - (exit $ac_status); } >/dev/null; then
4867 - if test -s conftest.err; then
4868 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4875 -if test -z "$ac_cpp_err"; then
4876 - # Broken: success on invalid input.
4879 - echo "$as_me: failed program was:" >&5
4880 -sed 's/^/| /' conftest.$ac_ext >&5
4882 - # Passes both tests.
4886 -rm -f conftest.err conftest.$ac_ext
4889 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4890 -rm -f conftest.err conftest.$ac_ext
4891 -if $ac_preproc_ok; then
4896 - ac_cv_prog_CXXCPP=$CXXCPP
4899 - CXXCPP=$ac_cv_prog_CXXCPP
4901 - ac_cv_prog_CXXCPP=$CXXCPP
4903 -echo "$as_me:$LINENO: result: $CXXCPP" >&5
4904 -echo "${ECHO_T}$CXXCPP" >&6
4905 -ac_preproc_ok=false
4906 -for ac_cxx_preproc_warn_flag in '' yes
4908 - # Use a header file that comes with gcc, so configuring glibc
4909 - # with a fresh cross-compiler works.
4910 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4911 - # <limits.h> exists even on freestanding compilers.
4912 - # On the NeXT, cc -E runs the code through the compiler's parser,
4913 - # not just through cpp. "Syntax error" is here to catch this case.
4914 - cat >conftest.$ac_ext <<_ACEOF
4915 -#line $LINENO "configure"
4918 -cat confdefs.h >>conftest.$ac_ext
4919 -cat >>conftest.$ac_ext <<_ACEOF
4920 -/* end confdefs.h. */
4922 -@%:@ include <limits.h>
4924 -@%:@ include <assert.h>
4928 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4929 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4931 - grep -v '^ *+' conftest.er1 >conftest.err
4932 - rm -f conftest.er1
4933 - cat conftest.err >&5
4934 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4935 - (exit $ac_status); } >/dev/null; then
4936 - if test -s conftest.err; then
4937 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4944 -if test -z "$ac_cpp_err"; then
4947 - echo "$as_me: failed program was:" >&5
4948 -sed 's/^/| /' conftest.$ac_ext >&5
4950 - # Broken: fails on valid input.
4953 -rm -f conftest.err conftest.$ac_ext
4955 - # OK, works on sane cases. Now check whether non-existent headers
4956 - # can be detected and how.
4957 - cat >conftest.$ac_ext <<_ACEOF
4958 -#line $LINENO "configure"
4961 -cat confdefs.h >>conftest.$ac_ext
4962 -cat >>conftest.$ac_ext <<_ACEOF
4963 -/* end confdefs.h. */
4964 -@%:@include <ac_nonexistent.h>
4966 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4967 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4969 - grep -v '^ *+' conftest.er1 >conftest.err
4970 - rm -f conftest.er1
4971 - cat conftest.err >&5
4972 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4973 - (exit $ac_status); } >/dev/null; then
4974 - if test -s conftest.err; then
4975 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4982 -if test -z "$ac_cpp_err"; then
4983 - # Broken: success on invalid input.
4986 - echo "$as_me: failed program was:" >&5
4987 -sed 's/^/| /' conftest.$ac_ext >&5
4989 - # Passes both tests.
4993 -rm -f conftest.err conftest.$ac_ext
4996 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4997 -rm -f conftest.err conftest.$ac_ext
4998 -if $ac_preproc_ok; then
5001 - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
5002 -See \`config.log' for more details." >&5
5003 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
5004 -See \`config.log' for more details." >&2;}
5005 - { (exit 1); exit 1; }; }
5009 -ac_cpp='$CPP $CPPFLAGS'
5010 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5011 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5012 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
5016 -LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
5018 -lt_save_CFLAGS="$CFLAGS"
5019 -AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
5020 -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
5021 -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
5022 -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
5023 -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
5024 -deplibs_check_method="$deplibs_check_method" \
5025 -file_magic_cmd="$file_magic_cmd" \
5026 -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
5027 ---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
5028 -|| { { echo "$as_me:$LINENO: error: libtool tag configuration failed" >&5
5029 -echo "$as_me: error: libtool tag configuration failed" >&2;}
5030 - { (exit 1); exit 1; }; }
5032 -CFLAGS="$lt_save_CFLAGS"
5034 -# Redirect the config.log output again, so that the ltconfig log is not
5035 -# clobbered by the next message.
5036 -exec 5>>./config.log
5045 -# Check whether --with-target-subdir or --without-target-subdir was given.
5046 -if test "${with_target_subdir+set}" = set; then
5047 - withval="$with_target_subdir"
5051 -# Check whether --with-cross-host or --without-cross-host was given.
5052 -if test "${with_cross_host+set}" = set; then
5053 - withval="$with_cross_host"
5057 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
5058 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
5059 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
5060 -if test "${enable_maintainer_mode+set}" = set; then
5061 - enableval="$enable_maintainer_mode"
5062 - USE_MAINTAINER_MODE=$enableval
5064 - USE_MAINTAINER_MODE=no
5066 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
5067 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
5070 -if test $USE_MAINTAINER_MODE = yes; then
5071 - MAINTAINER_MODE_TRUE=
5072 - MAINTAINER_MODE_FALSE='#'
5074 - MAINTAINER_MODE_TRUE='#'
5075 - MAINTAINER_MODE_FALSE=
5077 - MAINT=$MAINTAINER_MODE_TRUE
5080 -# automake wants to see AC_EXEEXT. But we don't need it. And having
5081 -# it is actually a problem, because the compiler we're passed can't
5082 -# necessarily do a full link. So we fool automake here.
5084 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
5085 - # to nothing, so nothing would remain between `then' and `fi' if it
5086 - # were not for the `:' below.
5091 -echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
5092 -echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
5093 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
5094 -if test -z "$THREADS"; then
5097 -echo "$as_me:$LINENO: result: $THREADS" >&5
5098 -echo "${ECHO_T}$THREADS" >&6
5100 -# Check whether --enable-parallel-mark or --disable-parallel-mark was given.
5101 -if test "${enable_parallel_mark+set}" = set; then
5102 - enableval="$enable_parallel_mark"
5103 - case "$THREADS" in
5104 - no | none | single)
5105 - { { echo "$as_me:$LINENO: error: Parallel mark requires --enable-threads=x spec" >&5
5106 -echo "$as_me: error: Parallel mark requires --enable-threads=x spec" >&2;}
5107 - { (exit 1); exit 1; }; }
5113 -INCLUDES=-I${srcdir}/include
5116 - no | none | single)
5121 - THREADLIBS=-lpthread
5123 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
5124 - cat >>confdefs.h <<\_ACEOF
5125 -@%:@define GC_LINUX_THREADS 1
5128 - cat >>confdefs.h <<\_ACEOF
5129 -@%:@define _REENTRANT 1
5132 - if test "${enable_parallel_mark}"; then
5133 - cat >>confdefs.h <<\_ACEOF
5134 -@%:@define PARALLEL_MARK 1
5138 - cat >>confdefs.h <<\_ACEOF
5139 -@%:@define THREAD_LOCAL_ALLOC 1
5144 - cat >>confdefs.h <<\_ACEOF
5145 -@%:@define GC_LINUX_THREADS 1
5148 - cat >>confdefs.h <<\_ACEOF
5149 -@%:@define _REENTRANT 1
5154 - { echo "$as_me:$LINENO: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
5155 -echo "$as_me: WARNING: \"Only HP/UX 11 threads are supported.\"" >&2;}
5156 - cat >>confdefs.h <<\_ACEOF
5157 -@%:@define GC_HPUX_THREADS 1
5160 - cat >>confdefs.h <<\_ACEOF
5161 -@%:@define _POSIX_C_SOURCE 199506L
5164 - if test "${enable_parallel_mark}" = yes; then
5165 - cat >>confdefs.h <<\_ACEOF
5166 -@%:@define PARALLEL_MARK 1
5170 - cat >>confdefs.h <<\_ACEOF
5171 -@%:@define THREAD_LOCAL_ALLOC 1
5174 - THREADLIBS="-lpthread -lrt"
5177 - { echo "$as_me:$LINENO: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&5
5178 -echo "$as_me: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&2;}
5179 - cat >>confdefs.h <<\_ACEOF
5180 -@%:@define GC_FREEBSD_THREADS 1
5183 - INCLUDES="$INCLUDES -pthread"
5184 - THREADLIBS=-pthread
5187 - cat >>confdefs.h <<\_ACEOF
5188 -@%:@define GC_SOLARIS_THREADS 1
5191 - cat >>confdefs.h <<\_ACEOF
5192 -@%:@define GC_SOLARIS_PTHREADS 1
5197 - cat >>confdefs.h <<\_ACEOF
5198 -@%:@define GC_IRIX_THREADS 1
5208 - cat >>confdefs.h <<\_ACEOF
5209 -@%:@define GC_DARWIN_THREADS 1
5212 - cat >>confdefs.h <<\_ACEOF
5213 -@%:@define THREAD_LOCAL_ALLOC 1
5216 - if test "${enable_parallel_mark}" = yes; then
5217 - cat >>confdefs.h <<\_ACEOF
5218 -@%:@define PARALLEL_MARK 1
5224 - cat >>confdefs.h <<\_ACEOF
5225 -@%:@define GC_WIN32_THREADS 1
5228 - cat >>confdefs.h <<\_ACEOF
5229 -@%:@define NO_GETENV 1
5233 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
5234 - { { echo "$as_me:$LINENO: error: thread package $THREADS not yet supported" >&5
5235 -echo "$as_me: error: thread package $THREADS not yet supported" >&2;}
5236 - { (exit 1); exit 1; }; }
5239 - { { echo "$as_me:$LINENO: error: $THREADS is an unknown thread package" >&5
5240 -echo "$as_me: error: $THREADS is an unknown thread package" >&2;}
5241 - { (exit 1); exit 1; }; }
5247 - powerpc-*-darwin*)
5248 - powerpc_darwin=true
5253 -if test x$powerpc_darwin = xtrue; then
5254 - POWERPC_DARWIN_TRUE=
5255 - POWERPC_DARWIN_FALSE='#'
5257 - POWERPC_DARWIN_TRUE='#'
5258 - POWERPC_DARWIN_FALSE=
5261 -# We never want libdl on darwin. It is a fake libdl that just ends up making
5262 -# dyld calls anyway
5266 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
5267 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
5268 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
5269 - echo $ECHO_N "(cached) $ECHO_C" >&6
5271 - ac_check_lib_save_LIBS=$LIBS
5273 -cat >conftest.$ac_ext <<_ACEOF
5274 -#line $LINENO "configure"
5277 -cat confdefs.h >>conftest.$ac_ext
5278 -cat >>conftest.$ac_ext <<_ACEOF
5279 -/* end confdefs.h. */
5281 -/* Override any gcc2 internal prototype to avoid an error. */
5285 -/* We use char because int might match the return type of a gcc2
5286 - builtin and then its argument prototype would still apply. */
5296 -rm -f conftest.$ac_objext conftest$ac_exeext
5297 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5298 - (eval $ac_link) 2>&5
5300 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5301 - (exit $ac_status); } &&
5302 - { ac_try='test -s conftest$ac_exeext'
5303 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5304 - (eval $ac_try) 2>&5
5306 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5307 - (exit $ac_status); }; }; then
5308 - ac_cv_lib_dl_dlopen=yes
5310 - echo "$as_me: failed program was:" >&5
5311 -sed 's/^/| /' conftest.$ac_ext >&5
5313 -ac_cv_lib_dl_dlopen=no
5315 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5316 -LIBS=$ac_check_lib_save_LIBS
5318 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
5319 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
5320 -if test $ac_cv_lib_dl_dlopen = yes; then
5321 - EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
5329 -target_all=libgcjgc.la
5335 -# Check whether --with-ecos or --without-ecos was given.
5336 -if test "${with_ecos+set}" = set; then
5337 - withval="$with_ecos"
5338 - TARGET_ECOS="$with_ecos"
5344 -case "$TARGET_ECOS" in
5348 - cat >>confdefs.h <<\_ACEOF
5352 - CXXINCLUDES="-I${TARGET_ECOS}/include"
5353 - addobjs="$addobjs ecos.lo"
5363 - alpha*-*-openbsd*)
5364 - machdep="alpha_mach_dep.lo"
5365 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
5366 - { echo "$as_me:$LINENO: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
5367 -echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&2;}
5368 - # Check whether --enable-shared or --disable-shared was given.
5369 -if test "${enable_shared+set}" = set; then
5370 - enableval="$enable_shared"
5371 - p=${PACKAGE-default}
5373 -yes) enable_shared=yes ;;
5374 -no) enable_shared=no ;;
5377 - # Look at the argument we got. We use all the common list separators.
5378 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
5379 - for pkg in $enableval; do
5380 - if test "X$pkg" = "X$p"; then
5384 - IFS="$ac_save_ifs"
5393 - machdep="alpha_mach_dep.lo"
5395 - i?86-*-solaris2.[89]*)
5396 - cat >>confdefs.h <<\_ACEOF
5397 -@%:@define SOLARIS25_PROC_VDB_BUG_FIXED 1
5402 - machdep="mips_ultrix_mach_dep.lo"
5403 - cat >>confdefs.h <<\_ACEOF
5404 -@%:@define STACKBASE __stackbase
5407 - cat >>confdefs.h <<\_ACEOF
5408 -@%:@define DATASTART_IS_ETEXT 1
5413 - machdep="mips_ultrix_mach-dep.lo"
5418 - machdep="mips_sgi_mach_dep.lo"
5419 - cat >>confdefs.h <<\_ACEOF
5420 -@%:@define NO_EXECUTE_PERMISSION 1
5424 - sparc-sun-solaris2.3*)
5425 - machdep="sparc_mach_dep.lo"
5426 - cat >>confdefs.h <<\_ACEOF
5427 -@%:@define SUNOS53_SHARED_LIB 1
5431 - sparc-sun-solaris2.*)
5432 - machdep="sparc_mach_dep.lo"
5435 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
5438 -if test x"$machdep" = x; then
5439 - machdep="mach_dep.lo"
5441 -addobjs="$addobjs $machdep"
5445 - sparc-sun-solaris2*)
5446 - if test "$GCC" = yes; then
5448 - for i in $CFLAGS; do
5453 - new_CFLAGS="$new_CFLAGS $i"
5457 - CFLAGS="$new_CFLAGS"
5462 -MY_CFLAGS="$CFLAGS"
5465 -cat >>confdefs.h <<\_ACEOF
5466 -@%:@define SILENT 1
5469 -cat >>confdefs.h <<\_ACEOF
5470 -@%:@define NO_SIGNALS 1
5473 -cat >>confdefs.h <<\_ACEOF
5474 -@%:@define NO_EXECUTE_PERMISSION 1
5477 -cat >>confdefs.h <<\_ACEOF
5478 -@%:@define ALL_INTERIOR_POINTERS 1
5482 -cat >>confdefs.h <<\_ACEOF
5483 -@%:@define JAVA_FINALIZATION 1
5486 -cat >>confdefs.h <<\_ACEOF
5487 -@%:@define GC_GCJ_SUPPORT 1
5490 -cat >>confdefs.h <<\_ACEOF
5491 -@%:@define ATOMIC_UNCOLLECTABLE 1
5495 -if test -n "${with_cross_host}"; then
5496 - cat >>confdefs.h <<\_ACEOF
5497 -@%:@define NO_SIGSET 1
5500 - cat >>confdefs.h <<\_ACEOF
5501 -@%:@define NO_DEBUGGING 1
5506 -# Check whether --enable-full-debug or --disable-full-debug was given.
5507 -if test "${enable_full_debug+set}" = set; then
5508 - enableval="$enable_full_debug"
5509 - if test "$enable_full_debug" = "yes"; then
5510 - { echo "$as_me:$LINENO: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&5
5511 -echo "$as_me: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&2;}
5512 - cat >>confdefs.h <<\_ACEOF
5513 -@%:@define KEEP_BACK_PTRS 1
5516 - cat >>confdefs.h <<\_ACEOF
5517 -@%:@define DBG_HDRS_ALL 1
5522 - cat >>confdefs.h <<\_ACEOF
5523 -@%:@define MAKE_BACK_GRAPH 1
5527 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
5528 - cat >>confdefs.h <<\_ACEOF
5529 -@%:@define MAKE_BACK_GRAPH 1
5532 - { echo "$as_me:$LINENO: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
5533 -echo "$as_me: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&2;}
5534 - cat >>confdefs.h <<\_ACEOF
5535 -@%:@define SAVE_CALL_COUNT 8
5545 -if test -z "$with_cross_host"; then
5547 - USE_LIBDIR_FALSE='#'
5549 - USE_LIBDIR_TRUE='#'
5553 -if test "${multilib}" = "yes"; then
5554 - multilib_arg="--enable-multilib"
5559 - ac_config_files="$ac_config_files Makefile include/Makefile"
5560 - ac_config_commands="$ac_config_commands default"
5561 -cat >confcache <<\_ACEOF
5562 -# This file is a shell script that caches the results of configure
5563 -# tests run on this system so they can be shared between configure
5564 -# scripts and configure runs, see configure's option --config-cache.
5565 -# It is not useful on other systems. If it contains results you don't
5566 -# want to keep, you may remove or edit it.
5568 -# config.status only pays attention to the cache file if you give it
5569 -# the --recheck option to rerun configure.
5571 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
5572 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
5573 -# following values.
5577 -# The following way of writing the cache mishandles newlines in values,
5578 -# but we know of no workaround that is simple, portable, and efficient.
5579 -# So, don't put newlines in cache variables' values.
5580 -# Ultrix sh set writes to stderr and can't be redirected directly,
5581 -# and sets the high bit in the cache file unless we assign to the vars.
5584 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
5586 - # `set' does not quote correctly, so add quotes (double-quote
5587 - # substitution turns \\\\ into \\, and sed turns \\ into \).
5590 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
5593 - # `set' quotes correctly as required by POSIX, so do not add quotes.
5595 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
5602 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
5604 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
5605 - : end' >>confcache
5606 -if diff $cache_file confcache >/dev/null 2>&1; then :; else
5607 - if test -w $cache_file; then
5608 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
5609 - cat confcache >$cache_file
5611 - echo "not updating unwritable cache $cache_file"
5616 -test "x$prefix" = xNONE && prefix=$ac_default_prefix
5617 -# Let make expand exec_prefix.
5618 -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
5620 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
5621 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
5622 -# trailing colons and then remove the whole line if VPATH becomes empty
5623 -# (actually we leave an empty line to preserve line numbers).
5624 -if test "x$srcdir" = x.; then
5625 - ac_vpsub='/^[ ]*VPATH[ ]*=/{
5626 -s/:*\$(srcdir):*/:/;
5627 -s/:*\${srcdir}:*/:/;
5629 -s/^\([^=]*=[ ]*\):*/\1/;
5635 -# Transform confdefs.h into DEFS.
5636 -# Protect against shell expansion while executing Makefile rules.
5637 -# Protect against Makefile macro expansion.
5639 -# If the first sed substitution is executed (which looks for macros that
5640 -# take arguments), then we branch to the quote section. Otherwise,
5641 -# look for a macro that doesn't take arguments.
5642 -cat >confdef2opt.sed <<\_ACEOF
5645 -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
5647 -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
5651 -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
5657 -# We use echo to avoid assuming a particular line-breaking character.
5658 -# The extra dot is to prevent the shell from consuming trailing
5659 -# line-breaks from the sub-command output. A line-break within
5660 -# single-quotes doesn't work because, if this script is created in a
5661 -# platform that uses two characters for line-breaks (e.g., DOS), tr
5663 -ac_LF_and_DOT=`echo; echo .`
5664 -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
5665 -rm -f confdef2opt.sed
5670 -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
5671 - # 1. Remove the extension, and $U if already installed.
5672 - ac_i=`echo "$ac_i" |
5673 - sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
5675 - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
5676 - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
5678 -LIB@&t@OBJS=$ac_libobjs
5680 -LTLIBOBJS=$ac_ltlibobjs
5684 -: ${CONFIG_STATUS=./config.status}
5685 -ac_clean_files_save=$ac_clean_files
5686 -ac_clean_files="$ac_clean_files $CONFIG_STATUS"
5687 -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
5688 -echo "$as_me: creating $CONFIG_STATUS" >&6;}
5689 -cat >$CONFIG_STATUS <<_ACEOF
5691 -# Generated by $as_me.
5692 -# Run this file to recreate the current configuration.
5693 -# Compiler output produced by configure, useful for debugging
5694 -# configure, is in config.log if it exists.
5697 -ac_cs_recheck=false
5699 -SHELL=\${CONFIG_SHELL-$SHELL}
5702 -cat >>$CONFIG_STATUS <<\_ACEOF
5703 -## --------------------- ##
5704 -## M4sh Initialization. ##
5705 -## --------------------- ##
5707 -# Be Bourne compatible
5708 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
5711 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
5712 - # is contrary to our usage. Disable this feature.
5713 - alias -g '${1+"$@"}'='"$@"'
5714 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
5718 -# Support unset when possible.
5719 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
5726 -# Work around bugs in pre-3.0 UWIN ksh.
5727 -$as_unset ENV MAIL MAILPATH
5734 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
5735 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
5736 - LC_TELEPHONE LC_TIME
5738 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
5739 - eval $as_var=C; export $as_var
5745 -# Required to use basename.
5746 -if expr a : '\(a\)' >/dev/null 2>&1; then
5752 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
5753 - as_basename=basename
5759 -# Name of the executable.
5760 -as_me=`$as_basename "$0" ||
5761 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
5762 - X"$0" : 'X\(//\)$' \| \
5763 - X"$0" : 'X\(/\)$' \| \
5764 - . : '\(.\)' 2>/dev/null ||
5766 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
5767 - /^X\/\(\/\/\)$/{ s//\1/; q; }
5768 - /^X\/\(\/\).*/{ s//\1/; q; }
5772 -# PATH needs CR, and LINENO needs CR and PATH.
5773 -# Avoid depending upon Character Ranges.
5774 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
5775 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
5776 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
5777 -as_cr_digits='0123456789'
5778 -as_cr_alnum=$as_cr_Letters$as_cr_digits
5780 -# The user is always right.
5781 -if test "${PATH_SEPARATOR+set}" != set; then
5782 - echo "#! /bin/sh" >conf$$.sh
5783 - echo "exit 0" >>conf$$.sh
5784 - chmod +x conf$$.sh
5785 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
5786 - PATH_SEPARATOR=';'
5794 - as_lineno_1=$LINENO
5795 - as_lineno_2=$LINENO
5796 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
5797 - test "x$as_lineno_1" != "x$as_lineno_2" &&
5798 - test "x$as_lineno_3" = "x$as_lineno_2" || {
5799 - # Find who we are. Look in the path if we contain no path at all
5800 - # relative or not.
5802 - *[\\/]* ) as_myself=$0 ;;
5803 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5804 -for as_dir in $PATH
5807 - test -z "$as_dir" && as_dir=.
5808 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
5813 - # We did not find ourselves, most probably we were run as `sh COMMAND'
5814 - # in which case we are not to be found in the path.
5815 - if test "x$as_myself" = x; then
5818 - if test ! -f "$as_myself"; then
5819 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
5820 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
5821 - { (exit 1); exit 1; }; }
5823 - case $CONFIG_SHELL in
5825 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5826 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
5829 - test -z "$as_dir" && as_dir=.
5830 - for as_base in sh bash ksh sh5; do
5833 - if ("$as_dir/$as_base" -c '
5834 - as_lineno_1=$LINENO
5835 - as_lineno_2=$LINENO
5836 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
5837 - test "x$as_lineno_1" != "x$as_lineno_2" &&
5838 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
5839 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
5840 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
5841 - CONFIG_SHELL=$as_dir/$as_base
5842 - export CONFIG_SHELL
5843 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
5851 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
5852 - # uniformly replaced by the line number. The first 'sed' inserts a
5853 - # line-number line before each line; the second 'sed' does the real
5854 - # work. The second script uses 'N' to pair each line-number line
5855 - # with the numbered line, and appends trailing '-' during
5856 - # substitution so that $LINENO is not a special case at line end.
5857 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
5858 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
5859 - sed '=' <$as_myself |
5864 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
5867 - s,^['$as_cr_digits']*\n,,
5868 - ' >$as_me.lineno &&
5869 - chmod +x $as_me.lineno ||
5870 - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
5871 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
5872 - { (exit 1); exit 1; }; }
5874 - # Don't try to exec as it changes $[0], causing all sort of problems
5875 - # (the dirname of $[0] is not the place where we might find the
5876 - # original and so on. Autoconf is especially sensible to this).
5878 - # Exit status is that of the last command.
5883 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
5884 - *c*,-n*) ECHO_N= ECHO_C='
5886 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
5887 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
5890 -if expr a : '\(a\)' >/dev/null 2>&1; then
5896 -rm -f conf$$ conf$$.exe conf$$.file
5898 -if ln -s conf$$.file conf$$ 2>/dev/null; then
5899 - # We could just check for DJGPP; but this test a) works b) is more generic
5900 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
5901 - if test -f conf$$.exe; then
5902 - # Don't use ln at all; we don't have any links
5907 -elif ln conf$$.file conf$$ 2>/dev/null; then
5912 -rm -f conf$$ conf$$.exe conf$$.file
5914 -if mkdir -p . 2>/dev/null; then
5920 -as_executable_p="test -f"
5922 -# Sed expression to map a string onto a valid CPP name.
5923 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
5925 -# Sed expression to map a string onto a valid variable name.
5926 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
5930 -# We need space, tab and new line, in precisely that order.
5940 -# Open the log real soon, to keep \$[0] and so on meaningful, and to
5941 -# report actual input values of CONFIG_FILES etc. instead of their
5942 -# values after options handling. Logging --version etc. is OK.
5946 - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
5947 -@%:@@%:@ Running $as_me. @%:@@%:@
5952 -This file was extended by $as_me, which was
5953 -generated by GNU Autoconf 2.57. Invocation command line was
5955 - CONFIG_FILES = $CONFIG_FILES
5956 - CONFIG_HEADERS = $CONFIG_HEADERS
5957 - CONFIG_LINKS = $CONFIG_LINKS
5958 - CONFIG_COMMANDS = $CONFIG_COMMANDS
5962 -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
5966 -# Files that config.status was made for.
5967 -if test -n "$ac_config_files"; then
5968 - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
5971 -if test -n "$ac_config_headers"; then
5972 - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
5975 -if test -n "$ac_config_links"; then
5976 - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
5979 -if test -n "$ac_config_commands"; then
5980 - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
5983 -cat >>$CONFIG_STATUS <<\_ACEOF
5986 -\`$as_me' instantiates files from templates according to the
5987 -current configuration.
5989 -Usage: $0 [OPTIONS] [FILE]...
5991 - -h, --help print this help, then exit
5992 - -V, --version print version number, then exit
5993 - -q, --quiet do not print progress messages
5994 - -d, --debug don't remove temporary files
5995 - --recheck update $as_me by reconfiguring in the same conditions
5996 - --file=FILE[:TEMPLATE]
5997 - instantiate the configuration file FILE
5999 -Configuration files:
6002 -Configuration commands:
6005 -Report bugs to <bug-autoconf@gnu.org>."
6008 -cat >>$CONFIG_STATUS <<_ACEOF
6011 -configured by $0, generated by GNU Autoconf 2.57,
6012 - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
6014 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
6015 -Free Software Foundation, Inc.
6016 -This config.status script is free software; the Free Software Foundation
6017 -gives unlimited permission to copy, distribute and modify it."
6022 -cat >>$CONFIG_STATUS <<\_ACEOF
6023 -# If no file are specified by the user, then we need to provide default
6024 -# value. By we need to know if files were specified by the user.
6030 - ac_option=`expr "x$1" : 'x\([^=]*\)='`
6031 - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
6039 - *) # This is not an option, so the user has probably given explicit
6042 - ac_need_defaults=false;;
6045 - case $ac_option in
6046 - # Handling of the options.
6048 -cat >>$CONFIG_STATUS <<\_ACEOF
6049 - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
6050 - ac_cs_recheck=: ;;
6051 - --version | --vers* | -V )
6052 - echo "$ac_cs_version"; exit 0 ;;
6054 - # Conflict between --help and --header
6055 - { { echo "$as_me:$LINENO: error: ambiguous option: $1
6056 -Try \`$0 --help' for more information." >&5
6057 -echo "$as_me: error: ambiguous option: $1
6058 -Try \`$0 --help' for more information." >&2;}
6059 - { (exit 1); exit 1; }; };;
6060 - --help | --hel | -h )
6061 - echo "$ac_cs_usage"; exit 0 ;;
6062 - --debug | --d* | -d )
6064 - --file | --fil | --fi | --f )
6066 - CONFIG_FILES="$CONFIG_FILES $ac_optarg"
6067 - ac_need_defaults=false;;
6068 - --header | --heade | --head | --hea )
6070 - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
6071 - ac_need_defaults=false;;
6072 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
6073 - | -silent | --silent | --silen | --sile | --sil | --si | --s)
6076 - # This is an error.
6077 - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
6078 -Try \`$0 --help' for more information." >&5
6079 -echo "$as_me: error: unrecognized option: $1
6080 -Try \`$0 --help' for more information." >&2;}
6081 - { (exit 1); exit 1; }; } ;;
6083 - *) ac_config_targets="$ac_config_targets $1" ;;
6089 -ac_configure_extra_args=
6091 -if $ac_cs_silent; then
6093 - ac_configure_extra_args="$ac_configure_extra_args --silent"
6097 -cat >>$CONFIG_STATUS <<_ACEOF
6098 -if \$ac_cs_recheck; then
6099 - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
6100 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
6105 -cat >>$CONFIG_STATUS <<_ACEOF
6107 -# INIT-COMMANDS section.
6113 -with_multisubdir=${with_multisubdir}
6114 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
6115 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
6116 -gc_basedir=${gc_basedir}
6125 -cat >>$CONFIG_STATUS <<\_ACEOF
6126 -for ac_config_target in $ac_config_targets
6128 - case "$ac_config_target" in
6129 - # Handling of arguments.
6130 - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
6131 - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
6132 - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
6133 - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
6134 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
6135 - { (exit 1); exit 1; }; };;
6139 -# If the user did not use the arguments to specify the items to instantiate,
6140 -# then the envvar interface is used. Set only those that are not.
6141 -# We use the long form for the default assignment because of an extremely
6142 -# bizarre bug on SunOS 4.1.3.
6143 -if $ac_need_defaults; then
6144 - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
6145 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
6148 -# Have a temporary directory for convenience. Make it in the build tree
6149 -# simply because there is no reason to put it here, and in addition,
6150 -# creating and moving files from /tmp can sometimes cause problems.
6151 -# Create a temporary directory, and hook for its removal unless debugging.
6154 - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
6155 - trap '{ (exit 1); exit 1; }' 1 2 13 15
6158 -# Create a (secure) tmp directory for tmp files.
6161 - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
6162 - test -n "$tmp" && test -d "$tmp"
6165 - tmp=./confstat$$-$RANDOM
6166 - (umask 077 && mkdir $tmp)
6169 - echo "$me: cannot create a temporary directory in ." >&2
6170 - { (exit 1); exit 1; }
6175 -cat >>$CONFIG_STATUS <<_ACEOF
6178 -# CONFIG_FILES section.
6181 -# No need to generate the scripts if there are no CONFIG_FILES.
6182 -# This happens for instance when ./config.status config.h
6183 -if test -n "\$CONFIG_FILES"; then
6184 - # Protect against being on the right side of a sed subst in config.status.
6185 - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
6186 - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
6187 -s,@SHELL@,$SHELL,;t t
6188 -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
6189 -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
6190 -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
6191 -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
6192 -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
6193 -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
6194 -s,@exec_prefix@,$exec_prefix,;t t
6195 -s,@prefix@,$prefix,;t t
6196 -s,@program_transform_name@,$program_transform_name,;t t
6197 -s,@bindir@,$bindir,;t t
6198 -s,@sbindir@,$sbindir,;t t
6199 -s,@libexecdir@,$libexecdir,;t t
6200 -s,@datadir@,$datadir,;t t
6201 -s,@sysconfdir@,$sysconfdir,;t t
6202 -s,@sharedstatedir@,$sharedstatedir,;t t
6203 -s,@localstatedir@,$localstatedir,;t t
6204 -s,@libdir@,$libdir,;t t
6205 -s,@includedir@,$includedir,;t t
6206 -s,@oldincludedir@,$oldincludedir,;t t
6207 -s,@infodir@,$infodir,;t t
6208 -s,@mandir@,$mandir,;t t
6209 -s,@build_alias@,$build_alias,;t t
6210 -s,@host_alias@,$host_alias,;t t
6211 -s,@target_alias@,$target_alias,;t t
6212 -s,@DEFS@,$DEFS,;t t
6213 -s,@ECHO_C@,$ECHO_C,;t t
6214 -s,@ECHO_N@,$ECHO_N,;t t
6215 -s,@ECHO_T@,$ECHO_T,;t t
6216 -s,@LIBS@,$LIBS,;t t
6217 -s,@gc_basedir@,$gc_basedir,;t t
6218 -s,@build@,$build,;t t
6219 -s,@build_cpu@,$build_cpu,;t t
6220 -s,@build_vendor@,$build_vendor,;t t
6221 -s,@build_os@,$build_os,;t t
6222 -s,@host@,$host,;t t
6223 -s,@host_cpu@,$host_cpu,;t t
6224 -s,@host_vendor@,$host_vendor,;t t
6225 -s,@host_os@,$host_os,;t t
6226 -s,@target@,$target,;t t
6227 -s,@target_cpu@,$target_cpu,;t t
6228 -s,@target_vendor@,$target_vendor,;t t
6229 -s,@target_os@,$target_os,;t t
6230 -s,@mkinstalldirs@,$mkinstalldirs,;t t
6231 -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
6232 -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
6233 -s,@INSTALL_DATA@,$INSTALL_DATA,;t t
6234 -s,@PACKAGE@,$PACKAGE,;t t
6235 -s,@VERSION@,$VERSION,;t t
6236 -s,@ACLOCAL@,$ACLOCAL,;t t
6237 -s,@AUTOCONF@,$AUTOCONF,;t t
6238 -s,@AUTOMAKE@,$AUTOMAKE,;t t
6239 -s,@AUTOHEADER@,$AUTOHEADER,;t t
6240 -s,@MAKEINFO@,$MAKEINFO,;t t
6241 -s,@SET_MAKE@,$SET_MAKE,;t t
6245 -s,@ac_ct_AS@,$ac_ct_AS,;t t
6247 -s,@ac_ct_AR@,$ac_ct_AR,;t t
6248 -s,@RANLIB@,$RANLIB,;t t
6249 -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
6250 -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
6251 -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
6252 -s,@MAINT@,$MAINT,;t t
6253 -s,@GC_CFLAGS@,$GC_CFLAGS,;t t
6254 -s,@LN_S@,$LN_S,;t t
6255 -s,@STRIP@,$STRIP,;t t
6256 -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
6257 -s,@LIBTOOL@,$LIBTOOL,;t t
6258 -s,@CXXCPP@,$CXXCPP,;t t
6259 -s,@CPPFLAGS@,$CPPFLAGS,;t t
6260 -s,@THREADLIBS@,$THREADLIBS,;t t
6261 -s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t
6262 -s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t
6263 -s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t
6264 -s,@target_all@,$target_all,;t t
6265 -s,@INCLUDES@,$INCLUDES,;t t
6266 -s,@CXXINCLUDES@,$CXXINCLUDES,;t t
6267 -s,@addobjs@,$addobjs,;t t
6268 -s,@MY_CFLAGS@,$MY_CFLAGS,;t t
6269 -s,@USE_LIBDIR_TRUE@,$USE_LIBDIR_TRUE,;t t
6270 -s,@USE_LIBDIR_FALSE@,$USE_LIBDIR_FALSE,;t t
6271 -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
6272 -s,@LTLIBOBJS@,$LTLIBOBJS,;t t
6277 - cat >>$CONFIG_STATUS <<\_ACEOF
6278 - # Split the substitutions into bite-sized pieces for seds with
6279 - # small command number limits, like on Digital OSF/1 and HP-UX.
6280 - ac_max_sed_lines=48
6281 - ac_sed_frag=1 # Number of current file.
6282 - ac_beg=1 # First line for current file.
6283 - ac_end=$ac_max_sed_lines # Line after last line for current file.
6286 - while $ac_more_lines; do
6287 - if test $ac_beg -gt 1; then
6288 - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
6290 - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
6292 - if test ! -s $tmp/subs.frag; then
6293 - ac_more_lines=false
6295 - # The purpose of the label and of the branching condition is to
6296 - # speed up the sed processing (if there are no `@' at all, there
6297 - # is no need to browse any of the substitutions).
6298 - # These are the two extra sed commands mentioned above.
6300 - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
6301 - if test -z "$ac_sed_cmds"; then
6302 - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
6304 - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
6306 - ac_sed_frag=`expr $ac_sed_frag + 1`
6308 - ac_end=`expr $ac_end + $ac_max_sed_lines`
6311 - if test -z "$ac_sed_cmds"; then
6314 -fi # test -n "$CONFIG_FILES"
6317 -cat >>$CONFIG_STATUS <<\_ACEOF
6318 -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
6319 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
6321 - - | *:- | *:-:* ) # input from stdin
6323 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
6324 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
6325 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
6326 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
6327 - * ) ac_file_in=$ac_file.in ;;
6330 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
6331 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
6332 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6333 - X"$ac_file" : 'X\(//\)[^/]' \| \
6334 - X"$ac_file" : 'X\(//\)$' \| \
6335 - X"$ac_file" : 'X\(/\)' \| \
6336 - . : '\(.\)' 2>/dev/null ||
6338 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6339 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6340 - /^X\(\/\/\)$/{ s//\1/; q; }
6341 - /^X\(\/\).*/{ s//\1/; q; }
6343 - { if $as_mkdir_p; then
6344 - mkdir -p "$ac_dir"
6348 - while test ! -d "$as_dir"; do
6349 - as_dirs="$as_dir $as_dirs"
6350 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
6351 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6352 - X"$as_dir" : 'X\(//\)[^/]' \| \
6353 - X"$as_dir" : 'X\(//\)$' \| \
6354 - X"$as_dir" : 'X\(/\)' \| \
6355 - . : '\(.\)' 2>/dev/null ||
6357 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6358 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6359 - /^X\(\/\/\)$/{ s//\1/; q; }
6360 - /^X\(\/\).*/{ s//\1/; q; }
6363 - test ! -n "$as_dirs" || mkdir $as_dirs
6364 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
6365 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
6366 - { (exit 1); exit 1; }; }; }
6370 -if test "$ac_dir" != .; then
6371 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
6372 - # A "../" for each directory in $ac_dir_suffix.
6373 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
6375 - ac_dir_suffix= ac_top_builddir=
6379 - .) # No --srcdir option. We are building in place.
6381 - if test -z "$ac_top_builddir"; then
6384 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
6386 - [\\/]* | ?:[\\/]* ) # Absolute path.
6387 - ac_srcdir=$srcdir$ac_dir_suffix;
6388 - ac_top_srcdir=$srcdir ;;
6389 - *) # Relative path.
6390 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
6391 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
6393 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
6395 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
6396 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
6397 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
6398 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
6402 - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
6403 - *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
6406 - if test x"$ac_file" != x-; then
6407 - { echo "$as_me:$LINENO: creating $ac_file" >&5
6408 -echo "$as_me: creating $ac_file" >&6;}
6411 - # Let's still pretend it is `configure' which instantiates (i.e., don't
6412 - # use $as_me), people would be surprised to read:
6413 - # /* config.h. Generated by config.status. */
6414 - if test x"$ac_file" = x-; then
6417 - configure_input="$ac_file. "
6419 - configure_input=$configure_input"Generated from `echo $ac_file_in |
6420 - sed 's,.*/,,'` by configure."
6422 - # First look for the input files in the build tree, otherwise in the
6424 - ac_file_inputs=`IFS=:
6425 - for f in $ac_file_in; do
6427 - -) echo $tmp/stdin ;;
6429 - # Absolute (can't be DOS-style, as IFS=:)
6430 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
6431 -echo "$as_me: error: cannot find input file: $f" >&2;}
6432 - { (exit 1); exit 1; }; }
6435 - if test -f "$f"; then
6438 - elif test -f "$srcdir/$f"; then
6443 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
6444 -echo "$as_me: error: cannot find input file: $f" >&2;}
6445 - { (exit 1); exit 1; }; }
6448 - done` || { (exit 1); exit 1; }
6450 -cat >>$CONFIG_STATUS <<_ACEOF
6454 -cat >>$CONFIG_STATUS <<\_ACEOF
6456 -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
6457 -s,@configure_input@,$configure_input,;t t
6458 -s,@srcdir@,$ac_srcdir,;t t
6459 -s,@abs_srcdir@,$ac_abs_srcdir,;t t
6460 -s,@top_srcdir@,$ac_top_srcdir,;t t
6461 -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
6462 -s,@builddir@,$ac_builddir,;t t
6463 -s,@abs_builddir@,$ac_abs_builddir,;t t
6464 -s,@top_builddir@,$ac_top_builddir,;t t
6465 -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
6466 -s,@INSTALL@,$ac_INSTALL,;t t
6467 -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
6469 - if test x"$ac_file" != x-; then
6470 - mv $tmp/out $ac_file
6478 -cat >>$CONFIG_STATUS <<\_ACEOF
6481 -# CONFIG_COMMANDS section.
6483 -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
6484 - ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
6485 - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
6486 - ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
6487 -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6488 - X"$ac_dest" : 'X\(//\)[^/]' \| \
6489 - X"$ac_dest" : 'X\(//\)$' \| \
6490 - X"$ac_dest" : 'X\(/\)' \| \
6491 - . : '\(.\)' 2>/dev/null ||
6493 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6494 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6495 - /^X\(\/\/\)$/{ s//\1/; q; }
6496 - /^X\(\/\).*/{ s//\1/; q; }
6500 -if test "$ac_dir" != .; then
6501 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
6502 - # A "../" for each directory in $ac_dir_suffix.
6503 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
6505 - ac_dir_suffix= ac_top_builddir=
6509 - .) # No --srcdir option. We are building in place.
6511 - if test -z "$ac_top_builddir"; then
6514 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
6516 - [\\/]* | ?:[\\/]* ) # Absolute path.
6517 - ac_srcdir=$srcdir$ac_dir_suffix;
6518 - ac_top_srcdir=$srcdir ;;
6519 - *) # Relative path.
6520 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
6521 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
6523 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
6525 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
6526 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
6527 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
6528 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
6531 - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
6532 -echo "$as_me: executing $ac_dest commands" >&6;}
6535 -echo "$DEFS" > boehm-cflags
6537 -if test -n "$CONFIG_FILES"; then
6538 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
6539 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
6545 -cat >>$CONFIG_STATUS <<\_ACEOF
6547 -{ (exit 0); exit 0; }
6549 -chmod +x $CONFIG_STATUS
6550 -ac_clean_files=$ac_clean_files_save
6553 -# configure is writing to config.log, and then calls config.status.
6554 -# config.status does its own redirection, appending to config.log.
6555 -# Unfortunately, on DOS this fails, as config.log is still kept open
6556 -# by configure, so config.status won't be able to write to it; its
6557 -# output is simply discarded. So we exec the FD to /dev/null,
6558 -# effectively closing config.log, so it can be properly (re)opened and
6559 -# appended to by config.status. When coming back to configure, we
6560 -# need to make the FD available again.
6561 -if test "$no_create" != yes; then
6563 - ac_config_status_args=
6564 - test "$silent" = yes &&
6565 - ac_config_status_args="$ac_config_status_args --quiet"
6567 - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
6568 - exec 5>>config.log
6569 - # Use ||, not &&, to avoid exiting from the if with $? = 1, which
6570 - # would make configure fail if this is the last instruction.
6571 - $ac_cs_success || { (exit 1); exit 1; }
6574 diff -Nur ../boehm-gc/autom4te.cache/output.1 boehm-gc/autom4te.cache/output.1
6575 --- ../boehm-gc/autom4te.cache/output.1 Sat May 31 15:09:31 2003
6576 +++ boehm-gc/autom4te.cache/output.1 Wed Dec 31 16:00:00 1969
6579 -@%:@ Guess values for system-dependent variables and create Makefiles.
6580 -@%:@ Generated by GNU Autoconf 2.54.
6582 -@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
6583 -@%:@ Free Software Foundation, Inc.
6584 -@%:@ This configure script is free software; the Free Software Foundation
6585 -@%:@ gives unlimited permission to copy, distribute and modify it.
6586 -## --------------------- ##
6587 -## M4sh Initialization. ##
6588 -## --------------------- ##
6590 -# Be Bourne compatible
6591 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
6594 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
6595 - # is contrary to our usage. Disable this feature.
6596 - alias -g '${1+"$@"}'='"$@"'
6597 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
6601 -# Support unset when possible.
6602 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
6609 -# Work around bugs in pre-3.0 UWIN ksh.
6610 -$as_unset ENV MAIL MAILPATH
6616 -for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME
6618 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
6619 - eval $as_var=C; export $as_var
6625 -# Required to use basename.
6626 -if expr a : '\(a\)' >/dev/null 2>&1; then
6632 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
6633 - as_basename=basename
6639 -# Name of the executable.
6640 -as_me=`$as_basename "$0" ||
6641 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
6642 - X"$0" : 'X\(//\)$' \| \
6643 - X"$0" : 'X\(/\)$' \| \
6644 - . : '\(.\)' 2>/dev/null ||
6646 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
6647 - /^X\/\(\/\/\)$/{ s//\1/; q; }
6648 - /^X\/\(\/\).*/{ s//\1/; q; }
6652 -# PATH needs CR, and LINENO needs CR and PATH.
6653 -# Avoid depending upon Character Ranges.
6654 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
6655 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
6656 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
6657 -as_cr_digits='0123456789'
6658 -as_cr_alnum=$as_cr_Letters$as_cr_digits
6660 -# The user is always right.
6661 -if test "${PATH_SEPARATOR+set}" != set; then
6662 - echo "#! /bin/sh" >conftest.sh
6663 - echo "exit 0" >>conftest.sh
6664 - chmod +x conftest.sh
6665 - if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then
6666 - PATH_SEPARATOR=';'
6674 - as_lineno_1=$LINENO
6675 - as_lineno_2=$LINENO
6676 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6677 - test "x$as_lineno_1" != "x$as_lineno_2" &&
6678 - test "x$as_lineno_3" = "x$as_lineno_2" || {
6679 - # Find who we are. Look in the path if we contain no path at all
6680 - # relative or not.
6682 - *[\\/]* ) as_myself=$0 ;;
6683 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6684 -for as_dir in $PATH
6687 - test -z "$as_dir" && as_dir=.
6688 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
6693 - # We did not find ourselves, most probably we were run as `sh COMMAND'
6694 - # in which case we are not to be found in the path.
6695 - if test "x$as_myself" = x; then
6698 - if test ! -f "$as_myself"; then
6699 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
6700 - { (exit 1); exit 1; }; }
6702 - case $CONFIG_SHELL in
6704 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6705 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
6708 - test -z "$as_dir" && as_dir=.
6709 - for as_base in sh bash ksh sh5; do
6712 - if ("$as_dir/$as_base" -c '
6713 - as_lineno_1=$LINENO
6714 - as_lineno_2=$LINENO
6715 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6716 - test "x$as_lineno_1" != "x$as_lineno_2" &&
6717 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
6718 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
6719 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
6720 - CONFIG_SHELL=$as_dir/$as_base
6721 - export CONFIG_SHELL
6722 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
6730 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
6731 - # uniformly replaced by the line number. The first 'sed' inserts a
6732 - # line-number line before each line; the second 'sed' does the real
6733 - # work. The second script uses 'N' to pair each line-number line
6734 - # with the numbered line, and appends trailing '-' during
6735 - # substitution so that $LINENO is not a special case at line end.
6736 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
6737 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
6738 - sed '=' <$as_myself |
6743 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
6746 - s,^['$as_cr_digits']*\n,,
6747 - ' >$as_me.lineno &&
6748 - chmod +x $as_me.lineno ||
6749 - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
6750 - { (exit 1); exit 1; }; }
6752 - # Don't try to exec as it changes $[0], causing all sort of problems
6753 - # (the dirname of $[0] is not the place where we might find the
6754 - # original and so on. Autoconf is especially sensible to this).
6756 - # Exit status is that of the last command.
6761 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
6762 - *c*,-n*) ECHO_N= ECHO_C='
6764 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
6765 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
6768 -if expr a : '\(a\)' >/dev/null 2>&1; then
6774 -rm -f conf$$ conf$$.exe conf$$.file
6776 -if ln -s conf$$.file conf$$ 2>/dev/null; then
6777 - # We could just check for DJGPP; but this test a) works b) is more generic
6778 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
6779 - if test -f conf$$.exe; then
6780 - # Don't use ln at all; we don't have any links
6785 -elif ln conf$$.file conf$$ 2>/dev/null; then
6790 -rm -f conf$$ conf$$.exe conf$$.file
6792 -if mkdir -p . 2>/dev/null; then
6798 -as_executable_p="test -f"
6800 -# Sed expression to map a string onto a valid CPP name.
6801 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
6803 -# Sed expression to map a string onto a valid variable name.
6804 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
6808 -# We need space, tab and new line, in precisely that order.
6817 -# Find the correct PATH separator. Usually this is `:', but
6818 -# DJGPP uses `;' like DOS.
6819 -if test "X${PATH_SEPARATOR+set}" != Xset; then
6820 - UNAME=${UNAME-`uname 2>/dev/null`}
6822 - *-DOS) lt_cv_sys_path_separator=';' ;;
6823 - *) lt_cv_sys_path_separator=':' ;;
6825 - PATH_SEPARATOR=$lt_cv_sys_path_separator
6829 -# Check that we are running under the correct shell.
6830 -SHELL=${CONFIG_SHELL-/bin/sh}
6834 - # Remove one level of quotation (which was required for Make).
6835 - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
6840 -if test "X$1" = X--no-reexec; then
6841 - # Discard the --no-reexec flag, and continue.
6843 -elif test "X$1" = X--fallback-echo; then
6844 - # Avoid inline document here, it may be left over
6846 -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
6847 - # Yippee, $echo works!
6850 - # Restart under the correct shell.
6851 - exec $SHELL "$0" --no-reexec ${1+"$@"}
6854 -if test "X$1" = X--fallback-echo; then
6855 - # used as fallback echo
6863 -# The HP-UX ksh and POSIX shell print the target directory to stdout
6864 -# if CDPATH is set.
6865 -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
6867 -if test -z "$ECHO"; then
6868 -if test "X${echo_test_string+set}" != Xset; then
6869 -# find a string as large as possible, as long as the shell can cope with it
6870 - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
6871 - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
6872 - if (echo_test_string="`eval $cmd`") 2>/dev/null &&
6873 - echo_test_string="`eval $cmd`" &&
6874 - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
6881 -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
6882 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
6883 - test "X$echo_testing_string" = "X$echo_test_string"; then
6886 - # The Solaris, AIX, and Digital Unix default echo programs unquote
6887 - # backslashes. This makes it impossible to quote backslashes using
6888 - # echo "$something" | sed 's/\\/\\\\/g'
6890 - # So, first we look for a working echo in the user's PATH.
6892 - IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
6893 - for dir in $PATH /usr/ucb; do
6894 - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
6895 - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
6896 - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
6897 - test "X$echo_testing_string" = "X$echo_test_string"; then
6904 - if test "X$echo" = Xecho; then
6905 - # We didn't find a better echo, so look for alternatives.
6906 - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
6907 - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
6908 - test "X$echo_testing_string" = "X$echo_test_string"; then
6909 - # This shell has a builtin print -r that does the trick.
6911 - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
6912 - test "X$CONFIG_SHELL" != X/bin/ksh; then
6913 - # If we have ksh, try running configure again with it.
6914 - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
6915 - export ORIGINAL_CONFIG_SHELL
6916 - CONFIG_SHELL=/bin/ksh
6917 - export CONFIG_SHELL
6918 - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
6920 - # Try using printf.
6921 - echo='printf %s\n'
6922 - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
6923 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
6924 - test "X$echo_testing_string" = "X$echo_test_string"; then
6925 - # Cool, printf works
6927 - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
6928 - test "X$echo_testing_string" = 'X\t' &&
6929 - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
6930 - test "X$echo_testing_string" = "X$echo_test_string"; then
6931 - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
6932 - export CONFIG_SHELL
6933 - SHELL="$CONFIG_SHELL"
6935 - echo="$CONFIG_SHELL $0 --fallback-echo"
6936 - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
6937 - test "X$echo_testing_string" = 'X\t' &&
6938 - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
6939 - test "X$echo_testing_string" = "X$echo_test_string"; then
6940 - echo="$CONFIG_SHELL $0 --fallback-echo"
6942 - # maybe with a smaller string...
6945 - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
6946 - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
6953 - if test "$prev" != 'sed 50q "$0"'; then
6954 - echo_test_string=`eval $prev`
6955 - export echo_test_string
6956 - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
6958 - # Oops. We lost completely, so just stick with echo.
6967 -# Copy echo and quote the copy suitably for passing to libtool from
6968 -# the Makefile, instead of quoting the original, which is used later.
6970 -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
6971 - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
6976 -# Name of the host.
6977 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
6978 -# so uname gets run too.
6979 -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
6986 -ac_default_prefix=/usr/local
6987 -ac_config_libobj_dir=.
6992 -SHELL=${CONFIG_SHELL-/bin/sh}
6994 -# Maximum number of lines to put in a shell here document.
6995 -# This variable seems obsolete. It should probably be removed, and
6996 -# only ac_max_sed_lines should be used.
6997 -: ${ac_max_here_lines=38}
6999 -# Identity of this package.
7006 -ac_unique_file="gcj_mlc.c"
7007 -# Factoring default headers for most tests.
7008 -ac_includes_default="\
7010 -#if HAVE_SYS_TYPES_H
7011 -# include <sys/types.h>
7013 -#if HAVE_SYS_STAT_H
7014 -# include <sys/stat.h>
7017 -# include <stdlib.h>
7018 -# include <stddef.h>
7021 -# include <stdlib.h>
7025 -# if !STDC_HEADERS && HAVE_MEMORY_H
7026 -# include <memory.h>
7028 -# include <string.h>
7031 -# include <strings.h>
7033 -#if HAVE_INTTYPES_H
7034 -# include <inttypes.h>
7037 -# include <stdint.h>
7041 -# include <unistd.h>
7044 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS gc_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os mkinstalldirs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GC_CFLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE LN_S ECHO CPP EGREP LIBTOOL THREADLIBS POWERPC_DARWIN_TRUE POWERPC_DARWIN_FALSE EXTRA_TEST_LIBS target_all CXX INCLUDES CXXINCLUDES addobjs MY_CFLAGS USE_LIBDIR_TRUE USE_LIBDIR_FALSE LIB@&t@OBJS LTLIBOBJS'
7047 -# Initialize some variables set by options.
7049 -ac_init_version=false
7050 -# The variables have the same names as the options, with
7051 -# dashes changed to underlines.
7052 -cache_file=/dev/null
7057 -program_prefix=NONE
7058 -program_suffix=NONE
7059 -program_transform_name=s,x,x,
7067 -# Installation directory options.
7068 -# These are left unexpanded so users can "make install exec_prefix=/foo"
7069 -# and all the variables that are supposed to be based on exec_prefix
7070 -# by default will actually change.
7071 -# Use braces instead of parens because sh, perl, etc. also accept them.
7072 -bindir='${exec_prefix}/bin'
7073 -sbindir='${exec_prefix}/sbin'
7074 -libexecdir='${exec_prefix}/libexec'
7075 -datadir='${prefix}/share'
7076 -sysconfdir='${prefix}/etc'
7077 -sharedstatedir='${prefix}/com'
7078 -localstatedir='${prefix}/var'
7079 -libdir='${exec_prefix}/lib'
7080 -includedir='${prefix}/include'
7081 -oldincludedir='/usr/include'
7082 -infodir='${prefix}/info'
7083 -mandir='${prefix}/man'
7088 - # If the previous option needs an argument, assign it.
7089 - if test -n "$ac_prev"; then
7090 - eval "$ac_prev=\$ac_option"
7095 - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
7097 - # Accept the important Cygnus configure options, so we can diagnose typos.
7099 - case $ac_option in
7101 - -bindir | --bindir | --bindi | --bind | --bin | --bi)
7103 - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
7104 - bindir=$ac_optarg ;;
7106 - -build | --build | --buil | --bui | --bu)
7107 - ac_prev=build_alias ;;
7108 - -build=* | --build=* | --buil=* | --bui=* | --bu=*)
7109 - build_alias=$ac_optarg ;;
7111 - -cache-file | --cache-file | --cache-fil | --cache-fi \
7112 - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
7113 - ac_prev=cache_file ;;
7114 - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
7115 - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
7116 - cache_file=$ac_optarg ;;
7118 - --config-cache | -C)
7119 - cache_file=config.cache ;;
7121 - -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
7122 - ac_prev=datadir ;;
7123 - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
7125 - datadir=$ac_optarg ;;
7127 - -disable-* | --disable-*)
7128 - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
7129 - # Reject names that are not valid shell variable names.
7130 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7131 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
7132 - { (exit 1); exit 1; }; }
7133 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
7134 - eval "enable_$ac_feature=no" ;;
7136 - -enable-* | --enable-*)
7137 - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
7138 - # Reject names that are not valid shell variable names.
7139 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7140 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
7141 - { (exit 1); exit 1; }; }
7142 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
7143 - case $ac_option in
7144 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
7145 - *) ac_optarg=yes ;;
7147 - eval "enable_$ac_feature='$ac_optarg'" ;;
7149 - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
7150 - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
7151 - | --exec | --exe | --ex)
7152 - ac_prev=exec_prefix ;;
7153 - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
7154 - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
7155 - | --exec=* | --exe=* | --ex=*)
7156 - exec_prefix=$ac_optarg ;;
7158 - -gas | --gas | --ga | --g)
7159 - # Obsolete; use --with-gas.
7162 - -help | --help | --hel | --he | -h)
7163 - ac_init_help=long ;;
7164 - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
7165 - ac_init_help=recursive ;;
7166 - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
7167 - ac_init_help=short ;;
7169 - -host | --host | --hos | --ho)
7170 - ac_prev=host_alias ;;
7171 - -host=* | --host=* | --hos=* | --ho=*)
7172 - host_alias=$ac_optarg ;;
7174 - -includedir | --includedir | --includedi | --included | --include \
7175 - | --includ | --inclu | --incl | --inc)
7176 - ac_prev=includedir ;;
7177 - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
7178 - | --includ=* | --inclu=* | --incl=* | --inc=*)
7179 - includedir=$ac_optarg ;;
7181 - -infodir | --infodir | --infodi | --infod | --info | --inf)
7182 - ac_prev=infodir ;;
7183 - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
7184 - infodir=$ac_optarg ;;
7186 - -libdir | --libdir | --libdi | --libd)
7188 - -libdir=* | --libdir=* | --libdi=* | --libd=*)
7189 - libdir=$ac_optarg ;;
7191 - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
7192 - | --libexe | --libex | --libe)
7193 - ac_prev=libexecdir ;;
7194 - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
7195 - | --libexe=* | --libex=* | --libe=*)
7196 - libexecdir=$ac_optarg ;;
7198 - -localstatedir | --localstatedir | --localstatedi | --localstated \
7199 - | --localstate | --localstat | --localsta | --localst \
7200 - | --locals | --local | --loca | --loc | --lo)
7201 - ac_prev=localstatedir ;;
7202 - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
7203 - | --localstate=* | --localstat=* | --localsta=* | --localst=* \
7204 - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
7205 - localstatedir=$ac_optarg ;;
7207 - -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
7209 - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
7210 - mandir=$ac_optarg ;;
7212 - -nfp | --nfp | --nf)
7213 - # Obsolete; use --without-fp.
7216 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
7217 - | --no-cr | --no-c | -n)
7220 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
7221 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
7222 - no_recursion=yes ;;
7224 - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
7225 - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
7226 - | --oldin | --oldi | --old | --ol | --o)
7227 - ac_prev=oldincludedir ;;
7228 - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
7229 - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
7230 - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
7231 - oldincludedir=$ac_optarg ;;
7233 - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
7235 - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
7236 - prefix=$ac_optarg ;;
7238 - -program-prefix | --program-prefix | --program-prefi | --program-pref \
7239 - | --program-pre | --program-pr | --program-p)
7240 - ac_prev=program_prefix ;;
7241 - -program-prefix=* | --program-prefix=* | --program-prefi=* \
7242 - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
7243 - program_prefix=$ac_optarg ;;
7245 - -program-suffix | --program-suffix | --program-suffi | --program-suff \
7246 - | --program-suf | --program-su | --program-s)
7247 - ac_prev=program_suffix ;;
7248 - -program-suffix=* | --program-suffix=* | --program-suffi=* \
7249 - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
7250 - program_suffix=$ac_optarg ;;
7252 - -program-transform-name | --program-transform-name \
7253 - | --program-transform-nam | --program-transform-na \
7254 - | --program-transform-n | --program-transform- \
7255 - | --program-transform | --program-transfor \
7256 - | --program-transfo | --program-transf \
7257 - | --program-trans | --program-tran \
7258 - | --progr-tra | --program-tr | --program-t)
7259 - ac_prev=program_transform_name ;;
7260 - -program-transform-name=* | --program-transform-name=* \
7261 - | --program-transform-nam=* | --program-transform-na=* \
7262 - | --program-transform-n=* | --program-transform-=* \
7263 - | --program-transform=* | --program-transfor=* \
7264 - | --program-transfo=* | --program-transf=* \
7265 - | --program-trans=* | --program-tran=* \
7266 - | --progr-tra=* | --program-tr=* | --program-t=*)
7267 - program_transform_name=$ac_optarg ;;
7269 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
7270 - | -silent | --silent | --silen | --sile | --sil)
7273 - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
7274 - ac_prev=sbindir ;;
7275 - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
7276 - | --sbi=* | --sb=*)
7277 - sbindir=$ac_optarg ;;
7279 - -sharedstatedir | --sharedstatedir | --sharedstatedi \
7280 - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
7281 - | --sharedst | --shareds | --shared | --share | --shar \
7283 - ac_prev=sharedstatedir ;;
7284 - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
7285 - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
7286 - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
7287 - | --sha=* | --sh=*)
7288 - sharedstatedir=$ac_optarg ;;
7290 - -site | --site | --sit)
7292 - -site=* | --site=* | --sit=*)
7293 - site=$ac_optarg ;;
7295 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
7297 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
7298 - srcdir=$ac_optarg ;;
7300 - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
7301 - | --syscon | --sysco | --sysc | --sys | --sy)
7302 - ac_prev=sysconfdir ;;
7303 - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
7304 - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
7305 - sysconfdir=$ac_optarg ;;
7307 - -target | --target | --targe | --targ | --tar | --ta | --t)
7308 - ac_prev=target_alias ;;
7309 - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
7310 - target_alias=$ac_optarg ;;
7312 - -v | -verbose | --verbose | --verbos | --verbo | --verb)
7315 - -version | --version | --versio | --versi | --vers | -V)
7316 - ac_init_version=: ;;
7318 - -with-* | --with-*)
7319 - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
7320 - # Reject names that are not valid shell variable names.
7321 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7322 - { echo "$as_me: error: invalid package name: $ac_package" >&2
7323 - { (exit 1); exit 1; }; }
7324 - ac_package=`echo $ac_package| sed 's/-/_/g'`
7325 - case $ac_option in
7326 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
7327 - *) ac_optarg=yes ;;
7329 - eval "with_$ac_package='$ac_optarg'" ;;
7331 - -without-* | --without-*)
7332 - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
7333 - # Reject names that are not valid shell variable names.
7334 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7335 - { echo "$as_me: error: invalid package name: $ac_package" >&2
7336 - { (exit 1); exit 1; }; }
7337 - ac_package=`echo $ac_package | sed 's/-/_/g'`
7338 - eval "with_$ac_package=no" ;;
7341 - # Obsolete; use --with-x.
7344 - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
7345 - | --x-incl | --x-inc | --x-in | --x-i)
7346 - ac_prev=x_includes ;;
7347 - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
7348 - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
7349 - x_includes=$ac_optarg ;;
7351 - -x-libraries | --x-libraries | --x-librarie | --x-librari \
7352 - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
7353 - ac_prev=x_libraries ;;
7354 - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
7355 - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
7356 - x_libraries=$ac_optarg ;;
7358 - -*) { echo "$as_me: error: unrecognized option: $ac_option
7359 -Try \`$0 --help' for more information." >&2
7360 - { (exit 1); exit 1; }; }
7364 - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
7365 - # Reject names that are not valid shell variable names.
7366 - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
7367 - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
7368 - { (exit 1); exit 1; }; }
7369 - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
7370 - eval "$ac_envvar='$ac_optarg'"
7371 - export $ac_envvar ;;
7374 - # FIXME: should be removed in autoconf 3.0.
7375 - echo "$as_me: WARNING: you should use --build, --host, --target" >&2
7376 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
7377 - echo "$as_me: WARNING: invalid host type: $ac_option" >&2
7378 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
7384 -if test -n "$ac_prev"; then
7385 - ac_option=--`echo $ac_prev | sed 's/_/-/g'`
7386 - { echo "$as_me: error: missing argument to $ac_option" >&2
7387 - { (exit 1); exit 1; }; }
7390 -# Be sure to have absolute paths.
7391 -for ac_var in exec_prefix prefix
7393 - eval ac_val=$`echo $ac_var`
7395 - [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
7396 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
7397 - { (exit 1); exit 1; }; };;
7401 -# Be sure to have absolute paths.
7402 -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
7403 - localstatedir libdir includedir oldincludedir infodir mandir
7405 - eval ac_val=$`echo $ac_var`
7407 - [\\/$]* | ?:[\\/]* ) ;;
7408 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
7409 - { (exit 1); exit 1; }; };;
7413 -# There might be people who depend on the old broken behavior: `$host'
7414 -# used to hold the argument of --host etc.
7415 -# FIXME: To remove some day.
7418 -target=$target_alias
7420 -# FIXME: To remove some day.
7421 -if test "x$host_alias" != x; then
7422 - if test "x$build_alias" = x; then
7423 - cross_compiling=maybe
7424 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
7425 - If a cross compiler is detected then cross compile mode will be used." >&2
7426 - elif test "x$build_alias" != "x$host_alias"; then
7427 - cross_compiling=yes
7432 -test -n "$host_alias" && ac_tool_prefix=$host_alias-
7434 -test "$silent" = yes && exec 6>/dev/null
7437 -# Find the source files, if location was not specified.
7438 -if test -z "$srcdir"; then
7439 - ac_srcdir_defaulted=yes
7440 - # Try the directory containing this script, then its parent.
7441 - ac_confdir=`(dirname "$0") 2>/dev/null ||
7442 -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
7443 - X"$0" : 'X\(//\)[^/]' \| \
7444 - X"$0" : 'X\(//\)$' \| \
7445 - X"$0" : 'X\(/\)' \| \
7446 - . : '\(.\)' 2>/dev/null ||
7448 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
7449 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
7450 - /^X\(\/\/\)$/{ s//\1/; q; }
7451 - /^X\(\/\).*/{ s//\1/; q; }
7453 - srcdir=$ac_confdir
7454 - if test ! -r $srcdir/$ac_unique_file; then
7458 - ac_srcdir_defaulted=no
7460 -if test ! -r $srcdir/$ac_unique_file; then
7461 - if test "$ac_srcdir_defaulted" = yes; then
7462 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
7463 - { (exit 1); exit 1; }; }
7465 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
7466 - { (exit 1); exit 1; }; }
7469 -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
7470 - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
7471 - { (exit 1); exit 1; }; }
7472 -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
7473 -ac_env_build_alias_set=${build_alias+set}
7474 -ac_env_build_alias_value=$build_alias
7475 -ac_cv_env_build_alias_set=${build_alias+set}
7476 -ac_cv_env_build_alias_value=$build_alias
7477 -ac_env_host_alias_set=${host_alias+set}
7478 -ac_env_host_alias_value=$host_alias
7479 -ac_cv_env_host_alias_set=${host_alias+set}
7480 -ac_cv_env_host_alias_value=$host_alias
7481 -ac_env_target_alias_set=${target_alias+set}
7482 -ac_env_target_alias_value=$target_alias
7483 -ac_cv_env_target_alias_set=${target_alias+set}
7484 -ac_cv_env_target_alias_value=$target_alias
7485 -ac_env_CC_set=${CC+set}
7486 -ac_env_CC_value=$CC
7487 -ac_cv_env_CC_set=${CC+set}
7488 -ac_cv_env_CC_value=$CC
7489 -ac_env_CFLAGS_set=${CFLAGS+set}
7490 -ac_env_CFLAGS_value=$CFLAGS
7491 -ac_cv_env_CFLAGS_set=${CFLAGS+set}
7492 -ac_cv_env_CFLAGS_value=$CFLAGS
7493 -ac_env_LDFLAGS_set=${LDFLAGS+set}
7494 -ac_env_LDFLAGS_value=$LDFLAGS
7495 -ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
7496 -ac_cv_env_LDFLAGS_value=$LDFLAGS
7497 -ac_env_CPPFLAGS_set=${CPPFLAGS+set}
7498 -ac_env_CPPFLAGS_value=$CPPFLAGS
7499 -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
7500 -ac_cv_env_CPPFLAGS_value=$CPPFLAGS
7501 -ac_env_CPP_set=${CPP+set}
7502 -ac_env_CPP_value=$CPP
7503 -ac_cv_env_CPP_set=${CPP+set}
7504 -ac_cv_env_CPP_value=$CPP
7507 -# Report the --help message.
7509 -if test "$ac_init_help" = "long"; then
7510 - # Omit some internal or obsolete options to make the list less imposing.
7511 - # This message is too long to be a string in the A/UX 3.1 sh.
7513 -\`configure' configures this package to adapt to many kinds of systems.
7515 -Usage: $0 [OPTION]... [VAR=VALUE]...
7517 -To assign environment variables (e.g., CC, CFLAGS...), specify them as
7518 -VAR=VALUE. See below for descriptions of some of the useful variables.
7520 -Defaults for the options are specified in brackets.
7523 - -h, --help display this help and exit
7524 - --help=short display options specific to this package
7525 - --help=recursive display the short help of all the included packages
7526 - -V, --version display version information and exit
7527 - -q, --quiet, --silent do not print \`checking...' messages
7528 - --cache-file=FILE cache test results in FILE [disabled]
7529 - -C, --config-cache alias for \`--cache-file=config.cache'
7530 - -n, --no-create do not create output files
7531 - --srcdir=DIR find the sources in DIR [configure dir or \`..']
7536 -Installation directories:
7537 - --prefix=PREFIX install architecture-independent files in PREFIX
7538 - [$ac_default_prefix]
7539 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
7542 -By default, \`make install' will install all the files in
7543 -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
7544 -an installation prefix other than \`$ac_default_prefix' using \`--prefix',
7545 -for instance \`--prefix=\$HOME'.
7547 -For better control, use the options below.
7549 -Fine tuning of the installation directories:
7550 - --bindir=DIR user executables [EPREFIX/bin]
7551 - --sbindir=DIR system admin executables [EPREFIX/sbin]
7552 - --libexecdir=DIR program executables [EPREFIX/libexec]
7553 - --datadir=DIR read-only architecture-independent data [PREFIX/share]
7554 - --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
7555 - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
7556 - --localstatedir=DIR modifiable single-machine data [PREFIX/var]
7557 - --libdir=DIR object code libraries [EPREFIX/lib]
7558 - --includedir=DIR C header files [PREFIX/include]
7559 - --oldincludedir=DIR C header files for non-gcc [/usr/include]
7560 - --infodir=DIR info documentation [PREFIX/info]
7561 - --mandir=DIR man documentation [PREFIX/man]
7567 - --program-prefix=PREFIX prepend PREFIX to installed program names
7568 - --program-suffix=SUFFIX append SUFFIX to installed program names
7569 - --program-transform-name=PROGRAM run sed PROGRAM on installed program names
7572 - --build=BUILD configure for building on BUILD [guessed]
7573 - --host=HOST cross-compile to build programs to run on HOST [BUILD]
7574 - --target=TARGET configure for building compilers for TARGET [HOST]
7578 -if test -n "$ac_init_help"; then
7583 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
7584 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
7585 - --enable-multilib build many library versions (default)
7586 - --enable-maintainer-mode enable make rules and dependencies not useful
7587 - (and sometimes confusing) to the casual installer
7588 - --enable-shared=PKGS build shared libraries default=yes
7589 - --enable-static=PKGS build static libraries default=yes
7590 - --enable-fast-install=PKGS optimize for fast installation default=yes
7591 - --disable-dependency-tracking Speeds up one-time builds
7592 - --enable-dependency-tracking Do not reject slow dependency extractors
7593 - --disable-libtool-lock avoid locking (might break parallel builds)
7594 - --enable-parallel-mark parallelize marking and free list construction
7595 - --enable-shared=PKGS build shared libraries default=no
7596 - --enable-full-debug include full support for pointer backtracing etc.
7599 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
7600 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
7601 - --with-gnu-ld assume the C compiler uses GNU ld default=no
7602 - --with-pic try to use only PIC/non-PIC objects default=use both
7603 - --with-target-subdir=SUBDIR
7604 - configuring with a cross compiler
7605 - --with-cross-host=HOST configuring with a cross compiler
7606 - --with-ecos enable runtime eCos target support
7608 -Some influential environment variables:
7609 - CC C compiler command
7610 - CFLAGS C compiler flags
7611 - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
7612 - nonstandard directory <lib dir>
7613 - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
7614 - headers in a nonstandard directory <include dir>
7615 - CPP C preprocessor
7617 -Use these variables to override the choices made by `configure' or to help
7618 -it to find libraries and programs with nonstandard names/locations.
7623 -if test "$ac_init_help" = "recursive"; then
7624 - # If there are subdirs, report their specific --help.
7626 - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
7627 - test -d $ac_dir || continue
7630 -if test "$ac_dir" != .; then
7631 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
7632 - # A "../" for each directory in $ac_dir_suffix.
7633 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
7635 - ac_dir_suffix= ac_top_builddir=
7639 - .) # No --srcdir option. We are building in place.
7641 - if test -z "$ac_top_builddir"; then
7644 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
7646 - [\\/]* | ?:[\\/]* ) # Absolute path.
7647 - ac_srcdir=$srcdir$ac_dir_suffix;
7648 - ac_top_srcdir=$srcdir ;;
7649 - *) # Relative path.
7650 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
7651 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
7653 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
7655 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
7656 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
7657 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
7658 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
7661 - # Check for guested configure; otherwise get Cygnus style configure.
7662 - if test -f $ac_srcdir/configure.gnu; then
7664 - $SHELL $ac_srcdir/configure.gnu --help=recursive
7665 - elif test -f $ac_srcdir/configure; then
7667 - $SHELL $ac_srcdir/configure --help=recursive
7668 - elif test -f $ac_srcdir/configure.ac ||
7669 - test -f $ac_srcdir/configure.in; then
7671 - $ac_configure --help
7673 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
7679 -test -n "$ac_init_help" && exit 0
7680 -if $ac_init_version; then
7683 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
7684 -Free Software Foundation, Inc.
7685 -This configure script is free software; the Free Software Foundation
7686 -gives unlimited permission to copy, distribute and modify it.
7692 -This file contains any messages produced by compilers while
7693 -running configure, to aid debugging if configure makes a mistake.
7695 -It was created by $as_me, which was
7696 -generated by GNU Autoconf 2.54. Invocation command line was
7703 -@%:@@%:@ --------- @%:@@%:@
7704 -@%:@@%:@ Platform. @%:@@%:@
7705 -@%:@@%:@ --------- @%:@@%:@
7707 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
7708 -uname -m = `(uname -m) 2>/dev/null || echo unknown`
7709 -uname -r = `(uname -r) 2>/dev/null || echo unknown`
7710 -uname -s = `(uname -s) 2>/dev/null || echo unknown`
7711 -uname -v = `(uname -v) 2>/dev/null || echo unknown`
7713 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
7714 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
7716 -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
7717 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
7718 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
7719 -hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
7720 -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
7721 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
7722 -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
7726 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7727 -for as_dir in $PATH
7730 - test -z "$as_dir" && as_dir=.
7731 - echo "PATH: $as_dir"
7739 -@%:@@%:@ ----------- @%:@@%:@
7740 -@%:@@%:@ Core tests. @%:@@%:@
7741 -@%:@@%:@ ----------- @%:@@%:@
7746 -# Keep a trace of the command line.
7747 -# Strip out --no-create and --no-recursion so they do not pile up.
7748 -# Also quote any args containing shell meta-characters.
7754 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
7755 - | --no-cr | --no-c | -n ) continue ;;
7756 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
7757 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
7759 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
7760 - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
7762 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
7763 - # Get rid of the leading space.
7767 -# When interrupted or exit'd, cleanup temporary files, and complete
7768 -# config.log. We remove comments because anyway the quotes in there
7769 -# would cause problems or look ugly.
7770 -# WARNING: Be sure not to use single quotes in there, as some shells,
7771 -# such as our DU 5.0 friend, will then `close' the trap.
7772 -trap 'exit_status=$?
7773 - # Save into config.log some information that might help in debugging.
7778 -@%:@@%:@ ---------------- @%:@@%:@
7779 -@%:@@%:@ Cache variables. @%:@@%:@
7780 -@%:@@%:@ ---------------- @%:@@%:@
7783 - # The following way of writing the cache mishandles newlines in values,
7786 - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
7789 - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
7790 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
7794 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
7801 -@%:@@%:@ ----------------- @%:@@%:@
7802 -@%:@@%:@ Output variables. @%:@@%:@
7803 -@%:@@%:@ ----------------- @%:@@%:@
7806 - for ac_var in $ac_subst_vars
7808 - eval ac_val=$`echo $ac_var`
7809 - echo "$ac_var='"'"'$ac_val'"'"'"
7813 - if test -n "$ac_subst_files"; then
7815 -@%:@@%:@ ------------- @%:@@%:@
7816 -@%:@@%:@ Output files. @%:@@%:@
7817 -@%:@@%:@ ------------- @%:@@%:@
7820 - for ac_var in $ac_subst_files
7822 - eval ac_val=$`echo $ac_var`
7823 - echo "$ac_var='"'"'$ac_val'"'"'"
7828 - if test -s confdefs.h; then
7830 -@%:@@%:@ ----------- @%:@@%:@
7831 -@%:@@%:@ confdefs.h. @%:@@%:@
7832 -@%:@@%:@ ----------- @%:@@%:@
7835 - sed "/^$/d" confdefs.h | sort
7838 - test "$ac_signal" != 0 &&
7839 - echo "$as_me: caught signal $ac_signal"
7840 - echo "$as_me: exit $exit_status"
7842 - rm -f core core.* *.core &&
7843 - rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
7846 -for ac_signal in 1 2 13 15; do
7847 - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
7851 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
7852 -rm -rf conftest* confdefs.h
7853 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
7856 -# Predefined preprocessor variables.
7858 -cat >>confdefs.h <<_ACEOF
7859 -@%:@define PACKAGE_NAME "$PACKAGE_NAME"
7863 -cat >>confdefs.h <<_ACEOF
7864 -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
7868 -cat >>confdefs.h <<_ACEOF
7869 -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
7873 -cat >>confdefs.h <<_ACEOF
7874 -@%:@define PACKAGE_STRING "$PACKAGE_STRING"
7878 -cat >>confdefs.h <<_ACEOF
7879 -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
7883 -# Let the site file select an alternate cache file if it wants to.
7884 -# Prefer explicitly selected file to automatically selected ones.
7885 -if test -z "$CONFIG_SITE"; then
7886 - if test "x$prefix" != xNONE; then
7887 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
7889 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
7892 -for ac_site_file in $CONFIG_SITE; do
7893 - if test -r "$ac_site_file"; then
7894 - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
7895 -echo "$as_me: loading site script $ac_site_file" >&6;}
7896 - sed 's/^/| /' "$ac_site_file" >&5
7901 -if test -r "$cache_file"; then
7902 - # Some versions of bash will fail to source /dev/null (special
7903 - # files actually), so we avoid doing that.
7904 - if test -f "$cache_file"; then
7905 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
7906 -echo "$as_me: loading cache $cache_file" >&6;}
7907 - case $cache_file in
7908 - [\\/]* | ?:[\\/]* ) . $cache_file;;
7909 - *) . ./$cache_file;;
7913 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
7914 -echo "$as_me: creating cache $cache_file" >&6;}
7918 -# Check that the precious variables saved in the cache have kept the same
7920 -ac_cache_corrupted=false
7921 -for ac_var in `(set) 2>&1 |
7922 - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
7923 - eval ac_old_set=\$ac_cv_env_${ac_var}_set
7924 - eval ac_new_set=\$ac_env_${ac_var}_set
7925 - eval ac_old_val="\$ac_cv_env_${ac_var}_value"
7926 - eval ac_new_val="\$ac_env_${ac_var}_value"
7927 - case $ac_old_set,$ac_new_set in
7929 - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
7930 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
7931 - ac_cache_corrupted=: ;;
7933 - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
7934 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
7935 - ac_cache_corrupted=: ;;
7938 - if test "x$ac_old_val" != "x$ac_new_val"; then
7939 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
7940 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
7941 - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
7942 -echo "$as_me: former value: $ac_old_val" >&2;}
7943 - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
7944 -echo "$as_me: current value: $ac_new_val" >&2;}
7945 - ac_cache_corrupted=:
7948 - # Pass precious variables to config.status.
7949 - if test "$ac_new_set" = set; then
7950 - case $ac_new_val in
7951 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
7952 - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
7953 - *) ac_arg=$ac_var=$ac_new_val ;;
7955 - case " $ac_configure_args " in
7956 - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
7957 - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
7961 -if $ac_cache_corrupted; then
7962 - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
7963 -echo "$as_me: error: changes in the environment can compromise the build" >&2;}
7964 - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
7965 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
7966 - { (exit 1); exit 1; }; }
7970 -ac_cpp='$CPP $CPPFLAGS'
7971 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7972 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
7973 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
7994 -# This works around the fact that libtool configuration may change LD
7995 -# for this particular configuration, but some shells, instead of
7996 -# keeping the changes in LD private, export them just because LD is
7998 -ORIGINAL_LD_FOR_MULTILIBS=$LD
8001 -for ac_dir in . $srcdir/.; do
8002 - if test -f $ac_dir/install-sh; then
8003 - ac_aux_dir=$ac_dir
8004 - ac_install_sh="$ac_aux_dir/install-sh -c"
8006 - elif test -f $ac_dir/install.sh; then
8007 - ac_aux_dir=$ac_dir
8008 - ac_install_sh="$ac_aux_dir/install.sh -c"
8010 - elif test -f $ac_dir/shtool; then
8011 - ac_aux_dir=$ac_dir
8012 - ac_install_sh="$ac_aux_dir/shtool install -c"
8016 -if test -z "$ac_aux_dir"; then
8017 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . $srcdir/." >&5
8018 -echo "$as_me: error: cannot find install-sh or install.sh in . $srcdir/." >&2;}
8019 - { (exit 1); exit 1; }; }
8021 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
8022 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
8023 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
8026 -# Make sure we can run config.sub.
8027 -$ac_config_sub sun4 >/dev/null 2>&1 ||
8028 - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
8029 -echo "$as_me: error: cannot run $ac_config_sub" >&2;}
8030 - { (exit 1); exit 1; }; }
8032 -echo "$as_me:$LINENO: checking build system type" >&5
8033 -echo $ECHO_N "checking build system type... $ECHO_C" >&6
8034 -if test "${ac_cv_build+set}" = set; then
8035 - echo $ECHO_N "(cached) $ECHO_C" >&6
8037 - ac_cv_build_alias=$build_alias
8038 -test -z "$ac_cv_build_alias" &&
8039 - ac_cv_build_alias=`$ac_config_guess`
8040 -test -z "$ac_cv_build_alias" &&
8041 - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
8042 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
8043 - { (exit 1); exit 1; }; }
8044 -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
8045 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
8046 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
8047 - { (exit 1); exit 1; }; }
8050 -echo "$as_me:$LINENO: result: $ac_cv_build" >&5
8051 -echo "${ECHO_T}$ac_cv_build" >&6
8053 -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
8054 -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
8055 -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
8058 -echo "$as_me:$LINENO: checking host system type" >&5
8059 -echo $ECHO_N "checking host system type... $ECHO_C" >&6
8060 -if test "${ac_cv_host+set}" = set; then
8061 - echo $ECHO_N "(cached) $ECHO_C" >&6
8063 - ac_cv_host_alias=$host_alias
8064 -test -z "$ac_cv_host_alias" &&
8065 - ac_cv_host_alias=$ac_cv_build_alias
8066 -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
8067 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
8068 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
8069 - { (exit 1); exit 1; }; }
8072 -echo "$as_me:$LINENO: result: $ac_cv_host" >&5
8073 -echo "${ECHO_T}$ac_cv_host" >&6
8075 -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
8076 -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
8077 -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
8080 -am__api_version="1.6"
8081 -# Find a good install program. We prefer a C program (faster),
8082 -# so one script is as good as another. But avoid the broken or
8083 -# incompatible versions:
8084 -# SysV /etc/install, /usr/sbin/install
8085 -# SunOS /usr/etc/install
8086 -# IRIX /sbin/install
8088 -# AmigaOS /C/install, which installs bootblocks on floppy discs
8089 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
8090 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
8091 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
8092 -# ./install, which can be erroneously created by make from ./install.sh.
8093 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
8094 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
8095 -if test -z "$INSTALL"; then
8096 -if test "${ac_cv_path_install+set}" = set; then
8097 - echo $ECHO_N "(cached) $ECHO_C" >&6
8099 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8100 -for as_dir in $PATH
8103 - test -z "$as_dir" && as_dir=.
8104 - # Account for people who put trailing slashes in PATH elements.
8106 - ./ | .// | /cC/* | \
8107 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
8110 - # OSF1 and SCO ODT 3.0 have their own names for install.
8111 - # Don't use installbsd from OSF since it installs stuff as root
8113 - for ac_prog in ginstall scoinst install; do
8114 - for ac_exec_ext in '' $ac_executable_extensions; do
8115 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
8116 - if test $ac_prog = install &&
8117 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8118 - # AIX install. It has an incompatible calling convention.
8120 - elif test $ac_prog = install &&
8121 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8122 - # program-specific install script used by HP pwplus--don't use.
8125 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
8137 - if test "${ac_cv_path_install+set}" = set; then
8138 - INSTALL=$ac_cv_path_install
8140 - # As a last resort, use the slow shell script. We don't cache a
8141 - # path for INSTALL within a source directory, because that will
8142 - # break other packages using the cache if that directory is
8143 - # removed, or if the path is relative.
8144 - INSTALL=$ac_install_sh
8147 -echo "$as_me:$LINENO: result: $INSTALL" >&5
8148 -echo "${ECHO_T}$INSTALL" >&6
8150 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
8151 -# It thinks the first close brace ends the variable substitution.
8152 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
8154 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
8156 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
8158 -echo "$as_me:$LINENO: checking whether build environment is sane" >&5
8159 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
8162 -echo timestamp > conftest.file
8163 -# Do `set' in a subshell so we don't clobber the current shell's
8164 -# arguments. Must try -L first in case configure is actually a
8165 -# symlink; some systems play weird games with the mod time of symlinks
8166 -# (eg FreeBSD returns the mod time of the symlink's containing
8169 - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
8170 - if test "$*" = "X"; then
8172 - set X `ls -t $srcdir/configure conftest.file`
8174 - rm -f conftest.file
8175 - if test "$*" != "X $srcdir/configure conftest.file" \
8176 - && test "$*" != "X conftest.file $srcdir/configure"; then
8178 - # If neither matched, then we have a broken ls. This can happen
8179 - # if, for instance, CONFIG_SHELL is bash and it inherits a
8180 - # broken ls alias from the environment. This has actually
8181 - # happened. Such a system could not be considered "sane".
8182 - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
8183 -alias in your environment" >&5
8184 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
8185 -alias in your environment" >&2;}
8186 - { (exit 1); exit 1; }; }
8189 - test "$2" = conftest.file
8195 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
8196 -Check your system clock" >&5
8197 -echo "$as_me: error: newly created file is older than distributed files!
8198 -Check your system clock" >&2;}
8199 - { (exit 1); exit 1; }; }
8201 -echo "$as_me:$LINENO: result: yes" >&5
8202 -echo "${ECHO_T}yes" >&6
8203 -test "$program_prefix" != NONE &&
8204 - program_transform_name="s,^,$program_prefix,;$program_transform_name"
8205 -# Use a double $ so make ignores it.
8206 -test "$program_suffix" != NONE &&
8207 - program_transform_name="s,\$,$program_suffix,;$program_transform_name"
8208 -# Double any \ or $. echo might interpret backslashes.
8209 -# By default was `s,x,x', remove it if useless.
8210 -cat <<\_ACEOF >conftest.sed
8211 -s/[\\$]/&&/g;s/;s,x,x,$//
8213 -program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
8217 -# expand $ac_aux_dir to an absolute path
8218 -am_aux_dir=`cd $ac_aux_dir && pwd`
8220 -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
8221 -# Use eval to expand $SHELL
8222 -if eval "$MISSING --run true"; then
8223 - am_missing_run="$MISSING --run "
8226 - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
8227 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
8230 -for ac_prog in gawk mawk nawk awk
8232 - # Extract the first word of "$ac_prog", so it can be a program name with args.
8233 -set dummy $ac_prog; ac_word=$2
8234 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8235 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8236 -if test "${ac_cv_prog_AWK+set}" = set; then
8237 - echo $ECHO_N "(cached) $ECHO_C" >&6
8239 - if test -n "$AWK"; then
8240 - ac_cv_prog_AWK="$AWK" # Let the user override the test.
8242 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8243 -for as_dir in $PATH
8246 - test -z "$as_dir" && as_dir=.
8247 - for ac_exec_ext in '' $ac_executable_extensions; do
8248 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8249 - ac_cv_prog_AWK="$ac_prog"
8250 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8258 -AWK=$ac_cv_prog_AWK
8259 -if test -n "$AWK"; then
8260 - echo "$as_me:$LINENO: result: $AWK" >&5
8261 -echo "${ECHO_T}$AWK" >&6
8263 - echo "$as_me:$LINENO: result: no" >&5
8264 -echo "${ECHO_T}no" >&6
8267 - test -n "$AWK" && break
8270 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
8271 -echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
8272 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
8273 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
8274 - echo $ECHO_N "(cached) $ECHO_C" >&6
8276 - cat >conftest.make <<\_ACEOF
8278 - @echo 'ac_maketemp="${MAKE}"'
8280 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
8281 -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
8282 -if test -n "$ac_maketemp"; then
8283 - eval ac_cv_prog_make_${ac_make}_set=yes
8285 - eval ac_cv_prog_make_${ac_make}_set=no
8287 -rm -f conftest.make
8289 -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
8290 - echo "$as_me:$LINENO: result: yes" >&5
8291 -echo "${ECHO_T}yes" >&6
8294 - echo "$as_me:$LINENO: result: no" >&5
8295 -echo "${ECHO_T}no" >&6
8296 - SET_MAKE="MAKE=${MAKE-make}"
8300 -# Check whether --enable-multilib or --disable-multilib was given.
8301 -if test "${enable_multilib+set}" = set; then
8302 - enableval="$enable_multilib"
8303 - case "${enableval}" in
8304 - yes) multilib=yes ;;
8305 - no) multilib=no ;;
8306 - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
8307 -echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
8308 - { (exit 1); exit 1; }; } ;;
8314 -if test "${srcdir}" = "."; then
8315 - if test "${with_target_subdir}" != "." -a -n "${with_target_subdir}"; then
8316 - gc_basedir="${srcdir}/${with_multisrctop}../."
8318 - gc_basedir="${srcdir}/${with_multisrctop}."
8321 - gc_basedir="${srcdir}/."
8325 -for ac_dir in $gc_basedir/.. $srcdir/$gc_basedir/..; do
8326 - if test -f $ac_dir/install-sh; then
8327 - ac_aux_dir=$ac_dir
8328 - ac_install_sh="$ac_aux_dir/install-sh -c"
8330 - elif test -f $ac_dir/install.sh; then
8331 - ac_aux_dir=$ac_dir
8332 - ac_install_sh="$ac_aux_dir/install.sh -c"
8334 - elif test -f $ac_dir/shtool; then
8335 - ac_aux_dir=$ac_dir
8336 - ac_install_sh="$ac_aux_dir/shtool install -c"
8340 -if test -z "$ac_aux_dir"; then
8341 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&5
8342 -echo "$as_me: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&2;}
8343 - { (exit 1); exit 1; }; }
8345 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
8346 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
8347 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
8350 - # This overrides the previous occurrence for automake, but not for
8351 - # autoconf, which is exactly what we want.
8353 -for ac_dir in .. $srcdir/..; do
8354 - if test -f $ac_dir/install-sh; then
8355 - ac_aux_dir=$ac_dir
8356 - ac_install_sh="$ac_aux_dir/install-sh -c"
8358 - elif test -f $ac_dir/install.sh; then
8359 - ac_aux_dir=$ac_dir
8360 - ac_install_sh="$ac_aux_dir/install.sh -c"
8362 - elif test -f $ac_dir/shtool; then
8363 - ac_aux_dir=$ac_dir
8364 - ac_install_sh="$ac_aux_dir/shtool install -c"
8368 -if test -z "$ac_aux_dir"; then
8369 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in .. $srcdir/.." >&5
8370 -echo "$as_me: error: cannot find install-sh or install.sh in .. $srcdir/.." >&2;}
8371 - { (exit 1); exit 1; }; }
8373 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
8374 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
8375 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
8379 -echo "$as_me:$LINENO: checking target system type" >&5
8380 -echo $ECHO_N "checking target system type... $ECHO_C" >&6
8381 -if test "${ac_cv_target+set}" = set; then
8382 - echo $ECHO_N "(cached) $ECHO_C" >&6
8384 - ac_cv_target_alias=$target_alias
8385 -test "x$ac_cv_target_alias" = "x" &&
8386 - ac_cv_target_alias=$ac_cv_host_alias
8387 -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
8388 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
8389 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
8390 - { (exit 1); exit 1; }; }
8393 -echo "$as_me:$LINENO: result: $ac_cv_target" >&5
8394 -echo "${ECHO_T}$ac_cv_target" >&6
8395 -target=$ac_cv_target
8396 -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
8397 -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
8398 -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
8401 -# The aliases save the names the user supplied, while $host etc.
8402 -# will get canonicalized.
8403 -test -n "$target_alias" &&
8404 - test "$program_prefix$program_suffix$program_transform_name" = \
8406 - program_prefix=${target_alias}-
8408 -# This works around an automake problem.
8409 -mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
8412 - # test to see if srcdir already configured
8413 -if test "`cd $srcdir && pwd`" != "`pwd`" &&
8414 - test -f $srcdir/config.status; then
8415 - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
8416 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
8417 - { (exit 1); exit 1; }; }
8420 -# Define the identity of the package.
8425 -# Some tools Automake needs.
8427 -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
8430 -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
8433 -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
8436 -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
8439 -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
8442 -AMTAR=${AMTAR-"${am_missing_run}tar"}
8444 -install_sh=${install_sh-"$am_aux_dir/install-sh"}
8446 -# Installed binaries are usually stripped using `strip' when the user
8447 -# run `make install-strip'. However `strip' might not be the right
8448 -# tool to use in cross-compilation environments, therefore Automake
8449 -# will honor the `STRIP' environment variable to overrule this program.
8450 -if test "$cross_compiling" != no; then
8451 - if test -n "$ac_tool_prefix"; then
8452 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
8453 -set dummy ${ac_tool_prefix}strip; ac_word=$2
8454 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8455 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8456 -if test "${ac_cv_prog_STRIP+set}" = set; then
8457 - echo $ECHO_N "(cached) $ECHO_C" >&6
8459 - if test -n "$STRIP"; then
8460 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
8462 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8463 -for as_dir in $PATH
8466 - test -z "$as_dir" && as_dir=.
8467 - for ac_exec_ext in '' $ac_executable_extensions; do
8468 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8469 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
8470 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8478 -STRIP=$ac_cv_prog_STRIP
8479 -if test -n "$STRIP"; then
8480 - echo "$as_me:$LINENO: result: $STRIP" >&5
8481 -echo "${ECHO_T}$STRIP" >&6
8483 - echo "$as_me:$LINENO: result: no" >&5
8484 -echo "${ECHO_T}no" >&6
8488 -if test -z "$ac_cv_prog_STRIP"; then
8489 - ac_ct_STRIP=$STRIP
8490 - # Extract the first word of "strip", so it can be a program name with args.
8491 -set dummy strip; ac_word=$2
8492 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8493 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8494 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
8495 - echo $ECHO_N "(cached) $ECHO_C" >&6
8497 - if test -n "$ac_ct_STRIP"; then
8498 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
8500 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8501 -for as_dir in $PATH
8504 - test -z "$as_dir" && as_dir=.
8505 - for ac_exec_ext in '' $ac_executable_extensions; do
8506 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8507 - ac_cv_prog_ac_ct_STRIP="strip"
8508 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8514 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
8517 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
8518 -if test -n "$ac_ct_STRIP"; then
8519 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
8520 -echo "${ECHO_T}$ac_ct_STRIP" >&6
8522 - echo "$as_me:$LINENO: result: no" >&5
8523 -echo "${ECHO_T}no" >&6
8526 - STRIP=$ac_ct_STRIP
8528 - STRIP="$ac_cv_prog_STRIP"
8532 -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
8534 -# We need awk for the "check" target. The system "awk" is bad on
8540 -# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
8541 -# run it explicitly here, it will be run implicitly before
8542 -# NEWLIB_CONFIGURE, which doesn't work because that means that it will
8543 -# be run before AC_CANONICAL_HOST.
8546 -if test -n "$ac_tool_prefix"; then
8547 - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
8548 -set dummy ${ac_tool_prefix}as; ac_word=$2
8549 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8550 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8551 -if test "${ac_cv_prog_AS+set}" = set; then
8552 - echo $ECHO_N "(cached) $ECHO_C" >&6
8554 - if test -n "$AS"; then
8555 - ac_cv_prog_AS="$AS" # Let the user override the test.
8557 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8558 -for as_dir in $PATH
8561 - test -z "$as_dir" && as_dir=.
8562 - for ac_exec_ext in '' $ac_executable_extensions; do
8563 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8564 - ac_cv_prog_AS="${ac_tool_prefix}as"
8565 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8574 -if test -n "$AS"; then
8575 - echo "$as_me:$LINENO: result: $AS" >&5
8576 -echo "${ECHO_T}$AS" >&6
8578 - echo "$as_me:$LINENO: result: no" >&5
8579 -echo "${ECHO_T}no" >&6
8583 -if test -z "$ac_cv_prog_AS"; then
8585 - # Extract the first word of "as", so it can be a program name with args.
8586 -set dummy as; ac_word=$2
8587 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8588 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8589 -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
8590 - echo $ECHO_N "(cached) $ECHO_C" >&6
8592 - if test -n "$ac_ct_AS"; then
8593 - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
8595 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8596 -for as_dir in $PATH
8599 - test -z "$as_dir" && as_dir=.
8600 - for ac_exec_ext in '' $ac_executable_extensions; do
8601 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8602 - ac_cv_prog_ac_ct_AS="as"
8603 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8611 -ac_ct_AS=$ac_cv_prog_ac_ct_AS
8612 -if test -n "$ac_ct_AS"; then
8613 - echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
8614 -echo "${ECHO_T}$ac_ct_AS" >&6
8616 - echo "$as_me:$LINENO: result: no" >&5
8617 -echo "${ECHO_T}no" >&6
8622 - AS="$ac_cv_prog_AS"
8625 -if test -n "$ac_tool_prefix"; then
8626 - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
8627 -set dummy ${ac_tool_prefix}ar; ac_word=$2
8628 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8629 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8630 -if test "${ac_cv_prog_AR+set}" = set; then
8631 - echo $ECHO_N "(cached) $ECHO_C" >&6
8633 - if test -n "$AR"; then
8634 - ac_cv_prog_AR="$AR" # Let the user override the test.
8636 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8637 -for as_dir in $PATH
8640 - test -z "$as_dir" && as_dir=.
8641 - for ac_exec_ext in '' $ac_executable_extensions; do
8642 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8643 - ac_cv_prog_AR="${ac_tool_prefix}ar"
8644 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8653 -if test -n "$AR"; then
8654 - echo "$as_me:$LINENO: result: $AR" >&5
8655 -echo "${ECHO_T}$AR" >&6
8657 - echo "$as_me:$LINENO: result: no" >&5
8658 -echo "${ECHO_T}no" >&6
8662 -if test -z "$ac_cv_prog_AR"; then
8664 - # Extract the first word of "ar", so it can be a program name with args.
8665 -set dummy ar; ac_word=$2
8666 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8667 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8668 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
8669 - echo $ECHO_N "(cached) $ECHO_C" >&6
8671 - if test -n "$ac_ct_AR"; then
8672 - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
8674 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8675 -for as_dir in $PATH
8678 - test -z "$as_dir" && as_dir=.
8679 - for ac_exec_ext in '' $ac_executable_extensions; do
8680 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8681 - ac_cv_prog_ac_ct_AR="ar"
8682 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8690 -ac_ct_AR=$ac_cv_prog_ac_ct_AR
8691 -if test -n "$ac_ct_AR"; then
8692 - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
8693 -echo "${ECHO_T}$ac_ct_AR" >&6
8695 - echo "$as_me:$LINENO: result: no" >&5
8696 -echo "${ECHO_T}no" >&6
8701 - AR="$ac_cv_prog_AR"
8704 -if test -n "$ac_tool_prefix"; then
8705 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
8706 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
8707 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8708 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8709 -if test "${ac_cv_prog_RANLIB+set}" = set; then
8710 - echo $ECHO_N "(cached) $ECHO_C" >&6
8712 - if test -n "$RANLIB"; then
8713 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
8715 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8716 -for as_dir in $PATH
8719 - test -z "$as_dir" && as_dir=.
8720 - for ac_exec_ext in '' $ac_executable_extensions; do
8721 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8722 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
8723 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8731 -RANLIB=$ac_cv_prog_RANLIB
8732 -if test -n "$RANLIB"; then
8733 - echo "$as_me:$LINENO: result: $RANLIB" >&5
8734 -echo "${ECHO_T}$RANLIB" >&6
8736 - echo "$as_me:$LINENO: result: no" >&5
8737 -echo "${ECHO_T}no" >&6
8741 -if test -z "$ac_cv_prog_RANLIB"; then
8742 - ac_ct_RANLIB=$RANLIB
8743 - # Extract the first word of "ranlib", so it can be a program name with args.
8744 -set dummy ranlib; ac_word=$2
8745 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8746 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8747 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
8748 - echo $ECHO_N "(cached) $ECHO_C" >&6
8750 - if test -n "$ac_ct_RANLIB"; then
8751 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
8753 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8754 -for as_dir in $PATH
8757 - test -z "$as_dir" && as_dir=.
8758 - for ac_exec_ext in '' $ac_executable_extensions; do
8759 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8760 - ac_cv_prog_ac_ct_RANLIB="ranlib"
8761 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8767 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
8770 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
8771 -if test -n "$ac_ct_RANLIB"; then
8772 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
8773 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
8775 - echo "$as_me:$LINENO: result: no" >&5
8776 -echo "${ECHO_T}no" >&6
8779 - RANLIB=$ac_ct_RANLIB
8781 - RANLIB="$ac_cv_prog_RANLIB"
8785 -# Find a good install program. We prefer a C program (faster),
8786 -# so one script is as good as another. But avoid the broken or
8787 -# incompatible versions:
8788 -# SysV /etc/install, /usr/sbin/install
8789 -# SunOS /usr/etc/install
8790 -# IRIX /sbin/install
8792 -# AmigaOS /C/install, which installs bootblocks on floppy discs
8793 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
8794 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
8795 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
8796 -# ./install, which can be erroneously created by make from ./install.sh.
8797 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
8798 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
8799 -if test -z "$INSTALL"; then
8800 -if test "${ac_cv_path_install+set}" = set; then
8801 - echo $ECHO_N "(cached) $ECHO_C" >&6
8803 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8804 -for as_dir in $PATH
8807 - test -z "$as_dir" && as_dir=.
8808 - # Account for people who put trailing slashes in PATH elements.
8810 - ./ | .// | /cC/* | \
8811 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
8814 - # OSF1 and SCO ODT 3.0 have their own names for install.
8815 - # Don't use installbsd from OSF since it installs stuff as root
8817 - for ac_prog in ginstall scoinst install; do
8818 - for ac_exec_ext in '' $ac_executable_extensions; do
8819 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
8820 - if test $ac_prog = install &&
8821 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8822 - # AIX install. It has an incompatible calling convention.
8824 - elif test $ac_prog = install &&
8825 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8826 - # program-specific install script used by HP pwplus--don't use.
8829 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
8841 - if test "${ac_cv_path_install+set}" = set; then
8842 - INSTALL=$ac_cv_path_install
8844 - # As a last resort, use the slow shell script. We don't cache a
8845 - # path for INSTALL within a source directory, because that will
8846 - # break other packages using the cache if that directory is
8847 - # removed, or if the path is relative.
8848 - INSTALL=$ac_install_sh
8851 -echo "$as_me:$LINENO: result: $INSTALL" >&5
8852 -echo "${ECHO_T}$INSTALL" >&6
8854 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
8855 -# It thinks the first close brace ends the variable substitution.
8856 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
8858 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
8860 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
8863 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
8864 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
8865 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
8866 -if test "${enable_maintainer_mode+set}" = set; then
8867 - enableval="$enable_maintainer_mode"
8868 - USE_MAINTAINER_MODE=$enableval
8870 - USE_MAINTAINER_MODE=no
8872 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
8873 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
8876 -if test $USE_MAINTAINER_MODE = yes; then
8877 - MAINTAINER_MODE_TRUE=
8878 - MAINTAINER_MODE_FALSE='#'
8880 - MAINTAINER_MODE_TRUE='#'
8881 - MAINTAINER_MODE_FALSE=
8884 - MAINT=$MAINTAINER_MODE_TRUE
8888 -# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
8889 -# at least currently, we never actually build a program, so we never
8890 -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
8891 -# fails, because we are probably configuring with a cross compiler
8892 -# which can't create executables. So we include AC_EXEEXT to keep
8893 -# automake happy, but we don't execute it, since we don't care about
8896 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
8897 - # to nothing, so nothing would remain between `then' and `fi' if it
8898 - # were not for the `:' below.
8903 -. ${srcdir}/configure.host
8905 -case ${gc_basedir} in
8906 -/* | A-Za-z:/\\*) gc_flagbasedir=${gc_basedir} ;;
8907 -*) gc_flagbasedir='$(top_builddir)/'${gc_basedir} ;;
8910 -gc_cflags="${gc_cflags} -I"'$(top_builddir)'"/./targ-include -I${gc_flagbasedir}/libc/include"
8913 - gc_cflags="${gc_cflags} -I${gc_flagbasedir}/../winsup/include"
8918 -GC_CFLAGS=${gc_cflags}
8922 -# Check whether --enable-shared or --disable-shared was given.
8923 -if test "${enable_shared+set}" = set; then
8924 - enableval="$enable_shared"
8925 - p=${PACKAGE-default}
8927 -yes) enable_shared=yes ;;
8928 -no) enable_shared=no ;;
8931 - # Look at the argument we got. We use all the common list separators.
8932 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8933 - for pkg in $enableval; do
8934 - if test "X$pkg" = "X$p"; then
8938 - IFS="$ac_save_ifs"
8944 -# Check whether --enable-static or --disable-static was given.
8945 -if test "${enable_static+set}" = set; then
8946 - enableval="$enable_static"
8947 - p=${PACKAGE-default}
8949 -yes) enable_static=yes ;;
8950 -no) enable_static=no ;;
8953 - # Look at the argument we got. We use all the common list separators.
8954 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8955 - for pkg in $enableval; do
8956 - if test "X$pkg" = "X$p"; then
8960 - IFS="$ac_save_ifs"
8966 -# Check whether --enable-fast-install or --disable-fast-install was given.
8967 -if test "${enable_fast_install+set}" = set; then
8968 - enableval="$enable_fast_install"
8969 - p=${PACKAGE-default}
8971 -yes) enable_fast_install=yes ;;
8972 -no) enable_fast_install=no ;;
8974 - enable_fast_install=no
8975 - # Look at the argument we got. We use all the common list separators.
8976 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8977 - for pkg in $enableval; do
8978 - if test "X$pkg" = "X$p"; then
8979 - enable_fast_install=yes
8982 - IFS="$ac_save_ifs"
8986 - enable_fast_install=yes
8988 -rm -f .deps 2>/dev/null
8989 -mkdir .deps 2>/dev/null
8990 -if test -d .deps; then
8993 - # MS-DOS does not allow filenames that begin with a dot.
8996 -rmdir .deps 2>/dev/null
8999 - ac_config_commands="$ac_config_commands depfiles"
9002 -am_make=${MAKE-make}
9003 -cat > confinc << 'END'
9007 -# If we don't find an include directive, just comment out the code.
9008 -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
9009 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
9013 -# First try GNU make style include.
9014 -echo "include confinc" > confmf
9015 -# We grep out `Entering directory' and `Leaving directory'
9016 -# messages which can occur if `w' ends up in MAKEFLAGS.
9017 -# In particular we don't look at `^make:' because GNU make might
9018 -# be invoked under some other name (usually "gmake"), in which
9019 -# case it prints its new name instead of `make'.
9020 -if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
9021 - am__include=include
9025 -# Now try BSD make style include.
9026 -if test "$am__include" = "#"; then
9027 - echo '.include "confinc"' > confmf
9028 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
9029 - am__include=.include
9036 -echo "$as_me:$LINENO: result: $_am_result" >&5
9037 -echo "${ECHO_T}$_am_result" >&6
9038 -rm -f confinc confmf
9040 -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
9041 -if test "${enable_dependency_tracking+set}" = set; then
9042 - enableval="$enable_dependency_tracking"
9045 -if test "x$enable_dependency_tracking" != xno; then
9046 - am_depcomp="$ac_aux_dir/depcomp"
9047 - AMDEPBACKSLASH='\'
9051 -if test "x$enable_dependency_tracking" != xno; then
9062 -ac_cpp='$CPP $CPPFLAGS'
9063 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
9064 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
9065 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
9066 -if test -n "$ac_tool_prefix"; then
9067 - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
9068 -set dummy ${ac_tool_prefix}gcc; ac_word=$2
9069 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9070 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9071 -if test "${ac_cv_prog_CC+set}" = set; then
9072 - echo $ECHO_N "(cached) $ECHO_C" >&6
9074 - if test -n "$CC"; then
9075 - ac_cv_prog_CC="$CC" # Let the user override the test.
9077 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9078 -for as_dir in $PATH
9081 - test -z "$as_dir" && as_dir=.
9082 - for ac_exec_ext in '' $ac_executable_extensions; do
9083 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9084 - ac_cv_prog_CC="${ac_tool_prefix}gcc"
9085 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9094 -if test -n "$CC"; then
9095 - echo "$as_me:$LINENO: result: $CC" >&5
9096 -echo "${ECHO_T}$CC" >&6
9098 - echo "$as_me:$LINENO: result: no" >&5
9099 -echo "${ECHO_T}no" >&6
9103 -if test -z "$ac_cv_prog_CC"; then
9105 - # Extract the first word of "gcc", so it can be a program name with args.
9106 -set dummy gcc; ac_word=$2
9107 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9108 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9109 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
9110 - echo $ECHO_N "(cached) $ECHO_C" >&6
9112 - if test -n "$ac_ct_CC"; then
9113 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
9115 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9116 -for as_dir in $PATH
9119 - test -z "$as_dir" && as_dir=.
9120 - for ac_exec_ext in '' $ac_executable_extensions; do
9121 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9122 - ac_cv_prog_ac_ct_CC="gcc"
9123 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9131 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
9132 -if test -n "$ac_ct_CC"; then
9133 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
9134 -echo "${ECHO_T}$ac_ct_CC" >&6
9136 - echo "$as_me:$LINENO: result: no" >&5
9137 -echo "${ECHO_T}no" >&6
9142 - CC="$ac_cv_prog_CC"
9145 -if test -z "$CC"; then
9146 - if test -n "$ac_tool_prefix"; then
9147 - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
9148 -set dummy ${ac_tool_prefix}cc; ac_word=$2
9149 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9150 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9151 -if test "${ac_cv_prog_CC+set}" = set; then
9152 - echo $ECHO_N "(cached) $ECHO_C" >&6
9154 - if test -n "$CC"; then
9155 - ac_cv_prog_CC="$CC" # Let the user override the test.
9157 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9158 -for as_dir in $PATH
9161 - test -z "$as_dir" && as_dir=.
9162 - for ac_exec_ext in '' $ac_executable_extensions; do
9163 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9164 - ac_cv_prog_CC="${ac_tool_prefix}cc"
9165 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9174 -if test -n "$CC"; then
9175 - echo "$as_me:$LINENO: result: $CC" >&5
9176 -echo "${ECHO_T}$CC" >&6
9178 - echo "$as_me:$LINENO: result: no" >&5
9179 -echo "${ECHO_T}no" >&6
9183 -if test -z "$ac_cv_prog_CC"; then
9185 - # Extract the first word of "cc", so it can be a program name with args.
9186 -set dummy cc; ac_word=$2
9187 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9188 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9189 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
9190 - echo $ECHO_N "(cached) $ECHO_C" >&6
9192 - if test -n "$ac_ct_CC"; then
9193 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
9195 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9196 -for as_dir in $PATH
9199 - test -z "$as_dir" && as_dir=.
9200 - for ac_exec_ext in '' $ac_executable_extensions; do
9201 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9202 - ac_cv_prog_ac_ct_CC="cc"
9203 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9211 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
9212 -if test -n "$ac_ct_CC"; then
9213 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
9214 -echo "${ECHO_T}$ac_ct_CC" >&6
9216 - echo "$as_me:$LINENO: result: no" >&5
9217 -echo "${ECHO_T}no" >&6
9222 - CC="$ac_cv_prog_CC"
9226 -if test -z "$CC"; then
9227 - # Extract the first word of "cc", so it can be a program name with args.
9228 -set dummy cc; ac_word=$2
9229 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9230 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9231 -if test "${ac_cv_prog_CC+set}" = set; then
9232 - echo $ECHO_N "(cached) $ECHO_C" >&6
9234 - if test -n "$CC"; then
9235 - ac_cv_prog_CC="$CC" # Let the user override the test.
9237 - ac_prog_rejected=no
9238 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9239 -for as_dir in $PATH
9242 - test -z "$as_dir" && as_dir=.
9243 - for ac_exec_ext in '' $ac_executable_extensions; do
9244 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9245 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
9246 - ac_prog_rejected=yes
9249 - ac_cv_prog_CC="cc"
9250 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9256 -if test $ac_prog_rejected = yes; then
9257 - # We found a bogon in the path, so make sure we never use it.
9258 - set dummy $ac_cv_prog_CC
9260 - if test $@%:@ != 0; then
9261 - # We chose a different compiler from the bogus one.
9262 - # However, it has the same basename, so the bogon will be chosen
9263 - # first if we set CC to just the basename; use the full file name.
9265 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
9271 -if test -n "$CC"; then
9272 - echo "$as_me:$LINENO: result: $CC" >&5
9273 -echo "${ECHO_T}$CC" >&6
9275 - echo "$as_me:$LINENO: result: no" >&5
9276 -echo "${ECHO_T}no" >&6
9280 -if test -z "$CC"; then
9281 - if test -n "$ac_tool_prefix"; then
9284 - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
9285 -set dummy $ac_tool_prefix$ac_prog; ac_word=$2
9286 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9287 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9288 -if test "${ac_cv_prog_CC+set}" = set; then
9289 - echo $ECHO_N "(cached) $ECHO_C" >&6
9291 - if test -n "$CC"; then
9292 - ac_cv_prog_CC="$CC" # Let the user override the test.
9294 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9295 -for as_dir in $PATH
9298 - test -z "$as_dir" && as_dir=.
9299 - for ac_exec_ext in '' $ac_executable_extensions; do
9300 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9301 - ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
9302 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9311 -if test -n "$CC"; then
9312 - echo "$as_me:$LINENO: result: $CC" >&5
9313 -echo "${ECHO_T}$CC" >&6
9315 - echo "$as_me:$LINENO: result: no" >&5
9316 -echo "${ECHO_T}no" >&6
9319 - test -n "$CC" && break
9322 -if test -z "$CC"; then
9326 - # Extract the first word of "$ac_prog", so it can be a program name with args.
9327 -set dummy $ac_prog; ac_word=$2
9328 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9329 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9330 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
9331 - echo $ECHO_N "(cached) $ECHO_C" >&6
9333 - if test -n "$ac_ct_CC"; then
9334 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
9336 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9337 -for as_dir in $PATH
9340 - test -z "$as_dir" && as_dir=.
9341 - for ac_exec_ext in '' $ac_executable_extensions; do
9342 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9343 - ac_cv_prog_ac_ct_CC="$ac_prog"
9344 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9352 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
9353 -if test -n "$ac_ct_CC"; then
9354 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
9355 -echo "${ECHO_T}$ac_ct_CC" >&6
9357 - echo "$as_me:$LINENO: result: no" >&5
9358 -echo "${ECHO_T}no" >&6
9361 - test -n "$ac_ct_CC" && break
9370 -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
9371 -echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
9372 - { (exit 1); exit 1; }; }
9374 -# Provide some information about the compiler.
9375 -echo "$as_me:$LINENO:" \
9376 - "checking for C compiler version" >&5
9377 -ac_compiler=`set X $ac_compile; echo $2`
9378 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
9379 - (eval $ac_compiler --version </dev/null >&5) 2>&5
9381 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9382 - (exit $ac_status); }
9383 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
9384 - (eval $ac_compiler -v </dev/null >&5) 2>&5
9386 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9387 - (exit $ac_status); }
9388 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
9389 - (eval $ac_compiler -V </dev/null >&5) 2>&5
9391 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9392 - (exit $ac_status); }
9394 -cat >conftest.$ac_ext <<_ACEOF
9395 -#line $LINENO "configure"
9396 -#include "confdefs.h"
9406 -ac_clean_files_save=$ac_clean_files
9407 -ac_clean_files="$ac_clean_files a.out a.exe"
9408 -# Try to create an executable without -o first, disregard a.out.
9409 -# It will help us diagnose broken compilers, and finding out an intuition
9411 -echo "$as_me:$LINENO: checking for C compiler default output" >&5
9412 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
9413 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
9414 -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
9415 - (eval $ac_link_default) 2>&5
9417 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9418 - (exit $ac_status); }; then
9419 - # Find the output, starting from the most likely. This scheme is
9420 -# not robust to junk in `.', hence go to wildcards (a.*) only as a last
9423 -# Be careful to initialize this variable, since it used to be cached.
9424 -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
9426 -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.*; do
9427 - test -f "$ac_file" || continue
9429 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
9430 - a.out ) # We found the default executable, but exeext='' is most
9431 - # certainly right.
9433 - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
9434 - # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
9435 - export ac_cv_exeext
9441 - echo "$as_me: failed program was:" >&5
9442 -cat conftest.$ac_ext >&5
9443 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
9444 -check \`config.log' for details." >&5
9445 -echo "$as_me: error: C compiler cannot create executables
9446 -check \`config.log' for details." >&2;}
9447 - { (exit 77); exit 77; }; }
9450 -ac_exeext=$ac_cv_exeext
9451 -echo "$as_me:$LINENO: result: $ac_file" >&5
9452 -echo "${ECHO_T}$ac_file" >&6
9454 -# Check the compiler produces executables we can run. If not, either
9455 -# the compiler is broken, or we cross compile.
9456 -echo "$as_me:$LINENO: checking whether the C compiler works" >&5
9457 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
9458 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
9459 -# If not cross compiling, check that we can run a simple program.
9460 -if test "$cross_compiling" != yes; then
9461 - if { ac_try='./$ac_file'
9462 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9463 - (eval $ac_try) 2>&5
9465 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9466 - (exit $ac_status); }; }; then
9467 - cross_compiling=no
9469 - if test "$cross_compiling" = maybe; then
9470 - cross_compiling=yes
9472 - { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
9473 -If you meant to cross compile, use \`--host'." >&5
9474 -echo "$as_me: error: cannot run C compiled programs.
9475 -If you meant to cross compile, use \`--host'." >&2;}
9476 - { (exit 1); exit 1; }; }
9480 -echo "$as_me:$LINENO: result: yes" >&5
9481 -echo "${ECHO_T}yes" >&6
9483 -rm -f a.out a.exe conftest$ac_cv_exeext
9484 -ac_clean_files=$ac_clean_files_save
9485 -# Check the compiler produces executables we can run. If not, either
9486 -# the compiler is broken, or we cross compile.
9487 -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
9488 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
9489 -echo "$as_me:$LINENO: result: $cross_compiling" >&5
9490 -echo "${ECHO_T}$cross_compiling" >&6
9492 -echo "$as_me:$LINENO: checking for suffix of executables" >&5
9493 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
9494 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9495 - (eval $ac_link) 2>&5
9497 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9498 - (exit $ac_status); }; then
9499 - # If both `conftest.exe' and `conftest' are `present' (well, observable)
9500 -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
9501 -# work properly (i.e., refer to `conftest.exe'), while it won't with
9503 -for ac_file in conftest.exe conftest conftest.*; do
9504 - test -f "$ac_file" || continue
9506 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
9507 - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
9508 - export ac_cv_exeext
9514 - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
9515 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
9516 - { (exit 1); exit 1; }; }
9519 -rm -f conftest$ac_cv_exeext
9520 -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
9521 -echo "${ECHO_T}$ac_cv_exeext" >&6
9523 -rm -f conftest.$ac_ext
9524 -EXEEXT=$ac_cv_exeext
9526 -echo "$as_me:$LINENO: checking for suffix of object files" >&5
9527 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
9528 -if test "${ac_cv_objext+set}" = set; then
9529 - echo $ECHO_N "(cached) $ECHO_C" >&6
9531 - cat >conftest.$ac_ext <<_ACEOF
9532 -#line $LINENO "configure"
9533 -#include "confdefs.h"
9543 -rm -f conftest.o conftest.obj
9544 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9545 - (eval $ac_compile) 2>&5
9547 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9548 - (exit $ac_status); }; then
9549 - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
9551 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
9552 - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
9557 - echo "$as_me: failed program was:" >&5
9558 -cat conftest.$ac_ext >&5
9559 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
9560 -echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
9561 - { (exit 1); exit 1; }; }
9564 -rm -f conftest.$ac_cv_objext conftest.$ac_ext
9566 -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
9567 -echo "${ECHO_T}$ac_cv_objext" >&6
9568 -OBJEXT=$ac_cv_objext
9570 -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
9571 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
9572 -if test "${ac_cv_c_compiler_gnu+set}" = set; then
9573 - echo $ECHO_N "(cached) $ECHO_C" >&6
9575 - cat >conftest.$ac_ext <<_ACEOF
9576 -#line $LINENO "configure"
9577 -#include "confdefs.h"
9590 -rm -f conftest.$ac_objext
9591 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9592 - (eval $ac_compile) 2>&5
9594 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9595 - (exit $ac_status); } &&
9596 - { ac_try='test -s conftest.$ac_objext'
9597 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9598 - (eval $ac_try) 2>&5
9600 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9601 - (exit $ac_status); }; }; then
9602 - ac_compiler_gnu=yes
9604 - echo "$as_me: failed program was:" >&5
9605 -cat conftest.$ac_ext >&5
9608 -rm -f conftest.$ac_objext conftest.$ac_ext
9609 -ac_cv_c_compiler_gnu=$ac_compiler_gnu
9612 -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
9613 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
9614 -GCC=`test $ac_compiler_gnu = yes && echo yes`
9615 -ac_test_CFLAGS=${CFLAGS+set}
9616 -ac_save_CFLAGS=$CFLAGS
9618 -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
9619 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
9620 -if test "${ac_cv_prog_cc_g+set}" = set; then
9621 - echo $ECHO_N "(cached) $ECHO_C" >&6
9623 - cat >conftest.$ac_ext <<_ACEOF
9624 -#line $LINENO "configure"
9625 -#include "confdefs.h"
9635 -rm -f conftest.$ac_objext
9636 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9637 - (eval $ac_compile) 2>&5
9639 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9640 - (exit $ac_status); } &&
9641 - { ac_try='test -s conftest.$ac_objext'
9642 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9643 - (eval $ac_try) 2>&5
9645 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9646 - (exit $ac_status); }; }; then
9647 - ac_cv_prog_cc_g=yes
9649 - echo "$as_me: failed program was:" >&5
9650 -cat conftest.$ac_ext >&5
9653 -rm -f conftest.$ac_objext conftest.$ac_ext
9655 -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
9656 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
9657 -if test "$ac_test_CFLAGS" = set; then
9658 - CFLAGS=$ac_save_CFLAGS
9659 -elif test $ac_cv_prog_cc_g = yes; then
9660 - if test "$GCC" = yes; then
9666 - if test "$GCC" = yes; then
9672 -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
9673 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
9674 -if test "${ac_cv_prog_cc_stdc+set}" = set; then
9675 - echo $ECHO_N "(cached) $ECHO_C" >&6
9677 - ac_cv_prog_cc_stdc=no
9679 -cat >conftest.$ac_ext <<_ACEOF
9680 -#line $LINENO "configure"
9681 -#include "confdefs.h"
9682 -#include <stdarg.h>
9684 -#include <sys/types.h>
9685 -#include <sys/stat.h>
9686 -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
9687 -struct buf { int x; };
9688 -FILE * (*rcsopen) (struct buf *, struct stat *, int);
9689 -static char *e (p, i)
9695 -static char *f (char * (*g) (char **, int), char **p, ...)
9700 - s = g (p, va_arg (v,int));
9704 -int test (int i, double x);
9705 -struct s1 {int (*f) (int a);};
9706 -struct s2 {int (*f) (double a);};
9707 -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
9713 -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
9718 -# Don't try gcc -ansi; that turns off useful extensions and
9719 -# breaks some systems' header files.
9720 -# AIX -qlanglvl=ansi
9721 -# Ultrix and OSF/1 -std1
9722 -# HP-UX 10.20 and later -Ae
9723 -# HP-UX older versions -Aa -D_HPUX_SOURCE
9724 -# SVR4 -Xc -D__EXTENSIONS__
9725 -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
9727 - CC="$ac_save_CC $ac_arg"
9728 - rm -f conftest.$ac_objext
9729 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9730 - (eval $ac_compile) 2>&5
9732 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9733 - (exit $ac_status); } &&
9734 - { ac_try='test -s conftest.$ac_objext'
9735 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9736 - (eval $ac_try) 2>&5
9738 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9739 - (exit $ac_status); }; }; then
9740 - ac_cv_prog_cc_stdc=$ac_arg
9743 - echo "$as_me: failed program was:" >&5
9744 -cat conftest.$ac_ext >&5
9746 -rm -f conftest.$ac_objext
9748 -rm -f conftest.$ac_ext conftest.$ac_objext
9753 -case "x$ac_cv_prog_cc_stdc" in
9755 - echo "$as_me:$LINENO: result: none needed" >&5
9756 -echo "${ECHO_T}none needed" >&6 ;;
9758 - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
9759 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
9760 - CC="$CC $ac_cv_prog_cc_stdc" ;;
9763 -# Some people use a C++ compiler to compile C. Since we use `exit',
9764 -# in C++ we need to declare it. In case someone uses the same compiler
9765 -# for both compiling C and C++ we need to have the C++ compiler decide
9766 -# the declaration of exit, since it's the most demanding environment.
9767 -cat >conftest.$ac_ext <<_ACEOF
9768 -@%:@ifndef __cplusplus
9772 -rm -f conftest.$ac_objext
9773 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9774 - (eval $ac_compile) 2>&5
9776 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9777 - (exit $ac_status); } &&
9778 - { ac_try='test -s conftest.$ac_objext'
9779 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9780 - (eval $ac_try) 2>&5
9782 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9783 - (exit $ac_status); }; }; then
9784 - for ac_declaration in \
9786 - '#include <stdlib.h>' \
9787 - 'extern "C" void std::exit (int) throw (); using std::exit;' \
9788 - 'extern "C" void std::exit (int); using std::exit;' \
9789 - 'extern "C" void exit (int) throw ();' \
9790 - 'extern "C" void exit (int);' \
9791 - 'void exit (int);'
9793 - cat >conftest.$ac_ext <<_ACEOF
9794 -#line $LINENO "configure"
9795 -#include "confdefs.h"
9796 -@%:@include <stdlib.h>
9806 -rm -f conftest.$ac_objext
9807 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9808 - (eval $ac_compile) 2>&5
9810 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9811 - (exit $ac_status); } &&
9812 - { ac_try='test -s conftest.$ac_objext'
9813 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9814 - (eval $ac_try) 2>&5
9816 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9817 - (exit $ac_status); }; }; then
9820 - echo "$as_me: failed program was:" >&5
9821 -cat conftest.$ac_ext >&5
9824 -rm -f conftest.$ac_objext conftest.$ac_ext
9825 - cat >conftest.$ac_ext <<_ACEOF
9826 -#line $LINENO "configure"
9827 -#include "confdefs.h"
9837 -rm -f conftest.$ac_objext
9838 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9839 - (eval $ac_compile) 2>&5
9841 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9842 - (exit $ac_status); } &&
9843 - { ac_try='test -s conftest.$ac_objext'
9844 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9845 - (eval $ac_try) 2>&5
9847 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9848 - (exit $ac_status); }; }; then
9851 - echo "$as_me: failed program was:" >&5
9852 -cat conftest.$ac_ext >&5
9854 -rm -f conftest.$ac_objext conftest.$ac_ext
9857 -if test -n "$ac_declaration"; then
9858 - echo '#ifdef __cplusplus' >>confdefs.h
9859 - echo $ac_declaration >>confdefs.h
9860 - echo '#endif' >>confdefs.h
9864 - echo "$as_me: failed program was:" >&5
9865 -cat conftest.$ac_ext >&5
9867 -rm -f conftest.$ac_objext conftest.$ac_ext
9869 -ac_cpp='$CPP $CPPFLAGS'
9870 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
9871 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
9872 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
9874 -depcc="$CC" am_compiler_list=
9876 -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
9877 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
9878 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
9879 - echo $ECHO_N "(cached) $ECHO_C" >&6
9881 - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
9882 - # We make a subdir and do the tests there. Otherwise we can end up
9883 - # making bogus files that we don't know about and never remove. For
9884 - # instance it was reported that on HP-UX the gcc test will end up
9885 - # making a dummy file named `D' -- because `-MD' means `put the output
9887 - mkdir conftest.dir
9888 - # Copy depcomp to subdir because otherwise we won't find it if we're
9889 - # using a relative directory.
9890 - cp "$am_depcomp" conftest.dir
9893 - am_cv_CC_dependencies_compiler_type=none
9894 - if test "$am_compiler_list" = ""; then
9895 - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
9897 - for depmode in $am_compiler_list; do
9898 - # We need to recreate these files for each test, as the compiler may
9899 - # overwrite some of them when testing with obscure command lines.
9900 - # This happens at least with the AIX C compiler.
9901 - echo '#include "conftest.h"' > conftest.c
9902 - echo 'int i;' > conftest.h
9903 - echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
9907 - # after this tag, mechanisms are not by side-effect, so they'll
9908 - # only be used when explicitly requested
9909 - if test "x$enable_dependency_tracking" = xyes; then
9917 - # We check with `-c' and `-o' for the sake of the "dashmstdout"
9918 - # mode. It turns out that the SunPro C++ compiler does not properly
9919 - # handle `-M -o', and we need to detect this.
9920 - if depmode=$depmode \
9921 - source=conftest.c object=conftest.o \
9922 - depfile=conftest.Po tmpdepfile=conftest.TPo \
9923 - $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
9924 - grep conftest.h conftest.Po > /dev/null 2>&1 &&
9925 - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
9926 - am_cv_CC_dependencies_compiler_type=$depmode
9932 - rm -rf conftest.dir
9934 - am_cv_CC_dependencies_compiler_type=none
9938 -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
9939 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
9940 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
9943 -# Find the correct PATH separator. Usually this is `:', but
9944 -# DJGPP uses `;' like DOS.
9945 -if test "X${PATH_SEPARATOR+set}" != Xset; then
9946 - UNAME=${UNAME-`uname 2>/dev/null`}
9948 - *-DOS) lt_cv_sys_path_separator=';' ;;
9949 - *) lt_cv_sys_path_separator=':' ;;
9951 - PATH_SEPARATOR=$lt_cv_sys_path_separator
9955 -# Check whether --with-gnu-ld or --without-gnu-ld was given.
9956 -if test "${with_gnu_ld+set}" = set; then
9957 - withval="$with_gnu_ld"
9958 - test "$withval" = no || with_gnu_ld=yes
9963 -if test "$GCC" = yes; then
9964 - # Check if gcc -print-prog-name=ld gives a path.
9965 - echo "$as_me:$LINENO: checking for ld used by GCC" >&5
9966 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
9969 - # gcc leaves a trailing carriage return which upsets mingw
9970 - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
9972 - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
9975 - # Accept absolute paths.
9976 - [\\/]* | [A-Za-z]:[\\/]*)
9977 - re_direlt='/[^/][^/]*/\.\./'
9978 - # Canonicalize the path of ld
9979 - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
9980 - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
9981 - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
9983 - test -z "$LD" && LD="$ac_prog"
9986 - # If it fails, then pretend we aren't using GCC.
9990 - # If it is relative, then search for the first ld in PATH.
9991 - with_gnu_ld=unknown
9994 -elif test "$with_gnu_ld" = yes; then
9995 - echo "$as_me:$LINENO: checking for GNU ld" >&5
9996 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
9998 - echo "$as_me:$LINENO: checking for non-GNU ld" >&5
9999 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
10001 -if test "${lt_cv_path_LD+set}" = set; then
10002 - echo $ECHO_N "(cached) $ECHO_C" >&6
10004 - if test -z "$LD"; then
10005 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
10006 - for ac_dir in $PATH; do
10007 - test -z "$ac_dir" && ac_dir=.
10008 - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
10009 - lt_cv_path_LD="$ac_dir/$ac_prog"
10010 - # Check to see if the program is GNU ld. I'd rather use --version,
10011 - # but apparently some GNU ld's only accept -v.
10012 - # Break only if it was the GNU/non-GNU ld that we prefer.
10013 - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
10014 - test "$with_gnu_ld" != no && break
10016 - test "$with_gnu_ld" != yes && break
10020 - IFS="$ac_save_ifs"
10022 - lt_cv_path_LD="$LD" # Let the user override the test with a path.
10026 -LD="$lt_cv_path_LD"
10027 -if test -n "$LD"; then
10028 - echo "$as_me:$LINENO: result: $LD" >&5
10029 -echo "${ECHO_T}$LD" >&6
10031 - echo "$as_me:$LINENO: result: no" >&5
10032 -echo "${ECHO_T}no" >&6
10034 -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
10035 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
10036 - { (exit 1); exit 1; }; }
10037 -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
10038 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
10039 -if test "${lt_cv_prog_gnu_ld+set}" = set; then
10040 - echo $ECHO_N "(cached) $ECHO_C" >&6
10042 - # I'd rather use --version here, but apparently some GNU ld's only accept -v.
10043 -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
10044 - lt_cv_prog_gnu_ld=yes
10046 - lt_cv_prog_gnu_ld=no
10049 -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
10050 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
10051 -with_gnu_ld=$lt_cv_prog_gnu_ld
10054 -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
10055 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
10056 -if test "${lt_cv_ld_reload_flag+set}" = set; then
10057 - echo $ECHO_N "(cached) $ECHO_C" >&6
10059 - lt_cv_ld_reload_flag='-r'
10061 -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
10062 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
10063 -reload_flag=$lt_cv_ld_reload_flag
10064 -test -n "$reload_flag" && reload_flag=" $reload_flag"
10066 -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
10067 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
10068 -if test "${lt_cv_path_NM+set}" = set; then
10069 - echo $ECHO_N "(cached) $ECHO_C" >&6
10071 - if test -n "$NM"; then
10072 - # Let the user override the test.
10073 - lt_cv_path_NM="$NM"
10075 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
10076 - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
10077 - test -z "$ac_dir" && ac_dir=.
10078 - tmp_nm=$ac_dir/${ac_tool_prefix}nm
10079 - if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
10080 - # Check to see if the nm accepts a BSD-compat flag.
10081 - # Adding the `sed 1q' prevents false positives on HP-UX, which says:
10082 - # nm: unknown option "B" ignored
10083 - # Tru64's nm complains that /dev/null is an invalid object file
10084 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
10085 - lt_cv_path_NM="$tmp_nm -B"
10087 - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
10088 - lt_cv_path_NM="$tmp_nm -p"
10091 - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
10092 - continue # so that we can try to find one that supports BSD flags
10096 - IFS="$ac_save_ifs"
10097 - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
10101 -NM="$lt_cv_path_NM"
10102 -echo "$as_me:$LINENO: result: $NM" >&5
10103 -echo "${ECHO_T}$NM" >&6
10105 -echo "$as_me:$LINENO: checking whether ln -s works" >&5
10106 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
10108 -if test "$LN_S" = "ln -s"; then
10109 - echo "$as_me:$LINENO: result: yes" >&5
10110 -echo "${ECHO_T}yes" >&6
10112 - echo "$as_me:$LINENO: result: no, using $LN_S" >&5
10113 -echo "${ECHO_T}no, using $LN_S" >&6
10116 -echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5
10117 -echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
10118 -if test "${lt_cv_deplibs_check_method+set}" = set; then
10119 - echo $ECHO_N "(cached) $ECHO_C" >&6
10121 - lt_cv_file_magic_cmd='$MAGIC_CMD'
10122 -lt_cv_file_magic_test_file=
10123 -lt_cv_deplibs_check_method='unknown'
10124 -# Need to set the preceding variable on all platforms that support
10125 -# interlibrary dependencies.
10126 -# 'none' -- dependencies not supported.
10127 -# `unknown' -- same as none, but documents that we really don't know.
10128 -# 'pass_all' -- all dependencies passed with no checks.
10129 -# 'test_compile' -- check by making test program.
10130 -# 'file_magic [[regex]]' -- check by looking for files in library path
10131 -# which responds to the $file_magic_cmd with a given egrep regex.
10132 -# If you have `file' or equivalent on your system and you're not sure
10133 -# whether `pass_all' will *always* work, you probably want this one.
10137 - lt_cv_deplibs_check_method=pass_all
10141 - lt_cv_deplibs_check_method=pass_all
10145 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
10146 - lt_cv_file_magic_cmd='/usr/bin/file -L'
10147 - lt_cv_file_magic_test_file=/shlib/libc.so
10150 -cygwin* | mingw* | pw32*)
10151 - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
10152 - lt_cv_file_magic_cmd='$OBJDUMP -f'
10155 -darwin* | rhapsody*)
10156 - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
10157 - lt_cv_file_magic_cmd='/usr/bin/file -L'
10158 - case "$host_os" in
10159 - rhapsody* | darwin1.[012])
10160 - lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
10162 - *) # Darwin 1.3 on
10163 - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
10169 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
10170 - case $host_cpu in
10172 - # Not sure whether the presence of OpenBSD here was a mistake.
10173 - # Let's accept both of them until this is cleared up.
10174 - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
10175 - lt_cv_file_magic_cmd=/usr/bin/file
10176 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
10180 - lt_cv_deplibs_check_method=pass_all
10185 - lt_cv_deplibs_check_method=pass_all
10188 -hpux10.20*|hpux11*)
10189 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
10190 - lt_cv_file_magic_cmd=/usr/bin/file
10191 - lt_cv_file_magic_test_file=/usr/lib/libc.sl
10197 - # this will be overridden with pass_all, but let us keep it just in case
10198 - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
10202 - *-32|*"-32 ") libmagic=32-bit;;
10203 - *-n32|*"-n32 ") libmagic=N32;;
10204 - *-64|*"-64 ") libmagic=64-bit;;
10205 - *) libmagic=never-match;;
10207 - # this will be overridden with pass_all, but let us keep it just in case
10208 - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
10211 - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
10212 - lt_cv_deplibs_check_method=pass_all
10215 -# This must be Linux ELF.
10217 - case $host_cpu in
10218 - alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
10219 - lt_cv_deplibs_check_method=pass_all ;;
10221 - # glibc up to 2.1.1 does not perform some relocations on ARM
10222 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
10224 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
10228 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
10229 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
10231 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
10236 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
10237 - lt_cv_file_magic_cmd=/usr/bin/file
10238 - lt_cv_file_magic_test_file=/usr/lib/libnls.so
10242 - lt_cv_file_magic_cmd=/usr/bin/file
10243 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
10244 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
10245 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
10247 - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
10251 -osf3* | osf4* | osf5*)
10252 - # this will be overridden with pass_all, but let us keep it just in case
10253 - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
10254 - lt_cv_file_magic_test_file=/shlib/libc.so
10255 - lt_cv_deplibs_check_method=pass_all
10259 - lt_cv_deplibs_check_method=pass_all
10263 - lt_cv_deplibs_check_method=pass_all
10264 - lt_cv_file_magic_test_file=/lib/libc.so
10267 -sysv5uw[78]* | sysv4*uw2*)
10268 - lt_cv_deplibs_check_method=pass_all
10271 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
10272 - case $host_vendor in
10274 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
10275 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
10278 - lt_cv_deplibs_check_method=pass_all
10281 - lt_cv_file_magic_cmd='/bin/file'
10282 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
10285 - lt_cv_file_magic_cmd='/bin/file'
10286 - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
10287 - lt_cv_file_magic_test_file=/lib/libc.so
10294 -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
10295 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
10296 -file_magic_cmd=$lt_cv_file_magic_cmd
10297 -deplibs_check_method=$lt_cv_deplibs_check_method
10305 -# Check for command to grab the raw symbol name followed by C symbol from nm.
10306 -echo "$as_me:$LINENO: checking command to parse $NM output" >&5
10307 -echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6
10308 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
10309 - echo $ECHO_N "(cached) $ECHO_C" >&6
10312 -# These are sane defaults that work on at least a few old systems.
10313 -# [They come from Ultrix. What could be older than Ultrix?!! ;)]
10315 -# Character class describing NM global symbol codes.
10316 -symcode='[BCDEGRST]'
10318 -# Regexp to match symbols that can be accessed directly from C.
10319 -sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
10321 -# Transform the above into a raw symbol and a C symbol.
10322 -symxfrm='\1 \2\3 \3'
10324 -# Transform an extracted symbol line into a proper C declaration
10325 -lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
10327 -# Transform an extracted symbol line into symbol name and symbol address
10328 -lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
10330 -# Define system-specific variables.
10335 -cygwin* | mingw* | pw32*)
10336 - symcode='[ABCDGISTW]'
10338 -hpux*) # Its linker distinguishes data from code symbols
10339 - lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
10340 - lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
10343 - symcode='[BCDEGRST]'
10345 -solaris* | sysv5*)
10349 - symcode='[DFNSTU]'
10353 -# Handle CRLF in mingw tool chain
10357 - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
10361 -# If we're using GNU nm, then use its standard symbol codes.
10362 -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
10363 - symcode='[ABCDGISTW]'
10366 -# Try without a prefix undercore, then with it.
10367 -for ac_symprfx in "" "_"; do
10369 - # Write the raw and C identifiers.
10370 -lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
10372 - # Check to see that the pipe works correctly.
10375 - cat > conftest.$ac_ext <<EOF
10376 -#ifdef __cplusplus
10380 -void nm_test_func(){}
10381 -#ifdef __cplusplus
10384 -int main(){nm_test_var='a';nm_test_func();return(0);}
10387 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10388 - (eval $ac_compile) 2>&5
10390 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10391 - (exit $ac_status); }; then
10392 - # Now try to grab the symbols.
10393 - nlist=conftest.nm
10394 - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
10395 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
10397 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10398 - (exit $ac_status); } && test -s "$nlist"; then
10399 - # Try sorting and uniquifying the output.
10400 - if sort "$nlist" | uniq > "$nlist"T; then
10401 - mv -f "$nlist"T "$nlist"
10406 - # Make sure that we snagged all the symbols we need.
10407 - if egrep ' nm_test_var$' "$nlist" >/dev/null; then
10408 - if egrep ' nm_test_func$' "$nlist" >/dev/null; then
10409 - cat <<EOF > conftest.$ac_ext
10410 -#ifdef __cplusplus
10415 - # Now generate the symbol file.
10416 - eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
10418 - cat <<EOF >> conftest.$ac_ext
10419 -#if defined (__STDC__) && __STDC__
10420 -# define lt_ptr void *
10422 -# define lt_ptr char *
10426 -/* The mapping between symbol names and symbols. */
10428 - const char *name;
10431 -lt_preloaded_symbols[] =
10434 - sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
10435 - cat <<\EOF >> conftest.$ac_ext
10439 -#ifdef __cplusplus
10443 - # Now try linking the two files.
10444 - mv conftest.$ac_objext conftstm.$ac_objext
10445 - save_LIBS="$LIBS"
10446 - save_CFLAGS="$CFLAGS"
10447 - LIBS="conftstm.$ac_objext"
10448 - CFLAGS="$CFLAGS$no_builtin_flag"
10449 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10450 - (eval $ac_link) 2>&5
10452 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10453 - (exit $ac_status); } && test -s conftest; then
10456 - LIBS="$save_LIBS"
10457 - CFLAGS="$save_CFLAGS"
10459 - echo "cannot find nm_test_func in $nlist" >&5
10462 - echo "cannot find nm_test_var in $nlist" >&5
10465 - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
10468 - echo "$progname: failed program was:" >&5
10469 - cat conftest.$ac_ext >&5
10471 - rm -f conftest* conftst*
10473 - # Do not use the global_symbol_pipe unless it works.
10474 - if test "$pipe_works" = yes; then
10477 - lt_cv_sys_global_symbol_pipe=
10483 -global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
10484 -if test -z "$lt_cv_sys_global_symbol_pipe"; then
10485 - global_symbol_to_cdecl=
10486 - global_symbol_to_c_name_address=
10488 - global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
10489 - global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
10491 -if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
10493 - echo "$as_me:$LINENO: result: failed" >&5
10494 -echo "${ECHO_T}failed" >&6
10496 - echo "$as_me:$LINENO: result: ok" >&5
10497 -echo "${ECHO_T}ok" >&6
10501 -ac_cpp='$CPP $CPPFLAGS'
10502 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10503 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10504 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
10505 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
10506 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
10507 -# On Suns, sometimes $CPP names a directory.
10508 -if test -n "$CPP" && test -d "$CPP"; then
10511 -if test -z "$CPP"; then
10512 - if test "${ac_cv_prog_CPP+set}" = set; then
10513 - echo $ECHO_N "(cached) $ECHO_C" >&6
10515 - # Double quotes because CPP needs to be expanded
10516 - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
10518 - ac_preproc_ok=false
10519 -for ac_c_preproc_warn_flag in '' yes
10521 - # Use a header file that comes with gcc, so configuring glibc
10522 - # with a fresh cross-compiler works.
10523 - # On the NeXT, cc -E runs the code through the compiler's parser,
10524 - # not just through cpp. "Syntax error" is here to catch this case.
10525 - cat >conftest.$ac_ext <<_ACEOF
10526 -#line $LINENO "configure"
10527 -#include "confdefs.h"
10528 -@%:@include <assert.h>
10531 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10532 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10534 - grep -v '^ *+' conftest.er1 >conftest.err
10535 - rm -f conftest.er1
10536 - cat conftest.err >&5
10537 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10538 - (exit $ac_status); } >/dev/null; then
10539 - if test -s conftest.err; then
10540 - ac_cpp_err=$ac_c_preproc_warn_flag
10547 -if test -z "$ac_cpp_err"; then
10550 - echo "$as_me: failed program was:" >&5
10551 - cat conftest.$ac_ext >&5
10552 - # Broken: fails on valid input.
10555 -rm -f conftest.err conftest.$ac_ext
10557 - # OK, works on sane cases. Now check whether non-existent headers
10558 - # can be detected and how.
10559 - cat >conftest.$ac_ext <<_ACEOF
10560 -#line $LINENO "configure"
10561 -#include "confdefs.h"
10562 -@%:@include <ac_nonexistent.h>
10564 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10565 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10567 - grep -v '^ *+' conftest.er1 >conftest.err
10568 - rm -f conftest.er1
10569 - cat conftest.err >&5
10570 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10571 - (exit $ac_status); } >/dev/null; then
10572 - if test -s conftest.err; then
10573 - ac_cpp_err=$ac_c_preproc_warn_flag
10580 -if test -z "$ac_cpp_err"; then
10581 - # Broken: success on invalid input.
10584 - echo "$as_me: failed program was:" >&5
10585 - cat conftest.$ac_ext >&5
10586 - # Passes both tests.
10590 -rm -f conftest.err conftest.$ac_ext
10593 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
10594 -rm -f conftest.err conftest.$ac_ext
10595 -if $ac_preproc_ok; then
10600 - ac_cv_prog_CPP=$CPP
10603 - CPP=$ac_cv_prog_CPP
10605 - ac_cv_prog_CPP=$CPP
10607 -echo "$as_me:$LINENO: result: $CPP" >&5
10608 -echo "${ECHO_T}$CPP" >&6
10609 -ac_preproc_ok=false
10610 -for ac_c_preproc_warn_flag in '' yes
10612 - # Use a header file that comes with gcc, so configuring glibc
10613 - # with a fresh cross-compiler works.
10614 - # On the NeXT, cc -E runs the code through the compiler's parser,
10615 - # not just through cpp. "Syntax error" is here to catch this case.
10616 - cat >conftest.$ac_ext <<_ACEOF
10617 -#line $LINENO "configure"
10618 -#include "confdefs.h"
10619 -@%:@include <assert.h>
10622 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10623 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10625 - grep -v '^ *+' conftest.er1 >conftest.err
10626 - rm -f conftest.er1
10627 - cat conftest.err >&5
10628 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10629 - (exit $ac_status); } >/dev/null; then
10630 - if test -s conftest.err; then
10631 - ac_cpp_err=$ac_c_preproc_warn_flag
10638 -if test -z "$ac_cpp_err"; then
10641 - echo "$as_me: failed program was:" >&5
10642 - cat conftest.$ac_ext >&5
10643 - # Broken: fails on valid input.
10646 -rm -f conftest.err conftest.$ac_ext
10648 - # OK, works on sane cases. Now check whether non-existent headers
10649 - # can be detected and how.
10650 - cat >conftest.$ac_ext <<_ACEOF
10651 -#line $LINENO "configure"
10652 -#include "confdefs.h"
10653 -@%:@include <ac_nonexistent.h>
10655 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10656 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10658 - grep -v '^ *+' conftest.er1 >conftest.err
10659 - rm -f conftest.er1
10660 - cat conftest.err >&5
10661 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10662 - (exit $ac_status); } >/dev/null; then
10663 - if test -s conftest.err; then
10664 - ac_cpp_err=$ac_c_preproc_warn_flag
10671 -if test -z "$ac_cpp_err"; then
10672 - # Broken: success on invalid input.
10675 - echo "$as_me: failed program was:" >&5
10676 - cat conftest.$ac_ext >&5
10677 - # Passes both tests.
10681 -rm -f conftest.err conftest.$ac_ext
10684 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
10685 -rm -f conftest.err conftest.$ac_ext
10686 -if $ac_preproc_ok; then
10689 - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
10690 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
10691 - { (exit 1); exit 1; }; }
10695 -ac_cpp='$CPP $CPPFLAGS'
10696 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10697 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10698 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
10701 -echo "$as_me:$LINENO: checking for egrep" >&5
10702 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6
10703 -if test "${ac_cv_prog_egrep+set}" = set; then
10704 - echo $ECHO_N "(cached) $ECHO_C" >&6
10706 - if echo a | (grep -E '(a|b)') >/dev/null 2>&1
10707 - then ac_cv_prog_egrep='grep -E'
10708 - else ac_cv_prog_egrep='egrep'
10711 -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
10712 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6
10713 - EGREP=$ac_cv_prog_egrep
10716 -echo "$as_me:$LINENO: checking for ANSI C header files" >&5
10717 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
10718 -if test "${ac_cv_header_stdc+set}" = set; then
10719 - echo $ECHO_N "(cached) $ECHO_C" >&6
10721 - cat >conftest.$ac_ext <<_ACEOF
10722 -#line $LINENO "configure"
10723 -#include "confdefs.h"
10724 -#include <stdlib.h>
10725 -#include <stdarg.h>
10726 -#include <string.h>
10727 -#include <float.h>
10730 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10731 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10733 - grep -v '^ *+' conftest.er1 >conftest.err
10734 - rm -f conftest.er1
10735 - cat conftest.err >&5
10736 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10737 - (exit $ac_status); } >/dev/null; then
10738 - if test -s conftest.err; then
10739 - ac_cpp_err=$ac_c_preproc_warn_flag
10746 -if test -z "$ac_cpp_err"; then
10747 - ac_cv_header_stdc=yes
10749 - echo "$as_me: failed program was:" >&5
10750 - cat conftest.$ac_ext >&5
10751 - ac_cv_header_stdc=no
10753 -rm -f conftest.err conftest.$ac_ext
10755 -if test $ac_cv_header_stdc = yes; then
10756 - # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
10757 - cat >conftest.$ac_ext <<_ACEOF
10758 -#line $LINENO "configure"
10759 -#include "confdefs.h"
10760 -#include <string.h>
10763 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
10764 - $EGREP "memchr" >/dev/null 2>&1; then
10767 - ac_cv_header_stdc=no
10773 -if test $ac_cv_header_stdc = yes; then
10774 - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
10775 - cat >conftest.$ac_ext <<_ACEOF
10776 -#line $LINENO "configure"
10777 -#include "confdefs.h"
10778 -#include <stdlib.h>
10781 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
10782 - $EGREP "free" >/dev/null 2>&1; then
10785 - ac_cv_header_stdc=no
10791 -if test $ac_cv_header_stdc = yes; then
10792 - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
10793 - if test "$cross_compiling" = yes; then
10796 - cat >conftest.$ac_ext <<_ACEOF
10797 -#line $LINENO "configure"
10798 -#include "confdefs.h"
10799 -#include <ctype.h>
10800 -#if ((' ' & 0x0FF) == 0x020)
10801 -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
10802 -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
10804 -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
10805 - || ('j' <= (c) && (c) <= 'r') \
10806 - || ('s' <= (c) && (c) <= 'z'))
10807 -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
10810 -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
10815 - for (i = 0; i < 256; i++)
10816 - if (XOR (islower (i), ISLOWER (i))
10817 - || toupper (i) != TOUPPER (i))
10822 -rm -f conftest$ac_exeext
10823 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10824 - (eval $ac_link) 2>&5
10826 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10827 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
10828 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10829 - (eval $ac_try) 2>&5
10831 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10832 - (exit $ac_status); }; }; then
10835 - echo "$as_me: program exited with status $ac_status" >&5
10836 -echo "$as_me: failed program was:" >&5
10837 -cat conftest.$ac_ext >&5
10838 -( exit $ac_status )
10839 -ac_cv_header_stdc=no
10841 -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
10845 -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
10846 -echo "${ECHO_T}$ac_cv_header_stdc" >&6
10847 -if test $ac_cv_header_stdc = yes; then
10849 -cat >>confdefs.h <<\_ACEOF
10850 -@%:@define STDC_HEADERS 1
10855 -# On IRIX 5.3, sys/types and inttypes.h are conflicting.
10865 -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
10866 - inttypes.h stdint.h unistd.h
10868 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
10869 -echo "$as_me:$LINENO: checking for $ac_header" >&5
10870 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10871 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10872 - echo $ECHO_N "(cached) $ECHO_C" >&6
10874 - cat >conftest.$ac_ext <<_ACEOF
10875 -#line $LINENO "configure"
10876 -#include "confdefs.h"
10877 -$ac_includes_default
10879 -@%:@include <$ac_header>
10881 -rm -f conftest.$ac_objext
10882 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10883 - (eval $ac_compile) 2>&5
10885 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10886 - (exit $ac_status); } &&
10887 - { ac_try='test -s conftest.$ac_objext'
10888 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10889 - (eval $ac_try) 2>&5
10891 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10892 - (exit $ac_status); }; }; then
10893 - eval "$as_ac_Header=yes"
10895 - echo "$as_me: failed program was:" >&5
10896 -cat conftest.$ac_ext >&5
10897 -eval "$as_ac_Header=no"
10899 -rm -f conftest.$ac_objext conftest.$ac_ext
10901 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10902 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10903 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
10904 - cat >>confdefs.h <<_ACEOF
10905 -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
10914 -for ac_header in dlfcn.h
10916 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
10917 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10918 - echo "$as_me:$LINENO: checking for $ac_header" >&5
10919 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10920 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10921 - echo $ECHO_N "(cached) $ECHO_C" >&6
10923 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10924 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10926 - # Is the header compilable?
10927 -echo "$as_me:$LINENO: checking $ac_header usability" >&5
10928 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
10929 -cat >conftest.$ac_ext <<_ACEOF
10930 -#line $LINENO "configure"
10931 -#include "confdefs.h"
10932 -$ac_includes_default
10933 -@%:@include <$ac_header>
10935 -rm -f conftest.$ac_objext
10936 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10937 - (eval $ac_compile) 2>&5
10939 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10940 - (exit $ac_status); } &&
10941 - { ac_try='test -s conftest.$ac_objext'
10942 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10943 - (eval $ac_try) 2>&5
10945 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10946 - (exit $ac_status); }; }; then
10947 - ac_header_compiler=yes
10949 - echo "$as_me: failed program was:" >&5
10950 -cat conftest.$ac_ext >&5
10951 -ac_header_compiler=no
10953 -rm -f conftest.$ac_objext conftest.$ac_ext
10954 -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
10955 -echo "${ECHO_T}$ac_header_compiler" >&6
10957 -# Is the header present?
10958 -echo "$as_me:$LINENO: checking $ac_header presence" >&5
10959 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
10960 -cat >conftest.$ac_ext <<_ACEOF
10961 -#line $LINENO "configure"
10962 -#include "confdefs.h"
10963 -@%:@include <$ac_header>
10965 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10966 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10968 - grep -v '^ *+' conftest.er1 >conftest.err
10969 - rm -f conftest.er1
10970 - cat conftest.err >&5
10971 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10972 - (exit $ac_status); } >/dev/null; then
10973 - if test -s conftest.err; then
10974 - ac_cpp_err=$ac_c_preproc_warn_flag
10981 -if test -z "$ac_cpp_err"; then
10982 - ac_header_preproc=yes
10984 - echo "$as_me: failed program was:" >&5
10985 - cat conftest.$ac_ext >&5
10986 - ac_header_preproc=no
10988 -rm -f conftest.err conftest.$ac_ext
10989 -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
10990 -echo "${ECHO_T}$ac_header_preproc" >&6
10992 -# So? What about this header?
10993 -case $ac_header_compiler:$ac_header_preproc in
10995 - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
10996 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
10997 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
10998 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
11000 - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
11001 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
11002 - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
11003 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
11004 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
11005 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
11007 -echo "$as_me:$LINENO: checking for $ac_header" >&5
11008 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
11009 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
11010 - echo $ECHO_N "(cached) $ECHO_C" >&6
11012 - eval "$as_ac_Header=$ac_header_preproc"
11014 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
11015 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
11018 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
11019 - cat >>confdefs.h <<_ACEOF
11020 -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
11031 -# Only perform the check for file, if the check method requires it
11032 -case $deplibs_check_method in
11034 - if test "$file_magic_cmd" = '$MAGIC_CMD'; then
11035 - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
11036 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
11037 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
11038 - echo $ECHO_N "(cached) $ECHO_C" >&6
11040 - case $MAGIC_CMD in
11042 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
11045 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
11048 - ac_save_MAGIC_CMD="$MAGIC_CMD"
11049 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
11050 - ac_dummy="/usr/bin:$PATH"
11051 - for ac_dir in $ac_dummy; do
11052 - test -z "$ac_dir" && ac_dir=.
11053 - if test -f $ac_dir/${ac_tool_prefix}file; then
11054 - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
11055 - if test -n "$file_magic_test_file"; then
11056 - case $deplibs_check_method in
11058 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
11059 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
11060 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
11061 - egrep "$file_magic_regex" > /dev/null; then
11066 -*** Warning: the command libtool uses to detect shared libraries,
11067 -*** $file_magic_cmd, produces output that libtool cannot recognize.
11068 -*** The result is that libtool may fail to recognize shared libraries
11069 -*** as such. This will affect the creation of libtool libraries that
11070 -*** depend on shared libraries, but programs linked with such libtool
11071 -*** libraries will work regardless of this problem. Nevertheless, you
11072 -*** may want to report the problem to your system manager and/or to
11073 -*** bug-libtool@gnu.org
11082 - IFS="$ac_save_ifs"
11083 - MAGIC_CMD="$ac_save_MAGIC_CMD"
11088 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
11089 -if test -n "$MAGIC_CMD"; then
11090 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
11091 -echo "${ECHO_T}$MAGIC_CMD" >&6
11093 - echo "$as_me:$LINENO: result: no" >&5
11094 -echo "${ECHO_T}no" >&6
11097 -if test -z "$lt_cv_path_MAGIC_CMD"; then
11098 - if test -n "$ac_tool_prefix"; then
11099 - echo "$as_me:$LINENO: checking for file" >&5
11100 -echo $ECHO_N "checking for file... $ECHO_C" >&6
11101 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
11102 - echo $ECHO_N "(cached) $ECHO_C" >&6
11104 - case $MAGIC_CMD in
11106 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
11109 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
11112 - ac_save_MAGIC_CMD="$MAGIC_CMD"
11113 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
11114 - ac_dummy="/usr/bin:$PATH"
11115 - for ac_dir in $ac_dummy; do
11116 - test -z "$ac_dir" && ac_dir=.
11117 - if test -f $ac_dir/file; then
11118 - lt_cv_path_MAGIC_CMD="$ac_dir/file"
11119 - if test -n "$file_magic_test_file"; then
11120 - case $deplibs_check_method in
11122 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
11123 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
11124 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
11125 - egrep "$file_magic_regex" > /dev/null; then
11130 -*** Warning: the command libtool uses to detect shared libraries,
11131 -*** $file_magic_cmd, produces output that libtool cannot recognize.
11132 -*** The result is that libtool may fail to recognize shared libraries
11133 -*** as such. This will affect the creation of libtool libraries that
11134 -*** depend on shared libraries, but programs linked with such libtool
11135 -*** libraries will work regardless of this problem. Nevertheless, you
11136 -*** may want to report the problem to your system manager and/or to
11137 -*** bug-libtool@gnu.org
11146 - IFS="$ac_save_ifs"
11147 - MAGIC_CMD="$ac_save_MAGIC_CMD"
11152 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
11153 -if test -n "$MAGIC_CMD"; then
11154 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
11155 -echo "${ECHO_T}$MAGIC_CMD" >&6
11157 - echo "$as_me:$LINENO: result: no" >&5
11158 -echo "${ECHO_T}no" >&6
11170 -if test -n "$ac_tool_prefix"; then
11171 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
11172 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
11173 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11174 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11175 -if test "${ac_cv_prog_RANLIB+set}" = set; then
11176 - echo $ECHO_N "(cached) $ECHO_C" >&6
11178 - if test -n "$RANLIB"; then
11179 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
11181 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11182 -for as_dir in $PATH
11185 - test -z "$as_dir" && as_dir=.
11186 - for ac_exec_ext in '' $ac_executable_extensions; do
11187 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11188 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
11189 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11197 -RANLIB=$ac_cv_prog_RANLIB
11198 -if test -n "$RANLIB"; then
11199 - echo "$as_me:$LINENO: result: $RANLIB" >&5
11200 -echo "${ECHO_T}$RANLIB" >&6
11202 - echo "$as_me:$LINENO: result: no" >&5
11203 -echo "${ECHO_T}no" >&6
11207 -if test -z "$ac_cv_prog_RANLIB"; then
11208 - ac_ct_RANLIB=$RANLIB
11209 - # Extract the first word of "ranlib", so it can be a program name with args.
11210 -set dummy ranlib; ac_word=$2
11211 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11212 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11213 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
11214 - echo $ECHO_N "(cached) $ECHO_C" >&6
11216 - if test -n "$ac_ct_RANLIB"; then
11217 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
11219 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11220 -for as_dir in $PATH
11223 - test -z "$as_dir" && as_dir=.
11224 - for ac_exec_ext in '' $ac_executable_extensions; do
11225 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11226 - ac_cv_prog_ac_ct_RANLIB="ranlib"
11227 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11233 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
11236 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
11237 -if test -n "$ac_ct_RANLIB"; then
11238 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
11239 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
11241 - echo "$as_me:$LINENO: result: no" >&5
11242 -echo "${ECHO_T}no" >&6
11245 - RANLIB=$ac_ct_RANLIB
11247 - RANLIB="$ac_cv_prog_RANLIB"
11250 -if test -n "$ac_tool_prefix"; then
11251 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
11252 -set dummy ${ac_tool_prefix}strip; ac_word=$2
11253 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11254 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11255 -if test "${ac_cv_prog_STRIP+set}" = set; then
11256 - echo $ECHO_N "(cached) $ECHO_C" >&6
11258 - if test -n "$STRIP"; then
11259 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
11261 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11262 -for as_dir in $PATH
11265 - test -z "$as_dir" && as_dir=.
11266 - for ac_exec_ext in '' $ac_executable_extensions; do
11267 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11268 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
11269 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11277 -STRIP=$ac_cv_prog_STRIP
11278 -if test -n "$STRIP"; then
11279 - echo "$as_me:$LINENO: result: $STRIP" >&5
11280 -echo "${ECHO_T}$STRIP" >&6
11282 - echo "$as_me:$LINENO: result: no" >&5
11283 -echo "${ECHO_T}no" >&6
11287 -if test -z "$ac_cv_prog_STRIP"; then
11288 - ac_ct_STRIP=$STRIP
11289 - # Extract the first word of "strip", so it can be a program name with args.
11290 -set dummy strip; ac_word=$2
11291 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11292 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11293 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
11294 - echo $ECHO_N "(cached) $ECHO_C" >&6
11296 - if test -n "$ac_ct_STRIP"; then
11297 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
11299 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11300 -for as_dir in $PATH
11303 - test -z "$as_dir" && as_dir=.
11304 - for ac_exec_ext in '' $ac_executable_extensions; do
11305 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11306 - ac_cv_prog_ac_ct_STRIP="strip"
11307 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11313 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
11316 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
11317 -if test -n "$ac_ct_STRIP"; then
11318 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
11319 -echo "${ECHO_T}$ac_ct_STRIP" >&6
11321 - echo "$as_me:$LINENO: result: no" >&5
11322 -echo "${ECHO_T}no" >&6
11325 - STRIP=$ac_ct_STRIP
11327 - STRIP="$ac_cv_prog_STRIP"
11332 -enable_win32_dll=no
11334 -# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
11335 -if test "${enable_libtool_lock+set}" = set; then
11336 - enableval="$enable_libtool_lock"
11339 -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
11341 -# Some flags need to be propagated to the compiler or linker for good
11342 -# libtool support.
11345 - # Find out which ABI we are using.
11346 - echo '#line __oline__ "configure"' > conftest.$ac_ext
11347 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11348 - (eval $ac_compile) 2>&5
11350 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11351 - (exit $ac_status); }; then
11352 - case `/usr/bin/file conftest.$ac_objext` in
11354 - LD="${LD-ld} -32"
11357 - LD="${LD-ld} -n32"
11360 - LD="${LD-ld} -64"
11368 - # On SCO OpenServer 5, we need -belf to get full-featured binaries.
11369 - SAVE_CFLAGS="$CFLAGS"
11370 - CFLAGS="$CFLAGS -belf"
11371 - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
11372 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
11373 -if test "${lt_cv_cc_needs_belf+set}" = set; then
11374 - echo $ECHO_N "(cached) $ECHO_C" >&6
11379 -ac_cpp='$CPP $CPPFLAGS'
11380 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11381 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11382 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
11384 - cat >conftest.$ac_ext <<_ACEOF
11385 -#line $LINENO "configure"
11386 -#include "confdefs.h"
11396 -rm -f conftest.$ac_objext conftest$ac_exeext
11397 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11398 - (eval $ac_link) 2>&5
11400 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11401 - (exit $ac_status); } &&
11402 - { ac_try='test -s conftest$ac_exeext'
11403 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11404 - (eval $ac_try) 2>&5
11406 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11407 - (exit $ac_status); }; }; then
11408 - lt_cv_cc_needs_belf=yes
11410 - echo "$as_me: failed program was:" >&5
11411 -cat conftest.$ac_ext >&5
11412 -lt_cv_cc_needs_belf=no
11414 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
11416 -ac_cpp='$CPP $CPPFLAGS'
11417 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11418 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11419 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
11422 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
11423 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
11424 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then
11425 - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
11426 - CFLAGS="$SAVE_CFLAGS"
11433 -# Sed substitution that helps us do robust quoting. It backslashifies
11434 -# metacharacters that are still active within double-quoted strings.
11435 -Xsed='sed -e s/^X//'
11436 -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
11438 -# Same as above, but do not quote variable references.
11439 -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
11441 -# Sed substitution to delay expansion of an escaped shell variable in a
11442 -# double_quote_subst'ed string.
11443 -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
11448 -# Global variables:
11449 -default_ofile=libtool
11450 -can_build_shared=yes
11452 -# All known linkers require a `.a' archive for static linking (except M$VC,
11453 -# which needs '.lib').
11455 -ltmain="$ac_aux_dir/ltmain.sh"
11456 -ofile="$default_ofile"
11457 -with_gnu_ld="$lt_cv_prog_gnu_ld"
11458 -need_locks="$enable_libtool_lock"
11461 -old_CFLAGS="$CFLAGS"
11463 -# Set sane defaults for various variables
11464 -test -z "$AR" && AR=ar
11465 -test -z "$AR_FLAGS" && AR_FLAGS=cru
11466 -test -z "$AS" && AS=as
11467 -test -z "$CC" && CC=cc
11468 -test -z "$DLLTOOL" && DLLTOOL=dlltool
11469 -test -z "$LD" && LD=ld
11470 -test -z "$LN_S" && LN_S="ln -s"
11471 -test -z "$MAGIC_CMD" && MAGIC_CMD=file
11472 -test -z "$NM" && NM=nm
11473 -test -z "$OBJDUMP" && OBJDUMP=objdump
11474 -test -z "$RANLIB" && RANLIB=:
11475 -test -z "$STRIP" && STRIP=:
11476 -test -z "$ac_objext" && ac_objext=o
11478 -if test x"$host" != x"$build"; then
11479 - ac_tool_prefix=${host_alias}-
11484 -# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
11487 -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
11492 - # AIX sometimes has problems with the GCC collect2 program. For some
11493 - # reason, if we set the COLLECT_NAMES environment variable, the problems
11494 - # vanish in a puff of smoke.
11495 - if test "X${COLLECT_NAMES+set}" != Xset; then
11497 - export COLLECT_NAMES
11502 -# Determine commands to create old-style static archives.
11503 -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
11504 -old_postinstall_cmds='chmod 644 $oldlib'
11505 -old_postuninstall_cmds=
11507 -if test -n "$RANLIB"; then
11510 - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
11513 - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
11516 - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
11519 -# Allow CC to be a program name with arguments.
11523 -echo "$as_me:$LINENO: checking for objdir" >&5
11524 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6
11525 -rm -f .libs 2>/dev/null
11526 -mkdir .libs 2>/dev/null
11527 -if test -d .libs; then
11530 - # MS-DOS does not allow filenames that begin with a dot.
11533 -rmdir .libs 2>/dev/null
11534 -echo "$as_me:$LINENO: result: $objdir" >&5
11535 -echo "${ECHO_T}$objdir" >&6
11539 -# Check whether --with-pic or --without-pic was given.
11540 -if test "${with_pic+set}" = set; then
11541 - withval="$with_pic"
11542 - pic_mode="$withval"
11546 -test -z "$pic_mode" && pic_mode=default
11548 -# We assume here that the value for lt_cv_prog_cc_pic will not be cached
11549 -# in isolation, and that seeing it set (from the cache) indicates that
11550 -# the associated values are set (in the cache) correctly too.
11551 -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
11552 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
11553 -if test "${lt_cv_prog_cc_pic+set}" = set; then
11554 - echo $ECHO_N "(cached) $ECHO_C" >&6
11556 - lt_cv_prog_cc_pic=
11557 - lt_cv_prog_cc_shlib=
11558 - lt_cv_prog_cc_wl=
11559 - lt_cv_prog_cc_static=
11560 - lt_cv_prog_cc_no_builtin=
11561 - lt_cv_prog_cc_can_build_shared=$can_build_shared
11563 - if test "$GCC" = yes; then
11564 - lt_cv_prog_cc_wl='-Wl,'
11565 - lt_cv_prog_cc_static='-static'
11569 - # Below there is a dirty hack to force normal static linking with -ldl
11570 - # The problem is because libdl dynamically linked with both libc and
11571 - # libC (AIX C++ library), which obviously doesn't included in libraries
11572 - # list by gcc. This cause undefined symbols with -static flags.
11573 - # This hack allows C programs to be linked with "-static -ldl", but
11574 - # not sure about C++ programs.
11575 - lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
11578 - # FIXME: we need at least 68020 code to build shared libraries, but
11579 - # adding the `-m68020' flag to GCC prevents building anything better,
11580 - # like `-m68040'.
11581 - lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
11583 - beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
11584 - # PIC is the default for these OSes.
11586 - darwin* | rhapsody*)
11587 - # PIC is the default on this platform
11588 - # Common symbols not allowed in MH_DYLIB files
11589 - lt_cv_prog_cc_pic='-fno-common'
11591 - cygwin* | mingw* | pw32* | os2*)
11592 - # This hack is so that the source file can tell whether it is being
11593 - # built for inclusion in a dll (and should export symbols for example).
11594 - lt_cv_prog_cc_pic='-DDLL_EXPORT'
11597 - if test -d /usr/nec; then
11598 - lt_cv_prog_cc_pic=-Kconform_pic
11602 - lt_cv_prog_cc_pic='-fPIC'
11606 - # PORTME Check for PIC flags for the system compiler.
11608 - aix3* | aix4* | aix5*)
11609 - lt_cv_prog_cc_wl='-Wl,'
11610 - # All AIX code is PIC.
11611 - if test "$host_cpu" = ia64; then
11612 - # AIX 5 now supports IA64 processor
11613 - lt_cv_prog_cc_static='-Bstatic'
11615 - lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
11619 - hpux9* | hpux10* | hpux11*)
11620 - # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
11621 - lt_cv_prog_cc_wl='-Wl,'
11622 - lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
11623 - lt_cv_prog_cc_pic='+Z'
11627 - lt_cv_prog_cc_wl='-Wl,'
11628 - lt_cv_prog_cc_static='-non_shared'
11629 - # PIC (with -KPIC) is the default.
11632 - cygwin* | mingw* | pw32* | os2*)
11633 - # This hack is so that the source file can tell whether it is being
11634 - # built for inclusion in a dll (and should export symbols for example).
11635 - lt_cv_prog_cc_pic='-DDLL_EXPORT'
11639 - lt_cv_prog_cc_pic='-KPIC'
11640 - lt_cv_prog_cc_static='-Bstatic'
11643 - osf3* | osf4* | osf5*)
11644 - # All OSF/1 code is PIC.
11645 - lt_cv_prog_cc_wl='-Wl,'
11646 - lt_cv_prog_cc_static='-non_shared'
11650 - lt_cv_prog_cc_pic='-Kpic'
11651 - lt_cv_prog_cc_static='-dn'
11652 - lt_cv_prog_cc_shlib='-belf'
11656 - lt_cv_prog_cc_pic='-KPIC'
11657 - lt_cv_prog_cc_static='-Bstatic'
11658 - lt_cv_prog_cc_wl='-Wl,'
11662 - lt_cv_prog_cc_pic='-PIC'
11663 - lt_cv_prog_cc_static='-Bstatic'
11664 - lt_cv_prog_cc_wl='-Qoption ld '
11667 - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
11668 - lt_cv_prog_cc_pic='-KPIC'
11669 - lt_cv_prog_cc_static='-Bstatic'
11670 - if test "x$host_vendor" = xsni; then
11671 - lt_cv_prog_cc_wl='-LD'
11673 - lt_cv_prog_cc_wl='-Wl,'
11678 - lt_cv_prog_cc_pic='-pic'
11679 - lt_cv_prog_cc_static='-Bstatic'
11683 - if test -d /usr/nec ;then
11684 - lt_cv_prog_cc_pic='-Kconform_pic'
11685 - lt_cv_prog_cc_static='-Bstatic'
11690 - lt_cv_prog_cc_can_build_shared=no
11697 -if test -z "$lt_cv_prog_cc_pic"; then
11698 - echo "$as_me:$LINENO: result: none" >&5
11699 -echo "${ECHO_T}none" >&6
11701 - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5
11702 -echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6
11704 - # Check to make sure the pic_flag actually works.
11705 - echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
11706 -echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6
11707 - if test "${lt_cv_prog_cc_pic_works+set}" = set; then
11708 - echo $ECHO_N "(cached) $ECHO_C" >&6
11710 - save_CFLAGS="$CFLAGS"
11711 - CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
11712 - cat >conftest.$ac_ext <<_ACEOF
11713 -#line $LINENO "configure"
11714 -#include "confdefs.h"
11724 -rm -f conftest.$ac_objext
11725 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11726 - (eval $ac_compile) 2>&5
11728 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11729 - (exit $ac_status); } &&
11730 - { ac_try='test -s conftest.$ac_objext'
11731 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11732 - (eval $ac_try) 2>&5
11734 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11735 - (exit $ac_status); }; }; then
11737 - hpux9* | hpux10* | hpux11*)
11738 - # On HP-UX, both CC and GCC only warn that PIC is supported... then
11739 - # they create non-PIC objects. So, if there were any warnings, we
11740 - # assume that PIC is not supported.
11741 - if test -s conftest.err; then
11742 - lt_cv_prog_cc_pic_works=no
11744 - lt_cv_prog_cc_pic_works=yes
11748 - lt_cv_prog_cc_pic_works=yes
11753 - echo "$as_me: failed program was:" >&5
11754 -cat conftest.$ac_ext >&5
11755 - lt_cv_prog_cc_pic_works=no
11758 -rm -f conftest.$ac_objext conftest.$ac_ext
11759 - CFLAGS="$save_CFLAGS"
11764 - if test "X$lt_cv_prog_cc_pic_works" = Xno; then
11765 - lt_cv_prog_cc_pic=
11766 - lt_cv_prog_cc_can_build_shared=no
11768 - lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
11771 - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5
11772 -echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6
11775 -# Check for any special shared library compilation flags.
11776 -if test -n "$lt_cv_prog_cc_shlib"; then
11777 - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5
11778 -echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;}
11779 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then :
11781 - { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
11782 -echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
11783 - lt_cv_prog_cc_can_build_shared=no
11787 -echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
11788 -echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6
11789 -if test "${lt_cv_prog_cc_static_works+set}" = set; then
11790 - echo $ECHO_N "(cached) $ECHO_C" >&6
11792 - lt_cv_prog_cc_static_works=no
11793 - save_LDFLAGS="$LDFLAGS"
11794 - LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
11795 - cat >conftest.$ac_ext <<_ACEOF
11796 -#line $LINENO "configure"
11797 -#include "confdefs.h"
11807 -rm -f conftest.$ac_objext conftest$ac_exeext
11808 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11809 - (eval $ac_link) 2>&5
11811 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11812 - (exit $ac_status); } &&
11813 - { ac_try='test -s conftest$ac_exeext'
11814 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11815 - (eval $ac_try) 2>&5
11817 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11818 - (exit $ac_status); }; }; then
11819 - lt_cv_prog_cc_static_works=yes
11821 - echo "$as_me: failed program was:" >&5
11822 -cat conftest.$ac_ext >&5
11824 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
11825 - LDFLAGS="$save_LDFLAGS"
11830 -# Belt *and* braces to stop my trousers falling down:
11831 -test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
11832 -echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5
11833 -echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6
11835 -pic_flag="$lt_cv_prog_cc_pic"
11836 -special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
11837 -wl="$lt_cv_prog_cc_wl"
11838 -link_static_flag="$lt_cv_prog_cc_static"
11839 -no_builtin_flag="$lt_cv_prog_cc_no_builtin"
11840 -can_build_shared="$lt_cv_prog_cc_can_build_shared"
11843 -# Check to see if options -o and -c are simultaneously supported by compiler
11844 -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
11845 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
11846 -if test "${lt_cv_compiler_c_o+set}" = set; then
11847 - echo $ECHO_N "(cached) $ECHO_C" >&6
11850 -$rm -r conftest 2>/dev/null
11853 -echo "int some_variable = 0;" > conftest.$ac_ext
11855 -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
11856 -# that will create temporary files in the current directory regardless of
11857 -# the output directory. Thus, making CWD read-only will cause this test
11858 -# to fail, enabling locking or at least warning the user not to do parallel
11861 -save_CFLAGS="$CFLAGS"
11862 -CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
11864 -if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
11865 - # The compiler can only warn and ignore the option if not recognized
11866 - # So say no if there are warnings
11867 - if test -s out/conftest.err; then
11868 - lt_cv_compiler_c_o=no
11870 - lt_cv_compiler_c_o=yes
11873 - # Append any errors to the config.log.
11874 - cat out/conftest.err 1>&5
11875 - lt_cv_compiler_c_o=no
11877 -CFLAGS="$save_CFLAGS"
11879 -$rm conftest* out/*
11883 -$rm -r conftest 2>/dev/null
11887 -compiler_c_o=$lt_cv_compiler_c_o
11888 -echo "$as_me:$LINENO: result: $compiler_c_o" >&5
11889 -echo "${ECHO_T}$compiler_c_o" >&6
11891 -if test x"$compiler_c_o" = x"yes"; then
11892 - # Check to see if we can write to a .lo
11893 - echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5
11894 -echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6
11895 - if test "${lt_cv_compiler_o_lo+set}" = set; then
11896 - echo $ECHO_N "(cached) $ECHO_C" >&6
11899 - lt_cv_compiler_o_lo=no
11900 - save_CFLAGS="$CFLAGS"
11901 - CFLAGS="$CFLAGS -c -o conftest.lo"
11902 - save_objext="$ac_objext"
11904 - cat >conftest.$ac_ext <<_ACEOF
11905 -#line $LINENO "configure"
11906 -#include "confdefs.h"
11911 -int some_variable = 0;
11916 -rm -f conftest.$ac_objext
11917 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11918 - (eval $ac_compile) 2>&5
11920 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11921 - (exit $ac_status); } &&
11922 - { ac_try='test -s conftest.$ac_objext'
11923 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11924 - (eval $ac_try) 2>&5
11926 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11927 - (exit $ac_status); }; }; then
11928 - # The compiler can only warn and ignore the option if not recognized
11929 - # So say no if there are warnings
11930 - if test -s conftest.err; then
11931 - lt_cv_compiler_o_lo=no
11933 - lt_cv_compiler_o_lo=yes
11937 - echo "$as_me: failed program was:" >&5
11938 -cat conftest.$ac_ext >&5
11940 -rm -f conftest.$ac_objext conftest.$ac_ext
11941 - ac_objext="$save_objext"
11942 - CFLAGS="$save_CFLAGS"
11946 - compiler_o_lo=$lt_cv_compiler_o_lo
11947 - echo "$as_me:$LINENO: result: $compiler_o_lo" >&5
11948 -echo "${ECHO_T}$compiler_o_lo" >&6
11953 -# Check to see if we can do hard links to lock some files if needed
11954 -hard_links="nottested"
11955 -if test "$compiler_c_o" = no && test "$need_locks" != no; then
11956 - # do not overwrite the value of need_locks provided by the user
11957 - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
11958 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
11961 - ln conftest.a conftest.b 2>/dev/null && hard_links=no
11963 - ln conftest.a conftest.b 2>&5 || hard_links=no
11964 - ln conftest.a conftest.b 2>/dev/null && hard_links=no
11965 - echo "$as_me:$LINENO: result: $hard_links" >&5
11966 -echo "${ECHO_T}$hard_links" >&6
11967 - if test "$hard_links" = no; then
11968 - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
11969 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
11976 -if test "$GCC" = yes; then
11977 - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
11978 - echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
11979 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
11980 - echo "int some_variable = 0;" > conftest.$ac_ext
11981 - save_CFLAGS="$CFLAGS"
11982 - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
11983 - compiler_rtti_exceptions=no
11984 - cat >conftest.$ac_ext <<_ACEOF
11985 -#line $LINENO "configure"
11986 -#include "confdefs.h"
11991 -int some_variable = 0;
11996 -rm -f conftest.$ac_objext
11997 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11998 - (eval $ac_compile) 2>&5
12000 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
12001 - (exit $ac_status); } &&
12002 - { ac_try='test -s conftest.$ac_objext'
12003 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12004 - (eval $ac_try) 2>&5
12006 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
12007 - (exit $ac_status); }; }; then
12008 - # The compiler can only warn and ignore the option if not recognized
12009 - # So say no if there are warnings
12010 - if test -s conftest.err; then
12011 - compiler_rtti_exceptions=no
12013 - compiler_rtti_exceptions=yes
12017 - echo "$as_me: failed program was:" >&5
12018 -cat conftest.$ac_ext >&5
12020 -rm -f conftest.$ac_objext conftest.$ac_ext
12021 - CFLAGS="$save_CFLAGS"
12022 - echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5
12023 -echo "${ECHO_T}$compiler_rtti_exceptions" >&6
12025 - if test "$compiler_rtti_exceptions" = "yes"; then
12026 - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
12028 - no_builtin_flag=' -fno-builtin'
12032 -# See if the linker supports building shared libraries.
12033 -echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5
12034 -echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6
12036 -allow_undefined_flag=
12037 -no_undefined_flag=
12038 -need_lib_prefix=unknown
12039 -need_version=unknown
12040 -# when you set need_version to no, make sure it does not cause -set_version
12041 -# flags to be left without arguments
12043 -archive_expsym_cmds=
12044 -old_archive_from_new_cmds=
12045 -old_archive_from_expsyms_cmds=
12046 -export_dynamic_flag_spec=
12047 -whole_archive_flag_spec=
12048 -thread_safe_flag_spec=
12049 -hardcode_into_libs=no
12050 -hardcode_libdir_flag_spec=
12051 -hardcode_libdir_separator=
12052 -hardcode_direct=no
12053 -hardcode_minus_L=no
12054 -hardcode_shlibpath_var=unsupported
12056 -link_all_deplibs=unknown
12057 -always_export_symbols=no
12058 -export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
12059 -# include_expsyms should be a list of space-separated symbols to be *always*
12060 -# included in the symbol list
12062 -# exclude_expsyms can be an egrep regular expression of symbols to exclude
12063 -# it will be wrapped by ` (' and `)$', so one must not match beginning or
12064 -# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
12065 -# as well as any symbol that contains `d'.
12066 -exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
12067 -# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
12068 -# platforms (ab)use it in PIC code, but their linkers get confused if
12069 -# the symbol is explicitly referenced. Since portable code cannot
12070 -# rely on this symbol name, it's probably fine to never include it in
12071 -# preloaded symbol tables.
12072 -extract_expsyms_cmds=
12075 -cygwin* | mingw* | pw32*)
12076 - # FIXME: the MSVC++ port hasn't been tested in a loooong time
12077 - # When not using gcc, we currently assume that we are using
12078 - # Microsoft Visual C++.
12079 - if test "$GCC" != yes; then
12089 -if test "$with_gnu_ld" = yes; then
12090 - # If archive_cmds runs LD, not CC, wlarc should be empty
12093 - # See if GNU ld supports shared libraries.
12095 - aix3* | aix4* | aix5*)
12096 - # On AIX, the GNU linker is very broken
12097 - # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
12101 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported
12102 -*** to be unable to reliably create shared libraries on AIX.
12103 -*** Therefore, libtool is disabling shared libraries support. If you
12104 -*** really care for shared libraries, you may want to modify your PATH
12105 -*** so that a non-GNU linker is found, and then restart.
12111 - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
12112 - hardcode_libdir_flag_spec='-L$libdir'
12113 - hardcode_minus_L=yes
12115 - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
12116 - # that the semantics of dynamic libraries on AmigaOS, at least up
12117 - # to version 4, is to share data among multiple programs linked
12118 - # with the same dynamic library. Since this doesn't match the
12119 - # behavior of shared libraries on other platforms, we can use
12125 - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
12126 - allow_undefined_flag=unsupported
12127 - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
12128 - # support --undefined. This deserves some investigation. FIXME
12129 - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12135 - cygwin* | mingw* | pw32*)
12136 - # hardcode_libdir_flag_spec is actually meaningless, as there is
12137 - # no search path for DLLs.
12138 - hardcode_libdir_flag_spec='-L$libdir'
12139 - allow_undefined_flag=unsupported
12140 - always_export_symbols=yes
12142 - extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
12143 - sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
12144 - test -f $output_objdir/impgen.exe || (cd $output_objdir && \
12145 - if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
12146 - else $CC -o impgen impgen.c ; fi)~
12147 - $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
12149 - old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
12151 - # cygwin and mingw dlls have different entry points and sets of symbols
12153 - # FIXME: what about values for MSVC?
12154 - dll_entry=__cygwin_dll_entry@12
12155 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
12159 - dll_entry=_DllMainCRTStartup@12
12160 - dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
12164 - # mingw and cygwin differ, and it's simplest to just exclude the union
12165 - # of the two symbol sets.
12166 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
12168 - # recent cygwin and mingw systems supply a stub DllMain which the user
12169 - # can override, but on older systems we have to supply one (in ltdll.c)
12170 - if test "x$lt_cv_need_dllmain" = "xyes"; then
12171 - ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
12172 - ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
12173 - test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
12179 - # Extract the symbol export list from an `--export-all' def file,
12180 - # then regenerate the def file from the symbol export list, so that
12181 - # the compiled dll only exports the symbol export list.
12182 - # Be careful not to strip the DATA tag left be newer dlltools.
12183 - export_symbols_cmds="$ltdll_cmds"'
12184 - $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
12185 - sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
12187 - # If the export-symbols file already is a .def file (1st line
12188 - # is EXPORTS), use it as is.
12189 - # If DATA tags from a recent dlltool are present, honour them!
12190 - archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
12191 - cp $export_symbols $output_objdir/$soname-def;
12193 - echo EXPORTS > $output_objdir/$soname-def;
12195 - cat $export_symbols | while read symbol; do
12196 - set dummy \$symbol;
12198 - 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
12199 - *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
12201 - _lt_hint=`expr 1 + \$_lt_hint`;
12205 - $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
12206 - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
12207 - $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
12208 - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
12209 - $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
12213 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
12214 - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
12217 - archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12218 - archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
12222 - solaris* | sysv5*)
12223 - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
12227 -*** Warning: The releases 2.8.* of the GNU linker cannot reliably
12228 -*** create shared libraries on Solaris systems. Therefore, libtool
12229 -*** is disabling shared libraries support. We urge you to upgrade GNU
12230 -*** binutils to release 2.9.1 or newer. Another option is to modify
12231 -*** your PATH or compiler configuration so that the native linker is
12232 -*** used, and then restart.
12235 - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
12236 - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12237 - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
12244 - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12246 - hardcode_direct=yes
12247 - hardcode_shlibpath_var=no
12251 - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
12252 - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12253 - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
12260 - if test "$ld_shlibs" = yes; then
12261 - runpath_var=LD_RUN_PATH
12262 - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
12263 - export_dynamic_flag_spec='${wl}--export-dynamic'
12265 - cygwin* | mingw* | pw32*)
12266 - # dlltool doesn't understand --whole-archive et. al.
12267 - whole_archive_flag_spec=
12270 - # ancient GNU ld didn't support --whole-archive et. al.
12271 - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
12272 - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
12274 - whole_archive_flag_spec=
12280 - # PORTME fill in a description of your system's linker (not GNU ld)
12283 - allow_undefined_flag=unsupported
12284 - always_export_symbols=yes
12285 - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
12286 - # Note: this linker hardcodes the directories in LIBPATH if there
12287 - # are no directories specified by -L.
12288 - hardcode_minus_L=yes
12289 - if test "$GCC" = yes && test -z "$link_static_flag"; then
12290 - # Neither direct hardcoding nor static linking is supported with a
12291 - # broken collect2.
12292 - hardcode_direct=unsupported
12297 - if test "$host_cpu" = ia64; then
12298 - # On IA64, the linker does run time linking by default, so we don't
12299 - # have to do anything special.
12300 - aix_use_runtimelinking=no
12301 - exp_sym_flag='-Bexport'
12304 - aix_use_runtimelinking=no
12306 - # Test if we are trying to use run time linking or normal
12307 - # AIX style linking. If -brtl is somewhere in LDFLAGS, we
12308 - # need to do runtime linking.
12309 - case $host_os in aix4.[23]|aix4.[23].*|aix5*)
12310 - for ld_flag in $LDFLAGS; do
12311 - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
12312 - aix_use_runtimelinking=yes
12318 - exp_sym_flag='-bexport'
12319 - no_entry_flag='-bnoentry'
12322 - # When large executables or shared objects are built, AIX ld can
12323 - # have problems creating the table of contents. If linking a library
12324 - # or program results in "error TOC overflow" add -mminimal-toc to
12325 - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
12326 - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
12328 - hardcode_direct=yes
12330 - hardcode_libdir_separator=':'
12331 - if test "$GCC" = yes; then
12332 - case $host_os in aix4.[012]|aix4.[012].*)
12333 - collect2name=`${CC} -print-prog-name=collect2`
12334 - if test -f "$collect2name" && \
12335 - strings "$collect2name" | grep resolve_lib_name >/dev/null
12337 - # We have reworked collect2
12338 - hardcode_direct=yes
12340 - # We have old collect2
12341 - hardcode_direct=unsupported
12342 - # It fails to find uninstalled libraries when the uninstalled
12343 - # path is not listed in the libpath. Setting hardcode_minus_L
12344 - # to unsupported forces relinking
12345 - hardcode_minus_L=yes
12346 - hardcode_libdir_flag_spec='-L$libdir'
12347 - hardcode_libdir_separator=
12351 - shared_flag='-shared'
12354 - if test "$host_cpu" = ia64; then
12355 - shared_flag='${wl}-G'
12357 - if test "$aix_use_runtimelinking" = yes; then
12358 - shared_flag='${wl}-G'
12360 - shared_flag='${wl}-bM:SRE'
12365 - # It seems that -bexpall can do strange things, so it is better to
12366 - # generate a list of symbols to export.
12367 - always_export_symbols=yes
12368 - if test "$aix_use_runtimelinking" = yes; then
12369 - # Warning - without using the other runtime loading flags (-brtl),
12370 - # -berok will link without error, but may produce a broken library.
12371 - allow_undefined_flag='-berok'
12372 - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
12373 - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
12375 - if test "$host_cpu" = ia64; then
12376 - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
12377 - allow_undefined_flag="-z nodefs"
12378 - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
12380 - hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
12381 - # Warning - without using the other run time loading flags,
12382 - # -berok will link without error, but may produce a broken library.
12383 - allow_undefined_flag='${wl}-berok'
12384 - # This is a bit strange, but is similar to how AIX traditionally builds
12385 - # it's shared libraries.
12386 - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
12392 - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
12393 - hardcode_libdir_flag_spec='-L$libdir'
12394 - hardcode_minus_L=yes
12395 - # see comment about different semantics on the GNU ld section
12399 - cygwin* | mingw* | pw32*)
12400 - # When not using gcc, we currently assume that we are using
12401 - # Microsoft Visual C++.
12402 - # hardcode_libdir_flag_spec is actually meaningless, as there is
12403 - # no search path for DLLs.
12404 - hardcode_libdir_flag_spec=' '
12405 - allow_undefined_flag=unsupported
12406 - # Tell ltmain to make .lib files, not .a files.
12408 - # FIXME: Setting linknames here is a bad hack.
12409 - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
12410 - # The linker will automatically build a .lib file if we build a DLL.
12411 - old_archive_from_new_cmds='true'
12412 - # FIXME: Should let the user specify the lib program.
12413 - old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
12414 - fix_srcfile_path='`cygpath -w "$srcfile"`'
12417 - darwin* | rhapsody*)
12418 - case "$host_os" in
12419 - rhapsody* | darwin1.[012])
12420 - allow_undefined_flag='-undefined suppress'
12422 - *) # Darwin 1.3 on
12423 - allow_undefined_flag='-flat_namespace -undefined suppress'
12426 - # FIXME: Relying on posixy $() will cause problems for
12427 - # cross-compilation, but unfortunately the echo tests do not
12428 - # yet detect zsh echo's removal of \ escapes.
12429 - archive_cmds='$nonopt $(test "x$module" = xyes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linker_flags -install_name $rpath/$soname $verstring'
12430 - # We need to add '_' to the symbols in $export_symbols first
12431 - #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
12432 - hardcode_direct=yes
12433 - hardcode_shlibpath_var=no
12434 - whole_archive_flag_spec='-all_load $convenience'
12441 - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
12442 - # support. Future versions do this automatically, but an explicit c++rt0.o
12443 - # does not break anything, and helps significantly (at the cost of a little
12446 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
12447 - hardcode_libdir_flag_spec='-R$libdir'
12448 - hardcode_direct=yes
12449 - hardcode_shlibpath_var=no
12452 - # Unfortunately, older versions of FreeBSD 2 do not have this feature.
12454 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12455 - hardcode_direct=yes
12456 - hardcode_minus_L=yes
12457 - hardcode_shlibpath_var=no
12460 - # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
12462 - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
12463 - hardcode_libdir_flag_spec='-R$libdir'
12464 - hardcode_direct=yes
12465 - hardcode_shlibpath_var=no
12468 - hpux9* | hpux10* | hpux11*)
12470 - hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
12471 - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
12473 - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
12474 - hardcode_libdir_separator=:
12475 - hardcode_direct=yes
12476 - hardcode_minus_L=yes # Not in the search PATH, but as the default
12477 - # location of the library.
12478 - export_dynamic_flag_spec='${wl}-E'
12482 - if test "$GCC" = yes; then
12483 - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
12485 - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
12487 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12488 - hardcode_libdir_separator=:
12489 - link_all_deplibs=yes
12493 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
12494 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
12496 - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
12498 - hardcode_libdir_flag_spec='-R$libdir'
12499 - hardcode_direct=yes
12500 - hardcode_shlibpath_var=no
12504 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12505 - hardcode_direct=yes
12506 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12507 - hardcode_libdir_separator=:
12508 - hardcode_shlibpath_var=no
12512 - hardcode_direct=yes
12513 - hardcode_shlibpath_var=no
12514 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
12515 - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
12516 - hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12517 - export_dynamic_flag_spec='${wl}-E'
12519 - case "$host_os" in
12520 - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
12521 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12522 - hardcode_libdir_flag_spec='-R$libdir'
12525 - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
12526 - hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12533 - hardcode_libdir_flag_spec='-L$libdir'
12534 - hardcode_minus_L=yes
12535 - allow_undefined_flag=unsupported
12536 - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
12537 - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
12541 - if test "$GCC" = yes; then
12542 - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12543 - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
12545 - allow_undefined_flag=' -expect_unresolved \*'
12546 - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
12548 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12549 - hardcode_libdir_separator=:
12552 - osf4* | osf5*) # as osf3* with the addition of -msym flag
12553 - if test "$GCC" = yes; then
12554 - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12555 - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
12556 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12558 - allow_undefined_flag=' -expect_unresolved \*'
12559 - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
12560 - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
12561 - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
12563 - #Both c and cxx compiler support -rpath directly
12564 - hardcode_libdir_flag_spec='-rpath $libdir'
12566 - hardcode_libdir_separator=:
12570 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12571 - hardcode_shlibpath_var=no
12572 - runpath_var=LD_RUN_PATH
12573 - hardcode_runpath_var=yes
12574 - export_dynamic_flag_spec='${wl}-Bexport'
12578 - # gcc --version < 3.0 without binutils cannot create self contained
12579 - # shared libraries reliably, requiring libgcc.a to resolve some of
12580 - # the object symbols generated in some cases. Libraries that use
12581 - # assert need libgcc.a to resolve __eprintf, for example. Linking
12582 - # a copy of libgcc.a into every shared library to guarantee resolving
12583 - # such symbols causes other problems: According to Tim Van Holder
12584 - # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
12585 - # (to the application) exception stack for one thing.
12586 - no_undefined_flag=' -z defs'
12587 - if test "$GCC" = yes; then
12588 - case `$CC --version 2>/dev/null` in
12592 -*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
12593 -*** create self contained shared libraries on Solaris systems, without
12594 -*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
12595 -*** -no-undefined support, which will at least allow you to build shared
12596 -*** libraries. However, you may find that when you link such libraries
12597 -*** into an application without using GCC, you have to manually add
12598 -*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
12599 -*** upgrade to a newer version of GCC. Another option is to rebuild your
12600 -*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
12603 - no_undefined_flag=
12607 - # $CC -shared without GNU ld will not create a library from C++
12608 - # object files and a static libstdc++, better avoid it by now
12609 - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
12610 - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
12611 - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
12612 - hardcode_libdir_flag_spec='-R$libdir'
12613 - hardcode_shlibpath_var=no
12615 - solaris2.[0-5] | solaris2.[0-5].*) ;;
12616 - *) # Supported since Solaris 2.6 (maybe 2.5.1?)
12617 - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
12619 - link_all_deplibs=yes
12623 - if test "x$host_vendor" = xsequent; then
12624 - # Use $CC to link under sequent, because it throws in some extra .o
12625 - # files that make .init and .fini sections work.
12626 - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
12628 - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
12630 - hardcode_libdir_flag_spec='-L$libdir'
12631 - hardcode_direct=yes
12632 - hardcode_minus_L=yes
12633 - hardcode_shlibpath_var=no
12637 - if test "x$host_vendor" = xsno; then
12638 - archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linker_flags'
12639 - hardcode_direct=yes # is this really true???
12641 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12642 - hardcode_direct=no #Motorola manual says yes, but my tests say they lie
12644 - runpath_var='LD_RUN_PATH'
12645 - hardcode_shlibpath_var=no
12649 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12650 - hardcode_shlibpath_var=no
12651 - export_dynamic_flag_spec='-Bexport'
12655 - no_undefined_flag=' -z text'
12656 - # $CC -shared without GNU ld will not create a library from C++
12657 - # object files and a static libstdc++, better avoid it by now
12658 - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
12659 - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
12660 - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
12661 - hardcode_libdir_flag_spec=
12662 - hardcode_shlibpath_var=no
12663 - runpath_var='LD_RUN_PATH'
12667 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12668 - hardcode_libdir_flag_spec='-L$libdir'
12669 - hardcode_shlibpath_var=no
12673 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12674 - hardcode_libdir_flag_spec='-L$libdir'
12675 - hardcode_shlibpath_var=no
12679 - if test -d /usr/nec; then
12680 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12681 - hardcode_shlibpath_var=no
12682 - runpath_var=LD_RUN_PATH
12683 - hardcode_runpath_var=yes
12689 - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
12690 - hardcode_direct=yes
12691 - hardcode_minus_L=no
12692 - hardcode_shlibpath_var=no
12693 - hardcode_runpath_var=yes
12694 - runpath_var=LD_RUN_PATH
12697 - sysv5uw7* | unixware7*)
12698 - no_undefined_flag='${wl}-z ${wl}text'
12699 - if test "$GCC" = yes; then
12700 - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
12702 - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
12704 - runpath_var='LD_RUN_PATH'
12705 - hardcode_shlibpath_var=no
12713 -echo "$as_me:$LINENO: result: $ld_shlibs" >&5
12714 -echo "${ECHO_T}$ld_shlibs" >&6
12715 -test "$ld_shlibs" = no && can_build_shared=no
12717 -# Check hardcoding attributes.
12718 -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
12719 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
12721 -if test -n "$hardcode_libdir_flag_spec" || \
12722 - test -n "$runpath_var"; then
12724 - # We can hardcode non-existant directories.
12725 - if test "$hardcode_direct" != no &&
12726 - # If the only mechanism to avoid hardcoding is shlibpath_var, we
12727 - # have to relink, otherwise we might link with an installed library
12728 - # when we should be linking with a yet-to-be-installed one
12729 - ## test "$hardcode_shlibpath_var" != no &&
12730 - test "$hardcode_minus_L" != no; then
12731 - # Linking always hardcodes the temporary library directory.
12732 - hardcode_action=relink
12734 - # We can link without hardcoding, and we can hardcode nonexisting dirs.
12735 - hardcode_action=immediate
12738 - # We cannot hardcode anything, or else we can only hardcode existing
12740 - hardcode_action=unsupported
12742 -echo "$as_me:$LINENO: result: $hardcode_action" >&5
12743 -echo "${ECHO_T}$hardcode_action" >&6
12747 -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
12748 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
12749 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
12750 - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
12751 - test -z "$striplib" && striplib="$STRIP --strip-unneeded"
12752 - echo "$as_me:$LINENO: result: yes" >&5
12753 -echo "${ECHO_T}yes" >&6
12755 - echo "$as_me:$LINENO: result: no" >&5
12756 -echo "${ECHO_T}no" >&6
12759 -reload_cmds='$LD$reload_flag -o $output$reload_objs'
12760 -test -z "$deplibs_check_method" && deplibs_check_method=unknown
12762 -# PORTME Fill in your ld.so characteristics
12763 -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
12764 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
12765 -library_names_spec=
12766 -libname_spec='lib$name'
12769 -postuninstall_cmds=
12773 -shlibpath_overrides_runpath=unknown
12775 -dynamic_linker="$host_os ld.so"
12776 -sys_lib_dlsearch_path_spec="/lib /usr/lib"
12777 -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
12781 - version_type=linux
12782 - library_names_spec='${libname}${release}.so$versuffix $libname.a'
12783 - shlibpath_var=LIBPATH
12785 - # AIX has no versioning support, so we append a major version to the name.
12786 - soname_spec='${libname}${release}.so$major'
12790 - version_type=linux
12791 - if test "$host_cpu" = ia64; then
12792 - # AIX 5 supports IA64
12793 - library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
12794 - shlibpath_var=LD_LIBRARY_PATH
12796 - # With GCC up to 2.95.x, collect2 would create an import file
12797 - # for dependence libraries. The import file would start with
12798 - # the line `#! .'. This would cause the generated library to
12799 - # depend on `.', always an invalid library. This was fixed in
12800 - # development snapshots of GCC prior to 3.0.
12802 - aix4 | aix4.[01] | aix4.[01].*)
12803 - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
12805 - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
12808 - can_build_shared=no
12812 - # AIX (on Power*) has no versioning support, so currently we can
12813 - # not hardcode correct soname into executable. Probably we can
12814 - # add versioning support to collect2, so additional links can
12815 - # be useful in future.
12816 - if test "$aix_use_runtimelinking" = yes; then
12817 - # If using run time linking (on AIX 4.2 or later) use lib<name>.so
12818 - # instead of lib<name>.a to let people know that these are not
12819 - # typical AIX shared libraries.
12820 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12822 - # We preserve .a as extension for shared libraries through AIX4.2
12823 - # and later when we are not doing run time linking.
12824 - library_names_spec='${libname}${release}.a $libname.a'
12825 - soname_spec='${libname}${release}.so$major'
12827 - shlibpath_var=LIBPATH
12832 - library_names_spec='$libname.ixlibrary $libname.a'
12833 - # Create ${libname}_ixlibrary.a entries in /sys/libs.
12834 - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
12838 - library_names_spec='${libname}.so'
12839 - dynamic_linker="$host_os ld.so"
12840 - shlibpath_var=LIBRARY_PATH
12844 - version_type=linux
12846 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12847 - soname_spec='${libname}${release}.so$major'
12848 - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
12849 - shlibpath_var=LD_LIBRARY_PATH
12850 - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
12851 - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
12852 - export_dynamic_flag_spec=-rdynamic
12853 - # the default ld.so.conf also contains /usr/contrib/lib and
12854 - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
12855 - # libtool to hard-code these into programs
12858 -cygwin* | mingw* | pw32*)
12859 - version_type=windows
12861 - need_lib_prefix=no
12862 - case $GCC,$host_os in
12864 - library_names_spec='$libname.dll.a'
12865 - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
12866 - postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
12867 - dldir=$destdir/`dirname \$dlpath`~
12868 - test -d \$dldir || mkdir -p \$dldir~
12869 - $install_prog .libs/$dlname \$dldir/$dlname'
12870 - postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
12871 - dlpath=$dir/\$dldll~
12875 - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
12876 - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
12879 - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
12882 - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
12885 - dynamic_linker='Win32 ld.exe'
12886 - # FIXME: first we should search . and the directory the executable is in
12887 - shlibpath_var=PATH
12890 -darwin* | rhapsody*)
12891 - dynamic_linker="$host_os dyld"
12892 - version_type=darwin
12893 - need_lib_prefix=no
12895 - # FIXME: Relying on posixy $() will cause problems for
12896 - # cross-compilation, but unfortunately the echo tests do not
12897 - # yet detect zsh echo's removal of \ escapes.
12898 - library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
12899 - soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
12900 - shlibpath_overrides_runpath=yes
12901 - shlibpath_var=DYLD_LIBRARY_PATH
12905 - dynamic_linker=no
12909 - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
12910 - version_type=freebsd-$objformat
12911 - case $version_type in
12913 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
12915 - need_lib_prefix=no
12918 - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
12922 - shlibpath_var=LD_LIBRARY_PATH
12925 - shlibpath_overrides_runpath=yes
12928 - shlibpath_overrides_runpath=no
12929 - hardcode_into_libs=yes
12935 - version_type=linux
12936 - need_lib_prefix=no
12938 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
12939 - soname_spec='${libname}${release}.so$major'
12940 - shlibpath_var=LD_LIBRARY_PATH
12941 - hardcode_into_libs=yes
12944 -hpux9* | hpux10* | hpux11*)
12945 - # Give a soname corresponding to the major version so that dld.sl refuses to
12946 - # link against other versions.
12947 - dynamic_linker="$host_os dld.sl"
12948 - version_type=sunos
12949 - need_lib_prefix=no
12951 - shlibpath_var=SHLIB_PATH
12952 - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
12953 - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
12954 - soname_spec='${libname}${release}.sl$major'
12955 - # HP-UX runs *really* slowly unless shared libraries are mode 555.
12956 - postinstall_cmds='chmod 555 $lib'
12960 - version_type=irix
12961 - need_lib_prefix=no
12963 - soname_spec='${libname}${release}.so$major'
12964 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
12967 - libsuff= shlibsuff=
12970 - case $LD in # libtool.m4 will add one of these switches to LD
12971 - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
12972 - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
12973 - *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
12974 - *) libsuff= shlibsuff= libmagic=never-match;;
12978 - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
12979 - shlibpath_overrides_runpath=no
12980 - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
12981 - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
12984 -# No shared lib support for Linux oldld, aout, or coff.
12985 -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
12986 - dynamic_linker=no
12989 -# This must be Linux ELF.
12991 - version_type=linux
12992 - need_lib_prefix=no
12994 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12995 - soname_spec='${libname}${release}.so$major'
12996 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
12997 - shlibpath_var=LD_LIBRARY_PATH
12998 - shlibpath_overrides_runpath=no
12999 - # This implies no fast_install, which is unacceptable.
13000 - # Some rework will be needed to allow for fast_install
13001 - # before this can be enabled.
13002 - hardcode_into_libs=yes
13004 - # We used to test for /lib/ld.so.1 and disable shared libraries on
13005 - # powerpc, because MkLinux only supported shared libraries with the
13006 - # GNU dynamic linker. Since this was broken with cross compilers,
13007 - # most powerpc-linux boxes support dynamic linking these days and
13008 - # people can always --disable-shared, the test was removed, and we
13009 - # assume the GNU/Linux dynamic linker is in use.
13010 - dynamic_linker='GNU/Linux ld.so'
13014 - version_type=sunos
13015 - need_lib_prefix=no
13017 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
13018 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
13019 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
13020 - dynamic_linker='NetBSD (a.out) ld.so'
13022 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
13023 - soname_spec='${libname}${release}.so$major'
13024 - dynamic_linker='NetBSD ld.elf_so'
13026 - shlibpath_var=LD_LIBRARY_PATH
13027 - shlibpath_overrides_runpath=yes
13028 - hardcode_into_libs=yes
13032 - version_type=linux
13033 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13034 - shlibpath_var=LD_LIBRARY_PATH
13035 - shlibpath_overrides_runpath=yes
13039 - version_type=sunos
13040 - need_lib_prefix=no
13042 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
13043 - case "$host_os" in
13044 - openbsd2.[89] | openbsd2.[89].*)
13045 - shlibpath_overrides_runpath=no
13048 - shlibpath_overrides_runpath=yes
13052 - shlibpath_overrides_runpath=yes
13054 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
13055 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
13056 - shlibpath_var=LD_LIBRARY_PATH
13060 - libname_spec='$name'
13061 - need_lib_prefix=no
13062 - library_names_spec='$libname.dll $libname.a'
13063 - dynamic_linker='OS/2 ld.exe'
13064 - shlibpath_var=LIBPATH
13067 -osf3* | osf4* | osf5*)
13070 - soname_spec='${libname}${release}.so'
13071 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
13072 - shlibpath_var=LD_LIBRARY_PATH
13073 - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
13074 - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
13079 - soname_spec='${libname}${release}.so$major'
13080 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13081 - shlibpath_var=LD_LIBRARY_PATH
13085 - version_type=linux
13086 - need_lib_prefix=no
13088 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13089 - soname_spec='${libname}${release}.so$major'
13090 - shlibpath_var=LD_LIBRARY_PATH
13091 - shlibpath_overrides_runpath=yes
13092 - hardcode_into_libs=yes
13093 - # ldd complains unless libraries are executable
13094 - postinstall_cmds='chmod +x $lib'
13098 - version_type=sunos
13099 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
13100 - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
13101 - shlibpath_var=LD_LIBRARY_PATH
13102 - shlibpath_overrides_runpath=yes
13103 - if test "$with_gnu_ld" = yes; then
13104 - need_lib_prefix=no
13109 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
13110 - version_type=linux
13111 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13112 - soname_spec='${libname}${release}.so$major'
13113 - shlibpath_var=LD_LIBRARY_PATH
13114 - case $host_vendor in
13116 - shlibpath_overrides_runpath=no
13119 - need_lib_prefix=no
13121 - shlibpath_overrides_runpath=no
13122 - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
13128 - version_type=linux
13129 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13130 - soname_spec='${libname}${release}.so$major'
13131 - shlibpath_var=LD_LIBRARY_PATH
13135 - version_type=linux
13136 - need_lib_prefix=no
13138 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13139 - soname_spec='${libname}${release}.so$major'
13140 - shlibpath_var=LD_LIBRARY_PATH
13144 - if test -d /usr/nec ;then
13145 - version_type=linux
13146 - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
13147 - soname_spec='$libname.so.$major'
13148 - shlibpath_var=LD_LIBRARY_PATH
13153 - dynamic_linker=no
13156 -echo "$as_me:$LINENO: result: $dynamic_linker" >&5
13157 -echo "${ECHO_T}$dynamic_linker" >&6
13158 -test "$dynamic_linker" = no && can_build_shared=no
13160 -# Report the final consequences.
13161 -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
13162 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
13163 -echo "$as_me:$LINENO: result: $can_build_shared" >&5
13164 -echo "${ECHO_T}$can_build_shared" >&6
13166 -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
13167 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
13168 -test "$can_build_shared" = "no" && enable_shared=no
13170 -# On AIX, shared libraries and static libraries use the same namespace, and
13171 -# are all built from PIC.
13172 -case "$host_os" in
13174 - test "$enable_shared" = yes && enable_static=no
13175 - if test -n "$RANLIB"; then
13176 - archive_cmds="$archive_cmds~\$RANLIB \$lib"
13177 - postinstall_cmds='$RANLIB $lib'
13182 - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
13183 - test "$enable_shared" = yes && enable_static=no
13187 -echo "$as_me:$LINENO: result: $enable_shared" >&5
13188 -echo "${ECHO_T}$enable_shared" >&6
13190 -echo "$as_me:$LINENO: checking whether to build static libraries" >&5
13191 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
13192 -# Make sure either enable_shared or enable_static is yes.
13193 -test "$enable_shared" = yes || enable_static=yes
13194 -echo "$as_me:$LINENO: result: $enable_static" >&5
13195 -echo "${ECHO_T}$enable_static" >&6
13197 -if test "$hardcode_action" = relink; then
13198 - # Fast installation is not supported
13199 - enable_fast_install=no
13200 -elif test "$shlibpath_overrides_runpath" = yes ||
13201 - test "$enable_shared" = no; then
13202 - # Fast installation is not necessary
13203 - enable_fast_install=needless
13206 -variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
13207 -if test "$GCC" = yes; then
13208 - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
13211 -if test "x$enable_dlopen" != xyes; then
13212 - enable_dlopen=unknown
13213 - enable_dlopen_self=unknown
13214 - enable_dlopen_self_static=unknown
13217 - lt_cv_dlopen_libs=
13221 - lt_cv_dlopen="load_add_on"
13222 - lt_cv_dlopen_libs=
13223 - lt_cv_dlopen_self=yes
13226 - cygwin* | mingw* | pw32*)
13227 - lt_cv_dlopen="LoadLibrary"
13228 - lt_cv_dlopen_libs=
13232 - echo "$as_me:$LINENO: checking for shl_load" >&5
13233 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
13234 -if test "${ac_cv_func_shl_load+set}" = set; then
13235 - echo $ECHO_N "(cached) $ECHO_C" >&6
13237 - cat >conftest.$ac_ext <<_ACEOF
13238 -#line $LINENO "configure"
13239 -#include "confdefs.h"
13240 -/* System header to define __stub macros and hopefully few prototypes,
13241 - which can conflict with char shl_load (); below. */
13242 -#include <assert.h>
13243 -/* Override any gcc2 internal prototype to avoid an error. */
13244 -#ifdef __cplusplus
13247 -/* We use char because int might match the return type of a gcc2
13248 - builtin and then its argument prototype would still apply. */
13255 -/* The GNU C library defines this for functions which it implements
13256 - to always fail with ENOSYS. Some functions are actually named
13257 - something starting with __ and the normal name is an alias. */
13258 -#if defined (__stub_shl_load) || defined (__stub___shl_load)
13268 -rm -f conftest.$ac_objext conftest$ac_exeext
13269 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13270 - (eval $ac_link) 2>&5
13272 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13273 - (exit $ac_status); } &&
13274 - { ac_try='test -s conftest$ac_exeext'
13275 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13276 - (eval $ac_try) 2>&5
13278 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13279 - (exit $ac_status); }; }; then
13280 - ac_cv_func_shl_load=yes
13282 - echo "$as_me: failed program was:" >&5
13283 -cat conftest.$ac_ext >&5
13284 -ac_cv_func_shl_load=no
13286 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13288 -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
13289 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6
13290 -if test $ac_cv_func_shl_load = yes; then
13291 - lt_cv_dlopen="shl_load"
13293 - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
13294 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
13295 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then
13296 - echo $ECHO_N "(cached) $ECHO_C" >&6
13298 - ac_check_lib_save_LIBS=$LIBS
13299 -LIBS="-ldld $LIBS"
13300 -cat >conftest.$ac_ext <<_ACEOF
13301 -#line $LINENO "configure"
13302 -#include "confdefs.h"
13304 -/* Override any gcc2 internal prototype to avoid an error. */
13305 -#ifdef __cplusplus
13308 -/* We use char because int might match the return type of a gcc2
13309 - builtin and then its argument prototype would still apply. */
13319 -rm -f conftest.$ac_objext conftest$ac_exeext
13320 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13321 - (eval $ac_link) 2>&5
13323 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13324 - (exit $ac_status); } &&
13325 - { ac_try='test -s conftest$ac_exeext'
13326 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13327 - (eval $ac_try) 2>&5
13329 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13330 - (exit $ac_status); }; }; then
13331 - ac_cv_lib_dld_shl_load=yes
13333 - echo "$as_me: failed program was:" >&5
13334 -cat conftest.$ac_ext >&5
13335 -ac_cv_lib_dld_shl_load=no
13337 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13338 -LIBS=$ac_check_lib_save_LIBS
13340 -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
13341 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
13342 -if test $ac_cv_lib_dld_shl_load = yes; then
13343 - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
13345 - echo "$as_me:$LINENO: checking for dlopen" >&5
13346 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
13347 -if test "${ac_cv_func_dlopen+set}" = set; then
13348 - echo $ECHO_N "(cached) $ECHO_C" >&6
13350 - cat >conftest.$ac_ext <<_ACEOF
13351 -#line $LINENO "configure"
13352 -#include "confdefs.h"
13353 -/* System header to define __stub macros and hopefully few prototypes,
13354 - which can conflict with char dlopen (); below. */
13355 -#include <assert.h>
13356 -/* Override any gcc2 internal prototype to avoid an error. */
13357 -#ifdef __cplusplus
13360 -/* We use char because int might match the return type of a gcc2
13361 - builtin and then its argument prototype would still apply. */
13368 -/* The GNU C library defines this for functions which it implements
13369 - to always fail with ENOSYS. Some functions are actually named
13370 - something starting with __ and the normal name is an alias. */
13371 -#if defined (__stub_dlopen) || defined (__stub___dlopen)
13381 -rm -f conftest.$ac_objext conftest$ac_exeext
13382 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13383 - (eval $ac_link) 2>&5
13385 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13386 - (exit $ac_status); } &&
13387 - { ac_try='test -s conftest$ac_exeext'
13388 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13389 - (eval $ac_try) 2>&5
13391 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13392 - (exit $ac_status); }; }; then
13393 - ac_cv_func_dlopen=yes
13395 - echo "$as_me: failed program was:" >&5
13396 -cat conftest.$ac_ext >&5
13397 -ac_cv_func_dlopen=no
13399 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13401 -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
13402 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6
13403 -if test $ac_cv_func_dlopen = yes; then
13404 - lt_cv_dlopen="dlopen"
13406 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
13407 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
13408 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
13409 - echo $ECHO_N "(cached) $ECHO_C" >&6
13411 - ac_check_lib_save_LIBS=$LIBS
13413 -cat >conftest.$ac_ext <<_ACEOF
13414 -#line $LINENO "configure"
13415 -#include "confdefs.h"
13417 -/* Override any gcc2 internal prototype to avoid an error. */
13418 -#ifdef __cplusplus
13421 -/* We use char because int might match the return type of a gcc2
13422 - builtin and then its argument prototype would still apply. */
13432 -rm -f conftest.$ac_objext conftest$ac_exeext
13433 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13434 - (eval $ac_link) 2>&5
13436 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13437 - (exit $ac_status); } &&
13438 - { ac_try='test -s conftest$ac_exeext'
13439 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13440 - (eval $ac_try) 2>&5
13442 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13443 - (exit $ac_status); }; }; then
13444 - ac_cv_lib_dl_dlopen=yes
13446 - echo "$as_me: failed program was:" >&5
13447 -cat conftest.$ac_ext >&5
13448 -ac_cv_lib_dl_dlopen=no
13450 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13451 -LIBS=$ac_check_lib_save_LIBS
13453 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
13454 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
13455 -if test $ac_cv_lib_dl_dlopen = yes; then
13456 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
13458 - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
13459 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
13460 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then
13461 - echo $ECHO_N "(cached) $ECHO_C" >&6
13463 - ac_check_lib_save_LIBS=$LIBS
13464 -LIBS="-lsvld $LIBS"
13465 -cat >conftest.$ac_ext <<_ACEOF
13466 -#line $LINENO "configure"
13467 -#include "confdefs.h"
13469 -/* Override any gcc2 internal prototype to avoid an error. */
13470 -#ifdef __cplusplus
13473 -/* We use char because int might match the return type of a gcc2
13474 - builtin and then its argument prototype would still apply. */
13484 -rm -f conftest.$ac_objext conftest$ac_exeext
13485 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13486 - (eval $ac_link) 2>&5
13488 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13489 - (exit $ac_status); } &&
13490 - { ac_try='test -s conftest$ac_exeext'
13491 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13492 - (eval $ac_try) 2>&5
13494 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13495 - (exit $ac_status); }; }; then
13496 - ac_cv_lib_svld_dlopen=yes
13498 - echo "$as_me: failed program was:" >&5
13499 -cat conftest.$ac_ext >&5
13500 -ac_cv_lib_svld_dlopen=no
13502 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13503 -LIBS=$ac_check_lib_save_LIBS
13505 -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
13506 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
13507 -if test $ac_cv_lib_svld_dlopen = yes; then
13508 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
13510 - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
13511 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
13512 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then
13513 - echo $ECHO_N "(cached) $ECHO_C" >&6
13515 - ac_check_lib_save_LIBS=$LIBS
13516 -LIBS="-ldld $LIBS"
13517 -cat >conftest.$ac_ext <<_ACEOF
13518 -#line $LINENO "configure"
13519 -#include "confdefs.h"
13521 -/* Override any gcc2 internal prototype to avoid an error. */
13522 -#ifdef __cplusplus
13525 -/* We use char because int might match the return type of a gcc2
13526 - builtin and then its argument prototype would still apply. */
13536 -rm -f conftest.$ac_objext conftest$ac_exeext
13537 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13538 - (eval $ac_link) 2>&5
13540 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13541 - (exit $ac_status); } &&
13542 - { ac_try='test -s conftest$ac_exeext'
13543 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13544 - (eval $ac_try) 2>&5
13546 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13547 - (exit $ac_status); }; }; then
13548 - ac_cv_lib_dld_dld_link=yes
13550 - echo "$as_me: failed program was:" >&5
13551 -cat conftest.$ac_ext >&5
13552 -ac_cv_lib_dld_dld_link=no
13554 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13555 -LIBS=$ac_check_lib_save_LIBS
13557 -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
13558 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
13559 -if test $ac_cv_lib_dld_dld_link = yes; then
13560 - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
13581 - if test "x$lt_cv_dlopen" != xno; then
13582 - enable_dlopen=yes
13587 - case $lt_cv_dlopen in
13589 - save_CPPFLAGS="$CPPFLAGS"
13590 - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
13592 - save_LDFLAGS="$LDFLAGS"
13593 - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
13595 - save_LIBS="$LIBS"
13596 - LIBS="$lt_cv_dlopen_libs $LIBS"
13598 - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
13599 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
13600 -if test "${lt_cv_dlopen_self+set}" = set; then
13601 - echo $ECHO_N "(cached) $ECHO_C" >&6
13603 - if test "$cross_compiling" = yes; then :
13604 - lt_cv_dlopen_self=cross
13606 - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13607 - lt_status=$lt_dlunknown
13608 - cat > conftest.$ac_ext <<EOF
13609 -#line __oline__ "configure"
13610 -#include "confdefs.h"
13613 -#include <dlfcn.h>
13616 -#include <stdio.h>
13618 -#ifdef RTLD_GLOBAL
13619 -# define LT_DLGLOBAL RTLD_GLOBAL
13622 -# define LT_DLGLOBAL DL_GLOBAL
13624 -# define LT_DLGLOBAL 0
13628 -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13629 - find out it does not work in some platform. */
13630 -#ifndef LT_DLLAZY_OR_NOW
13632 -# define LT_DLLAZY_OR_NOW RTLD_LAZY
13635 -# define LT_DLLAZY_OR_NOW DL_LAZY
13638 -# define LT_DLLAZY_OR_NOW RTLD_NOW
13641 -# define LT_DLLAZY_OR_NOW DL_NOW
13643 -# define LT_DLLAZY_OR_NOW 0
13650 -#ifdef __cplusplus
13651 -extern "C" void exit (int);
13654 -void fnord() { int i=42;}
13657 - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13658 - int status = $lt_dlunknown;
13662 - if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13663 - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13664 - /* dlclose (self); */
13670 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13671 - (eval $ac_link) 2>&5
13673 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13674 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
13675 - (./conftest; exit; ) 2>/dev/null
13677 - case x$lt_status in
13678 - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
13679 - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
13680 - x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
13683 - # compilation failed
13684 - lt_cv_dlopen_self=no
13691 -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
13692 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6
13694 - if test "x$lt_cv_dlopen_self" = xyes; then
13695 - LDFLAGS="$LDFLAGS $link_static_flag"
13696 - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
13697 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
13698 -if test "${lt_cv_dlopen_self_static+set}" = set; then
13699 - echo $ECHO_N "(cached) $ECHO_C" >&6
13701 - if test "$cross_compiling" = yes; then :
13702 - lt_cv_dlopen_self_static=cross
13704 - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13705 - lt_status=$lt_dlunknown
13706 - cat > conftest.$ac_ext <<EOF
13707 -#line __oline__ "configure"
13708 -#include "confdefs.h"
13711 -#include <dlfcn.h>
13714 -#include <stdio.h>
13716 -#ifdef RTLD_GLOBAL
13717 -# define LT_DLGLOBAL RTLD_GLOBAL
13720 -# define LT_DLGLOBAL DL_GLOBAL
13722 -# define LT_DLGLOBAL 0
13726 -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13727 - find out it does not work in some platform. */
13728 -#ifndef LT_DLLAZY_OR_NOW
13730 -# define LT_DLLAZY_OR_NOW RTLD_LAZY
13733 -# define LT_DLLAZY_OR_NOW DL_LAZY
13736 -# define LT_DLLAZY_OR_NOW RTLD_NOW
13739 -# define LT_DLLAZY_OR_NOW DL_NOW
13741 -# define LT_DLLAZY_OR_NOW 0
13748 -#ifdef __cplusplus
13749 -extern "C" void exit (int);
13752 -void fnord() { int i=42;}
13755 - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13756 - int status = $lt_dlunknown;
13760 - if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13761 - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13762 - /* dlclose (self); */
13768 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13769 - (eval $ac_link) 2>&5
13771 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13772 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
13773 - (./conftest; exit; ) 2>/dev/null
13775 - case x$lt_status in
13776 - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
13777 - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
13778 - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
13781 - # compilation failed
13782 - lt_cv_dlopen_self_static=no
13789 -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
13790 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
13793 - CPPFLAGS="$save_CPPFLAGS"
13794 - LDFLAGS="$save_LDFLAGS"
13795 - LIBS="$save_LIBS"
13799 - case $lt_cv_dlopen_self in
13800 - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
13801 - *) enable_dlopen_self=unknown ;;
13804 - case $lt_cv_dlopen_self_static in
13805 - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
13806 - *) enable_dlopen_self_static=unknown ;;
13811 -if test "$enable_shared" = yes && test "$GCC" = yes; then
13812 - case $archive_cmds in
13814 - # FIXME: we may have to deal with multi-command sequences.
13817 - # Test whether the compiler implicitly links with -lc since on some
13818 - # systems, -lgcc has to come before -lc. If gcc already passes -lc
13819 - # to ld, don't add -lc before -lgcc.
13820 - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
13821 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
13822 - if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
13823 - echo $ECHO_N "(cached) $ECHO_C" >&6
13826 - echo 'static int dummy;' > conftest.$ac_ext
13828 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13829 - (eval $ac_compile) 2>&5
13831 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13832 - (exit $ac_status); }; then
13835 - libobjs=conftest.$ac_objext
13837 - wl=$lt_cv_prog_cc_wl
13838 - compiler_flags=-v
13843 - save_allow_undefined_flag=$allow_undefined_flag
13844 - allow_undefined_flag=
13845 - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
13846 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
13848 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13849 - (exit $ac_status); }
13851 - lt_cv_archive_cmds_need_lc=no
13853 - lt_cv_archive_cmds_need_lc=yes
13855 - allow_undefined_flag=$save_allow_undefined_flag
13857 - cat conftest.err 1>&5
13861 - echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
13862 -echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
13866 -need_lc=${lt_cv_archive_cmds_need_lc-yes}
13868 -# The second clause should only fire when bootstrapping the
13869 -# libtool distribution, otherwise you forgot to ship ltmain.sh
13870 -# with your package, and you will get complaints that there are
13871 -# no rules to generate ltmain.sh.
13872 -if test -f "$ltmain"; then
13875 - # If there is no Makefile yet, we rely on a make rule to execute
13876 - # `config.status --recheck' to rerun these tests and create the
13877 - # libtool script then.
13878 - test -f Makefile && make "$ltmain"
13881 -if test -f "$ltmain"; then
13882 - trap "$rm \"${ofile}T\"; exit 1" 1 2 15
13883 - $rm -f "${ofile}T"
13885 - echo creating $ofile
13887 - # Now quote all the things that may contain metacharacters while being
13888 - # careful not to overquote the AC_SUBSTed values. We take copies of the
13889 - # variables and quote the copies for generation of the libtool script.
13890 - for var in echo old_CC old_CFLAGS \
13891 - AR AR_FLAGS CC LD LN_S NM SHELL \
13892 - reload_flag reload_cmds wl \
13893 - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
13894 - thread_safe_flag_spec whole_archive_flag_spec libname_spec \
13895 - library_names_spec soname_spec \
13896 - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
13897 - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
13898 - postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
13899 - old_striplib striplib file_magic_cmd export_symbols_cmds \
13900 - deplibs_check_method allow_undefined_flag no_undefined_flag \
13901 - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
13902 - global_symbol_to_c_name_address \
13903 - hardcode_libdir_flag_spec hardcode_libdir_separator \
13904 - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
13905 - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
13908 - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
13909 - old_postinstall_cmds | old_postuninstall_cmds | \
13910 - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
13911 - extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
13912 - postinstall_cmds | postuninstall_cmds | \
13913 - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
13914 - # Double-quote double-evaled strings.
13915 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
13918 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
13923 - cat <<__EOF__ > "${ofile}T"
13926 -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
13927 -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
13928 -# NOTE: Changes made to this file will be lost: look at ltmain.sh.
13930 -# Copyright (C) 1996-2000 Free Software Foundation, Inc.
13931 -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
13933 -# This program is free software; you can redistribute it and/or modify
13934 -# it under the terms of the GNU General Public License as published by
13935 -# the Free Software Foundation; either version 2 of the License, or
13936 -# (at your option) any later version.
13938 -# This program is distributed in the hope that it will be useful, but
13939 -# WITHOUT ANY WARRANTY; without even the implied warranty of
13940 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13941 -# General Public License for more details.
13943 -# You should have received a copy of the GNU General Public License
13944 -# along with this program; if not, write to the Free Software
13945 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
13947 -# As a special exception to the GNU General Public License, if you
13948 -# distribute this file as part of a program that contains a
13949 -# configuration script generated by Autoconf, you may include it under
13950 -# the same distribution terms that you use for the rest of that program.
13952 -# Sed that helps us avoid accidentally triggering echo(1) options like -n.
13953 -Xsed="sed -e s/^X//"
13955 -# The HP-UX ksh and POSIX shell print the target directory to stdout
13956 -# if CDPATH is set.
13957 -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
13959 -# ### BEGIN LIBTOOL CONFIG
13961 -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
13963 -# Shell to use when invoking shell scripts.
13966 -# Whether or not to build shared libraries.
13967 -build_libtool_libs=$enable_shared
13969 -# Whether or not to build static libraries.
13970 -build_old_libs=$enable_static
13972 -# Whether or not to add -lc for building shared libraries.
13973 -build_libtool_need_lc=$need_lc
13975 -# Whether or not to optimize for fast installation.
13976 -fast_install=$enable_fast_install
13978 -# The host system.
13979 -host_alias=$host_alias
13982 -# An echo program that does not interpret backslashes.
13987 -AR_FLAGS=$lt_AR_FLAGS
13989 -# The default C compiler.
13992 -# Is the compiler the GNU C compiler?
13995 -# The linker used to build libraries.
13998 -# Whether we need hard or soft links.
14001 -# A BSD-compatible nm program.
14004 -# A symbol stripping program
14007 -# Used to examine libraries when file_magic_cmd begins "file"
14008 -MAGIC_CMD=$MAGIC_CMD
14010 -# Used on cygwin: DLL creation program.
14011 -DLLTOOL="$DLLTOOL"
14013 -# Used on cygwin: object dumper.
14014 -OBJDUMP="$OBJDUMP"
14016 -# Used on cygwin: assembler.
14019 -# The name of the directory that contains temporary libtool files.
14022 -# How to create reloadable object files.
14023 -reload_flag=$lt_reload_flag
14024 -reload_cmds=$lt_reload_cmds
14026 -# How to pass a linker flag through the compiler.
14029 -# Object file suffix (normally "o").
14030 -objext="$ac_objext"
14032 -# Old archive suffix (normally "a").
14035 -# Executable file suffix (normally "").
14038 -# Additional compiler flags for building library objects.
14039 -pic_flag=$lt_pic_flag
14040 -pic_mode=$pic_mode
14042 -# Does compiler simultaneously support -c and -o options?
14043 -compiler_c_o=$lt_compiler_c_o
14045 -# Can we write directly to a .lo ?
14046 -compiler_o_lo=$lt_compiler_o_lo
14048 -# Must we lock files when doing compilation ?
14049 -need_locks=$lt_need_locks
14051 -# Do we need the lib prefix for modules?
14052 -need_lib_prefix=$need_lib_prefix
14054 -# Do we need a version for libraries?
14055 -need_version=$need_version
14057 -# Whether dlopen is supported.
14058 -dlopen_support=$enable_dlopen
14060 -# Whether dlopen of programs is supported.
14061 -dlopen_self=$enable_dlopen_self
14063 -# Whether dlopen of statically linked programs is supported.
14064 -dlopen_self_static=$enable_dlopen_self_static
14066 -# Compiler flag to prevent dynamic linking.
14067 -link_static_flag=$lt_link_static_flag
14069 -# Compiler flag to turn off builtin functions.
14070 -no_builtin_flag=$lt_no_builtin_flag
14072 -# Compiler flag to allow reflexive dlopens.
14073 -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
14075 -# Compiler flag to generate shared objects directly from archives.
14076 -whole_archive_flag_spec=$lt_whole_archive_flag_spec
14078 -# Compiler flag to generate thread-safe objects.
14079 -thread_safe_flag_spec=$lt_thread_safe_flag_spec
14081 -# Library versioning type.
14082 -version_type=$version_type
14084 -# Format of library name prefix.
14085 -libname_spec=$lt_libname_spec
14087 -# List of archive names. First name is the real one, the rest are links.
14088 -# The last name is the one that the linker finds with -lNAME.
14089 -library_names_spec=$lt_library_names_spec
14091 -# The coded name of the library, if different from the real name.
14092 -soname_spec=$lt_soname_spec
14094 -# Commands used to build and install an old-style archive.
14096 -old_archive_cmds=$lt_old_archive_cmds
14097 -old_postinstall_cmds=$lt_old_postinstall_cmds
14098 -old_postuninstall_cmds=$lt_old_postuninstall_cmds
14100 -# Create an old-style archive from a shared archive.
14101 -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
14103 -# Create a temporary old-style archive to link instead of a shared archive.
14104 -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
14106 -# Commands used to build and install a shared archive.
14107 -archive_cmds=$lt_archive_cmds
14108 -archive_expsym_cmds=$lt_archive_expsym_cmds
14109 -postinstall_cmds=$lt_postinstall_cmds
14110 -postuninstall_cmds=$lt_postuninstall_cmds
14112 -# Commands to strip libraries.
14113 -old_striplib=$lt_old_striplib
14114 -striplib=$lt_striplib
14116 -# Method to check whether dependent libraries are shared objects.
14117 -deplibs_check_method=$lt_deplibs_check_method
14119 -# Command to use when deplibs_check_method == file_magic.
14120 -file_magic_cmd=$lt_file_magic_cmd
14122 -# Flag that allows shared libraries with undefined symbols to be built.
14123 -allow_undefined_flag=$lt_allow_undefined_flag
14125 -# Flag that forces no undefined symbols.
14126 -no_undefined_flag=$lt_no_undefined_flag
14128 -# Commands used to finish a libtool library installation in a directory.
14129 -finish_cmds=$lt_finish_cmds
14131 -# Same as above, but a single script fragment to be evaled but not shown.
14132 -finish_eval=$lt_finish_eval
14134 -# Take the output of nm and produce a listing of raw symbols and C names.
14135 -global_symbol_pipe=$lt_global_symbol_pipe
14137 -# Transform the output of nm in a proper C declaration
14138 -global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
14140 -# Transform the output of nm in a C name address pair
14141 -global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
14143 -# This is the shared library runtime path variable.
14144 -runpath_var=$runpath_var
14146 -# This is the shared library path variable.
14147 -shlibpath_var=$shlibpath_var
14149 -# Is shlibpath searched before the hard-coded library search path?
14150 -shlibpath_overrides_runpath=$shlibpath_overrides_runpath
14152 -# How to hardcode a shared library path into an executable.
14153 -hardcode_action=$hardcode_action
14155 -# Whether we should hardcode library paths into libraries.
14156 -hardcode_into_libs=$hardcode_into_libs
14158 -# Flag to hardcode \$libdir into a binary during linking.
14159 -# This must work even if \$libdir does not exist.
14160 -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
14162 -# Whether we need a single -rpath flag with a separated argument.
14163 -hardcode_libdir_separator=$lt_hardcode_libdir_separator
14165 -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
14166 -# resulting binary.
14167 -hardcode_direct=$hardcode_direct
14169 -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
14170 -# resulting binary.
14171 -hardcode_minus_L=$hardcode_minus_L
14173 -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
14174 -# the resulting binary.
14175 -hardcode_shlibpath_var=$hardcode_shlibpath_var
14177 -# Variables whose values should be saved in libtool wrapper scripts and
14178 -# restored at relink time.
14179 -variables_saved_for_relink="$variables_saved_for_relink"
14181 -# Whether libtool must link a program against all its dependency libraries.
14182 -link_all_deplibs=$link_all_deplibs
14184 -# Compile-time system search path for libraries
14185 -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
14187 -# Run-time system search path for libraries
14188 -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
14190 -# Fix the shell variable \$srcfile for the compiler.
14191 -fix_srcfile_path="$fix_srcfile_path"
14193 -# Set to yes if exported symbols are required.
14194 -always_export_symbols=$always_export_symbols
14196 -# The commands to list exported symbols.
14197 -export_symbols_cmds=$lt_export_symbols_cmds
14199 -# The commands to extract the exported symbol list from a shared archive.
14200 -extract_expsyms_cmds=$lt_extract_expsyms_cmds
14202 -# Symbols that should not be listed in the preloaded symbols.
14203 -exclude_expsyms=$lt_exclude_expsyms
14205 -# Symbols that must always be exported.
14206 -include_expsyms=$lt_include_expsyms
14208 -# ### END LIBTOOL CONFIG
14214 - cat <<\EOF >> "${ofile}T"
14216 -# AIX sometimes has problems with the GCC collect2 program. For some
14217 -# reason, if we set the COLLECT_NAMES environment variable, the problems
14218 -# vanish in a puff of smoke.
14219 -if test "X${COLLECT_NAMES+set}" != Xset; then
14221 - export COLLECT_NAMES
14228 - cygwin* | mingw* | pw32* | os2*)
14229 - cat <<'EOF' >> "${ofile}T"
14230 - # This is a source program that is used to create dlls on Windows
14231 - # Don't remove nor modify the starting and closing comments
14232 -# /* ltdll.c starts here */
14233 -# #define WIN32_LEAN_AND_MEAN
14234 -# #include <windows.h>
14235 -# #undef WIN32_LEAN_AND_MEAN
14236 -# #include <stdio.h>
14238 -# #ifndef __CYGWIN__
14239 -# # ifdef __CYGWIN32__
14240 -# # define __CYGWIN__ __CYGWIN32__
14244 -# #ifdef __cplusplus
14247 -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
14248 -# #ifdef __cplusplus
14252 -# #ifdef __CYGWIN__
14253 -# #include <cygwin/cygwin_dll.h>
14254 -# DECLARE_CYGWIN_DLL( DllMain );
14256 -# HINSTANCE __hDllInstance_base;
14259 -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
14261 -# __hDllInstance_base = hInst;
14264 -# /* ltdll.c ends here */
14265 - # This is a source program that is used to create import libraries
14266 - # on Windows for dlls which lack them. Don't remove nor modify the
14267 - # starting and closing comments
14268 -# /* impgen.c starts here */
14269 -# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
14271 -# This file is part of GNU libtool.
14273 -# This program is free software; you can redistribute it and/or modify
14274 -# it under the terms of the GNU General Public License as published by
14275 -# the Free Software Foundation; either version 2 of the License, or
14276 -# (at your option) any later version.
14278 -# This program is distributed in the hope that it will be useful,
14279 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
14280 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14281 -# GNU General Public License for more details.
14283 -# You should have received a copy of the GNU General Public License
14284 -# along with this program; if not, write to the Free Software
14285 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
14288 -# #include <stdio.h> /* for printf() */
14289 -# #include <unistd.h> /* for open(), lseek(), read() */
14290 -# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
14291 -# #include <string.h> /* for strdup() */
14293 -# /* O_BINARY isn't required (or even defined sometimes) under Unix */
14294 -# #ifndef O_BINARY
14295 -# #define O_BINARY 0
14298 -# static unsigned int
14299 -# pe_get16 (fd, offset)
14303 -# unsigned char b[2];
14304 -# lseek (fd, offset, SEEK_SET);
14305 -# read (fd, b, 2);
14306 -# return b[0] + (b[1]<<8);
14309 -# static unsigned int
14310 -# pe_get32 (fd, offset)
14314 -# unsigned char b[4];
14315 -# lseek (fd, offset, SEEK_SET);
14316 -# read (fd, b, 4);
14317 -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
14320 -# static unsigned int
14324 -# unsigned char *b = ptr;
14325 -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
14329 -# main (argc, argv)
14334 -# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
14335 -# unsigned long export_rva, export_size, nsections, secptr, expptr;
14336 -# unsigned long name_rvas, nexp;
14337 -# unsigned char *expdata, *erva;
14338 -# char *filename, *dll_name;
14340 -# filename = argv[1];
14342 -# dll = open(filename, O_RDONLY|O_BINARY);
14346 -# dll_name = filename;
14348 -# for (i=0; filename[i]; i++)
14349 -# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
14350 -# dll_name = filename + i +1;
14352 -# pe_header_offset = pe_get32 (dll, 0x3c);
14353 -# opthdr_ofs = pe_header_offset + 4 + 20;
14354 -# num_entries = pe_get32 (dll, opthdr_ofs + 92);
14356 -# if (num_entries < 1) /* no exports */
14359 -# export_rva = pe_get32 (dll, opthdr_ofs + 96);
14360 -# export_size = pe_get32 (dll, opthdr_ofs + 100);
14361 -# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
14362 -# secptr = (pe_header_offset + 4 + 20 +
14363 -# pe_get16 (dll, pe_header_offset + 4 + 16));
14366 -# for (i = 0; i < nsections; i++)
14369 -# unsigned long secptr1 = secptr + 40 * i;
14370 -# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
14371 -# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
14372 -# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
14373 -# lseek(dll, secptr1, SEEK_SET);
14374 -# read(dll, sname, 8);
14375 -# if (vaddr <= export_rva && vaddr+vsize > export_rva)
14377 -# expptr = fptr + (export_rva - vaddr);
14378 -# if (export_rva + export_size > vaddr + vsize)
14379 -# export_size = vsize - (export_rva - vaddr);
14384 -# expdata = (unsigned char*)malloc(export_size);
14385 -# lseek (dll, expptr, SEEK_SET);
14386 -# read (dll, expdata, export_size);
14387 -# erva = expdata - export_rva;
14389 -# nexp = pe_as32 (expdata+24);
14390 -# name_rvas = pe_as32 (expdata+32);
14392 -# printf ("EXPORTS\n");
14393 -# for (i = 0; i<nexp; i++)
14395 -# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
14396 -# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
14401 -# /* impgen.c ends here */
14407 - # We use sed instead of cat because bash on DJGPP gets confused if
14408 - # if finds mixed CR/LF and LF-only lines. Since sed operates in
14409 - # text mode, it properly converts lines to CR/LF. This bash problem
14410 - # is reportedly fixed, but why not run on old versions too?
14411 - sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
14413 - mv -f "${ofile}T" "$ofile" || \
14414 - (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
14415 - chmod +x "$ofile"
14422 -# This can be used to rebuild libtool when needed
14423 -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
14425 -# Always use our own libtool.
14426 -LIBTOOL='$(SHELL) $(top_builddir)/libtool'
14428 -# Prevent multiple expansion
14433 -# Check whether --with-target-subdir or --without-target-subdir was given.
14434 -if test "${with_target_subdir+set}" = set; then
14435 - withval="$with_target_subdir"
14439 -# Check whether --with-cross-host or --without-cross-host was given.
14440 -if test "${with_cross_host+set}" = set; then
14441 - withval="$with_cross_host"
14445 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
14446 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
14447 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
14448 -if test "${enable_maintainer_mode+set}" = set; then
14449 - enableval="$enable_maintainer_mode"
14450 - USE_MAINTAINER_MODE=$enableval
14452 - USE_MAINTAINER_MODE=no
14454 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
14455 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
14458 -if test $USE_MAINTAINER_MODE = yes; then
14459 - MAINTAINER_MODE_TRUE=
14460 - MAINTAINER_MODE_FALSE='#'
14462 - MAINTAINER_MODE_TRUE='#'
14463 - MAINTAINER_MODE_FALSE=
14466 - MAINT=$MAINTAINER_MODE_TRUE
14469 -# automake wants to see AC_EXEEXT. But we don't need it. And having
14470 -# it is actually a problem, because the compiler we're passed can't
14471 -# necessarily do a full link. So we fool automake here.
14473 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
14474 - # to nothing, so nothing would remain between `then' and `fi' if it
14475 - # were not for the `:' below.
14480 -echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
14481 -echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
14482 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
14483 -if test -z "$THREADS"; then
14486 -echo "$as_me:$LINENO: result: $THREADS" >&5
14487 -echo "${ECHO_T}$THREADS" >&6
14489 -# Check whether --enable-parallel-mark or --disable-parallel-mark was given.
14490 -if test "${enable_parallel_mark+set}" = set; then
14491 - enableval="$enable_parallel_mark"
14492 - case "$THREADS" in
14493 - no | none | single)
14494 - { { echo "$as_me:$LINENO: error: Parallel mark requires --enable-threads=x spec" >&5
14495 -echo "$as_me: error: Parallel mark requires --enable-threads=x spec" >&2;}
14496 - { (exit 1); exit 1; }; }
14502 -INCLUDES=-I${srcdir}/include
14504 -case "$THREADS" in
14505 - no | none | single)
14508 - posix | pthreads)
14510 - THREADLIBS=-lpthread
14512 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
14513 - cat >>confdefs.h <<\_ACEOF
14514 -@%:@define GC_LINUX_THREADS 1
14517 - cat >>confdefs.h <<\_ACEOF
14518 -@%:@define _REENTRANT 1
14521 - if test "${enable_parallel_mark}"; then
14522 - cat >>confdefs.h <<\_ACEOF
14523 -@%:@define PARALLEL_MARK 1
14527 - cat >>confdefs.h <<\_ACEOF
14528 -@%:@define THREAD_LOCAL_ALLOC 1
14533 - cat >>confdefs.h <<\_ACEOF
14534 -@%:@define GC_LINUX_THREADS 1
14537 - cat >>confdefs.h <<\_ACEOF
14538 -@%:@define _REENTRANT 1
14543 - { echo "$as_me:$LINENO: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
14544 -echo "$as_me: WARNING: \"Only HP/UX 11 threads are supported.\"" >&2;}
14545 - cat >>confdefs.h <<\_ACEOF
14546 -@%:@define GC_HPUX_THREADS 1
14549 - cat >>confdefs.h <<\_ACEOF
14550 -@%:@define _POSIX_C_SOURCE 199506L
14553 - if test "${enable_parallel_mark}" = yes; then
14554 - cat >>confdefs.h <<\_ACEOF
14555 -@%:@define PARALLEL_MARK 1
14559 - cat >>confdefs.h <<\_ACEOF
14560 -@%:@define THREAD_LOCAL_ALLOC 1
14563 - THREADLIBS="-lpthread -lrt"
14566 - { echo "$as_me:$LINENO: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&5
14567 -echo "$as_me: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&2;}
14568 - cat >>confdefs.h <<\_ACEOF
14569 -@%:@define GC_FREEBSD_THREADS 1
14572 - INCLUDES="$INCLUDES -pthread"
14573 - THREADLIBS=-pthread
14576 - cat >>confdefs.h <<\_ACEOF
14577 -@%:@define GC_SOLARIS_THREADS 1
14580 - cat >>confdefs.h <<\_ACEOF
14581 -@%:@define GC_SOLARIS_PTHREADS 1
14586 - cat >>confdefs.h <<\_ACEOF
14587 -@%:@define GC_IRIX_THREADS 1
14595 - cat >>confdefs.h <<\_ACEOF
14596 -@%:@define GC_DARWIN_THREADS 1
14599 - cat >>confdefs.h <<\_ACEOF
14600 -@%:@define THREAD_LOCAL_ALLOC 1
14603 - if test "${enable_parallel_mark}" = yes; then
14604 - cat >>confdefs.h <<\_ACEOF
14605 -@%:@define PARALLEL_MARK 1
14613 - cat >>confdefs.h <<\_ACEOF
14614 -@%:@define GC_WIN32_THREADS 1
14617 - cat >>confdefs.h <<\_ACEOF
14618 -@%:@define NO_GETENV 1
14622 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
14623 - { { echo "$as_me:$LINENO: error: thread package $THREADS not yet supported" >&5
14624 -echo "$as_me: error: thread package $THREADS not yet supported" >&2;}
14625 - { (exit 1); exit 1; }; }
14628 - { { echo "$as_me:$LINENO: error: $THREADS is an unknown thread package" >&5
14629 -echo "$as_me: error: $THREADS is an unknown thread package" >&2;}
14630 - { (exit 1); exit 1; }; }
14636 - powerpc-*-darwin*)
14637 - powerpc_darwin=true
14642 -if test x$powerpc_darwin = xtrue; then
14643 - POWERPC_DARWIN_TRUE=
14644 - POWERPC_DARWIN_FALSE='#'
14646 - POWERPC_DARWIN_TRUE='#'
14647 - POWERPC_DARWIN_FALSE=
14651 -# We never want libdl on darwin. It is a fake libdl that just ends up making
14652 -# dyld calls anyway
14656 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
14657 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
14658 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
14659 - echo $ECHO_N "(cached) $ECHO_C" >&6
14661 - ac_check_lib_save_LIBS=$LIBS
14663 -cat >conftest.$ac_ext <<_ACEOF
14664 -#line $LINENO "configure"
14665 -#include "confdefs.h"
14667 -/* Override any gcc2 internal prototype to avoid an error. */
14668 -#ifdef __cplusplus
14671 -/* We use char because int might match the return type of a gcc2
14672 - builtin and then its argument prototype would still apply. */
14682 -rm -f conftest.$ac_objext conftest$ac_exeext
14683 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14684 - (eval $ac_link) 2>&5
14686 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
14687 - (exit $ac_status); } &&
14688 - { ac_try='test -s conftest$ac_exeext'
14689 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14690 - (eval $ac_try) 2>&5
14692 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
14693 - (exit $ac_status); }; }; then
14694 - ac_cv_lib_dl_dlopen=yes
14696 - echo "$as_me: failed program was:" >&5
14697 -cat conftest.$ac_ext >&5
14698 -ac_cv_lib_dl_dlopen=no
14700 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
14701 -LIBS=$ac_check_lib_save_LIBS
14703 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
14704 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
14705 -if test $ac_cv_lib_dl_dlopen = yes; then
14706 - EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
14714 -target_all=libgcjgc.la
14720 -# Check whether --with-ecos or --without-ecos was given.
14721 -if test "${with_ecos+set}" = set; then
14722 - withval="$with_ecos"
14723 - TARGET_ECOS="$with_ecos"
14729 -case "$TARGET_ECOS" in
14733 - cat >>confdefs.h <<\_ACEOF
14737 - CXXINCLUDES="-I${TARGET_ECOS}/include"
14738 - addobjs="$addobjs ecos.lo"
14748 - alpha*-*-openbsd*)
14749 - machdep="alpha_mach_dep.lo"
14750 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
14751 - { echo "$as_me:$LINENO: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
14752 -echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&2;}
14753 - # Check whether --enable-shared or --disable-shared was given.
14754 -if test "${enable_shared+set}" = set; then
14755 - enableval="$enable_shared"
14756 - p=${PACKAGE-default}
14757 -case $enableval in
14758 -yes) enable_shared=yes ;;
14759 -no) enable_shared=no ;;
14762 - # Look at the argument we got. We use all the common list separators.
14763 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
14764 - for pkg in $enableval; do
14765 - if test "X$pkg" = "X$p"; then
14766 - enable_shared=yes
14769 - IFS="$ac_save_ifs"
14778 - machdep="alpha_mach_dep.lo"
14780 - i?86-*-solaris2.[89]*)
14781 - cat >>confdefs.h <<\_ACEOF
14782 -@%:@define SOLARIS25_PROC_VDB_BUG_FIXED 1
14787 - machdep="mips_ultrix_mach_dep.lo"
14788 - cat >>confdefs.h <<\_ACEOF
14789 -@%:@define STACKBASE __stackbase
14792 - cat >>confdefs.h <<\_ACEOF
14793 -@%:@define DATASTART_IS_ETEXT 1
14797 - mips-dec-ultrix*)
14798 - machdep="mips_ultrix_mach-dep.lo"
14803 - machdep="mips_sgi_mach_dep.lo"
14804 - cat >>confdefs.h <<\_ACEOF
14805 -@%:@define NO_EXECUTE_PERMISSION 1
14809 - sparc-sun-solaris2.3*)
14810 - machdep="sparc_mach_dep.lo"
14811 - cat >>confdefs.h <<\_ACEOF
14812 -@%:@define SUNOS53_SHARED_LIB 1
14816 - sparc-sun-solaris2.*)
14817 - machdep="sparc_mach_dep.lo"
14820 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
14823 -if test x"$machdep" = x; then
14824 - machdep="mach_dep.lo"
14826 -addobjs="$addobjs $machdep"
14830 - sparc-sun-solaris2*)
14831 - if test "$GCC" = yes; then
14833 - for i in $CFLAGS; do
14838 - new_CFLAGS="$new_CFLAGS $i"
14842 - CFLAGS="$new_CFLAGS"
14847 -MY_CFLAGS="$CFLAGS"
14850 -cat >>confdefs.h <<\_ACEOF
14851 -@%:@define SILENT 1
14854 -cat >>confdefs.h <<\_ACEOF
14855 -@%:@define NO_SIGNALS 1
14858 -cat >>confdefs.h <<\_ACEOF
14859 -@%:@define NO_EXECUTE_PERMISSION 1
14862 -cat >>confdefs.h <<\_ACEOF
14863 -@%:@define ALL_INTERIOR_POINTERS 1
14867 -cat >>confdefs.h <<\_ACEOF
14868 -@%:@define JAVA_FINALIZATION 1
14871 -cat >>confdefs.h <<\_ACEOF
14872 -@%:@define GC_GCJ_SUPPORT 1
14875 -cat >>confdefs.h <<\_ACEOF
14876 -@%:@define ATOMIC_UNCOLLECTABLE 1
14880 -if test -n "${with_cross_host}"; then
14881 - cat >>confdefs.h <<\_ACEOF
14882 -@%:@define NO_SIGSET 1
14885 - cat >>confdefs.h <<\_ACEOF
14886 -@%:@define NO_DEBUGGING 1
14891 -# Check whether --enable-full-debug or --disable-full-debug was given.
14892 -if test "${enable_full_debug+set}" = set; then
14893 - enableval="$enable_full_debug"
14894 - if test "$enable_full_debug" = "yes"; then
14895 - { echo "$as_me:$LINENO: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&5
14896 -echo "$as_me: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&2;}
14897 - cat >>confdefs.h <<\_ACEOF
14898 -@%:@define KEEP_BACK_PTRS 1
14901 - cat >>confdefs.h <<\_ACEOF
14902 -@%:@define DBG_HDRS_ALL 1
14907 - cat >>confdefs.h <<\_ACEOF
14908 -@%:@define MAKE_BACK_GRAPH 1
14912 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
14913 - cat >>confdefs.h <<\_ACEOF
14914 -@%:@define MAKE_BACK_GRAPH 1
14917 - { echo "$as_me:$LINENO: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
14918 -echo "$as_me: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&2;}
14919 - cat >>confdefs.h <<\_ACEOF
14920 -@%:@define SAVE_CALL_COUNT 8
14930 -if test -z "$with_cross_host"; then
14932 - USE_LIBDIR_FALSE='#'
14934 - USE_LIBDIR_TRUE='#'
14935 - USE_LIBDIR_FALSE=
14939 -if test "${multilib}" = "yes"; then
14940 - multilib_arg="--enable-multilib"
14945 - ac_config_files="$ac_config_files Makefile include/Makefile"
14946 - ac_config_commands="$ac_config_commands default"
14947 -cat >confcache <<\_ACEOF
14948 -# This file is a shell script that caches the results of configure
14949 -# tests run on this system so they can be shared between configure
14950 -# scripts and configure runs, see configure's option --config-cache.
14951 -# It is not useful on other systems. If it contains results you don't
14952 -# want to keep, you may remove or edit it.
14954 -# config.status only pays attention to the cache file if you give it
14955 -# the --recheck option to rerun configure.
14957 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
14958 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
14959 -# following values.
14963 -# The following way of writing the cache mishandles newlines in values,
14964 -# but we know of no workaround that is simple, portable, and efficient.
14965 -# So, don't put newlines in cache variables' values.
14966 -# Ultrix sh set writes to stderr and can't be redirected directly,
14967 -# and sets the high bit in the cache file unless we assign to the vars.
14970 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
14972 - # `set' does not quote correctly, so add quotes (double-quote
14973 - # substitution turns \\\\ into \\, and sed turns \\ into \).
14976 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
14979 - # `set' quotes correctly as required by POSIX, so do not add quotes.
14981 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
14988 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
14990 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
14991 - : end' >>confcache
14992 -if cmp -s $cache_file confcache; then :; else
14993 - if test -w $cache_file; then
14994 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
14995 - cat confcache >$cache_file
14997 - echo "not updating unwritable cache $cache_file"
15002 -test "x$prefix" = xNONE && prefix=$ac_default_prefix
15003 -# Let make expand exec_prefix.
15004 -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
15006 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
15007 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
15008 -# trailing colons and then remove the whole line if VPATH becomes empty
15009 -# (actually we leave an empty line to preserve line numbers).
15010 -if test "x$srcdir" = x.; then
15011 - ac_vpsub='/^[ ]*VPATH[ ]*=/{
15012 -s/:*\$(srcdir):*/:/;
15013 -s/:*\${srcdir}:*/:/;
15014 -s/:*@srcdir@:*/:/;
15015 -s/^\([^=]*=[ ]*\):*/\1/;
15021 -# Transform confdefs.h into DEFS.
15022 -# Protect against shell expansion while executing Makefile rules.
15023 -# Protect against Makefile macro expansion.
15025 -# If the first sed substitution is executed (which looks for macros that
15026 -# take arguments), then we branch to the quote section. Otherwise,
15027 -# look for a macro that doesn't take arguments.
15028 -cat >confdef2opt.sed <<\_ACEOF
15031 -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
15033 -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
15037 -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
15043 -# We use echo to avoid assuming a particular line-breaking character.
15044 -# The extra dot is to prevent the shell from consuming trailing
15045 -# line-breaks from the sub-command output. A line-break within
15046 -# single-quotes doesn't work because, if this script is created in a
15047 -# platform that uses two characters for line-breaks (e.g., DOS), tr
15049 -ac_LF_and_DOT=`echo; echo .`
15050 -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
15051 -rm -f confdef2opt.sed
15056 -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
15057 - # 1. Remove the extension, and $U if already installed.
15058 - ac_i=`echo "$ac_i" |
15059 - sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
15061 - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
15062 - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
15064 -LIB@&t@OBJS=$ac_libobjs
15066 -LTLIBOBJS=$ac_ltlibobjs
15069 -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
15070 - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
15071 -Usually this means the macro was only invoked conditionally." >&5
15072 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
15073 -Usually this means the macro was only invoked conditionally." >&2;}
15074 - { (exit 1); exit 1; }; }
15076 -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
15077 - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
15078 -Usually this means the macro was only invoked conditionally." >&5
15079 -echo "$as_me: error: conditional \"AMDEP\" was never defined.
15080 -Usually this means the macro was only invoked conditionally." >&2;}
15081 - { (exit 1); exit 1; }; }
15083 -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
15084 - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
15085 -Usually this means the macro was only invoked conditionally." >&5
15086 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
15087 -Usually this means the macro was only invoked conditionally." >&2;}
15088 - { (exit 1); exit 1; }; }
15090 -if test -z "${POWERPC_DARWIN_TRUE}" && test -z "${POWERPC_DARWIN_FALSE}"; then
15091 - { { echo "$as_me:$LINENO: error: conditional \"POWERPC_DARWIN\" was never defined.
15092 -Usually this means the macro was only invoked conditionally." >&5
15093 -echo "$as_me: error: conditional \"POWERPC_DARWIN\" was never defined.
15094 -Usually this means the macro was only invoked conditionally." >&2;}
15095 - { (exit 1); exit 1; }; }
15097 -if test -z "${USE_LIBDIR_TRUE}" && test -z "${USE_LIBDIR_FALSE}"; then
15098 - { { echo "$as_me:$LINENO: error: conditional \"USE_LIBDIR\" was never defined.
15099 -Usually this means the macro was only invoked conditionally." >&5
15100 -echo "$as_me: error: conditional \"USE_LIBDIR\" was never defined.
15101 -Usually this means the macro was only invoked conditionally." >&2;}
15102 - { (exit 1); exit 1; }; }
15105 -: ${CONFIG_STATUS=./config.status}
15106 -ac_clean_files_save=$ac_clean_files
15107 -ac_clean_files="$ac_clean_files $CONFIG_STATUS"
15108 -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
15109 -echo "$as_me: creating $CONFIG_STATUS" >&6;}
15110 -cat >$CONFIG_STATUS <<_ACEOF
15112 -# Generated by $as_me.
15113 -# Run this file to recreate the current configuration.
15114 -# Compiler output produced by configure, useful for debugging
15115 -# configure, is in config.log if it exists.
15118 -SHELL=\${CONFIG_SHELL-$SHELL}
15121 -cat >>$CONFIG_STATUS <<\_ACEOF
15122 -## --------------------- ##
15123 -## M4sh Initialization. ##
15124 -## --------------------- ##
15126 -# Be Bourne compatible
15127 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
15130 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
15131 - # is contrary to our usage. Disable this feature.
15132 - alias -g '${1+"$@"}'='"$@"'
15133 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
15137 -# Support unset when possible.
15138 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
15145 -# Work around bugs in pre-3.0 UWIN ksh.
15146 -$as_unset ENV MAIL MAILPATH
15152 -for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME
15154 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
15155 - eval $as_var=C; export $as_var
15157 - $as_unset $as_var
15161 -# Required to use basename.
15162 -if expr a : '\(a\)' >/dev/null 2>&1; then
15168 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
15169 - as_basename=basename
15171 - as_basename=false
15175 -# Name of the executable.
15176 -as_me=`$as_basename "$0" ||
15177 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
15178 - X"$0" : 'X\(//\)$' \| \
15179 - X"$0" : 'X\(/\)$' \| \
15180 - . : '\(.\)' 2>/dev/null ||
15182 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
15183 - /^X\/\(\/\/\)$/{ s//\1/; q; }
15184 - /^X\/\(\/\).*/{ s//\1/; q; }
15188 -# PATH needs CR, and LINENO needs CR and PATH.
15189 -# Avoid depending upon Character Ranges.
15190 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
15191 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
15192 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
15193 -as_cr_digits='0123456789'
15194 -as_cr_alnum=$as_cr_Letters$as_cr_digits
15196 -# The user is always right.
15197 -if test "${PATH_SEPARATOR+set}" != set; then
15198 - echo "#! /bin/sh" >conftest.sh
15199 - echo "exit 0" >>conftest.sh
15200 - chmod +x conftest.sh
15201 - if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then
15202 - PATH_SEPARATOR=';'
15206 - rm -f conftest.sh
15210 - as_lineno_1=$LINENO
15211 - as_lineno_2=$LINENO
15212 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
15213 - test "x$as_lineno_1" != "x$as_lineno_2" &&
15214 - test "x$as_lineno_3" = "x$as_lineno_2" || {
15215 - # Find who we are. Look in the path if we contain no path at all
15216 - # relative or not.
15218 - *[\\/]* ) as_myself=$0 ;;
15219 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
15220 -for as_dir in $PATH
15223 - test -z "$as_dir" && as_dir=.
15224 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
15229 - # We did not find ourselves, most probably we were run as `sh COMMAND'
15230 - # in which case we are not to be found in the path.
15231 - if test "x$as_myself" = x; then
15234 - if test ! -f "$as_myself"; then
15235 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
15236 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
15237 - { (exit 1); exit 1; }; }
15239 - case $CONFIG_SHELL in
15241 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
15242 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
15245 - test -z "$as_dir" && as_dir=.
15246 - for as_base in sh bash ksh sh5; do
15249 - if ("$as_dir/$as_base" -c '
15250 - as_lineno_1=$LINENO
15251 - as_lineno_2=$LINENO
15252 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
15253 - test "x$as_lineno_1" != "x$as_lineno_2" &&
15254 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
15255 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
15256 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
15257 - CONFIG_SHELL=$as_dir/$as_base
15258 - export CONFIG_SHELL
15259 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
15267 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
15268 - # uniformly replaced by the line number. The first 'sed' inserts a
15269 - # line-number line before each line; the second 'sed' does the real
15270 - # work. The second script uses 'N' to pair each line-number line
15271 - # with the numbered line, and appends trailing '-' during
15272 - # substitution so that $LINENO is not a special case at line end.
15273 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
15274 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
15275 - sed '=' <$as_myself |
15280 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
15283 - s,^['$as_cr_digits']*\n,,
15284 - ' >$as_me.lineno &&
15285 - chmod +x $as_me.lineno ||
15286 - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
15287 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
15288 - { (exit 1); exit 1; }; }
15290 - # Don't try to exec as it changes $[0], causing all sort of problems
15291 - # (the dirname of $[0] is not the place where we might find the
15292 - # original and so on. Autoconf is especially sensible to this).
15293 - . ./$as_me.lineno
15294 - # Exit status is that of the last command.
15299 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
15300 - *c*,-n*) ECHO_N= ECHO_C='
15302 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
15303 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
15306 -if expr a : '\(a\)' >/dev/null 2>&1; then
15312 -rm -f conf$$ conf$$.exe conf$$.file
15314 -if ln -s conf$$.file conf$$ 2>/dev/null; then
15315 - # We could just check for DJGPP; but this test a) works b) is more generic
15316 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
15317 - if test -f conf$$.exe; then
15318 - # Don't use ln at all; we don't have any links
15323 -elif ln conf$$.file conf$$ 2>/dev/null; then
15328 -rm -f conf$$ conf$$.exe conf$$.file
15330 -if mkdir -p . 2>/dev/null; then
15336 -as_executable_p="test -f"
15338 -# Sed expression to map a string onto a valid CPP name.
15339 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
15341 -# Sed expression to map a string onto a valid variable name.
15342 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
15346 -# We need space, tab and new line, in precisely that order.
15356 -# Open the log real soon, to keep \$[0] and so on meaningful, and to
15357 -# report actual input values of CONFIG_FILES etc. instead of their
15358 -# values after options handling. Logging --version etc. is OK.
15359 -exec 5>>config.log
15362 - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
15363 -@%:@@%:@ Running $as_me. @%:@@%:@
15368 -This file was extended by $as_me, which was
15369 -generated by GNU Autoconf 2.54. Invocation command line was
15371 - CONFIG_FILES = $CONFIG_FILES
15372 - CONFIG_HEADERS = $CONFIG_HEADERS
15373 - CONFIG_LINKS = $CONFIG_LINKS
15374 - CONFIG_COMMANDS = $CONFIG_COMMANDS
15378 -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
15382 -# Files that config.status was made for.
15383 -if test -n "$ac_config_files"; then
15384 - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
15387 -if test -n "$ac_config_headers"; then
15388 - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
15391 -if test -n "$ac_config_links"; then
15392 - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
15395 -if test -n "$ac_config_commands"; then
15396 - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
15399 -cat >>$CONFIG_STATUS <<\_ACEOF
15402 -\`$as_me' instantiates files from templates according to the
15403 -current configuration.
15405 -Usage: $0 [OPTIONS] [FILE]...
15407 - -h, --help print this help, then exit
15408 - -V, --version print version number, then exit
15409 - -d, --debug don't remove temporary files
15410 - --recheck update $as_me by reconfiguring in the same conditions
15411 - --file=FILE[:TEMPLATE]
15412 - instantiate the configuration file FILE
15414 -Configuration files:
15417 -Configuration commands:
15420 -Report bugs to <bug-autoconf@gnu.org>."
15423 -cat >>$CONFIG_STATUS <<_ACEOF
15426 -configured by $0, generated by GNU Autoconf 2.54,
15427 - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
15429 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
15430 -Free Software Foundation, Inc.
15431 -This config.status script is free software; the Free Software Foundation
15432 -gives unlimited permission to copy, distribute and modify it."
15434 -INSTALL="$INSTALL"
15437 -cat >>$CONFIG_STATUS <<\_ACEOF
15438 -# If no file are specified by the user, then we need to provide default
15439 -# value. By we need to know if files were specified by the user.
15440 -ac_need_defaults=:
15441 -while test $# != 0
15445 - ac_option=`expr "x$1" : 'x\([^=]*\)='`
15446 - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
15454 - *) # This is not an option, so the user has probably given explicit
15457 - ac_need_defaults=false;;
15460 - case $ac_option in
15461 - # Handling of the options.
15463 -cat >>$CONFIG_STATUS <<_ACEOF
15464 - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
15465 - echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
15466 - exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
15468 -cat >>$CONFIG_STATUS <<\_ACEOF
15469 - --version | --vers* | -V )
15470 - echo "$ac_cs_version"; exit 0 ;;
15472 - # Conflict between --help and --header
15473 - { { echo "$as_me:$LINENO: error: ambiguous option: $1
15474 -Try \`$0 --help' for more information." >&5
15475 -echo "$as_me: error: ambiguous option: $1
15476 -Try \`$0 --help' for more information." >&2;}
15477 - { (exit 1); exit 1; }; };;
15478 - --help | --hel | -h )
15479 - echo "$ac_cs_usage"; exit 0 ;;
15480 - --debug | --d* | -d )
15482 - --file | --fil | --fi | --f )
15484 - CONFIG_FILES="$CONFIG_FILES $ac_optarg"
15485 - ac_need_defaults=false;;
15486 - --header | --heade | --head | --hea )
15488 - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
15489 - ac_need_defaults=false;;
15491 - # This is an error.
15492 - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
15493 -Try \`$0 --help' for more information." >&5
15494 -echo "$as_me: error: unrecognized option: $1
15495 -Try \`$0 --help' for more information." >&2;}
15496 - { (exit 1); exit 1; }; } ;;
15498 - *) ac_config_targets="$ac_config_targets $1" ;;
15506 -cat >>$CONFIG_STATUS <<_ACEOF
15508 -# INIT-COMMANDS section.
15511 -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
15515 -with_multisubdir=${with_multisubdir}
15516 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
15517 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
15518 -gc_basedir=${gc_basedir}
15527 -cat >>$CONFIG_STATUS <<\_ACEOF
15528 -for ac_config_target in $ac_config_targets
15530 - case "$ac_config_target" in
15531 - # Handling of arguments.
15532 - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
15533 - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
15534 - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
15535 - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
15536 - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
15537 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
15538 - { (exit 1); exit 1; }; };;
15542 -# If the user did not use the arguments to specify the items to instantiate,
15543 -# then the envvar interface is used. Set only those that are not.
15544 -# We use the long form for the default assignment because of an extremely
15545 -# bizarre bug on SunOS 4.1.3.
15546 -if $ac_need_defaults; then
15547 - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
15548 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
15551 -# Create a temporary directory, and hook for its removal unless debugging.
15554 - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
15555 - trap '{ (exit 1); exit 1; }' 1 2 13 15
15558 -# Create a (secure) tmp directory for tmp files.
15561 - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
15562 - test -n "$tmp" && test -d "$tmp"
15565 - tmp=$TMPDIR/cs$$-$RANDOM
15566 - (umask 077 && mkdir $tmp)
15569 - echo "$me: cannot create a temporary directory in $TMPDIR" >&2
15570 - { (exit 1); exit 1; }
15575 -cat >>$CONFIG_STATUS <<_ACEOF
15578 -# CONFIG_FILES section.
15581 -# No need to generate the scripts if there are no CONFIG_FILES.
15582 -# This happens for instance when ./config.status config.h
15583 -if test -n "\$CONFIG_FILES"; then
15584 - # Protect against being on the right side of a sed subst in config.status.
15585 - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
15586 - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
15587 -s,@SHELL@,$SHELL,;t t
15588 -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
15589 -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
15590 -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
15591 -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
15592 -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
15593 -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
15594 -s,@exec_prefix@,$exec_prefix,;t t
15595 -s,@prefix@,$prefix,;t t
15596 -s,@program_transform_name@,$program_transform_name,;t t
15597 -s,@bindir@,$bindir,;t t
15598 -s,@sbindir@,$sbindir,;t t
15599 -s,@libexecdir@,$libexecdir,;t t
15600 -s,@datadir@,$datadir,;t t
15601 -s,@sysconfdir@,$sysconfdir,;t t
15602 -s,@sharedstatedir@,$sharedstatedir,;t t
15603 -s,@localstatedir@,$localstatedir,;t t
15604 -s,@libdir@,$libdir,;t t
15605 -s,@includedir@,$includedir,;t t
15606 -s,@oldincludedir@,$oldincludedir,;t t
15607 -s,@infodir@,$infodir,;t t
15608 -s,@mandir@,$mandir,;t t
15609 -s,@build_alias@,$build_alias,;t t
15610 -s,@host_alias@,$host_alias,;t t
15611 -s,@target_alias@,$target_alias,;t t
15612 -s,@DEFS@,$DEFS,;t t
15613 -s,@ECHO_C@,$ECHO_C,;t t
15614 -s,@ECHO_N@,$ECHO_N,;t t
15615 -s,@ECHO_T@,$ECHO_T,;t t
15616 -s,@LIBS@,$LIBS,;t t
15617 -s,@gc_basedir@,$gc_basedir,;t t
15618 -s,@build@,$build,;t t
15619 -s,@build_cpu@,$build_cpu,;t t
15620 -s,@build_vendor@,$build_vendor,;t t
15621 -s,@build_os@,$build_os,;t t
15622 -s,@host@,$host,;t t
15623 -s,@host_cpu@,$host_cpu,;t t
15624 -s,@host_vendor@,$host_vendor,;t t
15625 -s,@host_os@,$host_os,;t t
15626 -s,@target@,$target,;t t
15627 -s,@target_cpu@,$target_cpu,;t t
15628 -s,@target_vendor@,$target_vendor,;t t
15629 -s,@target_os@,$target_os,;t t
15630 -s,@mkinstalldirs@,$mkinstalldirs,;t t
15631 -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
15632 -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
15633 -s,@INSTALL_DATA@,$INSTALL_DATA,;t t
15634 -s,@PACKAGE@,$PACKAGE,;t t
15635 -s,@VERSION@,$VERSION,;t t
15636 -s,@ACLOCAL@,$ACLOCAL,;t t
15637 -s,@AUTOCONF@,$AUTOCONF,;t t
15638 -s,@AUTOMAKE@,$AUTOMAKE,;t t
15639 -s,@AUTOHEADER@,$AUTOHEADER,;t t
15640 -s,@MAKEINFO@,$MAKEINFO,;t t
15641 -s,@AMTAR@,$AMTAR,;t t
15642 -s,@install_sh@,$install_sh,;t t
15643 -s,@STRIP@,$STRIP,;t t
15644 -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
15645 -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
15647 -s,@SET_MAKE@,$SET_MAKE,;t t
15649 -s,@ac_ct_AS@,$ac_ct_AS,;t t
15651 -s,@ac_ct_AR@,$ac_ct_AR,;t t
15652 -s,@RANLIB@,$RANLIB,;t t
15653 -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
15654 -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
15655 -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
15656 -s,@MAINT@,$MAINT,;t t
15657 -s,@GC_CFLAGS@,$GC_CFLAGS,;t t
15659 -s,@CFLAGS@,$CFLAGS,;t t
15660 -s,@LDFLAGS@,$LDFLAGS,;t t
15661 -s,@CPPFLAGS@,$CPPFLAGS,;t t
15662 -s,@ac_ct_CC@,$ac_ct_CC,;t t
15663 -s,@EXEEXT@,$EXEEXT,;t t
15664 -s,@OBJEXT@,$OBJEXT,;t t
15665 -s,@DEPDIR@,$DEPDIR,;t t
15666 -s,@am__include@,$am__include,;t t
15667 -s,@am__quote@,$am__quote,;t t
15668 -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
15669 -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
15670 -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
15671 -s,@CCDEPMODE@,$CCDEPMODE,;t t
15672 -s,@LN_S@,$LN_S,;t t
15673 -s,@ECHO@,$ECHO,;t t
15675 -s,@EGREP@,$EGREP,;t t
15676 -s,@LIBTOOL@,$LIBTOOL,;t t
15677 -s,@THREADLIBS@,$THREADLIBS,;t t
15678 -s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t
15679 -s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t
15680 -s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t
15681 -s,@target_all@,$target_all,;t t
15683 -s,@INCLUDES@,$INCLUDES,;t t
15684 -s,@CXXINCLUDES@,$CXXINCLUDES,;t t
15685 -s,@addobjs@,$addobjs,;t t
15686 -s,@MY_CFLAGS@,$MY_CFLAGS,;t t
15687 -s,@USE_LIBDIR_TRUE@,$USE_LIBDIR_TRUE,;t t
15688 -s,@USE_LIBDIR_FALSE@,$USE_LIBDIR_FALSE,;t t
15689 -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
15690 -s,@LTLIBOBJS@,$LTLIBOBJS,;t t
15695 - cat >>$CONFIG_STATUS <<\_ACEOF
15696 - # Split the substitutions into bite-sized pieces for seds with
15697 - # small command number limits, like on Digital OSF/1 and HP-UX.
15698 - ac_max_sed_lines=48
15699 - ac_sed_frag=1 # Number of current file.
15700 - ac_beg=1 # First line for current file.
15701 - ac_end=$ac_max_sed_lines # Line after last line for current file.
15704 - while $ac_more_lines; do
15705 - if test $ac_beg -gt 1; then
15706 - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
15708 - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
15710 - if test ! -s $tmp/subs.frag; then
15711 - ac_more_lines=false
15713 - # The purpose of the label and of the branching condition is to
15714 - # speed up the sed processing (if there are no `@' at all, there
15715 - # is no need to browse any of the substitutions).
15716 - # These are the two extra sed commands mentioned above.
15718 - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
15719 - if test -z "$ac_sed_cmds"; then
15720 - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
15722 - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
15724 - ac_sed_frag=`expr $ac_sed_frag + 1`
15726 - ac_end=`expr $ac_end + $ac_max_sed_lines`
15729 - if test -z "$ac_sed_cmds"; then
15732 -fi # test -n "$CONFIG_FILES"
15735 -cat >>$CONFIG_STATUS <<\_ACEOF
15736 -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
15737 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
15739 - - | *:- | *:-:* ) # input from stdin
15741 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
15742 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
15743 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
15744 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
15745 - * ) ac_file_in=$ac_file.in ;;
15748 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
15749 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
15750 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15751 - X"$ac_file" : 'X\(//\)[^/]' \| \
15752 - X"$ac_file" : 'X\(//\)$' \| \
15753 - X"$ac_file" : 'X\(/\)' \| \
15754 - . : '\(.\)' 2>/dev/null ||
15755 -echo X"$ac_file" |
15756 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15757 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15758 - /^X\(\/\/\)$/{ s//\1/; q; }
15759 - /^X\(\/\).*/{ s//\1/; q; }
15761 - { if $as_mkdir_p; then
15762 - mkdir -p "$ac_dir"
15766 - while test ! -d "$as_dir"; do
15767 - as_dirs="$as_dir $as_dirs"
15768 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
15769 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15770 - X"$as_dir" : 'X\(//\)[^/]' \| \
15771 - X"$as_dir" : 'X\(//\)$' \| \
15772 - X"$as_dir" : 'X\(/\)' \| \
15773 - . : '\(.\)' 2>/dev/null ||
15775 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15776 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15777 - /^X\(\/\/\)$/{ s//\1/; q; }
15778 - /^X\(\/\).*/{ s//\1/; q; }
15781 - test ! -n "$as_dirs" || mkdir $as_dirs
15782 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
15783 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
15784 - { (exit 1); exit 1; }; }; }
15788 -if test "$ac_dir" != .; then
15789 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
15790 - # A "../" for each directory in $ac_dir_suffix.
15791 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
15793 - ac_dir_suffix= ac_top_builddir=
15797 - .) # No --srcdir option. We are building in place.
15799 - if test -z "$ac_top_builddir"; then
15802 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
15804 - [\\/]* | ?:[\\/]* ) # Absolute path.
15805 - ac_srcdir=$srcdir$ac_dir_suffix;
15806 - ac_top_srcdir=$srcdir ;;
15807 - *) # Relative path.
15808 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
15809 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
15811 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
15813 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
15814 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
15815 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
15816 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
15820 - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
15821 - *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
15824 - if test x"$ac_file" != x-; then
15825 - { echo "$as_me:$LINENO: creating $ac_file" >&5
15826 -echo "$as_me: creating $ac_file" >&6;}
15829 - # Let's still pretend it is `configure' which instantiates (i.e., don't
15830 - # use $as_me), people would be surprised to read:
15831 - # /* config.h. Generated by config.status. */
15832 - if test x"$ac_file" = x-; then
15835 - configure_input="$ac_file. "
15837 - configure_input=$configure_input"Generated from `echo $ac_file_in |
15838 - sed 's,.*/,,'` by configure."
15840 - # First look for the input files in the build tree, otherwise in the
15842 - ac_file_inputs=`IFS=:
15843 - for f in $ac_file_in; do
15845 - -) echo $tmp/stdin ;;
15847 - # Absolute (can't be DOS-style, as IFS=:)
15848 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
15849 -echo "$as_me: error: cannot find input file: $f" >&2;}
15850 - { (exit 1); exit 1; }; }
15853 - if test -f "$f"; then
15856 - elif test -f "$srcdir/$f"; then
15861 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
15862 -echo "$as_me: error: cannot find input file: $f" >&2;}
15863 - { (exit 1); exit 1; }; }
15866 - done` || { (exit 1); exit 1; }
15868 -cat >>$CONFIG_STATUS <<_ACEOF
15872 -cat >>$CONFIG_STATUS <<\_ACEOF
15874 -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
15875 -s,@configure_input@,$configure_input,;t t
15876 -s,@srcdir@,$ac_srcdir,;t t
15877 -s,@abs_srcdir@,$ac_abs_srcdir,;t t
15878 -s,@top_srcdir@,$ac_top_srcdir,;t t
15879 -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
15880 -s,@builddir@,$ac_builddir,;t t
15881 -s,@abs_builddir@,$ac_abs_builddir,;t t
15882 -s,@top_builddir@,$ac_top_builddir,;t t
15883 -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
15884 -s,@INSTALL@,$ac_INSTALL,;t t
15885 -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
15887 - if test x"$ac_file" != x-; then
15888 - mv $tmp/out $ac_file
15896 -cat >>$CONFIG_STATUS <<\_ACEOF
15899 -# CONFIG_COMMANDS section.
15901 -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
15902 - ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
15903 - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
15904 - ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
15905 -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15906 - X"$ac_dest" : 'X\(//\)[^/]' \| \
15907 - X"$ac_dest" : 'X\(//\)$' \| \
15908 - X"$ac_dest" : 'X\(/\)' \| \
15909 - . : '\(.\)' 2>/dev/null ||
15910 -echo X"$ac_dest" |
15911 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15912 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15913 - /^X\(\/\/\)$/{ s//\1/; q; }
15914 - /^X\(\/\).*/{ s//\1/; q; }
15918 -if test "$ac_dir" != .; then
15919 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
15920 - # A "../" for each directory in $ac_dir_suffix.
15921 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
15923 - ac_dir_suffix= ac_top_builddir=
15927 - .) # No --srcdir option. We are building in place.
15929 - if test -z "$ac_top_builddir"; then
15932 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
15934 - [\\/]* | ?:[\\/]* ) # Absolute path.
15935 - ac_srcdir=$srcdir$ac_dir_suffix;
15936 - ac_top_srcdir=$srcdir ;;
15937 - *) # Relative path.
15938 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
15939 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
15941 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
15943 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
15944 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
15945 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
15946 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
15949 - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
15950 -echo "$as_me: executing $ac_dest commands" >&6;}
15952 - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
15953 - # Strip MF so we end up with the name of the file.
15954 - mf=`echo "$mf" | sed -e 's/:.*$//'`
15955 - if (sed 1q $mf | fgrep 'generated by automake') > /dev/null 2>&1; then
15956 - dirpart=`(dirname "$mf") 2>/dev/null ||
15957 -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15958 - X"$mf" : 'X\(//\)[^/]' \| \
15959 - X"$mf" : 'X\(//\)$' \| \
15960 - X"$mf" : 'X\(/\)' \| \
15961 - . : '\(.\)' 2>/dev/null ||
15963 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15964 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15965 - /^X\(\/\/\)$/{ s//\1/; q; }
15966 - /^X\(\/\).*/{ s//\1/; q; }
15971 - grep '^DEP_FILES *= *[^ @%:@]' < "$mf" > /dev/null || continue
15972 - # Extract the definition of DEP_FILES from the Makefile without
15973 - # running `make'.
15974 - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
15975 - test -z "$DEPDIR" && continue
15976 - # When using ansi2knr, U may be empty or an underscore; expand it
15977 - U=`sed -n -e '/^U = / s///p' < "$mf"`
15978 - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
15979 - # We invoke sed twice because it is the simplest approach to
15980 - # changing $(DEPDIR) to its actual value in the expansion.
15981 - for file in `sed -n -e '
15982 - /^DEP_FILES = .*\\\\$/ {
15983 - s/^DEP_FILES = //
15991 - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
15992 - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
15993 - # Make sure the directory exists.
15994 - test -f "$dirpart/$file" && continue
15995 - fdir=`(dirname "$file") 2>/dev/null ||
15996 -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15997 - X"$file" : 'X\(//\)[^/]' \| \
15998 - X"$file" : 'X\(//\)$' \| \
15999 - X"$file" : 'X\(/\)' \| \
16000 - . : '\(.\)' 2>/dev/null ||
16002 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
16003 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
16004 - /^X\(\/\/\)$/{ s//\1/; q; }
16005 - /^X\(\/\).*/{ s//\1/; q; }
16007 - { if $as_mkdir_p; then
16008 - mkdir -p $dirpart/$fdir
16010 - as_dir=$dirpart/$fdir
16012 - while test ! -d "$as_dir"; do
16013 - as_dirs="$as_dir $as_dirs"
16014 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
16015 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
16016 - X"$as_dir" : 'X\(//\)[^/]' \| \
16017 - X"$as_dir" : 'X\(//\)$' \| \
16018 - X"$as_dir" : 'X\(/\)' \| \
16019 - . : '\(.\)' 2>/dev/null ||
16021 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
16022 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
16023 - /^X\(\/\/\)$/{ s//\1/; q; }
16024 - /^X\(\/\).*/{ s//\1/; q; }
16027 - test ! -n "$as_dirs" || mkdir $as_dirs
16028 - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
16029 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
16030 - { (exit 1); exit 1; }; }; }
16032 - # echo "creating $dirpart/$file"
16033 - echo '# dummy' > "$dirpart/$file"
16038 -echo "$DEFS" > boehm-cflags
16040 -if test -n "$CONFIG_FILES"; then
16041 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
16042 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
16048 -cat >>$CONFIG_STATUS <<\_ACEOF
16050 -{ (exit 0); exit 0; }
16052 -chmod +x $CONFIG_STATUS
16053 -ac_clean_files=$ac_clean_files_save
16056 -# configure is writing to config.log, and then calls config.status.
16057 -# config.status does its own redirection, appending to config.log.
16058 -# Unfortunately, on DOS this fails, as config.log is still kept open
16059 -# by configure, so config.status won't be able to write to it; its
16060 -# output is simply discarded. So we exec the FD to /dev/null,
16061 -# effectively closing config.log, so it can be properly (re)opened and
16062 -# appended to by config.status. When coming back to configure, we
16063 -# need to make the FD available again.
16064 -if test "$no_create" != yes; then
16067 - $SHELL $CONFIG_STATUS || ac_cs_success=false
16068 - exec 5>>config.log
16069 - # Use ||, not &&, to avoid exiting from the if with $? = 1, which
16070 - # would make configure fail if this is the last instruction.
16071 - $ac_cs_success || { (exit 1); exit 1; }
16074 diff -Nur ../boehm-gc/autom4te.cache/requests boehm-gc/autom4te.cache/requests
16075 --- ../boehm-gc/autom4te.cache/requests Sat May 31 15:09:32 2003
16076 +++ boehm-gc/autom4te.cache/requests Wed Dec 31 16:00:00 1969
16078 -# This file was created by autom4te-2.54.
16079 -# It contains the lists of macros which have been traced.
16080 -# It can be safely removed.
16087 - '/sw/share/autoconf'
16090 - '/sw/share/autoconf/autoconf/autoconf.m4f',
16095 - 'm4_pattern_forbid' => 1,
16096 - 'AC_C_VOLATILE' => 1,
16097 - 'AC_TYPE_OFF_T' => 1,
16098 - 'AC_FUNC_CLOSEDIR_VOID' => 1,
16099 - 'AC_REPLACE_FNMATCH' => 1,
16100 - 'AC_PROG_LIBTOOL' => 1,
16101 - 'AC_FUNC_STAT' => 1,
16102 - 'AC_FUNC_WAIT3' => 1,
16103 - 'AC_HEADER_TIME' => 1,
16104 - 'AC_FUNC_LSTAT' => 1,
16105 - 'AC_STRUCT_TM' => 1,
16106 - 'AM_AUTOMAKE_VERSION' => 1,
16107 - 'AC_FUNC_GETMNTENT' => 1,
16108 - 'AC_TYPE_MODE_T' => 1,
16109 - 'AC_FUNC_STRTOD' => 1,
16110 - 'AC_CHECK_HEADERS' => 1,
16111 - 'AC_FUNC_STRNLEN' => 1,
16112 - 'AC_PROG_CXX' => 1,
16113 - 'AC_PATH_X' => 1,
16114 - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
16115 - 'AC_PROG_AWK' => 1,
16116 - 'AC_HEADER_STDC' => 1,
16117 - 'AC_HEADER_MAJOR' => 1,
16118 - 'AC_FUNC_ERROR_AT_LINE' => 1,
16119 - 'AC_PROG_GCC_TRADITIONAL' => 1,
16120 - 'AC_LIBSOURCE' => 1,
16121 - 'AC_FUNC_MBRTOWC' => 1,
16122 - 'AC_STRUCT_ST_BLOCKS' => 1,
16123 - 'AC_TYPE_SIGNAL' => 1,
16124 - 'AC_TYPE_UID_T' => 1,
16125 - 'AC_CONFIG_AUX_DIR' => 1,
16126 - 'AC_PROG_MAKE_SET' => 1,
16127 - 'm4_pattern_allow' => 1,
16128 - 'AC_DEFINE_TRACE_LITERAL' => 1,
16129 - 'AC_FUNC_STRERROR_R' => 1,
16130 - 'AC_PROG_CC' => 1,
16131 - 'AC_FUNC_FORK' => 1,
16132 - 'AC_DECL_SYS_SIGLIST' => 1,
16133 - 'AC_FUNC_STRCOLL' => 1,
16134 - 'AC_FUNC_VPRINTF' => 1,
16135 - 'AC_PROG_YACC' => 1,
16137 - 'AC_STRUCT_TIMEZONE' => 1,
16138 - 'AC_FUNC_CHOWN' => 1,
16140 - 'AC_FUNC_ALLOCA' => 1,
16141 - 'AC_CANONICAL_HOST' => 1,
16142 - 'AC_FUNC_GETPGRP' => 1,
16143 - 'AC_PROG_RANLIB' => 1,
16144 - 'AM_INIT_AUTOMAKE' => 1,
16145 - 'AC_FUNC_SETPGRP' => 1,
16146 - 'AC_CONFIG_SUBDIRS' => 1,
16147 - 'AC_FUNC_MMAP' => 1,
16148 - 'AC_FUNC_REALLOC' => 1,
16149 - 'AC_TYPE_SIZE_T' => 1,
16150 - 'AC_CHECK_TYPES' => 1,
16151 - 'AC_CHECK_MEMBERS' => 1,
16152 - 'AM_MAINTAINER_MODE' => 1,
16153 - 'AC_FUNC_UTIME_NULL' => 1,
16154 - 'AC_FUNC_SELECT_ARGTYPES' => 1,
16155 - 'AC_FUNC_STRFTIME' => 1,
16156 - 'AC_HEADER_STAT' => 1,
16157 - 'AC_C_INLINE' => 1,
16158 - 'AC_PROG_CPP' => 1,
16159 - 'AC_TYPE_PID_T' => 1,
16160 - 'AC_PROG_LEX' => 1,
16161 - 'AC_C_CONST' => 1,
16162 - 'AC_CONFIG_FILES' => 1,
16164 - 'AC_FUNC_SETVBUF_REVERSED' => 1,
16165 - 'AC_PROG_INSTALL' => 1,
16166 - 'AM_GNU_GETTEXT' => 1,
16167 - 'AC_CHECK_LIB' => 1,
16168 - 'AC_FUNC_OBSTACK' => 1,
16169 - 'AC_FUNC_MALLOC' => 1,
16170 - 'AC_FUNC_GETGROUPS' => 1,
16171 - 'AC_FUNC_GETLOADAVG' => 1,
16172 - 'AH_OUTPUT' => 1,
16173 - 'AC_FUNC_FSEEKO' => 1,
16174 - 'AM_PROG_CC_C_O' => 1,
16175 - 'AC_FUNC_MKTIME' => 1,
16176 - 'AC_CANONICAL_SYSTEM' => 1,
16177 - 'AM_CONDITIONAL' => 1,
16178 - 'AC_CONFIG_HEADERS' => 1,
16179 - 'AC_HEADER_SYS_WAIT' => 1,
16180 - 'AC_PROG_LN_S' => 1,
16181 - 'AC_FUNC_MEMCMP' => 1,
16182 - 'm4_include' => 1,
16183 - 'AC_HEADER_DIRENT' => 1,
16184 - 'AC_CHECK_FUNCS' => 1
16191 - '/sw/share/autoconf-2.54'
16194 - '--reload-state=/sw/share/autoconf-2.54/autoconf/autoconf.m4f',
16199 - 'm4_pattern_forbid' => 1,
16200 - 'AC_TYPE_OFF_T' => 1,
16201 - 'AC_PROG_LIBTOOL' => 1,
16202 - 'AC_FUNC_STAT' => 1,
16203 - 'AC_HEADER_TIME' => 1,
16204 - 'AC_FUNC_WAIT3' => 1,
16205 - 'AC_STRUCT_TM' => 1,
16206 - 'AC_FUNC_LSTAT' => 1,
16207 - 'AC_TYPE_MODE_T' => 1,
16208 - 'AC_FUNC_STRTOD' => 1,
16209 - 'AC_CHECK_HEADERS' => 1,
16210 - 'AC_PROG_CXX' => 1,
16211 - 'AC_PATH_X' => 1,
16212 - 'AC_PROG_AWK' => 1,
16213 - 'AC_HEADER_STDC' => 1,
16214 - 'AC_HEADER_MAJOR' => 1,
16215 - 'AC_FUNC_ERROR_AT_LINE' => 1,
16216 - 'AC_PROG_GCC_TRADITIONAL' => 1,
16217 - 'AC_LIBSOURCE' => 1,
16218 - 'AC_STRUCT_ST_BLOCKS' => 1,
16219 - 'AC_TYPE_SIGNAL' => 1,
16220 - 'AC_TYPE_UID_T' => 1,
16221 - 'AC_PROG_MAKE_SET' => 1,
16222 - 'm4_pattern_allow' => 1,
16223 - 'AC_DEFINE_TRACE_LITERAL' => 1,
16224 - 'AM_PROG_LIBTOOL' => 1,
16225 - 'AC_FUNC_STRERROR_R' => 1,
16226 - 'AC_PROG_CC' => 1,
16227 - 'AC_FUNC_FORK' => 1,
16228 - 'AC_DECL_SYS_SIGLIST' => 1,
16229 - 'AC_FUNC_STRCOLL' => 1,
16230 - 'AC_FUNC_VPRINTF' => 1,
16231 - 'AC_PROG_YACC' => 1,
16232 - 'AC_STRUCT_TIMEZONE' => 1,
16233 - 'AC_FUNC_CHOWN' => 1,
16235 - 'AC_FUNC_ALLOCA' => 1,
16236 - 'AC_FUNC_GETPGRP' => 1,
16237 - 'AC_PROG_RANLIB' => 1,
16238 - 'AC_FUNC_SETPGRP' => 1,
16239 - 'AC_FUNC_MMAP' => 1,
16240 - 'AC_TYPE_SIZE_T' => 1,
16241 - 'AC_CHECK_TYPES' => 1,
16242 - 'AC_FUNC_UTIME_NULL' => 1,
16243 - 'AC_FUNC_STRFTIME' => 1,
16244 - 'AC_HEADER_STAT' => 1,
16245 - 'AC_C_INLINE' => 1,
16246 - 'AC_PROG_CPP' => 1,
16247 - 'AC_C_CONST' => 1,
16248 - 'AC_PROG_LEX' => 1,
16249 - 'AC_TYPE_PID_T' => 1,
16250 - 'AC_CONFIG_FILES' => 1,
16252 - 'AC_FUNC_SETVBUF_REVERSED' => 1,
16253 - 'AC_FUNC_FNMATCH' => 1,
16254 - 'AC_PROG_INSTALL' => 1,
16255 - 'AM_GNU_GETTEXT' => 1,
16256 - 'AC_FUNC_OBSTACK' => 1,
16257 - 'AC_CHECK_LIB' => 1,
16258 - 'AC_FUNC_MALLOC' => 1,
16259 - 'AC_FUNC_GETGROUPS' => 1,
16260 - 'AC_FUNC_GETLOADAVG' => 1,
16261 - 'AH_OUTPUT' => 1,
16262 - 'AC_FUNC_FSEEKO' => 1,
16263 - 'AC_FUNC_MKTIME' => 1,
16264 - 'AM_CONDITIONAL' => 1,
16265 - 'AC_CONFIG_HEADERS' => 1,
16266 - 'AC_HEADER_SYS_WAIT' => 1,
16267 - 'AC_PROG_LN_S' => 1,
16268 - 'AC_FUNC_MEMCMP' => 1,
16269 - 'm4_include' => 1,
16270 - 'AC_HEADER_DIRENT' => 1,
16271 - 'AC_CHECK_FUNCS' => 1
16276 diff -Nur ../boehm-gc/autom4te.cache/traces.0 boehm-gc/autom4te.cache/traces.0
16277 --- ../boehm-gc/autom4te.cache/traces.0 Mon May 26 13:14:22 2003
16278 +++ boehm-gc/autom4te.cache/traces.0 Wed Dec 31 16:00:00 1969
16280 -m4trace:configure.in:16: -1- AC_INIT([gcj_mlc.c])
16281 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?A[CHUM]_])
16282 -m4trace:configure.in:16: -1- m4_pattern_forbid([_AC_])
16283 -m4trace:configure.in:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
16284 -m4trace:configure.in:16: -1- m4_pattern_allow([^AS_FLAGS$])
16285 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?m4_])
16286 -m4trace:configure.in:16: -1- m4_pattern_forbid([^dnl$])
16287 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?AS_])
16288 -m4trace:configure.in:16: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
16289 -m4trace:configure.in:16: -1- AC_SUBST([PATH_SEPARATOR])
16290 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
16291 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
16292 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
16293 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
16294 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16295 -m4trace:configure.in:16: -1- AC_SUBST([exec_prefix], [NONE])
16296 -m4trace:configure.in:16: -1- AC_SUBST([prefix], [NONE])
16297 -m4trace:configure.in:16: -1- AC_SUBST([program_transform_name], [s,x,x,])
16298 -m4trace:configure.in:16: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
16299 -m4trace:configure.in:16: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
16300 -m4trace:configure.in:16: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
16301 -m4trace:configure.in:16: -1- AC_SUBST([datadir], ['${prefix}/share'])
16302 -m4trace:configure.in:16: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
16303 -m4trace:configure.in:16: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
16304 -m4trace:configure.in:16: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
16305 -m4trace:configure.in:16: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
16306 -m4trace:configure.in:16: -1- AC_SUBST([includedir], ['${prefix}/include'])
16307 -m4trace:configure.in:16: -1- AC_SUBST([oldincludedir], ['/usr/include'])
16308 -m4trace:configure.in:16: -1- AC_SUBST([infodir], ['${prefix}/info'])
16309 -m4trace:configure.in:16: -1- AC_SUBST([mandir], ['${prefix}/man'])
16310 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
16311 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
16312 -#undef PACKAGE_NAME])
16313 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
16314 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
16315 -#undef PACKAGE_TARNAME])
16316 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
16317 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
16318 -#undef PACKAGE_VERSION])
16319 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
16320 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
16321 -#undef PACKAGE_STRING])
16322 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
16323 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
16324 -#undef PACKAGE_BUGREPORT])
16325 -m4trace:configure.in:16: -1- AC_SUBST([build_alias])
16326 -m4trace:configure.in:16: -1- AC_SUBST([host_alias])
16327 -m4trace:configure.in:16: -1- AC_SUBST([target_alias])
16328 -m4trace:configure.in:16: -1- AC_SUBST([DEFS])
16329 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_C])
16330 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_N])
16331 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_T])
16332 -m4trace:configure.in:16: -1- AC_SUBST([LIBS])
16333 -m4trace:configure.in:25: -1- AC_CONFIG_AUX_DIR([.])
16334 -m4trace:configure.in:27: -1- AC_SUBST([gc_basedir])
16335 -m4trace:configure.in:27: -1- AC_CONFIG_AUX_DIR([$gc_basedir/..])
16336 -m4trace:configure.in:27: -1- AC_CONFIG_AUX_DIR([..])
16337 -m4trace:configure.in:27: -1- AC_CANONICAL_SYSTEM
16338 -m4trace:configure.in:27: -1- AC_CANONICAL_HOST
16339 -m4trace:configure.in:27: -1- AC_SUBST([build], [$ac_cv_build])
16340 -m4trace:configure.in:27: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16341 -m4trace:configure.in:27: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16342 -m4trace:configure.in:27: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16343 -m4trace:configure.in:27: -1- AC_SUBST([host], [$ac_cv_host])
16344 -m4trace:configure.in:27: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16345 -m4trace:configure.in:27: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16346 -m4trace:configure.in:27: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16347 -m4trace:configure.in:27: -1- AC_SUBST([target], [$ac_cv_target])
16348 -m4trace:configure.in:27: -1- AC_SUBST([target_cpu], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16349 -m4trace:configure.in:27: -1- AC_SUBST([target_vendor], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16350 -m4trace:configure.in:27: -1- AC_SUBST([target_os], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16351 -m4trace:configure.in:27: -1- AC_SUBST([mkinstalldirs])
16352 -m4trace:configure.in:27: -1- AM_INIT_AUTOMAKE([gc], [6.0], [no-define])
16353 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16354 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16355 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16356 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16357 -m4trace:configure.in:27: -1- AC_SUBST([PACKAGE])
16358 -m4trace:configure.in:27: -1- AC_SUBST([VERSION])
16359 -m4trace:configure.in:27: -2- AC_DEFINE_TRACE_LITERAL([PACKAGE])
16360 -m4trace:configure.in:27: -2- AH_OUTPUT([PACKAGE], [/* Name of package */
16362 -m4trace:configure.in:27: -2- AC_DEFINE_TRACE_LITERAL([VERSION])
16363 -m4trace:configure.in:27: -2- AH_OUTPUT([VERSION], [/* Version number of package */
16365 -m4trace:configure.in:27: -1- AC_SUBST([ACLOCAL])
16366 -m4trace:configure.in:27: -1- AC_SUBST([AUTOCONF])
16367 -m4trace:configure.in:27: -1- AC_SUBST([AUTOMAKE])
16368 -m4trace:configure.in:27: -1- AC_SUBST([AUTOHEADER])
16369 -m4trace:configure.in:27: -1- AC_SUBST([MAKEINFO])
16370 -m4trace:configure.in:27: -1- AC_PROG_MAKE_SET
16371 -m4trace:configure.in:27: -1- AC_SUBST([SET_MAKE])
16372 -m4trace:configure.in:27: -1- AC_SUBST([CC])
16373 -m4trace:configure.in:27: -1- AC_SUBST([CC])
16374 -m4trace:configure.in:27: -1- AC_SUBST([CXX])
16375 -m4trace:configure.in:27: -1- AC_SUBST([AS])
16376 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AS])
16377 -m4trace:configure.in:27: -1- AC_SUBST([AR])
16378 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AR])
16379 -m4trace:configure.in:27: -1- AC_SUBST([RANLIB])
16380 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_RANLIB])
16381 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16382 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16383 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16384 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16385 -m4trace:configure.in:27: -1- AM_MAINTAINER_MODE
16386 -m4trace:configure.in:27: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16387 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16388 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16389 -m4trace:configure.in:27: -1- AC_SUBST([MAINT])
16390 -m4trace:configure.in:27: -1- AC_SUBST([GC_CFLAGS])
16391 -m4trace:configure.in:29: -1- AC_PROG_LIBTOOL
16392 -m4trace:configure.in:29: -1- AC_PROG_LN_S
16393 -m4trace:configure.in:29: -1- AC_SUBST([LN_S], [$as_ln_s])
16394 -m4trace:configure.in:29: -1- AC_SUBST([RANLIB])
16395 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_RANLIB])
16396 -m4trace:configure.in:29: -1- AC_SUBST([STRIP])
16397 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_STRIP])
16398 -m4trace:configure.in:29: -1- AC_SUBST([LIBTOOL])
16399 -m4trace:configure.in:29: -1- AC_SUBST([CXXCPP])
16400 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16401 -m4trace:configure.in:29: -1- AC_SUBST([CXXCPP])
16402 -m4trace:configure.in:38: -1- AM_MAINTAINER_MODE
16403 -m4trace:configure.in:38: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16404 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16405 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16406 -m4trace:configure.in:38: -1- AC_SUBST([MAINT])
16407 -m4trace:configure.in:77: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16408 -m4trace:configure.in:78: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16409 -m4trace:configure.in:80: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16410 -m4trace:configure.in:82: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16411 -m4trace:configure.in:85: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16412 -m4trace:configure.in:86: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16413 -m4trace:configure.in:90: -1- AC_DEFINE_TRACE_LITERAL([GC_HPUX_THREADS])
16414 -m4trace:configure.in:91: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_C_SOURCE])
16415 -m4trace:configure.in:93: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16416 -m4trace:configure.in:95: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16417 -m4trace:configure.in:100: -1- AC_DEFINE_TRACE_LITERAL([GC_FREEBSD_THREADS])
16418 -m4trace:configure.in:105: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_THREADS])
16419 -m4trace:configure.in:106: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_PTHREADS])
16420 -m4trace:configure.in:109: -1- AC_DEFINE_TRACE_LITERAL([GC_IRIX_THREADS])
16421 -m4trace:configure.in:117: -1- AC_DEFINE_TRACE_LITERAL([GC_DARWIN_THREADS])
16422 -m4trace:configure.in:118: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16423 -m4trace:configure.in:120: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16424 -m4trace:configure.in:124: -1- AC_DEFINE_TRACE_LITERAL([GC_WIN32_THREADS])
16425 -m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([NO_GETENV])
16426 -m4trace:configure.in:134: -1- AC_SUBST([THREADLIBS])
16427 -m4trace:configure.in:141: -1- AM_CONDITIONAL([POWERPC_DARWIN], [test x$powerpc_darwin = xtrue])
16428 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_TRUE])
16429 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_FALSE])
16430 -m4trace:configure.in:148: -1- AC_CHECK_LIB([dl], [dlopen], [EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"])
16431 -m4trace:configure.in:152: -1- AC_SUBST([EXTRA_TEST_LIBS])
16432 -m4trace:configure.in:155: -1- AC_SUBST([target_all])
16433 -m4trace:configure.in:156: -1- AC_SUBST([target_alias])
16434 -m4trace:configure.in:174: -1- AC_DEFINE_TRACE_LITERAL([ECOS])
16435 -m4trace:configure.in:179: -1- AC_SUBST([CXX])
16436 -m4trace:configure.in:181: -1- AC_SUBST([INCLUDES])
16437 -m4trace:configure.in:182: -1- AC_SUBST([CXXINCLUDES])
16438 -m4trace:configure.in:197: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS25_PROC_VDB_BUG_FIXED])
16439 -m4trace:configure.in:201: -1- AC_DEFINE_TRACE_LITERAL([STACKBASE])
16440 -m4trace:configure.in:202: -1- AC_DEFINE_TRACE_LITERAL([DATASTART_IS_ETEXT])
16441 -m4trace:configure.in:211: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16442 -m4trace:configure.in:215: -1- AC_DEFINE_TRACE_LITERAL([SUNOS53_SHARED_LIB])
16443 -m4trace:configure.in:228: -1- AC_SUBST([addobjs])
16444 -m4trace:configure.in:252: -1- AC_SUBST([MY_CFLAGS])
16445 -m4trace:configure.in:256: -1- AC_DEFINE_TRACE_LITERAL([SILENT])
16446 -m4trace:configure.in:257: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGNALS])
16447 -m4trace:configure.in:258: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16448 -m4trace:configure.in:259: -1- AC_DEFINE_TRACE_LITERAL([ALL_INTERIOR_POINTERS])
16449 -m4trace:configure.in:262: -1- AC_DEFINE_TRACE_LITERAL([JAVA_FINALIZATION])
16450 -m4trace:configure.in:263: -1- AC_DEFINE_TRACE_LITERAL([GC_GCJ_SUPPORT])
16451 -m4trace:configure.in:264: -1- AC_DEFINE_TRACE_LITERAL([ATOMIC_UNCOLLECTABLE])
16452 -m4trace:configure.in:270: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGSET])
16453 -m4trace:configure.in:271: -1- AC_DEFINE_TRACE_LITERAL([NO_DEBUGGING])
16454 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([KEEP_BACK_PTRS])
16455 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([DBG_HDRS_ALL])
16456 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16457 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16458 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([SAVE_CALL_COUNT])
16459 -m4trace:configure.in:292: -1- AM_CONDITIONAL([USE_LIBDIR], [test -z "$with_cross_host"])
16460 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_TRUE])
16461 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_FALSE])
16462 -m4trace:configure.in:317: -1- AC_CONFIG_FILES([Makefile include/Makefile])
16463 -m4trace:configure.in:317: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
16464 -m4trace:configure.in:317: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
16465 diff -Nur ../boehm-gc/autom4te.cache/traces.1 boehm-gc/autom4te.cache/traces.1
16466 --- ../boehm-gc/autom4te.cache/traces.1 Sat May 31 15:09:31 2003
16467 +++ boehm-gc/autom4te.cache/traces.1 Wed Dec 31 16:00:00 1969
16469 -m4trace:aclocal.m4:166: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
16470 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?A[CHUM]_])
16471 -m4trace:configure.in:16: -1- m4_pattern_forbid([_AC_])
16472 -m4trace:configure.in:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
16473 -m4trace:configure.in:16: -1- m4_pattern_allow([^AS_FLAGS$])
16474 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?m4_])
16475 -m4trace:configure.in:16: -1- m4_pattern_forbid([^dnl$])
16476 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?AS_])
16477 -m4trace:configure.in:16: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
16478 -m4trace:configure.in:16: -1- AC_SUBST([PATH_SEPARATOR])
16479 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
16480 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
16481 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
16482 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
16483 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16484 -m4trace:configure.in:16: -1- AC_SUBST([exec_prefix], [NONE])
16485 -m4trace:configure.in:16: -1- AC_SUBST([prefix], [NONE])
16486 -m4trace:configure.in:16: -1- AC_SUBST([program_transform_name], [s,x,x,])
16487 -m4trace:configure.in:16: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
16488 -m4trace:configure.in:16: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
16489 -m4trace:configure.in:16: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
16490 -m4trace:configure.in:16: -1- AC_SUBST([datadir], ['${prefix}/share'])
16491 -m4trace:configure.in:16: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
16492 -m4trace:configure.in:16: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
16493 -m4trace:configure.in:16: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
16494 -m4trace:configure.in:16: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
16495 -m4trace:configure.in:16: -1- AC_SUBST([includedir], ['${prefix}/include'])
16496 -m4trace:configure.in:16: -1- AC_SUBST([oldincludedir], ['/usr/include'])
16497 -m4trace:configure.in:16: -1- AC_SUBST([infodir], ['${prefix}/info'])
16498 -m4trace:configure.in:16: -1- AC_SUBST([mandir], ['${prefix}/man'])
16499 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
16500 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
16501 -#undef PACKAGE_NAME])
16502 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
16503 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
16504 -#undef PACKAGE_TARNAME])
16505 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
16506 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
16507 -#undef PACKAGE_VERSION])
16508 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
16509 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
16510 -#undef PACKAGE_STRING])
16511 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
16512 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
16513 -#undef PACKAGE_BUGREPORT])
16514 -m4trace:configure.in:16: -1- AC_SUBST([build_alias])
16515 -m4trace:configure.in:16: -1- AC_SUBST([host_alias])
16516 -m4trace:configure.in:16: -1- AC_SUBST([target_alias])
16517 -m4trace:configure.in:16: -1- AC_SUBST([DEFS])
16518 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_C])
16519 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_N])
16520 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_T])
16521 -m4trace:configure.in:16: -1- AC_SUBST([LIBS])
16522 -m4trace:configure.in:27: -1- AC_SUBST([gc_basedir])
16523 -m4trace:configure.in:27: -1- AC_SUBST([build], [$ac_cv_build])
16524 -m4trace:configure.in:27: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16525 -m4trace:configure.in:27: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16526 -m4trace:configure.in:27: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16527 -m4trace:configure.in:27: -1- AC_SUBST([host], [$ac_cv_host])
16528 -m4trace:configure.in:27: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16529 -m4trace:configure.in:27: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16530 -m4trace:configure.in:27: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16531 -m4trace:configure.in:27: -1- AC_SUBST([target], [$ac_cv_target])
16532 -m4trace:configure.in:27: -1- AC_SUBST([target_cpu], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16533 -m4trace:configure.in:27: -1- AC_SUBST([target_vendor], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16534 -m4trace:configure.in:27: -1- AC_SUBST([target_os], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16535 -m4trace:configure.in:27: -1- AC_SUBST([mkinstalldirs])
16536 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16537 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16538 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16539 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16540 -m4trace:configure.in:27: -1- AC_SUBST([PACKAGE], [gc])
16541 -m4trace:configure.in:27: -1- AC_SUBST([VERSION], [6.1a1])
16542 -m4trace:configure.in:27: -1- AC_SUBST([ACLOCAL])
16543 -m4trace:configure.in:27: -1- AC_SUBST([AUTOCONF])
16544 -m4trace:configure.in:27: -1- AC_SUBST([AUTOMAKE])
16545 -m4trace:configure.in:27: -1- AC_SUBST([AUTOHEADER])
16546 -m4trace:configure.in:27: -1- AC_SUBST([MAKEINFO])
16547 -m4trace:configure.in:27: -1- AC_SUBST([AMTAR])
16548 -m4trace:configure.in:27: -1- AC_SUBST([install_sh])
16549 -m4trace:configure.in:27: -1- AC_SUBST([STRIP])
16550 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_STRIP])
16551 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
16552 -m4trace:configure.in:27: -1- AC_PROG_AWK
16553 -m4trace:configure.in:27: -1- AC_SUBST([AWK])
16554 -m4trace:configure.in:27: -1- AC_PROG_MAKE_SET
16555 -m4trace:configure.in:27: -1- AC_SUBST([SET_MAKE])
16556 -m4trace:configure.in:27: -1- AC_SUBST([AS])
16557 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AS])
16558 -m4trace:configure.in:27: -1- AC_SUBST([AR])
16559 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AR])
16560 -m4trace:configure.in:27: -1- AC_SUBST([RANLIB])
16561 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_RANLIB])
16562 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16563 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16564 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16565 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16566 -m4trace:configure.in:27: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16567 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16568 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16569 -m4trace:configure.in:27: -1- AC_SUBST([MAINT])
16570 -m4trace:configure.in:27: -1- AC_SUBST([GC_CFLAGS])
16571 -m4trace:configure.in:29: -1- AM_PROG_LIBTOOL
16572 -m4trace:configure.in:29: -1- AC_PROG_LIBTOOL
16573 -m4trace:configure.in:29: -1- AC_PROG_CC
16574 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16575 -m4trace:configure.in:29: -1- AC_SUBST([CFLAGS])
16576 -m4trace:configure.in:29: -1- AC_SUBST([LDFLAGS])
16577 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16578 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16579 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16580 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16581 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16582 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16583 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16584 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16585 -m4trace:configure.in:29: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
16586 -m4trace:configure.in:29: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
16587 -m4trace:configure.in:29: -1- AC_SUBST([DEPDIR])
16588 -m4trace:configure.in:29: -1- AC_SUBST([am__include])
16589 -m4trace:configure.in:29: -1- AC_SUBST([am__quote])
16590 -m4trace:configure.in:29: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
16591 -m4trace:configure.in:29: -1- AC_SUBST([AMDEP_TRUE])
16592 -m4trace:configure.in:29: -1- AC_SUBST([AMDEP_FALSE])
16593 -m4trace:configure.in:29: -1- AC_SUBST([AMDEPBACKSLASH])
16594 -m4trace:configure.in:29: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
16595 -m4trace:configure.in:29: -1- AC_PROG_LN_S
16596 -m4trace:configure.in:29: -1- AC_SUBST([LN_S], [$as_ln_s])
16597 -m4trace:configure.in:29: -1- AC_SUBST([ECHO])
16598 -m4trace:configure.in:29: -1- AC_SUBST([RANLIB])
16599 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_RANLIB])
16600 -m4trace:configure.in:29: -1- AC_SUBST([STRIP])
16601 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_STRIP])
16602 -m4trace:configure.in:29: -1- AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen],
16603 - [lt_cv_dlopen="dlopen"],
16604 - [AC_CHECK_LIB([dl], [dlopen],
16605 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
16606 - [AC_CHECK_LIB([svld], [dlopen],
16607 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
16608 - [AC_CHECK_LIB([dld], [dld_link],
16609 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16614 -m4trace:configure.in:29: -1- AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen],
16615 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
16616 - [AC_CHECK_LIB([dld], [dld_link],
16617 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16620 -m4trace:configure.in:29: -1- AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link],
16621 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16623 -m4trace:configure.in:29: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16624 -m4trace:configure.in:29: -1- AC_CHECK_HEADERS([dlfcn.h])
16625 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
16626 -#undef HAVE_DLFCN_H])
16627 -m4trace:configure.in:29: -1- AC_HEADER_STDC
16628 -m4trace:configure.in:29: -1- AC_PROG_CPP
16629 -m4trace:configure.in:29: -1- AC_SUBST([CPP])
16630 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16631 -m4trace:configure.in:29: -1- AC_SUBST([CPP])
16632 -m4trace:configure.in:29: -1- AC_SUBST([EGREP])
16633 -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
16634 -m4trace:configure.in:29: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
16635 -#undef STDC_HEADERS])
16636 -m4trace:configure.in:29: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
16637 - inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
16638 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
16639 -#undef HAVE_SYS_TYPES_H])
16640 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
16641 -#undef HAVE_SYS_STAT_H])
16642 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
16643 -#undef HAVE_STDLIB_H])
16644 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
16645 -#undef HAVE_STRING_H])
16646 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
16647 -#undef HAVE_MEMORY_H])
16648 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
16649 -#undef HAVE_STRINGS_H])
16650 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
16651 -#undef HAVE_INTTYPES_H])
16652 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
16653 -#undef HAVE_STDINT_H])
16654 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
16655 -#undef HAVE_UNISTD_H])
16656 -m4trace:configure.in:29: -1- AC_SUBST([LIBTOOL])
16657 -m4trace:configure.in:38: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16658 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16659 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16660 -m4trace:configure.in:38: -1- AC_SUBST([MAINT])
16661 -m4trace:configure.in:77: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16662 -m4trace:configure.in:78: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16663 -m4trace:configure.in:80: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16664 -m4trace:configure.in:82: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16665 -m4trace:configure.in:85: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16666 -m4trace:configure.in:86: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16667 -m4trace:configure.in:90: -1- AC_DEFINE_TRACE_LITERAL([GC_HPUX_THREADS])
16668 -m4trace:configure.in:91: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_C_SOURCE])
16669 -m4trace:configure.in:93: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16670 -m4trace:configure.in:95: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16671 -m4trace:configure.in:100: -1- AC_DEFINE_TRACE_LITERAL([GC_FREEBSD_THREADS])
16672 -m4trace:configure.in:105: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_THREADS])
16673 -m4trace:configure.in:106: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_PTHREADS])
16674 -m4trace:configure.in:109: -1- AC_DEFINE_TRACE_LITERAL([GC_IRIX_THREADS])
16675 -m4trace:configure.in:115: -1- AC_DEFINE_TRACE_LITERAL([GC_DARWIN_THREADS])
16676 -m4trace:configure.in:116: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16677 -m4trace:configure.in:118: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16678 -m4trace:configure.in:124: -1- AC_DEFINE_TRACE_LITERAL([GC_WIN32_THREADS])
16679 -m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([NO_GETENV])
16680 -m4trace:configure.in:134: -1- AC_SUBST([THREADLIBS])
16681 -m4trace:configure.in:141: -1- AM_CONDITIONAL([POWERPC_DARWIN], [test x$powerpc_darwin = xtrue])
16682 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_TRUE])
16683 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_FALSE])
16684 -m4trace:configure.in:148: -1- AC_CHECK_LIB([dl], [dlopen], [EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"])
16685 -m4trace:configure.in:152: -1- AC_SUBST([EXTRA_TEST_LIBS])
16686 -m4trace:configure.in:155: -1- AC_SUBST([target_all])
16687 -m4trace:configure.in:156: -1- AC_SUBST([target_alias])
16688 -m4trace:configure.in:174: -1- AC_DEFINE_TRACE_LITERAL([ECOS])
16689 -m4trace:configure.in:179: -1- AC_SUBST([CXX])
16690 -m4trace:configure.in:181: -1- AC_SUBST([INCLUDES])
16691 -m4trace:configure.in:182: -1- AC_SUBST([CXXINCLUDES])
16692 -m4trace:configure.in:197: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS25_PROC_VDB_BUG_FIXED])
16693 -m4trace:configure.in:201: -1- AC_DEFINE_TRACE_LITERAL([STACKBASE])
16694 -m4trace:configure.in:202: -1- AC_DEFINE_TRACE_LITERAL([DATASTART_IS_ETEXT])
16695 -m4trace:configure.in:211: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16696 -m4trace:configure.in:215: -1- AC_DEFINE_TRACE_LITERAL([SUNOS53_SHARED_LIB])
16697 -m4trace:configure.in:228: -1- AC_SUBST([addobjs])
16698 -m4trace:configure.in:252: -1- AC_SUBST([MY_CFLAGS])
16699 -m4trace:configure.in:256: -1- AC_DEFINE_TRACE_LITERAL([SILENT])
16700 -m4trace:configure.in:257: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGNALS])
16701 -m4trace:configure.in:258: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16702 -m4trace:configure.in:259: -1- AC_DEFINE_TRACE_LITERAL([ALL_INTERIOR_POINTERS])
16703 -m4trace:configure.in:262: -1- AC_DEFINE_TRACE_LITERAL([JAVA_FINALIZATION])
16704 -m4trace:configure.in:263: -1- AC_DEFINE_TRACE_LITERAL([GC_GCJ_SUPPORT])
16705 -m4trace:configure.in:264: -1- AC_DEFINE_TRACE_LITERAL([ATOMIC_UNCOLLECTABLE])
16706 -m4trace:configure.in:270: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGSET])
16707 -m4trace:configure.in:271: -1- AC_DEFINE_TRACE_LITERAL([NO_DEBUGGING])
16708 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([KEEP_BACK_PTRS])
16709 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([DBG_HDRS_ALL])
16710 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16711 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16712 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([SAVE_CALL_COUNT])
16713 -m4trace:configure.in:292: -1- AM_CONDITIONAL([USE_LIBDIR], [test -z "$with_cross_host"])
16714 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_TRUE])
16715 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_FALSE])
16716 -m4trace:configure.in:317: -1- AC_CONFIG_FILES([Makefile include/Makefile])
16717 -m4trace:configure.in:317: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
16718 -m4trace:configure.in:317: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
16719 diff -Nur ../boehm-gc/backgraph.c boehm-gc/backgraph.c
16720 --- ../boehm-gc/backgraph.c Mon May 26 12:48:52 2003
16721 +++ boehm-gc/backgraph.c Wed Jan 30 18:48:45 2002
16722 @@ -307,7 +307,6 @@
16724 while (currentp < (word *)(p + gc_descr)) {
16725 word current = *currentp++;
16726 - FIXUP_POINTER(current);
16727 if (current >= (word)GC_least_plausible_heap_addr &&
16728 current <= (word)GC_greatest_plausible_heap_addr) {
16729 ptr_t target = GC_base((GC_PTR)current);
16730 diff -Nur ../boehm-gc/configure boehm-gc/configure
16731 --- ../boehm-gc/configure Sat May 31 21:21:37 2003
16732 +++ boehm-gc/configure Tue May 13 17:18:14 2003
16734 program_transform_name=s,x,x,
16741 @@ -175,6 +176,7 @@
16742 --help print this message
16743 --no-create do not create output files
16744 --quiet, --silent do not print \`checking...' messages
16745 + --site-file=FILE use FILE as the site file
16746 --version print the version of autoconf that created configure
16747 Directory and file names:
16748 --prefix=PREFIX install architecture-independent files in PREFIX
16749 @@ -345,6 +347,11 @@
16750 -site=* | --site=* | --sit=*)
16751 site="$ac_optarg" ;;
16753 + -site-file | --site-file | --site-fil | --site-fi | --site-f)
16754 + ac_prev=sitefile ;;
16755 + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
16756 + sitefile="$ac_optarg" ;;
16758 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
16760 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
16761 @@ -510,12 +517,16 @@
16762 srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
16764 # Prefer explicitly selected file to automatically selected ones.
16765 -if test -z "$CONFIG_SITE"; then
16766 - if test "x$prefix" != xNONE; then
16767 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
16769 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
16770 +if test -z "$sitefile"; then
16771 + if test -z "$CONFIG_SITE"; then
16772 + if test "x$prefix" != xNONE; then
16773 + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
16775 + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
16779 + CONFIG_SITE="$sitefile"
16781 for ac_site_file in $CONFIG_SITE; do
16782 if test -r "$ac_site_file"; then
16783 @@ -593,7 +604,7 @@
16784 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
16785 # ./install, which can be erroneously created by make from ./install.sh.
16786 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
16787 -echo "configure:597: checking for a BSD compatible install" >&5
16788 +echo "configure:608: checking for a BSD compatible install" >&5
16789 if test -z "$INSTALL"; then
16790 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
16791 echo $ac_n "(cached) $ac_c" 1>&6
16792 @@ -646,7 +657,7 @@
16793 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
16795 echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
16796 -echo "configure:650: checking whether build environment is sane" >&5
16797 +echo "configure:661: checking whether build environment is sane" >&5
16800 echo timestamp > conftestfile
16801 @@ -703,7 +714,7 @@
16802 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
16804 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
16805 -echo "configure:707: checking whether ${MAKE-make} sets \${MAKE}" >&5
16806 +echo "configure:718: checking whether ${MAKE-make} sets \${MAKE}" >&5
16807 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
16808 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
16809 echo $ac_n "(cached) $ac_c" 1>&6
16810 @@ -736,12 +747,12 @@
16813 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
16814 -echo "configure:740: checking for Cygwin environment" >&5
16815 +echo "configure:751: checking for Cygwin environment" >&5
16816 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
16817 echo $ac_n "(cached) $ac_c" 1>&6
16819 cat > conftest.$ac_ext <<EOF
16820 -#line 745 "configure"
16821 +#line 756 "configure"
16822 #include "confdefs.h"
16825 @@ -752,7 +763,7 @@
16829 -if { (eval echo configure:756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16830 +if { (eval echo configure:767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16834 @@ -769,19 +780,19 @@
16836 test "$ac_cv_cygwin" = yes && CYGWIN=yes
16837 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
16838 -echo "configure:773: checking for mingw32 environment" >&5
16839 +echo "configure:784: checking for mingw32 environment" >&5
16840 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
16841 echo $ac_n "(cached) $ac_c" 1>&6
16843 cat > conftest.$ac_ext <<EOF
16844 -#line 778 "configure"
16845 +#line 789 "configure"
16846 #include "confdefs.h"
16849 return __MINGW32__;
16852 -if { (eval echo configure:785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16853 +if { (eval echo configure:796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16857 @@ -892,7 +903,7 @@
16860 echo $ac_n "checking host system type""... $ac_c" 1>&6
16861 -echo "configure:896: checking host system type" >&5
16862 +echo "configure:907: checking host system type" >&5
16865 case "$host_alias" in
16866 @@ -913,7 +924,7 @@
16867 echo "$ac_t""$host" 1>&6
16869 echo $ac_n "checking target system type""... $ac_c" 1>&6
16870 -echo "configure:917: checking target system type" >&5
16871 +echo "configure:928: checking target system type" >&5
16873 target_alias=$target
16874 case "$target_alias" in
16875 @@ -931,7 +942,7 @@
16876 echo "$ac_t""$target" 1>&6
16878 echo $ac_n "checking build system type""... $ac_c" 1>&6
16879 -echo "configure:935: checking build system type" >&5
16880 +echo "configure:946: checking build system type" >&5
16883 case "$build_alias" in
16884 @@ -971,7 +982,7 @@
16886 missing_dir=`cd $ac_aux_dir && pwd`
16887 echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
16888 -echo "configure:975: checking for working aclocal" >&5
16889 +echo "configure:986: checking for working aclocal" >&5
16890 # Run test in a subshell; some versions of sh will print an error if
16891 # an executable is not found, even if stderr is redirected.
16892 # Redirect stdin to placate older versions of autoconf. Sigh.
16893 @@ -984,7 +995,7 @@
16896 echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
16897 -echo "configure:988: checking for working autoconf" >&5
16898 +echo "configure:999: checking for working autoconf" >&5
16899 # Run test in a subshell; some versions of sh will print an error if
16900 # an executable is not found, even if stderr is redirected.
16901 # Redirect stdin to placate older versions of autoconf. Sigh.
16902 @@ -997,7 +1008,7 @@
16905 echo $ac_n "checking for working automake""... $ac_c" 1>&6
16906 -echo "configure:1001: checking for working automake" >&5
16907 +echo "configure:1012: checking for working automake" >&5
16908 # Run test in a subshell; some versions of sh will print an error if
16909 # an executable is not found, even if stderr is redirected.
16910 # Redirect stdin to placate older versions of autoconf. Sigh.
16911 @@ -1010,7 +1021,7 @@
16914 echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
16915 -echo "configure:1014: checking for working autoheader" >&5
16916 +echo "configure:1025: checking for working autoheader" >&5
16917 # Run test in a subshell; some versions of sh will print an error if
16918 # an executable is not found, even if stderr is redirected.
16919 # Redirect stdin to placate older versions of autoconf. Sigh.
16920 @@ -1023,7 +1034,7 @@
16923 echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
16924 -echo "configure:1027: checking for working makeinfo" >&5
16925 +echo "configure:1038: checking for working makeinfo" >&5
16926 # Run test in a subshell; some versions of sh will print an error if
16927 # an executable is not found, even if stderr is redirected.
16928 # Redirect stdin to placate older versions of autoconf. Sigh.
16929 @@ -1049,7 +1060,7 @@
16930 # Extract the first word of "gcc", so it can be a program name with args.
16931 set dummy gcc; ac_word=$2
16932 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16933 -echo "configure:1053: checking for $ac_word" >&5
16934 +echo "configure:1064: checking for $ac_word" >&5
16935 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
16936 echo $ac_n "(cached) $ac_c" 1>&6
16938 @@ -1079,7 +1090,7 @@
16939 # Extract the first word of "cc", so it can be a program name with args.
16940 set dummy cc; ac_word=$2
16941 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16942 -echo "configure:1083: checking for $ac_word" >&5
16943 +echo "configure:1094: checking for $ac_word" >&5
16944 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
16945 echo $ac_n "(cached) $ac_c" 1>&6
16947 @@ -1128,7 +1139,7 @@
16950 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
16951 -echo "configure:1132: checking whether we are using GNU C" >&5
16952 +echo "configure:1143: checking whether we are using GNU C" >&5
16953 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
16954 echo $ac_n "(cached) $ac_c" 1>&6
16956 @@ -1137,7 +1148,7 @@
16960 -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1141: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
16961 +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
16965 @@ -1152,7 +1163,7 @@
16966 ac_save_CFLAGS="$CFLAGS"
16968 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
16969 -echo "configure:1156: checking whether ${CC-cc} accepts -g" >&5
16970 +echo "configure:1167: checking whether ${CC-cc} accepts -g" >&5
16971 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
16972 echo $ac_n "(cached) $ac_c" 1>&6
16974 @@ -1189,7 +1200,7 @@
16975 # Extract the first word of "$ac_prog", so it can be a program name with args.
16976 set dummy $ac_prog; ac_word=$2
16977 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16978 -echo "configure:1193: checking for $ac_word" >&5
16979 +echo "configure:1204: checking for $ac_word" >&5
16980 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
16981 echo $ac_n "(cached) $ac_c" 1>&6
16983 @@ -1222,7 +1233,7 @@
16984 test -z "$CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; }
16986 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
16987 -echo "configure:1226: checking whether we are using GNU C++" >&5
16988 +echo "configure:1237: checking whether we are using GNU C++" >&5
16989 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
16990 echo $ac_n "(cached) $ac_c" 1>&6
16992 @@ -1231,7 +1242,7 @@
16996 -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
16997 +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
17001 @@ -1246,7 +1257,7 @@
17002 ac_save_CXXFLAGS="$CXXFLAGS"
17004 echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
17005 -echo "configure:1250: checking whether ${CXX-g++} accepts -g" >&5
17006 +echo "configure:1261: checking whether ${CXX-g++} accepts -g" >&5
17007 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
17008 echo $ac_n "(cached) $ac_c" 1>&6
17010 @@ -1279,7 +1290,7 @@
17011 # NEWLIB_CONFIGURE, which doesn't work because that means that it will
17012 # be run before AC_CANONICAL_HOST.
17013 echo $ac_n "checking build system type""... $ac_c" 1>&6
17014 -echo "configure:1283: checking build system type" >&5
17015 +echo "configure:1294: checking build system type" >&5
17018 case "$build_alias" in
17019 @@ -1300,7 +1311,7 @@
17020 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
17021 set dummy ${ac_tool_prefix}as; ac_word=$2
17022 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17023 -echo "configure:1304: checking for $ac_word" >&5
17024 +echo "configure:1315: checking for $ac_word" >&5
17025 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
17026 echo $ac_n "(cached) $ac_c" 1>&6
17028 @@ -1332,7 +1343,7 @@
17029 # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
17030 set dummy ${ac_tool_prefix}ar; ac_word=$2
17031 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17032 -echo "configure:1336: checking for $ac_word" >&5
17033 +echo "configure:1347: checking for $ac_word" >&5
17034 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
17035 echo $ac_n "(cached) $ac_c" 1>&6
17037 @@ -1364,7 +1375,7 @@
17038 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
17039 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
17040 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17041 -echo "configure:1368: checking for $ac_word" >&5
17042 +echo "configure:1379: checking for $ac_word" >&5
17043 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
17044 echo $ac_n "(cached) $ac_c" 1>&6
17046 @@ -1396,7 +1407,7 @@
17047 # Extract the first word of "ranlib", so it can be a program name with args.
17048 set dummy ranlib; ac_word=$2
17049 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17050 -echo "configure:1400: checking for $ac_word" >&5
17051 +echo "configure:1411: checking for $ac_word" >&5
17052 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
17053 echo $ac_n "(cached) $ac_c" 1>&6
17055 @@ -1441,7 +1452,7 @@
17056 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
17057 # ./install, which can be erroneously created by make from ./install.sh.
17058 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
17059 -echo "configure:1445: checking for a BSD compatible install" >&5
17060 +echo "configure:1456: checking for a BSD compatible install" >&5
17061 if test -z "$INSTALL"; then
17062 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
17063 echo $ac_n "(cached) $ac_c" 1>&6
17064 @@ -1495,7 +1506,7 @@
17067 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
17068 -echo "configure:1499: checking whether to enable maintainer-specific portions of Makefiles" >&5
17069 +echo "configure:1510: checking whether to enable maintainer-specific portions of Makefiles" >&5
17070 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
17071 if test "${enable_maintainer_mode+set}" = set; then
17072 enableval="$enable_maintainer_mode"
17073 @@ -1533,7 +1544,7 @@
17076 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
17077 -echo "configure:1537: checking for executable suffix" >&5
17078 +echo "configure:1548: checking for executable suffix" >&5
17079 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
17080 echo $ac_n "(cached) $ac_c" 1>&6
17082 @@ -1543,10 +1554,10 @@
17084 echo 'int main () { return 0; }' > conftest.$ac_ext
17086 - if { (eval echo configure:1547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17087 + if { (eval echo configure:1558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17088 for file in conftest.*; do
17090 - *.c | *.o | *.obj) ;;
17091 + *.c | *.o | *.obj | *.ilk | *.pdb) ;;
17092 *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
17095 @@ -1665,7 +1676,7 @@
17096 if test "$GCC" = yes; then
17097 # Check if gcc -print-prog-name=ld gives a path.
17098 echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
17099 -echo "configure:1669: checking for ld used by GCC" >&5
17100 +echo "configure:1680: checking for ld used by GCC" >&5
17103 # gcc leaves a trailing carriage return which upsets mingw
17104 @@ -1695,10 +1706,10 @@
17106 elif test "$with_gnu_ld" = yes; then
17107 echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
17108 -echo "configure:1699: checking for GNU ld" >&5
17109 +echo "configure:1710: checking for GNU ld" >&5
17111 echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
17112 -echo "configure:1702: checking for non-GNU ld" >&5
17113 +echo "configure:1713: checking for non-GNU ld" >&5
17115 if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
17116 echo $ac_n "(cached) $ac_c" 1>&6
17117 @@ -1733,7 +1744,7 @@
17119 test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
17120 echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
17121 -echo "configure:1737: checking if the linker ($LD) is GNU ld" >&5
17122 +echo "configure:1748: checking if the linker ($LD) is GNU ld" >&5
17123 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
17124 echo $ac_n "(cached) $ac_c" 1>&6
17126 @@ -1750,7 +1761,7 @@
17129 echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
17130 -echo "configure:1754: checking for $LD option to reload object files" >&5
17131 +echo "configure:1765: checking for $LD option to reload object files" >&5
17132 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
17133 echo $ac_n "(cached) $ac_c" 1>&6
17135 @@ -1762,7 +1773,7 @@
17136 test -n "$reload_flag" && reload_flag=" $reload_flag"
17138 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
17139 -echo "configure:1766: checking for BSD-compatible nm" >&5
17140 +echo "configure:1777: checking for BSD-compatible nm" >&5
17141 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
17142 echo $ac_n "(cached) $ac_c" 1>&6
17144 @@ -1800,7 +1811,7 @@
17145 echo "$ac_t""$NM" 1>&6
17147 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
17148 -echo "configure:1804: checking whether ln -s works" >&5
17149 +echo "configure:1815: checking whether ln -s works" >&5
17150 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
17151 echo $ac_n "(cached) $ac_c" 1>&6
17153 @@ -1821,7 +1832,7 @@
17156 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
17157 -echo "configure:1825: checking how to recognise dependant libraries" >&5
17158 +echo "configure:1836: checking how to recognise dependant libraries" >&5
17159 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
17160 echo $ac_n "(cached) $ac_c" 1>&6
17162 @@ -1994,13 +2005,13 @@
17163 deplibs_check_method=$lt_cv_deplibs_check_method
17165 echo $ac_n "checking for object suffix""... $ac_c" 1>&6
17166 -echo "configure:1998: checking for object suffix" >&5
17167 +echo "configure:2009: checking for object suffix" >&5
17168 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
17169 echo $ac_n "(cached) $ac_c" 1>&6
17172 echo 'int i = 1;' > conftest.$ac_ext
17173 -if { (eval echo configure:2004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17174 +if { (eval echo configure:2015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17175 for ac_file in conftest.*; do
17178 @@ -2024,7 +2035,7 @@
17180 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
17181 echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
17182 -echo "configure:2028: checking for ${ac_tool_prefix}file" >&5
17183 +echo "configure:2039: checking for ${ac_tool_prefix}file" >&5
17184 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
17185 echo $ac_n "(cached) $ac_c" 1>&6
17187 @@ -2086,7 +2097,7 @@
17188 if test -z "$lt_cv_path_MAGIC_CMD"; then
17189 if test -n "$ac_tool_prefix"; then
17190 echo $ac_n "checking for file""... $ac_c" 1>&6
17191 -echo "configure:2090: checking for file" >&5
17192 +echo "configure:2101: checking for file" >&5
17193 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
17194 echo $ac_n "(cached) $ac_c" 1>&6
17196 @@ -2157,7 +2168,7 @@
17197 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
17198 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
17199 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17200 -echo "configure:2161: checking for $ac_word" >&5
17201 +echo "configure:2172: checking for $ac_word" >&5
17202 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
17203 echo $ac_n "(cached) $ac_c" 1>&6
17205 @@ -2189,7 +2200,7 @@
17206 # Extract the first word of "ranlib", so it can be a program name with args.
17207 set dummy ranlib; ac_word=$2
17208 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17209 -echo "configure:2193: checking for $ac_word" >&5
17210 +echo "configure:2204: checking for $ac_word" >&5
17211 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
17212 echo $ac_n "(cached) $ac_c" 1>&6
17214 @@ -2224,7 +2235,7 @@
17215 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
17216 set dummy ${ac_tool_prefix}strip; ac_word=$2
17217 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17218 -echo "configure:2228: checking for $ac_word" >&5
17219 +echo "configure:2239: checking for $ac_word" >&5
17220 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
17221 echo $ac_n "(cached) $ac_c" 1>&6
17223 @@ -2256,7 +2267,7 @@
17224 # Extract the first word of "strip", so it can be a program name with args.
17225 set dummy strip; ac_word=$2
17226 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17227 -echo "configure:2260: checking for $ac_word" >&5
17228 +echo "configure:2271: checking for $ac_word" >&5
17229 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
17230 echo $ac_n "(cached) $ac_c" 1>&6
17232 @@ -2323,8 +2334,21 @@
17235 # Find out which ABI we are using.
17236 - echo '#line 2327 "configure"' > conftest.$ac_ext
17237 - if { (eval echo configure:2328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17238 + echo '#line 2338 "configure"' > conftest.$ac_ext
17239 + if { (eval echo configure:2339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17240 + if test "$lt_cv_prog_gnu_ld" = yes; then
17241 + case `/usr/bin/file conftest.$ac_objext` in
17243 + LD="${LD-ld} -melf32bsmip"
17246 + LD="${LD-ld} -melf32bmipn32"
17249 + LD="${LD-ld} -melf64bmip"
17253 case `/usr/bin/file conftest.$ac_objext` in
17256 @@ -2336,6 +2360,7 @@
17264 @@ -2343,7 +2368,7 @@
17266 # Find out which ABI we are using.
17267 echo 'int i;' > conftest.$ac_ext
17268 - if { (eval echo configure:2347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17269 + if { (eval echo configure:2372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17270 case "`/usr/bin/file conftest.o`" in
17272 HPUX_IA64_MODE="32"
17273 @@ -2359,7 +2384,7 @@
17274 x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
17275 # Find out which ABI we are using.
17276 echo 'int i;' > conftest.$ac_ext
17277 - if { (eval echo configure:2363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17278 + if { (eval echo configure:2388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17279 case "`/usr/bin/file conftest.o`" in
17282 @@ -2403,7 +2428,7 @@
17283 SAVE_CFLAGS="$CFLAGS"
17284 CFLAGS="$CFLAGS -belf"
17285 echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
17286 -echo "configure:2407: checking whether the C compiler needs -belf" >&5
17287 +echo "configure:2432: checking whether the C compiler needs -belf" >&5
17288 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
17289 echo $ac_n "(cached) $ac_c" 1>&6
17291 @@ -2416,14 +2441,14 @@
17292 cross_compiling=$ac_cv_prog_cc_cross
17294 cat > conftest.$ac_ext <<EOF
17295 -#line 2420 "configure"
17296 +#line 2445 "configure"
17297 #include "confdefs.h"
17303 -if { (eval echo configure:2427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17304 +if { (eval echo configure:2452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17306 lt_cv_cc_needs_belf=yes
17308 @@ -2453,7 +2478,7 @@
17311 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
17312 -echo "configure:2457: checking how to run the C++ preprocessor" >&5
17313 +echo "configure:2482: checking how to run the C++ preprocessor" >&5
17314 if test -z "$CXXCPP"; then
17315 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
17316 echo $ac_n "(cached) $ac_c" 1>&6
17317 @@ -2466,12 +2491,12 @@
17318 cross_compiling=$ac_cv_prog_cxx_cross
17319 CXXCPP="${CXX-g++} -E"
17320 cat > conftest.$ac_ext <<EOF
17321 -#line 2470 "configure"
17322 +#line 2495 "configure"
17323 #include "confdefs.h"
17324 #include <stdlib.h>
17326 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
17327 -{ (eval echo configure:2475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
17328 +{ (eval echo configure:2500: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
17329 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
17330 if test -z "$ac_err"; then
17332 @@ -2618,7 +2643,7 @@
17335 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
17336 -echo "configure:2622: checking whether to enable maintainer-specific portions of Makefiles" >&5
17337 +echo "configure:2647: checking whether to enable maintainer-specific portions of Makefiles" >&5
17338 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
17339 if test "${enable_maintainer_mode+set}" = set; then
17340 enableval="$enable_maintainer_mode"
17341 @@ -2651,7 +2676,7 @@
17344 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
17345 -echo "configure:2655: checking for executable suffix" >&5
17346 +echo "configure:2680: checking for executable suffix" >&5
17347 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
17348 echo $ac_n "(cached) $ac_c" 1>&6
17350 @@ -2661,10 +2686,10 @@
17352 echo 'int main () { return 0; }' > conftest.$ac_ext
17354 - if { (eval echo configure:2665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17355 + if { (eval echo configure:2690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17356 for file in conftest.*; do
17358 - *.c | *.o | *.obj) ;;
17359 + *.c | *.o | *.obj | *.ilk | *.pdb) ;;
17360 *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
17363 @@ -2684,7 +2709,7 @@
17366 echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
17367 -echo "configure:2688: checking for thread model used by GCC" >&5
17368 +echo "configure:2713: checking for thread model used by GCC" >&5
17369 THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
17370 if test -z "$THREADS"; then
17372 @@ -2793,22 +2818,6 @@
17377 - cat >> confdefs.h <<\EOF
17378 -#define GC_DARWIN_THREADS 1
17381 - cat >> confdefs.h <<\EOF
17382 -#define THREAD_LOCAL_ALLOC 1
17385 - if test "${enable_parallel_mark}" = yes; then
17386 - cat >> confdefs.h <<\EOF
17387 -#define PARALLEL_MARK 1
17395 @@ -2820,6 +2829,12 @@
17396 #define NO_GETENV 1
17399 + if test $enable_shared = yes; then
17400 + cat >> confdefs.h <<\EOF
17406 decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17407 { echo "configure: error: thread package $THREADS not yet supported" 1>&2; exit 1; }
17408 @@ -2830,28 +2845,8 @@
17413 - powerpc-*-darwin*)
17414 - powerpc_darwin=true
17419 -if test x$powerpc_darwin = xtrue; then
17420 - POWERPC_DARWIN_TRUE=
17421 - POWERPC_DARWIN_FALSE='#'
17423 - POWERPC_DARWIN_TRUE='#'
17424 - POWERPC_DARWIN_FALSE=
17427 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17428 -# dyld calls anyway
17432 - echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
17433 -echo "configure:2855: checking for dlopen in -ldl" >&5
17434 +echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
17435 +echo "configure:2850: checking for dlopen in -ldl" >&5
17436 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
17437 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
17438 echo $ac_n "(cached) $ac_c" 1>&6
17439 @@ -2859,7 +2854,7 @@
17440 ac_save_LIBS="$LIBS"
17442 cat > conftest.$ac_ext <<EOF
17443 -#line 2863 "configure"
17444 +#line 2858 "configure"
17445 #include "confdefs.h"
17446 /* Override any gcc2 internal prototype to avoid an error. */
17447 /* We use char because int might match the return type of a gcc2
17448 @@ -2870,7 +2865,7 @@
17452 -if { (eval echo configure:2874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17453 +if { (eval echo configure:2869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17455 eval "ac_cv_lib_$ac_lib_var=yes"
17457 @@ -2890,9 +2885,6 @@
17458 echo "$ac_t""no" 1>&6
17466 target_all=libgcjgc.la
17467 @@ -3108,15 +3100,17 @@
17473 -if test -z "$with_cross_host"; then
17475 - USE_LIBDIR_FALSE='#'
17476 +if test -n "$with_cross_host" &&
17477 + test x"$with_cross_host" != x"no"; then
17478 + toolexecdir='$(exec_prefix)/$(target_alias)'
17479 + toolexeclibdir='$(toolexecdir)/lib'
17481 - USE_LIBDIR_TRUE='#'
17482 - USE_LIBDIR_FALSE=
17483 + toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
17484 + toolexeclibdir='$(libdir)'
17486 +toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
17490 if test "${multilib}" = "yes"; then
17491 multilib_arg="--enable-multilib"
17492 @@ -3313,16 +3307,14 @@
17493 s%@LIBTOOL@%$LIBTOOL%g
17494 s%@CXXCPP@%$CXXCPP%g
17495 s%@THREADLIBS@%$THREADLIBS%g
17496 -s%@POWERPC_DARWIN_TRUE@%$POWERPC_DARWIN_TRUE%g
17497 -s%@POWERPC_DARWIN_FALSE@%$POWERPC_DARWIN_FALSE%g
17498 s%@EXTRA_TEST_LIBS@%$EXTRA_TEST_LIBS%g
17499 s%@target_all@%$target_all%g
17500 s%@INCLUDES@%$INCLUDES%g
17501 s%@CXXINCLUDES@%$CXXINCLUDES%g
17502 s%@addobjs@%$addobjs%g
17503 s%@MY_CFLAGS@%$MY_CFLAGS%g
17504 -s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
17505 -s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
17506 +s%@toolexecdir@%$toolexecdir%g
17507 +s%@toolexeclibdir@%$toolexeclibdir%g
17511 @@ -3331,7 +3323,7 @@
17513 # Split the substitutions into bite-sized pieces for seds with
17514 # small command number limits, like on Digital OSF/1 and HP-UX.
17515 -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
17516 +ac_max_sed_cmds=60 # Maximum number of lines to put in a sed script.
17517 ac_file=1 # Number of current file.
17518 ac_beg=1 # First line for current file.
17519 ac_end=$ac_max_sed_cmds # Line after last line for current file.
17520 @@ -3433,6 +3425,7 @@
17521 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17522 gc_basedir=${gc_basedir}
17524 +ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
17528 diff -Nur ../boehm-gc/configure.in boehm-gc/configure.in
17529 --- ../boehm-gc/configure.in Mon May 26 13:33:22 2003
17530 +++ boehm-gc/configure.in Mon Apr 28 13:55:07 2003
17532 -# Copyright (c) 1999, 2000, 2001, 2002 by Red Hat, Inc. All rights reserved.
17533 +# Copyright (c) 1999, 2000, 2001, 2002, 2003 by Red Hat, Inc. All rights reserved.
17535 # THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
17536 # OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
17537 @@ -111,18 +111,14 @@
17542 - AC_DEFINE(GC_DARWIN_THREADS)
17543 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17544 - if test "${enable_parallel_mark}" = yes; then
17545 - AC_DEFINE(PARALLEL_MARK)
17551 AC_DEFINE(GC_WIN32_THREADS)
17552 AC_DEFINE(NO_GETENV)
17553 + if test $enable_shared = yes; then
17554 + AC_DEFINE(GC_DLL)
17557 decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17558 AC_MSG_ERROR(thread package $THREADS not yet supported)
17559 @@ -133,22 +129,7 @@
17561 AC_SUBST(THREADLIBS)
17564 - powerpc-*-darwin*)
17565 - powerpc_darwin=true
17568 -AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue)
17570 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17571 -# dyld calls anyway
17575 - AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17579 +AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17580 AC_SUBST(EXTRA_TEST_LIBS)
17582 target_all=libgcjgc.la
17583 @@ -289,7 +270,17 @@
17587 -AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
17588 +if test -n "$with_cross_host" &&
17589 + test x"$with_cross_host" != x"no"; then
17590 + toolexecdir='$(exec_prefix)/$(target_alias)'
17591 + toolexeclibdir='$(toolexecdir)/lib'
17593 + toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
17594 + toolexeclibdir='$(libdir)'
17596 +toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
17597 +AC_SUBST(toolexecdir)
17598 +AC_SUBST(toolexeclibdir)
17600 if test "${multilib}" = "yes"; then
17601 multilib_arg="--enable-multilib"
17602 @@ -313,5 +304,6 @@
17603 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17604 gc_basedir=${gc_basedir}
17606 +ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
17609 diff -Nur ../boehm-gc/configure.in~ boehm-gc/configure.in~
17610 --- ../boehm-gc/configure.in~ Mon May 26 13:33:22 2003
17611 +++ boehm-gc/configure.in~ Wed Dec 31 16:00:00 1969
17613 -# Copyright (c) 1999, 2000, 2001, 2002 by Red Hat, Inc. All rights reserved.
17615 -# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
17616 -# OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
17618 -# Permission is hereby granted to use or copy this program
17619 -# for any purpose, provided the above notices are retained on all copies.
17620 -# Permission to modify the code and to distribute modified code is granted,
17621 -# provided the above notices are retained, and a notice that the code was
17622 -# modified is included with the above copyright notice.
17624 -# Original author: Tom Tromey
17626 -dnl Process this file with autoconf to produce configure.
17628 -AC_INIT(gcj_mlc.c)
17630 -# This works around the fact that libtool configuration may change LD
17631 -# for this particular configuration, but some shells, instead of
17632 -# keeping the changes in LD private, export them just because LD is
17634 -ORIGINAL_LD_FOR_MULTILIBS=$LD
17636 -dnl Can't be done in GC_CONFIGURE because that confuses automake.
17637 -AC_CONFIG_AUX_DIR(.)
17643 -dnl We use these options to decide which functions to include.
17644 -AC_ARG_WITH(target-subdir,
17645 -[ --with-target-subdir=SUBDIR
17646 - configuring with a cross compiler])
17647 -AC_ARG_WITH(cross-host,
17648 -[ --with-cross-host=HOST configuring with a cross compiler])
17650 -AM_MAINTAINER_MODE
17651 -# automake wants to see AC_EXEEXT. But we don't need it. And having
17652 -# it is actually a problem, because the compiler we're passed can't
17653 -# necessarily do a full link. So we fool automake here.
17655 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
17656 - # to nothing, so nothing would remain between `then' and `fi' if it
17657 - # were not for the `:' below.
17662 -AC_MSG_CHECKING([for thread model used by GCC])
17663 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
17664 -if test -z "$THREADS"; then
17667 -AC_MSG_RESULT([$THREADS])
17669 -AC_ARG_ENABLE(parallel-mark,
17670 -[ --enable-parallel-mark parallelize marking and free list construction],
17671 - [case "$THREADS" in
17672 - no | none | single)
17673 - AC_MSG_ERROR([Parallel mark requires --enable-threads=x spec])
17678 -INCLUDES=-I${srcdir}/include
17680 -case "$THREADS" in
17681 - no | none | single)
17684 - posix | pthreads)
17686 - THREADLIBS=-lpthread
17688 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
17689 - AC_DEFINE(GC_LINUX_THREADS)
17690 - AC_DEFINE(_REENTRANT)
17691 - if test "${enable_parallel_mark}"; then
17692 - AC_DEFINE(PARALLEL_MARK)
17694 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17697 - AC_DEFINE(GC_LINUX_THREADS)
17698 - AC_DEFINE(_REENTRANT)
17701 - AC_MSG_WARN("Only HP/UX 11 threads are supported.")
17702 - AC_DEFINE(GC_HPUX_THREADS)
17703 - AC_DEFINE(_POSIX_C_SOURCE,199506L)
17704 - if test "${enable_parallel_mark}" = yes; then
17705 - AC_DEFINE(PARALLEL_MARK)
17707 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17708 - THREADLIBS="-lpthread -lrt"
17711 - AC_MSG_WARN("FreeBSD does not yet fully support threads with Boehm GC.")
17712 - AC_DEFINE(GC_FREEBSD_THREADS)
17713 - INCLUDES="$INCLUDES -pthread"
17714 - THREADLIBS=-pthread
17717 - AC_DEFINE(GC_SOLARIS_THREADS)
17718 - AC_DEFINE(GC_SOLARIS_PTHREADS)
17721 - AC_DEFINE(GC_IRIX_THREADS)
17729 - AC_DEFINE(GC_DARWIN_THREADS)
17730 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17731 - if test "${enable_parallel_mark}" = yes; then
17732 - AC_DEFINE(PARALLEL_MARK)
17736 - AC_DEFINE(GC_WIN32_THREADS)
17737 - AC_DEFINE(NO_GETENV)
17739 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17740 - AC_MSG_ERROR(thread package $THREADS not yet supported)
17743 - AC_MSG_ERROR($THREADS is an unknown thread package)
17746 -AC_SUBST(THREADLIBS)
17749 - powerpc-*-darwin*)
17750 - powerpc_darwin=true
17753 -AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue)
17755 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17756 -# dyld calls anyway
17760 - AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17764 -AC_SUBST(EXTRA_TEST_LIBS)
17766 -target_all=libgcjgc.la
17767 -AC_SUBST(target_all)
17768 -AC_SUBST(target_alias)
17770 -dnl If the target is an eCos system, use the appropriate eCos
17772 -dnl FIXME: this should not be a local option but a global target
17773 -dnl system; at present there is no eCos target.
17776 -[ --with-ecos enable runtime eCos target support],
17777 -TARGET_ECOS="$with_ecos"
17782 -case "$TARGET_ECOS" in
17787 - CXXINCLUDES="-I${TARGET_ECOS}/include"
17788 - addobjs="$addobjs ecos.lo"
17793 -AC_SUBST(INCLUDES)
17794 -AC_SUBST(CXXINCLUDES)
17798 - alpha*-*-openbsd*)
17799 - machdep="alpha_mach_dep.lo"
17800 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
17801 - AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled)
17802 - AM_DISABLE_SHARED
17806 - machdep="alpha_mach_dep.lo"
17808 - i?86-*-solaris2.[[89]]*)
17809 - AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED)
17812 - machdep="mips_ultrix_mach_dep.lo"
17813 - AC_DEFINE(STACKBASE, __stackbase)
17814 - AC_DEFINE(DATASTART_IS_ETEXT)
17816 - mips-dec-ultrix*)
17817 - machdep="mips_ultrix_mach-dep.lo"
17822 - machdep="mips_sgi_mach_dep.lo"
17823 - AC_DEFINE(NO_EXECUTE_PERMISSION)
17825 - sparc-sun-solaris2.3*)
17826 - machdep="sparc_mach_dep.lo"
17827 - AC_DEFINE(SUNOS53_SHARED_LIB)
17829 - sparc-sun-solaris2.*)
17830 - machdep="sparc_mach_dep.lo"
17833 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
17836 -if test x"$machdep" = x; then
17837 - machdep="mach_dep.lo"
17839 -addobjs="$addobjs $machdep"
17842 -dnl As of 4.13a2, the collector will not properly work on Solaris when
17843 -dnl built with gcc and -O. So we remove -O in the appropriate case.
17845 - sparc-sun-solaris2*)
17846 - if test "$GCC" = yes; then
17848 - for i in $CFLAGS; do
17853 - new_CFLAGS="$new_CFLAGS $i"
17857 - CFLAGS="$new_CFLAGS"
17862 -dnl We need to override the top-level CFLAGS. This is how we do it.
17863 -MY_CFLAGS="$CFLAGS"
17864 -AC_SUBST(MY_CFLAGS)
17866 -dnl Include defines that have become de facto standard.
17867 -dnl ALL_INTERIOR_POINTERS can be overridden in startup code.
17869 -AC_DEFINE(NO_SIGNALS)
17870 -AC_DEFINE(NO_EXECUTE_PERMISSION)
17871 -AC_DEFINE(ALL_INTERIOR_POINTERS)
17873 -dnl By default, make the library as general as possible.
17874 -AC_DEFINE(JAVA_FINALIZATION)
17875 -AC_DEFINE(GC_GCJ_SUPPORT)
17876 -AC_DEFINE(ATOMIC_UNCOLLECTABLE)
17878 -dnl This is something of a hack. When cross-compiling we turn off
17879 -dnl some functionality. These is only correct when targetting an
17880 -dnl embedded system. FIXME.
17881 -if test -n "${with_cross_host}"; then
17882 - AC_DEFINE(NO_SIGSET)
17883 - AC_DEFINE(NO_DEBUGGING)
17886 -AC_ARG_ENABLE(full-debug,
17887 -[ --enable-full-debug include full support for pointer backtracing etc.],
17888 -[ if test "$enable_full_debug" = "yes"; then
17889 - AC_MSG_WARN("Must define GC_DEBUG and use debug alloc. in clients.")
17890 - AC_DEFINE(KEEP_BACK_PTRS)
17891 - AC_DEFINE(DBG_HDRS_ALL)
17894 - AC_DEFINE(MAKE_BACK_GRAPH)
17896 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
17897 - AC_DEFINE(MAKE_BACK_GRAPH)
17898 - AC_MSG_WARN("Client must not use -fomit-frame-pointer.")
17899 - AC_DEFINE(SAVE_CALL_COUNT, 8)
17904 -AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
17906 -if test "${multilib}" = "yes"; then
17907 - multilib_arg="--enable-multilib"
17912 -AC_OUTPUT(Makefile include/Makefile, [
17913 -dnl Put all the -D options in a file.
17914 -echo "$DEFS" > boehm-cflags
17916 -if test -n "$CONFIG_FILES"; then
17917 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
17918 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
17923 -with_multisubdir=${with_multisubdir}
17924 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
17925 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17926 -gc_basedir=${gc_basedir}
17930 diff -Nur ../boehm-gc/cord/CVS/Entries boehm-gc/cord/CVS/Entries
17931 --- ../boehm-gc/cord/CVS/Entries Mon May 26 12:46:21 2003
17932 +++ boehm-gc/cord/CVS/Entries Wed Dec 31 16:00:00 1969
17934 -/cordbscs.c/1.2/Fri Sep 14 00:43:44 2001//
17935 -/cordprnt.c/1.2/Fri Sep 14 00:43:45 2001//
17936 -/cordtest.c/1.2/Fri Sep 14 00:43:45 2001//
17937 -/cordxtra.c/1.2/Fri Sep 14 00:43:45 2001//
17938 -/de.c/1.2/Fri Sep 14 00:43:45 2001//
17939 -/de_cmds.h/1.2/Fri Sep 14 00:43:45 2001//
17940 -/de_win.ICO/1.2/Fri Sep 14 00:43:45 2001/-kb/
17941 -/de_win.RC/1.2/Fri Sep 14 00:43:45 2001//
17942 -/de_win.c/1.2/Fri Sep 14 00:43:45 2001//
17943 -/de_win.h/1.2/Fri Sep 14 00:43:46 2001//
17945 diff -Nur ../boehm-gc/cord/CVS/Repository boehm-gc/cord/CVS/Repository
17946 --- ../boehm-gc/cord/CVS/Repository Sun May 25 12:49:07 2003
17947 +++ boehm-gc/cord/CVS/Repository Wed Dec 31 16:00:00 1969
17949 -/cvs/root/gcc3/gcc3/boehm-gc/cord
17950 diff -Nur ../boehm-gc/cord/CVS/Root boehm-gc/cord/CVS/Root
17951 --- ../boehm-gc/cord/CVS/Root Sun May 25 12:49:07 2003
17952 +++ boehm-gc/cord/CVS/Root Wed Dec 31 16:00:00 1969
17954 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
17955 diff -Nur ../boehm-gc/cord/private/CVS/Entries boehm-gc/cord/private/CVS/Entries
17956 --- ../boehm-gc/cord/private/CVS/Entries Sun May 25 12:49:08 2003
17957 +++ boehm-gc/cord/private/CVS/Entries Wed Dec 31 16:00:00 1969
17960 diff -Nur ../boehm-gc/cord/private/CVS/Repository boehm-gc/cord/private/CVS/Repository
17961 --- ../boehm-gc/cord/private/CVS/Repository Sun May 25 12:49:08 2003
17962 +++ boehm-gc/cord/private/CVS/Repository Wed Dec 31 16:00:00 1969
17964 -/cvs/root/gcc3/gcc3/boehm-gc/cord/private
17965 diff -Nur ../boehm-gc/cord/private/CVS/Root boehm-gc/cord/private/CVS/Root
17966 --- ../boehm-gc/cord/private/CVS/Root Sun May 25 12:49:08 2003
17967 +++ boehm-gc/cord/private/CVS/Root Wed Dec 31 16:00:00 1969
17969 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
17970 diff -Nur ../boehm-gc/darwin_stop_world.c boehm-gc/darwin_stop_world.c
17971 --- ../boehm-gc/darwin_stop_world.c Sun Jun 1 14:17:58 2003
17972 +++ boehm-gc/darwin_stop_world.c Wed Dec 31 16:00:00 1969
17974 -#include "private/pthread_support.h"
17976 -# if defined(GC_DARWIN_THREADS)
17978 -#define DEBUG_THREADS 0
17980 -/* From "Inside Mac OS X - Mach-O Runtime Architecture" published by Apple
17982 - "The space beneath the stack pointer, where a new stack frame would normally
17983 - be allocated, is called the red zone. This area as shown in Figure 3-2 may
17984 - be used for any purpose as long as a new stack frame does not need to be
17985 - added to the stack."
17987 - Page 50: "If a leaf procedure's red zone usage would exceed 224 bytes, then
17988 - it must set up a stack frame just like routines that call other routines."
17990 -#define PPC_RED_ZONE_SIZE 224
17992 -void GC_push_all_stacks() {
17998 -# if defined(POWERPC)
17999 - ppc_thread_state_t state;
18001 -# error FIXME for non-ppc OS X
18003 - mach_msg_type_number_t thread_state_count = MACHINE_THREAD_STATE_COUNT;
18005 - me = pthread_self();
18006 - if (!GC_thr_initialized) GC_thr_init();
18008 - for(i=0;i<THREAD_TABLE_SZ;i++) {
18009 - for(p=GC_threads[i];p!=0;p=p->next) {
18010 - if(p -> flags & FINISHED) continue;
18011 - if(pthread_equal(p->id,me)) {
18012 - lo = GC_approx_sp();
18014 - /* Get the thread state (registers, etc) */
18015 - r = thread_get_state(
18016 - p->stop_info.mach_thread,
18017 - MACHINE_THREAD_STATE,
18018 - (natural_t*)&state,
18019 - &thread_state_count);
18020 - if(r != KERN_SUCCESS) ABORT("thread_get_state failed");
18023 - lo = (void*)(state.r1 - PPC_RED_ZONE_SIZE);
18025 - GC_push_one(state.r0);
18026 - GC_push_one(state.r2);
18027 - GC_push_one(state.r3);
18028 - GC_push_one(state.r4);
18029 - GC_push_one(state.r5);
18030 - GC_push_one(state.r6);
18031 - GC_push_one(state.r7);
18032 - GC_push_one(state.r8);
18033 - GC_push_one(state.r9);
18034 - GC_push_one(state.r10);
18035 - GC_push_one(state.r11);
18036 - GC_push_one(state.r12);
18037 - GC_push_one(state.r13);
18038 - GC_push_one(state.r14);
18039 - GC_push_one(state.r15);
18040 - GC_push_one(state.r16);
18041 - GC_push_one(state.r17);
18042 - GC_push_one(state.r18);
18043 - GC_push_one(state.r19);
18044 - GC_push_one(state.r20);
18045 - GC_push_one(state.r21);
18046 - GC_push_one(state.r22);
18047 - GC_push_one(state.r23);
18048 - GC_push_one(state.r24);
18049 - GC_push_one(state.r25);
18050 - GC_push_one(state.r26);
18051 - GC_push_one(state.r27);
18052 - GC_push_one(state.r28);
18053 - GC_push_one(state.r29);
18054 - GC_push_one(state.r30);
18055 - GC_push_one(state.r31);
18057 - # error FIXME for non-PPC darwin
18058 - #endif /* !POWERPC */
18060 - if(p->flags & MAIN_THREAD)
18061 - hi = GC_stackbottom;
18063 - hi = p->stack_end;
18064 - #if DEBUG_THREADS
18065 - GC_printf3("Darwin: Stack for thread 0x%lx = [%lx,%lx)\n",
18066 - (unsigned long) p -> id,
18067 - (unsigned long) lo,
18068 - (unsigned long) hi
18071 - GC_push_all_stack(lo,hi);
18072 - } /* for(p=GC_threads[i]...) */
18073 - } /* for(i=0;i<THREAD_TABLE_SZ...) */
18076 -/* Caller holds allocation lock. */
18077 -void GC_stop_world()
18081 - pthread_t my_thread = pthread_self();
18082 - kern_return_t kern_result;
18084 - #if DEBUG_THREADS
18085 - GC_printf1("Stopping the world from 0x%lx\n", pthread_self());
18088 - /* Make sure all free list construction has stopped before we start. */
18089 - /* No new construction can start, since free list construction is */
18090 - /* required to acquire and release the GC lock before it starts, */
18091 - /* and we have the lock. */
18092 -# ifdef PARALLEL_MARK
18093 - GC_acquire_mark_lock();
18094 - GC_ASSERT(GC_fl_builder_count == 0);
18095 - /* We should have previously waited for it to become zero. */
18096 -# endif /* PARALLEL_MARK */
18098 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
18099 - for (p = GC_threads[i]; p != 0; p = p -> next) {
18100 - if (p -> id == my_thread) continue;
18101 - if (p -> flags & FINISHED) continue;
18102 - if (p -> thread_blocked) /* Will wait */ continue;
18104 - #if DEBUG_THREADS
18105 - GC_printf1("Suspending thread 0x%lx\n", p -> id);
18108 - /* Suspend the thread */
18109 - kern_result = thread_suspend(p->stop_info.mach_thread);
18110 - if(kern_result != KERN_SUCCESS) ABORT("thread_suspend failed");
18114 -# ifdef MPROTECT_VDB
18115 - if(GC_incremental) {
18116 - extern void GC_mprotect_stop();
18117 - GC_mprotect_stop();
18121 -# ifdef PARALLEL_MARK
18122 - GC_release_mark_lock();
18124 - #if DEBUG_THREADS
18125 - GC_printf1("World stopped from 0x%lx\n", pthread_self());
18129 -/* Caller holds allocation lock, and has held it continuously since */
18130 -/* the world stopped. */
18131 -void GC_start_world()
18133 - pthread_t my_thread = pthread_self();
18136 - kern_return_t kern_result;
18138 -# if DEBUG_THREADS
18139 - GC_printf0("World starting\n");
18142 -# ifdef MPROTECT_VDB
18143 - if(GC_incremental) {
18144 - extern void GC_mprotect_resume();
18145 - GC_mprotect_resume();
18149 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
18150 - for (p = GC_threads[i]; p != 0; p = p -> next) {
18151 - if (p -> id == my_thread) continue;
18152 - if (p -> flags & FINISHED) continue;
18153 - if (p -> thread_blocked) continue;
18155 - #if DEBUG_THREADS
18156 - GC_printf1("Resuming 0x%lx\n", p -> id);
18159 - /* Resume the thread */
18160 - kern_result = thread_resume(p->stop_info.mach_thread);
18161 - if(kern_result != KERN_SUCCESS) ABORT("thread_resume failed");
18164 - #if DEBUG_THREADS
18165 - GC_printf0("World started\n");
18169 -void GC_stop_init() {
18174 diff -Nur ../boehm-gc/dbg_mlc.c boehm-gc/dbg_mlc.c
18175 --- ../boehm-gc/dbg_mlc.c Mon May 26 12:48:52 2003
18176 +++ boehm-gc/dbg_mlc.c Tue Feb 12 21:38:39 2002
18178 # include <stdlib.h>
18180 # if defined(LINUX) || defined(SUNOS4) || defined(SUNOS5) \
18181 - || defined(HPUX) || defined(IRIX5) || defined(OSF1)
18182 + || defined(HPUX) || defined(IRIX) || defined(OSF1)
18183 # define RANDOM() random()
18185 # define RANDOM() (long)rand()
18186 @@ -228,8 +228,6 @@
18188 #endif /* KEEP_BACK_PTRS */
18190 -# define CROSSES_HBLK(p, sz) \
18191 - (((word)(p + sizeof(oh) + sz - 1) ^ (word)p) >= HBLKSIZE)
18192 /* Store debugging info into p. Return displaced pointer. */
18193 /* Assumes we don't hold allocation lock. */
18194 ptr_t GC_store_debug_info(p, sz, string, integer)
18195 @@ -245,8 +243,6 @@
18196 /* But that's expensive. And this way things should only appear */
18197 /* inconsistent while we're in the handler. */
18199 - GC_ASSERT(GC_size(p) >= sizeof(oh) + sz);
18200 - GC_ASSERT(!(SMALL_OBJ(sz) && CROSSES_HBLK(p, sz)));
18201 # ifdef KEEP_BACK_PTRS
18202 ((oh *)p) -> oh_back_ptr = HIDE_BACK_PTR(NOT_MARKED);
18204 @@ -279,8 +275,6 @@
18205 /* There is some argument that we should disable signals here. */
18206 /* But that's expensive. And this way things should only appear */
18207 /* inconsistent while we're in the handler. */
18208 - GC_ASSERT(GC_size(p) >= sizeof(oh) + sz);
18209 - GC_ASSERT(!(SMALL_OBJ(sz) && CROSSES_HBLK(p, sz)));
18210 # ifdef KEEP_BACK_PTRS
18211 ((oh *)p) -> oh_back_ptr = HIDE_BACK_PTR(NOT_MARKED);
18213 @@ -330,11 +324,10 @@
18215 register oh * ohdr = (oh *)GC_base(p);
18217 - GC_ASSERT(!I_HOLD_LOCK());
18218 GC_err_printf1("0x%lx (", ((unsigned long)ohdr + sizeof(oh)));
18219 GC_err_puts(ohdr -> oh_string);
18220 # ifdef SHORT_DBG_HDRS
18221 - GC_err_printf1(":%ld)\n", (unsigned long)(ohdr -> oh_int));
18222 + GC_err_printf1(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int));
18224 GC_err_printf2(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int),
18225 (unsigned long)(ohdr -> oh_sz));
18226 @@ -349,7 +342,6 @@
18230 - GC_ASSERT(!I_HOLD_LOCK());
18231 if (GC_HAS_DEBUG_INFO(p)) {
18234 @@ -363,7 +355,6 @@
18236 register oh * ohdr = (oh *)GC_base(p);
18238 - GC_ASSERT(!I_HOLD_LOCK());
18239 GC_err_printf2("0x%lx in object at 0x%lx(", (unsigned long)clobbered_addr,
18241 if (clobbered_addr <= (ptr_t)(&(ohdr -> oh_sz))
18242 @@ -385,18 +376,14 @@
18244 void GC_check_heap_proc GC_PROTO((void));
18246 -void GC_print_all_smashed_proc GC_PROTO((void));
18248 void GC_do_nothing() {}
18250 void GC_start_debugging()
18252 # ifndef SHORT_DBG_HDRS
18253 GC_check_heap = GC_check_heap_proc;
18254 - GC_print_all_smashed = GC_print_all_smashed_proc;
18256 GC_check_heap = GC_do_nothing;
18257 - GC_print_all_smashed = GC_do_nothing;
18259 GC_print_heap_obj = GC_debug_print_heap_obj_proc;
18260 GC_debugging_started = TRUE;
18261 @@ -442,62 +429,6 @@
18262 return (GC_store_debug_info(result, (word)lb, s, (word)i));
18266 - GC_PTR GC_debug_malloc_ignore_off_page(size_t lb, GC_EXTRA_PARAMS)
18268 - GC_PTR GC_debug_malloc_ignore_off_page(lb, s, i)
18272 -# ifdef GC_ADD_CALLER
18273 - --> GC_ADD_CALLER not implemented for K&R C
18277 - GC_PTR result = GC_malloc_ignore_off_page(lb + DEBUG_BYTES);
18279 - if (result == 0) {
18280 - GC_err_printf1("GC_debug_malloc_ignore_off_page(%ld) returning NIL (",
18281 - (unsigned long) lb);
18283 - GC_err_printf1(":%ld)\n", (unsigned long)i);
18286 - if (!GC_debugging_started) {
18287 - GC_start_debugging();
18289 - ADD_CALL_CHAIN(result, ra);
18290 - return (GC_store_debug_info(result, (word)lb, s, (word)i));
18294 - GC_PTR GC_debug_malloc_atomic_ignore_off_page(size_t lb, GC_EXTRA_PARAMS)
18296 - GC_PTR GC_debug_malloc_atomic_ignore_off_page(lb, s, i)
18300 -# ifdef GC_ADD_CALLER
18301 - --> GC_ADD_CALLER not implemented for K&R C
18305 - GC_PTR result = GC_malloc_atomic_ignore_off_page(lb + DEBUG_BYTES);
18307 - if (result == 0) {
18308 - GC_err_printf1("GC_debug_malloc_atomic_ignore_off_page(%ld)"
18309 - " returning NIL (", (unsigned long) lb);
18311 - GC_err_printf1(":%ld)\n", (unsigned long)i);
18314 - if (!GC_debugging_started) {
18315 - GC_start_debugging();
18317 - ADD_CALL_CHAIN(result, ra);
18318 - return (GC_store_debug_info(result, (word)lb, s, (word)i));
18321 # ifdef DBG_HDRS_ALL
18323 * An allocation function for internal use.
18324 @@ -516,7 +447,7 @@
18325 (unsigned long) lb);
18328 - ADD_CALL_CHAIN(result, GC_RETURN_ADDR);
18329 + ADD_CALL_CHAIN(result, ra);
18330 return (GC_store_debug_info_inner(result, (word)lb, "INTERNAL", (word)0));
18333 @@ -530,7 +461,7 @@
18334 (unsigned long) lb);
18337 - ADD_CALL_CHAIN(result, GC_RETURN_ADDR);
18338 + ADD_CALL_CHAIN(result, ra);
18339 return (GC_store_debug_info_inner(result, (word)lb, "INTERNAL", (word)0));
18342 @@ -661,7 +592,7 @@
18346 - GC_PTR result = GC_malloc_uncollectable(lb + UNCOLLECTABLE_DEBUG_BYTES);
18347 + GC_PTR result = GC_malloc_uncollectable(lb + DEBUG_BYTES);
18350 GC_err_printf1("GC_debug_malloc_uncollectable(%ld) returning NIL (",
18351 @@ -687,8 +618,7 @@
18356 - GC_malloc_atomic_uncollectable(lb + UNCOLLECTABLE_DEBUG_BYTES);
18357 + GC_PTR result = GC_malloc_atomic_uncollectable(lb + DEBUG_BYTES);
18361 @@ -844,45 +774,6 @@
18364 #ifndef SHORT_DBG_HDRS
18366 -/* List of smashed objects. We defer printing these, since we can't */
18367 -/* always print them nicely with the allocation lock held. */
18368 -/* We put them here instead of in GC_arrays, since it may be useful to */
18369 -/* be able to look at them with the debugger. */
18370 -#define MAX_SMASHED 20
18371 -ptr_t GC_smashed[MAX_SMASHED];
18372 -unsigned GC_n_smashed = 0;
18374 -# if defined(__STDC__) || defined(__cplusplus)
18375 - void GC_add_smashed(ptr_t smashed)
18377 - void GC_add_smashed(smashed)
18381 - GC_ASSERT(GC_is_marked(GC_base(smashed)));
18382 - GC_smashed[GC_n_smashed] = smashed;
18383 - if (GC_n_smashed < MAX_SMASHED - 1) ++GC_n_smashed;
18384 - /* In case of overflow, we keep the first MAX_SMASHED-1 */
18385 - /* entries plus the last one. */
18386 - GC_have_errors = TRUE;
18389 -/* Print all objects on the list. Clear the list. */
18390 -void GC_print_all_smashed_proc ()
18394 - GC_ASSERT(!I_HOLD_LOCK());
18395 - if (GC_n_smashed == 0) return;
18396 - GC_err_printf0("GC_check_heap_block: found smashed heap objects:\n");
18397 - for (i = 0; i < GC_n_smashed; ++i) {
18398 - GC_print_smashed_obj(GC_base(GC_smashed[i]), GC_smashed[i]);
18399 - GC_smashed[i] = 0;
18401 - GC_n_smashed = 0;
18404 /* Check all marked objects in the given block for validity */
18406 # if defined(__STDC__) || defined(__cplusplus)
18407 @@ -911,7 +802,11 @@
18408 && GC_HAS_DEBUG_INFO((ptr_t)p)) {
18409 ptr_t clobbered = GC_check_annotated_obj((oh *)p);
18411 - if (clobbered != 0) GC_add_smashed(clobbered);
18412 + if (clobbered != 0) {
18414 + "GC_check_heap_block: found smashed location at ");
18415 + GC_print_smashed_obj((ptr_t)p, clobbered);
18420 @@ -924,11 +819,9 @@
18421 void GC_check_heap_proc()
18423 # ifndef SMALL_CONFIG
18424 -# ifdef ALIGN_DOUBLE
18425 - GC_STATIC_ASSERT((sizeof(oh) & (2 * sizeof(word) - 1)) == 0);
18427 - GC_STATIC_ASSERT((sizeof(oh) & (sizeof(word) - 1)) == 0);
18429 + if (sizeof(oh) & (2 * sizeof(word) - 1) != 0) {
18430 + ABORT("Alignment problem: object header has inappropriate size\n");
18433 GC_apply_to_all_blocks(GC_check_heap_block, (word)0);
18435 @@ -949,12 +842,12 @@
18438 struct closure * result =
18439 -# ifdef DBG_HDRS_ALL
18440 - (struct closure *) GC_debug_malloc(sizeof (struct closure),
18443 - (struct closure *) GC_malloc(sizeof (struct closure));
18445 +# ifdef DBG_HDRS_ALL
18446 + (struct closure *) GC_debug_malloc(sizeof (struct closure),
18449 + (struct closure *) GC_malloc(sizeof (struct closure));
18452 result -> cl_fn = fn;
18453 result -> cl_data = data;
18454 @@ -1015,7 +908,7 @@
18455 ptr_t base = GC_base(obj);
18456 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
18458 - "GC_debug_register_finalizer called with non-base-pointer 0x%lx\n",
18459 + "GC_register_finalizer called with non-base-pointer 0x%lx\n",
18463 @@ -1047,7 +940,7 @@
18464 ptr_t base = GC_base(obj);
18465 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
18467 - "GC_debug_register_finalizer_no_order called with non-base-pointer 0x%lx\n",
18468 + "GC_register_finalizer_no_order called with non-base-pointer 0x%lx\n",
18472 @@ -1080,7 +973,7 @@
18473 ptr_t base = GC_base(obj);
18474 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
18476 - "GC_debug_register_finalizer_ignore_self called with non-base-pointer 0x%lx\n",
18477 + "GC_register_finalizer_ignore_self called with non-base-pointer 0x%lx\n",
18481 diff -Nur ../boehm-gc/doc/CVS/Entries boehm-gc/doc/CVS/Entries
18482 --- ../boehm-gc/doc/CVS/Entries Sun May 25 12:49:09 2003
18483 +++ boehm-gc/doc/CVS/Entries Wed Dec 31 16:00:00 1969
18485 -/README/1.4/Thu Mar 14 07:28:30 2002//
18486 -/README.Mac/1.2/Fri Sep 14 00:43:47 2001//
18487 -/README.MacOSX/1.2/Fri Sep 14 00:43:47 2001//
18488 -/README.OS2/1.2/Fri Sep 14 00:43:47 2001//
18489 -/README.amiga/1.2/Fri Sep 14 00:43:47 2001//
18490 -/README.autoconf/1.2/Fri Sep 14 00:43:47 2001//
18491 -/README.changes/1.4/Thu Mar 14 07:28:30 2002//
18492 -/README.contributors/1.2/Fri Sep 14 00:43:48 2001//
18493 -/README.cords/1.2/Fri Sep 14 00:43:48 2001//
18494 -/README.dj/1.2/Fri Sep 14 00:43:48 2001//
18495 -/README.environment/1.4/Sun Apr 21 00:59:00 2002//
18496 -/README.ews4800/1.1.1.1/Thu Mar 14 03:40:19 2002//
18497 -/README.hp/1.2/Fri Sep 14 00:43:48 2001//
18498 -/README.linux/1.2/Fri Sep 14 00:43:48 2001//
18499 -/README.macros/1.2/Fri Sep 14 00:43:48 2001//
18500 -/README.rs6000/1.2/Fri Sep 14 00:43:48 2001//
18501 -/README.sgi/1.2/Fri Sep 14 00:43:49 2001//
18502 -/README.solaris2/1.2/Fri Sep 14 00:43:49 2001//
18503 -/README.uts/1.2/Fri Sep 14 00:43:49 2001//
18504 -/README.win32/1.3/Thu Mar 14 07:28:30 2002//
18505 -/barrett_diagram/1.2/Fri Sep 14 00:43:49 2001//
18506 -/debugging.html/1.3/Thu Mar 14 07:28:30 2002//
18507 -/gc.man/1.2/Fri Sep 14 00:43:49 2001//
18508 -/gcdescr.html/1.2/Fri Sep 14 00:43:49 2001//
18509 -/tree.html/1.2/Fri Sep 14 00:43:49 2001//
18511 diff -Nur ../boehm-gc/doc/CVS/Repository boehm-gc/doc/CVS/Repository
18512 --- ../boehm-gc/doc/CVS/Repository Sun May 25 12:49:08 2003
18513 +++ boehm-gc/doc/CVS/Repository Wed Dec 31 16:00:00 1969
18515 -/cvs/root/gcc3/gcc3/boehm-gc/doc
18516 diff -Nur ../boehm-gc/doc/CVS/Root boehm-gc/doc/CVS/Root
18517 --- ../boehm-gc/doc/CVS/Root Sun May 25 12:49:08 2003
18518 +++ boehm-gc/doc/CVS/Root Wed Dec 31 16:00:00 1969
18520 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
18521 diff -Nur ../boehm-gc/dyn_load.c boehm-gc/dyn_load.c
18522 --- ../boehm-gc/dyn_load.c Mon May 26 12:48:52 2003
18523 +++ boehm-gc/dyn_load.c Mon Mar 3 22:38:30 2003
18525 !defined(MSWIN32) && !defined(MSWINCE) && \
18526 !(defined(ALPHA) && defined(OSF1)) && \
18527 !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
18528 - !defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \
18529 + !defined(RS6000) && !defined(SCO_ELF) && \
18530 !(defined(FREEBSD) && defined(__ELF__)) && \
18531 - !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \
18533 + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD)
18534 --> We only know how to find data segments of dynamic libraries for the
18535 --> above. Additional SVR4 variants might not be too
18540 #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
18541 - (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
18542 + (defined(FREEBSD) && defined(__ELF__)) || \
18543 (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
18544 # include <stddef.h>
18546 @@ -265,7 +264,7 @@
18547 # endif /* SUNOS */
18549 #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
18550 - (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
18551 + (defined(FREEBSD) && defined(__ELF__)) || \
18552 (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
18555 @@ -283,23 +282,56 @@
18556 /* Repeatedly read until buffer is filled, or EOF is encountered */
18557 /* Defined in os_dep.c. */
18559 -char *GC_parse_map_entry(char *buf_ptr, word *start, word *end,
18560 - char *prot_buf, unsigned int *maj_dev);
18561 -word GC_apply_to_maps(word (*fn)(char *));
18562 - /* From os_dep.c */
18563 +static char *parse_map_entry(char *buf_ptr, word *start, word *end,
18564 + char *prot_buf, unsigned int *maj_dev);
18566 -word GC_register_map_entries(char *maps)
18567 +void GC_register_dynamic_libraries()
18572 - char *buf_ptr = maps;
18574 + char maps_temp[32768];
18579 - unsigned int maj_dev;
18580 + unsigned int maj_dev, min_dev;
18581 word least_ha, greatest_ha;
18583 word datastart = (word)(DATASTART);
18585 - /* Compute heap bounds. FIXME: Should be done by add_to_heap? */
18586 + /* Read /proc/self/maps */
18587 + /* Note that we may not allocate, and thus can't use stdio. */
18588 + f = open("/proc/self/maps", O_RDONLY);
18589 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
18590 + /* stat() doesn't work for /proc/self/maps, so we have to
18591 + read it to find out how large it is... */
18594 + result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
18595 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
18596 + maps_size += result;
18597 + } while (result == sizeof(maps_temp));
18599 + if (maps_size > sizeof(maps_temp)) {
18600 + /* If larger than our buffer, close and re-read it. */
18602 + f = open("/proc/self/maps", O_RDONLY);
18603 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
18604 + maps_buf = alloca(maps_size);
18605 + if (NULL == maps_buf) ABORT("/proc/self/maps alloca failed");
18606 + result = GC_repeat_read(f, maps_buf, maps_size);
18607 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
18609 + /* Otherwise use the fixed size buffer */
18610 + maps_buf = maps_temp;
18614 + maps_buf[result] = '\0';
18615 + buf_ptr = maps_buf;
18616 + /* Compute heap bounds. Should be done by add_to_heap? */
18617 least_ha = (word)(-1);
18619 for (i = 0; i < GC_n_heap_sects; ++i) {
18620 @@ -310,10 +342,11 @@
18622 if (greatest_ha < (word)GC_scratch_last_end_ptr)
18623 greatest_ha = (word)GC_scratch_last_end_ptr;
18626 - buf_ptr = GC_parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
18627 - if (buf_ptr == NULL) return 1;
18629 + buf_ptr = parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
18630 + if (buf_ptr == NULL) return;
18632 if (prot_buf[1] == 'w') {
18633 /* This is a writable mapping. Add it to */
18634 /* the root set unless it is already otherwise */
18635 @@ -325,7 +358,16 @@
18637 if (GC_segment_is_thread_stack(start, end)) continue;
18639 - /* We no longer exclude the main data segment. */
18640 + /* The rest of this assumes that there is no mapping */
18641 + /* spanning the beginning of the data segment, or extending */
18642 + /* beyond the entire heap at both ends. */
18643 + /* Empirically these assumptions hold. */
18645 + if (start < (word)DATAEND && end > (word)DATAEND) {
18646 + /* Rld may use space at the end of the main data */
18647 + /* segment. Thus we add that in. */
18648 + start = (word)DATAEND;
18650 if (start < least_ha && end > least_ha) {
18653 @@ -335,14 +377,7 @@
18654 if (start >= least_ha && end <= greatest_ha) continue;
18655 GC_add_roots_inner((char *)start, (char *)end, TRUE);
18661 -void GC_register_dynamic_libraries()
18663 - if (!GC_apply_to_maps(GC_register_map_entries))
18664 - ABORT("Failed to read /proc for library registration.");
18668 /* We now take care of the main data segment ourselves: */
18669 @@ -352,6 +387,60 @@
18672 # define HAVE_REGISTER_MAIN_STATIC_DATA
18674 +// parse_map_entry parses an entry from /proc/self/maps so we can
18675 +// locate all writable data segments that belong to shared libraries.
18676 +// The format of one of these entries and the fields we care about
18678 +// XXXXXXXX-XXXXXXXX r-xp 00000000 30:05 260537 name of mapping...\n
18679 +// ^^^^^^^^ ^^^^^^^^ ^^^^ ^^
18680 +// start end prot maj_dev
18683 +// The parser is called with a pointer to the entry and the return value
18684 +// is either NULL or is advanced to the next entry(the byte after the
18685 +// trailing '\n'.)
18687 +#define OFFSET_MAP_START 0
18688 +#define OFFSET_MAP_END 9
18689 +#define OFFSET_MAP_PROT 18
18690 +#define OFFSET_MAP_MAJDEV 32
18692 +static char *parse_map_entry(char *buf_ptr, word *start, word *end,
18693 + char *prot_buf, unsigned int *maj_dev)
18696 + unsigned int val;
18699 + if (buf_ptr == NULL || *buf_ptr == '\0') {
18703 + memcpy(prot_buf, buf_ptr+OFFSET_MAP_PROT, 4); // do the protections first
18704 + prot_buf[4] = '\0';
18706 + if (prot_buf[1] == 'w') { // we can skip all of this if it's not writable
18709 + buf_ptr[OFFSET_MAP_START+8] = '\0';
18710 + *start = strtoul(tok, NULL, 16);
18712 + tok = buf_ptr+OFFSET_MAP_END;
18713 + buf_ptr[OFFSET_MAP_END+8] = '\0';
18714 + *end = strtoul(tok, NULL, 16);
18716 + buf_ptr += OFFSET_MAP_MAJDEV;
18718 + while (*buf_ptr != ':') buf_ptr++;
18719 + *buf_ptr++ = '\0';
18720 + *maj_dev = strtoul(tok, NULL, 16);
18723 + while (*buf_ptr && *buf_ptr++ != '\n');
18728 #endif /* USE_PROC_FOR_LIBRARIES */
18730 @@ -419,7 +508,6 @@
18731 GC_add_roots_inner(DATASTART2, (char *)(DATAEND2), TRUE);
18738 @@ -542,7 +630,6 @@
18739 /* The type is a lie, since the real type doesn't make sense here, */
18740 /* and we only test for NULL. */
18743 /* We use /proc to track down all parts of the address space that are */
18744 /* mapped by the process, and throw out regions we know we shouldn't */
18745 /* worry about. This may also work under other SVR4 variants. */
18746 @@ -969,122 +1056,7 @@
18748 #endif /* RS6000 */
18752 -#include <mach-o/dyld.h>
18753 -#include <mach-o/getsect.h>
18755 -/*#define DARWIN_DEBUG*/
18757 -const static struct {
18759 - const char *sect;
18760 -} GC_dyld_sections[] = {
18761 - { SEG_DATA, SECT_DATA },
18762 - { SEG_DATA, SECT_BSS },
18763 - { SEG_DATA, SECT_COMMON }
18766 -#ifdef DARWIN_DEBUG
18767 -static const char *GC_dyld_name_for_hdr(struct mach_header *hdr) {
18768 - unsigned long i,c;
18769 - c = _dyld_image_count();
18770 - for(i=0;i<c;i++) if(_dyld_get_image_header(i) == hdr)
18771 - return _dyld_get_image_name(i);
18776 -/* This should never be called by a thread holding the lock */
18777 -static void GC_dyld_image_add(struct mach_header* hdr, unsigned long slide) {
18778 - unsigned long start,end,i;
18779 - const struct section *sec;
18780 - for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
18781 - sec = getsectbynamefromheader(
18782 - hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
18783 - if(sec == NULL || sec->size == 0) continue;
18784 - start = slide + sec->addr;
18785 - end = start + sec->size;
18786 -# ifdef DARWIN_DEBUG
18787 - GC_printf4("Adding section at %p-%p (%lu bytes) from image %s\n",
18788 - start,end,sec->size,GC_dyld_name_for_hdr(hdr));
18790 - GC_add_roots((char*)start,(char*)end);
18792 -# ifdef DARWIN_DEBUG
18793 - GC_print_static_roots();
18797 -/* This should never be called by a thread holding the lock */
18798 -static void GC_dyld_image_remove(struct mach_header* hdr, unsigned long slide) {
18799 - unsigned long start,end,i;
18800 - const struct section *sec;
18801 - for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
18802 - sec = getsectbynamefromheader(
18803 - hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
18804 - if(sec == NULL || sec->size == 0) continue;
18805 - start = slide + sec->addr;
18806 - end = start + sec->size;
18807 -# ifdef DARWIN_DEBUG
18808 - GC_printf4("Removing section at %p-%p (%lu bytes) from image %s\n",
18809 - start,end,sec->size,GC_dyld_name_for_hdr(hdr));
18811 - GC_remove_roots((char*)start,(char*)end);
18813 -# ifdef DARWIN_DEBUG
18814 - GC_print_static_roots();
18818 -void GC_register_dynamic_libraries() {
18819 - /* Currently does nothing. The callbacks are setup by GC_init_dyld()
18820 - The dyld library takes it from there. */
18823 -/* The _dyld_* functions have an internal lock so no _dyld functions
18824 - can be called while the world is stopped without the risk of a deadlock.
18825 - Because of this we MUST setup callbacks BEFORE we ever stop the world.
18826 - This should be called BEFORE any thread in created and WITHOUT the
18827 - allocation lock held. */
18829 -void GC_init_dyld() {
18830 - static GC_bool initialized = FALSE;
18832 - if(initialized) return;
18834 -# ifdef DARWIN_DEBUG
18835 - GC_printf0("Forcing full bind of GC code...\n");
18837 - if(!_dyld_bind_fully_image_containing_address((unsigned long*)GC_malloc))
18838 - GC_abort("_dyld_bind_fully_image_containing_addres failed");
18840 -# ifdef DARWIN_DEBUG
18841 - GC_printf0("Registering dyld callbacks...\n");
18844 - /* Apple's Documentation:
18845 - When you call _dyld_register_func_for_add_image, the dynamic linker runtime
18846 - calls the specified callback (func) once for each of the images that is
18847 - currently loaded into the program. When a new image is added to the program,
18848 - your callback is called again with the mach_header for the new image, and the virtual memory slide amount of the new image.
18850 - This WILL properly register existing and all future libraries
18853 - _dyld_register_func_for_add_image(GC_dyld_image_add);
18854 - _dyld_register_func_for_remove_image(GC_dyld_image_remove);
18855 - initialized = TRUE;
18858 -#define HAVE_REGISTER_MAIN_STATIC_DATA
18859 -GC_bool GC_register_main_static_data()
18861 - /* Already done through dyld callbacks */
18865 -#endif /* DARWIN */
18867 #else /* !DYNAMIC_LOADING */
18869 diff -Nur ../boehm-gc/finalize.c boehm-gc/finalize.c
18870 --- ../boehm-gc/finalize.c Mon May 26 12:48:52 2003
18871 +++ boehm-gc/finalize.c Mon Feb 11 20:37:53 2002
18872 @@ -207,8 +207,7 @@
18876 - new_dl = (struct disappearing_link *)
18877 - GC_oom_fn(sizeof(struct disappearing_link));
18878 + new_dl = GC_oom_fn(sizeof(struct disappearing_link));
18880 GC_finalization_failures++;
18882 @@ -434,8 +433,7 @@
18886 - new_fo = (struct finalizable_object *)
18887 - GC_oom_fn(sizeof(struct finalizable_object));
18888 + new_fo = GC_oom_fn(sizeof(struct finalizable_object));
18890 GC_finalization_failures++;
18892 @@ -761,9 +759,8 @@
18893 /* Should be called without allocation lock. */
18894 int GC_invoke_finalizers()
18896 - struct finalizable_object * curr_fo;
18898 - word mem_freed_before;
18899 + register struct finalizable_object * curr_fo;
18900 + register int count = 0;
18903 while (GC_finalize_now != 0) {
18904 @@ -771,9 +768,6 @@
18908 - if (count == 0) {
18909 - mem_freed_before = GC_mem_freed;
18911 curr_fo = GC_finalize_now;
18913 if (curr_fo != 0) GC_finalize_now = fo_next(curr_fo);
18914 @@ -795,11 +789,6 @@
18915 GC_free((GC_PTR)curr_fo);
18918 - if (count != 0 && mem_freed_before != GC_mem_freed) {
18920 - GC_finalizer_mem_freed += (GC_mem_freed - mem_freed_before);
18926 @@ -812,9 +801,7 @@
18927 if (GC_finalize_now == 0) return;
18928 if (!GC_finalize_on_demand) {
18929 (void) GC_invoke_finalizers();
18931 - GC_ASSERT(GC_finalize_now == 0);
18932 -# endif /* Otherwise GC can run concurrently and add more */
18933 + GC_ASSERT(GC_finalize_now == 0);
18936 if (GC_finalizer_notifier != (void (*) GC_PROTO((void)))0
18937 @@ -852,17 +839,3 @@
18941 -#if !defined(NO_DEBUGGING)
18943 -void GC_print_finalization_stats()
18945 - struct finalizable_object *fo = GC_finalize_now;
18946 - size_t ready = 0;
18948 - GC_printf2("%lu finalization table entries; %lu disappearing links\n",
18949 - GC_fo_entries, GC_dl_entries);
18950 - for (; 0 != fo; fo = fo_next(fo)) ++ready;
18951 - GC_printf1("%lu objects are eligible for immediate finalization\n", ready);
18954 -#endif /* NO_DEBUGGING */
18955 diff -Nur ../boehm-gc/gc_dlopen.c boehm-gc/gc_dlopen.c
18956 --- ../boehm-gc/gc_dlopen.c Mon May 26 12:48:52 2003
18957 +++ boehm-gc/gc_dlopen.c Tue Oct 16 02:01:35 2001
18958 @@ -19,14 +19,12 @@
18960 * This used to be in dyn_load.c. It was extracted into a separate file
18961 * to avoid having to link against libdl.{a,so} if the client doesn't call
18962 - * dlopen. Of course this fails if the collector is in a dynamic
18967 #include "private/gc_priv.h"
18969 -# if (defined(GC_PTHREADS) && !defined(GC_DARWIN_THREADS)) \
18970 - || defined(GC_SOLARIS_THREADS)
18971 +# if defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS)
18973 # if defined(dlopen) && !defined(GC_USE_LD_WRAP)
18974 /* To support various threads pkgs, gc.h interposes on dlopen by */
18975 @@ -46,14 +44,19 @@
18976 /* calls in either a multithreaded environment, or if the library */
18977 /* initialization code allocates substantial amounts of GC'ed memory. */
18978 /* But I don't know of a better solution. */
18979 - static void disable_gc_for_dlopen()
18980 + /* This can still deadlock if the client explicitly starts a GC */
18981 + /* during the dlopen. He shouldn't do that. */
18982 + static GC_bool disable_gc_for_dlopen()
18986 + result = GC_dont_gc;
18987 while (GC_incremental && GC_collection_in_progress()) {
18988 GC_collect_a_little_inner(1000);
18991 + GC_dont_gc = TRUE;
18996 /* Redefine dlopen to guarantee mutual exclusion with */
19001 + GC_bool dont_gc_save;
19003 # ifndef USE_PROC_FOR_LIBRARIES
19004 - disable_gc_for_dlopen();
19005 + dont_gc_save = disable_gc_for_dlopen();
19007 # ifdef GC_USE_LD_WRAP
19008 result = (void *)__real_dlopen(path, mode);
19010 result = dlopen(path, mode);
19012 # ifndef USE_PROC_FOR_LIBRARIES
19013 - GC_enable(); /* undoes disable_gc_for_dlopen */
19014 + GC_dont_gc = dont_gc_save;
19018 diff -Nur ../boehm-gc/gcj_mlc.c boehm-gc/gcj_mlc.c
19019 --- ../boehm-gc/gcj_mlc.c Mon May 26 12:48:52 2003
19020 +++ boehm-gc/gcj_mlc.c Mon Feb 11 20:37:53 2002
19021 @@ -157,7 +157,6 @@
19022 GC_words_allocd += lw;
19024 *(void **)op = ptr_to_struct_containing_descr;
19025 - GC_ASSERT(((void **)op)[1] == 0);
19029 diff -Nur ../boehm-gc/if_mach.c boehm-gc/if_mach.c
19030 --- ../boehm-gc/if_mach.c Mon May 26 12:48:52 2003
19031 +++ boehm-gc/if_mach.c Fri Aug 17 11:30:45 2001
19033 if (strcmp(MACH_TYPE, argv[1]) != 0) return(0);
19034 if (strcmp(OS_TYPE, "") != 0 && strcmp(argv[2], "") != 0
19035 && strcmp(OS_TYPE, argv[2]) != 0) return(0);
19036 - fprintf(stderr, "^^^^Starting command^^^^\n");
19037 + printf("^^^^Starting command^^^^\n");
19039 execvp(argv[3], argv+3);
19040 perror("Couldn't execute");
19041 diff -Nur ../boehm-gc/include/CVS/Entries boehm-gc/include/CVS/Entries
19042 --- ../boehm-gc/include/CVS/Entries Sat May 31 21:17:20 2003
19043 +++ boehm-gc/include/CVS/Entries Wed Dec 31 16:00:00 1969
19045 -/Makefile.am/1.1.1.2/Tue Jan 21 20:40:57 2003//
19046 -/Makefile.in/1.1.1.4/Tue Jan 21 20:40:57 2003//
19047 -/gc.h/1.5/Thu Mar 14 07:28:32 2002//
19048 -/gc_cpp.h/1.2/Fri Sep 14 00:43:53 2001//
19049 -/gc_local_alloc.h/1.2/Fri Sep 14 00:43:54 2001//
19050 -/gc_mark.h/1.2/Fri Sep 14 00:43:54 2001//
19051 -/gc_pthread_redirects.h/1.3/Tue Oct 23 03:47:26 2001//
19052 -/gc_typed.h/1.2/Fri Sep 14 00:43:54 2001//
19053 -/new_gc_alloc.h/1.3/Tue Oct 23 03:47:26 2001//
19055 -/cord.h/1.2/Mon May 26 20:28:19 2003//
19056 -/ec.h/1.2/Mon May 26 20:28:19 2003//
19057 -/gc_alloc.h/1.2/Mon May 26 20:28:19 2003//
19058 -/gc_amiga_redirects.h/1.2/Mon May 26 20:28:19 2003//
19059 -/gc_backptr.h/1.2/Mon May 26 20:28:19 2003//
19060 -/gc_gcj.h/1.3/Mon May 26 20:28:19 2003//
19061 -/gc_inl.h/1.2/Mon May 26 20:28:19 2003//
19062 -/gc_inline.h/1.2/Mon May 26 20:28:19 2003//
19063 -/javaxfc.h/1.2/Mon May 26 20:28:19 2003//
19064 -/leak_detector.h/1.3/Mon May 26 20:28:19 2003//
19065 -/weakpointer.h/1.2/Mon May 26 20:28:19 2003//
19066 diff -Nur ../boehm-gc/include/CVS/Repository boehm-gc/include/CVS/Repository
19067 --- ../boehm-gc/include/CVS/Repository Sun May 25 12:49:09 2003
19068 +++ boehm-gc/include/CVS/Repository Wed Dec 31 16:00:00 1969
19070 -/cvs/root/gcc3/gcc3/boehm-gc/include
19071 diff -Nur ../boehm-gc/include/CVS/Root boehm-gc/include/CVS/Root
19072 --- ../boehm-gc/include/CVS/Root Sun May 25 12:49:09 2003
19073 +++ boehm-gc/include/CVS/Root Wed Dec 31 16:00:00 1969
19075 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
19076 diff -Nur ../boehm-gc/include/Makefile.in boehm-gc/include/Makefile.in
19077 --- ../boehm-gc/include/Makefile.in Mon May 26 13:08:48 2003
19078 +++ boehm-gc/include/Makefile.in Tue Dec 31 09:52:45 2002
19080 -# Makefile.in generated by automake 1.6.3 from Makefile.am.
19081 -# @configure_input@
19082 +# Makefile.in generated automatically by automake 1.4 from Makefile.am
19084 -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
19085 -# Free Software Foundation, Inc.
19086 +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
19087 # This Makefile.in is free software; the Free Software Foundation
19088 # gives unlimited permission to copy and/or distribute it,
19089 # with or without modifications, as long as this notice is preserved.
19091 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
19092 # PARTICULAR PURPOSE.
19101 includedir = @includedir@
19102 oldincludedir = /usr/include
19106 pkgdatadir = $(datadir)/@PACKAGE@
19107 pkglibdir = $(libdir)/@PACKAGE@
19108 pkgincludedir = $(includedir)/@PACKAGE@
19112 ACLOCAL = @ACLOCAL@
19113 @@ -43,16 +45,12 @@
19114 AUTOMAKE = @AUTOMAKE@
19115 AUTOHEADER = @AUTOHEADER@
19117 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
19118 INSTALL = @INSTALL@
19119 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
19120 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
19121 INSTALL_DATA = @INSTALL_DATA@
19122 -install_sh_DATA = $(install_sh) -c -m 644
19123 -install_sh_PROGRAM = $(install_sh) -c
19124 -install_sh_SCRIPT = $(install_sh) -c
19125 INSTALL_SCRIPT = @INSTALL_SCRIPT@
19126 -INSTALL_HEADER = $(INSTALL_DATA)
19127 transform = @program_transform_name@
19132 @@ -65,190 +63,171 @@
19133 host_triplet = @host@
19134 target_alias = @target_alias@
19135 target_triplet = @target@
19139 -PATH_SEPARATOR = @PATH_SEPARATOR@
19148 CXXINCLUDES = @CXXINCLUDES@
19150 DLLTOOL = @DLLTOOL@
19154 EXTRA_TEST_LIBS = @EXTRA_TEST_LIBS@
19157 GCJFLAGS = @GCJFLAGS@
19158 GC_CFLAGS = @GC_CFLAGS@
19159 INCLUDES = @INCLUDES@
19160 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
19161 LIBTOOL = @LIBTOOL@
19164 +MAKEINFO = @MAKEINFO@
19165 MY_CFLAGS = @MY_CFLAGS@
19166 OBJDUMP = @OBJDUMP@
19168 PACKAGE = @PACKAGE@
19172 THREADLIBS = @THREADLIBS@
19173 VERSION = @VERSION@
19174 addobjs = @addobjs@
19175 -am__include = @am__include@
19176 -am__quote = @am__quote@
19177 gc_basedir = @gc_basedir@
19178 -install_sh = @install_sh@
19179 mkinstalldirs = @mkinstalldirs@
19180 target_all = @target_all@
19182 AUTOMAKE_OPTIONS = foreign
19184 noinst_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
19185 gc_pthread_redirects.h gc_cpp.h
19188 -CONFIG_CLEAN_FILES =
19190 -am__depfiles_maybe =
19192 -HEADERS = $(noinst_HEADERS)
19193 +CONFIG_CLEAN_FILES =
19194 +HEADERS = $(noinst_HEADERS)
19197 +DIST_COMMON = Makefile.am Makefile.in
19200 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
19201 - cd $(top_srcdir) && \
19202 - $(AUTOMAKE) --cygnus include/Makefile
19203 -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
19204 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
19206 -mostlyclean-libtool:
19208 +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
19211 - -rm -rf .libs _libs
19216 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
19217 + cd $(top_srcdir) && $(AUTOMAKE) --cygnus include/Makefile
19219 -distclean-libtool:
19221 -uninstall-info-am:
19222 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
19223 + cd $(top_builddir) \
19224 + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
19231 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
19232 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
19233 - unique=`for i in $$list; do \
19234 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
19236 - $(AWK) ' { files[$$0] = 1; } \
19237 +ID: $(HEADERS) $(SOURCES) $(LISP)
19238 + list='$(SOURCES) $(HEADERS)'; \
19239 + unique=`for i in $$list; do echo $$i; done | \
19240 + awk ' { files[$$0] = 1; } \
19241 END { for (i in files) print i; }'`; \
19242 - mkid -fID $$unique
19243 + here=`pwd` && cd $(srcdir) \
19244 + && mkid -f$$here/ID $$unique $(LISP)
19246 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
19247 - $(TAGS_FILES) $(LISP)
19248 +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
19251 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
19252 - unique=`for i in $$list; do \
19253 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
19255 - $(AWK) ' { files[$$0] = 1; } \
19256 + list='$(SOURCES) $(HEADERS)'; \
19257 + unique=`for i in $$list; do echo $$i; done | \
19258 + awk ' { files[$$0] = 1; } \
19259 END { for (i in files) print i; }'`; \
19260 - test -z "$(ETAGS_ARGS)$$tags$$unique" \
19261 - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
19265 - here=`$(am__cd) $(top_builddir) && pwd` \
19266 - && cd $(top_srcdir) \
19267 - && gtags -i $(GTAGS_ARGS) $$here
19268 + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
19269 + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
19276 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
19279 -all-am: Makefile $(HEADERS)
19283 +maintainer-clean-tags:
19285 -install: install-am
19286 +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
19290 +distdir: $(DISTFILES)
19291 + @for file in $(DISTFILES); do \
19292 + if test -f $$file; then d=.; else d=$(srcdir); fi; \
19293 + if test -d $$d/$$file; then \
19294 + cp -pr $$d/$$file $(distdir)/$$file; \
19296 + test -f $(distdir)/$$file \
19297 + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
19298 + || cp -p $$d/$$file $(distdir)/$$file || :; \
19308 +installcheck: installcheck-am
19310 +install-info: install-info-am
19312 install-exec: install-exec-am
19315 install-data: install-data-am
19316 -uninstall: uninstall-am
19319 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
19321 -installcheck: installcheck-am
19322 +install: install-am
19324 +uninstall: uninstall-am
19325 +all-am: Makefile $(HEADERS)
19326 +all-redirect: all-am
19328 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
19329 - INSTALL_STRIP_FLAG=-s \
19330 - `test -z '$(STRIP)' || \
19331 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
19332 + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
19336 mostlyclean-generic:
19341 -rm -f Makefile $(CONFIG_CLEAN_FILES)
19342 + -rm -f config.cache config.log stamp-h stamp-h[0-9]*
19344 maintainer-clean-generic:
19345 - @echo "This command is intended for maintainers to use"
19346 - @echo "it deletes files that may require special tools to rebuild."
19349 -clean-am: clean-generic clean-libtool mostlyclean-am
19351 -distclean: distclean-am
19353 -distclean-am: clean-am distclean-generic distclean-libtool \
19357 +mostlyclean-am: mostlyclean-tags mostlyclean-generic
19364 +mostlyclean: mostlyclean-am
19367 +clean-am: clean-tags clean-generic mostlyclean-am
19373 +distclean-am: distclean-tags distclean-generic clean-am
19377 +distclean: distclean-am
19380 +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
19382 + @echo "This command is intended for maintainers to use;"
19383 + @echo "it deletes files that may require special tools to rebuild."
19385 maintainer-clean: maintainer-clean-am
19387 -maintainer-clean-am: distclean-am maintainer-clean-generic
19389 -mostlyclean: mostlyclean-am
19391 -mostlyclean-am: mostlyclean-generic mostlyclean-libtool
19394 +.PHONY: tags mostlyclean-tags distclean-tags clean-tags \
19395 +maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
19396 +installcheck-am installcheck install-info-am install-info \
19397 +install-exec-am install-exec install-data-am install-data install-am \
19398 +install uninstall-am uninstall all-redirect all-am all installdirs \
19399 +mostlyclean-generic distclean-generic clean-generic \
19400 +maintainer-clean-generic clean mostlyclean distclean maintainer-clean
19402 -.PHONY: GTAGS all all-am check check-am clean clean-generic \
19403 - clean-libtool distclean distclean-generic distclean-libtool \
19404 - distclean-tags dvi dvi-am info info-am install install-am \
19405 - install-data install-data-am install-exec install-exec-am \
19406 - install-info install-info-am install-man install-strip \
19407 - installcheck installcheck-am installdirs maintainer-clean \
19408 - maintainer-clean-generic mostlyclean mostlyclean-generic \
19409 - mostlyclean-libtool tags uninstall uninstall-am \
19410 - uninstall-info-am
19412 # Tell versions [3.59,3.63) of GNU make to not export all variables.
19413 # Otherwise a system limit (for SysV at least) may be exceeded.
19414 diff -Nur ../boehm-gc/include/gc.h boehm-gc/include/gc.h
19415 --- ../boehm-gc/include/gc.h Mon May 26 13:28:19 2003
19416 +++ boehm-gc/include/gc.h Mon Feb 11 20:37:56 2002
19421 -# include "gc_config_macros.h"
19423 + * Some tests for old macros. These violate our namespace rules and will
19424 + * disappear shortly. Use the GC_ names.
19426 +#if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS)
19427 +# define GC_SOLARIS_THREADS
19429 +#if defined(_SOLARIS_PTHREADS)
19430 +# define GC_SOLARIS_PTHREADS
19432 +#if defined(IRIX_THREADS)
19433 +# define GC_IRIX_THREADS
19435 +#if defined(HPUX_THREADS)
19436 +# define GC_HPUX_THREADS
19438 +#if defined(OSF1_THREADS)
19439 +# define GC_OSF1_THREADS
19441 +#if defined(LINUX_THREADS)
19442 +# define GC_LINUX_THREADS
19444 +#if defined(WIN32_THREADS)
19445 +# define GC_WIN32_THREADS
19447 +#if defined(USE_LD_WRAP)
19448 +# define GC_USE_LD_WRAP
19451 +#if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \
19452 + || defined(GC_SOLARIS_PTHREADS) \
19453 + || defined(GC_HPUX_THREADS) \
19454 + || defined(GC_LINUX_THREADS))
19455 +# define _REENTRANT
19456 + /* Better late than never. This fails if system headers that */
19457 + /* depend on this were previously included. */
19460 +#if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
19461 +# define GC_SOLARIS_THREADS
19464 +# if defined(GC_SOLARIS_PTHREADS) || defined(GC_FREEBSD_THREADS) || \
19465 + defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \
19466 + defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
19467 +# define GC_PTHREADS
19471 +# include <stddef.h>
19472 +# ifdef _WIN32_WCE
19473 +/* Yet more kluges for WinCE */
19474 +# include <stdlib.h> /* size_t is defined here */
19475 + typedef long ptrdiff_t; /* ptrdiff_t is not defined */
19478 +#if defined(__MINGW32__) &&defined(_DLL) && !defined(GC_NOT_DLL)
19480 +# define GC_API __declspec(dllexport)
19482 +# define GC_API __declspec(dllimport)
19486 +#if (defined(__DMC__) || defined(_MSC_VER)) \
19487 + && (defined(_DLL) && !defined(GC_NOT_DLL) \
19488 + || defined(GC_DLL))
19490 +# define GC_API extern __declspec(dllexport)
19492 +# define GC_API __declspec(dllimport)
19496 +#if defined(__WATCOMC__) && defined(GC_DLL)
19498 +# define GC_API extern __declspec(dllexport)
19500 +# define GC_API extern __declspec(dllimport)
19505 +#define GC_API extern
19508 # if defined(__STDC__) || defined(__cplusplus)
19509 # define GC_PROTO(args) args
19511 /* Env variable GC_NPROC is set to > 1, or */
19512 /* GC_NPROC is not set and this is an MP. */
19513 /* If GC_parallel is set, incremental */
19514 - /* collection is only partially functional, */
19515 + /* collection is aonly partially functional, */
19516 /* and may not be desirable. */
19519 @@ -131,14 +215,8 @@
19520 /* thread, which will call GC_invoke_finalizers */
19523 -GC_API int GC_dont_gc; /* != 0 ==> Dont collect. In versions 7.2a1+, */
19524 - /* this overrides explicit GC_gcollect() calls. */
19525 - /* Used as a counter, so that nested enabling */
19526 - /* and disabling work correctly. Should */
19527 - /* normally be updated with GC_enable() and */
19528 - /* GC_disable() calls. */
19529 - /* Direct assignment to GC_dont_gc is */
19530 - /* deprecated. */
19531 +GC_API int GC_dont_gc; /* Dont collect unless explicitly requested, e.g. */
19532 + /* because it's not safe. */
19534 GC_API int GC_dont_expand;
19535 /* Dont expand heap unless explicitly requested */
19536 @@ -218,6 +296,15 @@
19537 /* Interferes with blacklisting. */
19538 /* Wizards only. */
19540 +/* Public procedures */
19542 +/* Initialize the collector. This is only required when using thread-local
19543 + * allocation, since unlike the regular allocation routines, GC_local_malloc
19544 + * is not self-initializing. If you use GC_local_malloc you should arrange
19545 + * to call this somehow (e.g. from a constructor) before doing any allocation.
19547 +GC_API void GC_init GC_PROTO((void));
19549 GC_API unsigned long GC_time_limit;
19550 /* If incremental collection is enabled, */
19551 /* We try to terminate collections */
19552 @@ -229,18 +316,9 @@
19554 # define GC_TIME_UNLIMITED 999999
19555 /* Setting GC_time_limit to this value */
19556 - /* will disable the "pause time exceeded"*/
19557 + /* will disable the "pause time exceeded */
19560 -/* Public procedures */
19562 -/* Initialize the collector. This is only required when using thread-local
19563 - * allocation, since unlike the regular allocation routines, GC_local_malloc
19564 - * is not self-initializing. If you use GC_local_malloc you should arrange
19565 - * to call this somehow (e.g. from a constructor) before doing any allocation.
19567 -GC_API void GC_init GC_PROTO((void));
19570 * general purpose allocation routines, with roughly malloc calling conv.
19571 * The atomic versions promise that no relevant pointers are contained
19572 @@ -341,21 +419,17 @@
19573 GC_API void GC_add_roots GC_PROTO((char * low_address,
19574 char * high_address_plus_1));
19576 -/* Remove a root segment. Wizards only. */
19577 -GC_API void GC_remove_roots GC_PROTO((char * low_address,
19578 - char * high_address_plus_1));
19580 /* Add a displacement to the set of those considered valid by the */
19581 /* collector. GC_register_displacement(n) means that if p was returned */
19582 /* by GC_malloc, then (char *)p + n will be considered to be a valid */
19583 -/* pointer to p. N must be small and less than the size of p. */
19584 +/* pointer to n. N must be small and less than the size of p. */
19585 /* (All pointers to the interior of objects from the stack are */
19586 /* considered valid in any case. This applies to heap objects and */
19587 /* static data.) */
19588 /* Preferably, this should be called before any other GC procedures. */
19589 /* Calling it later adds to the probability of excess memory */
19591 -/* This is a no-op if the collector has recognition of */
19592 +/* This is a no-op if the collector was compiled with recognition of */
19593 /* arbitrary interior pointers enabled, which is now the default. */
19594 GC_API void GC_register_displacement GC_PROTO((GC_word n));
19596 @@ -390,18 +464,9 @@
19597 GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
19599 /* Return the total number of bytes allocated in this process. */
19600 -/* Never decreases, except due to wrapping. */
19601 +/* Never decreases. */
19602 GC_API size_t GC_get_total_bytes GC_PROTO((void));
19604 -/* Disable garbage collection. Even GC_gcollect calls will be */
19605 -/* ineffective. */
19606 -GC_API void GC_disable GC_PROTO((void));
19608 -/* Reenable garbage collection. GC_diable() and GC_enable() calls */
19609 -/* nest. Garbage collection is enabled if the number of calls to both */
19610 -/* both functions is equal. */
19611 -GC_API void GC_enable GC_PROTO((void));
19613 /* Enable incremental/generational collection. */
19614 /* Not advisable unless dirty bits are */
19615 /* available or most heap objects are */
19616 @@ -409,11 +474,7 @@
19617 /* Don't use in leak finding mode. */
19618 /* Ignored if GC_dont_gc is true. */
19619 /* Only the generational piece of this is */
19620 -/* functional if GC_parallel is TRUE */
19621 -/* or if GC_time_limit is GC_TIME_UNLIMITED. */
19622 -/* Causes GC_local_gcj_malloc() to revert to */
19623 -/* locked allocation. Must be called */
19624 -/* before any GC_local_gcj_malloc() calls. */
19625 +/* functional if GC_parallel is TRUE. */
19626 GC_API void GC_enable_incremental GC_PROTO((void));
19628 /* Does incremental mode write-protect pages? Returns zero or */
19629 @@ -457,42 +518,6 @@
19630 # define GC_RETURN_ADDR (GC_word)__return_address
19634 -# include <features.h>
19635 -# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
19636 - && !defined(__ia64__)
19637 -# define GC_HAVE_BUILTIN_BACKTRACE
19638 -# define GC_CAN_SAVE_CALL_STACKS
19640 -# if defined(__i386__) || defined(__x86_64__)
19641 -# define GC_CAN_SAVE_CALL_STACKS
19645 -#if defined(__sparc__)
19646 -# define GC_CAN_SAVE_CALL_STACKS
19649 -/* If we're on an a platform on which we can't save call stacks, but */
19650 -/* gcc is normally used, we go ahead and define GC_ADD_CALLER. */
19651 -/* We make this decision independent of whether gcc is actually being */
19652 -/* used, in order to keep the interface consistent, and allow mixing */
19653 -/* of compilers. */
19654 -/* This may also be desirable if it is possible but expensive to */
19655 -/* retrieve the call chain. */
19656 -#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \
19657 - || defined(__FreeBSD__)) & !defined(GC_CAN_SAVE_CALL_STACKS)
19658 -# define GC_ADD_CALLER
19659 -# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
19660 - /* gcc knows how to retrieve return address, but we don't know */
19661 - /* how to generate call stacks. */
19662 -# define GC_RETURN_ADDR (GC_word)__builtin_return_address(0)
19664 - /* Just pass 0 for gcc compatibility. */
19665 -# define GC_RETURN_ADDR 0
19669 #ifdef GC_ADD_CALLER
19670 # define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
19671 # define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
19672 @@ -511,42 +536,18 @@
19673 GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19674 GC_API GC_PTR GC_debug_malloc_stubborn
19675 GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19676 -GC_API GC_PTR GC_debug_malloc_ignore_off_page
19677 - GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19678 -GC_API GC_PTR GC_debug_malloc_atomic_ignore_off_page
19679 - GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19680 GC_API void GC_debug_free GC_PROTO((GC_PTR object_addr));
19681 GC_API GC_PTR GC_debug_realloc
19682 GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes,
19685 GC_API void GC_debug_change_stubborn GC_PROTO((GC_PTR));
19686 GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
19688 -/* Routines that allocate objects with debug information (like the */
19689 -/* above), but just fill in dummy file and line number information. */
19690 -/* Thus they can serve as drop-in malloc/realloc replacements. This */
19691 -/* can be useful for two reasons: */
19692 -/* 1) It allows the collector to be built with DBG_HDRS_ALL defined */
19693 -/* even if some allocation calls come from 3rd party libraries */
19694 -/* that can't be recompiled. */
19695 -/* 2) On some platforms, the file and line information is redundant, */
19696 -/* since it can be reconstructed from a stack trace. On such */
19697 -/* platforms it may be more convenient not to recompile, e.g. for */
19698 -/* leak detection. This can be accomplished by instructing the */
19699 -/* linker to replace malloc/realloc with these. */
19700 -GC_API GC_PTR GC_debug_malloc_replacement GC_PROTO((size_t size_in_bytes));
19701 -GC_API GC_PTR GC_debug_realloc_replacement
19702 - GC_PROTO((GC_PTR object_addr, size_t size_in_bytes));
19705 # define GC_MALLOC(sz) GC_debug_malloc(sz, GC_EXTRAS)
19706 # define GC_MALLOC_ATOMIC(sz) GC_debug_malloc_atomic(sz, GC_EXTRAS)
19707 -# define GC_MALLOC_UNCOLLECTABLE(sz) \
19708 - GC_debug_malloc_uncollectable(sz, GC_EXTRAS)
19709 -# define GC_MALLOC_IGNORE_OFF_PAGE(sz) \
19710 - GC_debug_malloc_ignore_off_page(sz, GC_EXTRAS)
19711 -# define GC_MALLOC_ATOMIC_IGNORE_OFF_PAGE(sz) \
19712 - GC_debug_malloc_atomic_ignore_off_page(sz, GC_EXTRAS)
19713 +# define GC_MALLOC_UNCOLLECTABLE(sz) GC_debug_malloc_uncollectable(sz, \
19715 # define GC_REALLOC(old, sz) GC_debug_realloc(old, sz, GC_EXTRAS)
19716 # define GC_FREE(p) GC_debug_free(p)
19717 # define GC_REGISTER_FINALIZER(p, f, d, of, od) \
19718 @@ -565,10 +566,6 @@
19719 # define GC_MALLOC(sz) GC_malloc(sz)
19720 # define GC_MALLOC_ATOMIC(sz) GC_malloc_atomic(sz)
19721 # define GC_MALLOC_UNCOLLECTABLE(sz) GC_malloc_uncollectable(sz)
19722 -# define GC_MALLOC_IGNORE_OFF_PAGE(sz) \
19723 - GC_malloc_ignore_off_page(sz)
19724 -# define GC_MALLOC_ATOMIC_IGNORE_OFF_PAGE(sz) \
19725 - GC_malloc_atomic_ignore_off_page(sz)
19726 # define GC_REALLOC(old, sz) GC_realloc(old, sz)
19727 # define GC_FREE(p) GC_free(p)
19728 # define GC_REGISTER_FINALIZER(p, f, d, of, od) \
19729 @@ -647,8 +644,7 @@
19730 /* itself. There is a stylistic argument that this is wrong, */
19731 /* but it's unavoidable for C++, since the compiler may */
19732 /* silently introduce these. It's also benign in that specific */
19733 -/* case. And it helps if finalizable objects are split to */
19734 -/* avoid cycles. */
19736 /* Note that cd will still be viewed as accessible, even if it */
19737 /* refers to the object itself. */
19738 GC_API void GC_register_finalizer_ignore_self
19739 @@ -721,6 +717,11 @@
19740 /* Undoes a registration by either of the above two */
19743 +/* Auxiliary fns to make finalization work correctly with displaced */
19744 +/* pointers introduced by the debugging allocators. */
19745 +GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
19746 +GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
19748 /* Returns !=0 if GC_invoke_finalizers has something to do. */
19749 GC_API int GC_should_invoke_finalizers GC_PROTO((void));
19751 @@ -737,10 +738,6 @@
19752 typedef void (*GC_warn_proc) GC_PROTO((char *msg, GC_word arg));
19753 GC_API GC_warn_proc GC_set_warn_proc GC_PROTO((GC_warn_proc p));
19754 /* Returns old warning procedure. */
19756 -GC_API GC_word GC_set_free_space_divisor GC_PROTO((GC_word value));
19757 - /* Set free_space_divisor. See above for definition. */
19758 - /* Returns old value. */
19760 /* The following is intended to be used by a higher level */
19761 /* (e.g. Java-like) finalization facility. It is expected */
19762 @@ -878,16 +875,12 @@
19764 #if defined(GC_WIN32_THREADS)
19765 # include <windows.h>
19766 -# include <winbase.h>
19769 * All threads must be created using GC_CreateThread, so that they will be
19770 - * recorded in the thread table. For backwards compatibility, this is not
19771 - * technically true if the GC is built as a dynamic library, since it can
19772 - * and does then use DllMain to keep track of thread creations. But new code
19773 - * should be built to call GC_CreateThread.
19774 + * recorded in the thread table.
19776 - GC_API HANDLE GC_CreateThread(
19777 + HANDLE WINAPI GC_CreateThread(
19778 LPSECURITY_ATTRIBUTES lpThreadAttributes,
19779 DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
19780 LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );
19781 @@ -921,18 +914,13 @@
19782 # define GC_INIT() { extern end, etext; \
19783 GC_noop(&end, &etext); }
19785 -# if defined(__CYGWIN32__) && defined(GC_DLL) || defined (_AIX)
19786 +# if (defined(__CYGWIN32__) && defined(GC_USE_DLL)) || defined (_AIX)
19788 - * Similarly gnu-win32 DLLs need explicit initialization from
19789 - * the main program, as does AIX.
19790 + * Similarly gnu-win32 DLLs need explicit initialization
19792 # define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
19794 -# if defined(__APPLE__) && defined(__MACH__)
19795 -# define GC_INIT() { GC_init(); }
19797 -# define GC_INIT()
19799 +# define GC_INIT()
19803 diff -Nur ../boehm-gc/include/gc_allocator.h boehm-gc/include/gc_allocator.h
19804 --- ../boehm-gc/include/gc_allocator.h Mon May 26 13:28:19 2003
19805 +++ boehm-gc/include/gc_allocator.h Wed Dec 31 16:00:00 1969
19808 - * Copyright (c) 1996-1997
19809 - * Silicon Graphics Computer Systems, Inc.
19811 - * Permission to use, copy, modify, distribute and sell this software
19812 - * and its documentation for any purpose is hereby granted without fee,
19813 - * provided that the above copyright notice appear in all copies and
19814 - * that both that copyright notice and this permission notice appear
19815 - * in supporting documentation. Silicon Graphics makes no
19816 - * representations about the suitability of this software for any
19817 - * purpose. It is provided "as is" without express or implied warranty.
19819 - * Copyright (c) 2002
19820 - * Hewlett-Packard Company
19822 - * Permission to use, copy, modify, distribute and sell this software
19823 - * and its documentation for any purpose is hereby granted without fee,
19824 - * provided that the above copyright notice appear in all copies and
19825 - * that both that copyright notice and this permission notice appear
19826 - * in supporting documentation. Hewlett-Packard Company makes no
19827 - * representations about the suitability of this software for any
19828 - * purpose. It is provided "as is" without express or implied warranty.
19832 - * This implements standard-conforming allocators that interact with
19833 - * the garbage collector. Gc_alloctor<T> allocates garbage-collectable
19834 - * objects of type T. Traceable_allocator<T> allocates objects that
19835 - * are not temselves garbage collected, but are scanned by the
19836 - * collector for pointers to collectable objects. Traceable_alloc
19837 - * should be used for explicitly managed STL containers that may
19838 - * point to collectable objects.
19840 - * This code was derived from an earlier version of the GNU C++ standard
19841 - * library, which itself was derived from the SGI STL implementation.
19844 -#include "gc.h" // For size_t
19846 -/* First some helpers to allow us to dispatch on whether or not a type
19847 - * is known to be pointerfree.
19848 - * These are private, except that the client may invoke the
19849 - * GC_DECLARE_PTRFREE macro.
19852 -struct GC_true_type {};
19853 -struct GC_false_type {};
19855 -template <class GC_tp>
19856 -struct GC_type_traits {
19857 - GC_false_type GC_is_ptr_free;
19860 -# define GC_DECLARE_PTRFREE(T) \
19861 -template<> struct GC_type_traits<T> { GC_true_type GC_is_ptr_free; }
19863 -GC_DECLARE_PTRFREE(signed char);
19864 -GC_DECLARE_PTRFREE(unsigned char);
19865 -GC_DECLARE_PTRFREE(signed short);
19866 -GC_DECLARE_PTRFREE(unsigned short);
19867 -GC_DECLARE_PTRFREE(signed int);
19868 -GC_DECLARE_PTRFREE(unsigned int);
19869 -GC_DECLARE_PTRFREE(signed long);
19870 -GC_DECLARE_PTRFREE(unsigned long);
19871 -GC_DECLARE_PTRFREE(float);
19872 -GC_DECLARE_PTRFREE(double);
19873 -/* The client may want to add others. */
19875 -// In the following GC_Tp is GC_true_type iff we are allocating a
19876 -// pointerfree object.
19877 -template <class GC_Tp>
19878 -inline void * GC_selective_alloc(size_t n, GC_Tp) {
19879 - return GC_MALLOC(n);
19883 -inline void * GC_selective_alloc<GC_true_type>(size_t n, GC_true_type) {
19884 - return GC_MALLOC_ATOMIC(n);
19887 -/* Now the public gc_allocator<T> class:
19889 -template <class GC_Tp>
19890 -class gc_allocator {
19892 - typedef size_t size_type;
19893 - typedef ptrdiff_t difference_type;
19894 - typedef GC_Tp* pointer;
19895 - typedef const GC_Tp* const_pointer;
19896 - typedef GC_Tp& reference;
19897 - typedef const GC_Tp& const_reference;
19898 - typedef GC_Tp value_type;
19900 - template <class GC_Tp1> struct rebind {
19901 - typedef gc_allocator<GC_Tp1> other;
19904 - gc_allocator() {}
19906 - // I'm not sure why this is needed here in addition to the following.
19907 - // The standard specifies it for the standard allocator, but VC++ rejects
19909 - gc_allocator(const gc_allocator&) throw() {}
19911 - template <class GC_Tp1> gc_allocator(const gc_allocator<GC_Tp1>&) throw() {}
19912 - ~gc_allocator() throw() {}
19914 - pointer address(reference GC_x) const { return &GC_x; }
19915 - const_pointer address(const_reference GC_x) const { return &GC_x; }
19917 - // GC_n is permitted to be 0. The C++ standard says nothing about what
19918 - // the return value is when GC_n == 0.
19919 - GC_Tp* allocate(size_type GC_n, const void* = 0) {
19920 - GC_type_traits<GC_Tp> traits;
19921 - return static_cast<GC_Tp *>
19922 - (GC_selective_alloc(GC_n * sizeof(GC_Tp),
19923 - traits.GC_is_ptr_free));
19926 - // __p is not permitted to be a null pointer.
19927 - void deallocate(pointer __p, size_type GC_n)
19928 - { GC_FREE(__p); }
19930 - size_type max_size() const throw()
19931 - { return size_t(-1) / sizeof(GC_Tp); }
19933 - void construct(pointer __p, const GC_Tp& __val) { new(__p) GC_Tp(__val); }
19934 - void destroy(pointer __p) { __p->~GC_Tp(); }
19938 -class gc_allocator<void> {
19939 - typedef size_t size_type;
19940 - typedef ptrdiff_t difference_type;
19941 - typedef void* pointer;
19942 - typedef const void* const_pointer;
19943 - typedef void value_type;
19945 - template <class GC_Tp1> struct rebind {
19946 - typedef gc_allocator<GC_Tp1> other;
19951 -template <class GC_T1, class GC_T2>
19952 -inline bool operator==(const gc_allocator<GC_T1>&, const gc_allocator<GC_T2>&)
19957 -template <class GC_T1, class GC_T2>
19958 -inline bool operator!=(const gc_allocator<GC_T1>&, const gc_allocator<GC_T2>&)
19964 - * And the public traceable_allocator class.
19967 -// Note that we currently don't specialize the pointer-free case, since a
19968 -// pointer-free traceable container doesn't make that much sense,
19969 -// though it could become an issue due to abstraction boundaries.
19970 -template <class GC_Tp>
19971 -class traceable_allocator {
19973 - typedef size_t size_type;
19974 - typedef ptrdiff_t difference_type;
19975 - typedef GC_Tp* pointer;
19976 - typedef const GC_Tp* const_pointer;
19977 - typedef GC_Tp& reference;
19978 - typedef const GC_Tp& const_reference;
19979 - typedef GC_Tp value_type;
19981 - template <class GC_Tp1> struct rebind {
19982 - typedef traceable_allocator<GC_Tp1> other;
19985 - traceable_allocator() throw() {}
19987 - traceable_allocator(const traceable_allocator&) throw() {}
19989 - template <class GC_Tp1> traceable_allocator
19990 - (const traceable_allocator<GC_Tp1>&) throw() {}
19991 - ~traceable_allocator() throw() {}
19993 - pointer address(reference GC_x) const { return &GC_x; }
19994 - const_pointer address(const_reference GC_x) const { return &GC_x; }
19996 - // GC_n is permitted to be 0. The C++ standard says nothing about what
19997 - // the return value is when GC_n == 0.
19998 - GC_Tp* allocate(size_type GC_n, const void* = 0) {
19999 - return static_cast<GC_Tp*>(GC_MALLOC_UNCOLLECTABLE(GC_n * sizeof(GC_Tp)));
20002 - // __p is not permitted to be a null pointer.
20003 - void deallocate(pointer __p, size_type GC_n)
20004 - { GC_FREE(__p); }
20006 - size_type max_size() const throw()
20007 - { return size_t(-1) / sizeof(GC_Tp); }
20009 - void construct(pointer __p, const GC_Tp& __val) { new(__p) GC_Tp(__val); }
20010 - void destroy(pointer __p) { __p->~GC_Tp(); }
20014 -class traceable_allocator<void> {
20015 - typedef size_t size_type;
20016 - typedef ptrdiff_t difference_type;
20017 - typedef void* pointer;
20018 - typedef const void* const_pointer;
20019 - typedef void value_type;
20021 - template <class GC_Tp1> struct rebind {
20022 - typedef traceable_allocator<GC_Tp1> other;
20027 -template <class GC_T1, class GC_T2>
20028 -inline bool operator==(const traceable_allocator<GC_T1>&, const traceable_allocator<GC_T2>&)
20033 -template <class GC_T1, class GC_T2>
20034 -inline bool operator!=(const traceable_allocator<GC_T1>&, const traceable_allocator<GC_T2>&)
20039 diff -Nur ../boehm-gc/include/gc_config_macros.h boehm-gc/include/gc_config_macros.h
20040 --- ../boehm-gc/include/gc_config_macros.h Mon May 26 13:28:19 2003
20041 +++ boehm-gc/include/gc_config_macros.h Wed Dec 31 16:00:00 1969
20044 - * This should never be included directly. It is included only from gc.h.
20045 - * We separate it only to make gc.h more suitable as documentation.
20047 - * Some tests for old macros. These violate our namespace rules and will
20048 - * disappear shortly. Use the GC_ names.
20050 -#if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS)
20051 -# define GC_SOLARIS_THREADS
20053 -#if defined(_SOLARIS_PTHREADS)
20054 -# define GC_SOLARIS_PTHREADS
20056 -#if defined(IRIX_THREADS)
20057 -# define GC_IRIX_THREADS
20059 -#if defined(DGUX_THREADS)
20060 -# if !defined(GC_DGUX386_THREADS)
20061 -# define GC_DGUX386_THREADS
20064 -#if defined(HPUX_THREADS)
20065 -# define GC_HPUX_THREADS
20067 -#if defined(OSF1_THREADS)
20068 -# define GC_OSF1_THREADS
20070 -#if defined(LINUX_THREADS)
20071 -# define GC_LINUX_THREADS
20073 -#if defined(WIN32_THREADS)
20074 -# define GC_WIN32_THREADS
20076 -#if defined(USE_LD_WRAP)
20077 -# define GC_USE_LD_WRAP
20080 -#if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \
20081 - || defined(GC_SOLARIS_PTHREADS) \
20082 - || defined(GC_HPUX_THREADS) \
20083 - || defined(GC_LINUX_THREADS))
20084 -# define _REENTRANT
20085 - /* Better late than never. This fails if system headers that */
20086 - /* depend on this were previously included. */
20089 -#if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE)
20090 -# define _POSIX4A_DRAFT10_SOURCE 1
20093 -# if defined(GC_SOLARIS_PTHREADS) || defined(GC_FREEBSD_THREADS) || \
20094 - defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \
20095 - defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \
20096 - defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \
20097 - (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__))
20098 -# define GC_PTHREADS
20101 -#if defined(GC_THREADS) && !defined(GC_PTHREADS)
20102 -# if defined(__linux__)
20103 -# define GC_LINUX_THREADS
20104 -# define GC_PTHREADS
20106 -# if !defined(LINUX) && (defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
20107 - || defined(hppa) || defined(__HPPA))
20108 -# define GC_HPUX_THREADS
20109 -# define GC_PTHREADS
20111 -# if !defined(__linux__) && (defined(__alpha) || defined(__alpha__))
20112 -# define GC_OSF1_THREADS
20113 -# define GC_PTHREADS
20115 -# if defined(__mips) && !defined(__linux__)
20116 -# define GC_IRIX_THREADS
20117 -# define GC_PTHREADS
20119 -# if defined(__sparc) && !defined(__linux__)
20120 -# define GC_SOLARIS_PTHREADS
20121 -# define GC_PTHREADS
20123 -# if defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)
20124 -# define GC_DARWIN_THREADS
20125 -# define GC_PTHREADS
20127 -# if !defined(GC_PTHREADS) && defined(__FreeBSD__)
20128 -# define GC_FREEBSD_THREADS
20129 -# define GC_PTHREADS
20131 -# if defined(DGUX) && (defined(i386) || defined(__i386__))
20132 -# define GC_DGUX386_THREADS
20133 -# define GC_PTHREADS
20135 -#endif /* GC_THREADS */
20137 -#if defined(GC_THREADS) && !defined(GC_PTHREADS) && defined(MSWIN32)
20138 -# define GC_WIN32_THREADS
20141 -#if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
20142 -# define GC_SOLARIS_THREADS
20146 -# include <stddef.h>
20147 -# ifdef _WIN32_WCE
20148 -/* Yet more kluges for WinCE */
20149 -# include <stdlib.h> /* size_t is defined here */
20150 - typedef long ptrdiff_t; /* ptrdiff_t is not defined */
20153 -#if defined(_DLL) && !defined(GC_NOT_DLL) && !defined(GC_DLL)
20157 -#if defined(__MINGW32__) && defined(GC_DLL)
20159 -# define GC_API __declspec(dllexport)
20161 -# define GC_API __declspec(dllimport)
20165 -#if (defined(__DMC__) || defined(_MSC_VER)) && defined(GC_DLL)
20167 -# define GC_API extern __declspec(dllexport)
20169 -# define GC_API __declspec(dllimport)
20173 -#if defined(__WATCOMC__) && defined(GC_DLL)
20175 -# define GC_API extern __declspec(dllexport)
20177 -# define GC_API extern __declspec(dllimport)
20182 -#define GC_API extern
20185 diff -Nur ../boehm-gc/include/gc_cpp.h boehm-gc/include/gc_cpp.h
20186 --- ../boehm-gc/include/gc_cpp.h Mon May 26 13:28:19 2003
20187 +++ boehm-gc/include/gc_cpp.h Fri Aug 17 18:04:43 2001
20188 @@ -134,9 +134,7 @@
20191 #ifndef THINK_CPLUS
20194 -# define GC_cdecl _cdecl
20198 #if ! defined( GC_NO_OPERATOR_NEW_ARRAY ) \
20199 @@ -161,22 +159,12 @@
20201 inline void* operator new( size_t size );
20202 inline void* operator new( size_t size, GCPlacement gcp );
20203 - inline void* operator new( size_t size, void *p );
20204 - /* Must be redefined here, since the other overloadings */
20205 - /* hide the global definition. */
20206 inline void operator delete( void* obj );
20207 -# ifndef __BORLANDC__ /* Confuses the Borland compiler. */
20208 - inline void operator delete( void*, void* );
20211 #ifdef GC_OPERATOR_NEW_ARRAY
20212 inline void* operator new[]( size_t size );
20213 inline void* operator new[]( size_t size, GCPlacement gcp );
20214 - inline void* operator new[]( size_t size, void *p );
20215 inline void operator delete[]( void* obj );
20216 -# ifndef __BORLANDC__
20217 - inline void gc::operator delete[]( void*, void* );
20219 #endif /* GC_OPERATOR_NEW_ARRAY */
20222 @@ -188,7 +176,7 @@
20223 inline gc_cleanup();
20224 inline virtual ~gc_cleanup();
20226 - inline static void GC_cdecl cleanup( void* obj, void* clientData );};
20227 + inline static void _cdecl cleanup( void* obj, void* clientData );};
20229 Instances of classes derived from "gc_cleanup" will be allocated
20230 in the collected heap by default. When the collector discovers an
20231 @@ -223,6 +211,7 @@
20232 classes derived from "gc_cleanup" or containing members derived
20233 from "gc_cleanup". */
20235 +#ifdef GC_OPERATOR_NEW_ARRAY
20238 /** This ensures that the system default operator new[] doesn't get
20239 @@ -231,23 +220,41 @@
20240 * There seems to be really redirect new in this environment without
20241 * including this everywhere.
20243 - void *operator new[]( size_t size );
20245 - void operator delete[](void* obj);
20247 - void* operator new( size_t size);
20248 + inline void *operator new[]( size_t size )
20250 + return GC_MALLOC_UNCOLLECTABLE( size );
20253 + inline void operator delete[](void* obj)
20258 + inline void* operator new( size_t size)
20260 + return GC_MALLOC_UNCOLLECTABLE( size);
20263 + inline void operator delete(void* obj)
20268 - void operator delete(void* obj);
20270 - // This new operator is used by VC++ in case of Debug builds !
20271 - void* operator new( size_t size,
20272 +// This new operator is used by VC++ in case of Debug builds !
20273 + inline void* operator new( size_t size,
20275 const char * szFileName,
20277 -#endif /* _MSC_VER */
20281 + return GC_malloc_uncollectable( size );
20283 + return GC_debug_malloc_uncollectable(size, szFileName, nLine);
20288 -#ifdef GC_OPERATOR_NEW_ARRAY
20289 +#endif /* _MSC_VER */
20291 inline void* operator new[](
20293 @@ -276,15 +283,9 @@
20295 return GC_MALLOC_UNCOLLECTABLE( size );}
20297 -inline void* gc::operator new( size_t size, void *p ) {
20300 inline void gc::operator delete( void* obj ) {
20303 -#ifndef __BORLANDC__
20304 - inline void gc::operator delete( void*, void* ) {}
20307 #ifdef GC_OPERATOR_NEW_ARRAY
20309 @@ -294,21 +295,14 @@
20310 inline void* gc::operator new[]( size_t size, GCPlacement gcp ) {
20311 return gc::operator new( size, gcp );}
20313 -inline void* gc::operator new[]( size_t size, void *p ) {
20316 inline void gc::operator delete[]( void* obj ) {
20317 gc::operator delete( obj );}
20319 -#ifndef __BORLANDC__
20320 - inline void gc::operator delete[]( void*, void* ) {}
20323 #endif /* GC_OPERATOR_NEW_ARRAY */
20326 inline gc_cleanup::~gc_cleanup() {
20327 - GC_register_finalizer_ignore_self( GC_base(this), 0, 0, 0, 0 );}
20328 + GC_REGISTER_FINALIZER_IGNORE_SELF( GC_base(this), 0, 0, 0, 0 );}
20330 inline void gc_cleanup::cleanup( void* obj, void* displ ) {
20331 ((gc_cleanup*) ((char*) obj + (ptrdiff_t) displ))->~gc_cleanup();}
20332 diff -Nur ../boehm-gc/include/gc_local_alloc.h boehm-gc/include/gc_local_alloc.h
20333 --- ../boehm-gc/include/gc_local_alloc.h Mon May 26 13:28:19 2003
20334 +++ boehm-gc/include/gc_local_alloc.h Fri Aug 17 11:30:50 2001
20336 * -DTHREAD_LOCAL_ALLOC, which is currently supported only on Linux.
20338 * The debugging allocators use standard, not thread-local allocation.
20340 - * These routines normally require an explicit call to GC_init(), though
20341 - * that may be done from a constructor function.
20344 #ifndef GC_LOCAL_ALLOC_H
20345 diff -Nur ../boehm-gc/include/gc_mark.h boehm-gc/include/gc_mark.h
20346 --- ../boehm-gc/include/gc_mark.h Mon May 26 13:28:19 2003
20347 +++ boehm-gc/include/gc_mark.h Fri Aug 17 11:30:50 2001
20348 @@ -129,9 +129,7 @@
20349 /* be reserved for exceptional cases. That will ensure that */
20350 /* performance of this call is not extremely performance critical. */
20351 /* (Otherwise we would need to inline GC_mark_and_push completely, */
20352 -/* which would tie the client code to a fixed collector version.) */
20353 -/* Note that mark procedures should explicitly call FIXUP_POINTER() */
20354 -/* if required. */
20355 +/* which would tie the client code to a fixed colllector version.) */
20356 struct GC_ms_entry *GC_mark_and_push
20357 GC_PROTO((GC_PTR obj,
20358 struct GC_ms_entry * mark_stack_ptr,
20359 diff -Nur ../boehm-gc/include/gc_pthread_redirects.h boehm-gc/include/gc_pthread_redirects.h
20360 --- ../boehm-gc/include/gc_pthread_redirects.h Mon May 26 13:28:19 2003
20361 +++ boehm-gc/include/gc_pthread_redirects.h Tue Oct 16 21:55:28 2001
20362 @@ -52,21 +52,15 @@
20363 int GC_pthread_create(pthread_t *new_thread,
20364 const pthread_attr_t *attr,
20365 void *(*start_routine)(void *), void *arg);
20366 -#ifndef GC_DARWIN_THREADS
20367 int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
20369 int GC_pthread_join(pthread_t thread, void **retval);
20370 int GC_pthread_detach(pthread_t thread);
20372 # define pthread_create GC_pthread_create
20373 -#ifndef GC_DARWIN_THREADS
20374 # define pthread_sigmask GC_pthread_sigmask
20376 # define pthread_join GC_pthread_join
20377 # define pthread_detach GC_pthread_detach
20378 -#ifndef GC_DARWIN_THREADS
20379 # define dlopen GC_dlopen
20382 #endif /* GC_xxxxx_THREADS */
20384 diff -Nur ../boehm-gc/include/gc_typed.h boehm-gc/include/gc_typed.h
20385 --- ../boehm-gc/include/gc_typed.h Mon May 26 13:28:19 2003
20386 +++ boehm-gc/include/gc_typed.h Fri Aug 17 11:30:50 2001
20387 @@ -29,21 +29,14 @@
20391 -#ifdef __cplusplus
20394 typedef GC_word * GC_bitmap;
20395 /* The least significant bit of the first word is one if */
20396 /* the first word in the object may be a pointer. */
20398 -# define GC_WORDSZ (8*sizeof(GC_word))
20399 # define GC_get_bit(bm, index) \
20400 - (((bm)[index/GC_WORDSZ] >> (index%GC_WORDSZ)) & 1)
20401 + (((bm)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
20402 # define GC_set_bit(bm, index) \
20403 - (bm)[index/GC_WORDSZ] |= ((GC_word)1 << (index%GC_WORDSZ))
20404 -# define GC_WORD_OFFSET(t, f) (offsetof(t,f)/sizeof(GC_word))
20405 -# define GC_WORD_LEN(t) (sizeof(t)/ sizeof(GC_word))
20406 -# define GC_BITMAP_SIZE(t) ((GC_WORD_LEN(t) + GC_WORDSZ-1)/GC_WORDSZ)
20407 + (bm)[divWORDSZ(index)] |= (word)1 << modWORDSZ(index)
20409 typedef GC_word GC_descr;
20412 /* is intended to be called once per type, not once */
20413 /* per allocation. */
20415 -/* It is possible to generate a descriptor for a C type T with */
20416 -/* word aligned pointer fields f1, f2, ... as follows: */
20418 -/* GC_descr T_descr;
20419 -/* GC_word T_bitmap[GC_BITMAP_SIZE(T)] = {0}; */
20420 -/* GC_set_bit(T_bitmap, GC_WORD_OFFSET(T,f1)); */
20421 -/* GC_set_bit(T_bitmap, GC_WORD_OFFSET(T,f2)); */
20423 -/* T_descr = GC_make_descriptor(T_bitmap, GC_WORD_LEN(T)); */
20425 GC_API GC_PTR GC_malloc_explicitly_typed
20426 GC_PROTO((size_t size_in_bytes, GC_descr d));
20427 /* Allocate an object whose layout is described by d. */
20428 @@ -96,18 +79,15 @@
20429 /* Returned object is cleared. */
20432 -# define GC_MALLOC_EXPLICITLY_TYPED(bytes, d) GC_MALLOC(bytes)
20433 -# define GC_CALLOC_EXPLICITLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
20434 +# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) GC_MALLOC(bytes)
20435 +# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
20437 -# define GC_MALLOC_EXPLICITLY_TYPED(bytes, d) \
20438 +# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) \
20439 GC_malloc_explicitly_typed(bytes, d)
20440 -# define GC_CALLOC_EXPLICITLY_TYPED(n, bytes, d) \
20441 +# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) \
20442 GC_calloc_explicitly_typed(n, bytes, d)
20443 #endif /* !GC_DEBUG */
20445 -#ifdef __cplusplus
20446 - } /* matches extern "C" */
20449 #endif /* _GC_TYPED_H */
20451 diff -Nur ../boehm-gc/include/new_gc_alloc.h boehm-gc/include/new_gc_alloc.h
20452 --- ../boehm-gc/include/new_gc_alloc.h Mon May 26 13:28:19 2003
20453 +++ boehm-gc/include/new_gc_alloc.h Tue Oct 16 02:01:38 2001
20458 -/* A hack to deal with gcc 3.1. If you are using gcc3.1 and later, */
20459 -/* you should probably really use gc_allocator.h instead. */
20460 -#if defined (__GNUC__) && \
20461 - (__GNUC > 3 || (__GNUC__ == 3 && (__GNUC_MINOR__ >= 1)))
20462 -# define simple_alloc __simple_alloc
20469 diff -Nur ../boehm-gc/include/private/CVS/Entries boehm-gc/include/private/CVS/Entries
20470 --- ../boehm-gc/include/private/CVS/Entries Sat May 31 21:17:21 2003
20471 +++ boehm-gc/include/private/CVS/Entries Wed Dec 31 16:00:00 1969
20473 -/dbg_mlc.h/1.3/Thu Mar 14 07:28:33 2002//
20474 -/gc_hdrs.h/1.2/Fri Sep 14 00:43:56 2001//
20475 -/gc_locks.h/1.5/Thu Oct 24 23:42:28 2002//
20476 -/gc_pmark.h/1.3/Thu Mar 14 07:28:33 2002//
20477 -/gc_priv.h/1.7/Fri Aug 2 10:04:39 2002//
20478 -/gcconfig.h/1.10/Thu Oct 24 23:42:28 2002//
20479 -/solaris_threads.h/1.3/Mon Nov 12 19:17:42 2001//
20480 -/specific.h/1.3/Thu Apr 4 07:13:22 2002//
20481 -/cord_pos.h/1.2/Mon May 26 20:28:24 2003//
20483 diff -Nur ../boehm-gc/include/private/CVS/Repository boehm-gc/include/private/CVS/Repository
20484 --- ../boehm-gc/include/private/CVS/Repository Sun May 25 12:49:09 2003
20485 +++ boehm-gc/include/private/CVS/Repository Wed Dec 31 16:00:00 1969
20487 -/cvs/root/gcc3/gcc3/boehm-gc/include/private
20488 diff -Nur ../boehm-gc/include/private/CVS/Root boehm-gc/include/private/CVS/Root
20489 --- ../boehm-gc/include/private/CVS/Root Sun May 25 12:49:09 2003
20490 +++ boehm-gc/include/private/CVS/Root Wed Dec 31 16:00:00 1969
20492 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
20493 diff -Nur ../boehm-gc/include/private/darwin_semaphore.h boehm-gc/include/private/darwin_semaphore.h
20494 --- ../boehm-gc/include/private/darwin_semaphore.h Mon May 26 13:28:24 2003
20495 +++ boehm-gc/include/private/darwin_semaphore.h Wed Dec 31 16:00:00 1969
20497 -#ifndef GC_DARWIN_SEMAPHORE_H
20498 -#define GC_DARWIN_SEMAPHORE_H
20500 -#if !defined(GC_DARWIN_THREADS)
20501 -#error darwin_semaphore.h included with GC_DARWIN_THREADS not defined
20505 - This is a very simple semaphore implementation for darwin. It
20506 - is implemented in terms of pthreads calls so it isn't async signal
20507 - safe. This isn't a problem because signals aren't used to
20508 - suspend threads on darwin.
20512 - pthread_mutex_t mutex;
20513 - pthread_cond_t cond;
20517 -static int sem_init(sem_t *sem, int pshared, int value) {
20520 - GC_abort("sem_init with pshared set");
20521 - sem->value = value;
20523 - ret = pthread_mutex_init(&sem->mutex,NULL);
20524 - if(ret < 0) return -1;
20525 - ret = pthread_cond_init(&sem->cond,NULL);
20526 - if(ret < 0) return -1;
20530 -static int sem_post(sem_t *sem) {
20531 - if(pthread_mutex_lock(&sem->mutex) < 0)
20534 - if(pthread_cond_signal(&sem->cond) < 0) {
20535 - pthread_mutex_unlock(&sem->mutex);
20538 - if(pthread_mutex_unlock(&sem->mutex) < 0)
20543 -static int sem_wait(sem_t *sem) {
20544 - if(pthread_mutex_lock(&sem->mutex) < 0)
20546 - while(sem->value == 0) {
20547 - pthread_cond_wait(&sem->cond,&sem->mutex);
20550 - if(pthread_mutex_unlock(&sem->mutex) < 0)
20555 -static int sem_destroy(sem_t *sem) {
20557 - ret = pthread_cond_destroy(&sem->cond);
20558 - if(ret < 0) return -1;
20559 - ret = pthread_mutex_destroy(&sem->mutex);
20560 - if(ret < 0) return -1;
20565 diff -Nur ../boehm-gc/include/private/darwin_stop_world.h boehm-gc/include/private/darwin_stop_world.h
20566 --- ../boehm-gc/include/private/darwin_stop_world.h Mon May 26 13:28:24 2003
20567 +++ boehm-gc/include/private/darwin_stop_world.h Wed Dec 31 16:00:00 1969
20569 -#ifndef GC_DARWIN_STOP_WORLD_H
20570 -#define GC_DARWIN_STOP_WORLD_H
20572 -#if !defined(GC_DARWIN_THREADS)
20573 -#error darwin_stop_world.h included without GC_DARWIN_THREADS defined
20576 -#include <mach/mach.h>
20577 -#include <mach/thread_act.h>
20579 -struct thread_stop_info {
20580 - mach_port_t mach_thread;
20584 diff -Nur ../boehm-gc/include/private/dbg_mlc.h boehm-gc/include/private/dbg_mlc.h
20585 --- ../boehm-gc/include/private/dbg_mlc.h Mon May 26 13:28:24 2003
20586 +++ boehm-gc/include/private/dbg_mlc.h Mon Feb 11 20:37:57 2002
20587 @@ -115,24 +115,16 @@
20589 #ifdef SHORT_DBG_HDRS
20590 # define DEBUG_BYTES (sizeof (oh))
20591 -# define UNCOLLECTABLE_DEBUG_BYTES DEBUG_BYTES
20593 /* Add space for END_FLAG, but use any extra space that was already */
20594 /* added to catch off-the-end pointers. */
20595 - /* For uncollectable objects, the extra byte is not added. */
20596 -# define UNCOLLECTABLE_DEBUG_BYTES (sizeof (oh) + sizeof (word))
20597 -# define DEBUG_BYTES (UNCOLLECTABLE_DEBUG_BYTES - EXTRA_BYTES)
20598 +# define DEBUG_BYTES (sizeof (oh) + sizeof (word) - EXTRA_BYTES)
20600 #define USR_PTR_FROM_BASE(p) ((ptr_t)(p) + sizeof(oh))
20602 /* Round bytes to words without adding extra byte at end. */
20603 #define SIMPLE_ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + WORDS_TO_BYTES(1) - 1)
20605 -/* ADD_CALL_CHAIN stores a (partial) call chain into an object */
20606 -/* header. It may be called with or without the allocation */
20608 -/* PRINT_CALL_CHAIN prints the call chain stored in an object */
20609 -/* to stderr. It requires that we do not hold the lock. */
20610 #ifdef SAVE_CALL_CHAIN
20611 # define ADD_CALL_CHAIN(base, ra) GC_save_callers(((oh *)(base)) -> oh_ci)
20612 # define PRINT_CALL_CHAIN(base) GC_print_callers(((oh *)(base)) -> oh_ci)
20613 diff -Nur ../boehm-gc/include/private/gc_hdrs.h boehm-gc/include/private/gc_hdrs.h
20614 --- ../boehm-gc/include/private/gc_hdrs.h Mon May 26 13:28:24 2003
20615 +++ boehm-gc/include/private/gc_hdrs.h Fri Aug 17 18:04:43 2001
20617 #define ADVANCE(p, hhdr, source) \
20619 hdr * new_hdr = GC_invalid_header; \
20620 - p = GC_find_start(p, hhdr, &new_hdr); \
20621 + p = GC_FIND_START(p, hhdr, &new_hdr, (word)source); \
20625 diff -Nur ../boehm-gc/include/private/gc_locks.h boehm-gc/include/private/gc_locks.h
20626 --- ../boehm-gc/include/private/gc_locks.h Mon May 26 13:28:24 2003
20627 +++ boehm-gc/include/private/gc_locks.h Fri Sep 27 13:40:06 2002
20628 @@ -145,24 +145,23 @@
20629 # if defined(POWERPC)
20630 inline static int GC_test_and_set(volatile unsigned int *addr) {
20632 - int temp = 1; /* locked value */
20633 + int temp = 1; // locked value
20635 __asm__ __volatile__(
20636 - "1:\tlwarx %0,0,%3\n" /* load and reserve */
20637 - "\tcmpwi %0, 0\n" /* if load is */
20638 - "\tbne 2f\n" /* non-zero, return already set */
20639 - "\tstwcx. %2,0,%1\n" /* else store conditional */
20640 - "\tbne- 1b\n" /* retry if lost reservation */
20641 - "\tsync\n" /* import barrier */
20642 - "2:\t\n" /* oldval is zero if we set */
20643 + "1:\tlwarx %0,0,%3\n" // load and reserve
20644 + "\tcmpwi %0, 0\n" // if load is
20645 + "\tbne 2f\n" // non-zero, return already set
20646 + "\tstwcx. %2,0,%1\n" // else store conditional
20647 + "\tbne- 1b\n" // retry if lost reservation
20648 + "2:\t\n" // oldval is zero if we set
20649 : "=&r"(oldval), "=p"(addr)
20650 : "r"(temp), "1"(addr)
20651 - : "cr0","memory");
20654 + return (int)oldval;
20656 # define GC_TEST_AND_SET_DEFINED
20657 inline static void GC_clear(volatile unsigned int *addr) {
20658 - __asm__ __volatile__("eieio" : : : "memory");
20659 + __asm__ __volatile__("eieio" ::: "memory");
20662 # define GC_CLEAR_DEFINED
20663 @@ -192,11 +191,8 @@
20666 # define GC_TEST_AND_SET_DEFINED
20667 - inline static void GC_clear(volatile unsigned int *addr) {
20668 - __asm__ __volatile__("mb" : : : "memory");
20671 -# define GC_CLEAR_DEFINED
20672 + /* Should probably also define GC_clear, since it needs */
20673 + /* a memory barrier ?? */
20674 # endif /* ALPHA */
20676 inline static int GC_test_and_set(volatile unsigned int *addr) {
20677 @@ -214,30 +210,22 @@
20678 # define GC_TEST_AND_SET_DEFINED
20679 # endif /* ARM32 */
20681 - inline static int GC_test_and_set(volatile unsigned int *addr) {
20683 - __asm__ __volatile__ (
20685 - "0: cs %0,%1,0(%2)\n"
20688 - : "d" (1), "a" (addr)
20689 - : "cc", "memory");
20692 + inline static int GC_test_and_set(volatile unsigned int *addr) {
20694 + __asm__ __volatile__ (
20696 + "0: cs %0,%1,0(%2)\n"
20699 + : "d" (1), "a" (addr)
20700 + : "cc", "memory");
20704 # endif /* __GNUC__ */
20705 # if (defined(ALPHA) && !defined(__GNUC__))
20707 - --> We currently assume that if gcc is not used, we are
20708 - --> running under Tru64.
20710 -# include <machine/builtins.h>
20711 -# include <c_asm.h>
20712 -# define GC_test_and_set(addr) __ATOMIC_EXCH_LONG(addr, 1)
20713 +# define GC_test_and_set(addr) __cxx_test_and_set_atomic(addr, 1)
20714 # define GC_TEST_AND_SET_DEFINED
20715 -# define GC_clear(addr) { asm("mb"); *(volatile unsigned *)addr = 0; }
20716 -# define GC_CLEAR_DEFINED
20718 # if defined(MSWIN32)
20719 # define GC_test_and_set(addr) InterlockedExchange((LPLONG)addr,1)
20720 @@ -250,11 +238,7 @@
20721 # define GC_TEST_AND_SET_DEFINED
20722 # elif __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \
20723 || !defined(_COMPILER_VERSION) || _COMPILER_VERSION < 700
20725 -# define GC_test_and_set(addr) _test_and_set(addr,1)
20727 -# define GC_test_and_set(addr) test_and_set(addr,1)
20729 +# define GC_test_and_set(addr) test_and_set(addr, 1)
20731 # define GC_test_and_set(addr) __test_and_set(addr,1)
20732 # define GC_clear(addr) __lock_release(addr);
20733 @@ -295,7 +279,7 @@
20736 # if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
20737 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
20738 + && !defined(GC_IRIX_THREADS)
20739 # define NO_THREAD (pthread_t)(-1)
20740 # include <pthread.h>
20741 # if defined(PARALLEL_MARK)
20742 @@ -326,12 +310,12 @@
20745 __asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
20746 - : "+m"(*(addr)), "=r"(result)
20747 - : "r" (new_val), "a"(old) : "memory");
20748 + : "=m"(*(addr)), "=r"(result)
20749 + : "r" (new_val), "0"(*(addr)), "a"(old) : "memory");
20750 return (GC_bool) result;
20752 # endif /* !GENERIC_COMPARE_AND_SWAP */
20753 - inline static void GC_memory_barrier()
20754 + inline static void GC_memory_write_barrier()
20756 /* We believe the processor ensures at least processor */
20757 /* consistent ordering. Thus a compiler barrier */
20758 @@ -339,37 +323,6 @@
20759 __asm__ __volatile__("" : : : "memory");
20763 -# if defined(POWERPC)
20764 -# if !defined(GENERIC_COMPARE_AND_SWAP)
20765 - /* Returns TRUE if the comparison succeeded. */
20766 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20767 - GC_word old, GC_word new_val)
20769 - int result, dummy;
20770 - __asm__ __volatile__(
20771 - "1:\tlwarx %0,0,%5\n"
20774 - "\tstwcx. %3,0,%2\n"
20781 - : "=&r" (dummy), "=r" (result), "=p" (addr)
20782 - : "r" (new_val), "r" (old), "2"(addr)
20783 - : "cr0","memory");
20784 - return (GC_bool) result;
20786 -# endif /* !GENERIC_COMPARE_AND_SWAP */
20787 - inline static void GC_memory_barrier()
20789 - __asm__ __volatile__("sync" : : : "memory");
20791 -# endif /* POWERPC */
20794 # if !defined(GENERIC_COMPARE_AND_SWAP)
20795 inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20796 @@ -384,71 +337,31 @@
20797 # endif /* !GENERIC_COMPARE_AND_SWAP */
20799 /* Shouldn't be needed; we use volatile stores instead. */
20800 - inline static void GC_memory_barrier()
20801 + inline static void GC_memory_write_barrier()
20803 __asm__ __volatile__("mf" : : : "memory");
20807 -# if defined(ALPHA)
20808 -# if !defined(GENERIC_COMPARE_AND_SWAP)
20809 -# if defined(__GNUC__)
20810 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20811 - GC_word old, GC_word new_val)
20813 - unsigned long was_equal;
20814 - unsigned long temp;
20816 - __asm__ __volatile__(
20817 - "1: ldq_l %0,%1\n"
20818 - " cmpeq %0,%4,%2\n"
20825 - :"=&r" (temp), "=m" (*addr), "=&r" (was_equal)
20826 - : "r" (new_val), "Ir" (old)
20828 - return was_equal;
20830 -# else /* !__GNUC__ */
20831 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20832 - GC_word old, GC_word new_val)
20834 - return __CMP_STORE_QUAD(addr, old, new_val, addr);
20836 -# endif /* !__GNUC__ */
20837 -# endif /* !GENERIC_COMPARE_AND_SWAP */
20839 - inline static void GC_memory_barrier()
20841 - __asm__ __volatile__("mb" : : : "memory");
20844 -# define GC_memory_barrier() asm("mb")
20845 -# endif /* !__GNUC__ */
20846 -# endif /* ALPHA */
20848 # if !defined(GENERIC_COMPARE_AND_SWAP)
20849 - inline static GC_bool GC_compare_and_exchange(volatile C_word *addr,
20850 - GC_word old, GC_word new_val)
20853 - __asm__ __volatile__ (
20854 -# ifndef __s390x__
20855 - " cs %1,%2,0(%3)\n"
20857 - " csg %1,%2,0(%3)\n"
20861 - : "=&d" (retval), "+d" (old)
20862 - : "d" (new_val), "a" (addr)
20863 - : "cc", "memory");
20864 - return retval == 0;
20866 + inline static GC_bool GC_compare_and_exchange(volatile C_word *addr,
20867 + GC_word old, GC_word new_val)
20870 + __asm__ __volatile__ (
20871 +# ifndef __s390x__
20872 + " cs %1,%2,0(%3)\n"
20874 + " csg %1,%2,0(%3)\n"
20878 + : "=&d" (retval), "+d" (old)
20879 + : "d" (new_val), "a" (addr)
20880 + : "cc", "memory");
20881 + return retval == 0;
20885 # if !defined(GENERIC_COMPARE_AND_SWAP)
20886 @@ -480,7 +393,7 @@
20887 extern void GC_lock(void);
20888 /* Allocation lock holder. Only set if acquired by client through */
20889 /* GC_call_with_alloc_lock. */
20890 -# ifdef GC_ASSERTIONS
20891 +# ifdef GC_ASSERTIONS
20893 { if (GC_test_and_set(&GC_allocate_lock)) GC_lock(); \
20894 SET_LOCK_HOLDER(); }
20895 @@ -521,12 +434,8 @@
20896 { GC_ASSERT(I_HOLD_LOCK()); UNSET_LOCK_HOLDER(); \
20897 pthread_mutex_unlock(&GC_allocate_ml); }
20898 # else /* !GC_ASSERTIONS */
20899 -# if defined(NO_PTHREAD_TRYLOCK)
20900 -# define LOCK() GC_lock();
20901 -# else /* !defined(NO_PTHREAD_TRYLOCK) */
20904 { if (0 != pthread_mutex_trylock(&GC_allocate_ml)) GC_lock(); }
20906 # define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
20907 # endif /* !GC_ASSERTIONS */
20908 # endif /* USE_PTHREAD_LOCKS */
20909 @@ -569,18 +478,11 @@
20911 # define EXIT_GC() GC_collecting = 0;
20912 # endif /* GC_IRIX_THREADS */
20913 -# if defined(GC_WIN32_THREADS)
20914 -# if defined(GC_PTHREADS)
20915 -# include <pthread.h>
20916 - extern pthread_mutex_t GC_allocate_ml;
20917 -# define LOCK() pthread_mutex_lock(&GC_allocate_ml)
20918 -# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
20920 -# include <windows.h>
20921 - GC_API CRITICAL_SECTION GC_allocate_ml;
20922 -# define LOCK() EnterCriticalSection(&GC_allocate_ml);
20923 -# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
20925 +# ifdef GC_WIN32_THREADS
20926 +# include <windows.h>
20927 + GC_API CRITICAL_SECTION GC_allocate_ml;
20928 +# define LOCK() EnterCriticalSection(&GC_allocate_ml);
20929 +# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
20931 # ifndef SET_LOCK_HOLDER
20932 # define SET_LOCK_HOLDER()
20933 diff -Nur ../boehm-gc/include/private/gc_pmark.h boehm-gc/include/private/gc_pmark.h
20934 --- ../boehm-gc/include/private/gc_pmark.h Mon May 26 13:28:24 2003
20935 +++ boehm-gc/include/private/gc_pmark.h Mon Feb 11 20:37:57 2002
20936 @@ -137,7 +137,7 @@
20938 # ifdef PRINT_BLACK_LIST
20939 ptr_t GC_find_start(ptr_t current, hdr *hhdr, hdr **new_hdr_p,
20943 ptr_t GC_find_start(ptr_t current, hdr *hhdr, hdr **new_hdr_p);
20945 @@ -145,7 +145,7 @@
20946 ptr_t GC_find_start();
20949 -mse * GC_signal_mark_stack_overflow GC_PROTO((mse *msp));
20950 +mse *GC_signal_mark_stack_overflow(mse *msp);
20952 # ifdef GATHERSTATS
20953 # define ADD_TO_ATOMIC(sz) GC_atomic_in_use += (sz)
20954 @@ -174,6 +174,14 @@
20958 +#ifdef PRINT_BLACK_LIST
20959 +# define GC_FIND_START(current, hhdr, new_hdr_p, source) \
20960 + GC_find_start(current, hhdr, new_hdr_p, source)
20962 +# define GC_FIND_START(current, hhdr, new_hdr_p, source) \
20963 + GC_find_start(current, hhdr, new_hdr_p)
20966 /* Push the contents of current onto the mark stack if it is a valid */
20967 /* ptr to a currently unmarked object. Mark it. */
20968 /* If we assumed a standard-conforming compiler, we could probably */
20969 @@ -187,7 +195,8 @@
20970 GET_HDR(my_current, my_hhdr); \
20971 if (IS_FORWARDING_ADDR_OR_NIL(my_hhdr)) { \
20972 hdr * new_hdr = GC_invalid_header; \
20973 - my_current = GC_find_start(my_current, my_hhdr, &new_hdr); \
20974 + my_current = GC_FIND_START(my_current, my_hhdr, \
20975 + &new_hdr, (word)source); \
20976 my_hhdr = new_hdr; \
20978 PUSH_CONTENTS_HDR(my_current, mark_stack_top, mark_stack_limit, \
20979 @@ -281,39 +290,21 @@
20982 * Push a single value onto mark stack. Mark from the object pointed to by p.
20983 - * Invoke FIXUP_POINTER(p) before any further processing.
20984 * P is considered valid even if it is an interior pointer.
20985 * Previously marked objects are not pushed. Hence we make progress even
20986 * if the mark stack overflows.
20989 -# if NEED_FIXUP_POINTER
20990 - /* Try both the raw version and the fixed up one. */
20991 -# define GC_PUSH_ONE_STACK(p, source) \
20992 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20993 - && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20994 - PUSH_ONE_CHECKED_STACK(p, source); \
20996 - FIXUP_POINTER(p); \
20997 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20998 - && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20999 - PUSH_ONE_CHECKED_STACK(p, source); \
21001 -# else /* !NEED_FIXUP_POINTER */
21002 -# define GC_PUSH_ONE_STACK(p, source) \
21003 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
21004 +# define GC_PUSH_ONE_STACK(p, source) \
21005 + if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
21006 && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
21007 PUSH_ONE_CHECKED_STACK(p, source); \
21014 * As above, but interior pointer recognition as for
21015 * normal for heap pointers.
21017 # define GC_PUSH_ONE_HEAP(p,source) \
21018 - FIXUP_POINTER(p); \
21019 if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
21020 && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
21021 GC_mark_stack_top = GC_mark_and_push( \
21022 diff -Nur ../boehm-gc/include/private/gc_priv.h boehm-gc/include/private/gc_priv.h
21023 --- ../boehm-gc/include/private/gc_priv.h Mon May 26 13:28:24 2003
21024 +++ boehm-gc/include/private/gc_priv.h Tue Mar 4 09:56:49 2003
21030 -# include <sys/types.h>
21031 -# include <sys/time.h>
21032 -# include <sys/resource.h>
21036 # include <sys/types.h>
21037 # include <sys/time.h>
21038 @@ -212,10 +206,11 @@
21041 #if defined(GC_GCJ_SUPPORT) && ALIGNMENT < 8 && !defined(ALIGN_DOUBLE)
21042 - /* GCJ's Hashtable synchronization code requires 64-bit alignment. */
21043 + /* GCJ's Hashtable synchronization code requires 64-bit alignment. */
21044 # define ALIGN_DOUBLE
21048 /* ALIGN_DOUBLE requires MERGE_SIZES at present. */
21049 # if defined(ALIGN_DOUBLE) && !defined(MERGE_SIZES)
21050 # define MERGE_SIZES
21051 @@ -352,8 +347,7 @@
21052 # include <string.h>
21053 # define BCOPY_EXISTS
21055 -# if defined(DARWIN)
21056 -# include <string.h>
21057 +# if defined(MACOSX)
21058 # define BCOPY_EXISTS
21061 @@ -366,6 +360,68 @@
21062 # define BZERO(x,n) bzero((char *)(x),(int)(n))
21065 +/* HBLKSIZE aligned allocation. 0 is taken to mean failure */
21066 +/* space is assumed to be cleared. */
21067 +/* In the case os USE_MMAP, the argument must also be a */
21068 +/* physical page size. */
21069 +/* GET_MEM is currently not assumed to retrieve 0 filled space, */
21070 +/* though we should perhaps take advantage of the case in which */
21072 +struct hblk; /* See below. */
21074 + char * real_malloc();
21075 +# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
21076 + + GC_page_size-1)
21079 + void * os2_alloc(size_t bytes);
21080 +# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
21081 + + GC_page_size) \
21082 + + GC_page_size-1)
21084 +# if defined(NEXT) || defined(MACOSX) || defined(DOS4GW) || \
21085 + (defined(AMIGA) && !defined(GC_AMIGA_FASTALLOC)) || \
21086 + (defined(SUNOS5) && !defined(USE_MMAP))
21087 +# define GET_MEM(bytes) HBLKPTR((size_t) \
21088 + calloc(1, (size_t)bytes + GC_page_size) \
21089 + + GC_page_size-1)
21092 + extern ptr_t GC_win32_get_mem();
21093 +# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
21096 +# if defined(USE_TEMPORARY_MEMORY)
21097 + extern Ptr GC_MacTemporaryNewPtr(size_t size,
21098 + Boolean clearMemory);
21099 +# define GET_MEM(bytes) HBLKPTR( \
21100 + GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
21101 + + GC_page_size-1)
21103 +# define GET_MEM(bytes) HBLKPTR( \
21104 + NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
21108 + extern ptr_t GC_wince_get_mem();
21109 +# define GET_MEM(bytes) (struct hblk *)GC_wince_get_mem(bytes)
21111 +# if defined(AMIGA) && defined(GC_AMIGA_FASTALLOC)
21112 + extern void *GC_amiga_get_mem(size_t size);
21113 + define GET_MEM(bytes) HBLKPTR((size_t) \
21114 + GC_amiga_get_mem((size_t)bytes + GC_page_size) \
21115 + + GC_page_size-1)
21117 + extern ptr_t GC_unix_get_mem();
21118 +# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
21127 /* Delay any interrupts or signals that may abort this thread. Data */
21128 /* structures are in a consistent state outside this pair of calls. */
21129 /* ANSI C allows both to be empty (though the standard isn't very */
21130 @@ -430,7 +486,7 @@
21131 # ifdef SMALL_CONFIG
21132 # define ABORT(msg) abort();
21134 - GC_API void GC_abort GC_PROTO((GC_CONST char * msg));
21135 + GC_API void GC_abort();
21136 # define ABORT(msg) GC_abort(msg);
21139 @@ -590,10 +646,9 @@
21142 # ifdef LARGE_CONFIG
21143 -# define LOG_PHT_ENTRIES 20 /* Collisions likely at 1M blocks, */
21144 - /* which is >= 4GB. Each table takes */
21145 - /* 128KB, some of which may never be */
21147 +# define LOG_PHT_ENTRIES 19 /* Collisions likely at 512K blocks, */
21148 + /* which is >= 2GB. Each table takes */
21151 # ifdef SMALL_CONFIG
21152 # define LOG_PHT_ENTRIES 14 /* Collisions are likely if heap grows */
21153 @@ -601,7 +656,7 @@
21154 /* Each hash table occupies 2K bytes. */
21155 # else /* default "medium" configuration */
21156 # define LOG_PHT_ENTRIES 16 /* Collisions are likely if heap grows */
21157 - /* to more than 64K hblks >= 256MB. */
21158 + /* to more than 16K hblks >= 256MB. */
21159 /* Each hash table occupies 8K bytes. */
21162 @@ -842,10 +897,6 @@
21164 /* Number of explicitly deallocated words of memory */
21165 /* since last collection. */
21166 - word _finalizer_mem_freed;
21167 - /* Words of memory explicitly deallocated while */
21168 - /* finalizers were running. Used to approximate mem. */
21169 - /* explicitly deallocated by finalizers. */
21170 ptr_t _scratch_end_ptr;
21171 ptr_t _scratch_last_end_ptr;
21172 /* Used by headers.c, and can easily appear to point to */
21173 @@ -906,7 +957,7 @@
21174 /* OFFSET_TOO_BIG if the value j would be too */
21175 /* large to fit in the entry. (Note that the */
21176 /* size of these entries matters, both for */
21177 - /* space consumption and for cache utilization.) */
21178 + /* space consumption and for cache utilization. */
21179 # define OFFSET_TOO_BIG 0xfe
21180 # define OBJ_INVALID 0xff
21181 # define MAP_ENTRY(map, bytes) (map)[bytes]
21182 @@ -1016,7 +1067,6 @@
21183 # define GC_words_finalized GC_arrays._words_finalized
21184 # define GC_non_gc_bytes_at_gc GC_arrays._non_gc_bytes_at_gc
21185 # define GC_mem_freed GC_arrays._mem_freed
21186 -# define GC_finalizer_mem_freed GC_arrays._finalizer_mem_freed
21187 # define GC_scratch_end_ptr GC_arrays._scratch_end_ptr
21188 # define GC_scratch_last_end_ptr GC_arrays._scratch_last_end_ptr
21189 # define GC_mark_procs GC_arrays._mark_procs
21190 @@ -1151,19 +1201,17 @@
21191 /* header structure associated with */
21194 +extern GC_bool GC_is_initialized; /* GC_init() has been run. */
21196 extern GC_bool GC_objects_are_marked; /* There are marked objects in */
21199 #ifndef SMALL_CONFIG
21200 extern GC_bool GC_incremental;
21201 /* Using incremental/generational collection. */
21202 -# define TRUE_INCREMENTAL \
21203 - (GC_incremental && GC_time_limit != GC_TIME_UNLIMITED)
21204 - /* True incremental, not just generational, mode */
21206 # define GC_incremental FALSE
21207 /* Hopefully allow optimizer to remove some code. */
21208 -# define TRUE_INCREMENTAL FALSE
21211 extern GC_bool GC_dirty_maintained;
21212 @@ -1181,10 +1229,6 @@
21213 extern long GC_large_alloc_warn_suppressed;
21214 /* Number of warnings suppressed so far. */
21217 - extern GC_bool GC_world_stopped;
21222 # define abs(x) ((x) < 0? (-(x)) : (x))
21223 @@ -1408,7 +1452,6 @@
21224 /* Set all mark bits associated with */
21226 void GC_add_roots_inner GC_PROTO((char * b, char * e, GC_bool tmp));
21227 -void GC_remove_roots_inner GC_PROTO((char * b, char * e));
21228 GC_bool GC_is_static_root GC_PROTO((ptr_t p));
21229 /* Is the address p in one of the registered static */
21230 /* root sections? */
21231 @@ -1421,9 +1464,9 @@
21232 /* Add dynamic library data sections to the root set. */
21234 GC_bool GC_register_main_static_data GC_PROTO((void));
21235 - /* We need to register the main data segment. Returns */
21236 - /* TRUE unless this is done implicitly as part of */
21237 - /* dynamic library registration. */
21238 + /* We need to register the main data segment. Returns */
21239 + /* TRUE unless this is done implicitly as part of */
21240 + /* dynamic library registration. */
21242 /* Machine dependent startup routines */
21243 ptr_t GC_get_stack_base GC_PROTO((void)); /* Cold end of stack */
21244 @@ -1581,8 +1624,6 @@
21245 /* until the blocks are available or */
21246 /* until it fails by returning FALSE. */
21248 -extern GC_bool GC_is_initialized; /* GC_init() has been run. */
21250 #if defined(MSWIN32) || defined(MSWINCE)
21251 void GC_deinit GC_PROTO((void));
21252 /* Free any resources allocated by */
21253 @@ -1624,8 +1665,6 @@
21254 /* Make the indicated */
21255 /* free list nonempty, and return its */
21258 -void GC_free_inner(GC_PTR p);
21260 void GC_init_headers GC_PROTO((void));
21261 struct hblkhdr * GC_install_header GC_PROTO((struct hblk *h));
21262 @@ -1655,12 +1694,6 @@
21263 /* Call *GC_finalizer_notifier if there are */
21264 /* finalizers to be run, and we haven't called */
21265 /* this procedure yet this GC cycle. */
21267 -GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
21268 -GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
21269 - /* Auxiliary fns to make finalization work */
21270 - /* correctly with displaced pointers introduced */
21271 - /* by the debugging allocators. */
21273 void GC_add_to_heap GC_PROTO((struct hblk *p, word bytes));
21274 /* Add a HBLKSIZE aligned chunk to the heap. */
21275 @@ -1671,36 +1704,16 @@
21276 /* description of the object to stderr. */
21277 extern void (*GC_check_heap) GC_PROTO((void));
21278 /* Check that all objects in the heap with */
21279 - /* debugging info are intact. */
21280 - /* Add any that are not to GC_smashed list. */
21281 -extern void (*GC_print_all_smashed) GC_PROTO((void));
21282 - /* Print GC_smashed if it's not empty. */
21283 - /* Clear GC_smashed list. */
21284 -extern void GC_print_all_errors GC_PROTO((void));
21285 - /* Print smashed and leaked objects, if any. */
21286 - /* Clear the lists of such objects. */
21287 + /* debugging info are intact. Print */
21288 + /* descriptions of any that are not. */
21289 extern void (*GC_print_heap_obj) GC_PROTO((ptr_t p));
21290 /* If possible print s followed by a more */
21291 /* detailed description of the object */
21292 /* referred to by p. */
21293 -#if defined(LINUX) && defined(__ELF__) && !defined(SMALL_CONFIG)
21294 - void GC_print_address_map GC_PROTO((void));
21295 - /* Print an address map of the process. */
21298 -extern GC_bool GC_have_errors; /* We saw a smashed or leaked object. */
21299 - /* Call error printing routine */
21300 - /* occasionally. */
21301 extern GC_bool GC_print_stats; /* Produce at least some logging output */
21302 /* Set from environment variable. */
21304 -#ifndef NO_DEBUGGING
21305 - extern GC_bool GC_dump_regularly; /* Generate regular debugging dumps. */
21306 -# define COND_DUMP if (GC_dump_regularly) GC_dump();
21308 -# define COND_DUMP
21311 /* Macros used for collector internal allocation. */
21312 /* These assume the collector lock is held. */
21313 #ifdef DBG_HDRS_ALL
21314 @@ -1772,7 +1785,6 @@
21315 void GC_print_hblkfreelist GC_PROTO((void));
21316 void GC_print_heap_sects GC_PROTO((void));
21317 void GC_print_static_roots GC_PROTO((void));
21318 -void GC_print_finalization_stats GC_PROTO((void));
21319 void GC_dump GC_PROTO((void));
21321 #ifdef KEEP_BACK_PTRS
21322 @@ -1854,10 +1866,6 @@
21323 # define GC_ASSERT(expr)
21326 -/* Check a compile time assertion at compile time. The error */
21327 -/* message for failure is a bit baroque, but ... */
21328 -# define GC_STATIC_ASSERT(expr) sizeof(char[(expr)? 1 : -1])
21330 # if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
21331 /* We need additional synchronization facilities from the thread */
21332 /* support. We believe these are less performance critical */
21333 @@ -1903,7 +1911,7 @@
21334 /* in Linux glibc, but it's not exported.) Thus we continue to use */
21335 /* the same hard-coded signals we've always used. */
21336 # if !defined(SIG_SUSPEND)
21337 -# if defined(GC_LINUX_THREADS) || defined(GC_DGUX386_THREADS)
21338 +# if defined(GC_LINUX_THREADS)
21339 # if defined(SPARC) && !defined(SIGPWR)
21340 /* SPARC/Linux doesn't properly define SIGPWR in <signal.h>.
21341 * It is aliased to SIGLOST in asm/signal.h, though. */
21342 diff -Nur ../boehm-gc/include/private/gcconfig.h boehm-gc/include/private/gcconfig.h
21343 --- ../boehm-gc/include/private/gcconfig.h Mon May 26 13:28:24 2003
21344 +++ boehm-gc/include/private/gcconfig.h Wed Apr 9 17:08:01 2003
21345 @@ -13,25 +13,11 @@
21346 * provided the above notices are retained, and a notice that the code was
21347 * modified is included with the above copyright notice.
21351 - * This header is private to the gc. It is almost always included from
21352 - * gc_priv.h. However it is possible to include it by itself if just the
21353 - * configuration macros are needed. In that
21354 - * case, a few declarations relying on types declared in gc_priv.h will be
21360 # define GCCONFIG_H
21362 -# ifndef GC_PRIVATE_H
21363 - /* Fake ptr_t declaration, just to avoid compilation errors. */
21364 - /* This avoids many instances if "ifndef GC_PRIVATE_H" below. */
21365 - typedef struct GC_undefined_struct * ptr_t;
21368 /* Machine dependent parameters. Some tuning parameters can be found */
21369 /* near the top of gc_private.h. */
21374 /* Determine the machine type: */
21375 -# if defined(__XSCALE__)
21376 +# if defined(__arm__) || defined(__thumb__)
21378 # if !defined(LINUX)
21381 # if defined(nec_ews) || defined(_nec_ews)
21384 -# if !defined(LINUX) && !defined(EWS4800)
21385 -# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
21386 +# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD)
21387 +# if defined(ultrix) || defined(__ultrix)
21390 # if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) \
21391 @@ -121,16 +107,6 @@
21394 # endif /* !LINUX */
21395 -# if defined(__NetBSD__) && defined(__MIPSEL__)
21398 -# define mach_type_known
21400 -# if defined(DGUX) && (defined(i386) || defined(__i386__))
21402 -# ifndef _USING_DGUX
21403 -# define _USING_DGUX
21405 # define mach_type_known
21407 # if defined(sequent) && (defined(i386) || defined(__i386__))
21408 @@ -222,10 +198,6 @@
21410 # define mach_type_known
21412 -# if defined(LINUX) && defined(__arm__)
21414 -# define mach_type_known
21416 # if defined(LINUX) && (defined(powerpc) || defined(__powerpc__))
21418 # define mach_type_known
21419 @@ -265,19 +237,19 @@
21421 # define mach_type_known
21423 -# if defined(__MWERKS__) && defined(__powerc) && !defined(__MACH__)
21424 +# if defined(__MWERKS__) && defined(__powerc)
21427 # define mach_type_known
21429 # if defined(macosx) || \
21430 defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)
21434 # define mach_type_known
21436 # if defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
21440 --> Not really supported, but at least we recognize it.
21442 @@ -319,7 +291,7 @@
21444 # define mach_type_known
21446 -# if defined(DGUX) && defined(m88k)
21447 +# if defined(DGUX)
21450 # define mach_type_known
21451 @@ -447,12 +419,14 @@
21452 /* (CX_UX and DGUX) */
21453 /* S370 ==> 370-like machine */
21454 /* running Amdahl UTS4 */
21455 - /* S390 ==> 390-like machine */
21456 - /* running LINUX */
21457 + /* S390 ==> 390-like machine */
21458 + /* running LINUX */
21459 /* ARM32 ==> Intel StrongARM */
21460 /* IA64 ==> Intel IPF */
21461 /* (e.g. Itanium) */
21462 /* (LINUX and HPUX) */
21463 + /* IA64_32 ==> IA64 w/32 bit ABI */
21465 /* SH ==> Hitachi SuperH */
21466 /* (LINUX & MSWINCE) */
21467 /* X86_64 ==> AMD x86-64 */
21468 @@ -476,17 +450,15 @@
21469 * defining it to be 1 will always work, but perform poorly.
21471 * DATASTART is the beginning of the data segment.
21472 - * On some platforms SEARCH_FOR_DATA_START is defined.
21473 - * SEARCH_FOR_DATASTART will cause GC_data_start to
21474 - * be set to an address determined by accessing data backwards from _end
21475 - * until an unmapped page is found. DATASTART will be defined to be
21477 - * On UNIX-like systems, the collector will scan the area between DATASTART
21478 + * On UNIX systems, the collector will scan the area between DATASTART
21479 * and DATAEND for root pointers.
21481 * DATAEND, if not `end' where `end' is defined as ``extern int end[];''.
21482 * RTH suggests gaining access to linker script synth'd values with
21483 * this idiom instead of `&end' where `end' is defined as ``extern int end;'' .
21484 + * Otherwise, ``GCC will assume these are in .sdata/.sbss'' and it will, e.g.,
21485 + * cause failures on alpha*-*-* with ``-msmall-data or -fpic'' or mips-*-*
21486 + * without any special options.
21488 * ALIGN_DOUBLE of GC_malloc should return blocks aligned to twice
21489 * the pointer size.
21490 @@ -498,13 +470,8 @@
21491 * 1) define STACK_GROWS_UP if the stack grows toward higher addresses, and
21492 * 2) define exactly one of
21493 * STACKBOTTOM (should be defined to be an expression)
21494 - * LINUX_STACKBOTTOM
21497 - * If STACKBOTTOM is defined, then it's value will be used directly as the
21498 - * stack base. If LINUX_STACKBOTTOM is defined, then it will be determined
21499 - * with a method appropriate for most Linux systems. Currently we look
21500 - * first for __libc_stack_end, and if that fails read it from /proc.
21501 * If either of the last two macros are defined, then STACKBOTTOM is computed
21502 * during collector startup using one of the following two heuristics:
21503 * HEURISTIC1: Take an address inside GC_init's frame, and round it up to
21504 @@ -569,9 +536,6 @@
21505 * An architecture may also define CLEAR_DOUBLE(x) to be a fast way to
21506 * clear the two words at GC_malloc-aligned address x. By default,
21507 * word stores of 0 are used instead.
21509 - * HEAP_START may be defined as the initial address hint for mmap-based
21513 /* If we are using a recent version of gcc, we can use __builtin_unwind_init()
21514 @@ -607,7 +571,7 @@
21515 # define DYNAMIC_LOADING
21516 # include <features.h>
21517 # if defined(__GLIBC__)&& __GLIBC__>=2
21518 -# define SEARCH_FOR_DATA_START
21519 +# define LINUX_DATA_START
21520 # else /* !GLIBC2 */
21521 extern char **__environ;
21522 # define DATASTART ((ptr_t)(&__environ))
21523 @@ -705,42 +669,23 @@
21524 # define ALIGNMENT 4 /* Guess. Can someone verify? */
21525 /* This was 2, but that didn't sound right. */
21526 # define OS_TYPE "LINUX"
21527 - /* HEURISTIC1 has been reliably reported to fail for a 32-bit */
21528 - /* executable on a 64 bit kernel. */
21529 -# define LINUX_STACKBOTTOM
21530 # define DYNAMIC_LOADING
21531 -# define SEARCH_FOR_DATA_START
21532 +# define LINUX_STACKBOTTOM
21533 + /* Stack usually starts at 0x80000000 */
21534 +# define LINUX_DATA_START
21536 # define DATAEND (_end)
21540 /* There are reasons to suspect this may not be reliable. */
21541 # define ALIGNMENT 4
21542 -# define OS_TYPE "DARWIN"
21543 -# define DYNAMIC_LOADING
21544 - /* XXX: see get_end(3), get_etext() and get_end() should not be used.
21545 - These aren't used when dyld support is enabled (it is by default) */
21546 +# define OS_TYPE "MACOSX"
21547 # define DATASTART ((ptr_t) get_etext())
21548 -# define DATAEND ((ptr_t) get_end())
21549 # define STACKBOTTOM ((ptr_t) 0xc0000000)
21551 -# define USE_MMAP_ANON
21552 -# define USE_ASM_PUSH_REGS
21553 - /* This is potentially buggy. It needs more testing. See the comments in
21555 -# define MPROTECT_VDB
21556 +# define DATAEND /* not needed */
21557 +# undef MPROTECT_VDB
21558 # include <unistd.h>
21559 # define GETPAGESIZE() getpagesize()
21560 -# if defined(USE_PPC_PREFETCH) && defined(__GNUC__)
21561 - /* The performance impact of prefetches is untested */
21562 -# define PREFETCH(x) \
21563 - __asm__ __volatile__ ("dcbt 0,%0" : : "r" ((const void *) (x)))
21564 -# define PREFETCH_FOR_WRITE(x) \
21565 - __asm__ __volatile__ ("dcbtst 0,%0" : : "r" ((const void *) (x)))
21567 - /* There seems to be some issues with trylock hanging on darwin. This
21568 - should be looked into some more */
21569 -# define NO_PTHREAD_TRYLOCK
21572 # define ALIGNMENT 4
21573 @@ -801,8 +746,8 @@
21574 # define OS_TYPE "SUNOS5"
21575 extern int _etext[];
21577 - extern ptr_t GC_SysVGetDataStart();
21578 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
21579 + extern char * GC_SysVGetDataStart();
21580 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
21581 # define DATAEND (_end)
21582 # if !defined(USE_MMAP) && defined(REDIRECT_MALLOC)
21584 @@ -856,9 +801,9 @@
21587 # define OS_TYPE "DRSNX"
21588 - extern ptr_t GC_SysVGetDataStart();
21589 + extern char * GC_SysVGetDataStart();
21590 extern int etext[];
21591 -# define DATASTART GC_SysVGetDataStart(0x10000, etext)
21592 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, etext)
21593 # define MPROTECT_VDB
21594 # define STACKBOTTOM ((ptr_t) 0xdfff0000)
21595 # define DYNAMIC_LOADING
21596 @@ -874,14 +819,13 @@
21597 extern int _etext[];
21598 # define DATAEND (_end)
21600 - extern ptr_t GC_SysVGetDataStart();
21602 -# define DATASTART GC_SysVGetDataStart(0x100000, _etext)
21603 /* libc_stack_end is not set reliably for sparc64 */
21604 -# define STACKBOTTOM ((ptr_t) 0x80000000000ULL)
21605 +# define STACKBOTTOM ((ptr_t) 0x80000000000)
21606 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x100000, _etext)
21608 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
21609 -# define LINUX_STACKBOTTOM
21610 +# define LINUX_STACKBOTTOM
21611 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
21615 @@ -932,7 +876,7 @@
21617 # define OS_TYPE "SUNOS5"
21618 extern int _etext[], _end[];
21619 - extern ptr_t GC_SysVGetDataStart();
21620 + extern char * GC_SysVGetDataStart();
21621 # define DATASTART GC_SysVGetDataStart(0x1000, _etext)
21622 # define DATAEND (_end)
21623 /* # define STACKBOTTOM ((ptr_t)(_start)) worked through 2.7, */
21624 @@ -977,28 +921,6 @@
21625 # define DYNAMIC_LOADING
21626 # define ELF_CLASS ELFCLASS32
21629 -# define OS_TYPE "DGUX"
21630 - extern int _etext, _end;
21631 - extern ptr_t GC_SysVGetDataStart();
21632 -# define DATASTART GC_SysVGetDataStart(0x1000, &_etext)
21633 -# define DATAEND (&_end)
21634 -# define STACK_GROWS_DOWN
21635 -# define HEURISTIC2
21636 -# include <unistd.h>
21637 -# define GETPAGESIZE() sysconf(_SC_PAGESIZE)
21638 -# define DYNAMIC_LOADING
21641 -# endif /* USE_MMAP */
21642 -# define MAP_FAILED (void *) -1
21644 -# define HEAP_START (ptr_t)0x40000000
21645 -# else /* USE_MMAP */
21646 -# define HEAP_START DATAEND
21647 -# endif /* USE_MMAP */
21648 -# endif /* DGUX */
21652 /* The Intel compiler doesn't like inline assembly */
21653 @@ -1022,9 +944,6 @@
21654 /* possibly because Linux threads is itself a malloc client */
21655 /* and can't deal with the signals. */
21657 -# define HEAP_START 0x1000
21658 - /* This encourages mmap to give us low addresses, */
21659 - /* thus allowing the heap to grow to ~3GB */
21661 # define DYNAMIC_LOADING
21662 # ifdef UNDEFINED /* includes ro data */
21663 @@ -1033,7 +952,7 @@
21665 # include <features.h>
21666 # if defined(__GLIBC__) && __GLIBC__ >= 2
21667 -# define SEARCH_FOR_DATA_START
21668 +# define LINUX_DATA_START
21670 extern char **__environ;
21671 # define DATASTART ((ptr_t)(&__environ))
21672 @@ -1142,9 +1061,16 @@
21674 # define DYNAMIC_LOADING
21676 +/* Handle unmapped hole i386*-*-freebsd[45]* may put between etext and edata. */
21677 extern char etext[];
21678 - extern char * GC_FreeBSDGetDataStart();
21679 -# define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
21680 + extern char edata[];
21681 + extern char end[];
21682 +# define NEED_FIND_LIMIT
21683 +# define DATASTART ((ptr_t)(etext))
21684 +# define MIN(x,y) ((x) < (y) ? (x) : (y))
21685 +# define DATAEND (MIN (GC_find_limit (DATASTART, TRUE), DATASTART2))
21686 +# define DATASTART2 ((ptr_t)(edata))
21687 +# define DATAEND2 ((ptr_t)(end))
21690 # define OS_TYPE "NETBSD"
21691 @@ -1223,11 +1149,7 @@
21692 # define DATASTART ((ptr_t)(__data_start))
21693 # define ALIGNMENT 4
21694 # define USE_GENERIC_PUSH_REGS
21695 -# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2
21696 -# define LINUX_STACKBOTTOM
21698 -# define STACKBOTTOM 0x80000000
21700 +# define LINUX_STACKBOTTOM
21701 # endif /* Linux */
21703 # define HEURISTIC2
21704 @@ -1300,21 +1222,15 @@
21705 # define DATAEND /* not needed */
21707 # if defined(NETBSD)
21708 - /* This also checked for __MIPSEL__ . Why? NETBSD recognition */
21709 - /* should be handled at the top of the file. */
21710 -# define ALIGNMENT 4
21711 # define OS_TYPE "NETBSD"
21712 +# define ALIGNMENT 4
21713 # define HEURISTIC2
21714 # define USE_GENERIC_PUSH_REGS
21716 - extern int etext[];
21717 -# define DATASTART GC_data_start
21718 -# define NEED_FIND_LIMIT
21719 -# define DYNAMIC_LOADING
21721 -# define DATASTART ((ptr_t) 0x10000000)
21722 -# define STACKBOTTOM ((ptr_t) 0x7ffff000)
21723 -# endif /* _ELF_ */
21724 + extern int _fdata[];
21725 +# define DATASTART ((ptr_t)(_fdata))
21726 + extern int _end[];
21727 +# define DATAEND ((ptr_t)(_end))
21728 +# define DYNAMIC_LOADING
21732 @@ -1323,16 +1239,15 @@
21734 # define ALIGNMENT 8
21735 # define CPP_WORDSZ 64
21736 -# define STACKBOTTOM 0x1000000000000000
21738 # define ALIGNMENT 4
21739 # define CPP_WORDSZ 32
21740 -# define STACKBOTTOM ((ptr_t)((ulong)&errno))
21742 extern int _data[], _end[];
21743 # define DATASTART ((ptr_t)((ulong)_data))
21744 # define DATAEND ((ptr_t)((ulong)_end))
21746 +# define STACKBOTTOM ((ptr_t)((ulong)&errno))
21747 # define USE_GENERIC_PUSH_REGS
21748 # define DYNAMIC_LOADING
21749 /* For really old versions of AIX, this may have to be removed. */
21750 @@ -1396,23 +1311,15 @@
21751 # define OS_TYPE "LINUX"
21752 # define LINUX_STACKBOTTOM
21753 # define DYNAMIC_LOADING
21754 -# define SEARCH_FOR_DATA_START
21755 +# define LINUX_DATA_START
21757 -# define DATAEND (&_end)
21758 +# define DATAEND (_end)
21759 # endif /* LINUX */
21760 # endif /* HP_PA */
21763 # define MACH_TYPE "ALPHA"
21764 # define ALIGNMENT 8
21765 -# define CPP_WORDSZ 64
21767 -# define USE_GENERIC_PUSH_REGS
21768 - /* Gcc and probably the DEC/Compaq compiler spill pointers to preserved */
21769 - /* fp registers in some cases when the target is a 21264. The assembly */
21770 - /* code doesn't handle that yet, and version dependencies make that a */
21771 - /* bit tricky. Do the easy thing for now. */
21774 # define OS_TYPE "NETBSD"
21775 # define HEURISTIC2
21776 @@ -1420,11 +1327,13 @@
21777 # define ELFCLASS32 32
21778 # define ELFCLASS64 64
21779 # define ELF_CLASS ELFCLASS64
21780 +# define CPP_WORDSZ 64
21781 # define DYNAMIC_LOADING
21784 # define OS_TYPE "OPENBSD"
21785 # define HEURISTIC2
21786 +# define CPP_WORDSZ 64
21787 # ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
21788 # define DATASTART GC_data_start
21789 # define ELFCLASS32 32
21790 @@ -1448,16 +1357,17 @@
21791 extern char edata[];
21793 # define NEED_FIND_LIMIT
21794 -# define DATASTART ((ptr_t)(&etext))
21795 +# define DATASTART ((ptr_t)(etext))
21796 # define DATAEND (GC_find_limit (DATASTART, TRUE))
21797 -# define DATASTART2 ((ptr_t)(&edata))
21798 -# define DATAEND2 ((ptr_t)(&end))
21799 +# define DATASTART2 ((ptr_t)(edata))
21800 +# define DATAEND2 ((ptr_t)(end))
21801 +# define CPP_WORDSZ 64
21804 # define OS_TYPE "OSF1"
21805 # define DATASTART ((ptr_t) 0x140000000)
21807 -# define DATAEND ((ptr_t) &_end)
21808 +# define DATAEND ((ptr_t) _end)
21809 extern char ** environ;
21810 /* round up from the value of environ to the nearest page boundary */
21811 /* Probably breaks if putenv is called before collector */
21812 @@ -1470,17 +1380,17 @@
21813 /* This is currently unused, since we disabled HEURISTIC2 */
21814 extern int __start[];
21815 # define HEURISTIC2_LIMIT ((ptr_t)((word)(__start) & ~(getpagesize()-1)))
21816 -# ifndef GC_OSF1_THREADS
21817 - /* Unresolved signal issues with threads. */
21818 -# define MPROTECT_VDB
21820 +# define CPP_WORDSZ 64
21821 +# define MPROTECT_VDB
21822 # define DYNAMIC_LOADING
21825 # define OS_TYPE "LINUX"
21826 +# define CPP_WORDSZ 64
21827 # define STACKBOTTOM ((ptr_t) 0x120000000)
21829 # define SEARCH_FOR_DATA_START
21830 +# define DATASTART GC_data_start
21831 # define DYNAMIC_LOADING
21833 # define DATASTART ((ptr_t) 0x140000000)
21834 @@ -1558,6 +1468,7 @@
21835 extern char * GC_register_stackbottom;
21836 # define BACKING_STORE_BASE ((ptr_t)GC_register_stackbottom)
21837 # define SEARCH_FOR_DATA_START
21838 +# define DATASTART GC_data_start
21840 # define DYNAMIC_LOADING
21842 @@ -1591,15 +1502,13 @@
21845 # define OS_TYPE "DGUX"
21846 - extern ptr_t GC_SysVGetDataStart();
21847 -# define DATASTART GC_SysVGetDataStart(0x10000, etext)
21848 + extern char * GC_SysVGetDataStart();
21849 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, etext)
21851 # define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
21855 - /* If this still works, and if anyone cares, this should probably */
21856 - /* be moved to the S390 category. */
21857 # define MACH_TYPE "S370"
21858 # define ALIGNMENT 4 /* Required by hardware */
21859 # define USE_GENERIC_PUSH_REGS
21860 @@ -1608,8 +1517,8 @@
21861 extern int etext[];
21862 extern int _etext[];
21864 - extern ptr_t GC_SysVGetDataStart();
21865 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
21866 + extern char * GC_SysVGetDataStart();
21867 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
21868 # define DATAEND (_end)
21869 # define HEURISTIC2
21871 @@ -1619,12 +1528,12 @@
21872 # define MACH_TYPE "S390"
21873 # define USE_GENERIC_PUSH_REGS
21875 -# define ALIGNMENT 4
21876 -# define CPP_WORDSZ 32
21877 +# define ALIGNMENT 4
21878 +# define CPP_WORDSZ 32
21880 -# define ALIGNMENT 8
21881 -# define CPP_WORDSZ 64
21882 -# define HBLKSIZE 4096
21883 +# define ALIGNMENT 8
21884 +# define CPP_WORDSZ 64
21885 +# define HBLKSIZE 4096
21888 # define OS_TYPE "LINUX"
21889 @@ -1632,10 +1541,10 @@
21890 # define DYNAMIC_LOADING
21891 extern int __data_start[];
21892 # define DATASTART ((ptr_t)(__data_start))
21893 - extern int _end[];
21894 -# define DATAEND (_end)
21895 -# define CACHE_LINE_SIZE 256
21896 -# define GETPAGESIZE() 4096
21897 + extern int _end[];
21898 +# define DATAEND (_end)
21899 +# define CACHE_LINE_SIZE 256
21900 +# define GETPAGESIZE() 4096
21904 @@ -1667,7 +1576,7 @@
21905 # define DYNAMIC_LOADING
21906 # include <features.h>
21907 # if defined(__GLIBC__) && __GLIBC__ >= 2
21908 -# define SEARCH_FOR_DATA_START
21909 +# define LINUX_DATA_START
21911 extern char **__environ;
21912 # define DATASTART ((ptr_t)(&__environ))
21913 @@ -1714,7 +1623,7 @@
21914 # define STACKBOTTOM ((ptr_t) 0x7c000000)
21915 # define USE_GENERIC_PUSH_REGS
21916 # define DYNAMIC_LOADING
21917 -# define SEARCH_FOR_DATA_START
21918 +# define LINUX_DATA_START
21920 # define DATAEND (_end)
21922 @@ -1731,9 +1640,7 @@
21923 # define MACH_TYPE "X86_64"
21924 # define ALIGNMENT 8
21925 # define CPP_WORDSZ 64
21927 -# define HBLKSIZE 4096
21929 +# define HBLKSIZE 4096
21930 # define CACHE_LINE_SIZE 64
21931 # define USE_GENERIC_PUSH_REGS
21933 @@ -1753,7 +1660,7 @@
21934 # define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff))
21936 # include <features.h>
21937 -# define SEARCH_FOR_DATA_START
21938 +# define LINUX_DATA_START
21940 # define DATAEND (_end)
21942 @@ -1767,6 +1674,19 @@
21946 +#ifdef LINUX_DATA_START
21947 + /* Some Linux distributions arrange to define __data_start. Some */
21948 + /* define data_start as a weak symbol. The latter is technically */
21949 + /* broken, since the user program may define data_start, in which */
21950 + /* case we lose. Nonetheless, we try both, prefering __data_start. */
21951 + /* We assume gcc. */
21952 +# pragma weak __data_start
21953 + extern int __data_start[];
21954 +# pragma weak data_start
21955 + extern int data_start[];
21956 +# define DATASTART ((ptr_t)(__data_start != 0? __data_start : data_start))
21959 #if defined(LINUX) && defined(REDIRECT_MALLOC)
21960 /* Rld appears to allocate some memory with its own allocator, and */
21961 /* some through malloc, which might be redirected. To make this */
21962 @@ -1805,15 +1725,15 @@
21965 # if defined(SUNOS5) || defined(DRSNX) || defined(UTS4)
21966 - /* OS has SVR4 generic features. Probably others also qualify. */
21967 + /* OS has SVR4 generic features. Probably others also qualify. */
21971 # if defined(SUNOS5) || defined(DRSNX)
21972 - /* OS has SUNOS5 style semi-undocumented interface to dynamic */
21974 + /* OS has SUNOS5 style semi-undocumented interface to dynamic */
21977 - /* OS has SUNOS5 style signal handlers. */
21978 + /* OS has SUNOS5 style signal handlers. */
21979 # define SUNOS5SIGS
21982 @@ -1822,13 +1742,13 @@
21985 # if defined(SVR4) || defined(LINUX) || defined(IRIX) || defined(HPUX) \
21986 - || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) || defined(DGUX) \
21987 - || defined(BSD) || defined(AIX) || defined(DARWIN) || defined(OSF1)
21988 + || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
21989 + || defined(BSD) || defined(_AIX) || defined(MACOSX) || defined(OSF1)
21990 # define UNIX_LIKE /* Basic Unix-like system calls work. */
21993 # if CPP_WORDSZ != 32 && CPP_WORDSZ != 64
21999 @@ -1842,13 +1762,13 @@
22003 - /* Postponed for now. */
22004 +/* Postponed for now. */
22006 # undef MPROTECT_VDB
22009 # ifdef SMALL_CONFIG
22010 - /* Presumably not worth the space it takes. */
22011 +/* Presumably not worth the space it takes. */
22013 # undef MPROTECT_VDB
22015 @@ -1888,47 +1808,49 @@
22016 /* platforms as well, though it should be avoided in win32. */
22017 # endif /* LINUX */
22019 -# if defined(SEARCH_FOR_DATA_START)
22020 +# if defined(SEARCH_FOR_DATA_START) && defined(GC_PRIVATE_H)
22021 extern ptr_t GC_data_start;
22022 -# define DATASTART GC_data_start
22025 # ifndef CLEAR_DOUBLE
22026 # define CLEAR_DOUBLE(x) \
22027 - ((word*)x)[0] = 0; \
22028 - ((word*)x)[1] = 0;
22029 + ((word*)x)[0] = 0; \
22030 + ((word*)x)[1] = 0;
22031 # endif /* CLEAR_DOUBLE */
22033 - /* Internally we use GC_SOLARIS_THREADS to test for either old or pthreads. */
22034 +/* Internally we use GC_SOLARIS_THREADS to test for either old or pthreads. */
22035 # if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
22036 # define GC_SOLARIS_THREADS
22039 # if defined(GC_IRIX_THREADS) && !defined(IRIX5)
22040 - --> inconsistent configuration
22041 +--> inconsistent configuration
22043 # if defined(GC_LINUX_THREADS) && !defined(LINUX)
22044 - --> inconsistent configuration
22045 +--> inconsistent configuration
22047 # if defined(GC_SOLARIS_THREADS) && !defined(SUNOS5)
22048 - --> inconsistent configuration
22049 +--> inconsistent configuration
22051 # if defined(GC_HPUX_THREADS) && !defined(HPUX)
22052 - --> inconsistent configuration
22053 +--> inconsistent configuration
22055 -# if defined(GC_WIN32_THREADS) && !defined(MSWIN32) && !defined(CYGWIN32)
22056 - --> inconsistent configuration
22057 +# if defined(GC_WIN32_THREADS) && !defined(MSWIN32)
22058 + /* Ideally CYGWIN32 should work, in addition to MSWIN32. I suspect */
22059 + /* the necessary code is mostly there, but nobody has actually made */
22060 + /* sure the right combination of pieces is compiled in, etc. */
22061 +--> inconsistent configuration
22064 # if defined(PCR) || defined(SRC_M3) || \
22065 - defined(GC_SOLARIS_THREADS) || defined(GC_WIN32_THREADS) || \
22066 - defined(GC_PTHREADS)
22067 + defined(GC_SOLARIS_THREADS) || defined(GC_WIN32_THREADS) || \
22068 + defined(GC_PTHREADS)
22072 -# if defined(HP_PA) || defined(M88K) || defined(POWERPC) && !defined(DARWIN) \
22073 - || defined(LINT) || defined(MSWINCE) || defined(ARM32) \
22074 - || (defined(I386) && defined(__LCC__))
22075 +# if defined(HP_PA) || defined(M88K) || defined(POWERPC) && !defined(MACOSX) \
22076 + || defined(LINT) || defined(MSWINCE) \
22077 + || (defined(I386) && defined(__LCC__))
22078 /* Use setjmp based hack to mark from callee-save registers. */
22079 /* The define should move to the individual platform */
22080 /* descriptions. */
22081 @@ -1940,26 +1862,36 @@
22082 /* include assembly code to do it well. */
22085 - /* Can we save call chain in objects for debugging? */
22086 - /* SET NFRAMES (# of saved frames) and NARGS (#of args for each */
22087 - /* frame) to reasonable values for the platform. */
22088 - /* Set SAVE_CALL_CHAIN if we can. SAVE_CALL_COUNT can be specified */
22089 - /* at build time, though we feel free to adjust it slightly. */
22090 - /* Define NEED_CALLINFO if we either save the call stack or */
22091 - /* GC_ADD_CALLER is defined. */
22092 - /* GC_CAN_SAVE_CALL_STACKS is set in gc.h. */
22093 +/* Can we save call chain in objects for debugging? */
22094 +/* SET NFRAMES (# of saved frames) and NARGS (#of args for each frame) */
22095 +/* to reasonable values for the platform. */
22096 +/* Set SAVE_CALL_CHAIN if we can. SAVE_CALL_COUNT can be specified at */
22097 +/* build time, though we feel free to adjust it slightly. */
22098 +/* Define NEED_CALLINFO if we either save the call stack or */
22099 +/* GC_ADD_CALLER is defined. */
22101 +# include <features.h>
22102 +# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2
22103 +# define HAVE_BUILTIN_BACKTRACE
22108 +# define CAN_SAVE_CALL_STACKS
22109 # define CAN_SAVE_CALL_ARGS
22111 #if (defined(I386) || defined(X86_64)) && defined(LINUX)
22112 - /* SAVE_CALL_CHAIN is supported if the code is compiled to save */
22113 - /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */
22114 + /* SAVE_CALL_CHAIN is supported if the code is compiled to save */
22115 + /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */
22116 +# define CAN_SAVE_CALL_STACKS
22117 # define CAN_SAVE_CALL_ARGS
22119 +#if defined(HAVE_BUILTIN_BACKTRACE) && !defined(CAN_SAVE_CALL_STACKS)
22120 +# define CAN_SAVE_CALL_STACKS
22123 # if defined(SAVE_CALL_COUNT) && !defined(GC_ADD_CALLER) \
22124 - && defined(GC_CAN_SAVE_CALL_STACKS)
22125 + && defined(CAN_SAVE_CALL_STACKS)
22126 # define SAVE_CALL_CHAIN
22128 # ifdef SAVE_CALL_CHAIN
22129 @@ -1972,7 +1904,7 @@
22130 # ifdef SAVE_CALL_CHAIN
22131 # ifndef SAVE_CALL_COUNT
22132 # define NFRAMES 6 /* Number of frames to save. Even for */
22133 - /* alignment reasons. */
22134 + /* alignment reasons. */
22136 # define NFRAMES ((SAVE_CALL_COUNT + 1) & ~1)
22138 @@ -1987,97 +1919,5 @@
22139 # if defined(MAKE_BACK_GRAPH) && !defined(DBG_HDRS_ALL)
22140 # define DBG_HDRS_ALL
22143 -# if defined(POINTER_MASK) && !defined(POINTER_SHIFT)
22144 -# define POINTER_SHIFT 0
22147 -# if defined(POINTER_SHIFT) && !defined(POINTER_MASK)
22148 -# define POINTER_MASK ((GC_word)(-1))
22151 -# if !defined(FIXUP_POINTER) && defined(POINTER_MASK)
22152 -# define FIXUP_POINTER(p) (p) = ((p) & (POINTER_MASK) << POINTER_SHIFT)
22155 -# if defined(FIXUP_POINTER)
22156 -# define NEED_FIXUP_POINTER 1
22158 -# define NEED_FIXUP_POINTER 0
22159 -# define FIXUP_POINTER(p)
22162 -#ifdef GC_PRIVATE_H
22163 - /* This relies on some type definitions from gc_priv.h, from */
22164 - /* where it's normally included. */
22166 - /* How to get heap memory from the OS: */
22167 - /* Note that sbrk()-like allocation is preferred, since it */
22168 - /* usually makes it possible to merge consecutively allocated */
22169 - /* chunks. It also avoids unintented recursion with */
22170 - /* -DREDIRECT_MALLOC. */
22171 - /* GET_MEM() returns a HLKSIZE aligned chunk. */
22172 - /* 0 is taken to mean failure. */
22173 - /* In the case os USE_MMAP, the argument must also be a */
22174 - /* physical page size. */
22175 - /* GET_MEM is currently not assumed to retrieve 0 filled space, */
22176 - /* though we should perhaps take advantage of the case in which */
22178 - struct hblk; /* See gc_priv.h. */
22180 - char * real_malloc();
22181 -# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
22182 - + GC_page_size-1)
22185 - void * os2_alloc(size_t bytes);
22186 -# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
22187 - + GC_page_size) \
22188 - + GC_page_size-1)
22190 -# if defined(NEXT) || defined(DOS4GW) || \
22191 - (defined(AMIGA) && !defined(GC_AMIGA_FASTALLOC)) || \
22192 - (defined(SUNOS5) && !defined(USE_MMAP))
22193 -# define GET_MEM(bytes) HBLKPTR((size_t) \
22194 - calloc(1, (size_t)bytes + GC_page_size) \
22195 - + GC_page_size-1)
22198 - extern ptr_t GC_win32_get_mem();
22199 -# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
22202 -# if defined(USE_TEMPORARY_MEMORY)
22203 - extern Ptr GC_MacTemporaryNewPtr(size_t size,
22204 - Boolean clearMemory);
22205 -# define GET_MEM(bytes) HBLKPTR( \
22206 - GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
22207 - + GC_page_size-1)
22209 -# define GET_MEM(bytes) HBLKPTR( \
22210 - NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
22214 - extern ptr_t GC_wince_get_mem();
22215 -# define GET_MEM(bytes) (struct hblk *)GC_wince_get_mem(bytes)
22217 -# if defined(AMIGA) && defined(GC_AMIGA_FASTALLOC)
22218 - extern void *GC_amiga_get_mem(size_t size);
22219 - define GET_MEM(bytes) HBLKPTR((size_t) \
22220 - GC_amiga_get_mem((size_t)bytes + GC_page_size) \
22221 - + GC_page_size-1)
22223 - extern ptr_t GC_unix_get_mem();
22224 -# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
22233 -#endif /* GC_PRIVATE_H */
22235 # endif /* GCCONFIG_H */
22236 diff -Nur ../boehm-gc/include/private/pthread_stop_world.h boehm-gc/include/private/pthread_stop_world.h
22237 --- ../boehm-gc/include/private/pthread_stop_world.h Mon May 26 13:28:24 2003
22238 +++ boehm-gc/include/private/pthread_stop_world.h Wed Dec 31 16:00:00 1969
22240 -#ifndef GC_PTHREAD_STOP_WORLD_H
22241 -#define GC_PTHREAD_STOP_WORLD_H
22243 -struct thread_stop_info {
22245 - word last_stop_count; /* GC_last_stop_count value when thread */
22246 - /* last successfully handled a suspend */
22248 - ptr_t stack_ptr; /* Valid only when stopped. */
22252 diff -Nur ../boehm-gc/include/private/pthread_support.h boehm-gc/include/private/pthread_support.h
22253 --- ../boehm-gc/include/private/pthread_support.h Mon May 26 13:28:24 2003
22254 +++ boehm-gc/include/private/pthread_support.h Wed Dec 31 16:00:00 1969
22256 -#ifndef GC_PTHREAD_SUPPORT_H
22257 -#define GC_PTHREAD_SUPPORT_H
22259 -# include "private/gc_priv.h"
22261 -# if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
22262 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
22264 -#if defined(GC_DARWIN_THREADS)
22265 -# include "private/darwin_stop_world.h"
22267 -# include "private/pthread_stop_world.h"
22270 -/* We use the allocation lock to protect thread-related data structures. */
22272 -/* The set of all known threads. We intercept thread creation and */
22274 -/* Protected by allocation/GC lock. */
22275 -/* Some of this should be declared volatile, but that's inconsistent */
22276 -/* with some library routine declarations. */
22277 -typedef struct GC_Thread_Rep {
22278 - struct GC_Thread_Rep * next; /* More recently allocated threads */
22279 - /* with a given pthread id come */
22280 - /* first. (All but the first are */
22281 - /* guaranteed to be dead, but we may */
22282 - /* not yet have registered the join.) */
22284 - /* Extra bookkeeping information the stopping code uses */
22285 - struct thread_stop_info stop_info;
22288 -# define FINISHED 1 /* Thread has exited. */
22289 -# define DETACHED 2 /* Thread is intended to be detached. */
22290 -# define MAIN_THREAD 4 /* True for the original thread only. */
22291 - short thread_blocked; /* Protected by GC lock. */
22292 - /* Treated as a boolean value. If set, */
22293 - /* thread will acquire GC lock before */
22294 - /* doing any pointer manipulations, and */
22295 - /* has set its sp value. Thus it does */
22296 - /* not need to be sent a signal to stop */
22298 - ptr_t stack_end; /* Cold end of the stack. */
22300 - ptr_t backing_store_end;
22301 - ptr_t backing_store_ptr;
22303 - void * status; /* The value returned from the thread. */
22304 - /* Used only to avoid premature */
22305 - /* reclamation of any data it might */
22307 -# ifdef THREAD_LOCAL_ALLOC
22308 -# if CPP_WORDSZ == 64 && defined(ALIGN_DOUBLE)
22309 -# define GRANULARITY 16
22310 -# define NFREELISTS 49
22312 -# define GRANULARITY 8
22313 -# define NFREELISTS 65
22315 - /* The ith free list corresponds to size i*GRANULARITY */
22316 -# define INDEX_FROM_BYTES(n) ((ADD_SLOP(n) + GRANULARITY - 1)/GRANULARITY)
22317 -# define BYTES_FROM_INDEX(i) ((i) * GRANULARITY - EXTRA_BYTES)
22318 -# define SMALL_ENOUGH(bytes) (ADD_SLOP(bytes) <= \
22319 - (NFREELISTS-1)*GRANULARITY)
22320 - ptr_t ptrfree_freelists[NFREELISTS];
22321 - ptr_t normal_freelists[NFREELISTS];
22322 -# ifdef GC_GCJ_SUPPORT
22323 - ptr_t gcj_freelists[NFREELISTS];
22325 - /* Free lists contain either a pointer or a small count */
22326 - /* reflecting the number of granules allocated at that */
22328 - /* 0 ==> thread-local allocation in use, free list */
22330 - /* > 0, <= DIRECT_GRANULES ==> Using global allocation, */
22331 - /* too few objects of this size have been */
22332 - /* allocated by this thread. */
22333 - /* >= HBLKSIZE => pointer to nonempty free list. */
22334 - /* > DIRECT_GRANULES, < HBLKSIZE ==> transition to */
22335 - /* local alloc, equivalent to 0. */
22336 -# define DIRECT_GRANULES (HBLKSIZE/GRANULARITY)
22337 - /* Don't use local free lists for up to this much */
22338 - /* allocation. */
22342 -# define THREAD_TABLE_SZ 128 /* Must be power of 2 */
22343 -extern volatile GC_thread GC_threads[THREAD_TABLE_SZ];
22345 -extern GC_bool GC_thr_initialized;
22347 -GC_thread GC_lookup_thread(pthread_t id);
22349 -void GC_stop_init();
22351 -#endif /* GC_PTHREADS && !GC_SOLARIS_THREADS.... etc */
22352 -#endif /* GC_PTHREAD_SUPPORT_H */
22353 diff -Nur ../boehm-gc/include/private/solaris_threads.h boehm-gc/include/private/solaris_threads.h
22354 --- ../boehm-gc/include/private/solaris_threads.h Mon May 26 13:28:24 2003
22355 +++ boehm-gc/include/private/solaris_threads.h Tue Oct 23 16:21:39 2001
22357 # define DETACHED 2 /* Thread is intended to be detached. */
22358 # define CLIENT_OWNS_STACK 4
22359 /* Stack was supplied by client. */
22360 -# define SUSPNDED 8 /* Currently suspended. */
22361 - /* SUSPENDED is used insystem header. */
22362 +# define SUSPENDED 8 /* Currently suspended. */
22366 diff -Nur ../boehm-gc/include/private/specific.h boehm-gc/include/private/specific.h
22367 --- ../boehm-gc/include/private/specific.h Mon May 26 13:28:24 2003
22368 +++ boehm-gc/include/private/specific.h Fri Mar 29 14:52:13 2002
22370 unsigned hash_val = CACHE_HASH(qtid);
22371 tse * volatile * entry_ptr = key -> cache + hash_val;
22372 tse * entry = *entry_ptr; /* Must be loaded only once. */
22373 - if (EXPECT(entry -> qtid == qtid, 1)) {
22374 + if (entry -> qtid == qtid) {
22375 GC_ASSERT(entry -> thread == pthread_self());
22376 return entry -> value;
22378 diff -Nur ../boehm-gc/irix_threads.c boehm-gc/irix_threads.c
22379 --- ../boehm-gc/irix_threads.c Mon May 26 12:48:52 2003
22380 +++ boehm-gc/irix_threads.c Sun May 19 10:36:14 2002
22382 #undef pthread_join
22383 #undef pthread_detach
22385 -#ifdef HANDLE_FORK
22386 - --> Not yet supported. Try porting the code from linux_threads.c.
22389 void GC_thr_init();
22392 diff -Nur ../boehm-gc/mach_dep.c boehm-gc/mach_dep.c
22393 --- ../boehm-gc/mach_dep.c Mon May 26 12:48:52 2003
22394 +++ boehm-gc/mach_dep.c Thu Jul 18 13:06:00 2002
22396 /* on your architecture. Run the test_setjmp program to see whether */
22397 /* there is any chance it will work. */
22399 -#if !defined(USE_GENERIC_PUSH_REGS) && !defined(USE_ASM_PUSH_REGS)
22400 +#ifndef USE_GENERIC_PUSH_REGS
22401 void GC_push_regs()
22404 @@ -228,8 +228,7 @@
22405 || ( defined(I386) && defined(FREEBSD) && defined(__ELF__) ) \
22406 || ( defined(I386) && defined(NETBSD) && defined(__ELF__) ) \
22407 || ( defined(I386) && defined(OPENBSD) && defined(__ELF__) ) \
22408 - || ( defined(I386) && defined(HURD) && defined(__ELF__) ) \
22409 - || ( defined(I386) && defined(DGUX) )
22410 + || ( defined(I386) && defined(HURD) && defined(__ELF__) )
22412 /* This is modified for Linux with ELF (Note: _ELF_ only) */
22413 /* This section handles FreeBSD with ELF. */
22414 @@ -378,7 +377,7 @@
22415 /* other machines... */
22416 # if !defined(M68K) && !defined(VAX) && !defined(RT)
22417 # if !defined(SPARC) && !defined(I386) && !defined(NS32K)
22418 -# if !(defined(POWERPC) && defined(LINUX)) && !defined(UTS4)
22419 +# if !defined(POWERPC) && !defined(UTS4)
22420 # if !defined(PJ) && !(defined(MIPS) && defined(LINUX))
22423 @@ -386,7 +385,7 @@
22427 -#endif /* !USE_GENERIC_PUSH_REGS && !USE_ASM_PUSH_REGS */
22428 +#endif /* !USE_GENERIC_PUSH_REGS */
22430 #if defined(USE_GENERIC_PUSH_REGS)
22431 void GC_generic_push_regs(cold_gc_frame)
22432 diff -Nur ../boehm-gc/malloc.c boehm-gc/malloc.c
22433 --- ../boehm-gc/malloc.c Mon May 26 12:48:52 2003
22434 +++ boehm-gc/malloc.c Mon Feb 11 20:37:53 2002
22435 @@ -182,7 +182,6 @@
22439 - if (GC_have_errors) GC_print_all_errors();
22440 GC_INVOKE_FINALIZERS();
22441 if (SMALL_OBJ(lb)) {
22443 @@ -295,11 +294,6 @@
22444 return(GENERAL_MALLOC((word)lb, NORMAL));
22446 /* See above comment on signals. */
22447 - GC_ASSERT(0 == obj_link(op)
22448 - || (word)obj_link(op)
22449 - <= (word)GC_greatest_plausible_heap_addr
22450 - && (word)obj_link(op)
22451 - >= (word)GC_least_plausible_heap_addr);
22452 *opp = obj_link(op);
22454 GC_words_allocd += lw;
22455 @@ -344,7 +338,6 @@
22456 return((GC_PTR)REDIRECT_MALLOC(n*lb));
22460 # include <string.h>
22462 char *strdup(const char *s)
22463 @@ -353,16 +346,11 @@
22467 - size_t len = strlen(s) + 1;
22468 + size_t len = strlen + 1;
22469 char * result = ((char *)REDIRECT_MALLOC(len+1));
22470 BCOPY(s, result, len+1);
22473 -#endif /* !defined(strdup) */
22474 - /* If strdup is macro defined, we assume that it actually calls malloc, */
22475 - /* and thus the right thing will happen even without overriding it. */
22476 - /* This seems to be true on most Linux systems. */
22478 # endif /* REDIRECT_MALLOC */
22480 /* Explicitly deallocate an object p. */
22481 @@ -385,7 +373,6 @@
22482 /* Required by ANSI. It's not my fault ... */
22485 - GC_ASSERT(GC_base(p) == p);
22486 # if defined(REDIRECT_MALLOC) && \
22487 (defined(GC_SOLARIS_THREADS) || defined(GC_LINUX_THREADS) \
22488 || defined(__MINGW32__)) /* Should this be MSWIN32 in general? */
22489 @@ -467,10 +454,7 @@
22491 #endif /* THREADS */
22493 -# if defined(REDIRECT_MALLOC) && !defined(REDIRECT_FREE)
22494 -# define REDIRECT_FREE GC_free
22496 -# ifdef REDIRECT_FREE
22497 +# ifdef REDIRECT_MALLOC
22499 void free(GC_PTR p)
22501 @@ -479,7 +463,7 @@
22504 # ifndef IGNORE_FREE
22505 - REDIRECT_FREE(p);
22509 # endif /* REDIRECT_MALLOC */
22510 diff -Nur ../boehm-gc/mallocx.c boehm-gc/mallocx.c
22511 --- ../boehm-gc/mallocx.c Mon May 26 12:48:52 2003
22512 +++ boehm-gc/mallocx.c Fri Aug 17 18:04:43 2001
22513 @@ -142,11 +142,7 @@
22517 -# if defined(REDIRECT_MALLOC) && !defined(REDIRECT_REALLOC)
22518 -# define REDIRECT_REALLOC GC_realloc
22521 -# ifdef REDIRECT_REALLOC
22522 +# if defined(REDIRECT_MALLOC) || defined(REDIRECT_REALLOC)
22524 GC_PTR realloc(GC_PTR p, size_t lb)
22526 @@ -155,9 +151,13 @@
22530 - return(REDIRECT_REALLOC(p, lb));
22531 +# ifdef REDIRECT_REALLOC
22532 + return(REDIRECT_REALLOC(p, lb));
22534 + return(GC_realloc(p, lb));
22537 -# endif /* REDIRECT_REALLOC */
22538 +# endif /* REDIRECT_MALLOC */
22541 /* The same thing, except caller does not hold allocation lock. */
22542 @@ -177,7 +177,6 @@
22543 lw = ROUNDED_UP_WORDS(lb);
22544 n_blocks = OBJ_SZ_TO_BLOCKS(lw);
22545 init = GC_obj_kinds[k].ok_init;
22546 - if (GC_have_errors) GC_print_all_errors();
22547 GC_INVOKE_FINALIZERS();
22550 @@ -287,7 +286,6 @@
22554 - if (GC_have_errors) GC_print_all_errors();
22555 GC_INVOKE_FINALIZERS();
22558 @@ -356,7 +354,6 @@
22561 lw = ALIGNED_WORDS(lb);
22562 - if (GC_have_errors) GC_print_all_errors();
22563 GC_INVOKE_FINALIZERS();
22566 @@ -378,7 +375,6 @@
22567 while ((hbp = *rlh) != 0) {
22569 *rlh = hhdr -> hb_next;
22570 - hhdr -> hb_last_reclaimed = (unsigned short) GC_gc_no;
22571 # ifdef PARALLEL_MARK
22573 signed_word my_words_allocd_tmp = GC_words_allocd_tmp;
22574 @@ -578,44 +574,6 @@
22575 return((GC_PTR) op);
22580 -/* Not well tested nor integrated. */
22581 -/* Debug version is tricky and currently missing. */
22582 -#include <limits.h>
22584 -GC_PTR GC_memalign(size_t align, size_t lb)
22590 -# ifdef ALIGN_DOUBLE
22591 - if (align <= WORDS_TO_BYTES(2) && lb > align) return GC_malloc(lb);
22593 - if (align <= WORDS_TO_BYTES(1)) return GC_malloc(lb);
22594 - if (align >= HBLKSIZE/2 || lb >= HBLKSIZE/2) {
22595 - if (align > HBLKSIZE) return GC_oom_fn(LONG_MAX-1024) /* Fail */;
22596 - return GC_malloc(lb <= HBLKSIZE? HBLKSIZE : lb);
22597 - /* Will be HBLKSIZE aligned. */
22599 - /* We could also try to make sure that the real rounded-up object size */
22600 - /* is a multiple of align. That would be correct up to HBLKSIZE. */
22601 - new_lb = lb + align - 1;
22602 - result = GC_malloc(new_lb);
22603 - offset = (word)result % align;
22604 - if (offset != 0) {
22605 - offset = align - offset;
22606 - if (!GC_all_interior_pointers) {
22607 - if (offset >= VALID_OFFSET_SZ) return GC_malloc(HBLKSIZE);
22608 - GC_register_displacement(offset);
22611 - result = (GC_PTR) ((ptr_t)result + offset);
22612 - GC_ASSERT((word)result % align == 0);
22617 # ifdef ATOMIC_UNCOLLECTABLE
22618 /* Allocate lb bytes of pointerfree, untraced, uncollectable data */
22619 diff -Nur ../boehm-gc/mark.c boehm-gc/mark.c
22620 --- ../boehm-gc/mark.c Mon May 26 12:48:52 2003
22621 +++ boehm-gc/mark.c Fri Mar 29 14:52:12 2002
22623 # include <stdio.h>
22624 # include "private/gc_pmark.h"
22626 -#if defined(MSWIN32) && defined(__GNUC__)
22627 -# include <excpt.h>
22630 /* We put this here to minimize the risk of inlining. */
22633 @@ -265,20 +261,20 @@
22634 /* remains valid until all marking is complete. */
22635 /* A zero value indicates that it's OK to miss some */
22636 /* register values. */
22637 -/* We hold the allocation lock. In the case of */
22638 -/* incremental collection, the world may not be stopped.*/
22640 - /* For win32, this is called after we establish a structured */
22641 - /* exception handler, in case Windows unmaps one of our root */
22642 - /* segments. See below. In either case, we acquire the */
22643 - /* allocator lock long before we get here. */
22644 - GC_bool GC_mark_some_inner(cold_gc_frame)
22645 - ptr_t cold_gc_frame;
22647 - GC_bool GC_mark_some(cold_gc_frame)
22648 - ptr_t cold_gc_frame;
22650 +GC_bool GC_mark_some(cold_gc_frame)
22651 +ptr_t cold_gc_frame;
22653 +#if defined(MSWIN32) && !defined(__GNUC__)
22654 + /* Windows 98 appears to asynchronously create and remove writable */
22655 + /* memory mappings, for reasons we haven't yet understood. Since */
22656 + /* we look for writable regions to determine the root set, we may */
22657 + /* try to mark from an address range that disappeared since we */
22658 + /* started the collection. Thus we have to recover from faults here. */
22659 + /* This code does not appear to be necessary for Windows 95/NT/2000. */
22660 + /* Note that this code should never generate an incremental GC write */
22663 +#endif /* defined(MSWIN32) && !defined(__GNUC__) */
22664 switch(GC_mark_state) {
22667 @@ -399,130 +395,23 @@
22668 ABORT("GC_mark_some: bad state");
22679 - EXCEPTION_REGISTRATION ex_reg;
22684 - static EXCEPTION_DISPOSITION mark_ex_handler(
22685 - struct _EXCEPTION_RECORD *ex_rec,
22687 - struct _CONTEXT *context,
22690 - if (ex_rec->ExceptionCode == STATUS_ACCESS_VIOLATION) {
22691 - ext_ex_regn *xer = (ext_ex_regn *)est_frame;
22693 - /* Unwind from the inner function assuming the standard */
22694 - /* function prologue. */
22695 - /* Assumes code has not been compiled with */
22696 - /* -fomit-frame-pointer. */
22697 - context->Esp = context->Ebp;
22698 - context->Ebp = *((DWORD *)context->Esp);
22699 - context->Esp = context->Esp - 8;
22701 - /* Resume execution at the "real" handler within the */
22702 - /* wrapper function. */
22703 - context->Eip = (DWORD )(xer->alt_path);
22705 - return ExceptionContinueExecution;
22708 - return ExceptionContinueSearch;
22711 -# endif /* __GNUC__ */
22714 - GC_bool GC_mark_some(cold_gc_frame)
22715 - ptr_t cold_gc_frame;
22720 - /* Windows 98 appears to asynchronously create and remove */
22721 - /* writable memory mappings, for reasons we haven't yet */
22722 - /* understood. Since we look for writable regions to */
22723 - /* determine the root set, we may try to mark from an */
22724 - /* address range that disappeared since we started the */
22725 - /* collection. Thus we have to recover from faults here. */
22726 - /* This code does not appear to be necessary for Windows */
22727 - /* 95/NT/2000. Note that this code should never generate */
22728 - /* an incremental GC write fault. */
22732 -# else /* __GNUC__ */
22734 - /* Manually install an exception handler since GCC does */
22735 - /* not yet support Structured Exception Handling (SEH) on */
22740 - er.alt_path = &&handle_ex;
22741 - er.ex_reg.handler = mark_ex_handler;
22742 - asm volatile ("movl %%fs:0, %0" : "=r" (er.ex_reg.prev));
22743 - asm volatile ("movl %0, %%fs:0" : : "r" (&er));
22745 -# endif /* __GNUC__ */
22747 - ret_val = GC_mark_some_inner(cold_gc_frame);
22751 - } __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
22752 - EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
22754 -# else /* __GNUC__ */
22756 - /* Prevent GCC from considering the following code unreachable */
22757 - /* and thus eliminating it. */
22758 - if (er.alt_path != 0)
22762 - /* Execution resumes from here on an access violation. */
22764 -# endif /* __GNUC__ */
22767 - if (GC_print_stats) {
22768 - GC_printf0("Caught ACCESS_VIOLATION in marker. "
22769 - "Memory mapping disappeared.\n");
22771 -# endif /* CONDPRINT */
22773 - /* We have bad roots on the stack. Discard mark stack. */
22774 - /* Rescan from marked objects. Redetermine roots. */
22775 - GC_invalidate_mark_state();
22782 +#if defined(MSWIN32) && !defined(__GNUC__)
22783 + } __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
22784 + EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
22786 + if (GC_print_stats) {
22787 + GC_printf0("Caught ACCESS_VIOLATION in marker. "
22788 + "Memory mapping disappeared.\n");
22791 -# else /* __GNUC__ */
22794 - /* Uninstall the exception handler */
22795 - asm volatile ("mov %0, %%fs:0" : : "r" (er.ex_reg.prev));
22797 -# endif /* __GNUC__ */
22800 +# endif /* CONDPRINT */
22801 + /* We have bad roots on the stack. Discard mark stack. */
22802 + /* Rescan from marked objects. Redetermine roots. */
22803 + GC_invalidate_mark_state();
22807 -#endif /* MSWIN32 */
22808 +#endif /* defined(MSWIN32) && !defined(__GNUC__) */
22812 GC_bool GC_mark_stack_empty()
22813 @@ -545,7 +434,13 @@
22814 /* for the large object. */
22815 /* - just return current if it does not point to a large object. */
22817 -ptr_t GC_find_start(current, hhdr, new_hdr_p)
22818 +# ifdef PRINT_BLACK_LIST
22819 + ptr_t GC_find_start(current, hhdr, new_hdr_p, source)
22822 + ptr_t GC_find_start(current, hhdr, new_hdr_p)
22825 register ptr_t current;
22826 register hdr *hhdr, **new_hdr_p;
22828 @@ -573,6 +468,7 @@
22835 void GC_invalidate_mark_state()
22836 @@ -650,8 +546,8 @@
22837 /* Large length. */
22838 /* Process part of the range to avoid pushing too much on the */
22840 - GC_ASSERT(descr < (word)GC_greatest_plausible_heap_addr
22841 - - (word)GC_least_plausible_heap_addr);
22842 + GC_ASSERT(descr < GC_greatest_plausible_heap_addr
22843 + - GC_least_plausible_heap_addr);
22844 # ifdef PARALLEL_MARK
22845 # define SHARE_BYTES 2048
22846 if (descr > SHARE_BYTES && GC_parallel
22847 @@ -682,7 +578,6 @@
22848 while (descr != 0) {
22849 if ((signed_word)descr < 0) {
22850 current = *current_p;
22851 - FIXUP_POINTER(current);
22852 if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
22854 HC_PUSH_CONTENTS((ptr_t)current, mark_stack_top,
22855 @@ -757,7 +652,6 @@
22856 PREFETCH((ptr_t)limit - PREF_DIST*CACHE_LINE_SIZE);
22857 GC_ASSERT(limit >= current_p);
22859 - FIXUP_POINTER(deferred);
22860 limit = (word *)((char *)limit - ALIGNMENT);
22861 if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
22862 PREFETCH(deferred);
22863 @@ -767,7 +661,6 @@
22864 /* Unroll once, so we don't do too many of the prefetches */
22865 /* based on limit. */
22867 - FIXUP_POINTER(deferred);
22868 limit = (word *)((char *)limit - ALIGNMENT);
22869 if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
22870 PREFETCH(deferred);
22871 @@ -782,7 +675,6 @@
22872 /* Since HC_PUSH_CONTENTS expands to a lot of code, */
22874 current = *current_p;
22875 - FIXUP_POINTER(current);
22876 PREFETCH((ptr_t)current_p + PREF_DIST*CACHE_LINE_SIZE);
22877 if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
22878 /* Prefetch the contents of the object we just pushed. It's */
22879 @@ -834,33 +726,22 @@
22880 mse *top = local - 1;
22883 - /* Make sure that prior writes to the mark stack are visible. */
22884 - /* On some architectures, the fact that the reads are */
22885 - /* volatile should suffice. */
22886 -# if !defined(IA64) && !defined(HP_PA) && !defined(I386)
22887 - GC_memory_barrier();
22889 GC_ASSERT(high >= low-1 && high - low + 1 <= GC_mark_stack_size);
22890 for (p = low; p <= high && i <= max; ++p) {
22891 word descr = *(volatile word *) &(p -> mse_descr);
22892 - /* In the IA64 memory model, the following volatile store is */
22893 - /* ordered after this read of descr. Thus a thread must read */
22894 - /* the original nonzero value. HP_PA appears to be similar, */
22895 - /* and if I'm reading the P4 spec correctly, X86 is probably */
22896 - /* also OK. In some other cases we need a barrier. */
22897 -# if !defined(IA64) && !defined(HP_PA) && !defined(I386)
22898 - GC_memory_barrier();
22901 *(volatile word *) &(p -> mse_descr) = 0;
22902 - /* More than one thread may get this entry, but that's only */
22903 - /* a minor performance problem. */
22905 top -> mse_descr = descr;
22906 top -> mse_start = p -> mse_start;
22907 GC_ASSERT( top -> mse_descr & GC_DS_TAGS != GC_DS_LENGTH ||
22908 top -> mse_descr < GC_greatest_plausible_heap_addr
22909 - GC_least_plausible_heap_addr);
22910 + /* There is no synchronization here. We assume that at */
22911 + /* least one thread will see the original descriptor. */
22912 + /* Otherwise we need a barrier. */
22913 + /* More than one thread may get this entry, but that's only */
22914 + /* a minor performance problem. */
22915 /* If this is a big object, count it as */
22916 /* size/256 + 1 objects. */
22918 @@ -897,7 +778,7 @@
22919 BCOPY(low, my_start, stack_size * sizeof(mse));
22920 GC_ASSERT(GC_mark_stack_top = my_top);
22921 # if !defined(IA64) && !defined(HP_PA)
22922 - GC_memory_barrier();
22923 + GC_memory_write_barrier();
22925 /* On IA64, the volatile write acts as a release barrier. */
22926 GC_mark_stack_top = my_top + stack_size;
22927 @@ -1461,8 +1342,8 @@
22928 # define GC_least_plausible_heap_addr least_ha
22930 if (top == 0) return;
22931 - /* check all pointers in range and push if they appear */
22932 - /* to be valid. */
22933 + /* check all pointers in range and put in push if they appear */
22934 + /* to be valid. */
22935 lim = t - 1 /* longword */;
22936 for (p = b; p <= lim; p = (word *)(((char *)p) + ALIGNMENT)) {
22938 @@ -1485,7 +1366,7 @@
22940 ptr_t cold_gc_frame;
22942 - if (!NEED_FIXUP_POINTER && GC_all_interior_pointers) {
22943 + if (GC_all_interior_pointers) {
22944 # define EAGER_BYTES 1024
22945 /* Push the hot end of the stack eagerly, so that register values */
22946 /* saved inside GC frames are marked before they disappear. */
22947 @@ -1494,7 +1375,6 @@
22948 GC_push_all_stack(bottom, top);
22951 - GC_ASSERT(bottom <= cold_gc_frame && cold_gc_frame <= top);
22952 # ifdef STACK_GROWS_DOWN
22953 GC_push_all(cold_gc_frame - sizeof(ptr_t), top);
22954 GC_push_all_eager(bottom, cold_gc_frame);
22955 @@ -1515,7 +1395,7 @@
22959 - if (!NEED_FIXUP_POINTER && GC_all_interior_pointers) {
22960 + if (GC_all_interior_pointers) {
22961 GC_push_all(bottom, top);
22963 GC_push_all_eager(bottom, top);
22964 diff -Nur ../boehm-gc/mark_rts.c boehm-gc/mark_rts.c
22965 --- ../boehm-gc/mark_rts.c Mon May 26 12:48:52 2003
22966 +++ boehm-gc/mark_rts.c Mon Mar 3 22:38:29 2003
22967 @@ -275,72 +275,33 @@
22970 /* Internal use only; lock held. */
22971 -static void GC_remove_root_at_pos(i)
22974 - GC_root_size -= (GC_static_roots[i].r_end - GC_static_roots[i].r_start);
22975 - GC_static_roots[i].r_start = GC_static_roots[n_root_sets-1].r_start;
22976 - GC_static_roots[i].r_end = GC_static_roots[n_root_sets-1].r_end;
22977 - GC_static_roots[i].r_tmp = GC_static_roots[n_root_sets-1].r_tmp;
22981 -#if !defined(MSWIN32) && !defined(MSWINCE)
22982 -static void GC_rebuild_root_index()
22986 - for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
22987 - for (i = 0; i < n_root_sets; i++)
22988 - add_roots_to_index(GC_static_roots + i);
22992 -/* Internal use only; lock held. */
22993 void GC_remove_tmp_roots()
22997 for (i = 0; i < n_root_sets; ) {
22998 if (GC_static_roots[i].r_tmp) {
22999 - GC_remove_root_at_pos(i);
23001 + (GC_static_roots[i].r_end - GC_static_roots[i].r_start);
23002 + GC_static_roots[i].r_start = GC_static_roots[n_root_sets-1].r_start;
23003 + GC_static_roots[i].r_end = GC_static_roots[n_root_sets-1].r_end;
23004 + GC_static_roots[i].r_tmp = GC_static_roots[n_root_sets-1].r_tmp;
23010 - #if !defined(MSWIN32) && !defined(MSWINCE)
23011 - GC_rebuild_root_index();
23015 -#if !defined(MSWIN32) && !defined(MSWINCE)
23016 -void GC_remove_roots(b, e)
23017 -char * b; char * e;
23021 - DISABLE_SIGNALS();
23023 - GC_remove_roots_inner(b, e);
23025 - ENABLE_SIGNALS();
23028 -/* Should only be called when the lock is held */
23029 -void GC_remove_roots_inner(b,e)
23030 -char * b; char * e;
23033 - for (i = 0; i < n_root_sets; ) {
23034 - if (GC_static_roots[i].r_start >= (ptr_t)b && GC_static_roots[i].r_end <= (ptr_t)e) {
23035 - GC_remove_root_at_pos(i);
23039 +# if !defined(MSWIN32) && !defined(MSWINCE)
23043 + for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
23044 + for (i = 0; i < n_root_sets; i++)
23045 + add_roots_to_index(GC_static_roots + i);
23047 - GC_rebuild_root_index();
23051 -#endif /* !defined(MSWIN32) && !defined(MSWINCE) */
23053 #if defined(MSWIN32) || defined(_WIN32_WCE_EMULATION)
23054 /* Workaround for the OS mapping and unmapping behind our back: */
23055 @@ -612,11 +573,8 @@
23057 /* Mark thread local free lists, even if their mark */
23058 /* descriptor excludes the link field. */
23059 - /* If the world is not stopped, this is unsafe. It is */
23060 - /* also unnecessary, since we will do this again with the */
23061 - /* world stopped. */
23062 # ifdef THREAD_LOCAL_ALLOC
23063 - if (GC_world_stopped) GC_mark_thread_local_free_lists();
23064 + GC_mark_thread_local_free_lists();
23068 diff -Nur ../boehm-gc/misc.c boehm-gc/misc.c
23069 --- ../boehm-gc/misc.c Mon May 26 12:48:52 2003
23070 +++ boehm-gc/misc.c Mon Mar 3 22:38:30 2003
23072 # ifdef GC_SOLARIS_THREADS
23073 mutex_t GC_allocate_ml; /* Implicitly initialized. */
23075 -# if defined(GC_WIN32_THREADS)
23076 -# if defined(GC_PTHREADS)
23077 - pthread_mutex_t GC_allocate_ml = PTHREAD_MUTEX_INITIALIZER;
23078 -# elif defined(GC_DLL)
23079 +# ifdef GC_WIN32_THREADS
23080 +# if !defined(GC_NOT_DLL) && (defined(_DLL) || defined(GC_DLL))
23081 __declspec(dllexport) CRITICAL_SECTION GC_allocate_ml;
23083 CRITICAL_SECTION GC_allocate_ml;
23088 -/* Dont unnecessarily call GC_register_main_static_data() in case */
23089 -/* dyn_load.c isn't linked in. */
23090 +/* Dont unnecessarily call GC_register_main_static_data() in case */
23091 +/* dyn_load.c isn't linked in. */
23092 #ifdef DYNAMIC_LOADING
23093 # define GC_REGISTER_MAIN_STATIC_DATA() GC_register_main_static_data()
23096 /* defined here so we don't have to load debug_malloc.o */
23098 void (*GC_check_heap) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
23099 -void (*GC_print_all_smashed) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
23101 void (*GC_start_call_back) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
23103 @@ -112,10 +109,6 @@
23105 GC_bool GC_print_back_height = 0;
23107 -#ifndef NO_DEBUGGING
23108 - GC_bool GC_dump_regularly = 0; /* Generate regular debugging dumps. */
23112 int GC_find_leak = 1;
23114 @@ -144,13 +137,6 @@
23116 extern signed_word GC_mem_found;
23118 -void * GC_project2(arg1, arg2)
23125 # ifdef MERGE_SIZES
23126 /* Set things up so that GC_size_map[i] >= words(i), */
23127 /* but not too much bigger */
23128 @@ -469,7 +455,7 @@
23132 -#if defined(GC_WIN32_THREADS) && !defined(GC_PTHREADS)
23134 if (!GC_is_initialized) InitializeCriticalSection(&GC_allocate_ml);
23135 #endif /* MSWIN32 */
23137 @@ -487,15 +473,6 @@
23138 GC_init_parallel();
23140 # endif /* PARALLEL_MARK || THREAD_LOCAL_ALLOC */
23142 -# if defined(DYNAMIC_LOADING) && defined(DARWIN)
23144 - /* This must be called WITHOUT the allocation lock held
23145 - and before any threads are created */
23146 - extern void GC_init_dyld();
23152 #if defined(MSWIN32) || defined(MSWINCE)
23153 @@ -508,22 +485,6 @@
23155 extern void GC_setpagesize();
23159 -extern GC_bool GC_no_win32_dlls;
23161 -# define GC_no_win32_dlls FALSE
23164 -void GC_exit_check GC_PROTO((void))
23169 -#ifdef SEARCH_FOR_DATA_START
23170 - extern void GC_init_linux_data_start GC_PROTO((void));
23175 extern void GC_set_and_save_fault_handler GC_PROTO((void (*handler)(int)));
23176 @@ -534,23 +495,12 @@
23177 GC_err_printf1("Caught signal %d: looping in handler\n", sig);
23182 -static GC_bool installed_looping_handler = FALSE;
23184 -void maybe_install_looping_handler()
23186 - /* Install looping handler before the write fault handler, so we */
23187 - /* handle write faults correctly. */
23188 - if (!installed_looping_handler && 0 != GETENV("GC_LOOP_ON_ABORT")) {
23189 - GC_set_and_save_fault_handler(looping_handler);
23190 - installed_looping_handler = TRUE;
23194 -#else /* !UNIX_LIKE */
23196 -# define maybe_install_looping_handler()
23199 +extern GC_bool GC_no_win32_dlls;
23201 +# define GC_no_win32_dlls FALSE
23204 void GC_init_inner()
23205 @@ -565,21 +515,14 @@
23206 GC_print_stats = 1;
23208 # if defined(MSWIN32) || defined(MSWINCE)
23209 - InitializeCriticalSection(&GC_write_cs);
23210 + InitializeCriticalSection(&GC_write_cs);
23213 if (0 != GETENV("GC_PRINT_STATS")) {
23214 GC_print_stats = 1;
23216 -# ifndef NO_DEBUGGING
23217 - if (0 != GETENV("GC_DUMP_REGULARLY")) {
23218 - GC_dump_regularly = 1;
23221 if (0 != GETENV("GC_FIND_LEAK")) {
23224 - atexit(GC_exit_check);
23227 if (0 != GETENV("GC_ALL_INTERIOR_POINTERS")) {
23228 GC_all_interior_pointers = 1;
23229 @@ -617,7 +560,11 @@
23233 - maybe_install_looping_handler();
23235 + if (0 != GETENV("GC_LOOP_ON_ABORT")) {
23236 + GC_set_and_save_fault_handler(looping_handler);
23239 /* Adjust normal object descriptor for extra allocation. */
23240 if (ALIGNMENT > GC_DS_TAGS && EXTRA_BYTES != 0) {
23241 GC_obj_kinds[NORMAL].ok_descriptor = ((word)(-ALIGNMENT) | GC_DS_LENGTH);
23242 @@ -652,21 +599,11 @@
23243 # if defined(LINUX) && defined(IA64)
23244 GC_register_stackbottom = GC_get_register_stack_base();
23247 -# if defined(LINUX) && defined(IA64)
23248 - if (GC_register_stackbottom == 0) {
23249 - WARN("GC_register_stackbottom should be set with GC_stackbottom", 0);
23250 - /* The following is likely to fail, since we rely on */
23251 - /* alignment properties that may not hold with a user set */
23252 - /* GC_stackbottom. */
23253 - GC_register_stackbottom = GC_get_register_stack_base();
23258 - GC_STATIC_ASSERT(sizeof (ptr_t) == sizeof(word));
23259 - GC_STATIC_ASSERT(sizeof (signed_word) == sizeof(word));
23260 - GC_STATIC_ASSERT(sizeof (struct hblk) == HBLKSIZE);
23261 + GC_ASSERT(sizeof (ptr_t) == sizeof(word));
23262 + GC_ASSERT(sizeof (signed_word) == sizeof(word));
23263 + GC_ASSERT(sizeof (struct hblk) == HBLKSIZE);
23265 # if defined(STACK_GROWS_UP) && defined(STACK_GROWS_DOWN)
23267 @@ -705,18 +642,6 @@
23268 initial_heap_sz = divHBLKSZ(initial_heap_sz);
23272 - char * sz_str = GETENV("GC_MAXIMUM_HEAP_SIZE");
23273 - if (sz_str != NULL) {
23274 - word max_heap_sz = (word)atol(sz_str);
23275 - if (max_heap_sz < initial_heap_sz * HBLKSIZE) {
23276 - WARN("Bad maximum heap size %s - ignoring it.\n",
23279 - if (0 == GC_max_retries) GC_max_retries = 2;
23280 - GC_set_max_heap_size(max_heap_sz);
23283 if (!GC_expand_hp_inner(initial_heap_sz)) {
23284 GC_err_printf0("Can't start up: not enough memory\n");
23286 @@ -752,7 +677,6 @@
23287 GC_incremental = TRUE;
23289 # endif /* !SMALL_CONFIG */
23291 /* Get black list set up and/or incrmental GC started */
23292 if (!GC_dont_precollect || GC_incremental) GC_gcollect_inner();
23293 GC_is_initialized = TRUE;
23294 @@ -788,9 +712,8 @@
23295 if (GC_incremental) goto out;
23297 if (GC_no_win32_dlls) goto out;
23298 -# ifndef GC_SOLARIS_THREADS
23299 - maybe_install_looping_handler(); /* Before write fault handler! */
23301 +# ifndef GC_SOLARIS_THREADS
23304 if (!GC_is_initialized) {
23306 @@ -1009,17 +932,6 @@
23310 -# if defined(__STDC__) || defined(__cplusplus)
23311 - GC_word GC_set_free_space_divisor (GC_word value)
23313 - GC_word GC_set_free_space_divisor (value)
23317 - GC_word old = GC_free_space_divisor;
23318 - GC_free_space_divisor = value;
23324 @@ -1046,18 +958,122 @@
23328 +#ifdef NEED_CALLINFO
23330 +#ifdef HAVE_BUILTIN_BACKTRACE
23331 +# include <execinfo.h>
23333 +# include <unistd.h>
23337 +void GC_print_callers (info)
23338 +struct callinfo info[NFRAMES];
23343 + GC_err_printf0("\tCaller at allocation:\n");
23345 + GC_err_printf0("\tCall chain at allocation:\n");
23347 + for (i = 0; i < NFRAMES; i++) {
23348 + if (info[i].ci_pc == 0) break;
23353 + GC_err_printf0("\t\targs: ");
23354 + for (j = 0; j < NARGS; j++) {
23355 + if (j != 0) GC_err_printf0(", ");
23356 + GC_err_printf2("%d (0x%X)", ~(info[i].ci_arg[j]),
23357 + ~(info[i].ci_arg[j]));
23359 + GC_err_printf0("\n");
23362 +# if defined(HAVE_BUILTIN_BACKTRACE) && !defined(REDIRECT_MALLOC)
23363 + /* Unfortunately backtrace_symbols calls malloc, which makes */
23364 + /* it dangersous if that has been redirected. */
23366 + char **sym_name =
23367 + backtrace_symbols((void **)(&(info[i].ci_pc)), 1);
23368 + char *name = sym_name[0];
23369 + GC_bool found_it = (strchr(name, '(') != 0);
23373 +# define EXE_SZ 100
23374 + static char exe_name[EXE_SZ];
23375 +# define CMD_SZ 200
23376 + char cmd_buf[CMD_SZ];
23377 +# define RESULT_SZ 200
23378 + static char result_buf[RESULT_SZ];
23379 + size_t result_len;
23380 + static GC_bool found_exe_name = FALSE;
23381 + static GC_bool will_fail = FALSE;
23383 + /* Unfortunately, this is the common case for the */
23384 + /* main executable. */
23385 + /* Try to get it via a hairy and expensive scheme. */
23386 + /* First we get the name of the executable: */
23387 + if (will_fail) goto out;
23388 + if (!found_exe_name) {
23389 + ret_code = readlink("/proc/self/exe", exe_name, EXE_SZ);
23390 + if (ret_code < 0 || ret_code >= EXE_SZ || exe_name[0] != '/') {
23391 + will_fail = TRUE; /* Dont try again. */
23394 + exe_name[ret_code] = '\0';
23395 + found_exe_name = TRUE;
23397 + /* Then we use popen to start addr2line -e <exe> <addr> */
23398 + /* There are faster ways to do this, but hopefully this */
23399 + /* isn't time critical. */
23400 + sprintf(cmd_buf, "/usr/bin/addr2line -e %s 0x%lx", exe_name,
23401 + (unsigned long)info[i].ci_pc);
23402 + pipe = popen(cmd_buf, "r");
23403 + if (pipe < 0 || fgets(result_buf, RESULT_SZ, pipe) == 0) {
23404 + will_fail = TRUE;
23407 + result_len = strlen(result_buf);
23408 + if (result_buf[result_len - 1] == '\n') --result_len;
23409 + if (result_buf[0] == '?'
23410 + || result_buf[result_len-2] == ':'
23411 + && result_buf[result_len-1] == '0')
23413 + if (result_len < RESULT_SZ - 25) {
23414 + /* Add in hex address */
23415 + sprintf(result_buf + result_len, " [0x%lx]",
23416 + (unsigned long)info[i].ci_pc);
23418 + name = result_buf;
23423 + GC_err_printf1("\t\t%s\n", name);
23427 + GC_err_printf1("\t\t##PC##= 0x%lx\n", info[i].ci_pc);
23432 +#endif /* SAVE_CALL_CHAIN */
23434 +/* Needed by SRC_M3, gcj, and should perhaps be the official interface */
23435 +/* to GC_dont_gc. */
23450 #if !defined(NO_DEBUGGING)
23451 @@ -1072,8 +1088,6 @@
23452 GC_print_hblkfreelist();
23453 GC_printf0("\n***Blocks in use:\n");
23454 GC_print_block_list();
23455 - GC_printf0("\n***Finalization statistics:\n");
23456 - GC_print_finalization_stats();
23459 #endif /* NO_DEBUGGING */
23460 diff -Nur ../boehm-gc/os_dep.c boehm-gc/os_dep.c
23461 --- ../boehm-gc/os_dep.c Sat May 31 14:46:38 2003
23462 +++ boehm-gc/os_dep.c Fri Jul 19 01:54:43 2002
23463 @@ -80,17 +80,14 @@
23464 # define NEED_FIND_LIMIT
23467 -#if defined(FREEBSD) && defined(I386)
23468 -# include <machine/trap.h>
23469 -# if !defined(PCR)
23470 -# define NEED_FIND_LIMIT
23474 #ifdef NEED_FIND_LIMIT
23475 # include <setjmp.h>
23478 +#if defined(FREEBSD) && defined(I386)
23479 +# include <machine/trap.h>
23483 # define GC_AMIGA_DEF
23484 # include "AmigaOS.c"
23485 @@ -132,11 +129,6 @@
23486 # define jmp_buf sigjmp_buf
23490 -/* for get_etext and friends */
23491 -#include <mach-o/getsect.h>
23495 /* Apparently necessary for djgpp 2.01. May cause problems with */
23496 /* other versions. */
23497 @@ -155,155 +147,6 @@
23498 # define OPT_PROT_EXEC 0
23501 -#if defined(LINUX) && \
23502 - (defined(USE_PROC_FOR_LIBRARIES) || defined(IA64) || !defined(SMALL_CONFIG))
23504 -/* We need to parse /proc/self/maps, either to find dynamic libraries, */
23505 -/* and/or to find the register backing store base (IA64). Do it once */
23510 -/* Repeatedly perform a read call until the buffer is filled or */
23511 -/* we encounter EOF. */
23512 -ssize_t GC_repeat_read(int fd, char *buf, size_t count)
23514 - ssize_t num_read = 0;
23517 - while (num_read < count) {
23518 - result = READ(fd, buf + num_read, count - num_read);
23519 - if (result < 0) return result;
23520 - if (result == 0) break;
23521 - num_read += result;
23527 - * Apply fn to a buffer containing the contents of /proc/self/maps.
23528 - * Return the result of fn or, if we failed, 0.
23531 -word GC_apply_to_maps(word (*fn)(char *))
23536 - char maps_temp[32768];
23539 - /* Read /proc/self/maps */
23540 - /* Note that we may not allocate, and thus can't use stdio. */
23541 - f = open("/proc/self/maps", O_RDONLY);
23542 - if (-1 == f) return 0;
23543 - /* stat() doesn't work for /proc/self/maps, so we have to
23544 - read it to find out how large it is... */
23547 - result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
23548 - if (result <= 0) return 0;
23549 - maps_size += result;
23550 - } while (result == sizeof(maps_temp));
23552 - if (maps_size > sizeof(maps_temp)) {
23553 - /* If larger than our buffer, close and re-read it. */
23555 - f = open("/proc/self/maps", O_RDONLY);
23556 - if (-1 == f) return 0;
23557 - maps_buf = alloca(maps_size);
23558 - if (NULL == maps_buf) return 0;
23559 - result = GC_repeat_read(f, maps_buf, maps_size);
23560 - if (result <= 0) return 0;
23562 - /* Otherwise use the fixed size buffer */
23563 - maps_buf = maps_temp;
23567 - maps_buf[result] = '\0';
23569 - /* Apply fn to result. */
23570 - return fn(maps_buf);
23573 -#endif /* Need GC_apply_to_maps */
23575 -#if defined(LINUX) && (defined(USE_PROC_FOR_LIBRARIES) || defined(IA64))
23577 -// GC_parse_map_entry parses an entry from /proc/self/maps so we can
23578 -// locate all writable data segments that belong to shared libraries.
23579 -// The format of one of these entries and the fields we care about
23581 -// XXXXXXXX-XXXXXXXX r-xp 00000000 30:05 260537 name of mapping...\n
23582 -// ^^^^^^^^ ^^^^^^^^ ^^^^ ^^
23583 -// start end prot maj_dev
23586 -// For 64 bit ABIs:
23589 -// The parser is called with a pointer to the entry and the return value
23590 -// is either NULL or is advanced to the next entry(the byte after the
23591 -// trailing '\n'.)
23593 -#if CPP_WORDSZ == 32
23594 -# define OFFSET_MAP_START 0
23595 -# define OFFSET_MAP_END 9
23596 -# define OFFSET_MAP_PROT 18
23597 -# define OFFSET_MAP_MAJDEV 32
23598 -# define ADDR_WIDTH 8
23601 -#if CPP_WORDSZ == 64
23602 -# define OFFSET_MAP_START 0
23603 -# define OFFSET_MAP_END 17
23604 -# define OFFSET_MAP_PROT 34
23605 -# define OFFSET_MAP_MAJDEV 56
23606 -# define ADDR_WIDTH 16
23610 - * Assign various fields of the first line in buf_ptr to *start, *end,
23611 - * *prot_buf and *maj_dev. Only *prot_buf may be set for unwritable maps.
23613 -char *GC_parse_map_entry(char *buf_ptr, word *start, word *end,
23614 - char *prot_buf, unsigned int *maj_dev)
23619 - if (buf_ptr == NULL || *buf_ptr == '\0') {
23623 - memcpy(prot_buf, buf_ptr+OFFSET_MAP_PROT, 4); // do the protections first
23624 - prot_buf[4] = '\0';
23626 - if (prot_buf[1] == 'w') { // we can skip all of this if it's not writable
23629 - buf_ptr[OFFSET_MAP_START+ADDR_WIDTH] = '\0';
23630 - *start = strtoul(tok, NULL, 16);
23632 - tok = buf_ptr+OFFSET_MAP_END;
23633 - buf_ptr[OFFSET_MAP_END+ADDR_WIDTH] = '\0';
23634 - *end = strtoul(tok, NULL, 16);
23636 - buf_ptr += OFFSET_MAP_MAJDEV;
23638 - while (*buf_ptr != ':') buf_ptr++;
23639 - *buf_ptr++ = '\0';
23640 - *maj_dev = strtoul(tok, NULL, 16);
23643 - while (*buf_ptr && *buf_ptr++ != '\n');
23648 -#endif /* Need to parse /proc/self/maps. */
23650 #if defined(SEARCH_FOR_DATA_START)
23651 /* The I386 case can be handled without a search. The Alpha case */
23652 /* used to be handled differently as well, but the rules changed */
23653 @@ -311,11 +154,6 @@
23654 /* cover all versions. */
23657 - /* Some Linux distributions arrange to define __data_start. Some */
23658 - /* define data_start as a weak symbol. The latter is technically */
23659 - /* broken, since the user program may define data_start, in which */
23660 - /* case we lose. Nonetheless, we try both, prefering __data_start. */
23661 - /* We assume gcc-compatible pragmas. */
23662 # pragma weak __data_start
23663 extern int __data_start[];
23664 # pragma weak data_start
23665 @@ -331,16 +169,16 @@
23668 /* Try the easy approaches first: */
23669 - if ((ptr_t)__data_start != 0) {
23670 - GC_data_start = (ptr_t)(__data_start);
23671 + if (__data_start != 0) {
23672 + GC_data_start = (ptr_t)__data_start;
23675 - if ((ptr_t)data_start != 0) {
23676 - GC_data_start = (ptr_t)(data_start);
23677 + if (data_start != 0) {
23678 + GC_data_start = (ptr_t)data_start;
23681 # endif /* LINUX */
23682 - GC_data_start = GC_find_limit((ptr_t)(_end), FALSE);
23683 + GC_data_start = GC_find_limit((ptr_t)_end, FALSE);
23687 @@ -703,7 +541,7 @@
23691 -# if defined(SUNOS5SIGS) || defined(IRIX5) \
23692 +# if defined(SUNOS5SIGS) || defined(IRIX5) \
23693 || defined(OSF1) || defined(HURD)
23694 struct sigaction act;
23696 @@ -763,68 +601,67 @@
23698 void GC_reset_fault_handler()
23700 -# if defined(SUNOS5SIGS) || defined(IRIX5) \
23701 - || defined(OSF1) || defined(HURD)
23702 - (void) sigaction(SIGSEGV, &old_segv_act, 0);
23703 -# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
23704 - || defined(HPUX) || defined(HURD)
23705 - (void) sigaction(SIGBUS, &old_bus_act, 0);
23708 - (void) signal(SIGSEGV, old_segv_handler);
23710 - (void) signal(SIGBUS, old_bus_handler);
23713 +# if defined(SUNOS5SIGS) || defined(IRIX5) \
23714 + || defined(OSF1) || defined(HURD)
23715 + (void) sigaction(SIGSEGV, &old_segv_act, 0);
23716 +# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
23717 + || defined(HPUX) || defined(HURD)
23718 + (void) sigaction(SIGBUS, &old_bus_act, 0);
23721 + (void) signal(SIGSEGV, old_segv_handler);
23723 + (void) signal(SIGBUS, old_bus_handler);
23728 /* Return the first nonaddressible location > p (up) or */
23729 - /* the smallest location q s.t. [q,p) is addressable (!up). */
23730 - /* We assume that p (up) or p-1 (!up) is addressable. */
23731 + /* the smallest location q s.t. [q,p] is addressible (!up). */
23732 ptr_t GC_find_limit(p, up)
23736 - static VOLATILE ptr_t result;
23737 - /* Needs to be static, since otherwise it may not be */
23738 - /* preserved across the longjmp. Can safely be */
23739 - /* static since it's only called once, with the */
23740 - /* allocation lock held. */
23743 - GC_setup_temporary_fault_handler();
23744 - if (setjmp(GC_jmp_buf) == 0) {
23745 - result = (ptr_t)(((word)(p))
23746 - & ~(MIN_PAGE_SIZE-1));
23749 - result += MIN_PAGE_SIZE;
23751 - result -= MIN_PAGE_SIZE;
23753 - GC_noop1((word)(*result));
23756 - GC_reset_fault_handler();
23758 + static VOLATILE ptr_t result;
23759 + /* Needs to be static, since otherwise it may not be */
23760 + /* preserved across the longjmp. Can safely be */
23761 + /* static since it's only called once, with the */
23762 + /* allocation lock held. */
23765 + GC_setup_temporary_fault_handler();
23766 + if (setjmp(GC_jmp_buf) == 0) {
23767 + result = (ptr_t)(((word)(p))
23768 + & ~(MIN_PAGE_SIZE-1));
23771 result += MIN_PAGE_SIZE;
23775 + result -= MIN_PAGE_SIZE;
23777 + GC_noop1((word)(*result));
23780 + GC_reset_fault_handler();
23782 + result += MIN_PAGE_SIZE;
23788 -#if defined(ECOS) || defined(NOSYS)
23789 - ptr_t GC_get_stack_base()
23791 - return STACKBOTTOM;
23794 +# if defined(ECOS) || defined(NOSYS)
23795 +ptr_t GC_get_stack_base()
23797 + return STACKBOTTOM;
23802 #ifdef LINUX_STACKBOTTOM
23804 #include <sys/types.h>
23805 #include <sys/stat.h>
23806 -#include <ctype.h>
23808 # define STAT_SKIP 27 /* Number of fields preceding startstack */
23809 /* field in /proc/self/stat */
23810 @@ -833,33 +670,6 @@
23811 extern ptr_t __libc_stack_end;
23814 - /* Try to read the backing store base from /proc/self/maps. */
23815 - /* We look for the writable mapping with a 0 major device, */
23816 - /* which is as close to our frame as possible, but below it.*/
23817 - static word backing_store_base_from_maps(char *maps)
23819 - char prot_buf[5];
23820 - char *buf_ptr = maps;
23822 - unsigned int maj_dev;
23823 - word current_best = 0;
23827 - buf_ptr = GC_parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
23828 - if (buf_ptr == NULL) return current_best;
23829 - if (prot_buf[1] == 'w' && maj_dev == 0) {
23830 - if (end < (word)(&dummy) && start > current_best) current_best = start;
23833 - return current_best;
23836 - static word backing_store_base_from_proc(void)
23838 - return GC_apply_to_maps(backing_store_base_from_maps);
23841 # pragma weak __libc_ia64_register_backing_store_base
23842 extern ptr_t __libc_ia64_register_backing_store_base;
23844 @@ -873,15 +683,9 @@
23845 /* Hence we check for both nonzero address and value. */
23846 return __libc_ia64_register_backing_store_base;
23848 - word result = backing_store_base_from_proc();
23849 - if (0 == result) {
23850 - /* Use dumb heuristics. Works only for default configuration. */
23851 - result = (word)GC_stackbottom - BACKING_STORE_DISPLACEMENT;
23852 - result += BACKING_STORE_ALIGNMENT - 1;
23853 - result &= ~(BACKING_STORE_ALIGNMENT - 1);
23854 - /* Verify that it's at least readable. If not, we goofed. */
23855 - GC_noop1(*(word *)result);
23857 + word result = (word)GC_stackbottom - BACKING_STORE_DISPLACEMENT;
23858 + result += BACKING_STORE_ALIGNMENT - 1;
23859 + result &= ~(BACKING_STORE_ALIGNMENT - 1);
23860 return (ptr_t)result;
23863 @@ -893,8 +697,11 @@
23864 /* using direct I/O system calls in order to avoid calling malloc */
23865 /* in case REDIRECT_MALLOC is defined. */
23866 # define STAT_BUF_SIZE 4096
23867 -# define STAT_READ read
23868 - /* Should probably call the real read, if read is wrapped. */
23869 +# if defined(GC_USE_LD_WRAP)
23870 +# define STAT_READ __real_read
23872 +# define STAT_READ read
23874 char stat_buf[STAT_BUF_SIZE];
23877 @@ -903,16 +710,7 @@
23879 /* First try the easy way. This should work for glibc 2.2 */
23880 if (0 != &__libc_stack_end) {
23882 - /* Some versions of glibc set the address 16 bytes too */
23883 - /* low while the initialization code is running. */
23884 - if (((word)__libc_stack_end & 0xfff) + 0x10 < 0x1000) {
23885 - return __libc_stack_end + 0x10;
23886 - } /* Otherwise it's not safe to add 16 bytes and we fall */
23887 - /* back to using /proc. */
23889 - return __libc_stack_end;
23891 + return __libc_stack_end;
23893 f = open("/proc/self/stat", O_RDONLY);
23894 if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) {
23895 @@ -966,11 +764,8 @@
23897 ptr_t GC_get_stack_base()
23899 -# if defined(HEURISTIC1) || defined(HEURISTIC2) || \
23900 - defined(LINUX_STACKBOTTOM) || defined(FREEBSD_STACKBOTTOM)
23907 # define STACKBOTTOM_ALIGNMENT_M1 ((word)STACK_GRAN - 1)
23909 @@ -1019,6 +814,7 @@
23911 # endif /* STACKBOTTOM */
23913 +# endif /* NOSYS ECOS */
23915 # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS */
23917 @@ -1128,14 +924,15 @@
23918 /* Unfortunately, we have to handle win32s very differently from NT, */
23919 /* Since VirtualQuery has very different semantics. In particular, */
23920 /* under win32s a VirtualQuery call on an unmapped page returns an */
23921 - /* invalid result. Under NT, GC_register_data_segments is a noop and */
23922 + /* invalid result. Under GC_register_data_segments is a noop and */
23923 /* all real work is done by GC_register_dynamic_libraries. Under */
23924 /* win32s, we cannot find the data segments associated with dll's. */
23925 - /* We register the main data segment here. */
23926 + /* We rgister the main data segment here. */
23928 + GC_bool GC_no_win32_dlls = TRUE; /* GCC can't do SEH, so we can't use VirtualQuery */
23930 GC_bool GC_no_win32_dlls = FALSE;
23931 - /* This used to be set for gcc, to avoid dealing with */
23932 - /* the structured exception handling issues. But we now have */
23933 - /* assembly code to do that right. */
23936 void GC_init_win32()
23938 @@ -1167,102 +964,36 @@
23943 -# ifndef REDIRECT_MALLOC
23944 - /* We maintain a linked list of AllocationBase values that we know */
23945 - /* correspond to malloc heap sections. Currently this is only called */
23946 - /* during a GC. But there is some hope that for long running */
23947 - /* programs we will eventually see most heap sections. */
23949 - /* In the long run, it would be more reliable to occasionally walk */
23950 - /* the malloc heap with HeapWalk on the default heap. But that */
23951 - /* apparently works only for NT-based Windows. */
23953 - /* In the long run, a better data structure would also be nice ... */
23954 - struct GC_malloc_heap_list {
23955 - void * allocation_base;
23956 - struct GC_malloc_heap_list *next;
23957 - } *GC_malloc_heap_l = 0;
23959 - /* Is p the base of one of the malloc heap sections we already know */
23961 - GC_bool GC_is_malloc_heap_base(ptr_t p)
23963 - struct GC_malloc_heap_list *q = GC_malloc_heap_l;
23966 - if (q -> allocation_base == p) return TRUE;
23972 - void *GC_get_allocation_base(void *p)
23974 - MEMORY_BASIC_INFORMATION buf;
23975 - DWORD result = VirtualQuery(p, &buf, sizeof(buf));
23976 - if (result != sizeof(buf)) {
23977 - ABORT("Weird VirtualQuery result");
23979 - return buf.AllocationBase;
23982 - size_t GC_max_root_size = 100000; /* Appr. largest root size. */
23984 - void GC_add_current_malloc_heap()
23986 - struct GC_malloc_heap_list *new_l =
23987 - malloc(sizeof(struct GC_malloc_heap_list));
23988 - void * candidate = GC_get_allocation_base(new_l);
23990 - if (new_l == 0) return;
23991 - if (GC_is_malloc_heap_base(candidate)) {
23992 - /* Try a little harder to find malloc heap. */
23993 - size_t req_size = 10000;
23995 - void *p = malloc(req_size);
23996 - if (0 == p) { free(new_l); return; }
23997 - candidate = GC_get_allocation_base(p);
24000 - } while (GC_is_malloc_heap_base(candidate)
24001 - && req_size < GC_max_root_size/10 && req_size < 500000);
24002 - if (GC_is_malloc_heap_base(candidate)) {
24003 - free(new_l); return;
24007 - if (GC_print_stats)
24008 - GC_printf1("Found new system malloc AllocationBase at 0x%lx\n",
24011 - new_l -> allocation_base = candidate;
24012 - new_l -> next = GC_malloc_heap_l;
24013 - GC_malloc_heap_l = new_l;
24015 -# endif /* REDIRECT_MALLOC */
24017 /* Is p the start of either the malloc heap, or of one of our */
24018 /* heap sections? */
24019 GC_bool GC_is_heap_base (ptr_t p)
24023 + register unsigned i;
24025 # ifndef REDIRECT_MALLOC
24026 - static word last_gc_no = -1;
24027 + static ptr_t malloc_heap_pointer = 0;
24029 - if (last_gc_no != GC_gc_no) {
24030 - GC_add_current_malloc_heap();
24031 - last_gc_no = GC_gc_no;
24032 + if (0 == malloc_heap_pointer) {
24033 + MEMORY_BASIC_INFORMATION buf;
24034 + void *pTemp = malloc( 1 );
24035 + register DWORD result = VirtualQuery(pTemp, &buf, sizeof(buf));
24040 + if (result != sizeof(buf)) {
24041 + ABORT("Weird VirtualQuery result");
24043 + malloc_heap_pointer = (ptr_t)(buf.AllocationBase);
24045 - if (GC_root_size > GC_max_root_size) GC_max_root_size = GC_root_size;
24046 - if (GC_is_malloc_heap_base(p)) return TRUE;
24047 + if (p == malloc_heap_pointer) return(TRUE);
24049 for (i = 0; i < GC_n_heap_bases; i++) {
24050 - if (GC_heap_bases[i] == p) return TRUE;
24051 + if (GC_heap_bases[i] == p) return(TRUE);
24058 @@ -1312,7 +1043,7 @@
24060 # if (defined(SVR4) || defined(AUX) || defined(DGUX) \
24061 || (defined(LINUX) && defined(SPARC))) && !defined(PCR)
24062 -ptr_t GC_SysVGetDataStart(max_page_size, etext_addr)
24063 +char * GC_SysVGetDataStart(max_page_size, etext_addr)
24067 @@ -1338,43 +1069,10 @@
24068 /* string constants in the text segment, but after etext. */
24069 /* Use plan B. Note that we now know there is a gap between */
24070 /* text and data segments, so plan A bought us something. */
24071 - result = (char *)GC_find_limit((ptr_t)(DATAEND), FALSE);
24072 + result = (char *)GC_find_limit((ptr_t)(DATAEND) - MIN_PAGE_SIZE, FALSE);
24074 - return((ptr_t)result);
24078 -# if defined(FREEBSD) && defined(I386) && !defined(PCR)
24079 -/* Its unclear whether this should be identical to the above, or */
24080 -/* whether it should apply to non-X86 architectures. */
24081 -/* For now we don't assume that there is always an empty page after */
24082 -/* etext. But in some cases there actually seems to be slightly more. */
24083 -/* This also deals with holes between read-only data and writable data. */
24084 -ptr_t GC_FreeBSDGetDataStart(max_page_size, etext_addr)
24085 -int max_page_size;
24088 - word text_end = ((word)(etext_addr) + sizeof(word) - 1)
24089 - & ~(sizeof(word) - 1);
24090 - /* etext rounded to word boundary */
24091 - VOLATILE word next_page = (text_end + (word)max_page_size - 1)
24092 - & ~((word)max_page_size - 1);
24093 - VOLATILE ptr_t result = (ptr_t)text_end;
24094 - GC_setup_temporary_fault_handler();
24095 - if (setjmp(GC_jmp_buf) == 0) {
24096 - /* Try reading at the address. */
24097 - /* This should happen before there is another thread. */
24098 - for (; next_page < (word)(DATAEND); next_page += (word)max_page_size)
24099 - *(VOLATILE char *)next_page;
24100 - GC_reset_fault_handler();
24102 - GC_reset_fault_handler();
24103 - /* As above, we go to plan B */
24104 - result = GC_find_limit((ptr_t)(DATAEND), FALSE);
24107 + return((char *)result);
24113 @@ -1388,7 +1086,8 @@
24115 void GC_register_data_segments()
24117 -# if !defined(PCR) && !defined(SRC_M3) && !defined(MACOS)
24118 +# if !defined(PCR) && !defined(SRC_M3) && !defined(NEXT) && !defined(MACOS) \
24119 + && !defined(MACOSX)
24120 # if defined(REDIRECT_MALLOC) && defined(GC_SOLARIS_THREADS)
24121 /* As of Solaris 2.3, the Solaris threads implementation */
24122 /* allocates the data structure for the initial thread with */
24123 @@ -1405,6 +1104,9 @@
24127 +# if !defined(PCR) && (defined(NEXT) || defined(MACOSX))
24128 + GC_add_roots_inner(DATASTART, (char *) get_end(), FALSE);
24130 # if defined(MACOS)
24132 # if defined(THINK_C)
24133 @@ -1514,28 +1216,18 @@
24134 ptr_t GC_unix_get_mem(bytes)
24137 + static GC_bool initialized = FALSE;
24140 static ptr_t last_addr = HEAP_START;
24142 -# ifndef USE_MMAP_ANON
24143 - static GC_bool initialized = FALSE;
24146 - if (!initialized) {
24147 - fd = open("/dev/zero", O_RDONLY);
24148 - fcntl(fd, F_SETFD, FD_CLOEXEC);
24149 - initialized = TRUE;
24153 + if (!initialized) {
24154 + fd = open("/dev/zero", O_RDONLY);
24155 + initialized = TRUE;
24157 if (bytes & (GC_page_size -1)) ABORT("Bad GET_MEM arg");
24158 -# ifdef USE_MMAP_ANON
24159 - result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
24160 - GC_MMAP_FLAGS | MAP_ANON, -1, 0/* offset */);
24162 - result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
24163 - GC_MMAP_FLAGS, fd, 0/* offset */);
24165 + result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
24166 + GC_MMAP_FLAGS, fd, 0/* offset */);
24167 if (result == MAP_FAILED) return(0);
24168 last_addr = (ptr_t)result + bytes + GC_page_size - 1;
24169 last_addr = (ptr_t)((word)last_addr & ~(GC_page_size - 1));
24170 @@ -1630,15 +1322,7 @@
24171 result = (ptr_t) GlobalAlloc(0, bytes + HBLKSIZE);
24172 result = (ptr_t)(((word)result + HBLKSIZE) & ~(HBLKSIZE-1));
24174 - /* VirtualProtect only works on regions returned by a */
24175 - /* single VirtualAlloc call. Thus we allocate one */
24176 - /* extra page, which will prevent merging of blocks */
24177 - /* in separate regions, and eliminate any temptation */
24178 - /* to call VirtualProtect on a range spanning regions. */
24179 - /* This wastes a small amount of memory, and risks */
24180 - /* increased fragmentation. But better alternatives */
24181 - /* would require effort. */
24182 - result = (ptr_t) VirtualAlloc(NULL, bytes + 1,
24183 + result = (ptr_t) VirtualAlloc(NULL, bytes,
24184 MEM_COMMIT | MEM_RESERVE,
24185 PAGE_EXECUTE_READWRITE);
24187 @@ -1694,10 +1378,6 @@
24188 /* Reserve more pages */
24189 word res_bytes = (bytes + GC_sysinfo.dwAllocationGranularity-1)
24190 & ~(GC_sysinfo.dwAllocationGranularity-1);
24191 - /* If we ever support MPROTECT_VDB here, we will probably need to */
24192 - /* ensure that res_bytes is strictly > bytes, so that VirtualProtect */
24193 - /* never spans regions. It seems to be OK for a VirtualFree argument */
24194 - /* to span regions, so we should be OK for now. */
24195 result = (ptr_t) VirtualAlloc(NULL, res_bytes,
24196 MEM_RESERVE | MEM_TOP_DOWN,
24197 PAGE_EXECUTE_READWRITE);
24198 @@ -1828,7 +1508,6 @@
24201 if (-1 == zero_descr) zero_descr = open("/dev/zero", O_RDWR);
24202 - fcntl(zero_descr, F_SETFD, FD_CLOEXEC);
24203 if (0 == start_addr) return;
24204 result = mmap(start_addr, len, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
24205 MAP_FIXED | MAP_PRIVATE, zero_descr, 0);
24206 @@ -2015,6 +1694,7 @@
24207 * make sure that other system calls are similarly protected
24208 * or write only to the stack.
24211 GC_bool GC_dirty_maintained = FALSE;
24213 # ifdef DEFAULT_VDB
24214 @@ -2028,9 +1708,6 @@
24215 /* Initialize virtual dirty bit implementation. */
24216 void GC_dirty_init()
24219 - GC_printf0("Initializing DEFAULT_VDB...\n");
24221 GC_dirty_maintained = TRUE;
24224 @@ -2099,21 +1776,17 @@
24226 * This implementation maintains dirty bits itself by catching write
24227 * faults and keeping track of them. We assume nobody else catches
24228 - * SIGBUS or SIGSEGV. We assume no write faults occur in system calls.
24229 - * This means that clients must ensure that system calls don't write
24230 - * to the write-protected heap. Probably the best way to do this is to
24231 - * ensure that system calls write at most to POINTERFREE objects in the
24232 - * heap, and do even that only if we are on a platform on which those
24233 - * are not protected. Another alternative is to wrap system calls
24234 - * (see example for read below), but the current implementation holds
24235 - * a lock across blocking calls, making it problematic for multithreaded
24237 + * SIGBUS or SIGSEGV. We assume no write faults occur in system calls
24238 + * except as a result of a read system call. This means clients must
24239 + * either ensure that system calls do not touch the heap, or must
24240 + * provide their own wrappers analogous to the one for read.
24241 * We assume the page size is a multiple of HBLKSIZE.
24242 - * We prefer them to be the same. We avoid protecting POINTERFREE
24243 - * objects only if they are the same.
24244 + * This implementation is currently SunOS 4.X and IRIX 5.X specific, though we
24245 + * tried to use portable code where easily possible. It is known
24246 + * not to work under a number of other systems.
24249 -# if !defined(MSWIN32) && !defined(MSWINCE) && !defined(DARWIN)
24250 +# if !defined(MSWIN32) && !defined(MSWINCE)
24252 # include <sys/mman.h>
24253 # include <signal.h>
24254 @@ -2132,23 +1805,6 @@
24259 - /* Using vm_protect (mach syscall) over mprotect (BSD syscall) seems to
24260 - decrease the likelihood of some of the problems described below. */
24261 - #include <mach/vm_map.h>
24262 - extern mach_port_t GC_task_self;
24263 - #define PROTECT(addr,len) \
24264 - if(vm_protect(GC_task_self,(vm_address_t)(addr),(vm_size_t)(len), \
24265 - FALSE,VM_PROT_READ) != KERN_SUCCESS) { \
24266 - ABORT("vm_portect failed"); \
24268 - #define UNPROTECT(addr,len) \
24269 - if(vm_protect(GC_task_self,(vm_address_t)(addr),(vm_size_t)(len), \
24270 - FALSE,VM_PROT_READ|VM_PROT_WRITE) != KERN_SUCCESS) { \
24271 - ABORT("vm_portect failed"); \
24276 # include <signal.h>
24278 @@ -2166,22 +1822,20 @@
24279 &protect_junk)) { \
24280 ABORT("un-VirtualProtect failed"); \
24282 -# endif /* !DARWIN */
24283 -# endif /* MSWIN32 || MSWINCE || DARWIN */
24287 #if defined(SUNOS4) || defined(FREEBSD)
24288 typedef void (* SIG_PF)();
24289 -#endif /* SUNOS4 || FREEBSD */
24292 #if defined(SUNOS5SIGS) || defined(OSF1) || defined(LINUX) \
24294 + || defined(MACOSX) || defined(HURD)
24296 typedef void (* SIG_PF)(int);
24298 typedef void (* SIG_PF)();
24300 -#endif /* SUNOS5SIGS || OSF1 || LINUX || HURD */
24303 #if defined(MSWIN32)
24304 typedef LPTOP_LEVEL_EXCEPTION_FILTER SIG_PF;
24306 @@ -2195,8 +1849,7 @@
24308 #if defined(IRIX5) || defined(OSF1) || defined(HURD)
24309 typedef void (* REAL_SIG_PF)(int, int, struct sigcontext *);
24310 -#endif /* IRIX5 || OSF1 || HURD */
24313 #if defined(SUNOS5SIGS)
24315 # define SIGINFO __siginfo
24316 @@ -2208,14 +1861,13 @@
24318 typedef void (* REAL_SIG_PF)();
24320 -#endif /* SUNOS5SIGS */
24324 # if __GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2
24325 typedef struct sigcontext s_c;
24326 # else /* glibc < 2.2 */
24327 # include <linux/version.h>
24328 -# if (LINUX_VERSION_CODE >= 0x20100) && !defined(M68K) || defined(ALPHA) || defined(ARM32)
24329 +# if (LINUX_VERSION_CODE >= 0x20100) && !defined(M68K) || defined(ALPHA)
24330 typedef struct sigcontext s_c;
24332 typedef struct sigcontext_struct s_c;
24333 @@ -2243,14 +1895,139 @@
24334 return (char *)faultaddr;
24336 # endif /* !ALPHA */
24337 -# endif /* LINUX */
24340 +# if defined(MACOSX) /* Should also test for PowerPC? */
24341 + typedef void (* REAL_SIG_PF)(int, int, struct sigcontext *);
24343 +/* Decodes the machine instruction which was responsible for the sending of the
24344 + SIGBUS signal. Sadly this is the only way to find the faulting address because
24345 + the signal handler doesn't get it directly from the kernel (although it is
24346 + available on the Mach level, but droppped by the BSD personality before it
24347 + calls our signal handler...)
24348 + This code should be able to deal correctly with all PPCs starting from the
24349 + 601 up to and including the G4s (including Velocity Engine). */
24350 +#define EXTRACT_OP1(iw) (((iw) & 0xFC000000) >> 26)
24351 +#define EXTRACT_OP2(iw) (((iw) & 0x000007FE) >> 1)
24352 +#define EXTRACT_REGA(iw) (((iw) & 0x001F0000) >> 16)
24353 +#define EXTRACT_REGB(iw) (((iw) & 0x03E00000) >> 21)
24354 +#define EXTRACT_REGC(iw) (((iw) & 0x0000F800) >> 11)
24355 +#define EXTRACT_DISP(iw) ((short *) &(iw))[1]
24357 +static char *get_fault_addr(struct sigcontext *scp)
24359 + unsigned int instr = *((unsigned int *) scp->sc_ir);
24360 + unsigned int * regs = &((unsigned int *) scp->sc_regs)[2];
24361 + int disp = 0, tmp;
24362 + unsigned int baseA = 0, baseB = 0;
24363 + unsigned int addr, alignmask = 0xFFFFFFFF;
24365 +#ifdef GC_DEBUG_DECODER
24366 + GC_err_printf1("Instruction: 0x%lx\n", instr);
24367 + GC_err_printf1("Opcode 1: d\n", (int)EXTRACT_OP1(instr));
24369 + switch(EXTRACT_OP1(instr)) {
24370 + case 38: /* stb */
24371 + case 39: /* stbu */
24372 + case 54: /* stfd */
24373 + case 55: /* stfdu */
24374 + case 52: /* stfs */
24375 + case 53: /* stfsu */
24376 + case 44: /* sth */
24377 + case 45: /* sthu */
24378 + case 47: /* stmw */
24379 + case 36: /* stw */
24380 + case 37: /* stwu */
24381 + tmp = EXTRACT_REGA(instr);
24383 + baseA = regs[tmp];
24384 + disp = EXTRACT_DISP(instr);
24387 +#ifdef GC_DEBUG_DECODER
24388 + GC_err_printf1("Opcode 2: %d\n", (int)EXTRACT_OP2(instr));
24390 + switch(EXTRACT_OP2(instr)) {
24391 + case 86: /* dcbf */
24392 + case 54: /* dcbst */
24393 + case 1014: /* dcbz */
24394 + case 247: /* stbux */
24395 + case 215: /* stbx */
24396 + case 759: /* stfdux */
24397 + case 727: /* stfdx */
24398 + case 983: /* stfiwx */
24399 + case 695: /* stfsux */
24400 + case 663: /* stfsx */
24401 + case 918: /* sthbrx */
24402 + case 439: /* sthux */
24403 + case 407: /* sthx */
24404 + case 661: /* stswx */
24405 + case 662: /* stwbrx */
24406 + case 150: /* stwcx. */
24407 + case 183: /* stwux */
24408 + case 151: /* stwx */
24409 + case 135: /* stvebx */
24410 + case 167: /* stvehx */
24411 + case 199: /* stvewx */
24412 + case 231: /* stvx */
24413 + case 487: /* stvxl */
24414 + tmp = EXTRACT_REGA(instr);
24416 + baseA = regs[tmp];
24417 + baseB = regs[EXTRACT_REGC(instr)];
24418 + /* determine Altivec alignment mask */
24419 + switch(EXTRACT_OP2(instr)) {
24420 + case 167: /* stvehx */
24421 + alignmask = 0xFFFFFFFE;
24423 + case 199: /* stvewx */
24424 + alignmask = 0xFFFFFFFC;
24426 + case 231: /* stvx */
24427 + alignmask = 0xFFFFFFF0;
24429 + case 487: /* stvxl */
24430 + alignmask = 0xFFFFFFF0;
24434 + case 725: /* stswi */
24435 + tmp = EXTRACT_REGA(instr);
24437 + baseA = regs[tmp];
24439 + default: /* ignore instruction */
24440 +#ifdef GC_DEBUG_DECODER
24441 + GC_err_printf("Ignored by inner handler\n");
24447 + default: /* ignore instruction */
24448 +#ifdef GC_DEBUG_DECODER
24449 + GC_err_printf("Ignored by main handler\n");
24455 + addr = (baseA + baseB) + disp;
24456 + addr &= alignmask;
24457 +#ifdef GC_DEBUG_DECODER
24458 + GC_err_printf1("BaseA: %d\n", baseA);
24459 + GC_err_printf1("BaseB: %d\n", baseB);
24460 + GC_err_printf1("Disp: %d\n", disp);
24461 + GC_err_printf1("Address: %d\n", addr);
24463 + return (char *)addr;
24465 +#endif /* MACOSX */
24468 SIG_PF GC_old_bus_handler;
24469 SIG_PF GC_old_segv_handler; /* Also old MSWIN32 ACCESS_VIOLATION filter */
24470 -#endif /* !DARWIN */
24472 -#if defined(THREADS)
24474 /* We need to lock around the bitmap update in the write fault handler */
24475 /* in order to avoid the risk of losing a bit. We do this with a */
24476 /* test-and-set spin lock if we know how to do that. Otherwise we */
24477 @@ -2299,7 +2076,6 @@
24478 #endif /* !THREADS */
24481 -#if !defined(DARWIN)
24482 # if defined (SUNOS4) || defined(FREEBSD)
24483 void GC_write_fault_handler(sig, code, scp, addr)
24485 @@ -2315,8 +2091,7 @@
24486 # define SIG_OK (sig == SIGBUS)
24487 # define CODE_OK (code == BUS_PAGE_FAULT)
24489 -# endif /* SUNOS4 || FREEBSD */
24492 # if defined(IRIX5) || defined(OSF1) || defined(HURD)
24493 # include <errno.h>
24494 void GC_write_fault_handler(int sig, int code, struct sigcontext *scp)
24495 @@ -2332,8 +2107,7 @@
24496 # define SIG_OK (sig == SIGBUS || sig == SIGSEGV)
24497 # define CODE_OK TRUE
24499 -# endif /* IRIX5 || OSF1 || HURD */
24502 # if defined(LINUX)
24503 # if defined(ALPHA) || defined(M68K)
24504 void GC_write_fault_handler(int sig, int code, s_c * sc)
24505 @@ -2341,11 +2115,7 @@
24506 # if defined(IA64) || defined(HP_PA)
24507 void GC_write_fault_handler(int sig, siginfo_t * si, s_c * scp)
24509 -# if defined(ARM32)
24510 - void GC_write_fault_handler(int sig, int a2, int a3, int a4, s_c sc)
24512 - void GC_write_fault_handler(int sig, s_c sc)
24514 + void GC_write_fault_handler(int sig, s_c sc)
24517 # define SIG_OK (sig == SIGSEGV)
24518 @@ -2353,8 +2123,7 @@
24519 /* Empirically c.trapno == 14, on IA32, but is that useful? */
24520 /* Should probably consider alignment issues on other */
24521 /* architectures. */
24522 -# endif /* LINUX */
24525 # if defined(SUNOS5SIGS)
24527 void GC_write_fault_handler(int sig, struct SIGINFO *scp, void * context)
24528 @@ -2375,7 +2144,13 @@
24529 # define SIG_OK (sig == SIGSEGV)
24530 # define CODE_OK (scp -> si_code == SEGV_ACCERR)
24532 -# endif /* SUNOS5SIGS */
24535 +# if defined(MACOSX)
24536 + void GC_write_fault_handler(int sig, int code, struct sigcontext *scp)
24537 +# define SIG_OK (sig == SIGBUS)
24538 +# define CODE_OK (code == 0 /* experimentally determined */)
24541 # if defined(MSWIN32) || defined(MSWINCE)
24542 LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info)
24543 @@ -2383,7 +2158,7 @@
24544 STATUS_ACCESS_VIOLATION)
24545 # define CODE_OK (exc_info -> ExceptionRecord -> ExceptionInformation[0] == 1)
24547 -# endif /* MSWIN32 || MSWINCE */
24550 register unsigned i;
24552 @@ -2443,17 +2218,16 @@
24553 # if defined(POWERPC)
24554 char * addr = (char *) (sc.regs->dar);
24556 -# if defined(ARM32)
24557 - char * addr = (char *)sc.fault_address;
24559 - --> architecture not supported
24561 + --> architecture not supported
24568 +# if defined(MACOSX)
24569 + char * addr = get_fault_addr(scp);
24571 # if defined(MSWIN32) || defined(MSWINCE)
24572 char * addr = (char *) (exc_info -> ExceptionRecord
24573 -> ExceptionInformation[1]);
24574 @@ -2517,6 +2291,9 @@
24575 (*(REAL_SIG_PF)old_handler) (sig, code, scp);
24579 + (*(REAL_SIG_PF)old_handler) (sig, code, scp);
24582 return((*old_handler)(exc_info));
24584 @@ -2558,11 +2335,10 @@
24585 ABORT("Unexpected bus error or segmentation fault");
24588 -#endif /* !DARWIN */
24591 * We hold the allocation lock. We expect block h to be written
24592 - * shortly. Ensure that all pages containing any part of the n hblks
24593 + * shortly. Ensure that all pages cvontaining any part of the n hblks
24594 * starting at h are no longer protected. If is_ptrfree is false,
24595 * also ensure that they will subsequently appear to be dirty.
24597 @@ -2591,7 +2367,6 @@
24598 UNPROTECT(h_trunc, (ptr_t)h_end - (ptr_t)h_trunc);
24601 -#if !defined(DARWIN)
24602 void GC_dirty_init()
24604 # if defined(SUNOS5SIGS) || defined(IRIX5) || defined(LINUX) || \
24605 @@ -2614,6 +2389,13 @@
24606 (void)sigaddset(&act.sa_mask, SIG_SUSPEND);
24607 # endif /* SIG_SUSPEND */
24609 +# if defined(MACOSX)
24610 + struct sigaction act, oldact;
24612 + act.sa_flags = SA_RESTART;
24613 + act.sa_handler = GC_write_fault_handler;
24614 + sigemptyset(&act.sa_mask);
24617 GC_printf0("Inititalizing mprotect virtual dirty bit implementation\n");
24619 @@ -2653,12 +2435,9 @@
24620 sigaction(SIGSEGV, 0, &oldact);
24621 sigaction(SIGSEGV, &act, 0);
24624 - int res = sigaction(SIGSEGV, &act, &oldact);
24625 - if (res != 0) ABORT("Sigaction failed");
24627 + sigaction(SIGSEGV, &act, &oldact);
24629 -# if defined(_sigargs) || defined(HURD) || !defined(SA_SIGINFO)
24630 +# if defined(_sigargs) || defined(HURD)
24631 /* This is Irix 5.x, not 6.x. Irix 5.x does not have */
24632 /* sa_sigaction. */
24633 GC_old_segv_handler = oldact.sa_handler;
24634 @@ -2679,7 +2458,7 @@
24638 -# if defined(HPUX) || defined(LINUX) || defined(HURD)
24639 +# if defined(MACOSX) || defined(HPUX) || defined(LINUX) || defined(HURD)
24640 sigaction(SIGBUS, &act, &oldact);
24641 GC_old_bus_handler = oldact.sa_handler;
24642 if (GC_old_bus_handler == SIG_IGN) {
24643 @@ -2691,7 +2470,7 @@
24644 GC_err_printf0("Replaced other SIGBUS handler\n");
24647 -# endif /* HPUX || LINUX || HURD */
24648 +# endif /* MACOS || HPUX || LINUX */
24649 # if defined(MSWIN32)
24650 GC_old_segv_handler = SetUnhandledExceptionFilter(GC_write_fault_handler);
24651 if (GC_old_segv_handler != NULL) {
24652 @@ -2703,7 +2482,6 @@
24656 -#endif /* !DARWIN */
24658 int GC_incremental_protection_needs()
24660 @@ -2850,23 +2628,15 @@
24661 ((ptr_t)end_block - (ptr_t)start_block) + HBLKSIZE);
24666 -/* We no longer wrap read by default, since that was causing too many */
24667 -/* problems. It is preferred that the client instead avoids writing */
24668 -/* to the write-protected heap with a system call. */
24669 -/* This still serves as sample code if you do want to wrap system calls.*/
24671 -#if !defined(MSWIN32) && !defined(MSWINCE) && !defined(GC_USE_LD_WRAP)
24672 -/* Replacement for UNIX system call. */
24673 -/* Other calls that write to the heap should be handled similarly. */
24674 -/* Note that this doesn't work well for blocking reads: It will hold */
24675 -/* the allocation lock for the entire duration of the call. Multithreaded */
24676 -/* clients should really ensure that it won't block, either by setting */
24677 -/* the descriptor nonblocking, or by calling select or poll first, to */
24678 -/* make sure that input is available. */
24679 -/* Another, preferred alternative is to ensure that system calls never */
24680 -/* write to the protected heap (see above). */
24681 +#if !defined(MSWIN32) && !defined(MSWINCE) && !defined(THREADS) \
24682 + && !defined(GC_USE_LD_WRAP)
24683 +/* Replacement for UNIX system call. */
24684 +/* Other calls that write to the heap should be handled similarly. */
24685 +/* Note that this doesn't work well for blocking reads: It will hold */
24686 +/* tha allocation lock for the entur duration of the call. Multithreaded */
24687 +/* clients should really ensure that it won't block, either by setting */
24688 +/* the descriptor nonblocking, or by calling select or poll first, to */
24689 +/* make sure that input is available. */
24690 # if defined(__STDC__) && !defined(SUNOS4)
24691 # include <unistd.h>
24692 # include <sys/uio.h>
24693 @@ -2936,8 +2706,6 @@
24694 /* actually calls. */
24700 GC_bool GC_page_was_ever_dirty(h)
24702 @@ -2953,6 +2721,13 @@
24706 +# else /* !MPROTECT_VDB */
24708 +# ifdef GC_USE_LD_WRAP
24709 + ssize_t __wrap_read(int fd, void *buf, size_t nbyte)
24710 + { return __real_read(fd, buf, nbyte); }
24713 # endif /* MPROTECT_VDB */
24716 @@ -3031,7 +2806,6 @@
24718 GC_proc_fd = syscall(SYS_ioctl, fd, PIOCOPENPD, 0);
24720 - syscall(SYS_fcntl, GC_proc_fd, F_SETFD, FD_CLOEXEC);
24721 if (GC_proc_fd < 0) {
24722 ABORT("/proc ioctl failed");
24724 @@ -3271,553 +3045,6 @@
24726 # endif /* PCR_VDB */
24728 -#if defined(MPROTECT_VDB) && defined(DARWIN)
24729 -/* The following sources were used as a *reference* for this exception handling
24731 - 1. Apple's mach/xnu documentation
24732 - 2. Timothy J. Wood's "Mach Exception Handlers 101" post to the
24733 - omnigroup's macosx-dev list.
24734 - www.omnigroup.com/mailman/archive/macosx-dev/2000-June/002030.html
24735 - 3. macosx-nat.c from Apple's GDB source code.
24738 -/* There seem to be numerous problems with darwin's mach exception handling.
24739 - I'm pretty sure they are not problems in my code. Search for
24740 - BROKEN_EXCEPTION_HANDLING for more information. */
24741 -#define BROKEN_EXCEPTION_HANDLING
24743 -#include <mach/mach.h>
24744 -#include <mach/mach_error.h>
24745 -#include <mach/thread_status.h>
24746 -#include <mach/exception.h>
24747 -#include <mach/task.h>
24748 -#include <pthread.h>
24750 -/* These are not defined in any header, although they are documented */
24751 -extern boolean_t exc_server(mach_msg_header_t *,mach_msg_header_t *);
24752 -extern kern_return_t exception_raise(
24753 - mach_port_t,mach_port_t,mach_port_t,
24754 - exception_type_t,exception_data_t,mach_msg_type_number_t);
24755 -extern kern_return_t exception_raise_state(
24756 - mach_port_t,mach_port_t,mach_port_t,
24757 - exception_type_t,exception_data_t,mach_msg_type_number_t,
24758 - thread_state_flavor_t*,thread_state_t,mach_msg_type_number_t,
24759 - thread_state_t,mach_msg_type_number_t*);
24760 -extern kern_return_t exception_raise_state_identity(
24761 - mach_port_t,mach_port_t,mach_port_t,
24762 - exception_type_t,exception_data_t,mach_msg_type_number_t,
24763 - thread_state_flavor_t*,thread_state_t,mach_msg_type_number_t,
24764 - thread_state_t,mach_msg_type_number_t*);
24767 -#define MAX_EXCEPTION_PORTS 16
24769 -static mach_port_t GC_task_self;
24772 - mach_msg_type_number_t count;
24773 - exception_mask_t masks[MAX_EXCEPTION_PORTS];
24774 - exception_handler_t ports[MAX_EXCEPTION_PORTS];
24775 - exception_behavior_t behaviors[MAX_EXCEPTION_PORTS];
24776 - thread_state_flavor_t flavors[MAX_EXCEPTION_PORTS];
24777 -} GC_old_exc_ports;
24780 - mach_port_t exception;
24781 -#if defined(THREADS)
24782 - mach_port_t reply;
24787 - mach_msg_header_t head;
24791 - GC_MP_NORMAL, GC_MP_DISCARDING, GC_MP_STOPPED
24792 -} GC_mprotect_state_t;
24794 -/* FIXME: 1 and 2 seem to be safe to use in the msgh_id field,
24795 - but it isn't documented. Use the source and see if they
24798 -#define ID_RESUME 2
24800 -/* These values are only used on the reply port */
24803 -#if defined(THREADS)
24805 -GC_mprotect_state_t GC_mprotect_state;
24807 -/* The following should ONLY be called when the world is stopped */
24808 -static void GC_mprotect_thread_notify(mach_msg_id_t id) {
24811 - mach_msg_trailer_t trailer;
24813 - mach_msg_return_t r;
24814 - /* remote, local */
24815 - buf.msg.head.msgh_bits =
24816 - MACH_MSGH_BITS(MACH_MSG_TYPE_MAKE_SEND,0);
24817 - buf.msg.head.msgh_size = sizeof(buf.msg);
24818 - buf.msg.head.msgh_remote_port = GC_ports.exception;
24819 - buf.msg.head.msgh_local_port = MACH_PORT_NULL;
24820 - buf.msg.head.msgh_id = id;
24824 - MACH_SEND_MSG|MACH_RCV_MSG|MACH_RCV_LARGE,
24828 - MACH_MSG_TIMEOUT_NONE,
24830 - if(r != MACH_MSG_SUCCESS)
24831 - ABORT("mach_msg failed in GC_mprotect_thread_notify");
24832 - if(buf.msg.head.msgh_id != ID_ACK)
24833 - ABORT("invalid ack in GC_mprotect_thread_notify");
24836 -/* Should only be called by the mprotect thread */
24837 -static void GC_mprotect_thread_reply() {
24839 - mach_msg_return_t r;
24840 - /* remote, local */
24841 - msg.head.msgh_bits =
24842 - MACH_MSGH_BITS(MACH_MSG_TYPE_MAKE_SEND,0);
24843 - msg.head.msgh_size = sizeof(msg);
24844 - msg.head.msgh_remote_port = GC_ports.reply;
24845 - msg.head.msgh_local_port = MACH_PORT_NULL;
24846 - msg.head.msgh_id = ID_ACK;
24854 - MACH_MSG_TIMEOUT_NONE,
24856 - if(r != MACH_MSG_SUCCESS)
24857 - ABORT("mach_msg failed in GC_mprotect_thread_reply");
24860 -void GC_mprotect_stop() {
24861 - GC_mprotect_thread_notify(ID_STOP);
24863 -void GC_mprotect_resume() {
24864 - GC_mprotect_thread_notify(ID_RESUME);
24867 -#else /* !THREADS */
24868 -/* The compiler should optimize away any GC_mprotect_state computations */
24869 -#define GC_mprotect_state GC_MP_NORMAL
24872 -static void *GC_mprotect_thread(void *arg) {
24873 - mach_msg_return_t r;
24874 - /* These two structures contain some private kernel data. We don't need to
24875 - access any of it so we don't bother defining a proper struct. The
24876 - correct definitions are in the xnu source code. */
24878 - mach_msg_header_t head;
24882 - mach_msg_header_t head;
24883 - mach_msg_body_t msgh_body;
24887 - mach_msg_id_t id;
24892 - MACH_RCV_MSG|MACH_RCV_LARGE|
24893 - (GC_mprotect_state == GC_MP_DISCARDING ? MACH_RCV_TIMEOUT : 0),
24896 - GC_ports.exception,
24897 - GC_mprotect_state == GC_MP_DISCARDING ? 0 : MACH_MSG_TIMEOUT_NONE,
24900 - id = r == MACH_MSG_SUCCESS ? msg.head.msgh_id : -1;
24902 -#if defined(THREADS)
24903 - if(GC_mprotect_state == GC_MP_DISCARDING) {
24904 - if(r == MACH_RCV_TIMED_OUT) {
24905 - GC_mprotect_state = GC_MP_STOPPED;
24906 - GC_mprotect_thread_reply();
24909 - if(r == MACH_MSG_SUCCESS && (id == ID_STOP || id == ID_RESUME))
24910 - ABORT("out of order mprotect thread request");
24914 - if(r != MACH_MSG_SUCCESS) {
24915 - GC_err_printf2("mach_msg failed with %d %s\n",
24916 - (int)r,mach_error_string(r));
24917 - ABORT("mach_msg failed");
24921 -#if defined(THREADS)
24923 - if(GC_mprotect_state != GC_MP_NORMAL)
24924 - ABORT("Called mprotect_stop when state wasn't normal");
24925 - GC_mprotect_state = GC_MP_DISCARDING;
24928 - if(GC_mprotect_state != GC_MP_STOPPED)
24929 - ABORT("Called mprotect_resume when state wasn't stopped");
24930 - GC_mprotect_state = GC_MP_NORMAL;
24931 - GC_mprotect_thread_reply();
24933 -#endif /* THREADS */
24935 - /* Handle the message (calls catch_exception_raise) */
24936 - if(!exc_server(&msg.head,&reply.head))
24937 - ABORT("exc_server failed");
24938 - /* Send the reply */
24942 - reply.head.msgh_size,
24945 - MACH_MSG_TIMEOUT_NONE,
24947 - if(r != MACH_MSG_SUCCESS) {
24948 - /* This will fail if the thread dies, but the thread shouldn't
24950 - #ifdef BROKEN_EXCEPTION_HANDLING
24952 - "mach_msg failed with %d %s while sending exc reply\n",
24953 - (int)r,mach_error_string(r));
24955 - ABORT("mach_msg failed while sending exception reply");
24960 - /* NOT REACHED */
24964 -/* All this SIGBUS code shouldn't be necessary. All protection faults should
24965 - be going throught the mach exception handler. However, it seems a SIGBUS is
24966 - occasionally sent for some unknown reason. Even more odd, it seems to be
24967 - meaningless and safe to ignore. */
24968 -#ifdef BROKEN_EXCEPTION_HANDLING
24970 -typedef void (* SIG_PF)();
24971 -static SIG_PF GC_old_bus_handler;
24973 -/* Updates to this aren't atomic, but the SIGBUSs seem pretty rare.
24974 - Even if this doesn't get updated property, it isn't really a problem */
24975 -static int GC_sigbus_count;
24977 -static void GC_darwin_sigbus(int num,siginfo_t *sip,void *context) {
24978 - if(num != SIGBUS) ABORT("Got a non-sigbus signal in the sigbus handler");
24980 - /* Ugh... some seem safe to ignore, but too many in a row probably means
24981 - trouble. GC_sigbus_count is reset for each mach exception that is
24983 - if(GC_sigbus_count >= 8) {
24984 - ABORT("Got more than 8 SIGBUSs in a row!");
24986 - GC_sigbus_count++;
24987 - GC_err_printf0("GC: WARNING: Ignoring SIGBUS.\n");
24990 -#endif /* BROKEN_EXCEPTION_HANDLING */
24992 -void GC_dirty_init() {
24995 - pthread_t thread;
24996 - pthread_attr_t attr;
24997 - exception_mask_t mask;
24999 -# ifdef PRINTSTATS
25000 - GC_printf0("Inititalizing mach/darwin mprotect virtual dirty bit "
25001 - "implementation\n");
25003 -# ifdef BROKEN_EXCEPTION_HANDLING
25004 - GC_err_printf0("GC: WARNING: Enabling workarounds for various darwin "
25005 - "exception handling bugs.\n");
25007 - GC_dirty_maintained = TRUE;
25008 - if (GC_page_size % HBLKSIZE != 0) {
25009 - GC_err_printf0("Page size not multiple of HBLKSIZE\n");
25010 - ABORT("Page size not multiple of HBLKSIZE");
25013 - GC_task_self = me = mach_task_self();
25015 - r = mach_port_allocate(me,MACH_PORT_RIGHT_RECEIVE,&GC_ports.exception);
25016 - if(r != KERN_SUCCESS) ABORT("mach_port_allocate failed (exception port)");
25018 - r = mach_port_insert_right(me,GC_ports.exception,GC_ports.exception,
25019 - MACH_MSG_TYPE_MAKE_SEND);
25020 - if(r != KERN_SUCCESS)
25021 - ABORT("mach_port_insert_right failed (exception port)");
25023 - #if defined(THREADS)
25024 - r = mach_port_allocate(me,MACH_PORT_RIGHT_RECEIVE,&GC_ports.reply);
25025 - if(r != KERN_SUCCESS) ABORT("mach_port_allocate failed (reply port)");
25028 - /* The exceptions we want to catch */
25029 - mask = EXC_MASK_BAD_ACCESS;
25031 - r = task_get_exception_ports(
25034 - GC_old_exc_ports.masks,
25035 - &GC_old_exc_ports.count,
25036 - GC_old_exc_ports.ports,
25037 - GC_old_exc_ports.behaviors,
25038 - GC_old_exc_ports.flavors
25040 - if(r != KERN_SUCCESS) ABORT("task_get_exception_ports failed");
25042 - r = task_set_exception_ports(
25045 - GC_ports.exception,
25046 - EXCEPTION_DEFAULT,
25047 - MACHINE_THREAD_STATE
25049 - if(r != KERN_SUCCESS) ABORT("task_set_exception_ports failed");
25051 - if(pthread_attr_init(&attr) != 0) ABORT("pthread_attr_init failed");
25052 - if(pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED) != 0)
25053 - ABORT("pthread_attr_setdetachedstate failed");
25055 -# undef pthread_create
25056 - /* This will call the real pthread function, not our wrapper */
25057 - if(pthread_create(&thread,&attr,GC_mprotect_thread,NULL) != 0)
25058 - ABORT("pthread_create failed");
25059 - pthread_attr_destroy(&attr);
25061 - /* Setup the sigbus handler for ignoring the meaningless SIGBUSs */
25062 - #ifdef BROKEN_EXCEPTION_HANDLING
25064 - struct sigaction sa, oldsa;
25065 - sa.sa_handler = (SIG_PF)GC_darwin_sigbus;
25066 - sigemptyset(&sa.sa_mask);
25067 - sa.sa_flags = SA_RESTART|SA_SIGINFO;
25068 - if(sigaction(SIGBUS,&sa,&oldsa) < 0) ABORT("sigaction");
25069 - GC_old_bus_handler = (SIG_PF)oldsa.sa_handler;
25070 - if (GC_old_bus_handler != SIG_DFL) {
25071 -# ifdef PRINTSTATS
25072 - GC_err_printf0("Replaced other SIGBUS handler\n");
25076 - #endif /* BROKEN_EXCEPTION_HANDLING */
25079 -/* The source code for Apple's GDB was used as a reference for the exception
25080 - forwarding code. This code is similar to be GDB code only because there is
25081 - only one way to do it. */
25082 -static kern_return_t GC_forward_exception(
25083 - mach_port_t thread,
25084 - mach_port_t task,
25085 - exception_type_t exception,
25086 - exception_data_t data,
25087 - mach_msg_type_number_t data_count
25091 - mach_port_t port;
25092 - exception_behavior_t behavior;
25093 - thread_state_flavor_t flavor;
25095 - thread_state_data_t thread_state;
25096 - mach_msg_type_number_t thread_state_count = THREAD_STATE_MAX;
25098 - for(i=0;i<GC_old_exc_ports.count;i++)
25099 - if(GC_old_exc_ports.masks[i] & (1 << exception))
25101 - if(i==GC_old_exc_ports.count) ABORT("No handler for exception!");
25103 - port = GC_old_exc_ports.ports[i];
25104 - behavior = GC_old_exc_ports.behaviors[i];
25105 - flavor = GC_old_exc_ports.flavors[i];
25107 - if(behavior != EXCEPTION_DEFAULT) {
25108 - r = thread_get_state(thread,flavor,thread_state,&thread_state_count);
25109 - if(r != KERN_SUCCESS)
25110 - ABORT("thread_get_state failed in forward_exception");
25113 - switch(behavior) {
25114 - case EXCEPTION_DEFAULT:
25115 - r = exception_raise(port,thread,task,exception,data,data_count);
25117 - case EXCEPTION_STATE:
25118 - r = exception_raise_state(port,thread,task,exception,data,
25119 - data_count,&flavor,thread_state,thread_state_count,
25120 - thread_state,&thread_state_count);
25122 - case EXCEPTION_STATE_IDENTITY:
25123 - r = exception_raise_state_identity(port,thread,task,exception,data,
25124 - data_count,&flavor,thread_state,thread_state_count,
25125 - thread_state,&thread_state_count);
25128 - r = KERN_FAILURE; /* make gcc happy */
25129 - ABORT("forward_exception: unknown behavior");
25133 - if(behavior != EXCEPTION_DEFAULT) {
25134 - r = thread_set_state(thread,flavor,thread_state,thread_state_count);
25135 - if(r != KERN_SUCCESS)
25136 - ABORT("thread_set_state failed in forward_exception");
25142 -#define FWD() GC_forward_exception(thread,task,exception,code,code_count)
25144 -/* This violates the namespace rules but there isn't anything that can be done
25145 - about it. The exception handling stuff is hard coded to call this */
25147 -catch_exception_raise(
25148 - mach_port_t exception_port,mach_port_t thread,mach_port_t task,
25149 - exception_type_t exception,exception_data_t code,
25150 - mach_msg_type_number_t code_count
25157 - thread_state_flavor_t flavor = PPC_EXCEPTION_STATE;
25158 - mach_msg_type_number_t exc_state_count = PPC_EXCEPTION_STATE_COUNT;
25159 - ppc_exception_state_t exc_state;
25161 -# error FIXME for non-ppc darwin
25165 - if(exception != EXC_BAD_ACCESS || code[0] != KERN_PROTECTION_FAILURE) {
25166 - #ifdef DEBUG_EXCEPTION_HANDLING
25167 - /* We aren't interested, pass it on to the old handler */
25168 - GC_printf3("Exception: 0x%x Code: 0x%x 0x%x in catch....\n",
25170 - code_count > 0 ? code[0] : -1,
25171 - code_count > 1 ? code[1] : -1);
25176 - r = thread_get_state(thread,flavor,
25177 - (natural_t*)&exc_state,&exc_state_count);
25178 - if(r != KERN_SUCCESS) {
25179 - /* The thread is supposed to be suspended while the exception handler
25180 - is called. This shouldn't fail. */
25181 - #ifdef BROKEN_EXCEPTION_HANDLING
25182 - GC_err_printf0("thread_get_state failed in "
25183 - "catch_exception_raise\n");
25184 - return KERN_SUCCESS;
25186 - ABORT("thread_get_state failed in catch_exception_raise");
25190 - /* This is the address that caused the fault */
25191 - addr = (char*) exc_state.dar;
25193 - if((HDR(addr)) == 0) {
25194 - /* Ugh... just like the SIGBUS problem above, it seems we get a bogus
25195 - KERN_PROTECTION_FAILURE every once and a while. We wait till we get
25196 - a bunch in a row before doing anything about it. If a "real" fault
25197 - ever occurres it'll just keep faulting over and over and we'll hit
25198 - the limit pretty quickly. */
25199 - #ifdef BROKEN_EXCEPTION_HANDLING
25200 - static char *last_fault;
25201 - static int last_fault_count;
25203 - if(addr != last_fault) {
25204 - last_fault = addr;
25205 - last_fault_count = 0;
25207 - if(++last_fault_count < 32) {
25208 - if(last_fault_count == 1)
25210 - "GC: WARNING: Ignoring KERN_PROTECTION_FAILURE at %p\n",
25212 - return KERN_SUCCESS;
25215 - GC_err_printf1("Unexpected KERN_PROTECTION_FAILURE at %p\n",addr);
25216 - /* Can't pass it along to the signal handler because that is
25217 - ignoring SIGBUS signals. We also shouldn't call ABORT here as
25218 - signals don't always work too well from the exception handler. */
25219 - GC_err_printf0("Aborting\n");
25220 - exit(EXIT_FAILURE);
25221 - #else /* BROKEN_EXCEPTION_HANDLING */
25222 - /* Pass it along to the next exception handler
25223 - (which should call SIGBUS/SIGSEGV) */
25225 - #endif /* !BROKEN_EXCEPTION_HANDLING */
25228 - #ifdef BROKEN_EXCEPTION_HANDLING
25229 - /* Reset the number of consecutive SIGBUSs */
25230 - GC_sigbus_count = 0;
25233 - if(GC_mprotect_state == GC_MP_NORMAL) { /* common case */
25234 - h = (struct hblk*)((word)addr & ~(GC_page_size-1));
25235 - UNPROTECT(h, GC_page_size);
25236 - for (i = 0; i < divHBLKSZ(GC_page_size); i++) {
25237 - register int index = PHT_HASH(h+i);
25238 - async_set_pht_entry_from_index(GC_dirty_pages, index);
25240 - } else if(GC_mprotect_state == GC_MP_DISCARDING) {
25241 - /* Lie to the thread for now. No sense UNPROTECT()ing the memory
25242 - when we're just going to PROTECT() it again later. The thread
25243 - will just fault again once it resumes */
25245 - /* Shouldn't happen, i don't think */
25246 - GC_printf0("KERN_PROTECTION_FAILURE while world is stopped\n");
25249 - return KERN_SUCCESS;
25253 -/* These should never be called, but just in case... */
25254 -kern_return_t catch_exception_raise_state(mach_port_name_t exception_port,
25255 - int exception, exception_data_t code, mach_msg_type_number_t codeCnt,
25256 - int flavor, thread_state_t old_state, int old_stateCnt,
25257 - thread_state_t new_state, int new_stateCnt)
25259 - ABORT("catch_exception_raise_state");
25260 - return(KERN_INVALID_ARGUMENT);
25262 -kern_return_t catch_exception_raise_state_identity(
25263 - mach_port_name_t exception_port, mach_port_t thread, mach_port_t task,
25264 - int exception, exception_data_t code, mach_msg_type_number_t codeCnt,
25265 - int flavor, thread_state_t old_state, int old_stateCnt,
25266 - thread_state_t new_state, int new_stateCnt)
25268 - ABORT("catch_exception_raise_state_identity");
25269 - return(KERN_INVALID_ARGUMENT);
25273 -#endif /* DARWIN && MPROTECT_VDB */
25275 # ifndef HAVE_INCREMENTAL_PROTECTION_NEEDS
25276 int GC_incremental_protection_needs()
25278 @@ -3878,20 +3105,19 @@
25282 -#ifdef NEED_CALLINFO
25283 +#ifdef SAVE_CALL_CHAIN
25284 /* Fill in the pc and argument information for up to NFRAMES of my */
25285 /* callers. Ignore my frame and my callers frame. */
25288 -# include <unistd.h>
25289 +# include <features.h>
25290 +# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2
25291 +# define HAVE_BUILTIN_BACKTRACE
25295 -#endif /* NEED_CALLINFO */
25297 -#ifdef SAVE_CALL_CHAIN
25299 #if NARGS == 0 && NFRAMES % 2 == 0 /* No padding */ \
25300 - && defined(GC_HAVE_BUILTIN_BACKTRACE)
25301 + && defined(HAVE_BUILTIN_BACKTRACE)
25303 #include <execinfo.h>
25305 @@ -3962,139 +3188,31 @@
25307 #endif /* SAVE_CALL_CHAIN */
25309 -#ifdef NEED_CALLINFO
25310 +#if defined(LINUX) && defined(__ELF__) && \
25311 + (!defined(SMALL_CONFIG) || defined(USE_PROC_FOR_LIBRARIES))
25312 +#ifdef GC_USE_LD_WRAP
25313 +# define READ __real_read
25315 +# define READ read
25318 -/* Print info to stderr. We do NOT hold the allocation lock */
25319 -void GC_print_callers (info)
25320 -struct callinfo info[NFRAMES];
25323 - static int reentry_count = 0;
25324 - GC_bool stop = FALSE;
25329 +/* Repeatedly perform a read call until the buffer is filled or */
25330 +/* we encounter EOF. */
25331 +ssize_t GC_repeat_read(int fd, char *buf, size_t count)
25333 + ssize_t num_read = 0;
25337 - GC_err_printf0("\tCaller at allocation:\n");
25339 - GC_err_printf0("\tCall chain at allocation:\n");
25341 - for (i = 0; i < NFRAMES && !stop ; i++) {
25342 - if (info[i].ci_pc == 0) break;
25347 - GC_err_printf0("\t\targs: ");
25348 - for (j = 0; j < NARGS; j++) {
25349 - if (j != 0) GC_err_printf0(", ");
25350 - GC_err_printf2("%d (0x%X)", ~(info[i].ci_arg[j]),
25351 - ~(info[i].ci_arg[j]));
25353 - GC_err_printf0("\n");
25356 - if (reentry_count > 1) {
25357 - /* We were called during an allocation during */
25358 - /* a previous GC_print_callers call; punt. */
25359 - GC_err_printf1("\t\t##PC##= 0x%lx\n", info[i].ci_pc);
25366 -# if defined(GC_HAVE_BUILTIN_BACKTRACE)
25367 - char **sym_name =
25368 - backtrace_symbols((void **)(&(info[i].ci_pc)), 1);
25369 - char *name = sym_name[0];
25372 - char *name = buf;
25373 - sprintf(buf, "##PC##= 0x%lx", info[i].ci_pc);
25375 -# if defined(LINUX) && !defined(SMALL_CONFIG)
25376 - /* Try for a line number. */
25378 -# define EXE_SZ 100
25379 - static char exe_name[EXE_SZ];
25380 -# define CMD_SZ 200
25381 - char cmd_buf[CMD_SZ];
25382 -# define RESULT_SZ 200
25383 - static char result_buf[RESULT_SZ];
25384 - size_t result_len;
25385 - static GC_bool found_exe_name = FALSE;
25386 - static GC_bool will_fail = FALSE;
25388 - /* Try to get it via a hairy and expensive scheme. */
25389 - /* First we get the name of the executable: */
25390 - if (will_fail) goto out;
25391 - if (!found_exe_name) {
25392 - ret_code = readlink("/proc/self/exe", exe_name, EXE_SZ);
25393 - if (ret_code < 0 || ret_code >= EXE_SZ
25394 - || exe_name[0] != '/') {
25395 - will_fail = TRUE; /* Dont try again. */
25398 - exe_name[ret_code] = '\0';
25399 - found_exe_name = TRUE;
25401 - /* Then we use popen to start addr2line -e <exe> <addr> */
25402 - /* There are faster ways to do this, but hopefully this */
25403 - /* isn't time critical. */
25404 - sprintf(cmd_buf, "/usr/bin/addr2line -f -e %s 0x%lx", exe_name,
25405 - (unsigned long)info[i].ci_pc);
25406 - pipe = popen(cmd_buf, "r");
25408 - || (result_len = fread(result_buf, 1, RESULT_SZ - 1, pipe))
25410 - if (pipe != NULL) pclose(pipe);
25411 - will_fail = TRUE;
25414 - if (result_buf[result_len - 1] == '\n') --result_len;
25415 - result_buf[result_len] = 0;
25416 - if (result_buf[0] == '?'
25417 - || result_buf[result_len-2] == ':'
25418 - && result_buf[result_len-1] == '0') {
25422 - /* Get rid of embedded newline, if any. Test for "main" */
25424 - char * nl = strchr(result_buf, '\n');
25425 - if (nl != NULL && nl < result_buf + result_len) {
25428 - if (strncmp(result_buf, "main", nl - result_buf) == 0) {
25432 - if (result_len < RESULT_SZ - 25) {
25433 - /* Add in hex address */
25434 - sprintf(result_buf + result_len, " [0x%lx]",
25435 - (unsigned long)info[i].ci_pc);
25437 - name = result_buf;
25441 -# endif /* LINUX */
25442 - GC_err_printf1("\t\t%s\n", name);
25443 -# if defined(GC_HAVE_BUILTIN_BACKTRACE)
25444 - free(sym_name); /* May call GC_free; that's OK */
25447 + while (num_read < count) {
25448 + result = READ(fd, buf + num_read, count - num_read);
25449 + if (result < 0) return result;
25450 + if (result == 0) break;
25451 + num_read += result;
25459 -#endif /* NEED_CALLINFO */
25461 +#endif /* LINUX && ... */
25464 #if defined(LINUX) && defined(__ELF__) && !defined(SMALL_CONFIG)
25465 @@ -4102,16 +3220,20 @@
25466 /* Dump /proc/self/maps to GC_stderr, to enable looking up names for
25467 addresses in FIND_LEAK output. */
25469 -static word dump_maps(char *maps)
25471 - GC_err_write(maps, strlen(maps));
25475 void GC_print_address_map()
25479 + char maps_temp[32768];
25480 GC_err_printf0("---------- Begin address map ----------\n");
25481 - GC_apply_to_maps(dump_maps);
25482 + f = open("/proc/self/maps", O_RDONLY);
25483 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
25485 + result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
25486 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
25487 + GC_err_write(maps_temp, result);
25488 + } while (result == sizeof(maps_temp));
25490 GC_err_printf0("---------- End address map ----------\n");
25493 diff -Nur ../boehm-gc/powerpc_darwin_mach_dep.s boehm-gc/powerpc_darwin_mach_dep.s
25494 --- ../boehm-gc/powerpc_darwin_mach_dep.s Mon May 26 12:48:52 2003
25495 +++ boehm-gc/powerpc_darwin_mach_dep.s Wed Dec 31 16:00:00 1969
25498 -; GC_push_regs function. Under some optimization levels GCC will clobber
25499 -; some of the non-volatile registers before we get a chance to save them
25500 -; therefore, this can't be inline asm.
25504 - .globl _GC_push_regs
25514 - bl L_GC_push_one$stub
25516 - bl L_GC_push_one$stub
25518 - bl L_GC_push_one$stub
25520 - bl L_GC_push_one$stub
25522 - bl L_GC_push_one$stub
25524 - bl L_GC_push_one$stub
25526 - bl L_GC_push_one$stub
25528 - bl L_GC_push_one$stub
25530 - bl L_GC_push_one$stub
25532 - bl L_GC_push_one$stub
25534 - bl L_GC_push_one$stub
25536 - bl L_GC_push_one$stub
25538 - bl L_GC_push_one$stub
25540 - bl L_GC_push_one$stub
25542 - bl L_GC_push_one$stub
25544 - bl L_GC_push_one$stub
25546 - bl L_GC_push_one$stub
25548 - bl L_GC_push_one$stub
25550 - bl L_GC_push_one$stub
25560 -; PIC stuff, generated by GCC
25564 -L_GC_push_one$stub:
25565 - .indirect_symbol _GC_push_one
25567 - bcl 20,31,L0$_GC_push_one
25570 - addis r11,r11,ha16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
25572 - lwz r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11)
25574 - addi r11,r11,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
25577 -.lazy_symbol_pointer
25578 -L_GC_push_one$lazy_ptr:
25579 - .indirect_symbol _GC_push_one
25580 - .long dyld_stub_binding_helper
25581 diff -Nur ../boehm-gc/pthread_stop_world.c boehm-gc/pthread_stop_world.c
25582 --- ../boehm-gc/pthread_stop_world.c Mon May 26 12:48:52 2003
25583 +++ boehm-gc/pthread_stop_world.c Wed Dec 31 16:00:00 1969
25585 -#include "private/pthread_support.h"
25587 -#if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
25588 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS) \
25589 - && !defined(GC_DARWIN_THREADS)
25591 -#include <signal.h>
25592 -#include <semaphore.h>
25593 -#include <errno.h>
25594 -#include <unistd.h>
25599 -# if defined(MAXSIG)
25600 -# define NSIG (MAXSIG+1)
25601 -# elif defined(_NSIG)
25602 -# define NSIG _NSIG
25603 -# elif defined(__SIGRTMAX)
25604 -# define NSIG (__SIGRTMAX+1)
25606 - --> please fix it
25610 -void GC_print_sig_mask()
25612 - sigset_t blocked;
25615 - if (pthread_sigmask(SIG_BLOCK, NULL, &blocked) != 0)
25616 - ABORT("pthread_sigmask");
25617 - GC_printf0("Blocked: ");
25618 - for (i = 1; i < NSIG; i++) {
25619 - if (sigismember(&blocked, i)) { GC_printf1("%ld ",(long) i); }
25621 - GC_printf0("\n");
25626 -word GC_stop_count; /* Incremented at the beginning of GC_stop_world. */
25628 -#ifdef GC_OSF1_THREADS
25629 - GC_bool GC_retry_signals = TRUE;
25631 - GC_bool GC_retry_signals = FALSE;
25635 - * We use signals to stop threads during GC.
25637 - * Suspended threads wait in signal handler for SIG_THR_RESTART.
25638 - * That's more portable than semaphores or condition variables.
25639 - * (We do use sem_post from a signal handler, but that should be portable.)
25641 - * The thread suspension signal SIG_SUSPEND is now defined in gc_priv.h.
25642 - * Note that we can't just stop a thread; we need it to save its stack
25643 - * pointer(s) and acknowledge.
25646 -#ifndef SIG_THR_RESTART
25647 -# if defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
25649 -# define SIG_THR_RESTART _SIGRTMIN + 5
25651 -# define SIG_THR_RESTART SIGRTMIN + 5
25654 -# define SIG_THR_RESTART SIGXCPU
25658 -sem_t GC_suspend_ack_sem;
25660 -void GC_suspend_handler(int sig)
25663 - pthread_t my_thread = pthread_self();
25666 -# ifdef PARALLEL_MARK
25667 - word my_mark_no = GC_mark_no;
25668 - /* Marker can't proceed until we acknowledge. Thus this is */
25669 - /* guaranteed to be the mark_no correspending to our */
25670 - /* suspension, i.e. the marker can't have incremented it yet. */
25672 - word my_stop_count = GC_stop_count;
25674 - if (sig != SIG_SUSPEND) ABORT("Bad signal in suspend_handler");
25677 - GC_printf1("Suspending 0x%lx\n", my_thread);
25680 - me = GC_lookup_thread(my_thread);
25681 - /* The lookup here is safe, since I'm doing this on behalf */
25682 - /* of a thread which holds the allocation lock in order */
25683 - /* to stop the world. Thus concurrent modification of the */
25684 - /* data structure is impossible. */
25685 - if (me -> stop_info.last_stop_count == my_stop_count) {
25686 - /* Duplicate signal. OK if we are retrying. */
25687 - if (!GC_retry_signals) {
25688 - WARN("Duplicate suspend signal in thread %lx\n",
25694 - me -> stop_info.stack_ptr = (ptr_t)GC_save_regs_in_stack();
25696 - me -> stop_info.stack_ptr = (ptr_t)(&dummy);
25699 - me -> backing_store_ptr = (ptr_t)GC_save_regs_in_stack();
25702 - /* Tell the thread that wants to stop the world that this */
25703 - /* thread has been stopped. Note that sem_post() is */
25704 - /* the only async-signal-safe primitive in LinuxThreads. */
25705 - sem_post(&GC_suspend_ack_sem);
25706 - me -> stop_info.last_stop_count = my_stop_count;
25708 - /* Wait until that thread tells us to restart by sending */
25709 - /* this thread a SIG_THR_RESTART signal. */
25710 - /* SIG_THR_RESTART should be masked at this point. Thus there */
25711 - /* is no race. */
25712 - if (sigfillset(&mask) != 0) ABORT("sigfillset() failed");
25713 - if (sigdelset(&mask, SIG_THR_RESTART) != 0) ABORT("sigdelset() failed");
25714 -# ifdef NO_SIGNALS
25715 - if (sigdelset(&mask, SIGINT) != 0) ABORT("sigdelset() failed");
25716 - if (sigdelset(&mask, SIGQUIT) != 0) ABORT("sigdelset() failed");
25717 - if (sigdelset(&mask, SIGTERM) != 0) ABORT("sigdelset() failed");
25718 - if (sigdelset(&mask, SIGABRT) != 0) ABORT("sigdelset() failed");
25721 - me->stop_info.signal = 0;
25722 - sigsuspend(&mask); /* Wait for signal */
25723 - } while (me->stop_info.signal != SIG_THR_RESTART);
25724 - /* If the RESTART signal gets lost, we can still lose. That should be */
25725 - /* less likely than losing the SUSPEND signal, since we don't do much */
25726 - /* between the sem_post and sigsuspend. */
25727 - /* We'd need more handshaking to work around that, since we don't want */
25728 - /* to accidentally leave a RESTART signal pending, thus causing us to */
25729 - /* continue prematurely in a future round. */
25732 - GC_printf1("Continuing 0x%lx\n", my_thread);
25736 -void GC_restart_handler(int sig)
25738 - pthread_t my_thread = pthread_self();
25741 - if (sig != SIG_THR_RESTART) ABORT("Bad signal in suspend_handler");
25743 - /* Let the GC_suspend_handler() know that we got a SIG_THR_RESTART. */
25744 - /* The lookup here is safe, since I'm doing this on behalf */
25745 - /* of a thread which holds the allocation lock in order */
25746 - /* to stop the world. Thus concurrent modification of the */
25747 - /* data structure is impossible. */
25748 - me = GC_lookup_thread(my_thread);
25749 - me->stop_info.signal = SIG_THR_RESTART;
25752 - ** Note: even if we didn't do anything useful here,
25753 - ** it would still be necessary to have a signal handler,
25754 - ** rather than ignoring the signals, otherwise
25755 - ** the signals will not be delivered at all, and
25756 - ** will thus not interrupt the sigsuspend() above.
25760 - GC_printf1("In GC_restart_handler for 0x%lx\n", pthread_self());
25765 -# define IF_IA64(x) x
25767 -# define IF_IA64(x)
25769 -/* We hold allocation lock. Should do exactly the right thing if the */
25770 -/* world is stopped. Should not fail if it isn't. */
25771 -void GC_push_all_stacks()
25776 - /* On IA64, we also need to scan the register backing store. */
25777 - IF_IA64(ptr_t bs_lo; ptr_t bs_hi;)
25778 - pthread_t me = pthread_self();
25780 - if (!GC_thr_initialized) GC_thr_init();
25781 - #if DEBUG_THREADS
25782 - GC_printf1("Pushing stacks from thread 0x%lx\n", (unsigned long) me);
25784 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25785 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25786 - if (p -> flags & FINISHED) continue;
25787 - if (pthread_equal(p -> id, me)) {
25789 - lo = (ptr_t)GC_save_regs_in_stack();
25791 - lo = GC_approx_sp();
25793 - IF_IA64(bs_hi = (ptr_t)GC_save_regs_in_stack();)
25795 - lo = p -> stop_info.stack_ptr;
25796 - IF_IA64(bs_hi = p -> backing_store_ptr;)
25798 - if ((p -> flags & MAIN_THREAD) == 0) {
25799 - hi = p -> stack_end;
25800 - IF_IA64(bs_lo = p -> backing_store_end);
25802 - /* The original stack. */
25803 - hi = GC_stackbottom;
25804 - IF_IA64(bs_lo = BACKING_STORE_BASE;)
25806 - #if DEBUG_THREADS
25807 - GC_printf3("Stack for thread 0x%lx = [%lx,%lx)\n",
25808 - (unsigned long) p -> id,
25809 - (unsigned long) lo, (unsigned long) hi);
25811 - if (0 == lo) ABORT("GC_push_all_stacks: sp not set!\n");
25812 -# ifdef STACK_GROWS_UP
25813 - /* We got them backwards! */
25814 - GC_push_all_stack(hi, lo);
25816 - GC_push_all_stack(lo, hi);
25819 - if (pthread_equal(p -> id, me)) {
25820 - GC_push_all_eager(bs_lo, bs_hi);
25822 - GC_push_all_stack(bs_lo, bs_hi);
25829 -/* There seems to be a very rare thread stopping problem. To help us */
25830 -/* debug that, we save the ids of the stopping thread. */
25831 -pthread_t GC_stopping_thread;
25832 -int GC_stopping_pid;
25834 -/* We hold the allocation lock. Suspend all threads that might */
25835 -/* still be running. Return the number of suspend signals that */
25837 -int GC_suspend_all()
25839 - int n_live_threads = 0;
25843 - pthread_t my_thread = pthread_self();
25845 - GC_stopping_thread = my_thread; /* debugging only. */
25846 - GC_stopping_pid = getpid(); /* debugging only. */
25847 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25848 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25849 - if (p -> id != my_thread) {
25850 - if (p -> flags & FINISHED) continue;
25851 - if (p -> stop_info.last_stop_count == GC_stop_count) continue;
25852 - if (p -> thread_blocked) /* Will wait */ continue;
25853 - n_live_threads++;
25854 - #if DEBUG_THREADS
25855 - GC_printf1("Sending suspend signal to 0x%lx\n", p -> id);
25858 - result = pthread_kill(p -> id, SIG_SUSPEND);
25861 - /* Not really there anymore. Possible? */
25862 - n_live_threads--;
25867 - ABORT("pthread_kill failed");
25872 - return n_live_threads;
25875 -/* Caller holds allocation lock. */
25876 -void GC_stop_world()
25879 - int n_live_threads;
25882 - #if DEBUG_THREADS
25883 - GC_printf1("Stopping the world from 0x%lx\n", pthread_self());
25886 - /* Make sure all free list construction has stopped before we start. */
25887 - /* No new construction can start, since free list construction is */
25888 - /* required to acquire and release the GC lock before it starts, */
25889 - /* and we have the lock. */
25890 -# ifdef PARALLEL_MARK
25891 - GC_acquire_mark_lock();
25892 - GC_ASSERT(GC_fl_builder_count == 0);
25893 - /* We should have previously waited for it to become zero. */
25894 -# endif /* PARALLEL_MARK */
25896 - n_live_threads = GC_suspend_all();
25898 - if (GC_retry_signals) {
25899 - unsigned long wait_usecs = 0; /* Total wait since retry. */
25900 -# define WAIT_UNIT 3000
25901 -# define RETRY_INTERVAL 100000
25905 - sem_getvalue(&GC_suspend_ack_sem, &ack_count);
25906 - if (ack_count == n_live_threads) break;
25907 - if (wait_usecs > RETRY_INTERVAL) {
25908 - int newly_sent = GC_suspend_all();
25911 - if (GC_print_stats) {
25912 - GC_printf1("Resent %ld signals after timeout\n",
25916 - sem_getvalue(&GC_suspend_ack_sem, &ack_count);
25917 - if (newly_sent < n_live_threads - ack_count) {
25918 - WARN("Lost some threads during GC_stop_world?!\n",0);
25919 - n_live_threads = ack_count + newly_sent;
25923 - usleep(WAIT_UNIT);
25924 - wait_usecs += WAIT_UNIT;
25927 - for (i = 0; i < n_live_threads; i++) {
25928 - if (0 != (code = sem_wait(&GC_suspend_ack_sem))) {
25929 - GC_err_printf1("Sem_wait returned %ld\n", (unsigned long)code);
25930 - ABORT("sem_wait for handler failed");
25933 -# ifdef PARALLEL_MARK
25934 - GC_release_mark_lock();
25936 - #if DEBUG_THREADS
25937 - GC_printf1("World stopped from 0x%lx\n", pthread_self());
25939 - GC_stopping_thread = 0; /* debugging only */
25942 -/* Caller holds allocation lock, and has held it continuously since */
25943 -/* the world stopped. */
25944 -void GC_start_world()
25946 - pthread_t my_thread = pthread_self();
25948 - register GC_thread p;
25949 - register int n_live_threads = 0;
25950 - register int result;
25952 -# if DEBUG_THREADS
25953 - GC_printf0("World starting\n");
25956 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25957 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25958 - if (p -> id != my_thread) {
25959 - if (p -> flags & FINISHED) continue;
25960 - if (p -> thread_blocked) continue;
25961 - n_live_threads++;
25962 - #if DEBUG_THREADS
25963 - GC_printf1("Sending restart signal to 0x%lx\n", p -> id);
25966 - result = pthread_kill(p -> id, SIG_THR_RESTART);
25969 - /* Not really there anymore. Possible? */
25970 - n_live_threads--;
25975 - ABORT("pthread_kill failed");
25980 - #if DEBUG_THREADS
25981 - GC_printf0("World started\n");
25985 -void GC_stop_init() {
25986 - struct sigaction act;
25988 - if (sem_init(&GC_suspend_ack_sem, 0, 0) != 0)
25989 - ABORT("sem_init failed");
25991 - act.sa_flags = SA_RESTART;
25992 - if (sigfillset(&act.sa_mask) != 0) {
25993 - ABORT("sigfillset() failed");
25995 -# ifdef NO_SIGNALS
25996 - if (sigdelset(&act.sa_mask, SIGINT) != 0
25997 - || sigdelset(&act.sa_mask, SIGQUIT != 0)
25998 - || sigdelset(&act.sa_mask, SIGABRT != 0)
25999 - || sigdelset(&act.sa_mask, SIGTERM != 0)) {
26000 - ABORT("sigdelset() failed");
26004 - /* SIG_THR_RESTART is unmasked by the handler when necessary. */
26005 - act.sa_handler = GC_suspend_handler;
26006 - if (sigaction(SIG_SUSPEND, &act, NULL) != 0) {
26007 - ABORT("Cannot set SIG_SUSPEND handler");
26010 - act.sa_handler = GC_restart_handler;
26011 - if (sigaction(SIG_THR_RESTART, &act, NULL) != 0) {
26012 - ABORT("Cannot set SIG_THR_RESTART handler");
26015 - /* Check for GC_RETRY_SIGNALS. */
26016 - if (0 != GETENV("GC_RETRY_SIGNALS")) {
26017 - GC_retry_signals = TRUE;
26019 - if (0 != GETENV("GC_NO_RETRY_SIGNALS")) {
26020 - GC_retry_signals = FALSE;
26023 - if (GC_print_stats && GC_retry_signals) {
26024 - GC_printf0("Will retry suspend signal if necessary.\n");
26030 diff -Nur ../boehm-gc/pthread_support.c boehm-gc/pthread_support.c
26031 --- ../boehm-gc/pthread_support.c Mon May 26 12:48:52 2003
26032 +++ boehm-gc/pthread_support.c Wed Dec 31 16:00:00 1969
26035 - * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
26036 - * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
26037 - * Copyright (c) 1998 by Fergus Henderson. All rights reserved.
26038 - * Copyright (c) 2000-2001 by Hewlett-Packard Company. All rights reserved.
26040 - * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
26041 - * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
26043 - * Permission is hereby granted to use or copy this program
26044 - * for any purpose, provided the above notices are retained on all copies.
26045 - * Permission to modify the code and to distribute modified code is granted,
26046 - * provided the above notices are retained, and a notice that the code was
26047 - * modified is included with the above copyright notice.
26050 - * Support code for LinuxThreads, the clone()-based kernel
26051 - * thread package for Linux which is included in libc6.
26053 - * This code relies on implementation details of LinuxThreads,
26054 - * (i.e. properties not guaranteed by the Pthread standard),
26055 - * though this version now does less of that than the other Pthreads
26058 - * Note that there is a lot of code duplication between linux_threads.c
26059 - * and thread support for some of the other Posix platforms; any changes
26060 - * made here may need to be reflected there too.
26062 - /* DG/UX ix86 support <takis@xfree86.org> */
26064 - * Linux_threads.c now also includes some code to support HPUX and
26065 - * OSF1 (Compaq Tru64 Unix, really). The OSF1 support is not yet
26066 - * functional. The OSF1 code is based on Eric Benson's
26067 - * patch, though that was originally against hpux_irix_threads. The code
26068 - * here is completely untested. With 0.0000001% probability, it might
26071 - * Eric also suggested an alternate basis for a lock implementation in
26073 - * + #elif defined(OSF1)
26074 - * + unsigned long GC_allocate_lock = 0;
26075 - * + msemaphore GC_allocate_semaphore;
26076 - * + # define GC_TRY_LOCK() \
26077 - * + ((msem_lock(&GC_allocate_semaphore, MSEM_IF_NOWAIT) == 0) \
26078 - * + ? (GC_allocate_lock = 1) \
26080 - * + # define GC_LOCK_TAKEN GC_allocate_lock
26083 -/*#define DEBUG_THREADS 1*/
26084 -/*#define GC_ASSERTIONS*/
26086 -# include "private/pthread_support.h"
26088 -# if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
26089 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
26091 -# if defined(GC_HPUX_THREADS) && !defined(USE_PTHREAD_SPECIFIC) \
26092 - && !defined(USE_HPUX_TLS)
26093 -# define USE_HPUX_TLS
26096 -# if (defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) || \
26097 - defined(GC_DARWIN_THREADS)) && !defined(USE_PTHREAD_SPECIFIC)
26098 -# define USE_PTHREAD_SPECIFIC
26101 -# if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE)
26102 -# define _POSIX4A_DRAFT10_SOURCE 1
26105 -# if defined(GC_DGUX386_THREADS) && !defined(_USING_POSIX4A_DRAFT10)
26106 -# define _USING_POSIX4A_DRAFT10 1
26109 -# ifdef THREAD_LOCAL_ALLOC
26110 -# if !defined(USE_PTHREAD_SPECIFIC) && !defined(USE_HPUX_TLS)
26111 -# include "private/specific.h"
26113 -# if defined(USE_PTHREAD_SPECIFIC)
26114 -# define GC_getspecific pthread_getspecific
26115 -# define GC_setspecific pthread_setspecific
26116 -# define GC_key_create pthread_key_create
26117 - typedef pthread_key_t GC_key_t;
26119 -# if defined(USE_HPUX_TLS)
26120 -# define GC_getspecific(x) (x)
26121 -# define GC_setspecific(key, v) ((key) = (v), 0)
26122 -# define GC_key_create(key, d) 0
26123 - typedef void * GC_key_t;
26126 -# include <stdlib.h>
26127 -# include <pthread.h>
26128 -# include <sched.h>
26129 -# include <time.h>
26130 -# include <errno.h>
26131 -# include <unistd.h>
26132 -# include <sys/mman.h>
26133 -# include <sys/time.h>
26134 -# include <sys/types.h>
26135 -# include <sys/stat.h>
26136 -# include <fcntl.h>
26138 -#if defined(GC_DARWIN_THREADS)
26139 -# include "private/darwin_semaphore.h"
26141 -# include <semaphore.h>
26142 -#endif /* !GC_DARWIN_THREADS */
26144 -#if defined(GC_DARWIN_THREADS)
26145 -# include <sys/sysctl.h>
26146 -#endif /* GC_DARWIN_THREADS */
26150 -#if defined(GC_DGUX386_THREADS)
26151 -# include <sys/dg_sys_info.h>
26152 -# include <sys/_int_psem.h>
26153 - /* sem_t is an uint in DG/UX */
26154 - typedef unsigned int sem_t;
26155 -#endif /* GC_DGUX386_THREADS */
26158 -# define __inline__
26161 -#ifdef GC_USE_LD_WRAP
26162 -# define WRAP_FUNC(f) __wrap_##f
26163 -# define REAL_FUNC(f) __real_##f
26165 -# define WRAP_FUNC(f) GC_##f
26166 -# if !defined(GC_DGUX386_THREADS)
26167 -# define REAL_FUNC(f) f
26168 -# else /* GC_DGUX386_THREADS */
26169 -# define REAL_FUNC(f) __d10_##f
26170 -# endif /* GC_DGUX386_THREADS */
26171 -# undef pthread_create
26172 -# if !defined(GC_DARWIN_THREADS)
26173 -# undef pthread_sigmask
26175 -# undef pthread_join
26176 -# undef pthread_detach
26179 -void GC_thr_init();
26181 -static GC_bool parallel_initialized = FALSE;
26183 -void GC_init_parallel();
26185 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26187 -/* We don't really support thread-local allocation with DBG_HDRS_ALL */
26189 -#ifdef USE_HPUX_TLS
26192 -GC_key_t GC_thread_key;
26194 -static GC_bool keys_initialized;
26196 -/* Recover the contents of the freelist array fl into the global one gfl.*/
26197 -/* Note that the indexing scheme differs, in that gfl has finer size */
26198 -/* resolution, even if not all entries are used. */
26199 -/* We hold the allocator lock. */
26200 -static void return_freelists(ptr_t *fl, ptr_t *gfl)
26206 - for (i = 1; i < NFREELISTS; ++i) {
26207 - nwords = i * (GRANULARITY/sizeof(word));
26210 - if ((word)q >= HBLKSIZE) {
26211 - if (gfl[nwords] == 0) {
26214 - /* Concatenate: */
26215 - for (; (word)q >= HBLKSIZE; qptr = &(obj_link(q)), q = *qptr);
26216 - GC_ASSERT(0 == q);
26217 - *qptr = gfl[nwords];
26218 - gfl[nwords] = fl[i];
26221 - /* Clear fl[i], since the thread structure may hang around. */
26222 - /* Do it in a way that is likely to trap if we access it. */
26223 - fl[i] = (ptr_t)HBLKSIZE;
26227 -/* We statically allocate a single "size 0" object. It is linked to */
26228 -/* itself, and is thus repeatedly reused for all size 0 allocation */
26229 -/* requests. (Size 0 gcj allocation requests are incorrect, and */
26230 -/* we arrange for those to fault asap.) */
26231 -static ptr_t size_zero_object = (ptr_t)(&size_zero_object);
26233 -/* Each thread structure must be initialized. */
26234 -/* This call must be made from the new thread. */
26235 -/* Caller holds allocation lock. */
26236 -void GC_init_thread_local(GC_thread p)
26240 - if (!keys_initialized) {
26241 - if (0 != GC_key_create(&GC_thread_key, 0)) {
26242 - ABORT("Failed to create key for local allocator");
26244 - keys_initialized = TRUE;
26246 - if (0 != GC_setspecific(GC_thread_key, p)) {
26247 - ABORT("Failed to set thread specific allocation pointers");
26249 - for (i = 1; i < NFREELISTS; ++i) {
26250 - p -> ptrfree_freelists[i] = (ptr_t)1;
26251 - p -> normal_freelists[i] = (ptr_t)1;
26252 -# ifdef GC_GCJ_SUPPORT
26253 - p -> gcj_freelists[i] = (ptr_t)1;
26256 - /* Set up the size 0 free lists. */
26257 - p -> ptrfree_freelists[0] = (ptr_t)(&size_zero_object);
26258 - p -> normal_freelists[0] = (ptr_t)(&size_zero_object);
26259 -# ifdef GC_GCJ_SUPPORT
26260 - p -> gcj_freelists[0] = (ptr_t)(-1);
26264 -#ifdef GC_GCJ_SUPPORT
26265 - extern ptr_t * GC_gcjobjfreelist;
26268 -/* We hold the allocator lock. */
26269 -void GC_destroy_thread_local(GC_thread p)
26271 - /* We currently only do this from the thread itself or from */
26272 - /* the fork handler for a child process. */
26273 -# ifndef HANDLE_FORK
26274 - GC_ASSERT(GC_getspecific(GC_thread_key) == (void *)p);
26276 - return_freelists(p -> ptrfree_freelists, GC_aobjfreelist);
26277 - return_freelists(p -> normal_freelists, GC_objfreelist);
26278 -# ifdef GC_GCJ_SUPPORT
26279 - return_freelists(p -> gcj_freelists, GC_gcjobjfreelist);
26283 -extern GC_PTR GC_generic_malloc_many();
26285 -GC_PTR GC_local_malloc(size_t bytes)
26287 - if (EXPECT(!SMALL_ENOUGH(bytes),0)) {
26288 - return(GC_malloc(bytes));
26290 - int index = INDEX_FROM_BYTES(bytes);
26293 -# if defined(REDIRECT_MALLOC) && !defined(USE_PTHREAD_SPECIFIC)
26294 - GC_key_t k = GC_thread_key;
26298 -# if defined(REDIRECT_MALLOC) && !defined(USE_PTHREAD_SPECIFIC)
26299 - if (EXPECT(0 == k, 0)) {
26300 - /* This can happen if we get called when the world is */
26301 - /* being initialized. Whether we can actually complete */
26302 - /* the initialization then is unclear. */
26303 - GC_init_parallel();
26304 - k = GC_thread_key;
26307 - tsd = GC_getspecific(GC_thread_key);
26308 -# ifdef GC_ASSERTIONS
26310 - GC_ASSERT(tsd == (void *)GC_lookup_thread(pthread_self()));
26313 - my_fl = ((GC_thread)tsd) -> normal_freelists + index;
26314 - my_entry = *my_fl;
26315 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
26316 - ptr_t next = obj_link(my_entry);
26317 - GC_PTR result = (GC_PTR)my_entry;
26319 - obj_link(my_entry) = 0;
26320 - PREFETCH_FOR_WRITE(next);
26322 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
26323 - *my_fl = my_entry + index + 1;
26324 - return GC_malloc(bytes);
26326 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), NORMAL, my_fl);
26327 - if (*my_fl == 0) return GC_oom_fn(bytes);
26328 - return GC_local_malloc(bytes);
26333 -GC_PTR GC_local_malloc_atomic(size_t bytes)
26335 - if (EXPECT(!SMALL_ENOUGH(bytes), 0)) {
26336 - return(GC_malloc_atomic(bytes));
26338 - int index = INDEX_FROM_BYTES(bytes);
26339 - ptr_t * my_fl = ((GC_thread)GC_getspecific(GC_thread_key))
26340 - -> ptrfree_freelists + index;
26341 - ptr_t my_entry = *my_fl;
26343 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
26344 - GC_PTR result = (GC_PTR)my_entry;
26345 - *my_fl = obj_link(my_entry);
26347 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
26348 - *my_fl = my_entry + index + 1;
26349 - return GC_malloc_atomic(bytes);
26351 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), PTRFREE, my_fl);
26352 - /* *my_fl is updated while the collector is excluded; */
26353 - /* the free list is always visible to the collector as */
26355 - if (*my_fl == 0) return GC_oom_fn(bytes);
26356 - return GC_local_malloc_atomic(bytes);
26361 -#ifdef GC_GCJ_SUPPORT
26363 -#include "include/gc_gcj.h"
26365 -#ifdef GC_ASSERTIONS
26366 - extern GC_bool GC_gcj_malloc_initialized;
26369 -extern int GC_gcj_kind;
26371 -GC_PTR GC_local_gcj_malloc(size_t bytes,
26372 - void * ptr_to_struct_containing_descr)
26374 - GC_ASSERT(GC_gcj_malloc_initialized);
26375 - if (EXPECT(!SMALL_ENOUGH(bytes), 0)) {
26376 - return GC_gcj_malloc(bytes, ptr_to_struct_containing_descr);
26378 - int index = INDEX_FROM_BYTES(bytes);
26379 - ptr_t * my_fl = ((GC_thread)GC_getspecific(GC_thread_key))
26380 - -> gcj_freelists + index;
26381 - ptr_t my_entry = *my_fl;
26382 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
26383 - GC_PTR result = (GC_PTR)my_entry;
26384 - GC_ASSERT(!GC_incremental);
26385 - /* We assert that any concurrent marker will stop us. */
26386 - /* Thus it is impossible for a mark procedure to see the */
26387 - /* allocation of the next object, but to see this object */
26388 - /* still containing a free list pointer. Otherwise the */
26389 - /* marker might find a random "mark descriptor". */
26390 - *(volatile ptr_t *)my_fl = obj_link(my_entry);
26391 - /* We must update the freelist before we store the pointer. */
26392 - /* Otherwise a GC at this point would see a corrupted */
26394 - /* A memory barrier is probably never needed, since the */
26395 - /* action of stopping this thread will cause prior writes */
26396 - /* to complete. */
26397 - GC_ASSERT(((void * volatile *)result)[1] == 0);
26398 - *(void * volatile *)result = ptr_to_struct_containing_descr;
26400 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
26401 - if (!GC_incremental) *my_fl = my_entry + index + 1;
26402 - /* In the incremental case, we always have to take this */
26403 - /* path. Thus we leave the counter alone. */
26404 - return GC_gcj_malloc(bytes, ptr_to_struct_containing_descr);
26406 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), GC_gcj_kind, my_fl);
26407 - if (*my_fl == 0) return GC_oom_fn(bytes);
26408 - return GC_local_gcj_malloc(bytes, ptr_to_struct_containing_descr);
26413 -#endif /* GC_GCJ_SUPPORT */
26415 -# else /* !THREAD_LOCAL_ALLOC && !DBG_HDRS_ALL */
26417 -# define GC_destroy_thread_local(t)
26419 -# endif /* !THREAD_LOCAL_ALLOC */
26423 -To make sure that we're using LinuxThreads and not some other thread
26424 -package, we generate a dummy reference to `pthread_kill_other_threads_np'
26425 -(was `__pthread_initial_thread_bos' but that disappeared),
26426 -which is a symbol defined in LinuxThreads, but (hopefully) not in other
26429 -We no longer do this, since this code is now portable enough that it might
26430 -actually work for something else.
26432 -void (*dummy_var_to_force_linux_threads)() = pthread_kill_other_threads_np;
26435 -#if defined(SPARC) || defined(IA64)
26436 - extern word GC_save_regs_in_stack();
26439 -long GC_nprocs = 1; /* Number of processors. We may not have */
26440 - /* access to all of them, but this is as good */
26441 - /* a guess as any ... */
26443 -#ifdef PARALLEL_MARK
26445 -# ifndef MAX_MARKERS
26446 -# define MAX_MARKERS 16
26449 -static ptr_t marker_sp[MAX_MARKERS] = {0};
26451 -void * GC_mark_thread(void * id)
26453 - word my_mark_no = 0;
26455 - marker_sp[(word)id] = GC_approx_sp();
26456 - for (;; ++my_mark_no) {
26457 - /* GC_mark_no is passed only to allow GC_help_marker to terminate */
26458 - /* promptly. This is important if it were called from the signal */
26459 - /* handler or from the GC lock acquisition code. Under Linux, it's */
26460 - /* not safe to call it from a signal handler, since it uses mutexes */
26461 - /* and condition variables. Since it is called only here, the */
26462 - /* argument is unnecessary. */
26463 - if (my_mark_no < GC_mark_no || my_mark_no > GC_mark_no + 2) {
26464 - /* resynchronize if we get far off, e.g. because GC_mark_no */
26466 - my_mark_no = GC_mark_no;
26468 -# ifdef DEBUG_THREADS
26469 - GC_printf1("Starting mark helper for mark number %ld\n", my_mark_no);
26471 - GC_help_marker(my_mark_no);
26475 -extern long GC_markers; /* Number of mark threads we would */
26476 - /* like to have. Includes the */
26477 - /* initiating thread. */
26479 -pthread_t GC_mark_threads[MAX_MARKERS];
26481 -#define PTHREAD_CREATE REAL_FUNC(pthread_create)
26483 -static void start_mark_threads()
26486 - pthread_attr_t attr;
26488 - if (GC_markers > MAX_MARKERS) {
26489 - WARN("Limiting number of mark threads\n", 0);
26490 - GC_markers = MAX_MARKERS;
26492 - if (0 != pthread_attr_init(&attr)) ABORT("pthread_attr_init failed");
26494 - if (0 != pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED))
26495 - ABORT("pthread_attr_setdetachstate failed");
26497 -# if defined(HPUX) || defined(GC_DGUX386_THREADS)
26498 - /* Default stack size is usually too small: fix it. */
26499 - /* Otherwise marker threads or GC may run out of */
26501 -# define MIN_STACK_SIZE (8*HBLKSIZE*sizeof(word))
26506 - if (pthread_attr_getstacksize(&attr, &old_size) != 0)
26507 - ABORT("pthread_attr_getstacksize failed\n");
26508 - if (old_size < MIN_STACK_SIZE) {
26509 - if (pthread_attr_setstacksize(&attr, MIN_STACK_SIZE) != 0)
26510 - ABORT("pthread_attr_setstacksize failed\n");
26513 -# endif /* HPUX || GC_DGUX386_THREADS */
26515 - if (GC_print_stats) {
26516 - GC_printf1("Starting %ld marker threads\n", GC_markers - 1);
26519 - for (i = 0; i < GC_markers - 1; ++i) {
26520 - if (0 != PTHREAD_CREATE(GC_mark_threads + i, &attr,
26521 - GC_mark_thread, (void *)(word)i)) {
26522 - WARN("Marker thread creation failed, errno = %ld.\n", errno);
26527 -#else /* !PARALLEL_MARK */
26529 -static __inline__ void start_mark_threads()
26533 -#endif /* !PARALLEL_MARK */
26535 -/* Defining INSTALL_LOOPING_SEGV_HANDLER causes SIGSEGV and SIGBUS to */
26536 -/* result in an infinite loop in a signal handler. This can be very */
26537 -/* useful for debugging, since (as of RH7) gdb still seems to have */
26538 -/* serious problems with threads. */
26539 -#ifdef INSTALL_LOOPING_SEGV_HANDLER
26540 -void GC_looping_handler(int sig)
26542 - GC_printf3("Signal %ld in thread %lx, pid %ld\n",
26543 - sig, pthread_self(), getpid());
26548 -GC_bool GC_thr_initialized = FALSE;
26550 -volatile GC_thread GC_threads[THREAD_TABLE_SZ];
26552 -void GC_push_thread_structures GC_PROTO((void))
26554 - GC_push_all((ptr_t)(GC_threads), (ptr_t)(GC_threads)+sizeof(GC_threads));
26555 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26556 - GC_push_all((ptr_t)(&GC_thread_key),
26557 - (ptr_t)(&GC_thread_key)+sizeof(&GC_thread_key));
26561 -#ifdef THREAD_LOCAL_ALLOC
26562 -/* We must explicitly mark ptrfree and gcj free lists, since the free */
26563 -/* list links wouldn't otherwise be found. We also set them in the */
26564 -/* normal free lists, since that involves touching less memory than if */
26565 -/* we scanned them normally. */
26566 -void GC_mark_thread_local_free_lists(void)
26572 - for (i = 0; i < THREAD_TABLE_SZ; ++i) {
26573 - for (p = GC_threads[i]; 0 != p; p = p -> next) {
26574 - for (j = 1; j < NFREELISTS; ++j) {
26575 - q = p -> ptrfree_freelists[j];
26576 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
26577 - q = p -> normal_freelists[j];
26578 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
26579 -# ifdef GC_GCJ_SUPPORT
26580 - q = p -> gcj_freelists[j];
26581 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
26582 -# endif /* GC_GCJ_SUPPORT */
26587 -#endif /* THREAD_LOCAL_ALLOC */
26589 -static struct GC_Thread_Rep first_thread;
26591 -/* Add a thread to GC_threads. We assume it wasn't already there. */
26592 -/* Caller holds allocation lock. */
26593 -GC_thread GC_new_thread(pthread_t id)
26595 - int hv = ((word)id) % THREAD_TABLE_SZ;
26596 - GC_thread result;
26597 - static GC_bool first_thread_used = FALSE;
26599 - if (!first_thread_used) {
26600 - result = &first_thread;
26601 - first_thread_used = TRUE;
26603 - result = (struct GC_Thread_Rep *)
26604 - GC_INTERNAL_MALLOC(sizeof(struct GC_Thread_Rep), NORMAL);
26606 - if (result == 0) return(0);
26607 - result -> id = id;
26608 - result -> next = GC_threads[hv];
26609 - GC_threads[hv] = result;
26610 - GC_ASSERT(result -> flags == 0 && result -> thread_blocked == 0);
26614 -/* Delete a thread from GC_threads. We assume it is there. */
26615 -/* (The code intentionally traps if it wasn't.) */
26616 -/* Caller holds allocation lock. */
26617 -void GC_delete_thread(pthread_t id)
26619 - int hv = ((word)id) % THREAD_TABLE_SZ;
26620 - register GC_thread p = GC_threads[hv];
26621 - register GC_thread prev = 0;
26623 - while (!pthread_equal(p -> id, id)) {
26628 - GC_threads[hv] = p -> next;
26630 - prev -> next = p -> next;
26632 - GC_INTERNAL_FREE(p);
26635 -/* If a thread has been joined, but we have not yet */
26636 -/* been notified, then there may be more than one thread */
26637 -/* in the table with the same pthread id. */
26638 -/* This is OK, but we need a way to delete a specific one. */
26639 -void GC_delete_gc_thread(pthread_t id, GC_thread gc_id)
26641 - int hv = ((word)id) % THREAD_TABLE_SZ;
26642 - register GC_thread p = GC_threads[hv];
26643 - register GC_thread prev = 0;
26645 - while (p != gc_id) {
26650 - GC_threads[hv] = p -> next;
26652 - prev -> next = p -> next;
26654 - GC_INTERNAL_FREE(p);
26657 -/* Return a GC_thread corresponding to a given thread_t. */
26658 -/* Returns 0 if it's not there. */
26659 -/* Caller holds allocation lock or otherwise inhibits */
26661 -/* If there is more than one thread with the given id we */
26662 -/* return the most recent one. */
26663 -GC_thread GC_lookup_thread(pthread_t id)
26665 - int hv = ((word)id) % THREAD_TABLE_SZ;
26666 - register GC_thread p = GC_threads[hv];
26668 - while (p != 0 && !pthread_equal(p -> id, id)) p = p -> next;
26672 -#ifdef HANDLE_FORK
26673 -/* Remove all entries from the GC_threads table, except the */
26674 -/* one for the current thread. We need to do this in the child */
26675 -/* process after a fork(), since only the current thread */
26676 -/* survives in the child. */
26677 -void GC_remove_all_threads_but_me(void)
26679 - pthread_t self = pthread_self();
26681 - GC_thread p, next, me;
26683 - for (hv = 0; hv < THREAD_TABLE_SZ; ++hv) {
26685 - for (p = GC_threads[hv]; 0 != p; p = next) {
26686 - next = p -> next;
26687 - if (p -> id == self) {
26691 -# ifdef THREAD_LOCAL_ALLOC
26692 - if (!(p -> flags & FINISHED)) {
26693 - GC_destroy_thread_local(p);
26695 -# endif /* THREAD_LOCAL_ALLOC */
26696 - if (p != &first_thread) GC_INTERNAL_FREE(p);
26699 - GC_threads[hv] = me;
26702 -#endif /* HANDLE_FORK */
26704 -#ifdef USE_PROC_FOR_LIBRARIES
26705 -int GC_segment_is_thread_stack(ptr_t lo, ptr_t hi)
26710 -# ifdef PARALLEL_MARK
26711 - for (i = 0; i < GC_markers; ++i) {
26712 - if (marker_sp[i] > lo & marker_sp[i] < hi) return 1;
26715 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
26716 - for (p = GC_threads[i]; p != 0; p = p -> next) {
26717 - if (0 != p -> stack_end) {
26718 -# ifdef STACK_GROWS_UP
26719 - if (p -> stack_end >= lo && p -> stack_end < hi) return 1;
26720 -# else /* STACK_GROWS_DOWN */
26721 - if (p -> stack_end > lo && p -> stack_end <= hi) return 1;
26728 -#endif /* USE_PROC_FOR_LIBRARIES */
26730 -#ifdef GC_LINUX_THREADS
26731 -/* Return the number of processors, or i<= 0 if it can't be determined. */
26732 -int GC_get_nprocs()
26734 - /* Should be "return sysconf(_SC_NPROCESSORS_ONLN);" but that */
26735 - /* appears to be buggy in many cases. */
26736 - /* We look for lines "cpu<n>" in /proc/stat. */
26737 -# define STAT_BUF_SIZE 4096
26738 -# define STAT_READ read
26739 - /* If read is wrapped, this may need to be redefined to call */
26740 - /* the real one. */
26741 - char stat_buf[STAT_BUF_SIZE];
26744 - /* Some old kernels only have a single "cpu nnnn ..." */
26745 - /* entry in /proc/stat. We identify those as */
26746 - /* uniprocessors. */
26747 - size_t i, len = 0;
26749 - f = open("/proc/stat", O_RDONLY);
26750 - if (f < 0 || (len = STAT_READ(f, stat_buf, STAT_BUF_SIZE)) < 100) {
26751 - WARN("Couldn't read /proc/stat\n", 0);
26754 - for (i = 0; i < len - 100; ++i) {
26755 - if (stat_buf[i] == '\n' && stat_buf[i+1] == 'c'
26756 - && stat_buf[i+2] == 'p' && stat_buf[i+3] == 'u') {
26757 - int cpu_no = atoi(stat_buf + i + 4);
26758 - if (cpu_no >= result) result = cpu_no + 1;
26764 -#endif /* GC_LINUX_THREADS */
26766 -/* We hold the GC lock. Wait until an in-progress GC has finished. */
26767 -/* Repeatedly RELEASES GC LOCK in order to wait. */
26768 -/* If wait_for_all is true, then we exit with the GC lock held and no */
26769 -/* collection in progress; otherwise we just wait for the current GC */
26771 -extern GC_bool GC_collection_in_progress();
26772 -void GC_wait_for_gc_completion(GC_bool wait_for_all)
26774 - if (GC_incremental && GC_collection_in_progress()) {
26775 - int old_gc_no = GC_gc_no;
26777 - /* Make sure that no part of our stack is still on the mark stack, */
26778 - /* since it's about to be unmapped. */
26779 - while (GC_incremental && GC_collection_in_progress()
26780 - && (wait_for_all || old_gc_no == GC_gc_no)) {
26782 - GC_collect_a_little_inner(1);
26791 -#ifdef HANDLE_FORK
26792 -/* Procedures called before and after a fork. The goal here is to make */
26793 -/* it safe to call GC_malloc() in a forked child. It's unclear that is */
26794 -/* attainable, since the single UNIX spec seems to imply that one */
26795 -/* should only call async-signal-safe functions, and we probably can't */
26796 -/* quite guarantee that. But we give it our best shot. (That same */
26797 -/* spec also implies that it's not safe to call the system malloc */
26798 -/* between fork() and exec(). Thus we're doing no worse than it. */
26800 -/* Called before a fork() */
26801 -void GC_fork_prepare_proc(void)
26803 - /* Acquire all relevant locks, so that after releasing the locks */
26804 - /* the child will see a consistent state in which monitor */
26805 - /* invariants hold. Unfortunately, we can't acquire libc locks */
26806 - /* we might need, and there seems to be no guarantee that libc */
26807 - /* must install a suitable fork handler. */
26808 - /* Wait for an ongoing GC to finish, since we can't finish it in */
26809 - /* the (one remaining thread in) the child. */
26811 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26812 - GC_wait_for_reclaim();
26814 - GC_wait_for_gc_completion(TRUE);
26815 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26816 - GC_acquire_mark_lock();
26820 -/* Called in parent after a fork() */
26821 -void GC_fork_parent_proc(void)
26823 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26824 - GC_release_mark_lock();
26829 -/* Called in child after a fork() */
26830 -void GC_fork_child_proc(void)
26832 - /* Clean up the thread table, so that just our thread is left. */
26833 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26834 - GC_release_mark_lock();
26836 - GC_remove_all_threads_but_me();
26837 -# ifdef PARALLEL_MARK
26838 - /* Turn off parallel marking in the child, since we are probably */
26839 - /* just going to exec, and we would have to restart mark threads. */
26841 - GC_parallel = FALSE;
26842 -# endif /* PARALLEL_MARK */
26845 -#endif /* HANDLE_FORK */
26847 -#if defined(GC_DGUX386_THREADS)
26848 -/* Return the number of processors, or i<= 0 if it can't be determined. */
26849 -int GC_get_nprocs()
26851 - /* <takis@XFree86.Org> */
26853 - struct dg_sys_info_pm_info pm_sysinfo;
26856 - status = dg_sys_info((long int *) &pm_sysinfo,
26857 - DG_SYS_INFO_PM_INFO_TYPE, DG_SYS_INFO_PM_CURRENT_VERSION);
26859 - /* set -1 for error */
26862 - /* Active CPUs */
26863 - numCpus = pm_sysinfo.idle_vp_count;
26865 -# ifdef DEBUG_THREADS
26866 - GC_printf1("Number of active CPUs in this system: %d\n", numCpus);
26870 -#endif /* GC_DGUX386_THREADS */
26872 -/* We hold the allocation lock. */
26873 -void GC_thr_init()
26875 -# ifndef GC_DARWIN_THREADS
26880 - if (GC_thr_initialized) return;
26881 - GC_thr_initialized = TRUE;
26883 -# ifdef HANDLE_FORK
26884 - /* Prepare for a possible fork. */
26885 - pthread_atfork(GC_fork_prepare_proc, GC_fork_parent_proc,
26886 - GC_fork_child_proc);
26887 -# endif /* HANDLE_FORK */
26888 - /* Add the initial thread, so we can stop it. */
26889 - t = GC_new_thread(pthread_self());
26890 -# ifdef GC_DARWIN_THREADS
26891 - t -> stop_info.mach_thread = mach_thread_self();
26893 - t -> stop_info.stack_ptr = (ptr_t)(&dummy);
26895 - t -> flags = DETACHED | MAIN_THREAD;
26899 - /* Set GC_nprocs. */
26901 - char * nprocs_string = GETENV("GC_NPROCS");
26903 - if (nprocs_string != NULL) GC_nprocs = atoi(nprocs_string);
26905 - if (GC_nprocs <= 0) {
26906 -# if defined(GC_HPUX_THREADS)
26907 - GC_nprocs = pthread_num_processors_np();
26909 -# if defined(GC_OSF1_THREADS)
26910 - GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN);
26911 - if (GC_nprocs <= 0) GC_nprocs = 1;
26913 -# if defined(GC_FREEBSD_THREADS)
26916 -# if defined(GC_DARWIN_THREADS)
26918 - size_t len = sizeof(ncpus);
26919 - sysctl((int[2]) {CTL_HW, HW_NCPU}, 2, &ncpus, &len, NULL, 0);
26920 - GC_nprocs = ncpus;
26922 -# if defined(GC_LINUX_THREADS) || defined(GC_DGUX386_THREADS)
26923 - GC_nprocs = GC_get_nprocs();
26926 - if (GC_nprocs <= 0) {
26927 - WARN("GC_get_nprocs() returned %ld\n", GC_nprocs);
26929 -# ifdef PARALLEL_MARK
26933 -# ifdef PARALLEL_MARK
26935 - char * markers_string = GETENV("GC_MARKERS");
26936 - if (markers_string != NULL) {
26937 - GC_markers = atoi(markers_string);
26939 - GC_markers = GC_nprocs;
26944 -# ifdef PARALLEL_MARK
26946 - if (GC_print_stats) {
26947 - GC_printf2("Number of processors = %ld, "
26948 - "number of marker threads = %ld\n", GC_nprocs, GC_markers);
26951 - if (GC_markers == 1) {
26952 - GC_parallel = FALSE;
26954 - if (GC_print_stats) {
26955 - GC_printf0("Single marker thread, turning off parallel marking\n");
26959 - GC_parallel = TRUE;
26960 - /* Disable true incremental collection, but generational is OK. */
26961 - GC_time_limit = GC_TIME_UNLIMITED;
26967 -/* Perform all initializations, including those that */
26968 -/* may require allocation. */
26969 -/* Called without allocation lock. */
26970 -/* Must be called before a second thread is created. */
26971 -/* Called without allocation lock. */
26972 -void GC_init_parallel()
26974 - if (parallel_initialized) return;
26975 - parallel_initialized = TRUE;
26977 - /* GC_init() calls us back, so set flag first. */
26978 - if (!GC_is_initialized) GC_init();
26979 - /* If we are using a parallel marker, start the helper threads. */
26980 -# ifdef PARALLEL_MARK
26981 - if (GC_parallel) start_mark_threads();
26983 - /* Initialize thread local free lists if used. */
26984 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26986 - GC_init_thread_local(GC_lookup_thread(pthread_self()));
26992 -#if !defined(GC_DARWIN_THREADS)
26993 -int WRAP_FUNC(pthread_sigmask)(int how, const sigset_t *set, sigset_t *oset)
26995 - sigset_t fudged_set;
26997 - if (set != NULL && (how == SIG_BLOCK || how == SIG_SETMASK)) {
26998 - fudged_set = *set;
26999 - sigdelset(&fudged_set, SIG_SUSPEND);
27000 - set = &fudged_set;
27002 - return(REAL_FUNC(pthread_sigmask)(how, set, oset));
27004 -#endif /* !GC_DARWIN_THREADS */
27006 -/* Wrappers for functions that are likely to block for an appreciable */
27007 -/* length of time. Must be called in pairs, if at all. */
27008 -/* Nothing much beyond the system call itself should be executed */
27009 -/* between these. */
27011 -void GC_start_blocking(void) {
27012 -# define SP_SLOP 128
27015 - me = GC_lookup_thread(pthread_self());
27016 - GC_ASSERT(!(me -> thread_blocked));
27018 - me -> stop_info.stack_ptr = (ptr_t)GC_save_regs_in_stack();
27020 -# ifndef GC_DARWIN_THREADS
27021 - me -> stop_info.stack_ptr = (ptr_t)GC_approx_sp();
27025 - me -> backing_store_ptr = (ptr_t)GC_save_regs_in_stack() + SP_SLOP;
27027 - /* Add some slop to the stack pointer, since the wrapped call may */
27028 - /* end up pushing more callee-save registers. */
27029 -# ifndef GC_DARWIN_THREADS
27030 -# ifdef STACK_GROWS_UP
27031 - me -> stop_info.stack_ptr += SP_SLOP;
27033 - me -> stop_info.stack_ptr -= SP_SLOP;
27036 - me -> thread_blocked = TRUE;
27040 -void GC_end_blocking(void) {
27042 - LOCK(); /* This will block if the world is stopped. */
27043 - me = GC_lookup_thread(pthread_self());
27044 - GC_ASSERT(me -> thread_blocked);
27045 - me -> thread_blocked = FALSE;
27049 -#if defined(GC_DGUX386_THREADS)
27050 -#define __d10_sleep sleep
27051 -#endif /* GC_DGUX386_THREADS */
27053 -/* A wrapper for the standard C sleep function */
27054 -int WRAP_FUNC(sleep) (unsigned int seconds)
27058 - GC_start_blocking();
27059 - result = REAL_FUNC(sleep)(seconds);
27060 - GC_end_blocking();
27064 -struct start_info {
27065 - void *(*start_routine)(void *);
27068 - sem_t registered; /* 1 ==> in our thread table, but */
27069 - /* parent hasn't yet noticed. */
27072 -/* Called at thread exit. */
27073 -/* Never called for main thread. That's OK, since it */
27074 -/* results in at most a tiny one-time leak. And */
27075 -/* linuxthreads doesn't reclaim the main threads */
27076 -/* resources or id anyway. */
27077 -void GC_thread_exit_proc(void *arg)
27082 - me = GC_lookup_thread(pthread_self());
27083 - GC_destroy_thread_local(me);
27084 - if (me -> flags & DETACHED) {
27085 - GC_delete_thread(pthread_self());
27087 - me -> flags |= FINISHED;
27089 -# if defined(THREAD_LOCAL_ALLOC) && !defined(USE_PTHREAD_SPECIFIC) \
27090 - && !defined(USE_HPUX_TLS) && !defined(DBG_HDRS_ALL)
27091 - GC_remove_specific(GC_thread_key);
27093 - GC_wait_for_gc_completion(FALSE);
27097 -int WRAP_FUNC(pthread_join)(pthread_t thread, void **retval)
27100 - GC_thread thread_gc_id;
27103 - thread_gc_id = GC_lookup_thread(thread);
27104 - /* This is guaranteed to be the intended one, since the thread id */
27105 - /* cant have been recycled by pthreads. */
27107 - result = REAL_FUNC(pthread_join)(thread, retval);
27108 -# if defined (GC_FREEBSD_THREADS)
27109 - /* On FreeBSD, the wrapped pthread_join() sometimes returns (what
27110 - appears to be) a spurious EINTR which caused the test and real code
27111 - to gratuitously fail. Having looked at system pthread library source
27112 - code, I see how this return code may be generated. In one path of
27113 - code, pthread_join() just returns the errno setting of the thread
27114 - being joined. This does not match the POSIX specification or the
27115 - local man pages thus I have taken the liberty to catch this one
27116 - spurious return value properly conditionalized on GC_FREEBSD_THREADS. */
27117 - if (result == EINTR) result = 0;
27119 - if (result == 0) {
27121 - /* Here the pthread thread id may have been recycled. */
27122 - GC_delete_gc_thread(thread, thread_gc_id);
27129 -WRAP_FUNC(pthread_detach)(pthread_t thread)
27132 - GC_thread thread_gc_id;
27135 - thread_gc_id = GC_lookup_thread(thread);
27137 - result = REAL_FUNC(pthread_detach)(thread);
27138 - if (result == 0) {
27140 - thread_gc_id -> flags |= DETACHED;
27141 - /* Here the pthread thread id may have been recycled. */
27142 - if (thread_gc_id -> flags & FINISHED) {
27143 - GC_delete_gc_thread(thread, thread_gc_id);
27150 -void * GC_start_routine(void * arg)
27153 - struct start_info * si = arg;
27156 - pthread_t my_pthread;
27157 - void *(*start)(void *);
27160 - my_pthread = pthread_self();
27161 -# ifdef DEBUG_THREADS
27162 - GC_printf1("Starting thread 0x%lx\n", my_pthread);
27163 - GC_printf1("pid = %ld\n", (long) getpid());
27164 - GC_printf1("sp = 0x%lx\n", (long) &arg);
27167 - me = GC_new_thread(my_pthread);
27168 -#ifdef GC_DARWIN_THREADS
27169 - me -> stop_info.mach_thread = mach_thread_self();
27171 - me -> stop_info.stack_ptr = 0;
27173 - me -> flags = si -> flags;
27174 - /* me -> stack_end = GC_linux_stack_base(); -- currently (11/99) */
27175 - /* doesn't work because the stack base in /proc/self/stat is the */
27176 - /* one for the main thread. There is a strong argument that that's */
27177 - /* a kernel bug, but a pervasive one. */
27178 -# ifdef STACK_GROWS_DOWN
27179 - me -> stack_end = (ptr_t)(((word)(&dummy) + (GC_page_size - 1))
27180 - & ~(GC_page_size - 1));
27181 -# ifndef GC_DARWIN_THREADS
27182 - me -> stop_info.stack_ptr = me -> stack_end - 0x10;
27184 - /* Needs to be plausible, since an asynchronous stack mark */
27185 - /* should not crash. */
27187 - me -> stack_end = (ptr_t)((word)(&dummy) & ~(GC_page_size - 1));
27188 - me -> stop_info.stack_ptr = me -> stack_end + 0x10;
27190 - /* This is dubious, since we may be more than a page into the stack, */
27191 - /* and hence skip some of it, though it's not clear that matters. */
27193 - me -> backing_store_end = (ptr_t)
27194 - (GC_save_regs_in_stack() & ~(GC_page_size - 1));
27195 - /* This is also < 100% convincing. We should also read this */
27196 - /* from /proc, but the hook to do so isn't there yet. */
27197 -# endif /* IA64 */
27199 - start = si -> start_routine;
27200 -# ifdef DEBUG_THREADS
27201 - GC_printf1("start_routine = 0x%lx\n", start);
27203 - start_arg = si -> arg;
27204 - sem_post(&(si -> registered)); /* Last action on si. */
27205 - /* OK to deallocate. */
27206 - pthread_cleanup_push(GC_thread_exit_proc, 0);
27207 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
27209 - GC_init_thread_local(me);
27212 - result = (*start)(start_arg);
27214 - GC_printf1("Finishing thread 0x%x\n", pthread_self());
27216 - me -> status = result;
27217 - me -> flags |= FINISHED;
27218 - pthread_cleanup_pop(1);
27219 - /* Cleanup acquires lock, ensuring that we can't exit */
27220 - /* while a collection that thinks we're alive is trying to stop */
27226 -WRAP_FUNC(pthread_create)(pthread_t *new_thread,
27227 - const pthread_attr_t *attr,
27228 - void *(*start_routine)(void *), void *arg)
27232 - word my_flags = 0;
27233 - struct start_info * si;
27234 - /* This is otherwise saved only in an area mmapped by the thread */
27235 - /* library, which isn't visible to the collector. */
27237 - /* We resist the temptation to muck with the stack size here, */
27238 - /* even if the default is unreasonably small. That's the client's */
27239 - /* responsibility. */
27242 - si = (struct start_info *)GC_INTERNAL_MALLOC(sizeof(struct start_info),
27245 - if (!parallel_initialized) GC_init_parallel();
27246 - if (0 == si) return(ENOMEM);
27247 - sem_init(&(si -> registered), 0, 0);
27248 - si -> start_routine = start_routine;
27251 - if (!GC_thr_initialized) GC_thr_init();
27252 -# ifdef GC_ASSERTIONS
27255 - if (NULL == attr) {
27256 - pthread_attr_t my_attr;
27257 - pthread_attr_init(&my_attr);
27258 - pthread_attr_getstacksize(&my_attr, &stack_size);
27260 - pthread_attr_getstacksize(attr, &stack_size);
27262 - GC_ASSERT(stack_size >= (8*HBLKSIZE*sizeof(word)));
27263 - /* Our threads may need to do some work for the GC. */
27264 - /* Ridiculously small threads won't work, and they */
27265 - /* probably wouldn't work anyway. */
27268 - if (NULL == attr) {
27269 - detachstate = PTHREAD_CREATE_JOINABLE;
27271 - pthread_attr_getdetachstate(attr, &detachstate);
27273 - if (PTHREAD_CREATE_DETACHED == detachstate) my_flags |= DETACHED;
27274 - si -> flags = my_flags;
27276 -# ifdef DEBUG_THREADS
27277 - GC_printf1("About to start new thread from thread 0x%X\n",
27281 - result = REAL_FUNC(pthread_create)(new_thread, attr, GC_start_routine, si);
27283 -# ifdef DEBUG_THREADS
27284 - GC_printf1("Started thread 0x%X\n", *new_thread);
27286 - /* Wait until child has been added to the thread table. */
27287 - /* This also ensures that we hold onto si until the child is done */
27288 - /* with it. Thus it doesn't matter whether it is otherwise */
27289 - /* visible to the collector. */
27290 - while (0 != sem_wait(&(si -> registered))) {
27291 - if (EINTR != errno) ABORT("sem_wait failed");
27293 - sem_destroy(&(si -> registered));
27295 - GC_INTERNAL_FREE(si);
27301 -#ifdef GENERIC_COMPARE_AND_SWAP
27302 - pthread_mutex_t GC_compare_and_swap_lock = PTHREAD_MUTEX_INITIALIZER;
27304 - GC_bool GC_compare_and_exchange(volatile GC_word *addr,
27305 - GC_word old, GC_word new_val)
27308 - pthread_mutex_lock(&GC_compare_and_swap_lock);
27309 - if (*addr == old) {
27315 - pthread_mutex_unlock(&GC_compare_and_swap_lock);
27319 - GC_word GC_atomic_add(volatile GC_word *addr, GC_word how_much)
27322 - pthread_mutex_lock(&GC_compare_and_swap_lock);
27324 - *addr = old + how_much;
27325 - pthread_mutex_unlock(&GC_compare_and_swap_lock);
27329 -#endif /* GENERIC_COMPARE_AND_SWAP */
27330 -/* Spend a few cycles in a way that can't introduce contention with */
27331 -/* othre threads. */
27336 - volatile word dummy = 0;
27339 - for (i = 0; i < 10; ++i) {
27341 - __asm__ __volatile__ (" " : : : "memory");
27343 - /* Something that's unlikely to be optimized away. */
27344 - GC_noop(++dummy);
27349 -#define SPIN_MAX 1024 /* Maximum number of calls to GC_pause before */
27352 -VOLATILE GC_bool GC_collecting = 0;
27353 - /* A hint that we're in the collector and */
27354 - /* holding the allocation lock for an */
27355 - /* extended period. */
27357 -#if !defined(USE_SPIN_LOCK) || defined(PARALLEL_MARK)
27358 -/* If we don't want to use the below spinlock implementation, either */
27359 -/* because we don't have a GC_test_and_set implementation, or because */
27360 -/* we don't want to risk sleeping, we can still try spinning on */
27361 -/* pthread_mutex_trylock for a while. This appears to be very */
27362 -/* beneficial in many cases. */
27363 -/* I suspect that under high contention this is nearly always better */
27364 -/* than the spin lock. But it's a bit slower on a uniprocessor. */
27365 -/* Hence we still default to the spin lock. */
27366 -/* This is also used to acquire the mark lock for the parallel */
27369 -/* Here we use a strict exponential backoff scheme. I don't know */
27370 -/* whether that's better or worse than the above. We eventually */
27371 -/* yield by calling pthread_mutex_lock(); it never makes sense to */
27372 -/* explicitly sleep. */
27374 -void GC_generic_lock(pthread_mutex_t * lock)
27376 -#ifndef NO_PTHREAD_TRYLOCK
27377 - unsigned pause_length = 1;
27380 - if (0 == pthread_mutex_trylock(lock)) return;
27381 - for (; pause_length <= SPIN_MAX; pause_length <<= 1) {
27382 - for (i = 0; i < pause_length; ++i) {
27385 - switch(pthread_mutex_trylock(lock)) {
27391 - ABORT("Unexpected error from pthread_mutex_trylock");
27394 -#endif /* !NO_PTHREAD_TRYLOCK */
27395 - pthread_mutex_lock(lock);
27398 -#endif /* !USE_SPIN_LOCK || PARALLEL_MARK */
27400 -#if defined(USE_SPIN_LOCK)
27402 -/* Reasonably fast spin locks. Basically the same implementation */
27403 -/* as STL alloc.h. This isn't really the right way to do this. */
27404 -/* but until the POSIX scheduling mess gets straightened out ... */
27406 -volatile unsigned int GC_allocate_lock = 0;
27411 -# define low_spin_max 30 /* spin cycles if we suspect uniprocessor */
27412 -# define high_spin_max SPIN_MAX /* spin cycles for multiprocessor */
27413 - static unsigned spin_max = low_spin_max;
27414 - unsigned my_spin_max;
27415 - static unsigned last_spins = 0;
27416 - unsigned my_last_spins;
27419 - if (!GC_test_and_set(&GC_allocate_lock)) {
27422 - my_spin_max = spin_max;
27423 - my_last_spins = last_spins;
27424 - for (i = 0; i < my_spin_max; i++) {
27425 - if (GC_collecting || GC_nprocs == 1) goto yield;
27426 - if (i < my_last_spins/2 || GC_allocate_lock) {
27430 - if (!GC_test_and_set(&GC_allocate_lock)) {
27433 - * Spinning worked. Thus we're probably not being scheduled
27434 - * against the other process with which we were contending.
27435 - * Thus it makes sense to spin longer the next time.
27438 - spin_max = high_spin_max;
27442 - /* We are probably being scheduled against the other process. Sleep. */
27443 - spin_max = low_spin_max;
27445 - for (i = 0;; ++i) {
27446 - if (!GC_test_and_set(&GC_allocate_lock)) {
27449 -# define SLEEP_THRESHOLD 12
27450 - /* Under Linux very short sleeps tend to wait until */
27451 - /* the current time quantum expires. On old Linux */
27452 - /* kernels nanosleep(<= 2ms) just spins under Linux. */
27453 - /* (Under 2.4, this happens only for real-time */
27454 - /* processes.) We want to minimize both behaviors */
27456 - if (i < SLEEP_THRESHOLD) {
27459 - struct timespec ts;
27461 - if (i > 24) i = 24;
27462 - /* Don't wait for more than about 15msecs, even */
27463 - /* under extreme contention. */
27465 - ts.tv_nsec = 1 << i;
27466 - nanosleep(&ts, 0);
27471 -#else /* !USE_SPINLOCK */
27474 -#ifndef NO_PTHREAD_TRYLOCK
27475 - if (1 == GC_nprocs || GC_collecting) {
27476 - pthread_mutex_lock(&GC_allocate_ml);
27478 - GC_generic_lock(&GC_allocate_ml);
27480 -#else /* !NO_PTHREAD_TRYLOCK */
27481 - pthread_mutex_lock(&GC_allocate_ml);
27482 -#endif /* !NO_PTHREAD_TRYLOCK */
27485 -#endif /* !USE_SPINLOCK */
27487 -#if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
27489 -#ifdef GC_ASSERTIONS
27490 - pthread_t GC_mark_lock_holder = NO_THREAD;
27494 - /* Ugly workaround for a linux threads bug in the final versions */
27495 - /* of glibc2.1. Pthread_mutex_trylock sets the mutex owner */
27496 - /* field even when it fails to acquire the mutex. This causes */
27497 - /* pthread_cond_wait to die. Remove for glibc2.2. */
27498 - /* According to the man page, we should use */
27499 - /* PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP, but that isn't actually */
27501 - static pthread_mutex_t mark_mutex =
27502 - {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, {0, 0}};
27504 - static pthread_mutex_t mark_mutex = PTHREAD_MUTEX_INITIALIZER;
27507 -static pthread_cond_t builder_cv = PTHREAD_COND_INITIALIZER;
27509 -void GC_acquire_mark_lock()
27512 - if (pthread_mutex_lock(&mark_mutex) != 0) {
27513 - ABORT("pthread_mutex_lock failed");
27516 - GC_generic_lock(&mark_mutex);
27517 -# ifdef GC_ASSERTIONS
27518 - GC_mark_lock_holder = pthread_self();
27522 -void GC_release_mark_lock()
27524 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27525 -# ifdef GC_ASSERTIONS
27526 - GC_mark_lock_holder = NO_THREAD;
27528 - if (pthread_mutex_unlock(&mark_mutex) != 0) {
27529 - ABORT("pthread_mutex_unlock failed");
27533 -/* Collector must wait for a freelist builders for 2 reasons: */
27534 -/* 1) Mark bits may still be getting examined without lock. */
27535 -/* 2) Partial free lists referenced only by locals may not be scanned */
27536 -/* correctly, e.g. if they contain "pointer-free" objects, since the */
27537 -/* free-list link may be ignored. */
27538 -void GC_wait_builder()
27540 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27541 -# ifdef GC_ASSERTIONS
27542 - GC_mark_lock_holder = NO_THREAD;
27544 - if (pthread_cond_wait(&builder_cv, &mark_mutex) != 0) {
27545 - ABORT("pthread_cond_wait failed");
27547 - GC_ASSERT(GC_mark_lock_holder == NO_THREAD);
27548 -# ifdef GC_ASSERTIONS
27549 - GC_mark_lock_holder = pthread_self();
27553 -void GC_wait_for_reclaim()
27555 - GC_acquire_mark_lock();
27556 - while (GC_fl_builder_count > 0) {
27557 - GC_wait_builder();
27559 - GC_release_mark_lock();
27562 -void GC_notify_all_builder()
27564 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27565 - if (pthread_cond_broadcast(&builder_cv) != 0) {
27566 - ABORT("pthread_cond_broadcast failed");
27570 -#endif /* PARALLEL_MARK || THREAD_LOCAL_ALLOC */
27572 -#ifdef PARALLEL_MARK
27574 -static pthread_cond_t mark_cv = PTHREAD_COND_INITIALIZER;
27576 -void GC_wait_marker()
27578 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27579 -# ifdef GC_ASSERTIONS
27580 - GC_mark_lock_holder = NO_THREAD;
27582 - if (pthread_cond_wait(&mark_cv, &mark_mutex) != 0) {
27583 - ABORT("pthread_cond_wait failed");
27585 - GC_ASSERT(GC_mark_lock_holder == NO_THREAD);
27586 -# ifdef GC_ASSERTIONS
27587 - GC_mark_lock_holder = pthread_self();
27591 -void GC_notify_all_marker()
27593 - if (pthread_cond_broadcast(&mark_cv) != 0) {
27594 - ABORT("pthread_cond_broadcast failed");
27598 -#endif /* PARALLEL_MARK */
27600 -# endif /* GC_LINUX_THREADS and friends */
27602 diff -Nur ../boehm-gc/ptr_chck.c boehm-gc/ptr_chck.c
27603 --- ../boehm-gc/ptr_chck.c Mon May 26 12:48:52 2003
27604 +++ boehm-gc/ptr_chck.c Fri Aug 17 11:30:46 2001
27608 sz = WORDS_TO_BYTES(hhdr -> hb_sz);
27609 - if (sz > MAXOBJBYTES) {
27610 + if (sz > WORDS_TO_BYTES(MAXOBJSZ)) {
27611 base = (ptr_t)HBLKPTR(p);
27613 if ((ptr_t)p >= limit) {
27614 @@ -165,7 +165,7 @@
27615 pdispl = HBLKDISPL(p);
27616 map_entry = MAP_ENTRY((hhdr -> hb_map), pdispl);
27617 if (map_entry == OBJ_INVALID
27618 - || sz > MAXOBJBYTES && (ptr_t)p >= (ptr_t)h + sz) {
27619 + || sz > MAXOBJSZ && (ptr_t)p >= (ptr_t)h + sz) {
27623 diff -Nur ../boehm-gc/reclaim.c boehm-gc/reclaim.c
27624 --- ../boehm-gc/reclaim.c Mon May 26 12:48:52 2003
27625 +++ boehm-gc/reclaim.c Fri Mar 29 14:52:12 2002
27626 @@ -27,61 +27,23 @@
27628 #endif /* PARALLEL_MARK */
27630 -/* We defer printing of leaked objects until we're done with the GC */
27631 -/* cycle, since the routine for printing objects needs to run outside */
27632 -/* the collector, e.g. without the allocation lock. */
27633 -#define MAX_LEAKED 40
27634 -ptr_t GC_leaked[MAX_LEAKED];
27635 -unsigned GC_n_leaked = 0;
27637 -GC_bool GC_have_errors = FALSE;
27639 -void GC_add_leaked(leaked)
27642 - if (GC_n_leaked < MAX_LEAKED) {
27643 - GC_have_errors = TRUE;
27644 - GC_leaked[GC_n_leaked++] = leaked;
27645 - /* Make sure it's not reclaimed this cycle */
27646 - GC_set_mark_bit(leaked);
27650 -static GC_bool printing_errors = FALSE;
27651 -/* Print all objects on the list after printing any smashed objs. */
27652 -/* Clear both lists. */
27653 -void GC_print_all_errors ()
27654 +static void report_leak(p, sz)
27661 - if (printing_errors) {
27665 - printing_errors = TRUE;
27667 - if (GC_debugging_started) GC_print_all_smashed();
27668 - for (i = 0; i < GC_n_leaked; ++i) {
27669 - ptr_t p = GC_leaked[i];
27670 - if (HDR(p) -> hb_obj_kind == PTRFREE) {
27671 - GC_err_printf0("Leaked atomic object at ");
27673 - GC_err_printf0("Leaked composite object at ");
27675 - GC_print_heap_obj(p);
27676 - GC_err_printf0("\n");
27678 - GC_leaked[i] = 0;
27679 + if (HDR(p) -> hb_obj_kind == PTRFREE) {
27680 + GC_err_printf0("Leaked atomic object at ");
27682 + GC_err_printf0("Leaked composite object at ");
27685 - printing_errors = FALSE;
27686 + GC_print_heap_obj(p);
27687 + GC_err_printf0("\n");
27691 # define FOUND_FREE(hblk, word_no) \
27693 - GC_add_leaked((ptr_t)hblk + WORDS_TO_BYTES(word_no)); \
27694 + report_leak((ptr_t)hblk + WORDS_TO_BYTES(word_no), \
27695 + HDR(hblk) -> hb_sz); \
27699 @@ -904,7 +866,7 @@
27701 * This must be done before dropping a list of free gcj-style objects,
27702 * since may otherwise end up with dangling "descriptor" pointers.
27703 - * It may help for other pointer-containing objects.
27704 + * It may help for other pointer-containg objects.
27706 void GC_clear_fl_links(flp)
27708 diff -Nur ../boehm-gc/solaris_pthreads.c boehm-gc/solaris_pthreads.c
27709 --- ../boehm-gc/solaris_pthreads.c Mon May 26 12:48:52 2003
27710 +++ boehm-gc/solaris_pthreads.c Mon Feb 11 20:37:53 2002
27713 * Support code for Solaris threads. Provides functionality we wish Sun
27714 * had provided. Relies on some information we probably shouldn't rely on.
27715 - * Modified by Peter C. for Solaris Posix Threads.
27716 + * Modified Peter C. for Solaris Posix Threads.
27718 +/* Boehm, September 14, 1994 4:44 pm PDT */
27720 # if defined(GC_SOLARIS_PTHREADS)
27721 # include "private/gc_priv.h"
27722 diff -Nur ../boehm-gc/solaris_threads.c boehm-gc/solaris_threads.c
27723 --- ../boehm-gc/solaris_threads.c Mon May 26 12:48:52 2003
27724 +++ boehm-gc/solaris_threads.c Mon Feb 11 20:37:53 2002
27726 # include <unistd.h>
27727 # include <errno.h>
27729 -#ifdef HANDLE_FORK
27730 - --> Not yet supported. Try porting the code from linux_threads.c.
27734 * This is the default size of the LWP arrays. If there are more LWPs
27735 * than this when a stop-the-world GC happens, set_max_lwps will be
27736 @@ -365,7 +361,7 @@
27737 sizeof (prgregset_t)) != 0) {
27740 - for(j = 0; j < NPRGREG; j++)
27741 + for(j = 0; j < NGREG; j++)
27743 GC_printf3("%i: %x -> %x\n", j,
27744 GC_lwp_registers[i][j],
27745 @@ -825,7 +821,7 @@
27747 t = GC_lookup_thread(target_thread);
27748 if (t == 0) ABORT("thread unknown to GC");
27749 - t -> flags |= SUSPNDED;
27750 + t -> flags |= SUSPENDED;
27754 @@ -841,7 +837,7 @@
27756 t = GC_lookup_thread(target_thread);
27757 if (t == 0) ABORT("thread unknown to GC");
27758 - t -> flags &= ~SUSPNDED;
27759 + t -> flags &= ~SUSPENDED;
27763 @@ -927,7 +923,7 @@
27764 my_flags |= CLIENT_OWNS_STACK;
27766 if (flags & THR_DETACHED) my_flags |= DETACHED;
27767 - if (flags & THR_SUSPENDED) my_flags |= SUSPNDED;
27768 + if (flags & THR_SUSPENDED) my_flags |= SUSPENDED;
27769 result = thr_create(stack, stack_size, start_routine,
27770 arg, flags & ~THR_DETACHED, &my_new_thread);
27772 diff -Nur ../boehm-gc/sparc_mach_dep.S boehm-gc/sparc_mach_dep.S
27773 --- ../boehm-gc/sparc_mach_dep.S Mon May 26 12:48:52 2003
27774 +++ boehm-gc/sparc_mach_dep.S Thu Feb 14 16:09:29 2002
27776 stx %g0,[%o3] ! *(long *)p = 0
27778 bgu,pt %xcc, loop ! if (p > limit) goto loop
27779 - add %o3,-8,%o3 ! p -= 8 (delay slot)
27780 + add %o3,-8,%o3 ! p -= 8 (delay slot)
27782 mov %o2,%sp ! Restore sp., delay slot
27783 #else /* 32 bit SPARC */
27784 diff -Nur ../boehm-gc/tests/CVS/Entries boehm-gc/tests/CVS/Entries
27785 --- ../boehm-gc/tests/CVS/Entries Sun May 25 12:49:10 2003
27786 +++ boehm-gc/tests/CVS/Entries Wed Dec 31 16:00:00 1969
27788 -/leak_test.c/1.2/Fri Sep 14 00:43:59 2001//
27789 -/test.c/1.4/Thu Mar 14 07:28:34 2002//
27790 -/test_cpp.cc/1.2/Fri Sep 14 00:43:59 2001//
27791 -/thread_leak_test.c/1.2/Fri Sep 14 00:43:59 2001//
27792 -/trace_test.c/1.2/Fri Sep 14 00:43:59 2001//
27794 diff -Nur ../boehm-gc/tests/CVS/Repository boehm-gc/tests/CVS/Repository
27795 --- ../boehm-gc/tests/CVS/Repository Sun May 25 12:49:10 2003
27796 +++ boehm-gc/tests/CVS/Repository Wed Dec 31 16:00:00 1969
27798 -/cvs/root/gcc3/gcc3/boehm-gc/tests
27799 diff -Nur ../boehm-gc/tests/CVS/Root boehm-gc/tests/CVS/Root
27800 --- ../boehm-gc/tests/CVS/Root Sun May 25 12:49:10 2003
27801 +++ boehm-gc/tests/CVS/Root Wed Dec 31 16:00:00 1969
27803 -:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
27804 diff -Nur ../boehm-gc/threadlibs.c boehm-gc/threadlibs.c
27805 --- ../boehm-gc/threadlibs.c Mon May 26 12:48:52 2003
27806 +++ boehm-gc/threadlibs.c Mon Feb 11 20:37:53 2002
27810 # if defined(GC_USE_LD_WRAP)
27811 - printf("-Wl,--wrap -Wl,dlopen "
27812 + printf("-Wl,--wrap -Wl,read -Wl,--wrap -Wl,dlopen "
27813 "-Wl,--wrap -Wl,pthread_create -Wl,--wrap -Wl,pthread_join "
27814 "-Wl,--wrap -Wl,pthread_detach "
27815 "-Wl,--wrap -Wl,pthread_sigmask -Wl,--wrap -Wl,sleep\n");
27817 # if defined(GC_LINUX_THREADS) || defined(GC_IRIX_THREADS) \
27818 - || defined(GC_FREEBSD_THREADS) || defined(GC_SOLARIS_PTHREADS) \
27819 - || defined(GC_MACOSX_THREADS)
27820 + || defined(GC_FREEBSD_THREADS) || defined(GC_SOLARIS_PTHREADS)
27821 printf("-lpthread\n");
27823 # if defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
27826 # if defined(GC_SOLARIS_THREADS) && !defined(GC_SOLARIS_PTHREADS)
27827 printf("-lthread -ldl\n");
27829 -# if defined(GC_WIN32_THREADS) && defined(CYGWIN32)
27830 - printf("-lpthread\n");
27832 -# if defined(GC_OSF1_THREADS)
27833 - printf("-lpthread -lrt");
27835 - /* You need GCC 3.0.3 to build this one! */
27836 - /* DG/UX native gcc doesnt know what "-pthread" is */
27837 -# if defined(GC_DGUX386_THREADS)
27838 - printf("-ldl -pthread\n");
27842 diff -Nur ../boehm-gc/typd_mlc.c boehm-gc/typd_mlc.c
27843 --- ../boehm-gc/typd_mlc.c Mon May 26 12:48:52 2003
27844 +++ boehm-gc/typd_mlc.c Fri Aug 17 11:30:46 2001
27845 @@ -437,7 +437,6 @@
27846 for (; bm != 0; bm >>= 1, current_p++) {
27848 current = *current_p;
27849 - FIXUP_POINTER(current);
27850 if ((ptr_t)current >= least_ha && (ptr_t)current <= greatest_ha) {
27851 PUSH_CONTENTS((ptr_t)current, mark_stack_ptr,
27852 mark_stack_limit, current_p, exit1);
27853 @@ -675,9 +674,9 @@
27854 if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
27856 op = (ptr_t)GENERAL_MALLOC((word)lb, GC_explicit_kind);
27857 - if (0 == op) return 0;
27858 + if (0 == op) return(0);
27859 # ifdef MERGE_SIZES
27860 - lw = GC_size_map[lb]; /* May have been uninitialized. */
27861 + lw = GC_size_map[lb]; /* May have been uninitialized. */
27864 *opp = obj_link(op);
27865 @@ -721,7 +720,7 @@
27867 op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_explicit_kind);
27868 # ifdef MERGE_SIZES
27869 - lw = GC_size_map[lb]; /* May have been uninitialized. */
27870 + lw = GC_size_map[lb]; /* May have been uninitialized. */
27873 *opp = obj_link(op);
27874 diff -Nur ../boehm-gc/version.h boehm-gc/version.h
27875 --- ../boehm-gc/version.h Mon May 26 12:48:52 2003
27876 +++ boehm-gc/version.h Mon Feb 11 20:37:53 2002
27878 -/* The version here should match that in configure/configure.in */
27879 -/* Eventually this one may become unnecessary. For now we need */
27880 -/* it to keep the old-style build process working. */
27881 -#define GC_TMP_VERSION_MAJOR 6
27882 -#define GC_TMP_VERSION_MINOR 2
27883 -#define GC_TMP_ALPHA_VERSION 5
27884 +#define GC_VERSION_MAJOR 6
27885 +#define GC_VERSION_MINOR 1
27886 +#define GC_ALPHA_VERSION 3
27888 -#if defined(GC_VERSION_MAJOR)
27889 -# if GC_TMP_VERSION_MAJOR != GC_VERSION_MAJOR || \
27890 - GC_TMP_VERSION_MINOR != GC_VERSION_MINOR || \
27891 - GC_TMP_ALPHA_VERSION != GC_ALPHA_VERSION
27892 -# error Inconsistent version info. Check version.h and configure.in.
27895 -# define GC_VERSION_MAJOR GC_TMP_VERSION_MAJOR
27896 -# define GC_VERSION_MINOR GC_TMP_VERSION_MINOR
27897 -# define GC_ALPHA_VERSION GC_TMP_ALPHA_VERSION
27900 -#ifndef GC_NOT_ALPHA
27901 # define GC_NOT_ALPHA 0xff
27904 #ifndef GC_NO_VERSION_VAR
27906 diff -Nur ../boehm-gc/win32_threads.c boehm-gc/win32_threads.c
27907 --- ../boehm-gc/win32_threads.c Mon May 26 12:48:52 2003
27908 +++ boehm-gc/win32_threads.c Mon Apr 28 13:55:07 2003
27910 -#if defined(GC_WIN32_THREADS)
27911 +#if defined(GC_WIN32_THREADS)
27913 #include "private/gc_priv.h"
27916 -# include <errno.h>
27918 - /* Cygwin-specific forward decls */
27919 -# undef pthread_create
27920 -# undef pthread_sigmask
27921 -# undef pthread_join
27924 -# define DEBUG_CYGWIN_THREADS 0
27926 - GC_bool GC_thr_initialized = FALSE;
27927 - void * GC_start_routine(void * arg);
27928 - void GC_thread_exit_proc(void *arg);
27932 +#include <windows.h>
27935 -#ifndef MAX_THREADS
27936 -# define MAX_THREADS 64
27938 +#define MAX_THREADS 64
27940 struct thread_entry {
27943 /* !in_use ==> stack == 0 */
27948 - void *status; /* hold exit value until join in case it's a pointer */
27949 - pthread_t pthread_id;
27954 volatile GC_bool GC_please_stop = FALSE;
27956 /* Unlike the other threads implementations, the thread table here */
27957 /* contains no pointers to the collectable heap. Thus we have */
27958 /* no private structures we need to preserve. */
27960 - { int i; /* pthreads may keep a pointer in the thread exit value */
27961 - for (i = 0; i < MAX_THREADS; i++)
27962 - if (thread_table[i].in_use) GC_push_all((ptr_t)&(thread_table[i].status),(ptr_t)(&(thread_table[i].status)+1));
27967 void GC_stop_world()
27969 DWORD thread_id = GetCurrentThreadId();
27973 - if (!GC_thr_initialized) ABORT("GC_stop_world() called before GC_thr_init()");
27976 GC_please_stop = TRUE;
27977 for (i = 0; i < MAX_THREADS; i++)
27978 if (thread_table[i].stack != 0
27979 @@ -83,15 +53,11 @@
27981 if (GetExitCodeThread(thread_table[i].handle,&exitCode) &&
27982 exitCode != STILL_ACTIVE) {
27983 - thread_table[i].stack = 0; /* prevent stack from being pushed */
27985 - /* this breaks pthread_join on Cygwin, which is guaranteed to */
27986 - /* only see user pthreads */
27987 + thread_table[i].stack = 0;
27988 thread_table[i].in_use = FALSE;
27989 CloseHandle(thread_table[i].handle);
27990 BZERO((void *)(&thread_table[i].context), sizeof(CONTEXT));
27995 if (SuspendThread(thread_table[i].handle) == (DWORD)-1)
27996 ABORT("SuspendThread failed");
27997 @@ -369,11 +335,9 @@
27998 if (*lo < start) *lo = start;
28001 -#if !defined(MSWINCE) && defined(GC_DLL)
28003 -/* We register threads from DllMain */
28004 +#if !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL))
28006 -GC_API HANDLE GC_CreateThread(
28007 +HANDLE WINAPI GC_CreateThread(
28008 LPSECURITY_ATTRIBUTES lpThreadAttributes,
28009 DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
28010 LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId )
28011 @@ -382,10 +346,7 @@
28012 lpParameter, dwCreationFlags, lpThreadId);
28015 -#else /* defined(MSWINCE) || !defined(GC_DLL)) */
28017 -/* We have no DllMain to take care of new threads. Thus we */
28018 -/* must properly intercept thread creation. */
28019 +#else /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
28022 HANDLE child_ready_h, parent_ready_h;
28023 @@ -509,7 +470,7 @@
28027 -#endif /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
28028 +#endif /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
28032 @@ -566,256 +527,13 @@
28034 LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info);
28036 -/* threadAttach/threadDetach routines used by both CYGWIN and DLL
28037 - * implementation, since both recieve explicit notification on thread
28038 - * creation/destruction.
28040 -static void threadAttach() {
28042 - /* It appears to be unsafe to acquire a lock here, since this */
28043 - /* code is apparently not preeemptible on some systems. */
28044 - /* (This is based on complaints, not on Microsoft's official */
28045 - /* documentation, which says this should perform "only simple */
28046 - /* inititalization tasks".) */
28047 - /* Hence we make do with nonblocking synchronization. */
28049 - /* The following should be a noop according to the win32 */
28050 - /* documentation. There is empirical evidence that it */
28051 - /* isn't. - HB */
28052 -# if defined(MPROTECT_VDB)
28053 - if (GC_incremental) SetUnhandledExceptionFilter(GC_write_fault_handler);
28055 - /* cast away volatile qualifier */
28056 - for (i = 0; InterlockedExchange((LONG*)&thread_table[i].in_use,1) != 0; i++) {
28057 - /* Compare-and-swap would make this cleaner, but that's not */
28058 - /* supported before Windows 98 and NT 4.0. In Windows 2000, */
28059 - /* InterlockedExchange is supposed to be replaced by */
28060 - /* InterlockedExchangePointer, but that's not really what I */
28062 - if (i == MAX_THREADS - 1)
28063 - ABORT("too many threads");
28065 - thread_table[i].id = GetCurrentThreadId();
28067 - thread_table[i].pthread_id = pthread_self();
28069 - if (!DuplicateHandle(GetCurrentProcess(),
28070 - GetCurrentThread(),
28071 - GetCurrentProcess(),
28072 - (HANDLE*)&thread_table[i].handle,
28075 - DUPLICATE_SAME_ACCESS)) {
28076 - DWORD last_error = GetLastError();
28077 - GC_printf1("Last error code: %lx\n", last_error);
28078 - ABORT("DuplicateHandle failed");
28080 - thread_table[i].stack = GC_get_stack_base();
28081 - if (thread_table[i].stack == NULL)
28082 - ABORT("Failed to find stack base in threadAttach");
28083 - /* If this thread is being created while we are trying to stop */
28084 - /* the world, wait here. Hopefully this can't happen on any */
28085 - /* systems that don't allow us to block here. */
28086 - while (GC_please_stop) Sleep(20);
28089 -static void threadDetach(DWORD thread_id) {
28094 - i < MAX_THREADS &&
28095 - !thread_table[i].in_use || thread_table[i].id != thread_id;
28097 - if (i >= MAX_THREADS ) {
28098 - WARN("thread %ld not found on detach", (GC_word)thread_id);
28101 - thread_table[i].stack = 0;
28102 - thread_table[i].in_use = FALSE;
28103 - CloseHandle(thread_table[i].handle);
28104 - /* cast away volatile qualifier */
28105 - BZERO((void *)&thread_table[i].context, sizeof(CONTEXT));
28112 -/* Called by GC_init() - we hold the allocation lock. */
28113 -void GC_thr_init() {
28114 - if (GC_thr_initialized) return;
28115 - GC_thr_initialized = TRUE;
28118 - /* this might already be handled in GC_init... */
28119 - InitializeCriticalSection(&GC_allocate_ml);
28122 - /* Add the initial thread, so we can stop it. */
28126 -struct start_info {
28127 - void *(*start_routine)(void *);
28131 -int GC_pthread_join(pthread_t pthread_id, void **retval) {
28135 -# if DEBUG_CYGWIN_THREADS
28136 - GC_printf3("thread 0x%x(0x%x) is joining thread 0x%x.\n",(int)pthread_self(),
28137 - GetCurrentThreadId(), (int)pthread_id);
28140 - /* Can't do any table lookups here, because thread being joined
28141 - might not have registered itself yet */
28143 - result = pthread_join(pthread_id, retval);
28146 - for (i = 0; !thread_table[i].in_use || thread_table[i].pthread_id != pthread_id;
28148 - if (i == MAX_THREADS - 1) {
28149 - GC_printf1("Failed to find thread 0x%x in pthread_join()\n", pthread_id);
28150 - ABORT("thread not found on detach");
28154 - threadDetach(thread_table[i].id);
28156 -# if DEBUG_CYGWIN_THREADS
28157 - GC_printf3("thread 0x%x(0x%x) completed join with thread 0x%x.\n",
28158 - (int)pthread_self(), GetCurrentThreadId(), (int)pthread_id);
28164 -/* Cygwin-pthreads calls CreateThread internally, but it's not
28165 - * easily interceptible by us..
28166 - * so intercept pthread_create instead
28169 -GC_pthread_create(pthread_t *new_thread,
28170 - const pthread_attr_t *attr,
28171 - void *(*start_routine)(void *), void *arg) {
28173 - struct start_info * si;
28175 - if (!GC_is_initialized) GC_init();
28176 - /* make sure GC is initialized (i.e. main thread is attached) */
28178 - /* This is otherwise saved only in an area mmapped by the thread */
28179 - /* library, which isn't visible to the collector. */
28180 - si = GC_malloc_uncollectable(sizeof(struct start_info));
28181 - if (0 == si) return(EAGAIN);
28183 - si -> start_routine = start_routine;
28186 -# if DEBUG_CYGWIN_THREADS
28187 - GC_printf2("About to create a thread from 0x%x(0x%x)\n",(int)pthread_self(),
28188 - GetCurrentThreadId);
28190 - result = pthread_create(new_thread, attr, GC_start_routine, si);
28192 - if (result) { /* failure */
28199 -void * GC_start_routine(void * arg)
28201 - struct start_info * si = arg;
28203 - void *(*start)(void *);
28205 - pthread_t pthread_id;
28208 -# if DEBUG_CYGWIN_THREADS
28209 - GC_printf2("thread 0x%x(0x%x) starting...\n",(int)pthread_self(),
28210 - GetCurrentThreadId());
28213 - /* If a GC occurs before the thread is registered, that GC will */
28214 - /* ignore this thread. That's fine, since it will block trying to */
28215 - /* acquire the allocation lock, and won't yet hold interesting */
28218 - /* We register the thread here instead of in the parent, so that */
28219 - /* we don't need to hold the allocation lock during pthread_create. */
28223 - start = si -> start_routine;
28224 - start_arg = si -> arg;
28225 - pthread_id = pthread_self();
28227 - GC_free(si); /* was allocated uncollectable */
28229 - pthread_cleanup_push(GC_thread_exit_proc, pthread_id);
28230 - result = (*start)(start_arg);
28231 - pthread_cleanup_pop(0);
28233 -# if DEBUG_CYGWIN_THREADS
28234 - GC_printf2("thread 0x%x(0x%x) returned from start routine.\n",
28235 - (int)pthread_self(),GetCurrentThreadId());
28239 - for (i = 0; thread_table[i].pthread_id != pthread_id; i++) {
28240 - if (i == MAX_THREADS - 1)
28241 - ABORT("thread not found on exit");
28243 - thread_table[i].status = result;
28249 -void GC_thread_exit_proc(void *arg)
28251 - pthread_t pthread_id = (pthread_t)arg;
28254 -# if DEBUG_CYGWIN_THREADS
28255 - GC_printf2("thread 0x%x(0x%x) called pthread_exit().\n",
28256 - (int)pthread_self(),GetCurrentThreadId());
28260 - for (i = 0; thread_table[i].pthread_id != pthread_id; i++) {
28261 - if (i == MAX_THREADS - 1)
28262 - ABORT("thread not found on exit");
28267 - /* TODO: we need a way to get the exit value after a pthread_exit so we can stash it safely away */
28268 - thread_table[i].status = ???
28272 -/* nothing required here... */
28273 -int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset) {
28274 - return pthread_sigmask(how, set, oset);
28276 -int GC_pthread_detach(pthread_t thread) {
28277 - return pthread_detach(thread);
28279 -#else /* !CYGWIN32 */
28283 - * We avoid acquiring locks here, since this doesn't seem to be preemptable.
28284 + * This isn't generally safe, since DllMain is not premptible.
28285 + * If another thread holds the lock while this runs we're in trouble.
28286 * Pontus Rydin suggests wrapping the thread start routine instead.
28289 BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
28292 @@ -824,13 +542,75 @@
28293 GC_init(); /* Force initialization before thread attach. */
28295 case DLL_THREAD_ATTACH:
28300 + /* It appears to be unsafe to acquire a lock here, since this */
28301 + /* code is apparently not preeemptible on some systems. */
28302 + /* (This is based on complaints, not on Microsoft's official */
28303 + /* documentation, which says this should perform "only simple */
28304 + /* inititalization tasks".) */
28305 + /* Hence we make do with nonblocking synchronization. */
28307 + /* The following should be a noop according to the win32 */
28308 + /* documentation. There is empirical evidence that it */
28309 + /* isn't. - HB */
28310 +# ifdef MPROTECT_VDB
28311 + if (GC_incremental) SetUnhandledExceptionFilter(GC_write_fault_handler);
28315 + /* cast away volatile qualifier */
28316 + InterlockedExchange((LPLONG) &thread_table[i].in_use, 1) != 0;
28318 + /* Compare-and-swap would make this cleaner, but that's not */
28319 + /* supported before Windows 98 and NT 4.0. In Windows 2000, */
28320 + /* InterlockedExchange is supposed to be replaced by */
28321 + /* InterlockedExchangePointer, but that's not really what I */
28323 + if (i == MAX_THREADS - 1)
28324 + ABORT("too many threads");
28326 + thread_table[i].id = GetCurrentThreadId();
28327 + if (!DuplicateHandle(GetCurrentProcess(),
28328 + GetCurrentThread(),
28329 + GetCurrentProcess(),
28330 + /* cast away volatile qualifier */
28331 + (HANDLE *) &thread_table[i].handle,
28334 + DUPLICATE_SAME_ACCESS)) {
28335 + DWORD last_error = GetLastError();
28336 + GC_printf1("Last error code: %lx\n", last_error);
28337 + ABORT("DuplicateHandle failed");
28339 + thread_table[i].stack = GC_get_stack_base();
28340 + /* If this thread is being created while we are trying to stop */
28341 + /* the world, wait here. Hopefully this can't happen on any */
28342 + /* systems that don't allow us to block here. */
28343 + while (GC_please_stop) Sleep(20);
28346 case DLL_THREAD_DETACH:
28347 - threadDetach(GetCurrentThreadId());
28350 + DWORD thread_id = GetCurrentThreadId();
28353 + i < MAX_THREADS &&
28354 + (thread_table[i].stack == 0 || thread_table[i].id != thread_id);
28356 + if (i >= MAX_THREADS) {
28357 + WARN("thread %ld not found on detach", (GC_word)thread_id);
28359 + thread_table[i].stack = 0;
28360 + thread_table[i].in_use = FALSE;
28361 + CloseHandle(thread_table[i].handle);
28362 + /* cast away volatile qualifier */
28363 + BZERO((void *) &thread_table[i].context, sizeof(CONTEXT));
28369 case DLL_PROCESS_DETACH:
28372 @@ -856,8 +636,8 @@
28376 -#endif /* GC_DLL */
28377 -#endif /* !CYGWIN32 */
28379 +# endif /* GC_DLL */
28381 # endif /* !MSWINCE */