1 diff -Nur ../boehm-gc/ChangeLog boehm-gc/ChangeLog
2 --- ../boehm-gc/ChangeLog Tue Jan 21 22:02:28 2003
3 +++ boehm-gc/ChangeLog Tue May 13 17:08:56 2003
5 +2003-05-13 Release Manager
9 +2003-05-13 Release Manager
13 +2003-05-13 Release Manager
17 +2003-05-13 Release Manager
21 +2003-04-28 Mohan Embar <gnustuff@thisiscool.com>
23 + * configure.in: define GC_DLL under mingw if --enable-shared
24 + * configure: rebuilt
25 + * win32_threads.c: add #ifdef GC_DLL around DllMain
27 +2003-04-09 Tom Tromey <tromey@redhat.com>
29 + * include/private/gcconfig.h (LINUX_STACKBOTTOM): Define for
31 + (STACK_GRAN, HEURISTIC1): Don't define for POWERPC.
33 +2003-03-04 Hans Boehm <Hans.Boehm@hp.com>
34 + * include/private/gcconfig.h (GC_data_start): declare when needed.
35 + * include/private/gc_priv.h: Include gcconfig.h after ptr_t
38 +2003-03-03 Hans Boehm <Hans.Boehm@hp.com>
39 + * mark_rts.c (GC_cond_register_dynamic_libraries): add.
40 + (GC_push_roots): explicitly mark free list headers, register
41 + dynamic libraries only if !REGISTER_LIBRARIES_EARLY.
42 + * alloc.c (GC_stopped_mark): Conditionally call
43 + GC_cond_register_dynamic_libraries().
44 + (GC_collect_a_little_inner, GC_try_to_collect_inner): Check GC_dont_gc.
45 + * dyn_load.c (GC_register_main_static_data): define.
46 + (GC_register_dyn_libraries (Linux /proc, Linux ELF versions)):
47 + no longer skip main data. Register main data for static executable.
48 + * misc.c (GC_REGISTER_MAIN_STATIC_DATA): define.
49 + (GC_init_inner): Make main data registration conditional.
50 + * include/private/gc_priv.h (GC_register_main_static_data): declare.
51 + * include/private/gcconfig.h (REGISTER_LIBRARIES_EARLY): define
54 +2003-02-20 Alexandre Oliva <aoliva@redhat.com>
56 + * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
58 + * configure: Rebuilt.
60 +2003-02-11 Andreas Tobler <a.tobler@schweiz.ch>
62 + * include/private/gcconfig.h: undefine MPROTECT_VDB for MACOSX
64 +2003-01-27 Alexandre Oliva <aoliva@redhat.com>
66 + * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
67 + Remove USE_LIBDIR conditional.
68 + * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
69 + * Makefile.in, configure: Rebuilt.
71 2002-12-31 Tom Tromey <tromey@redhat.com>
74 diff -Nur ../boehm-gc/Makefile.am boehm-gc/Makefile.am
75 --- ../boehm-gc/Makefile.am Mon May 26 13:08:40 2003
76 +++ boehm-gc/Makefile.am Mon Jan 27 17:44:52 2003
81 -## Install a library built with a cross compiler in tooldir, not
84 -toolexeclibdir = $(libdir)$(MULTISUBDIR)
86 -toolexecdir = $(exec_prefix)/$(target_alias)
87 -toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
90 noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
92 GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
93 dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
94 -malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
95 +linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
96 obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
97 solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
98 -backgraph.c win32_threads.c \
99 -pthread_support.c pthread_stop_world.c darwin_stop_world.c
100 +backgraph.c win32_threads.c
102 -EXTRA_GC_SOURCES = alpha_mach_dep.S \
103 - mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_darwin_mach_dep.s \
104 - rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
105 - sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
108 -asm_libgc_sources = powerpc_darwin_mach_dep.s
112 +EXTRA_GC_SOURCES = alpha_mach_dep.s \
113 +mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
114 +rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
115 +sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
117 -libgcjgc_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
118 -libgcjgc_convenience_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
119 +libgcjgc_la_SOURCES = $(GC_SOURCES)
120 +libgcjgc_convenience_la_SOURCES = $(GC_SOURCES)
121 EXTRA_libgcjgc_la_SOURCES = $(EXTRA_GC_SOURCES)
122 EXTRA_libgcjgc_convenience_la_SOURCES = $(EXTRA_GC_SOURCES)
125 $(AM_CPPFLAGS) $(CPPFLAGS) \
126 $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS)
127 LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LDFLAGS) -o $@
129 +AM_CFLAGS = @GC_CFLAGS@
131 # Work around what appears to be a GNU make bug handling MAKEFLAGS
132 # values defined in terms of make variables, as is the case for CC and
133 diff -Nur ../boehm-gc/Makefile.am~ boehm-gc/Makefile.am~
134 --- ../boehm-gc/Makefile.am~ Thu Oct 24 16:42:27 2002
135 +++ boehm-gc/Makefile.am~ Wed Dec 31 16:00:00 1969
137 -## Process this file with automake to produce Makefile.in.
139 -## FIXME: `make dist' in this directory will not currently work. Many
140 -## files that should be in the distribution are not mentioned in this
143 -AUTOMAKE_OPTIONS = cygnus
147 -# Multilib support variables.
155 -## Install a library built with a cross compiler in tooldir, not
158 -toolexeclibdir = $(libdir)$(MULTISUBDIR)
160 -toolexecdir = $(exec_prefix)/$(target_alias)
161 -toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
164 -noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
166 -GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
167 -dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
168 -linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
169 -obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
170 -solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
171 -backgraph.c win32_threads.c
173 -EXTRA_GC_SOURCES = alpha_mach_dep.s \
174 -mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
175 -rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
176 -sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
178 -libgcjgc_la_SOURCES = $(GC_SOURCES)
179 -libgcjgc_convenience_la_SOURCES = $(GC_SOURCES)
180 -EXTRA_libgcjgc_la_SOURCES = $(EXTRA_GC_SOURCES)
181 -EXTRA_libgcjgc_convenience_la_SOURCES = $(EXTRA_GC_SOURCES)
183 -# Include THREADLIBS here to ensure that the correct versions of
184 -# linuxthread semaphore functions get linked:
185 -libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS)
186 -libgcjgc_la_DEPENDENCIES = @addobjs@
187 -libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
189 -libgcjgc_convenience_la_LIBADD = @addobjs@
190 -libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
192 -AM_CXXFLAGS = @GC_CFLAGS@
193 -AM_CFLAGS = @GC_CFLAGS@
195 -check_PROGRAMS = gctest
196 -# The following hack produces a warning from automake, but we need it in order
197 -# to build a file from a subdirectory. FIXME.
198 -test.o: tests/test.c
199 - $(COMPILE) -c $(srcdir)/tests/test.c
200 -# Using $< in the above seems to fail with the HP/UX on Itanium make.
202 -gctest_OBJECTS = test.o
203 -gctest_LDADD = ./libgcjgc.la $(THREADLIBS) $(EXTRA_TEST_LIBS)
204 -gctest_LDFLAGS = -shared-libgcc
205 -TESTS_ENVIRONMENT = LD_LIBRARY_PATH=../../$(MULTIBUILDTOP)gcc
208 -## FIXME: relies on internal code generated by automake.
209 -all_objs = @addobjs@ $(libgcjgc_la_OBJECTS)
210 -$(all_objs) : include/private/gcconfig.h include/private/gc_priv.h \
211 -include/private/gc_hdrs.h include/gc.h include/gc_gcj.h include/gc_mark.h
213 -## FIXME: we shouldn't have to do this, but automake forces us to.
215 -## We use -Wp,-P to strip #line directives. Irix `as' chokes on
217 - $(LTCOMPILE) -Wp,-P -x assembler-with-cpp -c $<
219 -## We have our own definition of LTCOMPILE because we want to use our
220 -## CFLAGS, not those passed in from the top level make.
221 -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) \
222 - $(AM_CPPFLAGS) $(CPPFLAGS) \
223 - $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS)
224 -LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LDFLAGS) -o $@
226 -AM_CFLAGS = @GC_CFLAGS@
228 -# Work around what appears to be a GNU make bug handling MAKEFLAGS
229 -# values defined in terms of make variables, as is the case for CC and
230 -# friends when we are called from the top level Makefile.
232 - "AR_FLAGS=$(AR_FLAGS)" \
233 - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
234 - "CFLAGS=$(CFLAGS)" \
235 - "CXXFLAGS=$(CXXFLAGS)" \
236 - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
237 - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
238 - "INSTALL=$(INSTALL)" \
239 - "INSTALL_DATA=$(INSTALL_DATA)" \
240 - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
241 - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
242 - "LDFLAGS=$(LDFLAGS)" \
243 - "LIBCFLAGS=$(LIBCFLAGS)" \
244 - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
246 - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
247 - "PICFLAG=$(PICFLAG)" \
248 - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
250 - "EXPECT=$(EXPECT)" \
251 - "RUNTEST=$(RUNTEST)" \
252 - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
253 - "exec_prefix=$(exec_prefix)" \
254 - "infodir=$(infodir)" \
255 - "libdir=$(libdir)" \
256 - "prefix=$(prefix)" \
257 - "tooldir=$(tooldir)" \
263 - "LIBCFLAGS=$(LIBCFLAGS)" \
265 - "PICFLAG=$(PICFLAG)" \
266 - "RANLIB=$(RANLIB)" \
267 - "DESTDIR=$(DESTDIR)"
269 -CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
272 -.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
273 - maintainer-clean-multi
276 -install-am: install-multi
277 -mostlyclean-am: mostlyclean-multi
278 -clean-am: clean-multi
279 -distclean-am: distclean-multi
280 -maintainer-clean-am: maintainer-clean-multi
283 - : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
285 - $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
287 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
289 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
291 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
292 -maintainer-clean-multi:
293 - $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
296 diff -Nur ../boehm-gc/Makefile.in boehm-gc/Makefile.in
297 --- ../boehm-gc/Makefile.in Mon May 26 13:08:48 2003
298 +++ boehm-gc/Makefile.in Tue May 13 17:18:14 2003
300 -# Makefile.in generated by automake 1.6.3 from Makefile.am.
302 +# Makefile.in generated automatically by automake 1.4 from Makefile.am
304 -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
305 -# Free Software Foundation, Inc.
306 +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
307 # This Makefile.in is free software; the Free Software Foundation
308 # gives unlimited permission to copy and/or distribute it,
309 # with or without modifications, as long as this notice is preserved.
311 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
312 # PARTICULAR PURPOSE.
321 includedir = @includedir@
322 oldincludedir = /usr/include
326 pkgdatadir = $(datadir)/@PACKAGE@
327 pkglibdir = $(libdir)/@PACKAGE@
328 pkgincludedir = $(includedir)/@PACKAGE@
334 AUTOMAKE = @AUTOMAKE@
335 AUTOHEADER = @AUTOHEADER@
337 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
339 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
340 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
341 INSTALL_DATA = @INSTALL_DATA@
342 -install_sh_DATA = $(install_sh) -c -m 644
343 -install_sh_PROGRAM = $(install_sh) -c
344 -install_sh_SCRIPT = $(install_sh) -c
345 INSTALL_SCRIPT = @INSTALL_SCRIPT@
346 -INSTALL_HEADER = $(INSTALL_DATA)
347 transform = @program_transform_name@
353 host_triplet = @host@
354 target_alias = @target_alias@
355 target_triplet = @target@
359 -PATH_SEPARATOR = @PATH_SEPARATOR@
368 CXXINCLUDES = @CXXINCLUDES@
374 EXTRA_TEST_LIBS = @EXTRA_TEST_LIBS@
377 GCJFLAGS = @GCJFLAGS@
378 GC_CFLAGS = @GC_CFLAGS@
379 INCLUDES = @INCLUDES@
380 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
384 +MAKEINFO = @MAKEINFO@
385 MY_CFLAGS = @MY_CFLAGS@
392 THREADLIBS = @THREADLIBS@
395 -am__include = @am__include@
396 -am__quote = @am__quote@
397 gc_basedir = @gc_basedir@
398 -install_sh = @install_sh@
399 mkinstalldirs = @mkinstalldirs@
400 target_all = @target_all@
401 +toolexecdir = @toolexecdir@
402 +toolexeclibdir = @toolexeclibdir@
404 AUTOMAKE_OPTIONS = cygnus
406 @@ -120,32 +108,24 @@
410 -@USE_LIBDIR_TRUE@toolexeclibdir = $(libdir)$(MULTISUBDIR)
411 -@USE_LIBDIR_FALSE@toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
412 -@USE_LIBDIR_FALSE@toolexecdir = $(exec_prefix)/$(target_alias)
414 noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
416 GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
417 dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
418 -malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
419 +linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
420 obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
421 solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
422 -backgraph.c win32_threads.c \
423 -pthread_support.c pthread_stop_world.c darwin_stop_world.c
425 +backgraph.c win32_threads.c
427 -EXTRA_GC_SOURCES = alpha_mach_dep.S \
428 - mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_darwin_mach_dep.s \
429 - rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
430 - sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
432 +EXTRA_GC_SOURCES = alpha_mach_dep.s \
433 +mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
434 +rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
435 +sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
437 -@POWERPC_DARWIN_TRUE@asm_libgc_sources = powerpc_darwin_mach_dep.s
438 -@POWERPC_DARWIN_FALSE@asm_libgc_sources =
440 -libgcjgc_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
441 -libgcjgc_convenience_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
442 +libgcjgc_la_SOURCES = $(GC_SOURCES)
443 +libgcjgc_convenience_la_SOURCES = $(GC_SOURCES)
444 EXTRA_libgcjgc_la_SOURCES = $(EXTRA_GC_SOURCES)
445 EXTRA_libgcjgc_convenience_la_SOURCES = $(EXTRA_GC_SOURCES)
447 @@ -159,11 +139,12 @@
448 libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
450 AM_CXXFLAGS = @GC_CFLAGS@
452 AM_CFLAGS = @GC_CFLAGS@
454 check_PROGRAMS = gctest
456 # Using $< in the above seems to fail with the HP/UX on Itanium make.
458 gctest_OBJECTS = test.o
459 gctest_LDADD = ./libgcjgc.la $(THREADLIBS) $(EXTRA_TEST_LIBS)
460 gctest_LDFLAGS = -shared-libgcc
461 @@ -223,127 +204,104 @@
462 CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
466 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
467 -CONFIG_CLEAN_FILES =
468 -LTLIBRARIES = $(noinst_LTLIBRARIES)
469 +CONFIG_CLEAN_FILES =
470 +LTLIBRARIES = $(noinst_LTLIBRARIES)
472 -am__objects_1 = allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo \
473 - dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo \
474 - irix_threads.lo malloc.lo mallocx.lo mark.lo mark_rts.lo \
475 - misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo \
476 - ptr_chck.lo real_malloc.lo reclaim.lo solaris_pthreads.lo \
477 - solaris_threads.lo specific.lo stubborn.lo typd_mlc.lo \
478 - backgraph.lo win32_threads.lo pthread_support.lo \
479 - pthread_stop_world.lo darwin_stop_world.lo
480 -@POWERPC_DARWIN_TRUE@am__objects_2 = powerpc_darwin_mach_dep.lo
481 -@POWERPC_DARWIN_FALSE@am__objects_2 =
482 -am_libgcjgc_la_OBJECTS = $(am__objects_1) $(am__objects_2)
483 -libgcjgc_la_OBJECTS = $(am_libgcjgc_la_OBJECTS)
484 -libgcjgc_convenience_la_LDFLAGS =
485 -am_libgcjgc_convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2)
486 -libgcjgc_convenience_la_OBJECTS = $(am_libgcjgc_convenience_la_OBJECTS)
487 -check_PROGRAMS = gctest$(EXEEXT)
488 -gctest_DEPENDENCIES = ./libgcjgc.la
491 -DEFAULT_INCLUDES = -I. -I$(srcdir)
492 +DEFS = @DEFS@ -I. -I$(srcdir)
493 CPPFLAGS = @CPPFLAGS@
497 -am__depfiles_maybe =
498 -CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
499 -LTCCASCOMPILE = $(LIBTOOL) --mode=compile $(CCAS) $(AM_CCASFLAGS) \
501 -CCASFLAGS = @CCASFLAGS@
502 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
503 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
505 +libgcjgc_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo checksums.lo \
506 +dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo \
507 +irix_threads.lo linux_threads.lo malloc.lo mallocx.lo mark.lo \
508 +mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo \
509 +ptr_chck.lo real_malloc.lo reclaim.lo solaris_pthreads.lo \
510 +solaris_threads.lo specific.lo stubborn.lo typd_mlc.lo backgraph.lo \
512 +libgcjgc_convenience_la_LDFLAGS =
513 +libgcjgc_convenience_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo \
514 +checksums.lo dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo \
515 +headers.lo irix_threads.lo linux_threads.lo malloc.lo mallocx.lo \
516 +mark.lo mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo \
517 +pcr_interface.lo ptr_chck.lo real_malloc.lo reclaim.lo \
518 +solaris_pthreads.lo solaris_threads.lo specific.lo stubborn.lo \
519 +typd_mlc.lo backgraph.lo win32_threads.lo
520 +check_PROGRAMS = gctest$(EXEEXT)
521 +gctest_DEPENDENCIES = ./libgcjgc.la
523 -DIST_SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) \
524 - $(libgcjgc_convenience_la_SOURCES) \
525 - $(EXTRA_libgcjgc_convenience_la_SOURCES)
527 -RECURSIVE_TARGETS = info-recursive dvi-recursive \
528 - uninstall-info-recursive all-recursive install-data-recursive \
529 - install-exec-recursive installdirs-recursive install-recursive \
530 - uninstall-recursive check-recursive installcheck-recursive
531 -SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) $(EXTRA_libgcjgc_convenience_la_SOURCES)
532 +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
534 +DIST_COMMON = ChangeLog Makefile.am Makefile.in acinclude.m4 aclocal.m4 \
535 +config.guess config.sub configure configure.in install-sh ltconfig \
536 +ltmain.sh mkinstalldirs
539 +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
544 +SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) $(EXTRA_libgcjgc_convenience_la_SOURCES)
545 +OBJECTS = $(libgcjgc_la_OBJECTS) $(libgcjgc_convenience_la_OBJECTS)
549 .SUFFIXES: .S .c .lo .o .obj .s
550 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
551 + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
553 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
554 + cd $(top_builddir) \
555 + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
557 -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
559 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
560 - cd $(top_srcdir) && \
561 - $(AUTOMAKE) --cygnus Makefile
562 -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
563 - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
564 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
565 + cd $(srcdir) && $(ACLOCAL)
567 -$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
568 +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
569 $(SHELL) ./config.status --recheck
570 -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
571 +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
572 cd $(srcdir) && $(AUTOCONF)
574 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
575 - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
576 +mostlyclean-noinstLTLIBRARIES:
578 clean-noinstLTLIBRARIES:
579 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
580 - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
581 - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
582 - test -z "$dir" && dir=.; \
583 - echo "rm -f \"$${dir}/so_locations\""; \
584 - rm -f "$${dir}/so_locations"; \
586 -libgcjgc.la: $(libgcjgc_la_OBJECTS) $(libgcjgc_la_DEPENDENCIES)
587 - $(LINK) $(libgcjgc_la_LDFLAGS) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS)
588 -libgcjgc_convenience.la: $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_DEPENDENCIES)
589 - $(LINK) $(libgcjgc_convenience_la_LDFLAGS) $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_LIBADD) $(LIBS)
591 -clean-checkPROGRAMS:
592 - @list='$(check_PROGRAMS)'; for p in $$list; do \
593 - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
594 - echo " rm -f $$p $$f"; \
597 -gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES)
598 - @rm -f gctest$(EXEEXT)
599 - $(LINK) $(gctest_LDFLAGS) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS)
600 +distclean-noinstLTLIBRARIES:
602 -mostlyclean-compile:
603 - -rm -f *.$(OBJEXT) core *.core
604 +maintainer-clean-noinstLTLIBRARIES:
611 +# FIXME: We should only use cygpath when building on Windows,
612 +# and only if it is available.
614 + $(COMPILE) -c `cygpath -w $<`
620 - $(CCASCOMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
624 - $(CCASCOMPILE) -c `cygpath -w $<`
625 +mostlyclean-compile:
626 + -rm -f *.o core *.core
630 - $(LTCCASCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
634 - $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
639 - $(COMPILE) -c `cygpath -w $<`
640 +maintainer-clean-compile:
643 - $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
644 + $(LIBTOOL) --mode=compile $(COMPILE) -c $<
647 - $(CCASCOMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
650 - $(CCASCOMPILE) -c `cygpath -w $<`
652 + $(LIBTOOL) --mode=compile $(COMPILE) -c $<
663 +maintainer-clean-libtool:
665 +libgcjgc.la: $(libgcjgc_la_OBJECTS) $(libgcjgc_la_DEPENDENCIES)
666 + $(LINK) $(libgcjgc_la_LDFLAGS) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS)
668 +libgcjgc_convenience.la: $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_DEPENDENCIES)
669 + $(LINK) $(libgcjgc_convenience_la_LDFLAGS) $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_LIBADD) $(LIBS)
671 +mostlyclean-checkPROGRAMS:
673 +clean-checkPROGRAMS:
674 + -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
676 +distclean-checkPROGRAMS:
678 +maintainer-clean-checkPROGRAMS:
680 +gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES)
681 + @rm -f gctest$(EXEEXT)
682 + $(LINK) $(gctest_LDFLAGS) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS)
684 # This directory's subdirectories are mostly independent; you can cd
685 # into them and run `make' without going through this Makefile.
687 # (1) if the variable is set in `config.status', edit `config.status'
688 # (which will cause the Makefiles to be regenerated when you run `make');
689 # (2) otherwise, pass the desired values on the `make' command line.
690 -$(RECURSIVE_TARGETS):
691 - @set fnord $$MAKEFLAGS; amf=$$2; \
695 +all-recursive install-data-recursive install-exec-recursive \
696 +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
697 +check-recursive installcheck-recursive info-recursive dvi-recursive:
698 + @set fnord $(MAKEFLAGS); amf=$$2; \
700 target=`echo $@ | sed s/-recursive//`; \
701 list='$(SUBDIRS)'; for subdir in $$list; do \
702 @@ -382,18 +364,13 @@
704 mostlyclean-recursive clean-recursive distclean-recursive \
705 maintainer-clean-recursive:
706 - @set fnord $$MAKEFLAGS; amf=$$2; \
707 + @set fnord $(MAKEFLAGS); amf=$$2; \
710 - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
711 - *) list='$(SUBDIRS)' ;; \
713 - rev=''; for subdir in $$list; do \
714 - if test "$$subdir" = "."; then :; else \
715 - rev="$$subdir $$rev"; \
717 + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
718 + rev="$$subdir $$rev"; \
719 + test "$$subdir" = "." && dot_seen=yes; \
722 + test "$$dot_seen" = "no" && rev=". $$rev"; \
723 target=`echo $@ | sed s/-recursive//`; \
724 for subdir in $$rev; do \
725 echo "Making $$target in $$subdir"; \
726 @@ -410,186 +387,211 @@
727 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
735 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
736 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
737 - unique=`for i in $$list; do \
738 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
740 - $(AWK) ' { files[$$0] = 1; } \
741 +ID: $(HEADERS) $(SOURCES) $(LISP)
742 + list='$(SOURCES) $(HEADERS)'; \
743 + unique=`for i in $$list; do echo $$i; done | \
744 + awk ' { files[$$0] = 1; } \
745 END { for (i in files) print i; }'`; \
747 + here=`pwd` && cd $(srcdir) \
748 + && mkid -f$$here/ID $$unique $(LISP)
750 -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
751 - $(TAGS_FILES) $(LISP)
752 +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
755 list='$(SUBDIRS)'; for subdir in $$list; do \
756 - if test "$$subdir" = .; then :; else \
757 + if test "$$subdir" = .; then :; else \
758 test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
762 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
763 - unique=`for i in $$list; do \
764 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
766 - $(AWK) ' { files[$$0] = 1; } \
767 + list='$(SOURCES) $(HEADERS)'; \
768 + unique=`for i in $$list; do echo $$i; done | \
769 + awk ' { files[$$0] = 1; } \
770 END { for (i in files) print i; }'`; \
771 - test -z "$(ETAGS_ARGS)$$tags$$unique" \
772 - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
776 - here=`$(am__cd) $(top_builddir) && pwd` \
777 - && cd $(top_srcdir) \
778 - && gtags -i $(GTAGS_ARGS) $$here
779 + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
780 + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
787 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
790 +maintainer-clean-tags:
792 +distdir = $(PACKAGE)-$(VERSION)
793 +top_distdir = $(distdir)
795 +# This target untars the dist file and tries a VPATH configuration. Then
796 +# it guarantees that the distribution is self-contained by making another
800 + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
801 + mkdir $(distdir)/=build
802 + mkdir $(distdir)/=inst
803 + dc_install_base=`cd $(distdir)/=inst && pwd`; \
804 + cd $(distdir)/=build \
805 + && ../configure --srcdir=.. --prefix=$$dc_install_base \
806 + && $(MAKE) $(AM_MAKEFLAGS) \
807 + && $(MAKE) $(AM_MAKEFLAGS) dvi \
808 + && $(MAKE) $(AM_MAKEFLAGS) check \
809 + && $(MAKE) $(AM_MAKEFLAGS) install \
810 + && $(MAKE) $(AM_MAKEFLAGS) installcheck \
811 + && $(MAKE) $(AM_MAKEFLAGS) dist
813 + @banner="$(distdir).tar.gz is ready for distribution"; \
814 + dashes=`echo "$$banner" | sed s/./=/g`; \
819 + -chmod -R a+r $(distdir)
820 + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
823 + -chmod -R a+r $(distdir)
824 + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
826 +distdir: $(DISTFILES)
829 + -chmod 777 $(distdir)
830 + @for file in $(DISTFILES); do \
831 + if test -f $$file; then d=.; else d=$(srcdir); fi; \
832 + if test -d $$d/$$file; then \
833 + cp -pr $$d/$$file $(distdir)/$$file; \
835 + test -f $(distdir)/$$file \
836 + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
837 + || cp -p $$d/$$file $(distdir)/$$file || :; \
840 + for subdir in $(SUBDIRS); do \
841 + if test "$$subdir" = .; then :; else \
842 + test -d $(distdir)/$$subdir \
843 + || mkdir $(distdir)/$$subdir \
845 + chmod 777 $(distdir)/$$subdir; \
846 + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
850 check-TESTS: $(TESTS)
851 - @failed=0; all=0; xfail=0; xpass=0; \
852 + @failed=0; all=0; \
853 srcdir=$(srcdir); export srcdir; \
855 - if test -n "$$list"; then \
856 - for tst in $$list; do \
857 - if test -f ./$$tst; then dir=./; \
858 - elif test -f $$tst; then dir=; \
859 - else dir="$(srcdir)/"; fi; \
860 - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
861 - all=`expr $$all + 1`; \
862 - case " $(XFAIL_TESTS) " in \
864 - xpass=`expr $$xpass + 1`; \
865 - failed=`expr $$failed + 1`; \
866 - echo "XPASS: $$tst"; \
869 - echo "PASS: $$tst"; \
872 - elif test $$? -ne 77; then \
873 - all=`expr $$all + 1`; \
874 - case " $(XFAIL_TESTS) " in \
876 - xfail=`expr $$xfail + 1`; \
877 - echo "XFAIL: $$tst"; \
880 - failed=`expr $$failed + 1`; \
881 - echo "FAIL: $$tst"; \
886 - if test "$$failed" -eq 0; then \
887 - if test "$$xfail" -eq 0; then \
888 - banner="All $$all tests passed"; \
890 - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
893 - if test "$$xpass" -eq 0; then \
894 - banner="$$failed of $$all tests failed"; \
896 - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
898 + for tst in $(TESTS); do \
899 + if test -f $$tst; then dir=.; \
900 + else dir="$(srcdir)"; fi; \
901 + if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
902 + all=`expr $$all + 1`; \
903 + echo "PASS: $$tst"; \
904 + elif test $$? -ne 77; then \
905 + all=`expr $$all + 1`; \
906 + failed=`expr $$failed + 1`; \
907 + echo "FAIL: $$tst"; \
909 - dashes=`echo "$$banner" | sed s/./=/g`; \
913 - test "$$failed" -eq 0; \
916 + if test "$$failed" -eq 0; then \
917 + banner="All $$all tests passed"; \
919 + banner="$$failed of $$all tests failed"; \
921 + dashes=`echo "$$banner" | sed s/./=/g`; \
925 + test "$$failed" -eq 0
927 +info: info-recursive
930 check-am: $(check_PROGRAMS)
931 $(MAKE) $(AM_MAKEFLAGS) check-TESTS
932 check: check-recursive
934 +installcheck: installcheck-recursive
936 +install-info: install-info-recursive
938 +install-exec: install-exec-recursive
941 +install-data: install-data-recursive
944 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
945 +install: install-recursive
947 +uninstall: uninstall-recursive
948 all-am: Makefile $(LTLIBRARIES)
949 +all-redirect: all-recursive
951 + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
952 installdirs: installdirs-recursive
955 -install: install-recursive
956 -install-exec: install-exec-recursive
957 -install-data: install-data-recursive
958 -uninstall: uninstall-recursive
960 -installcheck: installcheck-recursive
962 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
963 - INSTALL_STRIP_FLAG=-s \
964 - `test -z '$(STRIP)' || \
965 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
971 -rm -f Makefile $(CONFIG_CLEAN_FILES)
972 + -rm -f config.cache config.log stamp-h stamp-h[0-9]*
974 maintainer-clean-generic:
975 - @echo "This command is intended for maintainers to use"
976 - @echo "it deletes files that may require special tools to rebuild."
977 -clean: clean-recursive
979 -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
980 - clean-noinstLTLIBRARIES mostlyclean-am
982 -distclean: distclean-recursive
983 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
984 -distclean-am: clean-am distclean-compile distclean-generic \
985 - distclean-libtool distclean-tags
991 -info: info-recursive
992 +mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
993 + mostlyclean-libtool mostlyclean-checkPROGRAMS \
994 + mostlyclean-tags mostlyclean-generic
997 +mostlyclean: mostlyclean-recursive
1000 +clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \
1001 + clean-checkPROGRAMS clean-tags clean-generic \
1005 +clean: clean-recursive
1008 +distclean-am: distclean-noinstLTLIBRARIES distclean-compile \
1009 + distclean-libtool distclean-checkPROGRAMS \
1010 + distclean-tags distclean-generic clean-am
1014 +distclean: distclean-recursive
1015 + -rm -f config.status
1018 +maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \
1019 + maintainer-clean-compile maintainer-clean-libtool \
1020 + maintainer-clean-checkPROGRAMS maintainer-clean-tags \
1021 + maintainer-clean-generic distclean-am
1022 + @echo "This command is intended for maintainers to use;"
1023 + @echo "it deletes files that may require special tools to rebuild."
1025 maintainer-clean: maintainer-clean-recursive
1026 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
1027 - -rm -rf autom4te.cache
1028 -maintainer-clean-am: distclean-am maintainer-clean-generic
1030 -mostlyclean: mostlyclean-recursive
1032 -mostlyclean-am: mostlyclean-compile mostlyclean-generic \
1033 - mostlyclean-libtool
1034 + -rm -f config.status
1038 -uninstall-info: uninstall-info-recursive
1040 -.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-TESTS check-am \
1041 - clean clean-checkPROGRAMS clean-generic clean-libtool \
1042 - clean-noinstLTLIBRARIES clean-recursive distclean \
1043 - distclean-compile distclean-generic distclean-libtool \
1044 - distclean-recursive distclean-tags dvi dvi-am dvi-recursive \
1045 - info info-am info-recursive install install-am install-data \
1046 - install-data-am install-data-recursive install-exec \
1047 - install-exec-am install-exec-recursive install-info \
1048 - install-info-am install-man install-recursive install-strip \
1049 - installcheck installcheck-am installdirs installdirs-am \
1050 - installdirs-recursive maintainer-clean maintainer-clean-generic \
1051 - maintainer-clean-recursive mostlyclean mostlyclean-compile \
1052 - mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
1053 - tags tags-recursive uninstall uninstall-am uninstall-info-am \
1054 - uninstall-info-recursive uninstall-recursive
1055 +.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
1056 +clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
1057 +mostlyclean-compile distclean-compile clean-compile \
1058 +maintainer-clean-compile mostlyclean-libtool distclean-libtool \
1059 +clean-libtool maintainer-clean-libtool mostlyclean-checkPROGRAMS \
1060 +distclean-checkPROGRAMS clean-checkPROGRAMS \
1061 +maintainer-clean-checkPROGRAMS install-data-recursive \
1062 +uninstall-data-recursive install-exec-recursive \
1063 +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
1064 +all-recursive check-recursive installcheck-recursive info-recursive \
1065 +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
1066 +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
1067 +distclean-tags clean-tags maintainer-clean-tags distdir check-TESTS \
1068 +info-am info dvi-am dvi check check-am installcheck-am installcheck \
1069 +install-info-am install-info install-exec-am install-exec \
1070 +install-data-am install-data install-am install uninstall-am uninstall \
1071 +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \
1072 +distclean-generic clean-generic maintainer-clean-generic clean \
1073 +mostlyclean distclean maintainer-clean
1075 # The following hack produces a warning from automake, but we need it in order
1076 # to build a file from a subdirectory. FIXME.
1078 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
1079 maintainer-clean-multi:
1080 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
1082 # Tell versions [3.59,3.63) of GNU make to not export all variables.
1083 # Otherwise a system limit (for SysV at least) may be exceeded.
1085 diff -Nur ../boehm-gc/allchblk.c boehm-gc/allchblk.c
1086 --- ../boehm-gc/allchblk.c Mon May 26 12:48:52 2003
1087 +++ boehm-gc/allchblk.c Mon Apr 8 17:39:15 2002
1089 struct hblk * GC_hblkfreelist[N_HBLK_FLS+1] = { 0 };
1093 word GC_free_bytes[N_HBLK_FLS+1] = { 0 };
1094 /* Number of free bytes on each list. */
1096 /* Is bytes + the number of free bytes on lists n .. N_HBLK_FLS */
1097 /* > GC_max_large_allocd_bytes? */
1101 - static GC_bool GC_enough_large_bytes_left(bytes,n)
1102 + GC_bool GC_enough_large_bytes_left(bytes,n)
1106 @@ -587,11 +583,11 @@
1107 if (!GC_use_entire_heap
1108 && size_avail != size_needed
1109 && USED_HEAP_SIZE >= GC_requested_heapsize
1110 - && !TRUE_INCREMENTAL && GC_should_collect()) {
1111 + && !GC_incremental && GC_should_collect()) {
1115 - /* If we have enough large blocks left to cover any */
1116 + /* If we enough large blocks left to cover any */
1117 /* previous request for large blocks, we go ahead */
1118 /* and split. Assuming a steady state, that should */
1119 /* be safe. It means that we can use the full */
1120 @@ -599,12 +595,6 @@
1121 if (!GC_enough_large_bytes_left(GC_large_allocd_bytes, n)) {
1124 - /* If we are deallocating lots of memory from */
1125 - /* finalizers, fail and collect sooner rather */
1127 - if (GC_finalizer_mem_freed > (GC_heapsize >> 4)) {
1130 # endif /* !USE_MUNMAP */
1132 /* If the next heap block is obviously better, go on. */
1133 diff -Nur ../boehm-gc/alloc.c boehm-gc/alloc.c
1134 --- ../boehm-gc/alloc.c Mon May 26 12:48:52 2003
1135 +++ boehm-gc/alloc.c Mon Mar 3 22:38:30 2003
1137 GC_bool GC_need_full_gc = FALSE;
1138 /* Need full GC do to heap growth. */
1141 - GC_bool GC_world_stopped = FALSE;
1142 -# define IF_THREADS(x) x
1144 -# define IF_THREADS(x)
1147 word GC_used_heap_size_after_full = 0;
1149 char * GC_copyright[] =
1151 unsigned long time_diff;
1153 if ((count++ & 3) != 0) return(0);
1155 GET_TIME(current_time);
1156 time_diff = MS_TIME_DIFF(current_time,GC_start_time);
1157 if (time_diff >= GC_time_limit) {
1165 #endif /* !SMALL_CONFIG */
1167 + (GC_large_free_bytes >> 2)
1168 /* use a bit more of large empty heap */
1170 - if (TRUE_INCREMENTAL) {
1171 + if (GC_incremental) {
1172 return scan_size / (2 * GC_free_space_divisor);
1174 return scan_size / GC_free_space_divisor;
1176 /* managed object should not alter result, assuming the client */
1177 /* is playing by the rules. */
1178 result = (signed_word)GC_words_allocd
1179 - - (signed_word)GC_mem_freed
1180 - + (signed_word)GC_finalizer_mem_freed - expl_managed;
1181 + - (signed_word)GC_mem_freed - expl_managed;
1182 if (result > (signed_word)GC_words_allocd) {
1183 result = GC_words_allocd;
1184 /* probably client bug or unfortunate scheduling */
1187 if (GC_should_collect()) {
1188 if (!GC_incremental) {
1189 + GC_notify_full_gc();
1190 GC_gcollect_inner();
1193 @@ -307,14 +302,10 @@
1195 * Stop the world garbage collection. Assumes lock held, signals disabled.
1196 * If stop_func is not GC_never_stop_func, then abort if stop_func returns TRUE.
1197 - * Return TRUE if we successfully completed the collection.
1199 GC_bool GC_try_to_collect_inner(stop_func)
1200 GC_stop_func stop_func;
1203 - CLOCK_TYPE start_time, current_time;
1205 if (GC_dont_gc) return FALSE;
1206 if (GC_incremental && GC_collection_in_progress()) {
1208 @@ -329,10 +320,8 @@
1209 GC_collect_a_little_inner(1);
1212 - if (stop_func == GC_never_stop_func) GC_notify_full_gc();
1214 if (GC_print_stats) {
1215 - if (GC_print_stats) GET_TIME(start_time);
1217 "Initiating full world-stop collection %lu after %ld allocd bytes\n",
1218 (unsigned long) GC_gc_no+1,
1219 @@ -371,13 +360,6 @@
1222 GC_finish_collection();
1223 -# if defined(CONDPRINT)
1224 - if (GC_print_stats) {
1225 - GET_TIME(current_time);
1226 - GC_printf1("Complete collection took %lu msecs\n",
1227 - MS_TIME_DIFF(current_time,start_time));
1234 result = (int)GC_collection_in_progress();
1237 - if (!result && GC_debugging_started) GC_print_all_smashed();
1241 @@ -467,17 +448,16 @@
1242 CLOCK_TYPE start_time, current_time;
1245 +# if defined(REGISTER_LIBRARIES_EARLY)
1246 + GC_cond_register_dynamic_libraries();
1250 GET_TIME(start_time);
1252 # if defined(CONDPRINT) && !defined(PRINTTIMES)
1253 if (GC_print_stats) GET_TIME(start_time);
1255 -# if defined(REGISTER_LIBRARIES_EARLY)
1256 - GC_cond_register_dynamic_libraries();
1259 - IF_THREADS(GC_world_stopped = TRUE);
1261 if (GC_print_stats) {
1262 GC_printf1("--> Marking for collection %lu ",
1266 GC_deficit = i; /* Give the mutator a chance. */
1267 - IF_THREADS(GC_world_stopped = FALSE);
1275 - IF_THREADS(GC_world_stopped = FALSE);
1278 GET_TIME(current_time);
1279 GC_printf1("World-stopped marking took %lu msecs\n",
1289 GC_print_address_map();
1294 /* Mark all objects on the free list. All objects should be */
1295 /* marked when we're done. */
1297 GC_words_allocd = 0;
1298 GC_words_wasted = 0;
1300 - GC_finalizer_mem_freed = 0;
1308 - if (GC_debugging_started) GC_print_all_smashed();
1309 GC_INVOKE_FINALIZERS();
1312 @@ -766,17 +741,14 @@
1317 - if (GC_debugging_started) GC_print_all_smashed();
1318 - GC_INVOKE_FINALIZERS();
1320 + if(result) GC_INVOKE_FINALIZERS();
1324 void GC_gcollect GC_PROTO(())
1326 + GC_notify_full_gc();
1327 (void)GC_try_to_collect(GC_never_stop_func);
1328 - if (GC_have_errors) GC_print_all_errors();
1331 word GC_n_heap_sects = 0; /* Number of sections currently in heap. */
1334 if (!GC_incremental && !GC_dont_gc &&
1335 (GC_dont_expand && GC_words_allocd > 0 || GC_should_collect())) {
1336 + GC_notify_full_gc();
1337 GC_gcollect_inner();
1339 word blocks_to_get = GC_heapsize/(HBLKSIZE*GC_free_space_divisor)
1340 @@ -1002,6 +975,7 @@
1341 && !GC_expand_hp_inner(needed_blocks)) {
1342 if (GC_fail_count++ < GC_max_retries) {
1343 WARN("Out of Memory! Trying to continue ...\n", 0);
1344 + GC_notify_full_gc();
1345 GC_gcollect_inner();
1347 # if !defined(AMIGA) || !defined(GC_AMIGA_FASTALLOC)
1348 @@ -1031,38 +1005,29 @@
1352 - ptr_t * flh = &(GC_obj_kinds[kind].ok_freelist[sz]);
1353 - GC_bool tried_minor = FALSE;
1354 + register ptr_t * flh = &(GC_obj_kinds[kind].ok_freelist[sz]);
1356 if (sz == 0) return(0);
1360 /* Do our share of marking work */
1361 - if(TRUE_INCREMENTAL) GC_collect_a_little_inner(1);
1362 + if(GC_incremental && !GC_dont_gc) GC_collect_a_little_inner(1);
1363 /* Sweep blocks for objects of this size */
1364 - GC_continue_reclaim(sz, kind);
1365 + GC_continue_reclaim(sz, kind);
1368 GC_new_hblk(sz, kind);
1372 - if (GC_incremental && GC_time_limit == GC_TIME_UNLIMITED
1373 - && ! tried_minor ) {
1374 - GC_collect_a_little_inner(1);
1375 - tried_minor = TRUE;
1377 - if (!GC_collect_or_expand((word)1,FALSE)) {
1378 + if (!GC_collect_or_expand((word)1,FALSE)) {
1386 - /* Successful allocation; reset failure count. */
1387 - GC_fail_count = 0;
1391 diff -Nur ../boehm-gc/alpha_mach_dep.s boehm-gc/alpha_mach_dep.s
1392 --- ../boehm-gc/alpha_mach_dep.s Mon May 26 12:48:52 2003
1393 +++ boehm-gc/alpha_mach_dep.s Fri Aug 17 11:30:45 2001
1395 - # $Id: darwin.patch,v 1.4 2003/09/10 04:33:29 megacz Exp $
1399 diff -Nur ../boehm-gc/autom4te.cache/output.0 boehm-gc/autom4te.cache/output.0
1400 --- ../boehm-gc/autom4te.cache/output.0 Mon May 26 13:14:22 2003
1401 +++ boehm-gc/autom4te.cache/output.0 Wed Dec 31 16:00:00 1969
1404 -@%:@ Guess values for system-dependent variables and create Makefiles.
1405 -@%:@ Generated by GNU Autoconf 2.57.
1407 -@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
1408 -@%:@ Free Software Foundation, Inc.
1409 -@%:@ This configure script is free software; the Free Software Foundation
1410 -@%:@ gives unlimited permission to copy, distribute and modify it.
1411 -## --------------------- ##
1412 -## M4sh Initialization. ##
1413 -## --------------------- ##
1415 -# Be Bourne compatible
1416 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
1419 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
1420 - # is contrary to our usage. Disable this feature.
1421 - alias -g '${1+"$@"}'='"$@"'
1422 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
1426 -# Support unset when possible.
1427 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
1434 -# Work around bugs in pre-3.0 UWIN ksh.
1435 -$as_unset ENV MAIL MAILPATH
1442 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
1443 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
1444 - LC_TELEPHONE LC_TIME
1446 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
1447 - eval $as_var=C; export $as_var
1453 -# Required to use basename.
1454 -if expr a : '\(a\)' >/dev/null 2>&1; then
1460 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
1461 - as_basename=basename
1467 -# Name of the executable.
1468 -as_me=`$as_basename "$0" ||
1469 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
1470 - X"$0" : 'X\(//\)$' \| \
1471 - X"$0" : 'X\(/\)$' \| \
1472 - . : '\(.\)' 2>/dev/null ||
1474 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
1475 - /^X\/\(\/\/\)$/{ s//\1/; q; }
1476 - /^X\/\(\/\).*/{ s//\1/; q; }
1480 -# PATH needs CR, and LINENO needs CR and PATH.
1481 -# Avoid depending upon Character Ranges.
1482 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
1483 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1484 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
1485 -as_cr_digits='0123456789'
1486 -as_cr_alnum=$as_cr_Letters$as_cr_digits
1488 -# The user is always right.
1489 -if test "${PATH_SEPARATOR+set}" != set; then
1490 - echo "#! /bin/sh" >conf$$.sh
1491 - echo "exit 0" >>conf$$.sh
1492 - chmod +x conf$$.sh
1493 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
1494 - PATH_SEPARATOR=';'
1502 - as_lineno_1=$LINENO
1503 - as_lineno_2=$LINENO
1504 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
1505 - test "x$as_lineno_1" != "x$as_lineno_2" &&
1506 - test "x$as_lineno_3" = "x$as_lineno_2" || {
1507 - # Find who we are. Look in the path if we contain no path at all
1508 - # relative or not.
1510 - *[\\/]* ) as_myself=$0 ;;
1511 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1512 -for as_dir in $PATH
1515 - test -z "$as_dir" && as_dir=.
1516 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
1521 - # We did not find ourselves, most probably we were run as `sh COMMAND'
1522 - # in which case we are not to be found in the path.
1523 - if test "x$as_myself" = x; then
1526 - if test ! -f "$as_myself"; then
1527 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
1528 - { (exit 1); exit 1; }; }
1530 - case $CONFIG_SHELL in
1532 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1533 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
1536 - test -z "$as_dir" && as_dir=.
1537 - for as_base in sh bash ksh sh5; do
1540 - if ("$as_dir/$as_base" -c '
1541 - as_lineno_1=$LINENO
1542 - as_lineno_2=$LINENO
1543 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
1544 - test "x$as_lineno_1" != "x$as_lineno_2" &&
1545 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
1546 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
1547 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
1548 - CONFIG_SHELL=$as_dir/$as_base
1549 - export CONFIG_SHELL
1550 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
1558 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
1559 - # uniformly replaced by the line number. The first 'sed' inserts a
1560 - # line-number line before each line; the second 'sed' does the real
1561 - # work. The second script uses 'N' to pair each line-number line
1562 - # with the numbered line, and appends trailing '-' during
1563 - # substitution so that $LINENO is not a special case at line end.
1564 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
1565 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
1566 - sed '=' <$as_myself |
1571 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
1574 - s,^['$as_cr_digits']*\n,,
1575 - ' >$as_me.lineno &&
1576 - chmod +x $as_me.lineno ||
1577 - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
1578 - { (exit 1); exit 1; }; }
1580 - # Don't try to exec as it changes $[0], causing all sort of problems
1581 - # (the dirname of $[0] is not the place where we might find the
1582 - # original and so on. Autoconf is especially sensible to this).
1584 - # Exit status is that of the last command.
1589 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
1590 - *c*,-n*) ECHO_N= ECHO_C='
1592 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
1593 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
1596 -if expr a : '\(a\)' >/dev/null 2>&1; then
1602 -rm -f conf$$ conf$$.exe conf$$.file
1604 -if ln -s conf$$.file conf$$ 2>/dev/null; then
1605 - # We could just check for DJGPP; but this test a) works b) is more generic
1606 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
1607 - if test -f conf$$.exe; then
1608 - # Don't use ln at all; we don't have any links
1613 -elif ln conf$$.file conf$$ 2>/dev/null; then
1618 -rm -f conf$$ conf$$.exe conf$$.file
1620 -if mkdir -p . 2>/dev/null; then
1626 -as_executable_p="test -f"
1628 -# Sed expression to map a string onto a valid CPP name.
1629 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
1631 -# Sed expression to map a string onto a valid variable name.
1632 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
1636 -# We need space, tab and new line, in precisely that order.
1645 -# Name of the host.
1646 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
1647 -# so uname gets run too.
1648 -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
1655 -ac_default_prefix=/usr/local
1656 -ac_config_libobj_dir=.
1661 -SHELL=${CONFIG_SHELL-/bin/sh}
1663 -# Maximum number of lines to put in a shell here document.
1664 -# This variable seems obsolete. It should probably be removed, and
1665 -# only ac_max_sed_lines should be used.
1666 -: ${ac_max_here_lines=38}
1668 -# Identity of this package.
1675 -ac_unique_file="gcj_mlc.c"
1676 -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'
1679 -# Initialize some variables set by options.
1681 -ac_init_version=false
1682 -# The variables have the same names as the options, with
1683 -# dashes changed to underlines.
1684 -cache_file=/dev/null
1689 -program_prefix=NONE
1690 -program_suffix=NONE
1691 -program_transform_name=s,x,x,
1699 -# Installation directory options.
1700 -# These are left unexpanded so users can "make install exec_prefix=/foo"
1701 -# and all the variables that are supposed to be based on exec_prefix
1702 -# by default will actually change.
1703 -# Use braces instead of parens because sh, perl, etc. also accept them.
1704 -bindir='${exec_prefix}/bin'
1705 -sbindir='${exec_prefix}/sbin'
1706 -libexecdir='${exec_prefix}/libexec'
1707 -datadir='${prefix}/share'
1708 -sysconfdir='${prefix}/etc'
1709 -sharedstatedir='${prefix}/com'
1710 -localstatedir='${prefix}/var'
1711 -libdir='${exec_prefix}/lib'
1712 -includedir='${prefix}/include'
1713 -oldincludedir='/usr/include'
1714 -infodir='${prefix}/info'
1715 -mandir='${prefix}/man'
1720 - # If the previous option needs an argument, assign it.
1721 - if test -n "$ac_prev"; then
1722 - eval "$ac_prev=\$ac_option"
1727 - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
1729 - # Accept the important Cygnus configure options, so we can diagnose typos.
1731 - case $ac_option in
1733 - -bindir | --bindir | --bindi | --bind | --bin | --bi)
1735 - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
1736 - bindir=$ac_optarg ;;
1738 - -build | --build | --buil | --bui | --bu)
1739 - ac_prev=build_alias ;;
1740 - -build=* | --build=* | --buil=* | --bui=* | --bu=*)
1741 - build_alias=$ac_optarg ;;
1743 - -cache-file | --cache-file | --cache-fil | --cache-fi \
1744 - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
1745 - ac_prev=cache_file ;;
1746 - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
1747 - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
1748 - cache_file=$ac_optarg ;;
1750 - --config-cache | -C)
1751 - cache_file=config.cache ;;
1753 - -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
1754 - ac_prev=datadir ;;
1755 - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
1757 - datadir=$ac_optarg ;;
1759 - -disable-* | --disable-*)
1760 - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1761 - # Reject names that are not valid shell variable names.
1762 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1763 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
1764 - { (exit 1); exit 1; }; }
1765 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
1766 - eval "enable_$ac_feature=no" ;;
1768 - -enable-* | --enable-*)
1769 - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1770 - # Reject names that are not valid shell variable names.
1771 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1772 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
1773 - { (exit 1); exit 1; }; }
1774 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
1775 - case $ac_option in
1776 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
1777 - *) ac_optarg=yes ;;
1779 - eval "enable_$ac_feature='$ac_optarg'" ;;
1781 - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
1782 - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
1783 - | --exec | --exe | --ex)
1784 - ac_prev=exec_prefix ;;
1785 - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
1786 - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
1787 - | --exec=* | --exe=* | --ex=*)
1788 - exec_prefix=$ac_optarg ;;
1790 - -gas | --gas | --ga | --g)
1791 - # Obsolete; use --with-gas.
1794 - -help | --help | --hel | --he | -h)
1795 - ac_init_help=long ;;
1796 - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
1797 - ac_init_help=recursive ;;
1798 - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
1799 - ac_init_help=short ;;
1801 - -host | --host | --hos | --ho)
1802 - ac_prev=host_alias ;;
1803 - -host=* | --host=* | --hos=* | --ho=*)
1804 - host_alias=$ac_optarg ;;
1806 - -includedir | --includedir | --includedi | --included | --include \
1807 - | --includ | --inclu | --incl | --inc)
1808 - ac_prev=includedir ;;
1809 - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
1810 - | --includ=* | --inclu=* | --incl=* | --inc=*)
1811 - includedir=$ac_optarg ;;
1813 - -infodir | --infodir | --infodi | --infod | --info | --inf)
1814 - ac_prev=infodir ;;
1815 - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
1816 - infodir=$ac_optarg ;;
1818 - -libdir | --libdir | --libdi | --libd)
1820 - -libdir=* | --libdir=* | --libdi=* | --libd=*)
1821 - libdir=$ac_optarg ;;
1823 - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
1824 - | --libexe | --libex | --libe)
1825 - ac_prev=libexecdir ;;
1826 - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
1827 - | --libexe=* | --libex=* | --libe=*)
1828 - libexecdir=$ac_optarg ;;
1830 - -localstatedir | --localstatedir | --localstatedi | --localstated \
1831 - | --localstate | --localstat | --localsta | --localst \
1832 - | --locals | --local | --loca | --loc | --lo)
1833 - ac_prev=localstatedir ;;
1834 - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
1835 - | --localstate=* | --localstat=* | --localsta=* | --localst=* \
1836 - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
1837 - localstatedir=$ac_optarg ;;
1839 - -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
1841 - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
1842 - mandir=$ac_optarg ;;
1844 - -nfp | --nfp | --nf)
1845 - # Obsolete; use --without-fp.
1848 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
1849 - | --no-cr | --no-c | -n)
1852 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
1853 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
1854 - no_recursion=yes ;;
1856 - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
1857 - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
1858 - | --oldin | --oldi | --old | --ol | --o)
1859 - ac_prev=oldincludedir ;;
1860 - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
1861 - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
1862 - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
1863 - oldincludedir=$ac_optarg ;;
1865 - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
1867 - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
1868 - prefix=$ac_optarg ;;
1870 - -program-prefix | --program-prefix | --program-prefi | --program-pref \
1871 - | --program-pre | --program-pr | --program-p)
1872 - ac_prev=program_prefix ;;
1873 - -program-prefix=* | --program-prefix=* | --program-prefi=* \
1874 - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
1875 - program_prefix=$ac_optarg ;;
1877 - -program-suffix | --program-suffix | --program-suffi | --program-suff \
1878 - | --program-suf | --program-su | --program-s)
1879 - ac_prev=program_suffix ;;
1880 - -program-suffix=* | --program-suffix=* | --program-suffi=* \
1881 - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
1882 - program_suffix=$ac_optarg ;;
1884 - -program-transform-name | --program-transform-name \
1885 - | --program-transform-nam | --program-transform-na \
1886 - | --program-transform-n | --program-transform- \
1887 - | --program-transform | --program-transfor \
1888 - | --program-transfo | --program-transf \
1889 - | --program-trans | --program-tran \
1890 - | --progr-tra | --program-tr | --program-t)
1891 - ac_prev=program_transform_name ;;
1892 - -program-transform-name=* | --program-transform-name=* \
1893 - | --program-transform-nam=* | --program-transform-na=* \
1894 - | --program-transform-n=* | --program-transform-=* \
1895 - | --program-transform=* | --program-transfor=* \
1896 - | --program-transfo=* | --program-transf=* \
1897 - | --program-trans=* | --program-tran=* \
1898 - | --progr-tra=* | --program-tr=* | --program-t=*)
1899 - program_transform_name=$ac_optarg ;;
1901 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
1902 - | -silent | --silent | --silen | --sile | --sil)
1905 - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
1906 - ac_prev=sbindir ;;
1907 - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
1908 - | --sbi=* | --sb=*)
1909 - sbindir=$ac_optarg ;;
1911 - -sharedstatedir | --sharedstatedir | --sharedstatedi \
1912 - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
1913 - | --sharedst | --shareds | --shared | --share | --shar \
1915 - ac_prev=sharedstatedir ;;
1916 - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
1917 - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
1918 - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
1919 - | --sha=* | --sh=*)
1920 - sharedstatedir=$ac_optarg ;;
1922 - -site | --site | --sit)
1924 - -site=* | --site=* | --sit=*)
1925 - site=$ac_optarg ;;
1927 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
1929 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
1930 - srcdir=$ac_optarg ;;
1932 - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
1933 - | --syscon | --sysco | --sysc | --sys | --sy)
1934 - ac_prev=sysconfdir ;;
1935 - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
1936 - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
1937 - sysconfdir=$ac_optarg ;;
1939 - -target | --target | --targe | --targ | --tar | --ta | --t)
1940 - ac_prev=target_alias ;;
1941 - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
1942 - target_alias=$ac_optarg ;;
1944 - -v | -verbose | --verbose | --verbos | --verbo | --verb)
1947 - -version | --version | --versio | --versi | --vers | -V)
1948 - ac_init_version=: ;;
1950 - -with-* | --with-*)
1951 - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1952 - # Reject names that are not valid shell variable names.
1953 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1954 - { echo "$as_me: error: invalid package name: $ac_package" >&2
1955 - { (exit 1); exit 1; }; }
1956 - ac_package=`echo $ac_package| sed 's/-/_/g'`
1957 - case $ac_option in
1958 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
1959 - *) ac_optarg=yes ;;
1961 - eval "with_$ac_package='$ac_optarg'" ;;
1963 - -without-* | --without-*)
1964 - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1965 - # Reject names that are not valid shell variable names.
1966 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1967 - { echo "$as_me: error: invalid package name: $ac_package" >&2
1968 - { (exit 1); exit 1; }; }
1969 - ac_package=`echo $ac_package | sed 's/-/_/g'`
1970 - eval "with_$ac_package=no" ;;
1973 - # Obsolete; use --with-x.
1976 - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
1977 - | --x-incl | --x-inc | --x-in | --x-i)
1978 - ac_prev=x_includes ;;
1979 - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
1980 - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
1981 - x_includes=$ac_optarg ;;
1983 - -x-libraries | --x-libraries | --x-librarie | --x-librari \
1984 - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
1985 - ac_prev=x_libraries ;;
1986 - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
1987 - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1988 - x_libraries=$ac_optarg ;;
1990 - -*) { echo "$as_me: error: unrecognized option: $ac_option
1991 -Try \`$0 --help' for more information." >&2
1992 - { (exit 1); exit 1; }; }
1996 - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
1997 - # Reject names that are not valid shell variable names.
1998 - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
1999 - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
2000 - { (exit 1); exit 1; }; }
2001 - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
2002 - eval "$ac_envvar='$ac_optarg'"
2003 - export $ac_envvar ;;
2006 - # FIXME: should be removed in autoconf 3.0.
2007 - echo "$as_me: WARNING: you should use --build, --host, --target" >&2
2008 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
2009 - echo "$as_me: WARNING: invalid host type: $ac_option" >&2
2010 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
2016 -if test -n "$ac_prev"; then
2017 - ac_option=--`echo $ac_prev | sed 's/_/-/g'`
2018 - { echo "$as_me: error: missing argument to $ac_option" >&2
2019 - { (exit 1); exit 1; }; }
2022 -# Be sure to have absolute paths.
2023 -for ac_var in exec_prefix prefix
2025 - eval ac_val=$`echo $ac_var`
2027 - [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
2028 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
2029 - { (exit 1); exit 1; }; };;
2033 -# Be sure to have absolute paths.
2034 -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
2035 - localstatedir libdir includedir oldincludedir infodir mandir
2037 - eval ac_val=$`echo $ac_var`
2039 - [\\/$]* | ?:[\\/]* ) ;;
2040 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
2041 - { (exit 1); exit 1; }; };;
2045 -# There might be people who depend on the old broken behavior: `$host'
2046 -# used to hold the argument of --host etc.
2047 -# FIXME: To remove some day.
2050 -target=$target_alias
2052 -# FIXME: To remove some day.
2053 -if test "x$host_alias" != x; then
2054 - if test "x$build_alias" = x; then
2055 - cross_compiling=maybe
2056 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
2057 - If a cross compiler is detected then cross compile mode will be used." >&2
2058 - elif test "x$build_alias" != "x$host_alias"; then
2059 - cross_compiling=yes
2064 -test -n "$host_alias" && ac_tool_prefix=$host_alias-
2066 -test "$silent" = yes && exec 6>/dev/null
2069 -# Find the source files, if location was not specified.
2070 -if test -z "$srcdir"; then
2071 - ac_srcdir_defaulted=yes
2072 - # Try the directory containing this script, then its parent.
2073 - ac_confdir=`(dirname "$0") 2>/dev/null ||
2074 -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
2075 - X"$0" : 'X\(//\)[^/]' \| \
2076 - X"$0" : 'X\(//\)$' \| \
2077 - X"$0" : 'X\(/\)' \| \
2078 - . : '\(.\)' 2>/dev/null ||
2080 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
2081 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
2082 - /^X\(\/\/\)$/{ s//\1/; q; }
2083 - /^X\(\/\).*/{ s//\1/; q; }
2085 - srcdir=$ac_confdir
2086 - if test ! -r $srcdir/$ac_unique_file; then
2090 - ac_srcdir_defaulted=no
2092 -if test ! -r $srcdir/$ac_unique_file; then
2093 - if test "$ac_srcdir_defaulted" = yes; then
2094 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
2095 - { (exit 1); exit 1; }; }
2097 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
2098 - { (exit 1); exit 1; }; }
2101 -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
2102 - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
2103 - { (exit 1); exit 1; }; }
2104 -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
2105 -ac_env_build_alias_set=${build_alias+set}
2106 -ac_env_build_alias_value=$build_alias
2107 -ac_cv_env_build_alias_set=${build_alias+set}
2108 -ac_cv_env_build_alias_value=$build_alias
2109 -ac_env_host_alias_set=${host_alias+set}
2110 -ac_env_host_alias_value=$host_alias
2111 -ac_cv_env_host_alias_set=${host_alias+set}
2112 -ac_cv_env_host_alias_value=$host_alias
2113 -ac_env_target_alias_set=${target_alias+set}
2114 -ac_env_target_alias_value=$target_alias
2115 -ac_cv_env_target_alias_set=${target_alias+set}
2116 -ac_cv_env_target_alias_value=$target_alias
2117 -ac_env_CXXCPP_set=${CXXCPP+set}
2118 -ac_env_CXXCPP_value=$CXXCPP
2119 -ac_cv_env_CXXCPP_set=${CXXCPP+set}
2120 -ac_cv_env_CXXCPP_value=$CXXCPP
2121 -ac_env_CPPFLAGS_set=${CPPFLAGS+set}
2122 -ac_env_CPPFLAGS_value=$CPPFLAGS
2123 -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
2124 -ac_cv_env_CPPFLAGS_value=$CPPFLAGS
2127 -# Report the --help message.
2129 -if test "$ac_init_help" = "long"; then
2130 - # Omit some internal or obsolete options to make the list less imposing.
2131 - # This message is too long to be a string in the A/UX 3.1 sh.
2133 -\`configure' configures this package to adapt to many kinds of systems.
2135 -Usage: $0 [OPTION]... [VAR=VALUE]...
2137 -To assign environment variables (e.g., CC, CFLAGS...), specify them as
2138 -VAR=VALUE. See below for descriptions of some of the useful variables.
2140 -Defaults for the options are specified in brackets.
2143 - -h, --help display this help and exit
2144 - --help=short display options specific to this package
2145 - --help=recursive display the short help of all the included packages
2146 - -V, --version display version information and exit
2147 - -q, --quiet, --silent do not print \`checking...' messages
2148 - --cache-file=FILE cache test results in FILE [disabled]
2149 - -C, --config-cache alias for \`--cache-file=config.cache'
2150 - -n, --no-create do not create output files
2151 - --srcdir=DIR find the sources in DIR [configure dir or \`..']
2156 -Installation directories:
2157 - --prefix=PREFIX install architecture-independent files in PREFIX
2158 - [$ac_default_prefix]
2159 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
2162 -By default, \`make install' will install all the files in
2163 -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
2164 -an installation prefix other than \`$ac_default_prefix' using \`--prefix',
2165 -for instance \`--prefix=\$HOME'.
2167 -For better control, use the options below.
2169 -Fine tuning of the installation directories:
2170 - --bindir=DIR user executables [EPREFIX/bin]
2171 - --sbindir=DIR system admin executables [EPREFIX/sbin]
2172 - --libexecdir=DIR program executables [EPREFIX/libexec]
2173 - --datadir=DIR read-only architecture-independent data [PREFIX/share]
2174 - --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
2175 - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
2176 - --localstatedir=DIR modifiable single-machine data [PREFIX/var]
2177 - --libdir=DIR object code libraries [EPREFIX/lib]
2178 - --includedir=DIR C header files [PREFIX/include]
2179 - --oldincludedir=DIR C header files for non-gcc [/usr/include]
2180 - --infodir=DIR info documentation [PREFIX/info]
2181 - --mandir=DIR man documentation [PREFIX/man]
2187 - --program-prefix=PREFIX prepend PREFIX to installed program names
2188 - --program-suffix=SUFFIX append SUFFIX to installed program names
2189 - --program-transform-name=PROGRAM run sed PROGRAM on installed program names
2192 - --build=BUILD configure for building on BUILD [guessed]
2193 - --host=HOST cross-compile to build programs to run on HOST [BUILD]
2194 - --target=TARGET configure for building compilers for TARGET [HOST]
2198 -if test -n "$ac_init_help"; then
2203 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
2204 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
2205 - --enable-multilib build many library versions (default)
2206 - --enable-maintainer-mode enable make rules and dependencies not useful
2207 - (and sometimes confusing) to the casual installer
2208 - --enable-shared=PKGS build shared libraries default=yes
2209 - --enable-static=PKGS build static libraries default=yes
2210 - --enable-fast-install=PKGS optimize for fast installation default=yes
2211 - --disable-libtool-lock avoid locking (might break parallel builds)
2212 - --enable-parallel-mark parallelize marking and free list construction
2213 - --enable-shared=PKGS build shared libraries default=no
2214 - --enable-full-debug include full support for pointer backtracing etc.
2217 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
2218 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2219 - --with-gnu-ld assume the C compiler uses GNU ld default=no
2220 - --with-pic try to use only PIC/non-PIC objects default=use both
2221 - --with-target-subdir=SUBDIR
2222 - configuring with a cross compiler
2223 - --with-cross-host=HOST configuring with a cross compiler
2224 - --with-ecos enable runtime eCos target support
2226 -Some influential environment variables:
2227 - CXXCPP C++ preprocessor
2228 - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
2229 - headers in a nonstandard directory <include dir>
2231 -Use these variables to override the choices made by `configure' or to help
2232 -it to find libraries and programs with nonstandard names/locations.
2237 -if test "$ac_init_help" = "recursive"; then
2238 - # If there are subdirs, report their specific --help.
2240 - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
2241 - test -d $ac_dir || continue
2244 -if test "$ac_dir" != .; then
2245 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
2246 - # A "../" for each directory in $ac_dir_suffix.
2247 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
2249 - ac_dir_suffix= ac_top_builddir=
2253 - .) # No --srcdir option. We are building in place.
2255 - if test -z "$ac_top_builddir"; then
2258 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
2260 - [\\/]* | ?:[\\/]* ) # Absolute path.
2261 - ac_srcdir=$srcdir$ac_dir_suffix;
2262 - ac_top_srcdir=$srcdir ;;
2263 - *) # Relative path.
2264 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
2265 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
2267 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
2269 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
2270 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
2271 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
2272 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
2275 - # Check for guested configure; otherwise get Cygnus style configure.
2276 - if test -f $ac_srcdir/configure.gnu; then
2278 - $SHELL $ac_srcdir/configure.gnu --help=recursive
2279 - elif test -f $ac_srcdir/configure; then
2281 - $SHELL $ac_srcdir/configure --help=recursive
2282 - elif test -f $ac_srcdir/configure.ac ||
2283 - test -f $ac_srcdir/configure.in; then
2285 - $ac_configure --help
2287 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
2293 -test -n "$ac_init_help" && exit 0
2294 -if $ac_init_version; then
2297 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
2298 -Free Software Foundation, Inc.
2299 -This configure script is free software; the Free Software Foundation
2300 -gives unlimited permission to copy, distribute and modify it.
2306 -This file contains any messages produced by compilers while
2307 -running configure, to aid debugging if configure makes a mistake.
2309 -It was created by $as_me, which was
2310 -generated by GNU Autoconf 2.57. Invocation command line was
2317 -@%:@@%:@ --------- @%:@@%:@
2318 -@%:@@%:@ Platform. @%:@@%:@
2319 -@%:@@%:@ --------- @%:@@%:@
2321 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
2322 -uname -m = `(uname -m) 2>/dev/null || echo unknown`
2323 -uname -r = `(uname -r) 2>/dev/null || echo unknown`
2324 -uname -s = `(uname -s) 2>/dev/null || echo unknown`
2325 -uname -v = `(uname -v) 2>/dev/null || echo unknown`
2327 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
2328 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
2330 -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
2331 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
2332 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
2333 -hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
2334 -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
2335 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
2336 -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
2340 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2341 -for as_dir in $PATH
2344 - test -z "$as_dir" && as_dir=.
2345 - echo "PATH: $as_dir"
2353 -@%:@@%:@ ----------- @%:@@%:@
2354 -@%:@@%:@ Core tests. @%:@@%:@
2355 -@%:@@%:@ ----------- @%:@@%:@
2360 -# Keep a trace of the command line.
2361 -# Strip out --no-create and --no-recursion so they do not pile up.
2362 -# Strip out --silent because we don't want to record it for future runs.
2363 -# Also quote any args containing shell meta-characters.
2364 -# Make two passes to allow for proper duplicate-argument suppression.
2366 -ac_configure_args0=
2367 -ac_configure_args1=
2369 -ac_must_keep_next=false
2375 - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
2376 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
2377 - | -silent | --silent | --silen | --sile | --sil)
2379 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
2380 - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2383 - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
2385 - ac_configure_args1="$ac_configure_args1 '$ac_arg'"
2386 - if test $ac_must_keep_next = true; then
2387 - ac_must_keep_next=false # Got value, back to normal.
2390 - *=* | --config-cache | -C | -disable-* | --disable-* \
2391 - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2392 - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2393 - | -with-* | --with-* | -without-* | --without-* | --x)
2394 - case "$ac_configure_args0 " in
2395 - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
2398 - -* ) ac_must_keep_next=true ;;
2401 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
2402 - # Get rid of the leading space.
2408 -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
2409 -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
2411 -# When interrupted or exit'd, cleanup temporary files, and complete
2412 -# config.log. We remove comments because anyway the quotes in there
2413 -# would cause problems or look ugly.
2414 -# WARNING: Be sure not to use single quotes in there, as some shells,
2415 -# such as our DU 5.0 friend, will then `close' the trap.
2416 -trap 'exit_status=$?
2417 - # Save into config.log some information that might help in debugging.
2422 -@%:@@%:@ ---------------- @%:@@%:@
2423 -@%:@@%:@ Cache variables. @%:@@%:@
2424 -@%:@@%:@ ---------------- @%:@@%:@
2427 - # The following way of writing the cache mishandles newlines in values,
2430 - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
2433 - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
2434 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
2438 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
2445 -@%:@@%:@ ----------------- @%:@@%:@
2446 -@%:@@%:@ Output variables. @%:@@%:@
2447 -@%:@@%:@ ----------------- @%:@@%:@
2450 - for ac_var in $ac_subst_vars
2452 - eval ac_val=$`echo $ac_var`
2453 - echo "$ac_var='"'"'$ac_val'"'"'"
2457 - if test -n "$ac_subst_files"; then
2459 -@%:@@%:@ ------------- @%:@@%:@
2460 -@%:@@%:@ Output files. @%:@@%:@
2461 -@%:@@%:@ ------------- @%:@@%:@
2464 - for ac_var in $ac_subst_files
2466 - eval ac_val=$`echo $ac_var`
2467 - echo "$ac_var='"'"'$ac_val'"'"'"
2472 - if test -s confdefs.h; then
2474 -@%:@@%:@ ----------- @%:@@%:@
2475 -@%:@@%:@ confdefs.h. @%:@@%:@
2476 -@%:@@%:@ ----------- @%:@@%:@
2479 - sed "/^$/d" confdefs.h | sort
2482 - test "$ac_signal" != 0 &&
2483 - echo "$as_me: caught signal $ac_signal"
2484 - echo "$as_me: exit $exit_status"
2486 - rm -f core core.* *.core &&
2487 - rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
2490 -for ac_signal in 1 2 13 15; do
2491 - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
2495 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
2496 -rm -rf conftest* confdefs.h
2497 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
2500 -# Predefined preprocessor variables.
2502 -cat >>confdefs.h <<_ACEOF
2503 -@%:@define PACKAGE_NAME "$PACKAGE_NAME"
2507 -cat >>confdefs.h <<_ACEOF
2508 -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
2512 -cat >>confdefs.h <<_ACEOF
2513 -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
2517 -cat >>confdefs.h <<_ACEOF
2518 -@%:@define PACKAGE_STRING "$PACKAGE_STRING"
2522 -cat >>confdefs.h <<_ACEOF
2523 -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
2527 -# Let the site file select an alternate cache file if it wants to.
2528 -# Prefer explicitly selected file to automatically selected ones.
2529 -if test -z "$CONFIG_SITE"; then
2530 - if test "x$prefix" != xNONE; then
2531 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
2533 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
2536 -for ac_site_file in $CONFIG_SITE; do
2537 - if test -r "$ac_site_file"; then
2538 - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
2539 -echo "$as_me: loading site script $ac_site_file" >&6;}
2540 - sed 's/^/| /' "$ac_site_file" >&5
2545 -if test -r "$cache_file"; then
2546 - # Some versions of bash will fail to source /dev/null (special
2547 - # files actually), so we avoid doing that.
2548 - if test -f "$cache_file"; then
2549 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
2550 -echo "$as_me: loading cache $cache_file" >&6;}
2551 - case $cache_file in
2552 - [\\/]* | ?:[\\/]* ) . $cache_file;;
2553 - *) . ./$cache_file;;
2557 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
2558 -echo "$as_me: creating cache $cache_file" >&6;}
2562 -# Check that the precious variables saved in the cache have kept the same
2564 -ac_cache_corrupted=false
2565 -for ac_var in `(set) 2>&1 |
2566 - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
2567 - eval ac_old_set=\$ac_cv_env_${ac_var}_set
2568 - eval ac_new_set=\$ac_env_${ac_var}_set
2569 - eval ac_old_val="\$ac_cv_env_${ac_var}_value"
2570 - eval ac_new_val="\$ac_env_${ac_var}_value"
2571 - case $ac_old_set,$ac_new_set in
2573 - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
2574 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
2575 - ac_cache_corrupted=: ;;
2577 - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
2578 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
2579 - ac_cache_corrupted=: ;;
2582 - if test "x$ac_old_val" != "x$ac_new_val"; then
2583 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
2584 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
2585 - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
2586 -echo "$as_me: former value: $ac_old_val" >&2;}
2587 - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
2588 -echo "$as_me: current value: $ac_new_val" >&2;}
2589 - ac_cache_corrupted=:
2592 - # Pass precious variables to config.status.
2593 - if test "$ac_new_set" = set; then
2594 - case $ac_new_val in
2595 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
2596 - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
2597 - *) ac_arg=$ac_var=$ac_new_val ;;
2599 - case " $ac_configure_args " in
2600 - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
2601 - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
2605 -if $ac_cache_corrupted; then
2606 - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
2607 -echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2608 - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
2609 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
2610 - { (exit 1); exit 1; }; }
2614 -ac_cpp='$CPP $CPPFLAGS'
2615 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2616 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2617 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
2638 -# This works around the fact that libtool configuration may change LD
2639 -# for this particular configuration, but some shells, instead of
2640 -# keeping the changes in LD private, export them just because LD is
2642 -ORIGINAL_LD_FOR_MULTILIBS=$LD
2645 -for ac_dir in . $srcdir/.; do
2646 - if test -f $ac_dir/install-sh; then
2647 - ac_aux_dir=$ac_dir
2648 - ac_install_sh="$ac_aux_dir/install-sh -c"
2650 - elif test -f $ac_dir/install.sh; then
2651 - ac_aux_dir=$ac_dir
2652 - ac_install_sh="$ac_aux_dir/install.sh -c"
2654 - elif test -f $ac_dir/shtool; then
2655 - ac_aux_dir=$ac_dir
2656 - ac_install_sh="$ac_aux_dir/shtool install -c"
2660 -if test -z "$ac_aux_dir"; then
2661 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . $srcdir/." >&5
2662 -echo "$as_me: error: cannot find install-sh or install.sh in . $srcdir/." >&2;}
2663 - { (exit 1); exit 1; }; }
2665 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2666 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2667 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2670 -# Make sure we can run config.sub.
2671 -$ac_config_sub sun4 >/dev/null 2>&1 ||
2672 - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
2673 -echo "$as_me: error: cannot run $ac_config_sub" >&2;}
2674 - { (exit 1); exit 1; }; }
2676 -echo "$as_me:$LINENO: checking build system type" >&5
2677 -echo $ECHO_N "checking build system type... $ECHO_C" >&6
2678 -if test "${ac_cv_build+set}" = set; then
2679 - echo $ECHO_N "(cached) $ECHO_C" >&6
2681 - ac_cv_build_alias=$build_alias
2682 -test -z "$ac_cv_build_alias" &&
2683 - ac_cv_build_alias=`$ac_config_guess`
2684 -test -z "$ac_cv_build_alias" &&
2685 - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
2686 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
2687 - { (exit 1); exit 1; }; }
2688 -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
2689 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
2690 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
2691 - { (exit 1); exit 1; }; }
2694 -echo "$as_me:$LINENO: result: $ac_cv_build" >&5
2695 -echo "${ECHO_T}$ac_cv_build" >&6
2697 -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2698 -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2699 -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2702 -echo "$as_me:$LINENO: checking host system type" >&5
2703 -echo $ECHO_N "checking host system type... $ECHO_C" >&6
2704 -if test "${ac_cv_host+set}" = set; then
2705 - echo $ECHO_N "(cached) $ECHO_C" >&6
2707 - ac_cv_host_alias=$host_alias
2708 -test -z "$ac_cv_host_alias" &&
2709 - ac_cv_host_alias=$ac_cv_build_alias
2710 -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
2711 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
2712 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
2713 - { (exit 1); exit 1; }; }
2716 -echo "$as_me:$LINENO: result: $ac_cv_host" >&5
2717 -echo "${ECHO_T}$ac_cv_host" >&6
2719 -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2720 -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2721 -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2724 -# Find a good install program. We prefer a C program (faster),
2725 -# so one script is as good as another. But avoid the broken or
2726 -# incompatible versions:
2727 -# SysV /etc/install, /usr/sbin/install
2728 -# SunOS /usr/etc/install
2729 -# IRIX /sbin/install
2731 -# AmigaOS /C/install, which installs bootblocks on floppy discs
2732 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
2733 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
2734 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
2735 -# ./install, which can be erroneously created by make from ./install.sh.
2736 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
2737 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
2738 -if test -z "$INSTALL"; then
2739 -if test "${ac_cv_path_install+set}" = set; then
2740 - echo $ECHO_N "(cached) $ECHO_C" >&6
2742 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2743 -for as_dir in $PATH
2746 - test -z "$as_dir" && as_dir=.
2747 - # Account for people who put trailing slashes in PATH elements.
2749 - ./ | .// | /cC/* | \
2750 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2753 - # OSF1 and SCO ODT 3.0 have their own names for install.
2754 - # Don't use installbsd from OSF since it installs stuff as root
2756 - for ac_prog in ginstall scoinst install; do
2757 - for ac_exec_ext in '' $ac_executable_extensions; do
2758 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2759 - if test $ac_prog = install &&
2760 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2761 - # AIX install. It has an incompatible calling convention.
2763 - elif test $ac_prog = install &&
2764 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2765 - # program-specific install script used by HP pwplus--don't use.
2768 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2780 - if test "${ac_cv_path_install+set}" = set; then
2781 - INSTALL=$ac_cv_path_install
2783 - # As a last resort, use the slow shell script. We don't cache a
2784 - # path for INSTALL within a source directory, because that will
2785 - # break other packages using the cache if that directory is
2786 - # removed, or if the path is relative.
2787 - INSTALL=$ac_install_sh
2790 -echo "$as_me:$LINENO: result: $INSTALL" >&5
2791 -echo "${ECHO_T}$INSTALL" >&6
2793 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
2794 -# It thinks the first close brace ends the variable substitution.
2795 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2797 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
2799 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
2801 -echo "$as_me:$LINENO: checking whether build environment is sane" >&5
2802 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
2805 -echo timestamp > conftestfile
2806 -# Do `set' in a subshell so we don't clobber the current shell's
2807 -# arguments. Must try -L first in case configure is actually a
2808 -# symlink; some systems play weird games with the mod time of symlinks
2809 -# (eg FreeBSD returns the mod time of the symlink's containing
2812 - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
2813 - if test "$*" = "X"; then
2815 - set X `ls -t $srcdir/configure conftestfile`
2817 - if test "$*" != "X $srcdir/configure conftestfile" \
2818 - && test "$*" != "X conftestfile $srcdir/configure"; then
2820 - # If neither matched, then we have a broken ls. This can happen
2821 - # if, for instance, CONFIG_SHELL is bash and it inherits a
2822 - # broken ls alias from the environment. This has actually
2823 - # happened. Such a system could not be considered "sane".
2824 - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
2825 -alias in your environment" >&5
2826 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
2827 -alias in your environment" >&2;}
2828 - { (exit 1); exit 1; }; }
2831 - test "$2" = conftestfile
2837 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
2838 -Check your system clock" >&5
2839 -echo "$as_me: error: newly created file is older than distributed files!
2840 -Check your system clock" >&2;}
2841 - { (exit 1); exit 1; }; }
2844 -echo "$as_me:$LINENO: result: yes" >&5
2845 -echo "${ECHO_T}yes" >&6
2846 -test "$program_prefix" != NONE &&
2847 - program_transform_name="s,^,$program_prefix,;$program_transform_name"
2848 -# Use a double $ so make ignores it.
2849 -test "$program_suffix" != NONE &&
2850 - program_transform_name="s,\$,$program_suffix,;$program_transform_name"
2851 -# Double any \ or $. echo might interpret backslashes.
2852 -# By default was `s,x,x', remove it if useless.
2853 -cat <<\_ACEOF >conftest.sed
2854 -s/[\\$]/&&/g;s/;s,x,x,$//
2856 -program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
2859 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
2860 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
2861 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
2862 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
2863 - echo $ECHO_N "(cached) $ECHO_C" >&6
2865 - cat >conftest.make <<\_ACEOF
2867 - @echo 'ac_maketemp="$(MAKE)"'
2869 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2870 -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
2871 -if test -n "$ac_maketemp"; then
2872 - eval ac_cv_prog_make_${ac_make}_set=yes
2874 - eval ac_cv_prog_make_${ac_make}_set=no
2876 -rm -f conftest.make
2878 -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
2879 - echo "$as_me:$LINENO: result: yes" >&5
2880 -echo "${ECHO_T}yes" >&6
2883 - echo "$as_me:$LINENO: result: no" >&5
2884 -echo "${ECHO_T}no" >&6
2885 - SET_MAKE="MAKE=${MAKE-make}"
2889 -# Check whether --enable-multilib or --disable-multilib was given.
2890 -if test "${enable_multilib+set}" = set; then
2891 - enableval="$enable_multilib"
2892 - case "${enableval}" in
2893 - yes) multilib=yes ;;
2894 - no) multilib=no ;;
2895 - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
2896 -echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
2897 - { (exit 1); exit 1; }; } ;;
2903 -if test "${srcdir}" = "."; then
2904 - if test "${with_target_subdir}" != "." -a -n "${with_target_subdir}"; then
2905 - gc_basedir="${srcdir}/${with_multisrctop}../."
2907 - gc_basedir="${srcdir}/${with_multisrctop}."
2910 - gc_basedir="${srcdir}/."
2914 -for ac_dir in $gc_basedir/.. $srcdir/$gc_basedir/..; do
2915 - if test -f $ac_dir/install-sh; then
2916 - ac_aux_dir=$ac_dir
2917 - ac_install_sh="$ac_aux_dir/install-sh -c"
2919 - elif test -f $ac_dir/install.sh; then
2920 - ac_aux_dir=$ac_dir
2921 - ac_install_sh="$ac_aux_dir/install.sh -c"
2923 - elif test -f $ac_dir/shtool; then
2924 - ac_aux_dir=$ac_dir
2925 - ac_install_sh="$ac_aux_dir/shtool install -c"
2929 -if test -z "$ac_aux_dir"; then
2930 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&5
2931 -echo "$as_me: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&2;}
2932 - { (exit 1); exit 1; }; }
2934 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2935 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2936 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2939 - # This overrides the previous occurrence for automake, but not for
2940 - # autoconf, which is exactly what we want.
2942 -for ac_dir in .. $srcdir/..; do
2943 - if test -f $ac_dir/install-sh; then
2944 - ac_aux_dir=$ac_dir
2945 - ac_install_sh="$ac_aux_dir/install-sh -c"
2947 - elif test -f $ac_dir/install.sh; then
2948 - ac_aux_dir=$ac_dir
2949 - ac_install_sh="$ac_aux_dir/install.sh -c"
2951 - elif test -f $ac_dir/shtool; then
2952 - ac_aux_dir=$ac_dir
2953 - ac_install_sh="$ac_aux_dir/shtool install -c"
2957 -if test -z "$ac_aux_dir"; then
2958 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in .. $srcdir/.." >&5
2959 -echo "$as_me: error: cannot find install-sh or install.sh in .. $srcdir/.." >&2;}
2960 - { (exit 1); exit 1; }; }
2962 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2963 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2964 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2968 -echo "$as_me:$LINENO: checking target system type" >&5
2969 -echo $ECHO_N "checking target system type... $ECHO_C" >&6
2970 -if test "${ac_cv_target+set}" = set; then
2971 - echo $ECHO_N "(cached) $ECHO_C" >&6
2973 - ac_cv_target_alias=$target_alias
2974 -test "x$ac_cv_target_alias" = "x" &&
2975 - ac_cv_target_alias=$ac_cv_host_alias
2976 -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
2977 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
2978 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
2979 - { (exit 1); exit 1; }; }
2982 -echo "$as_me:$LINENO: result: $ac_cv_target" >&5
2983 -echo "${ECHO_T}$ac_cv_target" >&6
2984 -target=$ac_cv_target
2985 -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2986 -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2987 -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2990 -# The aliases save the names the user supplied, while $host etc.
2991 -# will get canonicalized.
2992 -test -n "$target_alias" &&
2993 - test "$program_prefix$program_suffix$program_transform_name" = \
2995 - program_prefix=${target_alias}-
2997 -# This works around an automake problem.
2998 -mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
3006 -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
3007 - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
3008 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
3009 - { (exit 1); exit 1; }; }
3014 -missing_dir=`cd $ac_aux_dir && pwd`
3015 -echo "$as_me:$LINENO: checking for working aclocal" >&5
3016 -echo $ECHO_N "checking for working aclocal... $ECHO_C" >&6
3017 -# Run test in a subshell; some versions of sh will print an error if
3018 -# an executable is not found, even if stderr is redirected.
3019 -# Redirect stdin to placate older versions of autoconf. Sigh.
3020 -if (aclocal --version) < /dev/null > /dev/null 2>&1; then
3022 - echo "$as_me:$LINENO: result: found" >&5
3023 -echo "${ECHO_T}found" >&6
3025 - ACLOCAL="$missing_dir/missing aclocal"
3026 - echo "$as_me:$LINENO: result: missing" >&5
3027 -echo "${ECHO_T}missing" >&6
3030 -echo "$as_me:$LINENO: checking for working autoconf" >&5
3031 -echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6
3032 -# Run test in a subshell; some versions of sh will print an error if
3033 -# an executable is not found, even if stderr is redirected.
3034 -# Redirect stdin to placate older versions of autoconf. Sigh.
3035 -if (autoconf --version) < /dev/null > /dev/null 2>&1; then
3037 - echo "$as_me:$LINENO: result: found" >&5
3038 -echo "${ECHO_T}found" >&6
3040 - AUTOCONF="$missing_dir/missing autoconf"
3041 - echo "$as_me:$LINENO: result: missing" >&5
3042 -echo "${ECHO_T}missing" >&6
3045 -echo "$as_me:$LINENO: checking for working automake" >&5
3046 -echo $ECHO_N "checking for working automake... $ECHO_C" >&6
3047 -# Run test in a subshell; some versions of sh will print an error if
3048 -# an executable is not found, even if stderr is redirected.
3049 -# Redirect stdin to placate older versions of autoconf. Sigh.
3050 -if (automake --version) < /dev/null > /dev/null 2>&1; then
3052 - echo "$as_me:$LINENO: result: found" >&5
3053 -echo "${ECHO_T}found" >&6
3055 - AUTOMAKE="$missing_dir/missing automake"
3056 - echo "$as_me:$LINENO: result: missing" >&5
3057 -echo "${ECHO_T}missing" >&6
3060 -echo "$as_me:$LINENO: checking for working autoheader" >&5
3061 -echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6
3062 -# Run test in a subshell; some versions of sh will print an error if
3063 -# an executable is not found, even if stderr is redirected.
3064 -# Redirect stdin to placate older versions of autoconf. Sigh.
3065 -if (autoheader --version) < /dev/null > /dev/null 2>&1; then
3066 - AUTOHEADER=autoheader
3067 - echo "$as_me:$LINENO: result: found" >&5
3068 -echo "${ECHO_T}found" >&6
3070 - AUTOHEADER="$missing_dir/missing autoheader"
3071 - echo "$as_me:$LINENO: result: missing" >&5
3072 -echo "${ECHO_T}missing" >&6
3075 -echo "$as_me:$LINENO: checking for working makeinfo" >&5
3076 -echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6
3077 -# Run test in a subshell; some versions of sh will print an error if
3078 -# an executable is not found, even if stderr is redirected.
3079 -# Redirect stdin to placate older versions of autoconf. Sigh.
3080 -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
3082 - echo "$as_me:$LINENO: result: found" >&5
3083 -echo "${ECHO_T}found" >&6
3085 - MAKEINFO="$missing_dir/missing makeinfo"
3086 - echo "$as_me:$LINENO: result: missing" >&5
3087 -echo "${ECHO_T}missing" >&6
3092 -# FIXME: We temporarily define our own version of AC_PROG_CC. This is
3093 -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
3094 -# are probably using a cross compiler, which will not be able to fully
3095 -# link an executable. This should really be fixed in autoconf
3101 -# Extract the first word of "gcc", so it can be a program name with args.
3102 -set dummy gcc; ac_word=$2
3103 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3104 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3105 -if test "${ac_cv_prog_CC+set}" = set; then
3106 - echo $ECHO_N "(cached) $ECHO_C" >&6
3108 - if test -n "$CC"; then
3109 - ac_cv_prog_CC="$CC" # Let the user override the test.
3111 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3112 -for as_dir in $PATH
3115 - test -z "$as_dir" && as_dir=.
3116 - for ac_exec_ext in '' $ac_executable_extensions; do
3117 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3118 - ac_cv_prog_CC="gcc"
3119 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3128 -if test -n "$CC"; then
3129 - echo "$as_me:$LINENO: result: $CC" >&5
3130 -echo "${ECHO_T}$CC" >&6
3132 - echo "$as_me:$LINENO: result: no" >&5
3133 -echo "${ECHO_T}no" >&6
3136 -if test -z "$CC"; then
3137 - # Extract the first word of "cc", so it can be a program name with args.
3138 -set dummy cc; ac_word=$2
3139 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3140 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3141 -if test "${ac_cv_prog_CC+set}" = set; then
3142 - echo $ECHO_N "(cached) $ECHO_C" >&6
3144 - if test -n "$CC"; then
3145 - ac_cv_prog_CC="$CC" # Let the user override the test.
3147 - ac_prog_rejected=no
3148 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3149 -for as_dir in $PATH
3152 - test -z "$as_dir" && as_dir=.
3153 - for ac_exec_ext in '' $ac_executable_extensions; do
3154 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3155 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
3156 - ac_prog_rejected=yes
3159 - ac_cv_prog_CC="cc"
3160 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3166 -if test $ac_prog_rejected = yes; then
3167 - # We found a bogon in the path, so make sure we never use it.
3168 - set dummy $ac_cv_prog_CC
3170 - if test $@%:@ != 0; then
3171 - # We chose a different compiler from the bogus one.
3172 - # However, it has the same basename, so the bogon will be chosen
3173 - # first if we set CC to just the basename; use the full file name.
3175 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
3181 -if test -n "$CC"; then
3182 - echo "$as_me:$LINENO: result: $CC" >&5
3183 -echo "${ECHO_T}$CC" >&6
3185 - echo "$as_me:$LINENO: result: no" >&5
3186 -echo "${ECHO_T}no" >&6
3189 - test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
3190 -echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
3191 - { (exit 1); exit 1; }; }
3196 -if test $ac_cv_c_compiler_gnu = yes; then
3198 - ac_test_CFLAGS="${CFLAGS+set}"
3199 - ac_save_CFLAGS="$CFLAGS"
3202 - if test "$ac_test_CFLAGS" = set; then
3203 - CFLAGS="$ac_save_CFLAGS"
3204 - elif test $ac_cv_prog_cc_g = yes; then
3211 - test "${CFLAGS+set}" = set || CFLAGS="-g"
3215 -# Likewise for AC_PROG_CXX.
3219 -for ac_prog in $CCC c++ g++ gcc CC cxx cc++
3221 - # Extract the first word of "$ac_prog", so it can be a program name with args.
3222 -set dummy $ac_prog; ac_word=$2
3223 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3224 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3225 -if test "${ac_cv_prog_CXX+set}" = set; then
3226 - echo $ECHO_N "(cached) $ECHO_C" >&6
3228 - if test -n "$CXX"; then
3229 - ac_cv_prog_CXX="$CXX" # Let the user override the test.
3231 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3232 -for as_dir in $PATH
3235 - test -z "$as_dir" && as_dir=.
3236 - for ac_exec_ext in '' $ac_executable_extensions; do
3237 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3238 - ac_cv_prog_CXX="$ac_prog"
3239 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3247 -CXX=$ac_cv_prog_CXX
3248 -if test -n "$CXX"; then
3249 - echo "$as_me:$LINENO: result: $CXX" >&5
3250 -echo "${ECHO_T}$CXX" >&6
3252 - echo "$as_me:$LINENO: result: no" >&5
3253 -echo "${ECHO_T}no" >&6
3256 - test -n "$CXX" && break
3258 -test -n "$CXX" || CXX="gcc"
3260 -test -z "$CXX" && { { echo "$as_me:$LINENO: error: no acceptable c++ found in \$PATH" >&5
3261 -echo "$as_me: error: no acceptable c++ found in \$PATH" >&2;}
3262 - { (exit 1); exit 1; }; }
3266 -if test $ac_cv_cxx_compiler_gnu = yes; then
3268 - ac_test_CXXFLAGS="${CXXFLAGS+set}"
3269 - ac_save_CXXFLAGS="$CXXFLAGS"
3272 - if test "$ac_test_CXXFLAGS" = set; then
3273 - CXXFLAGS="$ac_save_CXXFLAGS"
3274 - elif test $ac_cv_prog_cxx_g = yes; then
3281 - test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
3285 -# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
3286 -# run it explicitly here, it will be run implicitly before
3287 -# NEWLIB_CONFIGURE, which doesn't work because that means that it will
3288 -# be run before AC_CANONICAL_HOST.
3291 -if test -n "$ac_tool_prefix"; then
3292 - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
3293 -set dummy ${ac_tool_prefix}as; ac_word=$2
3294 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3295 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3296 -if test "${ac_cv_prog_AS+set}" = set; then
3297 - echo $ECHO_N "(cached) $ECHO_C" >&6
3299 - if test -n "$AS"; then
3300 - ac_cv_prog_AS="$AS" # Let the user override the test.
3302 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3303 -for as_dir in $PATH
3306 - test -z "$as_dir" && as_dir=.
3307 - for ac_exec_ext in '' $ac_executable_extensions; do
3308 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3309 - ac_cv_prog_AS="${ac_tool_prefix}as"
3310 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3319 -if test -n "$AS"; then
3320 - echo "$as_me:$LINENO: result: $AS" >&5
3321 -echo "${ECHO_T}$AS" >&6
3323 - echo "$as_me:$LINENO: result: no" >&5
3324 -echo "${ECHO_T}no" >&6
3328 -if test -z "$ac_cv_prog_AS"; then
3330 - # Extract the first word of "as", so it can be a program name with args.
3331 -set dummy as; ac_word=$2
3332 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3333 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3334 -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
3335 - echo $ECHO_N "(cached) $ECHO_C" >&6
3337 - if test -n "$ac_ct_AS"; then
3338 - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
3340 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3341 -for as_dir in $PATH
3344 - test -z "$as_dir" && as_dir=.
3345 - for ac_exec_ext in '' $ac_executable_extensions; do
3346 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3347 - ac_cv_prog_ac_ct_AS="as"
3348 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3356 -ac_ct_AS=$ac_cv_prog_ac_ct_AS
3357 -if test -n "$ac_ct_AS"; then
3358 - echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
3359 -echo "${ECHO_T}$ac_ct_AS" >&6
3361 - echo "$as_me:$LINENO: result: no" >&5
3362 -echo "${ECHO_T}no" >&6
3367 - AS="$ac_cv_prog_AS"
3370 -if test -n "$ac_tool_prefix"; then
3371 - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
3372 -set dummy ${ac_tool_prefix}ar; ac_word=$2
3373 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3374 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3375 -if test "${ac_cv_prog_AR+set}" = set; then
3376 - echo $ECHO_N "(cached) $ECHO_C" >&6
3378 - if test -n "$AR"; then
3379 - ac_cv_prog_AR="$AR" # Let the user override the test.
3381 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3382 -for as_dir in $PATH
3385 - test -z "$as_dir" && as_dir=.
3386 - for ac_exec_ext in '' $ac_executable_extensions; do
3387 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3388 - ac_cv_prog_AR="${ac_tool_prefix}ar"
3389 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3398 -if test -n "$AR"; then
3399 - echo "$as_me:$LINENO: result: $AR" >&5
3400 -echo "${ECHO_T}$AR" >&6
3402 - echo "$as_me:$LINENO: result: no" >&5
3403 -echo "${ECHO_T}no" >&6
3407 -if test -z "$ac_cv_prog_AR"; then
3409 - # Extract the first word of "ar", so it can be a program name with args.
3410 -set dummy ar; ac_word=$2
3411 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3412 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3413 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
3414 - echo $ECHO_N "(cached) $ECHO_C" >&6
3416 - if test -n "$ac_ct_AR"; then
3417 - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
3419 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3420 -for as_dir in $PATH
3423 - test -z "$as_dir" && as_dir=.
3424 - for ac_exec_ext in '' $ac_executable_extensions; do
3425 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3426 - ac_cv_prog_ac_ct_AR="ar"
3427 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3435 -ac_ct_AR=$ac_cv_prog_ac_ct_AR
3436 -if test -n "$ac_ct_AR"; then
3437 - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
3438 -echo "${ECHO_T}$ac_ct_AR" >&6
3440 - echo "$as_me:$LINENO: result: no" >&5
3441 -echo "${ECHO_T}no" >&6
3446 - AR="$ac_cv_prog_AR"
3449 -if test -n "$ac_tool_prefix"; then
3450 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
3451 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
3452 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3453 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3454 -if test "${ac_cv_prog_RANLIB+set}" = set; then
3455 - echo $ECHO_N "(cached) $ECHO_C" >&6
3457 - if test -n "$RANLIB"; then
3458 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
3460 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3461 -for as_dir in $PATH
3464 - test -z "$as_dir" && as_dir=.
3465 - for ac_exec_ext in '' $ac_executable_extensions; do
3466 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3467 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
3468 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3476 -RANLIB=$ac_cv_prog_RANLIB
3477 -if test -n "$RANLIB"; then
3478 - echo "$as_me:$LINENO: result: $RANLIB" >&5
3479 -echo "${ECHO_T}$RANLIB" >&6
3481 - echo "$as_me:$LINENO: result: no" >&5
3482 -echo "${ECHO_T}no" >&6
3486 -if test -z "$ac_cv_prog_RANLIB"; then
3487 - ac_ct_RANLIB=$RANLIB
3488 - # Extract the first word of "ranlib", so it can be a program name with args.
3489 -set dummy ranlib; ac_word=$2
3490 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3491 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3492 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
3493 - echo $ECHO_N "(cached) $ECHO_C" >&6
3495 - if test -n "$ac_ct_RANLIB"; then
3496 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
3498 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3499 -for as_dir in $PATH
3502 - test -z "$as_dir" && as_dir=.
3503 - for ac_exec_ext in '' $ac_executable_extensions; do
3504 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3505 - ac_cv_prog_ac_ct_RANLIB="ranlib"
3506 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3512 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
3515 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
3516 -if test -n "$ac_ct_RANLIB"; then
3517 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
3518 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
3520 - echo "$as_me:$LINENO: result: no" >&5
3521 -echo "${ECHO_T}no" >&6
3524 - RANLIB=$ac_ct_RANLIB
3526 - RANLIB="$ac_cv_prog_RANLIB"
3530 -# Find a good install program. We prefer a C program (faster),
3531 -# so one script is as good as another. But avoid the broken or
3532 -# incompatible versions:
3533 -# SysV /etc/install, /usr/sbin/install
3534 -# SunOS /usr/etc/install
3535 -# IRIX /sbin/install
3537 -# AmigaOS /C/install, which installs bootblocks on floppy discs
3538 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
3539 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
3540 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
3541 -# ./install, which can be erroneously created by make from ./install.sh.
3542 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
3543 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
3544 -if test -z "$INSTALL"; then
3545 -if test "${ac_cv_path_install+set}" = set; then
3546 - echo $ECHO_N "(cached) $ECHO_C" >&6
3548 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3549 -for as_dir in $PATH
3552 - test -z "$as_dir" && as_dir=.
3553 - # Account for people who put trailing slashes in PATH elements.
3555 - ./ | .// | /cC/* | \
3556 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
3559 - # OSF1 and SCO ODT 3.0 have their own names for install.
3560 - # Don't use installbsd from OSF since it installs stuff as root
3562 - for ac_prog in ginstall scoinst install; do
3563 - for ac_exec_ext in '' $ac_executable_extensions; do
3564 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
3565 - if test $ac_prog = install &&
3566 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3567 - # AIX install. It has an incompatible calling convention.
3569 - elif test $ac_prog = install &&
3570 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3571 - # program-specific install script used by HP pwplus--don't use.
3574 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
3586 - if test "${ac_cv_path_install+set}" = set; then
3587 - INSTALL=$ac_cv_path_install
3589 - # As a last resort, use the slow shell script. We don't cache a
3590 - # path for INSTALL within a source directory, because that will
3591 - # break other packages using the cache if that directory is
3592 - # removed, or if the path is relative.
3593 - INSTALL=$ac_install_sh
3596 -echo "$as_me:$LINENO: result: $INSTALL" >&5
3597 -echo "${ECHO_T}$INSTALL" >&6
3599 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
3600 -# It thinks the first close brace ends the variable substitution.
3601 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
3603 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
3605 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
3608 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
3609 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
3610 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
3611 -if test "${enable_maintainer_mode+set}" = set; then
3612 - enableval="$enable_maintainer_mode"
3613 - USE_MAINTAINER_MODE=$enableval
3615 - USE_MAINTAINER_MODE=no
3617 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
3618 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
3621 -if test $USE_MAINTAINER_MODE = yes; then
3622 - MAINTAINER_MODE_TRUE=
3623 - MAINTAINER_MODE_FALSE='#'
3625 - MAINTAINER_MODE_TRUE='#'
3626 - MAINTAINER_MODE_FALSE=
3628 - MAINT=$MAINTAINER_MODE_TRUE
3632 -# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
3633 -# at least currently, we never actually build a program, so we never
3634 -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
3635 -# fails, because we are probably configuring with a cross compiler
3636 -# which can't create executables. So we include AC_EXEEXT to keep
3637 -# automake happy, but we don't execute it, since we don't care about
3640 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
3641 - # to nothing, so nothing would remain between `then' and `fi' if it
3642 - # were not for the `:' below.
3647 -. ${srcdir}/configure.host
3649 -case ${gc_basedir} in
3650 -/* | A-Za-z:/\\*) gc_flagbasedir=${gc_basedir} ;;
3651 -*) gc_flagbasedir='$(top_builddir)/'${gc_basedir} ;;
3654 -gc_cflags="${gc_cflags} -I"'$(top_builddir)'"/./targ-include -I${gc_flagbasedir}/libc/include"
3657 - gc_cflags="${gc_cflags} -I${gc_flagbasedir}/../winsup/include"
3662 -GC_CFLAGS=${gc_cflags}
3666 -# Check whether --enable-shared or --disable-shared was given.
3667 -if test "${enable_shared+set}" = set; then
3668 - enableval="$enable_shared"
3669 - p=${PACKAGE-default}
3671 -yes) enable_shared=yes ;;
3672 -no) enable_shared=no ;;
3675 - # Look at the argument we got. We use all the common list separators.
3676 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3677 - for pkg in $enableval; do
3678 - if test "X$pkg" = "X$p"; then
3682 - IFS="$ac_save_ifs"
3688 -# Check whether --enable-static or --disable-static was given.
3689 -if test "${enable_static+set}" = set; then
3690 - enableval="$enable_static"
3691 - p=${PACKAGE-default}
3693 -yes) enable_static=yes ;;
3694 -no) enable_static=no ;;
3697 - # Look at the argument we got. We use all the common list separators.
3698 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3699 - for pkg in $enableval; do
3700 - if test "X$pkg" = "X$p"; then
3704 - IFS="$ac_save_ifs"
3710 -# Check whether --enable-fast-install or --disable-fast-install was given.
3711 -if test "${enable_fast_install+set}" = set; then
3712 - enableval="$enable_fast_install"
3713 - p=${PACKAGE-default}
3715 -yes) enable_fast_install=yes ;;
3716 -no) enable_fast_install=no ;;
3718 - enable_fast_install=no
3719 - # Look at the argument we got. We use all the common list separators.
3720 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3721 - for pkg in $enableval; do
3722 - if test "X$pkg" = "X$p"; then
3723 - enable_fast_install=yes
3726 - IFS="$ac_save_ifs"
3730 - enable_fast_install=yes
3733 -# Check whether --with-gnu-ld or --without-gnu-ld was given.
3734 -if test "${with_gnu_ld+set}" = set; then
3735 - withval="$with_gnu_ld"
3736 - test "$withval" = no || with_gnu_ld=yes
3741 -if test "$GCC" = yes; then
3742 - # Check if gcc -print-prog-name=ld gives a path.
3743 - echo "$as_me:$LINENO: checking for ld used by GCC" >&5
3744 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
3747 - # gcc leaves a trailing carriage return which upsets mingw
3748 - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
3750 - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
3753 - # Accept absolute paths.
3754 - [\\/]* | [A-Za-z]:[\\/]*)
3755 - re_direlt='/[^/][^/]*/\.\./'
3756 - # Canonicalize the path of ld
3757 - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
3758 - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
3759 - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
3761 - test -z "$LD" && LD="$ac_prog"
3764 - # If it fails, then pretend we aren't using GCC.
3768 - # If it is relative, then search for the first ld in PATH.
3769 - with_gnu_ld=unknown
3772 -elif test "$with_gnu_ld" = yes; then
3773 - echo "$as_me:$LINENO: checking for GNU ld" >&5
3774 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
3776 - echo "$as_me:$LINENO: checking for non-GNU ld" >&5
3777 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
3779 -if test "${lt_cv_path_LD+set}" = set; then
3780 - echo $ECHO_N "(cached) $ECHO_C" >&6
3782 - if test -z "$LD"; then
3783 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
3784 - for ac_dir in $PATH; do
3785 - test -z "$ac_dir" && ac_dir=.
3786 - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
3787 - lt_cv_path_LD="$ac_dir/$ac_prog"
3788 - # Check to see if the program is GNU ld. I'd rather use --version,
3789 - # but apparently some GNU ld's only accept -v.
3790 - # Break only if it was the GNU/non-GNU ld that we prefer.
3791 - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
3792 - test "$with_gnu_ld" != no && break
3794 - test "$with_gnu_ld" != yes && break
3798 - IFS="$ac_save_ifs"
3800 - lt_cv_path_LD="$LD" # Let the user override the test with a path.
3804 -LD="$lt_cv_path_LD"
3805 -if test -n "$LD"; then
3806 - echo "$as_me:$LINENO: result: $LD" >&5
3807 -echo "${ECHO_T}$LD" >&6
3809 - echo "$as_me:$LINENO: result: no" >&5
3810 -echo "${ECHO_T}no" >&6
3812 -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
3813 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
3814 - { (exit 1); exit 1; }; }
3815 -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
3816 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
3817 -if test "${lt_cv_prog_gnu_ld+set}" = set; then
3818 - echo $ECHO_N "(cached) $ECHO_C" >&6
3820 - # I'd rather use --version here, but apparently some GNU ld's only accept -v.
3821 -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
3822 - lt_cv_prog_gnu_ld=yes
3824 - lt_cv_prog_gnu_ld=no
3827 -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
3828 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
3829 -with_gnu_ld=$lt_cv_prog_gnu_ld
3832 -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
3833 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
3834 -if test "${lt_cv_ld_reload_flag+set}" = set; then
3835 - echo $ECHO_N "(cached) $ECHO_C" >&6
3837 - lt_cv_ld_reload_flag='-r'
3839 -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
3840 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
3841 -reload_flag=$lt_cv_ld_reload_flag
3842 -test -n "$reload_flag" && reload_flag=" $reload_flag"
3844 -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
3845 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
3846 -if test "${lt_cv_path_NM+set}" = set; then
3847 - echo $ECHO_N "(cached) $ECHO_C" >&6
3849 - if test -n "$NM"; then
3850 - # Let the user override the test.
3851 - lt_cv_path_NM="$NM"
3853 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
3854 - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
3855 - test -z "$ac_dir" && ac_dir=.
3856 - tmp_nm=$ac_dir/${ac_tool_prefix}nm
3857 - if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
3858 - # Check to see if the nm accepts a BSD-compat flag.
3859 - # Adding the `sed 1q' prevents false positives on HP-UX, which says:
3860 - # nm: unknown option "B" ignored
3861 - # Tru64's nm complains that /dev/null is an invalid object file
3862 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
3863 - lt_cv_path_NM="$tmp_nm -B"
3865 - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
3866 - lt_cv_path_NM="$tmp_nm -p"
3869 - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
3870 - continue # so that we can try to find one that supports BSD flags
3874 - IFS="$ac_save_ifs"
3875 - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
3879 -NM="$lt_cv_path_NM"
3880 -echo "$as_me:$LINENO: result: $NM" >&5
3881 -echo "${ECHO_T}$NM" >&6
3883 -echo "$as_me:$LINENO: checking whether ln -s works" >&5
3884 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
3886 -if test "$LN_S" = "ln -s"; then
3887 - echo "$as_me:$LINENO: result: yes" >&5
3888 -echo "${ECHO_T}yes" >&6
3890 - echo "$as_me:$LINENO: result: no, using $LN_S" >&5
3891 -echo "${ECHO_T}no, using $LN_S" >&6
3894 -echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5
3895 -echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
3896 -if test "${lt_cv_deplibs_check_method+set}" = set; then
3897 - echo $ECHO_N "(cached) $ECHO_C" >&6
3899 - lt_cv_file_magic_cmd='$MAGIC_CMD'
3900 -lt_cv_file_magic_test_file=
3901 -lt_cv_deplibs_check_method='unknown'
3902 -# Need to set the preceding variable on all platforms that support
3903 -# interlibrary dependencies.
3904 -# 'none' -- dependencies not supported.
3905 -# `unknown' -- same as none, but documents that we really don't know.
3906 -# 'pass_all' -- all dependencies passed with no checks.
3907 -# 'test_compile' -- check by making test program.
3908 -# 'file_magic [regex]' -- check by looking for files in library path
3909 -# which responds to the $file_magic_cmd with a given egrep regex.
3910 -# If you have `file' or equivalent on your system and you're not sure
3911 -# whether `pass_all' will *always* work, you probably want this one.
3915 - lt_cv_deplibs_check_method=pass_all
3919 - lt_cv_deplibs_check_method=pass_all
3923 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
3924 - lt_cv_file_magic_cmd='/usr/bin/file -L'
3925 - lt_cv_file_magic_test_file=/shlib/libc.so
3928 -cygwin* | mingw* |pw32*)
3929 - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
3930 - lt_cv_file_magic_cmd='$OBJDUMP -f'
3933 -darwin* | rhapsody*)
3934 - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
3935 - lt_cv_file_magic_cmd='/usr/bin/file -L'
3936 - case "$host_os" in
3937 - rhapsody* | darwin1.012)
3938 - lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
3940 - *) # Darwin 1.3 on
3941 - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
3947 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
3950 - # Not sure whether the presence of OpenBSD here was a mistake.
3951 - # Let's accept both of them until this is cleared up.
3952 - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
3953 - lt_cv_file_magic_cmd=/usr/bin/file
3954 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3958 - lt_cv_deplibs_check_method=pass_all
3963 - lt_cv_deplibs_check_method=pass_all
3966 -hpux10.20*|hpux11*)
3969 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
3970 - lt_cv_file_magic_cmd=/usr/bin/file
3971 - lt_cv_file_magic_test_file=/usr/lib/libc.sl
3974 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
3975 - lt_cv_file_magic_cmd=/usr/bin/file
3976 - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
3984 - # this will be overridden with pass_all, but let us keep it just in case
3985 - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
3989 - *-32|*"-32 ") libmagic=32-bit;;
3990 - *-n32|*"-n32 ") libmagic=N32;;
3991 - *-64|*"-64 ") libmagic=64-bit;;
3992 - *) libmagic=never-match;;
3994 - # this will be overridden with pass_all, but let us keep it just in case
3995 - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
3998 - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
3999 - lt_cv_deplibs_check_method=pass_all
4002 -# This must be Linux ELF.
4005 - alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
4006 - lt_cv_deplibs_check_method=pass_all ;;
4008 - # glibc up to 2.1.1 does not perform some relocations on ARM
4009 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
4011 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
4015 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
4016 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
4018 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
4023 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
4024 - lt_cv_file_magic_cmd=/usr/bin/file
4025 - lt_cv_file_magic_test_file=/usr/lib/libnls.so
4028 -osf3* | osf4* | osf5*)
4029 - # this will be overridden with pass_all, but let us keep it just in case
4030 - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
4031 - lt_cv_file_magic_test_file=/shlib/libc.so
4032 - lt_cv_deplibs_check_method=pass_all
4036 - lt_cv_deplibs_check_method=pass_all
4040 - lt_cv_deplibs_check_method=pass_all
4041 - lt_cv_file_magic_test_file=/lib/libc.so
4044 -sysv5uw[78]* | sysv4*uw2*)
4045 - lt_cv_deplibs_check_method=pass_all
4048 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
4049 - case $host_vendor in
4051 - lt_cv_deplibs_check_method=pass_all
4054 - 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]'
4055 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
4062 -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
4063 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
4064 -file_magic_cmd=$lt_cv_file_magic_cmd
4065 -deplibs_check_method=$lt_cv_deplibs_check_method
4070 -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
4072 -# Only perform the check for file, if the check method requires it
4073 -case $deplibs_check_method in
4075 - if test "$file_magic_cmd" = '$MAGIC_CMD'; then
4076 - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
4077 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
4078 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
4079 - echo $ECHO_N "(cached) $ECHO_C" >&6
4081 - case $MAGIC_CMD in
4083 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
4086 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
4089 - ac_save_MAGIC_CMD="$MAGIC_CMD"
4090 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
4091 - ac_dummy="/usr/bin:$PATH"
4092 - for ac_dir in $ac_dummy; do
4093 - test -z "$ac_dir" && ac_dir=.
4094 - if test -f $ac_dir/${ac_tool_prefix}file; then
4095 - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
4096 - if test -n "$file_magic_test_file"; then
4097 - case $deplibs_check_method in
4099 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
4100 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4101 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
4102 - egrep "$file_magic_regex" > /dev/null; then
4107 -*** Warning: the command libtool uses to detect shared libraries,
4108 -*** $file_magic_cmd, produces output that libtool cannot recognize.
4109 -*** The result is that libtool may fail to recognize shared libraries
4110 -*** as such. This will affect the creation of libtool libraries that
4111 -*** depend on shared libraries, but programs linked with such libtool
4112 -*** libraries will work regardless of this problem. Nevertheless, you
4113 -*** may want to report the problem to your system manager and/or to
4114 -*** bug-libtool@gnu.org
4123 - IFS="$ac_save_ifs"
4124 - MAGIC_CMD="$ac_save_MAGIC_CMD"
4129 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4130 -if test -n "$MAGIC_CMD"; then
4131 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
4132 -echo "${ECHO_T}$MAGIC_CMD" >&6
4134 - echo "$as_me:$LINENO: result: no" >&5
4135 -echo "${ECHO_T}no" >&6
4138 -if test -z "$lt_cv_path_MAGIC_CMD"; then
4139 - if test -n "$ac_tool_prefix"; then
4140 - echo "$as_me:$LINENO: checking for file" >&5
4141 -echo $ECHO_N "checking for file... $ECHO_C" >&6
4142 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
4143 - echo $ECHO_N "(cached) $ECHO_C" >&6
4145 - case $MAGIC_CMD in
4147 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
4150 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
4153 - ac_save_MAGIC_CMD="$MAGIC_CMD"
4154 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
4155 - ac_dummy="/usr/bin:$PATH"
4156 - for ac_dir in $ac_dummy; do
4157 - test -z "$ac_dir" && ac_dir=.
4158 - if test -f $ac_dir/file; then
4159 - lt_cv_path_MAGIC_CMD="$ac_dir/file"
4160 - if test -n "$file_magic_test_file"; then
4161 - case $deplibs_check_method in
4163 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
4164 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4165 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
4166 - egrep "$file_magic_regex" > /dev/null; then
4171 -*** Warning: the command libtool uses to detect shared libraries,
4172 -*** $file_magic_cmd, produces output that libtool cannot recognize.
4173 -*** The result is that libtool may fail to recognize shared libraries
4174 -*** as such. This will affect the creation of libtool libraries that
4175 -*** depend on shared libraries, but programs linked with such libtool
4176 -*** libraries will work regardless of this problem. Nevertheless, you
4177 -*** may want to report the problem to your system manager and/or to
4178 -*** bug-libtool@gnu.org
4187 - IFS="$ac_save_ifs"
4188 - MAGIC_CMD="$ac_save_MAGIC_CMD"
4193 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4194 -if test -n "$MAGIC_CMD"; then
4195 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
4196 -echo "${ECHO_T}$MAGIC_CMD" >&6
4198 - echo "$as_me:$LINENO: result: no" >&5
4199 -echo "${ECHO_T}no" >&6
4211 -if test -n "$ac_tool_prefix"; then
4212 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
4213 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
4214 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4215 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4216 -if test "${ac_cv_prog_RANLIB+set}" = set; then
4217 - echo $ECHO_N "(cached) $ECHO_C" >&6
4219 - if test -n "$RANLIB"; then
4220 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
4222 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4223 -for as_dir in $PATH
4226 - test -z "$as_dir" && as_dir=.
4227 - for ac_exec_ext in '' $ac_executable_extensions; do
4228 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4229 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
4230 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4238 -RANLIB=$ac_cv_prog_RANLIB
4239 -if test -n "$RANLIB"; then
4240 - echo "$as_me:$LINENO: result: $RANLIB" >&5
4241 -echo "${ECHO_T}$RANLIB" >&6
4243 - echo "$as_me:$LINENO: result: no" >&5
4244 -echo "${ECHO_T}no" >&6
4248 -if test -z "$ac_cv_prog_RANLIB"; then
4249 - ac_ct_RANLIB=$RANLIB
4250 - # Extract the first word of "ranlib", so it can be a program name with args.
4251 -set dummy ranlib; ac_word=$2
4252 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4253 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4254 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
4255 - echo $ECHO_N "(cached) $ECHO_C" >&6
4257 - if test -n "$ac_ct_RANLIB"; then
4258 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
4260 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4261 -for as_dir in $PATH
4264 - test -z "$as_dir" && as_dir=.
4265 - for ac_exec_ext in '' $ac_executable_extensions; do
4266 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4267 - ac_cv_prog_ac_ct_RANLIB="ranlib"
4268 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4274 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
4277 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
4278 -if test -n "$ac_ct_RANLIB"; then
4279 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
4280 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
4282 - echo "$as_me:$LINENO: result: no" >&5
4283 -echo "${ECHO_T}no" >&6
4286 - RANLIB=$ac_ct_RANLIB
4288 - RANLIB="$ac_cv_prog_RANLIB"
4291 -if test -n "$ac_tool_prefix"; then
4292 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
4293 -set dummy ${ac_tool_prefix}strip; ac_word=$2
4294 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4295 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4296 -if test "${ac_cv_prog_STRIP+set}" = set; then
4297 - echo $ECHO_N "(cached) $ECHO_C" >&6
4299 - if test -n "$STRIP"; then
4300 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
4302 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4303 -for as_dir in $PATH
4306 - test -z "$as_dir" && as_dir=.
4307 - for ac_exec_ext in '' $ac_executable_extensions; do
4308 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4309 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
4310 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4318 -STRIP=$ac_cv_prog_STRIP
4319 -if test -n "$STRIP"; then
4320 - echo "$as_me:$LINENO: result: $STRIP" >&5
4321 -echo "${ECHO_T}$STRIP" >&6
4323 - echo "$as_me:$LINENO: result: no" >&5
4324 -echo "${ECHO_T}no" >&6
4328 -if test -z "$ac_cv_prog_STRIP"; then
4329 - ac_ct_STRIP=$STRIP
4330 - # Extract the first word of "strip", so it can be a program name with args.
4331 -set dummy strip; ac_word=$2
4332 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4333 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4334 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
4335 - echo $ECHO_N "(cached) $ECHO_C" >&6
4337 - if test -n "$ac_ct_STRIP"; then
4338 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
4340 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4341 -for as_dir in $PATH
4344 - test -z "$as_dir" && as_dir=.
4345 - for ac_exec_ext in '' $ac_executable_extensions; do
4346 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4347 - ac_cv_prog_ac_ct_STRIP="strip"
4348 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4354 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
4357 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
4358 -if test -n "$ac_ct_STRIP"; then
4359 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
4360 -echo "${ECHO_T}$ac_ct_STRIP" >&6
4362 - echo "$as_me:$LINENO: result: no" >&5
4363 -echo "${ECHO_T}no" >&6
4366 - STRIP=$ac_ct_STRIP
4368 - STRIP="$ac_cv_prog_STRIP"
4372 -# Check for any special flags to pass to ltconfig.
4373 -libtool_flags="--cache-file=$cache_file"
4374 -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
4375 -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
4376 -test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
4377 -test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
4378 -test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
4381 -# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
4382 -if test "${enable_libtool_lock+set}" = set; then
4383 - enableval="$enable_libtool_lock"
4386 -test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
4387 -test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
4390 -# Check whether --with-pic or --without-pic was given.
4391 -if test "${with_pic+set}" = set; then
4392 - withval="$with_pic"
4393 - pic_mode="$withval"
4397 -test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
4398 -test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
4400 -# Some flags need to be propagated to the compiler or linker for good
4404 - # Find out which ABI we are using.
4405 - echo '#line __oline__ "configure"' > conftest.$ac_ext
4406 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4407 - (eval $ac_compile) 2>&5
4409 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4410 - (exit $ac_status); }; then
4411 - case `/usr/bin/file conftest.$ac_objext` in
4416 - LD="${LD-ld} -n32"
4427 - # Find out which ABI we are using.
4428 - echo 'int i;' > conftest.$ac_ext
4429 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4430 - (eval $ac_compile) 2>&5
4432 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4433 - (exit $ac_status); }; then
4434 - case "`/usr/bin/file conftest.o`" in
4436 - HPUX_IA64_MODE="32"
4439 - HPUX_IA64_MODE="64"
4446 -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
4447 - # Find out which ABI we are using.
4448 - echo 'int i;' > conftest.$ac_ext
4449 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4450 - (eval $ac_compile) 2>&5
4452 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4453 - (exit $ac_status); }; then
4454 - case "`/usr/bin/file conftest.o`" in
4458 - LD="${LD-ld} -m elf_i386"
4461 - LD="${LD-ld} -m elf32ppclinux"
4464 - LD="${LD-ld} -m elf_s390"
4467 - LD="${LD-ld} -m elf32_sparc"
4474 - LD="${LD-ld} -m elf_x86_64"
4476 - ppc*-*linux*|powerpc*-*linux*)
4477 - LD="${LD-ld} -m elf64ppc"
4480 - LD="${LD-ld} -m elf64_s390"
4483 - LD="${LD-ld} -m elf64_sparc"
4493 - # On SCO OpenServer 5, we need -belf to get full-featured binaries.
4494 - SAVE_CFLAGS="$CFLAGS"
4495 - CFLAGS="$CFLAGS -belf"
4496 - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
4497 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
4498 -if test "${lt_cv_cc_needs_belf+set}" = set; then
4499 - echo $ECHO_N "(cached) $ECHO_C" >&6
4504 -ac_cpp='$CPP $CPPFLAGS'
4505 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4506 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4507 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4509 - cat >conftest.$ac_ext <<_ACEOF
4510 -#line $LINENO "configure"
4513 -cat confdefs.h >>conftest.$ac_ext
4514 -cat >>conftest.$ac_ext <<_ACEOF
4515 -/* end confdefs.h. */
4525 -rm -f conftest.$ac_objext conftest$ac_exeext
4526 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4527 - (eval $ac_link) 2>&5
4529 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4530 - (exit $ac_status); } &&
4531 - { ac_try='test -s conftest$ac_exeext'
4532 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4533 - (eval $ac_try) 2>&5
4535 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4536 - (exit $ac_status); }; }; then
4537 - lt_cv_cc_needs_belf=yes
4539 - echo "$as_me: failed program was:" >&5
4540 -sed 's/^/| /' conftest.$ac_ext >&5
4542 -lt_cv_cc_needs_belf=no
4544 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4546 -ac_cpp='$CPP $CPPFLAGS'
4547 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4548 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4549 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4552 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
4553 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
4554 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then
4555 - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
4556 - CFLAGS="$SAVE_CFLAGS"
4564 -# Save cache, so that ltconfig can load it
4565 -cat >confcache <<\_ACEOF
4566 -# This file is a shell script that caches the results of configure
4567 -# tests run on this system so they can be shared between configure
4568 -# scripts and configure runs, see configure's option --config-cache.
4569 -# It is not useful on other systems. If it contains results you don't
4570 -# want to keep, you may remove or edit it.
4572 -# config.status only pays attention to the cache file if you give it
4573 -# the --recheck option to rerun configure.
4575 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
4576 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
4577 -# following values.
4581 -# The following way of writing the cache mishandles newlines in values,
4582 -# but we know of no workaround that is simple, portable, and efficient.
4583 -# So, don't put newlines in cache variables' values.
4584 -# Ultrix sh set writes to stderr and can't be redirected directly,
4585 -# and sets the high bit in the cache file unless we assign to the vars.
4588 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
4590 - # `set' does not quote correctly, so add quotes (double-quote
4591 - # substitution turns \\\\ into \\, and sed turns \\ into \).
4594 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
4597 - # `set' quotes correctly as required by POSIX, so do not add quotes.
4599 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
4606 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
4608 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
4609 - : end' >>confcache
4610 -if diff $cache_file confcache >/dev/null 2>&1; then :; else
4611 - if test -w $cache_file; then
4612 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
4613 - cat confcache >$cache_file
4615 - echo "not updating unwritable cache $cache_file"
4620 -# Actually configure libtool. ac_aux_dir is where install-sh is found.
4621 -AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
4622 -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
4623 -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
4624 -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
4625 -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
4626 -deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
4627 -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
4628 -$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
4629 -|| { { echo "$as_me:$LINENO: error: libtool configure failed" >&5
4630 -echo "$as_me: error: libtool configure failed" >&2;}
4631 - { (exit 1); exit 1; }; }
4633 -# Reload cache, that may have been modified by ltconfig
4634 -if test -r "$cache_file"; then
4635 - # Some versions of bash will fail to source /dev/null (special
4636 - # files actually), so we avoid doing that.
4637 - if test -f "$cache_file"; then
4638 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
4639 -echo "$as_me: loading cache $cache_file" >&6;}
4640 - case $cache_file in
4641 - [\\/]* | ?:[\\/]* ) . $cache_file;;
4642 - *) . ./$cache_file;;
4646 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
4647 -echo "$as_me: creating cache $cache_file" >&6;}
4652 -# This can be used to rebuild libtool when needed
4653 -LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
4655 -# Always use our own libtool.
4656 -LIBTOOL='$(SHELL) $(top_builddir)/libtool'
4658 -# Redirect the config.log output again, so that the ltconfig log is not
4659 -# clobbered by the next message.
4660 -exec 5>>./config.log
4663 -ac_cpp='$CXXCPP $CPPFLAGS'
4664 -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4665 -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4666 -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
4667 -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
4668 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
4669 -if test -z "$CXXCPP"; then
4670 - if test "${ac_cv_prog_CXXCPP+set}" = set; then
4671 - echo $ECHO_N "(cached) $ECHO_C" >&6
4673 - # Double quotes because CXXCPP needs to be expanded
4674 - for CXXCPP in "$CXX -E" "/lib/cpp"
4676 - ac_preproc_ok=false
4677 -for ac_cxx_preproc_warn_flag in '' yes
4679 - # Use a header file that comes with gcc, so configuring glibc
4680 - # with a fresh cross-compiler works.
4681 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4682 - # <limits.h> exists even on freestanding compilers.
4683 - # On the NeXT, cc -E runs the code through the compiler's parser,
4684 - # not just through cpp. "Syntax error" is here to catch this case.
4685 - cat >conftest.$ac_ext <<_ACEOF
4686 -#line $LINENO "configure"
4689 -cat confdefs.h >>conftest.$ac_ext
4690 -cat >>conftest.$ac_ext <<_ACEOF
4691 -/* end confdefs.h. */
4693 -@%:@ include <limits.h>
4695 -@%:@ include <assert.h>
4699 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4700 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4702 - grep -v '^ *+' conftest.er1 >conftest.err
4703 - rm -f conftest.er1
4704 - cat conftest.err >&5
4705 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4706 - (exit $ac_status); } >/dev/null; then
4707 - if test -s conftest.err; then
4708 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4715 -if test -z "$ac_cpp_err"; then
4718 - echo "$as_me: failed program was:" >&5
4719 -sed 's/^/| /' conftest.$ac_ext >&5
4721 - # Broken: fails on valid input.
4724 -rm -f conftest.err conftest.$ac_ext
4726 - # OK, works on sane cases. Now check whether non-existent headers
4727 - # can be detected and how.
4728 - cat >conftest.$ac_ext <<_ACEOF
4729 -#line $LINENO "configure"
4732 -cat confdefs.h >>conftest.$ac_ext
4733 -cat >>conftest.$ac_ext <<_ACEOF
4734 -/* end confdefs.h. */
4735 -@%:@include <ac_nonexistent.h>
4737 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4738 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4740 - grep -v '^ *+' conftest.er1 >conftest.err
4741 - rm -f conftest.er1
4742 - cat conftest.err >&5
4743 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4744 - (exit $ac_status); } >/dev/null; then
4745 - if test -s conftest.err; then
4746 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4753 -if test -z "$ac_cpp_err"; then
4754 - # Broken: success on invalid input.
4757 - echo "$as_me: failed program was:" >&5
4758 -sed 's/^/| /' conftest.$ac_ext >&5
4760 - # Passes both tests.
4764 -rm -f conftest.err conftest.$ac_ext
4767 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4768 -rm -f conftest.err conftest.$ac_ext
4769 -if $ac_preproc_ok; then
4774 - ac_cv_prog_CXXCPP=$CXXCPP
4777 - CXXCPP=$ac_cv_prog_CXXCPP
4779 - ac_cv_prog_CXXCPP=$CXXCPP
4781 -echo "$as_me:$LINENO: result: $CXXCPP" >&5
4782 -echo "${ECHO_T}$CXXCPP" >&6
4783 -ac_preproc_ok=false
4784 -for ac_cxx_preproc_warn_flag in '' yes
4786 - # Use a header file that comes with gcc, so configuring glibc
4787 - # with a fresh cross-compiler works.
4788 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4789 - # <limits.h> exists even on freestanding compilers.
4790 - # On the NeXT, cc -E runs the code through the compiler's parser,
4791 - # not just through cpp. "Syntax error" is here to catch this case.
4792 - cat >conftest.$ac_ext <<_ACEOF
4793 -#line $LINENO "configure"
4796 -cat confdefs.h >>conftest.$ac_ext
4797 -cat >>conftest.$ac_ext <<_ACEOF
4798 -/* end confdefs.h. */
4800 -@%:@ include <limits.h>
4802 -@%:@ include <assert.h>
4806 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4807 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4809 - grep -v '^ *+' conftest.er1 >conftest.err
4810 - rm -f conftest.er1
4811 - cat conftest.err >&5
4812 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4813 - (exit $ac_status); } >/dev/null; then
4814 - if test -s conftest.err; then
4815 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4822 -if test -z "$ac_cpp_err"; then
4825 - echo "$as_me: failed program was:" >&5
4826 -sed 's/^/| /' conftest.$ac_ext >&5
4828 - # Broken: fails on valid input.
4831 -rm -f conftest.err conftest.$ac_ext
4833 - # OK, works on sane cases. Now check whether non-existent headers
4834 - # can be detected and how.
4835 - cat >conftest.$ac_ext <<_ACEOF
4836 -#line $LINENO "configure"
4839 -cat confdefs.h >>conftest.$ac_ext
4840 -cat >>conftest.$ac_ext <<_ACEOF
4841 -/* end confdefs.h. */
4842 -@%:@include <ac_nonexistent.h>
4844 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4845 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4847 - grep -v '^ *+' conftest.er1 >conftest.err
4848 - rm -f conftest.er1
4849 - cat conftest.err >&5
4850 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4851 - (exit $ac_status); } >/dev/null; then
4852 - if test -s conftest.err; then
4853 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4860 -if test -z "$ac_cpp_err"; then
4861 - # Broken: success on invalid input.
4864 - echo "$as_me: failed program was:" >&5
4865 -sed 's/^/| /' conftest.$ac_ext >&5
4867 - # Passes both tests.
4871 -rm -f conftest.err conftest.$ac_ext
4874 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4875 -rm -f conftest.err conftest.$ac_ext
4876 -if $ac_preproc_ok; then
4879 - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
4880 -See \`config.log' for more details." >&5
4881 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
4882 -See \`config.log' for more details." >&2;}
4883 - { (exit 1); exit 1; }; }
4887 -ac_cpp='$CPP $CPPFLAGS'
4888 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4889 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4890 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4894 -LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
4896 -lt_save_CFLAGS="$CFLAGS"
4897 -AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
4898 -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
4899 -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
4900 -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
4901 -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
4902 -deplibs_check_method="$deplibs_check_method" \
4903 -file_magic_cmd="$file_magic_cmd" \
4904 -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
4905 ---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
4906 -|| { { echo "$as_me:$LINENO: error: libtool tag configuration failed" >&5
4907 -echo "$as_me: error: libtool tag configuration failed" >&2;}
4908 - { (exit 1); exit 1; }; }
4910 -CFLAGS="$lt_save_CFLAGS"
4912 -# Redirect the config.log output again, so that the ltconfig log is not
4913 -# clobbered by the next message.
4914 -exec 5>>./config.log
4923 -# Check whether --with-target-subdir or --without-target-subdir was given.
4924 -if test "${with_target_subdir+set}" = set; then
4925 - withval="$with_target_subdir"
4929 -# Check whether --with-cross-host or --without-cross-host was given.
4930 -if test "${with_cross_host+set}" = set; then
4931 - withval="$with_cross_host"
4935 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
4936 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
4937 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
4938 -if test "${enable_maintainer_mode+set}" = set; then
4939 - enableval="$enable_maintainer_mode"
4940 - USE_MAINTAINER_MODE=$enableval
4942 - USE_MAINTAINER_MODE=no
4944 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
4945 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
4948 -if test $USE_MAINTAINER_MODE = yes; then
4949 - MAINTAINER_MODE_TRUE=
4950 - MAINTAINER_MODE_FALSE='#'
4952 - MAINTAINER_MODE_TRUE='#'
4953 - MAINTAINER_MODE_FALSE=
4955 - MAINT=$MAINTAINER_MODE_TRUE
4958 -# automake wants to see AC_EXEEXT. But we don't need it. And having
4959 -# it is actually a problem, because the compiler we're passed can't
4960 -# necessarily do a full link. So we fool automake here.
4962 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
4963 - # to nothing, so nothing would remain between `then' and `fi' if it
4964 - # were not for the `:' below.
4969 -echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
4970 -echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
4971 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
4972 -if test -z "$THREADS"; then
4975 -echo "$as_me:$LINENO: result: $THREADS" >&5
4976 -echo "${ECHO_T}$THREADS" >&6
4978 -# Check whether --enable-parallel-mark or --disable-parallel-mark was given.
4979 -if test "${enable_parallel_mark+set}" = set; then
4980 - enableval="$enable_parallel_mark"
4981 - case "$THREADS" in
4982 - no | none | single)
4983 - { { echo "$as_me:$LINENO: error: Parallel mark requires --enable-threads=x spec" >&5
4984 -echo "$as_me: error: Parallel mark requires --enable-threads=x spec" >&2;}
4985 - { (exit 1); exit 1; }; }
4991 -INCLUDES=-I${srcdir}/include
4994 - no | none | single)
4999 - THREADLIBS=-lpthread
5001 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
5002 - cat >>confdefs.h <<\_ACEOF
5003 -@%:@define GC_LINUX_THREADS 1
5006 - cat >>confdefs.h <<\_ACEOF
5007 -@%:@define _REENTRANT 1
5010 - if test "${enable_parallel_mark}"; then
5011 - cat >>confdefs.h <<\_ACEOF
5012 -@%:@define PARALLEL_MARK 1
5016 - cat >>confdefs.h <<\_ACEOF
5017 -@%:@define THREAD_LOCAL_ALLOC 1
5022 - cat >>confdefs.h <<\_ACEOF
5023 -@%:@define GC_LINUX_THREADS 1
5026 - cat >>confdefs.h <<\_ACEOF
5027 -@%:@define _REENTRANT 1
5032 - { echo "$as_me:$LINENO: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
5033 -echo "$as_me: WARNING: \"Only HP/UX 11 threads are supported.\"" >&2;}
5034 - cat >>confdefs.h <<\_ACEOF
5035 -@%:@define GC_HPUX_THREADS 1
5038 - cat >>confdefs.h <<\_ACEOF
5039 -@%:@define _POSIX_C_SOURCE 199506L
5042 - if test "${enable_parallel_mark}" = yes; then
5043 - cat >>confdefs.h <<\_ACEOF
5044 -@%:@define PARALLEL_MARK 1
5048 - cat >>confdefs.h <<\_ACEOF
5049 -@%:@define THREAD_LOCAL_ALLOC 1
5052 - THREADLIBS="-lpthread -lrt"
5055 - { echo "$as_me:$LINENO: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&5
5056 -echo "$as_me: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&2;}
5057 - cat >>confdefs.h <<\_ACEOF
5058 -@%:@define GC_FREEBSD_THREADS 1
5061 - INCLUDES="$INCLUDES -pthread"
5062 - THREADLIBS=-pthread
5065 - cat >>confdefs.h <<\_ACEOF
5066 -@%:@define GC_SOLARIS_THREADS 1
5069 - cat >>confdefs.h <<\_ACEOF
5070 -@%:@define GC_SOLARIS_PTHREADS 1
5075 - cat >>confdefs.h <<\_ACEOF
5076 -@%:@define GC_IRIX_THREADS 1
5086 - cat >>confdefs.h <<\_ACEOF
5087 -@%:@define GC_DARWIN_THREADS 1
5090 - cat >>confdefs.h <<\_ACEOF
5091 -@%:@define THREAD_LOCAL_ALLOC 1
5094 - if test "${enable_parallel_mark}" = yes; then
5095 - cat >>confdefs.h <<\_ACEOF
5096 -@%:@define PARALLEL_MARK 1
5102 - cat >>confdefs.h <<\_ACEOF
5103 -@%:@define GC_WIN32_THREADS 1
5106 - cat >>confdefs.h <<\_ACEOF
5107 -@%:@define NO_GETENV 1
5111 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
5112 - { { echo "$as_me:$LINENO: error: thread package $THREADS not yet supported" >&5
5113 -echo "$as_me: error: thread package $THREADS not yet supported" >&2;}
5114 - { (exit 1); exit 1; }; }
5117 - { { echo "$as_me:$LINENO: error: $THREADS is an unknown thread package" >&5
5118 -echo "$as_me: error: $THREADS is an unknown thread package" >&2;}
5119 - { (exit 1); exit 1; }; }
5125 - powerpc-*-darwin*)
5126 - powerpc_darwin=true
5131 -if test x$powerpc_darwin = xtrue; then
5132 - POWERPC_DARWIN_TRUE=
5133 - POWERPC_DARWIN_FALSE='#'
5135 - POWERPC_DARWIN_TRUE='#'
5136 - POWERPC_DARWIN_FALSE=
5139 -# We never want libdl on darwin. It is a fake libdl that just ends up making
5140 -# dyld calls anyway
5144 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
5145 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
5146 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
5147 - echo $ECHO_N "(cached) $ECHO_C" >&6
5149 - ac_check_lib_save_LIBS=$LIBS
5151 -cat >conftest.$ac_ext <<_ACEOF
5152 -#line $LINENO "configure"
5155 -cat confdefs.h >>conftest.$ac_ext
5156 -cat >>conftest.$ac_ext <<_ACEOF
5157 -/* end confdefs.h. */
5159 -/* Override any gcc2 internal prototype to avoid an error. */
5163 -/* We use char because int might match the return type of a gcc2
5164 - builtin and then its argument prototype would still apply. */
5174 -rm -f conftest.$ac_objext conftest$ac_exeext
5175 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5176 - (eval $ac_link) 2>&5
5178 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5179 - (exit $ac_status); } &&
5180 - { ac_try='test -s conftest$ac_exeext'
5181 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5182 - (eval $ac_try) 2>&5
5184 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5185 - (exit $ac_status); }; }; then
5186 - ac_cv_lib_dl_dlopen=yes
5188 - echo "$as_me: failed program was:" >&5
5189 -sed 's/^/| /' conftest.$ac_ext >&5
5191 -ac_cv_lib_dl_dlopen=no
5193 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5194 -LIBS=$ac_check_lib_save_LIBS
5196 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
5197 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
5198 -if test $ac_cv_lib_dl_dlopen = yes; then
5199 - EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
5207 -target_all=libgcjgc.la
5213 -# Check whether --with-ecos or --without-ecos was given.
5214 -if test "${with_ecos+set}" = set; then
5215 - withval="$with_ecos"
5216 - TARGET_ECOS="$with_ecos"
5222 -case "$TARGET_ECOS" in
5226 - cat >>confdefs.h <<\_ACEOF
5230 - CXXINCLUDES="-I${TARGET_ECOS}/include"
5231 - addobjs="$addobjs ecos.lo"
5241 - alpha*-*-openbsd*)
5242 - machdep="alpha_mach_dep.lo"
5243 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
5244 - { echo "$as_me:$LINENO: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
5245 -echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&2;}
5246 - # Check whether --enable-shared or --disable-shared was given.
5247 -if test "${enable_shared+set}" = set; then
5248 - enableval="$enable_shared"
5249 - p=${PACKAGE-default}
5251 -yes) enable_shared=yes ;;
5252 -no) enable_shared=no ;;
5255 - # Look at the argument we got. We use all the common list separators.
5256 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
5257 - for pkg in $enableval; do
5258 - if test "X$pkg" = "X$p"; then
5262 - IFS="$ac_save_ifs"
5271 - machdep="alpha_mach_dep.lo"
5273 - i?86-*-solaris2.[89]*)
5274 - cat >>confdefs.h <<\_ACEOF
5275 -@%:@define SOLARIS25_PROC_VDB_BUG_FIXED 1
5280 - machdep="mips_ultrix_mach_dep.lo"
5281 - cat >>confdefs.h <<\_ACEOF
5282 -@%:@define STACKBASE __stackbase
5285 - cat >>confdefs.h <<\_ACEOF
5286 -@%:@define DATASTART_IS_ETEXT 1
5291 - machdep="mips_ultrix_mach-dep.lo"
5296 - machdep="mips_sgi_mach_dep.lo"
5297 - cat >>confdefs.h <<\_ACEOF
5298 -@%:@define NO_EXECUTE_PERMISSION 1
5302 - sparc-sun-solaris2.3*)
5303 - machdep="sparc_mach_dep.lo"
5304 - cat >>confdefs.h <<\_ACEOF
5305 -@%:@define SUNOS53_SHARED_LIB 1
5309 - sparc-sun-solaris2.*)
5310 - machdep="sparc_mach_dep.lo"
5313 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
5316 -if test x"$machdep" = x; then
5317 - machdep="mach_dep.lo"
5319 -addobjs="$addobjs $machdep"
5323 - sparc-sun-solaris2*)
5324 - if test "$GCC" = yes; then
5326 - for i in $CFLAGS; do
5331 - new_CFLAGS="$new_CFLAGS $i"
5335 - CFLAGS="$new_CFLAGS"
5340 -MY_CFLAGS="$CFLAGS"
5343 -cat >>confdefs.h <<\_ACEOF
5344 -@%:@define SILENT 1
5347 -cat >>confdefs.h <<\_ACEOF
5348 -@%:@define NO_SIGNALS 1
5351 -cat >>confdefs.h <<\_ACEOF
5352 -@%:@define NO_EXECUTE_PERMISSION 1
5355 -cat >>confdefs.h <<\_ACEOF
5356 -@%:@define ALL_INTERIOR_POINTERS 1
5360 -cat >>confdefs.h <<\_ACEOF
5361 -@%:@define JAVA_FINALIZATION 1
5364 -cat >>confdefs.h <<\_ACEOF
5365 -@%:@define GC_GCJ_SUPPORT 1
5368 -cat >>confdefs.h <<\_ACEOF
5369 -@%:@define ATOMIC_UNCOLLECTABLE 1
5373 -if test -n "${with_cross_host}"; then
5374 - cat >>confdefs.h <<\_ACEOF
5375 -@%:@define NO_SIGSET 1
5378 - cat >>confdefs.h <<\_ACEOF
5379 -@%:@define NO_DEBUGGING 1
5384 -# Check whether --enable-full-debug or --disable-full-debug was given.
5385 -if test "${enable_full_debug+set}" = set; then
5386 - enableval="$enable_full_debug"
5387 - if test "$enable_full_debug" = "yes"; then
5388 - { echo "$as_me:$LINENO: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&5
5389 -echo "$as_me: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&2;}
5390 - cat >>confdefs.h <<\_ACEOF
5391 -@%:@define KEEP_BACK_PTRS 1
5394 - cat >>confdefs.h <<\_ACEOF
5395 -@%:@define DBG_HDRS_ALL 1
5400 - cat >>confdefs.h <<\_ACEOF
5401 -@%:@define MAKE_BACK_GRAPH 1
5405 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
5406 - cat >>confdefs.h <<\_ACEOF
5407 -@%:@define MAKE_BACK_GRAPH 1
5410 - { echo "$as_me:$LINENO: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
5411 -echo "$as_me: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&2;}
5412 - cat >>confdefs.h <<\_ACEOF
5413 -@%:@define SAVE_CALL_COUNT 8
5423 -if test -z "$with_cross_host"; then
5425 - USE_LIBDIR_FALSE='#'
5427 - USE_LIBDIR_TRUE='#'
5431 -if test "${multilib}" = "yes"; then
5432 - multilib_arg="--enable-multilib"
5437 - ac_config_files="$ac_config_files Makefile include/Makefile"
5438 - ac_config_commands="$ac_config_commands default"
5439 -cat >confcache <<\_ACEOF
5440 -# This file is a shell script that caches the results of configure
5441 -# tests run on this system so they can be shared between configure
5442 -# scripts and configure runs, see configure's option --config-cache.
5443 -# It is not useful on other systems. If it contains results you don't
5444 -# want to keep, you may remove or edit it.
5446 -# config.status only pays attention to the cache file if you give it
5447 -# the --recheck option to rerun configure.
5449 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
5450 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
5451 -# following values.
5455 -# The following way of writing the cache mishandles newlines in values,
5456 -# but we know of no workaround that is simple, portable, and efficient.
5457 -# So, don't put newlines in cache variables' values.
5458 -# Ultrix sh set writes to stderr and can't be redirected directly,
5459 -# and sets the high bit in the cache file unless we assign to the vars.
5462 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
5464 - # `set' does not quote correctly, so add quotes (double-quote
5465 - # substitution turns \\\\ into \\, and sed turns \\ into \).
5468 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
5471 - # `set' quotes correctly as required by POSIX, so do not add quotes.
5473 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
5480 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
5482 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
5483 - : end' >>confcache
5484 -if diff $cache_file confcache >/dev/null 2>&1; then :; else
5485 - if test -w $cache_file; then
5486 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
5487 - cat confcache >$cache_file
5489 - echo "not updating unwritable cache $cache_file"
5494 -test "x$prefix" = xNONE && prefix=$ac_default_prefix
5495 -# Let make expand exec_prefix.
5496 -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
5498 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
5499 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
5500 -# trailing colons and then remove the whole line if VPATH becomes empty
5501 -# (actually we leave an empty line to preserve line numbers).
5502 -if test "x$srcdir" = x.; then
5503 - ac_vpsub='/^[ ]*VPATH[ ]*=/{
5504 -s/:*\$(srcdir):*/:/;
5505 -s/:*\${srcdir}:*/:/;
5507 -s/^\([^=]*=[ ]*\):*/\1/;
5513 -# Transform confdefs.h into DEFS.
5514 -# Protect against shell expansion while executing Makefile rules.
5515 -# Protect against Makefile macro expansion.
5517 -# If the first sed substitution is executed (which looks for macros that
5518 -# take arguments), then we branch to the quote section. Otherwise,
5519 -# look for a macro that doesn't take arguments.
5520 -cat >confdef2opt.sed <<\_ACEOF
5523 -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
5525 -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
5529 -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
5535 -# We use echo to avoid assuming a particular line-breaking character.
5536 -# The extra dot is to prevent the shell from consuming trailing
5537 -# line-breaks from the sub-command output. A line-break within
5538 -# single-quotes doesn't work because, if this script is created in a
5539 -# platform that uses two characters for line-breaks (e.g., DOS), tr
5541 -ac_LF_and_DOT=`echo; echo .`
5542 -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
5543 -rm -f confdef2opt.sed
5548 -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
5549 - # 1. Remove the extension, and $U if already installed.
5550 - ac_i=`echo "$ac_i" |
5551 - sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
5553 - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
5554 - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
5556 -LIB@&t@OBJS=$ac_libobjs
5558 -LTLIBOBJS=$ac_ltlibobjs
5562 -: ${CONFIG_STATUS=./config.status}
5563 -ac_clean_files_save=$ac_clean_files
5564 -ac_clean_files="$ac_clean_files $CONFIG_STATUS"
5565 -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
5566 -echo "$as_me: creating $CONFIG_STATUS" >&6;}
5567 -cat >$CONFIG_STATUS <<_ACEOF
5569 -# Generated by $as_me.
5570 -# Run this file to recreate the current configuration.
5571 -# Compiler output produced by configure, useful for debugging
5572 -# configure, is in config.log if it exists.
5575 -ac_cs_recheck=false
5577 -SHELL=\${CONFIG_SHELL-$SHELL}
5580 -cat >>$CONFIG_STATUS <<\_ACEOF
5581 -## --------------------- ##
5582 -## M4sh Initialization. ##
5583 -## --------------------- ##
5585 -# Be Bourne compatible
5586 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
5589 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
5590 - # is contrary to our usage. Disable this feature.
5591 - alias -g '${1+"$@"}'='"$@"'
5592 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
5596 -# Support unset when possible.
5597 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
5604 -# Work around bugs in pre-3.0 UWIN ksh.
5605 -$as_unset ENV MAIL MAILPATH
5612 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
5613 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
5614 - LC_TELEPHONE LC_TIME
5616 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
5617 - eval $as_var=C; export $as_var
5623 -# Required to use basename.
5624 -if expr a : '\(a\)' >/dev/null 2>&1; then
5630 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
5631 - as_basename=basename
5637 -# Name of the executable.
5638 -as_me=`$as_basename "$0" ||
5639 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
5640 - X"$0" : 'X\(//\)$' \| \
5641 - X"$0" : 'X\(/\)$' \| \
5642 - . : '\(.\)' 2>/dev/null ||
5644 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
5645 - /^X\/\(\/\/\)$/{ s//\1/; q; }
5646 - /^X\/\(\/\).*/{ s//\1/; q; }
5650 -# PATH needs CR, and LINENO needs CR and PATH.
5651 -# Avoid depending upon Character Ranges.
5652 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
5653 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
5654 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
5655 -as_cr_digits='0123456789'
5656 -as_cr_alnum=$as_cr_Letters$as_cr_digits
5658 -# The user is always right.
5659 -if test "${PATH_SEPARATOR+set}" != set; then
5660 - echo "#! /bin/sh" >conf$$.sh
5661 - echo "exit 0" >>conf$$.sh
5662 - chmod +x conf$$.sh
5663 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
5664 - PATH_SEPARATOR=';'
5672 - as_lineno_1=$LINENO
5673 - as_lineno_2=$LINENO
5674 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
5675 - test "x$as_lineno_1" != "x$as_lineno_2" &&
5676 - test "x$as_lineno_3" = "x$as_lineno_2" || {
5677 - # Find who we are. Look in the path if we contain no path at all
5678 - # relative or not.
5680 - *[\\/]* ) as_myself=$0 ;;
5681 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5682 -for as_dir in $PATH
5685 - test -z "$as_dir" && as_dir=.
5686 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
5691 - # We did not find ourselves, most probably we were run as `sh COMMAND'
5692 - # in which case we are not to be found in the path.
5693 - if test "x$as_myself" = x; then
5696 - if test ! -f "$as_myself"; then
5697 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
5698 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
5699 - { (exit 1); exit 1; }; }
5701 - case $CONFIG_SHELL in
5703 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5704 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
5707 - test -z "$as_dir" && as_dir=.
5708 - for as_base in sh bash ksh sh5; do
5711 - if ("$as_dir/$as_base" -c '
5712 - as_lineno_1=$LINENO
5713 - as_lineno_2=$LINENO
5714 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
5715 - test "x$as_lineno_1" != "x$as_lineno_2" &&
5716 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
5717 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
5718 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
5719 - CONFIG_SHELL=$as_dir/$as_base
5720 - export CONFIG_SHELL
5721 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
5729 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
5730 - # uniformly replaced by the line number. The first 'sed' inserts a
5731 - # line-number line before each line; the second 'sed' does the real
5732 - # work. The second script uses 'N' to pair each line-number line
5733 - # with the numbered line, and appends trailing '-' during
5734 - # substitution so that $LINENO is not a special case at line end.
5735 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
5736 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
5737 - sed '=' <$as_myself |
5742 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
5745 - s,^['$as_cr_digits']*\n,,
5746 - ' >$as_me.lineno &&
5747 - chmod +x $as_me.lineno ||
5748 - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
5749 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
5750 - { (exit 1); exit 1; }; }
5752 - # Don't try to exec as it changes $[0], causing all sort of problems
5753 - # (the dirname of $[0] is not the place where we might find the
5754 - # original and so on. Autoconf is especially sensible to this).
5756 - # Exit status is that of the last command.
5761 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
5762 - *c*,-n*) ECHO_N= ECHO_C='
5764 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
5765 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
5768 -if expr a : '\(a\)' >/dev/null 2>&1; then
5774 -rm -f conf$$ conf$$.exe conf$$.file
5776 -if ln -s conf$$.file conf$$ 2>/dev/null; then
5777 - # We could just check for DJGPP; but this test a) works b) is more generic
5778 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
5779 - if test -f conf$$.exe; then
5780 - # Don't use ln at all; we don't have any links
5785 -elif ln conf$$.file conf$$ 2>/dev/null; then
5790 -rm -f conf$$ conf$$.exe conf$$.file
5792 -if mkdir -p . 2>/dev/null; then
5798 -as_executable_p="test -f"
5800 -# Sed expression to map a string onto a valid CPP name.
5801 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
5803 -# Sed expression to map a string onto a valid variable name.
5804 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
5808 -# We need space, tab and new line, in precisely that order.
5818 -# Open the log real soon, to keep \$[0] and so on meaningful, and to
5819 -# report actual input values of CONFIG_FILES etc. instead of their
5820 -# values after options handling. Logging --version etc. is OK.
5824 - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
5825 -@%:@@%:@ Running $as_me. @%:@@%:@
5830 -This file was extended by $as_me, which was
5831 -generated by GNU Autoconf 2.57. Invocation command line was
5833 - CONFIG_FILES = $CONFIG_FILES
5834 - CONFIG_HEADERS = $CONFIG_HEADERS
5835 - CONFIG_LINKS = $CONFIG_LINKS
5836 - CONFIG_COMMANDS = $CONFIG_COMMANDS
5840 -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
5844 -# Files that config.status was made for.
5845 -if test -n "$ac_config_files"; then
5846 - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
5849 -if test -n "$ac_config_headers"; then
5850 - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
5853 -if test -n "$ac_config_links"; then
5854 - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
5857 -if test -n "$ac_config_commands"; then
5858 - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
5861 -cat >>$CONFIG_STATUS <<\_ACEOF
5864 -\`$as_me' instantiates files from templates according to the
5865 -current configuration.
5867 -Usage: $0 [OPTIONS] [FILE]...
5869 - -h, --help print this help, then exit
5870 - -V, --version print version number, then exit
5871 - -q, --quiet do not print progress messages
5872 - -d, --debug don't remove temporary files
5873 - --recheck update $as_me by reconfiguring in the same conditions
5874 - --file=FILE[:TEMPLATE]
5875 - instantiate the configuration file FILE
5877 -Configuration files:
5880 -Configuration commands:
5883 -Report bugs to <bug-autoconf@gnu.org>."
5886 -cat >>$CONFIG_STATUS <<_ACEOF
5889 -configured by $0, generated by GNU Autoconf 2.57,
5890 - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
5892 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
5893 -Free Software Foundation, Inc.
5894 -This config.status script is free software; the Free Software Foundation
5895 -gives unlimited permission to copy, distribute and modify it."
5900 -cat >>$CONFIG_STATUS <<\_ACEOF
5901 -# If no file are specified by the user, then we need to provide default
5902 -# value. By we need to know if files were specified by the user.
5908 - ac_option=`expr "x$1" : 'x\([^=]*\)='`
5909 - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
5917 - *) # This is not an option, so the user has probably given explicit
5920 - ac_need_defaults=false;;
5923 - case $ac_option in
5924 - # Handling of the options.
5926 -cat >>$CONFIG_STATUS <<\_ACEOF
5927 - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
5928 - ac_cs_recheck=: ;;
5929 - --version | --vers* | -V )
5930 - echo "$ac_cs_version"; exit 0 ;;
5932 - # Conflict between --help and --header
5933 - { { echo "$as_me:$LINENO: error: ambiguous option: $1
5934 -Try \`$0 --help' for more information." >&5
5935 -echo "$as_me: error: ambiguous option: $1
5936 -Try \`$0 --help' for more information." >&2;}
5937 - { (exit 1); exit 1; }; };;
5938 - --help | --hel | -h )
5939 - echo "$ac_cs_usage"; exit 0 ;;
5940 - --debug | --d* | -d )
5942 - --file | --fil | --fi | --f )
5944 - CONFIG_FILES="$CONFIG_FILES $ac_optarg"
5945 - ac_need_defaults=false;;
5946 - --header | --heade | --head | --hea )
5948 - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
5949 - ac_need_defaults=false;;
5950 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
5951 - | -silent | --silent | --silen | --sile | --sil | --si | --s)
5954 - # This is an error.
5955 - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
5956 -Try \`$0 --help' for more information." >&5
5957 -echo "$as_me: error: unrecognized option: $1
5958 -Try \`$0 --help' for more information." >&2;}
5959 - { (exit 1); exit 1; }; } ;;
5961 - *) ac_config_targets="$ac_config_targets $1" ;;
5967 -ac_configure_extra_args=
5969 -if $ac_cs_silent; then
5971 - ac_configure_extra_args="$ac_configure_extra_args --silent"
5975 -cat >>$CONFIG_STATUS <<_ACEOF
5976 -if \$ac_cs_recheck; then
5977 - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
5978 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
5983 -cat >>$CONFIG_STATUS <<_ACEOF
5985 -# INIT-COMMANDS section.
5991 -with_multisubdir=${with_multisubdir}
5992 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
5993 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
5994 -gc_basedir=${gc_basedir}
6003 -cat >>$CONFIG_STATUS <<\_ACEOF
6004 -for ac_config_target in $ac_config_targets
6006 - case "$ac_config_target" in
6007 - # Handling of arguments.
6008 - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
6009 - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
6010 - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
6011 - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
6012 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
6013 - { (exit 1); exit 1; }; };;
6017 -# If the user did not use the arguments to specify the items to instantiate,
6018 -# then the envvar interface is used. Set only those that are not.
6019 -# We use the long form for the default assignment because of an extremely
6020 -# bizarre bug on SunOS 4.1.3.
6021 -if $ac_need_defaults; then
6022 - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
6023 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
6026 -# Have a temporary directory for convenience. Make it in the build tree
6027 -# simply because there is no reason to put it here, and in addition,
6028 -# creating and moving files from /tmp can sometimes cause problems.
6029 -# Create a temporary directory, and hook for its removal unless debugging.
6032 - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
6033 - trap '{ (exit 1); exit 1; }' 1 2 13 15
6036 -# Create a (secure) tmp directory for tmp files.
6039 - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
6040 - test -n "$tmp" && test -d "$tmp"
6043 - tmp=./confstat$$-$RANDOM
6044 - (umask 077 && mkdir $tmp)
6047 - echo "$me: cannot create a temporary directory in ." >&2
6048 - { (exit 1); exit 1; }
6053 -cat >>$CONFIG_STATUS <<_ACEOF
6056 -# CONFIG_FILES section.
6059 -# No need to generate the scripts if there are no CONFIG_FILES.
6060 -# This happens for instance when ./config.status config.h
6061 -if test -n "\$CONFIG_FILES"; then
6062 - # Protect against being on the right side of a sed subst in config.status.
6063 - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
6064 - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
6065 -s,@SHELL@,$SHELL,;t t
6066 -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
6067 -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
6068 -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
6069 -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
6070 -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
6071 -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
6072 -s,@exec_prefix@,$exec_prefix,;t t
6073 -s,@prefix@,$prefix,;t t
6074 -s,@program_transform_name@,$program_transform_name,;t t
6075 -s,@bindir@,$bindir,;t t
6076 -s,@sbindir@,$sbindir,;t t
6077 -s,@libexecdir@,$libexecdir,;t t
6078 -s,@datadir@,$datadir,;t t
6079 -s,@sysconfdir@,$sysconfdir,;t t
6080 -s,@sharedstatedir@,$sharedstatedir,;t t
6081 -s,@localstatedir@,$localstatedir,;t t
6082 -s,@libdir@,$libdir,;t t
6083 -s,@includedir@,$includedir,;t t
6084 -s,@oldincludedir@,$oldincludedir,;t t
6085 -s,@infodir@,$infodir,;t t
6086 -s,@mandir@,$mandir,;t t
6087 -s,@build_alias@,$build_alias,;t t
6088 -s,@host_alias@,$host_alias,;t t
6089 -s,@target_alias@,$target_alias,;t t
6090 -s,@DEFS@,$DEFS,;t t
6091 -s,@ECHO_C@,$ECHO_C,;t t
6092 -s,@ECHO_N@,$ECHO_N,;t t
6093 -s,@ECHO_T@,$ECHO_T,;t t
6094 -s,@LIBS@,$LIBS,;t t
6095 -s,@gc_basedir@,$gc_basedir,;t t
6096 -s,@build@,$build,;t t
6097 -s,@build_cpu@,$build_cpu,;t t
6098 -s,@build_vendor@,$build_vendor,;t t
6099 -s,@build_os@,$build_os,;t t
6100 -s,@host@,$host,;t t
6101 -s,@host_cpu@,$host_cpu,;t t
6102 -s,@host_vendor@,$host_vendor,;t t
6103 -s,@host_os@,$host_os,;t t
6104 -s,@target@,$target,;t t
6105 -s,@target_cpu@,$target_cpu,;t t
6106 -s,@target_vendor@,$target_vendor,;t t
6107 -s,@target_os@,$target_os,;t t
6108 -s,@mkinstalldirs@,$mkinstalldirs,;t t
6109 -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
6110 -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
6111 -s,@INSTALL_DATA@,$INSTALL_DATA,;t t
6112 -s,@PACKAGE@,$PACKAGE,;t t
6113 -s,@VERSION@,$VERSION,;t t
6114 -s,@ACLOCAL@,$ACLOCAL,;t t
6115 -s,@AUTOCONF@,$AUTOCONF,;t t
6116 -s,@AUTOMAKE@,$AUTOMAKE,;t t
6117 -s,@AUTOHEADER@,$AUTOHEADER,;t t
6118 -s,@MAKEINFO@,$MAKEINFO,;t t
6119 -s,@SET_MAKE@,$SET_MAKE,;t t
6123 -s,@ac_ct_AS@,$ac_ct_AS,;t t
6125 -s,@ac_ct_AR@,$ac_ct_AR,;t t
6126 -s,@RANLIB@,$RANLIB,;t t
6127 -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
6128 -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
6129 -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
6130 -s,@MAINT@,$MAINT,;t t
6131 -s,@GC_CFLAGS@,$GC_CFLAGS,;t t
6132 -s,@LN_S@,$LN_S,;t t
6133 -s,@STRIP@,$STRIP,;t t
6134 -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
6135 -s,@LIBTOOL@,$LIBTOOL,;t t
6136 -s,@CXXCPP@,$CXXCPP,;t t
6137 -s,@CPPFLAGS@,$CPPFLAGS,;t t
6138 -s,@THREADLIBS@,$THREADLIBS,;t t
6139 -s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t
6140 -s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t
6141 -s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t
6142 -s,@target_all@,$target_all,;t t
6143 -s,@INCLUDES@,$INCLUDES,;t t
6144 -s,@CXXINCLUDES@,$CXXINCLUDES,;t t
6145 -s,@addobjs@,$addobjs,;t t
6146 -s,@MY_CFLAGS@,$MY_CFLAGS,;t t
6147 -s,@USE_LIBDIR_TRUE@,$USE_LIBDIR_TRUE,;t t
6148 -s,@USE_LIBDIR_FALSE@,$USE_LIBDIR_FALSE,;t t
6149 -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
6150 -s,@LTLIBOBJS@,$LTLIBOBJS,;t t
6155 - cat >>$CONFIG_STATUS <<\_ACEOF
6156 - # Split the substitutions into bite-sized pieces for seds with
6157 - # small command number limits, like on Digital OSF/1 and HP-UX.
6158 - ac_max_sed_lines=48
6159 - ac_sed_frag=1 # Number of current file.
6160 - ac_beg=1 # First line for current file.
6161 - ac_end=$ac_max_sed_lines # Line after last line for current file.
6164 - while $ac_more_lines; do
6165 - if test $ac_beg -gt 1; then
6166 - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
6168 - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
6170 - if test ! -s $tmp/subs.frag; then
6171 - ac_more_lines=false
6173 - # The purpose of the label and of the branching condition is to
6174 - # speed up the sed processing (if there are no `@' at all, there
6175 - # is no need to browse any of the substitutions).
6176 - # These are the two extra sed commands mentioned above.
6178 - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
6179 - if test -z "$ac_sed_cmds"; then
6180 - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
6182 - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
6184 - ac_sed_frag=`expr $ac_sed_frag + 1`
6186 - ac_end=`expr $ac_end + $ac_max_sed_lines`
6189 - if test -z "$ac_sed_cmds"; then
6192 -fi # test -n "$CONFIG_FILES"
6195 -cat >>$CONFIG_STATUS <<\_ACEOF
6196 -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
6197 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
6199 - - | *:- | *:-:* ) # input from stdin
6201 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
6202 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
6203 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
6204 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
6205 - * ) ac_file_in=$ac_file.in ;;
6208 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
6209 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
6210 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6211 - X"$ac_file" : 'X\(//\)[^/]' \| \
6212 - X"$ac_file" : 'X\(//\)$' \| \
6213 - X"$ac_file" : 'X\(/\)' \| \
6214 - . : '\(.\)' 2>/dev/null ||
6216 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6217 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6218 - /^X\(\/\/\)$/{ s//\1/; q; }
6219 - /^X\(\/\).*/{ s//\1/; q; }
6221 - { if $as_mkdir_p; then
6222 - mkdir -p "$ac_dir"
6226 - while test ! -d "$as_dir"; do
6227 - as_dirs="$as_dir $as_dirs"
6228 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
6229 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6230 - X"$as_dir" : 'X\(//\)[^/]' \| \
6231 - X"$as_dir" : 'X\(//\)$' \| \
6232 - X"$as_dir" : 'X\(/\)' \| \
6233 - . : '\(.\)' 2>/dev/null ||
6235 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6236 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6237 - /^X\(\/\/\)$/{ s//\1/; q; }
6238 - /^X\(\/\).*/{ s//\1/; q; }
6241 - test ! -n "$as_dirs" || mkdir $as_dirs
6242 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
6243 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
6244 - { (exit 1); exit 1; }; }; }
6248 -if test "$ac_dir" != .; then
6249 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
6250 - # A "../" for each directory in $ac_dir_suffix.
6251 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
6253 - ac_dir_suffix= ac_top_builddir=
6257 - .) # No --srcdir option. We are building in place.
6259 - if test -z "$ac_top_builddir"; then
6262 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
6264 - [\\/]* | ?:[\\/]* ) # Absolute path.
6265 - ac_srcdir=$srcdir$ac_dir_suffix;
6266 - ac_top_srcdir=$srcdir ;;
6267 - *) # Relative path.
6268 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
6269 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
6271 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
6273 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
6274 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
6275 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
6276 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
6280 - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
6281 - *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
6284 - if test x"$ac_file" != x-; then
6285 - { echo "$as_me:$LINENO: creating $ac_file" >&5
6286 -echo "$as_me: creating $ac_file" >&6;}
6289 - # Let's still pretend it is `configure' which instantiates (i.e., don't
6290 - # use $as_me), people would be surprised to read:
6291 - # /* config.h. Generated by config.status. */
6292 - if test x"$ac_file" = x-; then
6295 - configure_input="$ac_file. "
6297 - configure_input=$configure_input"Generated from `echo $ac_file_in |
6298 - sed 's,.*/,,'` by configure."
6300 - # First look for the input files in the build tree, otherwise in the
6302 - ac_file_inputs=`IFS=:
6303 - for f in $ac_file_in; do
6305 - -) echo $tmp/stdin ;;
6307 - # Absolute (can't be DOS-style, as IFS=:)
6308 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
6309 -echo "$as_me: error: cannot find input file: $f" >&2;}
6310 - { (exit 1); exit 1; }; }
6313 - if test -f "$f"; then
6316 - elif test -f "$srcdir/$f"; then
6321 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
6322 -echo "$as_me: error: cannot find input file: $f" >&2;}
6323 - { (exit 1); exit 1; }; }
6326 - done` || { (exit 1); exit 1; }
6328 -cat >>$CONFIG_STATUS <<_ACEOF
6332 -cat >>$CONFIG_STATUS <<\_ACEOF
6334 -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
6335 -s,@configure_input@,$configure_input,;t t
6336 -s,@srcdir@,$ac_srcdir,;t t
6337 -s,@abs_srcdir@,$ac_abs_srcdir,;t t
6338 -s,@top_srcdir@,$ac_top_srcdir,;t t
6339 -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
6340 -s,@builddir@,$ac_builddir,;t t
6341 -s,@abs_builddir@,$ac_abs_builddir,;t t
6342 -s,@top_builddir@,$ac_top_builddir,;t t
6343 -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
6344 -s,@INSTALL@,$ac_INSTALL,;t t
6345 -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
6347 - if test x"$ac_file" != x-; then
6348 - mv $tmp/out $ac_file
6356 -cat >>$CONFIG_STATUS <<\_ACEOF
6359 -# CONFIG_COMMANDS section.
6361 -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
6362 - ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
6363 - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
6364 - ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
6365 -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6366 - X"$ac_dest" : 'X\(//\)[^/]' \| \
6367 - X"$ac_dest" : 'X\(//\)$' \| \
6368 - X"$ac_dest" : 'X\(/\)' \| \
6369 - . : '\(.\)' 2>/dev/null ||
6371 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6372 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6373 - /^X\(\/\/\)$/{ s//\1/; q; }
6374 - /^X\(\/\).*/{ s//\1/; q; }
6378 -if test "$ac_dir" != .; then
6379 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
6380 - # A "../" for each directory in $ac_dir_suffix.
6381 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
6383 - ac_dir_suffix= ac_top_builddir=
6387 - .) # No --srcdir option. We are building in place.
6389 - if test -z "$ac_top_builddir"; then
6392 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
6394 - [\\/]* | ?:[\\/]* ) # Absolute path.
6395 - ac_srcdir=$srcdir$ac_dir_suffix;
6396 - ac_top_srcdir=$srcdir ;;
6397 - *) # Relative path.
6398 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
6399 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
6401 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
6403 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
6404 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
6405 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
6406 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
6409 - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
6410 -echo "$as_me: executing $ac_dest commands" >&6;}
6413 -echo "$DEFS" > boehm-cflags
6415 -if test -n "$CONFIG_FILES"; then
6416 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
6417 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
6423 -cat >>$CONFIG_STATUS <<\_ACEOF
6425 -{ (exit 0); exit 0; }
6427 -chmod +x $CONFIG_STATUS
6428 -ac_clean_files=$ac_clean_files_save
6431 -# configure is writing to config.log, and then calls config.status.
6432 -# config.status does its own redirection, appending to config.log.
6433 -# Unfortunately, on DOS this fails, as config.log is still kept open
6434 -# by configure, so config.status won't be able to write to it; its
6435 -# output is simply discarded. So we exec the FD to /dev/null,
6436 -# effectively closing config.log, so it can be properly (re)opened and
6437 -# appended to by config.status. When coming back to configure, we
6438 -# need to make the FD available again.
6439 -if test "$no_create" != yes; then
6441 - ac_config_status_args=
6442 - test "$silent" = yes &&
6443 - ac_config_status_args="$ac_config_status_args --quiet"
6445 - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
6446 - exec 5>>config.log
6447 - # Use ||, not &&, to avoid exiting from the if with $? = 1, which
6448 - # would make configure fail if this is the last instruction.
6449 - $ac_cs_success || { (exit 1); exit 1; }
6452 diff -Nur ../boehm-gc/autom4te.cache/output.1 boehm-gc/autom4te.cache/output.1
6453 --- ../boehm-gc/autom4te.cache/output.1 Sat May 31 15:09:31 2003
6454 +++ boehm-gc/autom4te.cache/output.1 Wed Dec 31 16:00:00 1969
6457 -@%:@ Guess values for system-dependent variables and create Makefiles.
6458 -@%:@ Generated by GNU Autoconf 2.54.
6460 -@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
6461 -@%:@ Free Software Foundation, Inc.
6462 -@%:@ This configure script is free software; the Free Software Foundation
6463 -@%:@ gives unlimited permission to copy, distribute and modify it.
6464 -## --------------------- ##
6465 -## M4sh Initialization. ##
6466 -## --------------------- ##
6468 -# Be Bourne compatible
6469 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
6472 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
6473 - # is contrary to our usage. Disable this feature.
6474 - alias -g '${1+"$@"}'='"$@"'
6475 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
6479 -# Support unset when possible.
6480 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
6487 -# Work around bugs in pre-3.0 UWIN ksh.
6488 -$as_unset ENV MAIL MAILPATH
6494 -for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME
6496 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
6497 - eval $as_var=C; export $as_var
6503 -# Required to use basename.
6504 -if expr a : '\(a\)' >/dev/null 2>&1; then
6510 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
6511 - as_basename=basename
6517 -# Name of the executable.
6518 -as_me=`$as_basename "$0" ||
6519 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
6520 - X"$0" : 'X\(//\)$' \| \
6521 - X"$0" : 'X\(/\)$' \| \
6522 - . : '\(.\)' 2>/dev/null ||
6524 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
6525 - /^X\/\(\/\/\)$/{ s//\1/; q; }
6526 - /^X\/\(\/\).*/{ s//\1/; q; }
6530 -# PATH needs CR, and LINENO needs CR and PATH.
6531 -# Avoid depending upon Character Ranges.
6532 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
6533 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
6534 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
6535 -as_cr_digits='0123456789'
6536 -as_cr_alnum=$as_cr_Letters$as_cr_digits
6538 -# The user is always right.
6539 -if test "${PATH_SEPARATOR+set}" != set; then
6540 - echo "#! /bin/sh" >conftest.sh
6541 - echo "exit 0" >>conftest.sh
6542 - chmod +x conftest.sh
6543 - if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then
6544 - PATH_SEPARATOR=';'
6552 - as_lineno_1=$LINENO
6553 - as_lineno_2=$LINENO
6554 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6555 - test "x$as_lineno_1" != "x$as_lineno_2" &&
6556 - test "x$as_lineno_3" = "x$as_lineno_2" || {
6557 - # Find who we are. Look in the path if we contain no path at all
6558 - # relative or not.
6560 - *[\\/]* ) as_myself=$0 ;;
6561 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6562 -for as_dir in $PATH
6565 - test -z "$as_dir" && as_dir=.
6566 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
6571 - # We did not find ourselves, most probably we were run as `sh COMMAND'
6572 - # in which case we are not to be found in the path.
6573 - if test "x$as_myself" = x; then
6576 - if test ! -f "$as_myself"; then
6577 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
6578 - { (exit 1); exit 1; }; }
6580 - case $CONFIG_SHELL in
6582 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6583 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
6586 - test -z "$as_dir" && as_dir=.
6587 - for as_base in sh bash ksh sh5; do
6590 - if ("$as_dir/$as_base" -c '
6591 - as_lineno_1=$LINENO
6592 - as_lineno_2=$LINENO
6593 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6594 - test "x$as_lineno_1" != "x$as_lineno_2" &&
6595 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
6596 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
6597 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
6598 - CONFIG_SHELL=$as_dir/$as_base
6599 - export CONFIG_SHELL
6600 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
6608 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
6609 - # uniformly replaced by the line number. The first 'sed' inserts a
6610 - # line-number line before each line; the second 'sed' does the real
6611 - # work. The second script uses 'N' to pair each line-number line
6612 - # with the numbered line, and appends trailing '-' during
6613 - # substitution so that $LINENO is not a special case at line end.
6614 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
6615 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
6616 - sed '=' <$as_myself |
6621 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
6624 - s,^['$as_cr_digits']*\n,,
6625 - ' >$as_me.lineno &&
6626 - chmod +x $as_me.lineno ||
6627 - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
6628 - { (exit 1); exit 1; }; }
6630 - # Don't try to exec as it changes $[0], causing all sort of problems
6631 - # (the dirname of $[0] is not the place where we might find the
6632 - # original and so on. Autoconf is especially sensible to this).
6634 - # Exit status is that of the last command.
6639 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
6640 - *c*,-n*) ECHO_N= ECHO_C='
6642 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
6643 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
6646 -if expr a : '\(a\)' >/dev/null 2>&1; then
6652 -rm -f conf$$ conf$$.exe conf$$.file
6654 -if ln -s conf$$.file conf$$ 2>/dev/null; then
6655 - # We could just check for DJGPP; but this test a) works b) is more generic
6656 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
6657 - if test -f conf$$.exe; then
6658 - # Don't use ln at all; we don't have any links
6663 -elif ln conf$$.file conf$$ 2>/dev/null; then
6668 -rm -f conf$$ conf$$.exe conf$$.file
6670 -if mkdir -p . 2>/dev/null; then
6676 -as_executable_p="test -f"
6678 -# Sed expression to map a string onto a valid CPP name.
6679 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
6681 -# Sed expression to map a string onto a valid variable name.
6682 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
6686 -# We need space, tab and new line, in precisely that order.
6695 -# Find the correct PATH separator. Usually this is `:', but
6696 -# DJGPP uses `;' like DOS.
6697 -if test "X${PATH_SEPARATOR+set}" != Xset; then
6698 - UNAME=${UNAME-`uname 2>/dev/null`}
6700 - *-DOS) lt_cv_sys_path_separator=';' ;;
6701 - *) lt_cv_sys_path_separator=':' ;;
6703 - PATH_SEPARATOR=$lt_cv_sys_path_separator
6707 -# Check that we are running under the correct shell.
6708 -SHELL=${CONFIG_SHELL-/bin/sh}
6712 - # Remove one level of quotation (which was required for Make).
6713 - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
6718 -if test "X$1" = X--no-reexec; then
6719 - # Discard the --no-reexec flag, and continue.
6721 -elif test "X$1" = X--fallback-echo; then
6722 - # Avoid inline document here, it may be left over
6724 -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
6725 - # Yippee, $echo works!
6728 - # Restart under the correct shell.
6729 - exec $SHELL "$0" --no-reexec ${1+"$@"}
6732 -if test "X$1" = X--fallback-echo; then
6733 - # used as fallback echo
6741 -# The HP-UX ksh and POSIX shell print the target directory to stdout
6742 -# if CDPATH is set.
6743 -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
6745 -if test -z "$ECHO"; then
6746 -if test "X${echo_test_string+set}" != Xset; then
6747 -# find a string as large as possible, as long as the shell can cope with it
6748 - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
6749 - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
6750 - if (echo_test_string="`eval $cmd`") 2>/dev/null &&
6751 - echo_test_string="`eval $cmd`" &&
6752 - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
6759 -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
6760 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
6761 - test "X$echo_testing_string" = "X$echo_test_string"; then
6764 - # The Solaris, AIX, and Digital Unix default echo programs unquote
6765 - # backslashes. This makes it impossible to quote backslashes using
6766 - # echo "$something" | sed 's/\\/\\\\/g'
6768 - # So, first we look for a working echo in the user's PATH.
6770 - IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
6771 - for dir in $PATH /usr/ucb; do
6772 - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
6773 - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
6774 - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
6775 - test "X$echo_testing_string" = "X$echo_test_string"; then
6782 - if test "X$echo" = Xecho; then
6783 - # We didn't find a better echo, so look for alternatives.
6784 - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
6785 - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
6786 - test "X$echo_testing_string" = "X$echo_test_string"; then
6787 - # This shell has a builtin print -r that does the trick.
6789 - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
6790 - test "X$CONFIG_SHELL" != X/bin/ksh; then
6791 - # If we have ksh, try running configure again with it.
6792 - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
6793 - export ORIGINAL_CONFIG_SHELL
6794 - CONFIG_SHELL=/bin/ksh
6795 - export CONFIG_SHELL
6796 - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
6798 - # Try using printf.
6799 - echo='printf %s\n'
6800 - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
6801 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
6802 - test "X$echo_testing_string" = "X$echo_test_string"; then
6803 - # Cool, printf works
6805 - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
6806 - test "X$echo_testing_string" = 'X\t' &&
6807 - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
6808 - test "X$echo_testing_string" = "X$echo_test_string"; then
6809 - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
6810 - export CONFIG_SHELL
6811 - SHELL="$CONFIG_SHELL"
6813 - echo="$CONFIG_SHELL $0 --fallback-echo"
6814 - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
6815 - test "X$echo_testing_string" = 'X\t' &&
6816 - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
6817 - test "X$echo_testing_string" = "X$echo_test_string"; then
6818 - echo="$CONFIG_SHELL $0 --fallback-echo"
6820 - # maybe with a smaller string...
6823 - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
6824 - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
6831 - if test "$prev" != 'sed 50q "$0"'; then
6832 - echo_test_string=`eval $prev`
6833 - export echo_test_string
6834 - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
6836 - # Oops. We lost completely, so just stick with echo.
6845 -# Copy echo and quote the copy suitably for passing to libtool from
6846 -# the Makefile, instead of quoting the original, which is used later.
6848 -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
6849 - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
6854 -# Name of the host.
6855 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
6856 -# so uname gets run too.
6857 -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
6864 -ac_default_prefix=/usr/local
6865 -ac_config_libobj_dir=.
6870 -SHELL=${CONFIG_SHELL-/bin/sh}
6872 -# Maximum number of lines to put in a shell here document.
6873 -# This variable seems obsolete. It should probably be removed, and
6874 -# only ac_max_sed_lines should be used.
6875 -: ${ac_max_here_lines=38}
6877 -# Identity of this package.
6884 -ac_unique_file="gcj_mlc.c"
6885 -# Factoring default headers for most tests.
6886 -ac_includes_default="\
6888 -#if HAVE_SYS_TYPES_H
6889 -# include <sys/types.h>
6891 -#if HAVE_SYS_STAT_H
6892 -# include <sys/stat.h>
6895 -# include <stdlib.h>
6896 -# include <stddef.h>
6899 -# include <stdlib.h>
6903 -# if !STDC_HEADERS && HAVE_MEMORY_H
6904 -# include <memory.h>
6906 -# include <string.h>
6909 -# include <strings.h>
6911 -#if HAVE_INTTYPES_H
6912 -# include <inttypes.h>
6915 -# include <stdint.h>
6919 -# include <unistd.h>
6922 -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'
6925 -# Initialize some variables set by options.
6927 -ac_init_version=false
6928 -# The variables have the same names as the options, with
6929 -# dashes changed to underlines.
6930 -cache_file=/dev/null
6935 -program_prefix=NONE
6936 -program_suffix=NONE
6937 -program_transform_name=s,x,x,
6945 -# Installation directory options.
6946 -# These are left unexpanded so users can "make install exec_prefix=/foo"
6947 -# and all the variables that are supposed to be based on exec_prefix
6948 -# by default will actually change.
6949 -# Use braces instead of parens because sh, perl, etc. also accept them.
6950 -bindir='${exec_prefix}/bin'
6951 -sbindir='${exec_prefix}/sbin'
6952 -libexecdir='${exec_prefix}/libexec'
6953 -datadir='${prefix}/share'
6954 -sysconfdir='${prefix}/etc'
6955 -sharedstatedir='${prefix}/com'
6956 -localstatedir='${prefix}/var'
6957 -libdir='${exec_prefix}/lib'
6958 -includedir='${prefix}/include'
6959 -oldincludedir='/usr/include'
6960 -infodir='${prefix}/info'
6961 -mandir='${prefix}/man'
6966 - # If the previous option needs an argument, assign it.
6967 - if test -n "$ac_prev"; then
6968 - eval "$ac_prev=\$ac_option"
6973 - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
6975 - # Accept the important Cygnus configure options, so we can diagnose typos.
6977 - case $ac_option in
6979 - -bindir | --bindir | --bindi | --bind | --bin | --bi)
6981 - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
6982 - bindir=$ac_optarg ;;
6984 - -build | --build | --buil | --bui | --bu)
6985 - ac_prev=build_alias ;;
6986 - -build=* | --build=* | --buil=* | --bui=* | --bu=*)
6987 - build_alias=$ac_optarg ;;
6989 - -cache-file | --cache-file | --cache-fil | --cache-fi \
6990 - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
6991 - ac_prev=cache_file ;;
6992 - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
6993 - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
6994 - cache_file=$ac_optarg ;;
6996 - --config-cache | -C)
6997 - cache_file=config.cache ;;
6999 - -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
7000 - ac_prev=datadir ;;
7001 - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
7003 - datadir=$ac_optarg ;;
7005 - -disable-* | --disable-*)
7006 - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
7007 - # Reject names that are not valid shell variable names.
7008 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7009 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
7010 - { (exit 1); exit 1; }; }
7011 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
7012 - eval "enable_$ac_feature=no" ;;
7014 - -enable-* | --enable-*)
7015 - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
7016 - # Reject names that are not valid shell variable names.
7017 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7018 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
7019 - { (exit 1); exit 1; }; }
7020 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
7021 - case $ac_option in
7022 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
7023 - *) ac_optarg=yes ;;
7025 - eval "enable_$ac_feature='$ac_optarg'" ;;
7027 - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
7028 - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
7029 - | --exec | --exe | --ex)
7030 - ac_prev=exec_prefix ;;
7031 - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
7032 - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
7033 - | --exec=* | --exe=* | --ex=*)
7034 - exec_prefix=$ac_optarg ;;
7036 - -gas | --gas | --ga | --g)
7037 - # Obsolete; use --with-gas.
7040 - -help | --help | --hel | --he | -h)
7041 - ac_init_help=long ;;
7042 - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
7043 - ac_init_help=recursive ;;
7044 - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
7045 - ac_init_help=short ;;
7047 - -host | --host | --hos | --ho)
7048 - ac_prev=host_alias ;;
7049 - -host=* | --host=* | --hos=* | --ho=*)
7050 - host_alias=$ac_optarg ;;
7052 - -includedir | --includedir | --includedi | --included | --include \
7053 - | --includ | --inclu | --incl | --inc)
7054 - ac_prev=includedir ;;
7055 - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
7056 - | --includ=* | --inclu=* | --incl=* | --inc=*)
7057 - includedir=$ac_optarg ;;
7059 - -infodir | --infodir | --infodi | --infod | --info | --inf)
7060 - ac_prev=infodir ;;
7061 - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
7062 - infodir=$ac_optarg ;;
7064 - -libdir | --libdir | --libdi | --libd)
7066 - -libdir=* | --libdir=* | --libdi=* | --libd=*)
7067 - libdir=$ac_optarg ;;
7069 - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
7070 - | --libexe | --libex | --libe)
7071 - ac_prev=libexecdir ;;
7072 - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
7073 - | --libexe=* | --libex=* | --libe=*)
7074 - libexecdir=$ac_optarg ;;
7076 - -localstatedir | --localstatedir | --localstatedi | --localstated \
7077 - | --localstate | --localstat | --localsta | --localst \
7078 - | --locals | --local | --loca | --loc | --lo)
7079 - ac_prev=localstatedir ;;
7080 - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
7081 - | --localstate=* | --localstat=* | --localsta=* | --localst=* \
7082 - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
7083 - localstatedir=$ac_optarg ;;
7085 - -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
7087 - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
7088 - mandir=$ac_optarg ;;
7090 - -nfp | --nfp | --nf)
7091 - # Obsolete; use --without-fp.
7094 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
7095 - | --no-cr | --no-c | -n)
7098 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
7099 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
7100 - no_recursion=yes ;;
7102 - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
7103 - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
7104 - | --oldin | --oldi | --old | --ol | --o)
7105 - ac_prev=oldincludedir ;;
7106 - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
7107 - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
7108 - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
7109 - oldincludedir=$ac_optarg ;;
7111 - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
7113 - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
7114 - prefix=$ac_optarg ;;
7116 - -program-prefix | --program-prefix | --program-prefi | --program-pref \
7117 - | --program-pre | --program-pr | --program-p)
7118 - ac_prev=program_prefix ;;
7119 - -program-prefix=* | --program-prefix=* | --program-prefi=* \
7120 - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
7121 - program_prefix=$ac_optarg ;;
7123 - -program-suffix | --program-suffix | --program-suffi | --program-suff \
7124 - | --program-suf | --program-su | --program-s)
7125 - ac_prev=program_suffix ;;
7126 - -program-suffix=* | --program-suffix=* | --program-suffi=* \
7127 - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
7128 - program_suffix=$ac_optarg ;;
7130 - -program-transform-name | --program-transform-name \
7131 - | --program-transform-nam | --program-transform-na \
7132 - | --program-transform-n | --program-transform- \
7133 - | --program-transform | --program-transfor \
7134 - | --program-transfo | --program-transf \
7135 - | --program-trans | --program-tran \
7136 - | --progr-tra | --program-tr | --program-t)
7137 - ac_prev=program_transform_name ;;
7138 - -program-transform-name=* | --program-transform-name=* \
7139 - | --program-transform-nam=* | --program-transform-na=* \
7140 - | --program-transform-n=* | --program-transform-=* \
7141 - | --program-transform=* | --program-transfor=* \
7142 - | --program-transfo=* | --program-transf=* \
7143 - | --program-trans=* | --program-tran=* \
7144 - | --progr-tra=* | --program-tr=* | --program-t=*)
7145 - program_transform_name=$ac_optarg ;;
7147 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
7148 - | -silent | --silent | --silen | --sile | --sil)
7151 - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
7152 - ac_prev=sbindir ;;
7153 - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
7154 - | --sbi=* | --sb=*)
7155 - sbindir=$ac_optarg ;;
7157 - -sharedstatedir | --sharedstatedir | --sharedstatedi \
7158 - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
7159 - | --sharedst | --shareds | --shared | --share | --shar \
7161 - ac_prev=sharedstatedir ;;
7162 - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
7163 - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
7164 - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
7165 - | --sha=* | --sh=*)
7166 - sharedstatedir=$ac_optarg ;;
7168 - -site | --site | --sit)
7170 - -site=* | --site=* | --sit=*)
7171 - site=$ac_optarg ;;
7173 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
7175 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
7176 - srcdir=$ac_optarg ;;
7178 - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
7179 - | --syscon | --sysco | --sysc | --sys | --sy)
7180 - ac_prev=sysconfdir ;;
7181 - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
7182 - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
7183 - sysconfdir=$ac_optarg ;;
7185 - -target | --target | --targe | --targ | --tar | --ta | --t)
7186 - ac_prev=target_alias ;;
7187 - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
7188 - target_alias=$ac_optarg ;;
7190 - -v | -verbose | --verbose | --verbos | --verbo | --verb)
7193 - -version | --version | --versio | --versi | --vers | -V)
7194 - ac_init_version=: ;;
7196 - -with-* | --with-*)
7197 - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
7198 - # Reject names that are not valid shell variable names.
7199 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7200 - { echo "$as_me: error: invalid package name: $ac_package" >&2
7201 - { (exit 1); exit 1; }; }
7202 - ac_package=`echo $ac_package| sed 's/-/_/g'`
7203 - case $ac_option in
7204 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
7205 - *) ac_optarg=yes ;;
7207 - eval "with_$ac_package='$ac_optarg'" ;;
7209 - -without-* | --without-*)
7210 - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
7211 - # Reject names that are not valid shell variable names.
7212 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7213 - { echo "$as_me: error: invalid package name: $ac_package" >&2
7214 - { (exit 1); exit 1; }; }
7215 - ac_package=`echo $ac_package | sed 's/-/_/g'`
7216 - eval "with_$ac_package=no" ;;
7219 - # Obsolete; use --with-x.
7222 - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
7223 - | --x-incl | --x-inc | --x-in | --x-i)
7224 - ac_prev=x_includes ;;
7225 - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
7226 - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
7227 - x_includes=$ac_optarg ;;
7229 - -x-libraries | --x-libraries | --x-librarie | --x-librari \
7230 - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
7231 - ac_prev=x_libraries ;;
7232 - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
7233 - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
7234 - x_libraries=$ac_optarg ;;
7236 - -*) { echo "$as_me: error: unrecognized option: $ac_option
7237 -Try \`$0 --help' for more information." >&2
7238 - { (exit 1); exit 1; }; }
7242 - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
7243 - # Reject names that are not valid shell variable names.
7244 - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
7245 - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
7246 - { (exit 1); exit 1; }; }
7247 - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
7248 - eval "$ac_envvar='$ac_optarg'"
7249 - export $ac_envvar ;;
7252 - # FIXME: should be removed in autoconf 3.0.
7253 - echo "$as_me: WARNING: you should use --build, --host, --target" >&2
7254 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
7255 - echo "$as_me: WARNING: invalid host type: $ac_option" >&2
7256 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
7262 -if test -n "$ac_prev"; then
7263 - ac_option=--`echo $ac_prev | sed 's/_/-/g'`
7264 - { echo "$as_me: error: missing argument to $ac_option" >&2
7265 - { (exit 1); exit 1; }; }
7268 -# Be sure to have absolute paths.
7269 -for ac_var in exec_prefix prefix
7271 - eval ac_val=$`echo $ac_var`
7273 - [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
7274 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
7275 - { (exit 1); exit 1; }; };;
7279 -# Be sure to have absolute paths.
7280 -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
7281 - localstatedir libdir includedir oldincludedir infodir mandir
7283 - eval ac_val=$`echo $ac_var`
7285 - [\\/$]* | ?:[\\/]* ) ;;
7286 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
7287 - { (exit 1); exit 1; }; };;
7291 -# There might be people who depend on the old broken behavior: `$host'
7292 -# used to hold the argument of --host etc.
7293 -# FIXME: To remove some day.
7296 -target=$target_alias
7298 -# FIXME: To remove some day.
7299 -if test "x$host_alias" != x; then
7300 - if test "x$build_alias" = x; then
7301 - cross_compiling=maybe
7302 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
7303 - If a cross compiler is detected then cross compile mode will be used." >&2
7304 - elif test "x$build_alias" != "x$host_alias"; then
7305 - cross_compiling=yes
7310 -test -n "$host_alias" && ac_tool_prefix=$host_alias-
7312 -test "$silent" = yes && exec 6>/dev/null
7315 -# Find the source files, if location was not specified.
7316 -if test -z "$srcdir"; then
7317 - ac_srcdir_defaulted=yes
7318 - # Try the directory containing this script, then its parent.
7319 - ac_confdir=`(dirname "$0") 2>/dev/null ||
7320 -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
7321 - X"$0" : 'X\(//\)[^/]' \| \
7322 - X"$0" : 'X\(//\)$' \| \
7323 - X"$0" : 'X\(/\)' \| \
7324 - . : '\(.\)' 2>/dev/null ||
7326 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
7327 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
7328 - /^X\(\/\/\)$/{ s//\1/; q; }
7329 - /^X\(\/\).*/{ s//\1/; q; }
7331 - srcdir=$ac_confdir
7332 - if test ! -r $srcdir/$ac_unique_file; then
7336 - ac_srcdir_defaulted=no
7338 -if test ! -r $srcdir/$ac_unique_file; then
7339 - if test "$ac_srcdir_defaulted" = yes; then
7340 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
7341 - { (exit 1); exit 1; }; }
7343 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
7344 - { (exit 1); exit 1; }; }
7347 -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
7348 - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
7349 - { (exit 1); exit 1; }; }
7350 -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
7351 -ac_env_build_alias_set=${build_alias+set}
7352 -ac_env_build_alias_value=$build_alias
7353 -ac_cv_env_build_alias_set=${build_alias+set}
7354 -ac_cv_env_build_alias_value=$build_alias
7355 -ac_env_host_alias_set=${host_alias+set}
7356 -ac_env_host_alias_value=$host_alias
7357 -ac_cv_env_host_alias_set=${host_alias+set}
7358 -ac_cv_env_host_alias_value=$host_alias
7359 -ac_env_target_alias_set=${target_alias+set}
7360 -ac_env_target_alias_value=$target_alias
7361 -ac_cv_env_target_alias_set=${target_alias+set}
7362 -ac_cv_env_target_alias_value=$target_alias
7363 -ac_env_CC_set=${CC+set}
7364 -ac_env_CC_value=$CC
7365 -ac_cv_env_CC_set=${CC+set}
7366 -ac_cv_env_CC_value=$CC
7367 -ac_env_CFLAGS_set=${CFLAGS+set}
7368 -ac_env_CFLAGS_value=$CFLAGS
7369 -ac_cv_env_CFLAGS_set=${CFLAGS+set}
7370 -ac_cv_env_CFLAGS_value=$CFLAGS
7371 -ac_env_LDFLAGS_set=${LDFLAGS+set}
7372 -ac_env_LDFLAGS_value=$LDFLAGS
7373 -ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
7374 -ac_cv_env_LDFLAGS_value=$LDFLAGS
7375 -ac_env_CPPFLAGS_set=${CPPFLAGS+set}
7376 -ac_env_CPPFLAGS_value=$CPPFLAGS
7377 -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
7378 -ac_cv_env_CPPFLAGS_value=$CPPFLAGS
7379 -ac_env_CPP_set=${CPP+set}
7380 -ac_env_CPP_value=$CPP
7381 -ac_cv_env_CPP_set=${CPP+set}
7382 -ac_cv_env_CPP_value=$CPP
7385 -# Report the --help message.
7387 -if test "$ac_init_help" = "long"; then
7388 - # Omit some internal or obsolete options to make the list less imposing.
7389 - # This message is too long to be a string in the A/UX 3.1 sh.
7391 -\`configure' configures this package to adapt to many kinds of systems.
7393 -Usage: $0 [OPTION]... [VAR=VALUE]...
7395 -To assign environment variables (e.g., CC, CFLAGS...), specify them as
7396 -VAR=VALUE. See below for descriptions of some of the useful variables.
7398 -Defaults for the options are specified in brackets.
7401 - -h, --help display this help and exit
7402 - --help=short display options specific to this package
7403 - --help=recursive display the short help of all the included packages
7404 - -V, --version display version information and exit
7405 - -q, --quiet, --silent do not print \`checking...' messages
7406 - --cache-file=FILE cache test results in FILE [disabled]
7407 - -C, --config-cache alias for \`--cache-file=config.cache'
7408 - -n, --no-create do not create output files
7409 - --srcdir=DIR find the sources in DIR [configure dir or \`..']
7414 -Installation directories:
7415 - --prefix=PREFIX install architecture-independent files in PREFIX
7416 - [$ac_default_prefix]
7417 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
7420 -By default, \`make install' will install all the files in
7421 -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
7422 -an installation prefix other than \`$ac_default_prefix' using \`--prefix',
7423 -for instance \`--prefix=\$HOME'.
7425 -For better control, use the options below.
7427 -Fine tuning of the installation directories:
7428 - --bindir=DIR user executables [EPREFIX/bin]
7429 - --sbindir=DIR system admin executables [EPREFIX/sbin]
7430 - --libexecdir=DIR program executables [EPREFIX/libexec]
7431 - --datadir=DIR read-only architecture-independent data [PREFIX/share]
7432 - --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
7433 - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
7434 - --localstatedir=DIR modifiable single-machine data [PREFIX/var]
7435 - --libdir=DIR object code libraries [EPREFIX/lib]
7436 - --includedir=DIR C header files [PREFIX/include]
7437 - --oldincludedir=DIR C header files for non-gcc [/usr/include]
7438 - --infodir=DIR info documentation [PREFIX/info]
7439 - --mandir=DIR man documentation [PREFIX/man]
7445 - --program-prefix=PREFIX prepend PREFIX to installed program names
7446 - --program-suffix=SUFFIX append SUFFIX to installed program names
7447 - --program-transform-name=PROGRAM run sed PROGRAM on installed program names
7450 - --build=BUILD configure for building on BUILD [guessed]
7451 - --host=HOST cross-compile to build programs to run on HOST [BUILD]
7452 - --target=TARGET configure for building compilers for TARGET [HOST]
7456 -if test -n "$ac_init_help"; then
7461 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
7462 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
7463 - --enable-multilib build many library versions (default)
7464 - --enable-maintainer-mode enable make rules and dependencies not useful
7465 - (and sometimes confusing) to the casual installer
7466 - --enable-shared=PKGS build shared libraries default=yes
7467 - --enable-static=PKGS build static libraries default=yes
7468 - --enable-fast-install=PKGS optimize for fast installation default=yes
7469 - --disable-dependency-tracking Speeds up one-time builds
7470 - --enable-dependency-tracking Do not reject slow dependency extractors
7471 - --disable-libtool-lock avoid locking (might break parallel builds)
7472 - --enable-parallel-mark parallelize marking and free list construction
7473 - --enable-shared=PKGS build shared libraries default=no
7474 - --enable-full-debug include full support for pointer backtracing etc.
7477 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
7478 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
7479 - --with-gnu-ld assume the C compiler uses GNU ld default=no
7480 - --with-pic try to use only PIC/non-PIC objects default=use both
7481 - --with-target-subdir=SUBDIR
7482 - configuring with a cross compiler
7483 - --with-cross-host=HOST configuring with a cross compiler
7484 - --with-ecos enable runtime eCos target support
7486 -Some influential environment variables:
7487 - CC C compiler command
7488 - CFLAGS C compiler flags
7489 - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
7490 - nonstandard directory <lib dir>
7491 - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
7492 - headers in a nonstandard directory <include dir>
7493 - CPP C preprocessor
7495 -Use these variables to override the choices made by `configure' or to help
7496 -it to find libraries and programs with nonstandard names/locations.
7501 -if test "$ac_init_help" = "recursive"; then
7502 - # If there are subdirs, report their specific --help.
7504 - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
7505 - test -d $ac_dir || continue
7508 -if test "$ac_dir" != .; then
7509 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
7510 - # A "../" for each directory in $ac_dir_suffix.
7511 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
7513 - ac_dir_suffix= ac_top_builddir=
7517 - .) # No --srcdir option. We are building in place.
7519 - if test -z "$ac_top_builddir"; then
7522 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
7524 - [\\/]* | ?:[\\/]* ) # Absolute path.
7525 - ac_srcdir=$srcdir$ac_dir_suffix;
7526 - ac_top_srcdir=$srcdir ;;
7527 - *) # Relative path.
7528 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
7529 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
7531 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
7533 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
7534 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
7535 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
7536 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
7539 - # Check for guested configure; otherwise get Cygnus style configure.
7540 - if test -f $ac_srcdir/configure.gnu; then
7542 - $SHELL $ac_srcdir/configure.gnu --help=recursive
7543 - elif test -f $ac_srcdir/configure; then
7545 - $SHELL $ac_srcdir/configure --help=recursive
7546 - elif test -f $ac_srcdir/configure.ac ||
7547 - test -f $ac_srcdir/configure.in; then
7549 - $ac_configure --help
7551 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
7557 -test -n "$ac_init_help" && exit 0
7558 -if $ac_init_version; then
7561 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
7562 -Free Software Foundation, Inc.
7563 -This configure script is free software; the Free Software Foundation
7564 -gives unlimited permission to copy, distribute and modify it.
7570 -This file contains any messages produced by compilers while
7571 -running configure, to aid debugging if configure makes a mistake.
7573 -It was created by $as_me, which was
7574 -generated by GNU Autoconf 2.54. Invocation command line was
7581 -@%:@@%:@ --------- @%:@@%:@
7582 -@%:@@%:@ Platform. @%:@@%:@
7583 -@%:@@%:@ --------- @%:@@%:@
7585 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
7586 -uname -m = `(uname -m) 2>/dev/null || echo unknown`
7587 -uname -r = `(uname -r) 2>/dev/null || echo unknown`
7588 -uname -s = `(uname -s) 2>/dev/null || echo unknown`
7589 -uname -v = `(uname -v) 2>/dev/null || echo unknown`
7591 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
7592 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
7594 -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
7595 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
7596 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
7597 -hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
7598 -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
7599 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
7600 -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
7604 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7605 -for as_dir in $PATH
7608 - test -z "$as_dir" && as_dir=.
7609 - echo "PATH: $as_dir"
7617 -@%:@@%:@ ----------- @%:@@%:@
7618 -@%:@@%:@ Core tests. @%:@@%:@
7619 -@%:@@%:@ ----------- @%:@@%:@
7624 -# Keep a trace of the command line.
7625 -# Strip out --no-create and --no-recursion so they do not pile up.
7626 -# Also quote any args containing shell meta-characters.
7632 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
7633 - | --no-cr | --no-c | -n ) continue ;;
7634 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
7635 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
7637 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
7638 - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
7640 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
7641 - # Get rid of the leading space.
7645 -# When interrupted or exit'd, cleanup temporary files, and complete
7646 -# config.log. We remove comments because anyway the quotes in there
7647 -# would cause problems or look ugly.
7648 -# WARNING: Be sure not to use single quotes in there, as some shells,
7649 -# such as our DU 5.0 friend, will then `close' the trap.
7650 -trap 'exit_status=$?
7651 - # Save into config.log some information that might help in debugging.
7656 -@%:@@%:@ ---------------- @%:@@%:@
7657 -@%:@@%:@ Cache variables. @%:@@%:@
7658 -@%:@@%:@ ---------------- @%:@@%:@
7661 - # The following way of writing the cache mishandles newlines in values,
7664 - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
7667 - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
7668 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
7672 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
7679 -@%:@@%:@ ----------------- @%:@@%:@
7680 -@%:@@%:@ Output variables. @%:@@%:@
7681 -@%:@@%:@ ----------------- @%:@@%:@
7684 - for ac_var in $ac_subst_vars
7686 - eval ac_val=$`echo $ac_var`
7687 - echo "$ac_var='"'"'$ac_val'"'"'"
7691 - if test -n "$ac_subst_files"; then
7693 -@%:@@%:@ ------------- @%:@@%:@
7694 -@%:@@%:@ Output files. @%:@@%:@
7695 -@%:@@%:@ ------------- @%:@@%:@
7698 - for ac_var in $ac_subst_files
7700 - eval ac_val=$`echo $ac_var`
7701 - echo "$ac_var='"'"'$ac_val'"'"'"
7706 - if test -s confdefs.h; then
7708 -@%:@@%:@ ----------- @%:@@%:@
7709 -@%:@@%:@ confdefs.h. @%:@@%:@
7710 -@%:@@%:@ ----------- @%:@@%:@
7713 - sed "/^$/d" confdefs.h | sort
7716 - test "$ac_signal" != 0 &&
7717 - echo "$as_me: caught signal $ac_signal"
7718 - echo "$as_me: exit $exit_status"
7720 - rm -f core core.* *.core &&
7721 - rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
7724 -for ac_signal in 1 2 13 15; do
7725 - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
7729 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
7730 -rm -rf conftest* confdefs.h
7731 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
7734 -# Predefined preprocessor variables.
7736 -cat >>confdefs.h <<_ACEOF
7737 -@%:@define PACKAGE_NAME "$PACKAGE_NAME"
7741 -cat >>confdefs.h <<_ACEOF
7742 -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
7746 -cat >>confdefs.h <<_ACEOF
7747 -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
7751 -cat >>confdefs.h <<_ACEOF
7752 -@%:@define PACKAGE_STRING "$PACKAGE_STRING"
7756 -cat >>confdefs.h <<_ACEOF
7757 -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
7761 -# Let the site file select an alternate cache file if it wants to.
7762 -# Prefer explicitly selected file to automatically selected ones.
7763 -if test -z "$CONFIG_SITE"; then
7764 - if test "x$prefix" != xNONE; then
7765 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
7767 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
7770 -for ac_site_file in $CONFIG_SITE; do
7771 - if test -r "$ac_site_file"; then
7772 - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
7773 -echo "$as_me: loading site script $ac_site_file" >&6;}
7774 - sed 's/^/| /' "$ac_site_file" >&5
7779 -if test -r "$cache_file"; then
7780 - # Some versions of bash will fail to source /dev/null (special
7781 - # files actually), so we avoid doing that.
7782 - if test -f "$cache_file"; then
7783 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
7784 -echo "$as_me: loading cache $cache_file" >&6;}
7785 - case $cache_file in
7786 - [\\/]* | ?:[\\/]* ) . $cache_file;;
7787 - *) . ./$cache_file;;
7791 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
7792 -echo "$as_me: creating cache $cache_file" >&6;}
7796 -# Check that the precious variables saved in the cache have kept the same
7798 -ac_cache_corrupted=false
7799 -for ac_var in `(set) 2>&1 |
7800 - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
7801 - eval ac_old_set=\$ac_cv_env_${ac_var}_set
7802 - eval ac_new_set=\$ac_env_${ac_var}_set
7803 - eval ac_old_val="\$ac_cv_env_${ac_var}_value"
7804 - eval ac_new_val="\$ac_env_${ac_var}_value"
7805 - case $ac_old_set,$ac_new_set in
7807 - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
7808 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
7809 - ac_cache_corrupted=: ;;
7811 - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
7812 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
7813 - ac_cache_corrupted=: ;;
7816 - if test "x$ac_old_val" != "x$ac_new_val"; then
7817 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
7818 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
7819 - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
7820 -echo "$as_me: former value: $ac_old_val" >&2;}
7821 - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
7822 -echo "$as_me: current value: $ac_new_val" >&2;}
7823 - ac_cache_corrupted=:
7826 - # Pass precious variables to config.status.
7827 - if test "$ac_new_set" = set; then
7828 - case $ac_new_val in
7829 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
7830 - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
7831 - *) ac_arg=$ac_var=$ac_new_val ;;
7833 - case " $ac_configure_args " in
7834 - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
7835 - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
7839 -if $ac_cache_corrupted; then
7840 - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
7841 -echo "$as_me: error: changes in the environment can compromise the build" >&2;}
7842 - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
7843 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
7844 - { (exit 1); exit 1; }; }
7848 -ac_cpp='$CPP $CPPFLAGS'
7849 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7850 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
7851 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
7872 -# This works around the fact that libtool configuration may change LD
7873 -# for this particular configuration, but some shells, instead of
7874 -# keeping the changes in LD private, export them just because LD is
7876 -ORIGINAL_LD_FOR_MULTILIBS=$LD
7879 -for ac_dir in . $srcdir/.; do
7880 - if test -f $ac_dir/install-sh; then
7881 - ac_aux_dir=$ac_dir
7882 - ac_install_sh="$ac_aux_dir/install-sh -c"
7884 - elif test -f $ac_dir/install.sh; then
7885 - ac_aux_dir=$ac_dir
7886 - ac_install_sh="$ac_aux_dir/install.sh -c"
7888 - elif test -f $ac_dir/shtool; then
7889 - ac_aux_dir=$ac_dir
7890 - ac_install_sh="$ac_aux_dir/shtool install -c"
7894 -if test -z "$ac_aux_dir"; then
7895 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . $srcdir/." >&5
7896 -echo "$as_me: error: cannot find install-sh or install.sh in . $srcdir/." >&2;}
7897 - { (exit 1); exit 1; }; }
7899 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
7900 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
7901 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
7904 -# Make sure we can run config.sub.
7905 -$ac_config_sub sun4 >/dev/null 2>&1 ||
7906 - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
7907 -echo "$as_me: error: cannot run $ac_config_sub" >&2;}
7908 - { (exit 1); exit 1; }; }
7910 -echo "$as_me:$LINENO: checking build system type" >&5
7911 -echo $ECHO_N "checking build system type... $ECHO_C" >&6
7912 -if test "${ac_cv_build+set}" = set; then
7913 - echo $ECHO_N "(cached) $ECHO_C" >&6
7915 - ac_cv_build_alias=$build_alias
7916 -test -z "$ac_cv_build_alias" &&
7917 - ac_cv_build_alias=`$ac_config_guess`
7918 -test -z "$ac_cv_build_alias" &&
7919 - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
7920 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
7921 - { (exit 1); exit 1; }; }
7922 -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
7923 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
7924 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
7925 - { (exit 1); exit 1; }; }
7928 -echo "$as_me:$LINENO: result: $ac_cv_build" >&5
7929 -echo "${ECHO_T}$ac_cv_build" >&6
7931 -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
7932 -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
7933 -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
7936 -echo "$as_me:$LINENO: checking host system type" >&5
7937 -echo $ECHO_N "checking host system type... $ECHO_C" >&6
7938 -if test "${ac_cv_host+set}" = set; then
7939 - echo $ECHO_N "(cached) $ECHO_C" >&6
7941 - ac_cv_host_alias=$host_alias
7942 -test -z "$ac_cv_host_alias" &&
7943 - ac_cv_host_alias=$ac_cv_build_alias
7944 -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
7945 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
7946 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
7947 - { (exit 1); exit 1; }; }
7950 -echo "$as_me:$LINENO: result: $ac_cv_host" >&5
7951 -echo "${ECHO_T}$ac_cv_host" >&6
7953 -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
7954 -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
7955 -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
7958 -am__api_version="1.6"
7959 -# Find a good install program. We prefer a C program (faster),
7960 -# so one script is as good as another. But avoid the broken or
7961 -# incompatible versions:
7962 -# SysV /etc/install, /usr/sbin/install
7963 -# SunOS /usr/etc/install
7964 -# IRIX /sbin/install
7966 -# AmigaOS /C/install, which installs bootblocks on floppy discs
7967 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
7968 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
7969 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
7970 -# ./install, which can be erroneously created by make from ./install.sh.
7971 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
7972 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
7973 -if test -z "$INSTALL"; then
7974 -if test "${ac_cv_path_install+set}" = set; then
7975 - echo $ECHO_N "(cached) $ECHO_C" >&6
7977 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7978 -for as_dir in $PATH
7981 - test -z "$as_dir" && as_dir=.
7982 - # Account for people who put trailing slashes in PATH elements.
7984 - ./ | .// | /cC/* | \
7985 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
7988 - # OSF1 and SCO ODT 3.0 have their own names for install.
7989 - # Don't use installbsd from OSF since it installs stuff as root
7991 - for ac_prog in ginstall scoinst install; do
7992 - for ac_exec_ext in '' $ac_executable_extensions; do
7993 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
7994 - if test $ac_prog = install &&
7995 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
7996 - # AIX install. It has an incompatible calling convention.
7998 - elif test $ac_prog = install &&
7999 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8000 - # program-specific install script used by HP pwplus--don't use.
8003 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
8015 - if test "${ac_cv_path_install+set}" = set; then
8016 - INSTALL=$ac_cv_path_install
8018 - # As a last resort, use the slow shell script. We don't cache a
8019 - # path for INSTALL within a source directory, because that will
8020 - # break other packages using the cache if that directory is
8021 - # removed, or if the path is relative.
8022 - INSTALL=$ac_install_sh
8025 -echo "$as_me:$LINENO: result: $INSTALL" >&5
8026 -echo "${ECHO_T}$INSTALL" >&6
8028 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
8029 -# It thinks the first close brace ends the variable substitution.
8030 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
8032 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
8034 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
8036 -echo "$as_me:$LINENO: checking whether build environment is sane" >&5
8037 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
8040 -echo timestamp > conftest.file
8041 -# Do `set' in a subshell so we don't clobber the current shell's
8042 -# arguments. Must try -L first in case configure is actually a
8043 -# symlink; some systems play weird games with the mod time of symlinks
8044 -# (eg FreeBSD returns the mod time of the symlink's containing
8047 - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
8048 - if test "$*" = "X"; then
8050 - set X `ls -t $srcdir/configure conftest.file`
8052 - rm -f conftest.file
8053 - if test "$*" != "X $srcdir/configure conftest.file" \
8054 - && test "$*" != "X conftest.file $srcdir/configure"; then
8056 - # If neither matched, then we have a broken ls. This can happen
8057 - # if, for instance, CONFIG_SHELL is bash and it inherits a
8058 - # broken ls alias from the environment. This has actually
8059 - # happened. Such a system could not be considered "sane".
8060 - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
8061 -alias in your environment" >&5
8062 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
8063 -alias in your environment" >&2;}
8064 - { (exit 1); exit 1; }; }
8067 - test "$2" = conftest.file
8073 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
8074 -Check your system clock" >&5
8075 -echo "$as_me: error: newly created file is older than distributed files!
8076 -Check your system clock" >&2;}
8077 - { (exit 1); exit 1; }; }
8079 -echo "$as_me:$LINENO: result: yes" >&5
8080 -echo "${ECHO_T}yes" >&6
8081 -test "$program_prefix" != NONE &&
8082 - program_transform_name="s,^,$program_prefix,;$program_transform_name"
8083 -# Use a double $ so make ignores it.
8084 -test "$program_suffix" != NONE &&
8085 - program_transform_name="s,\$,$program_suffix,;$program_transform_name"
8086 -# Double any \ or $. echo might interpret backslashes.
8087 -# By default was `s,x,x', remove it if useless.
8088 -cat <<\_ACEOF >conftest.sed
8089 -s/[\\$]/&&/g;s/;s,x,x,$//
8091 -program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
8095 -# expand $ac_aux_dir to an absolute path
8096 -am_aux_dir=`cd $ac_aux_dir && pwd`
8098 -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
8099 -# Use eval to expand $SHELL
8100 -if eval "$MISSING --run true"; then
8101 - am_missing_run="$MISSING --run "
8104 - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
8105 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
8108 -for ac_prog in gawk mawk nawk awk
8110 - # Extract the first word of "$ac_prog", so it can be a program name with args.
8111 -set dummy $ac_prog; ac_word=$2
8112 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8113 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8114 -if test "${ac_cv_prog_AWK+set}" = set; then
8115 - echo $ECHO_N "(cached) $ECHO_C" >&6
8117 - if test -n "$AWK"; then
8118 - ac_cv_prog_AWK="$AWK" # Let the user override the test.
8120 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8121 -for as_dir in $PATH
8124 - test -z "$as_dir" && as_dir=.
8125 - for ac_exec_ext in '' $ac_executable_extensions; do
8126 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8127 - ac_cv_prog_AWK="$ac_prog"
8128 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8136 -AWK=$ac_cv_prog_AWK
8137 -if test -n "$AWK"; then
8138 - echo "$as_me:$LINENO: result: $AWK" >&5
8139 -echo "${ECHO_T}$AWK" >&6
8141 - echo "$as_me:$LINENO: result: no" >&5
8142 -echo "${ECHO_T}no" >&6
8145 - test -n "$AWK" && break
8148 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
8149 -echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
8150 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
8151 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
8152 - echo $ECHO_N "(cached) $ECHO_C" >&6
8154 - cat >conftest.make <<\_ACEOF
8156 - @echo 'ac_maketemp="${MAKE}"'
8158 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
8159 -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
8160 -if test -n "$ac_maketemp"; then
8161 - eval ac_cv_prog_make_${ac_make}_set=yes
8163 - eval ac_cv_prog_make_${ac_make}_set=no
8165 -rm -f conftest.make
8167 -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
8168 - echo "$as_me:$LINENO: result: yes" >&5
8169 -echo "${ECHO_T}yes" >&6
8172 - echo "$as_me:$LINENO: result: no" >&5
8173 -echo "${ECHO_T}no" >&6
8174 - SET_MAKE="MAKE=${MAKE-make}"
8178 -# Check whether --enable-multilib or --disable-multilib was given.
8179 -if test "${enable_multilib+set}" = set; then
8180 - enableval="$enable_multilib"
8181 - case "${enableval}" in
8182 - yes) multilib=yes ;;
8183 - no) multilib=no ;;
8184 - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
8185 -echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
8186 - { (exit 1); exit 1; }; } ;;
8192 -if test "${srcdir}" = "."; then
8193 - if test "${with_target_subdir}" != "." -a -n "${with_target_subdir}"; then
8194 - gc_basedir="${srcdir}/${with_multisrctop}../."
8196 - gc_basedir="${srcdir}/${with_multisrctop}."
8199 - gc_basedir="${srcdir}/."
8203 -for ac_dir in $gc_basedir/.. $srcdir/$gc_basedir/..; do
8204 - if test -f $ac_dir/install-sh; then
8205 - ac_aux_dir=$ac_dir
8206 - ac_install_sh="$ac_aux_dir/install-sh -c"
8208 - elif test -f $ac_dir/install.sh; then
8209 - ac_aux_dir=$ac_dir
8210 - ac_install_sh="$ac_aux_dir/install.sh -c"
8212 - elif test -f $ac_dir/shtool; then
8213 - ac_aux_dir=$ac_dir
8214 - ac_install_sh="$ac_aux_dir/shtool install -c"
8218 -if test -z "$ac_aux_dir"; then
8219 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&5
8220 -echo "$as_me: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&2;}
8221 - { (exit 1); exit 1; }; }
8223 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
8224 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
8225 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
8228 - # This overrides the previous occurrence for automake, but not for
8229 - # autoconf, which is exactly what we want.
8231 -for ac_dir in .. $srcdir/..; do
8232 - if test -f $ac_dir/install-sh; then
8233 - ac_aux_dir=$ac_dir
8234 - ac_install_sh="$ac_aux_dir/install-sh -c"
8236 - elif test -f $ac_dir/install.sh; then
8237 - ac_aux_dir=$ac_dir
8238 - ac_install_sh="$ac_aux_dir/install.sh -c"
8240 - elif test -f $ac_dir/shtool; then
8241 - ac_aux_dir=$ac_dir
8242 - ac_install_sh="$ac_aux_dir/shtool install -c"
8246 -if test -z "$ac_aux_dir"; then
8247 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in .. $srcdir/.." >&5
8248 -echo "$as_me: error: cannot find install-sh or install.sh in .. $srcdir/.." >&2;}
8249 - { (exit 1); exit 1; }; }
8251 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
8252 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
8253 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
8257 -echo "$as_me:$LINENO: checking target system type" >&5
8258 -echo $ECHO_N "checking target system type... $ECHO_C" >&6
8259 -if test "${ac_cv_target+set}" = set; then
8260 - echo $ECHO_N "(cached) $ECHO_C" >&6
8262 - ac_cv_target_alias=$target_alias
8263 -test "x$ac_cv_target_alias" = "x" &&
8264 - ac_cv_target_alias=$ac_cv_host_alias
8265 -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
8266 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
8267 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
8268 - { (exit 1); exit 1; }; }
8271 -echo "$as_me:$LINENO: result: $ac_cv_target" >&5
8272 -echo "${ECHO_T}$ac_cv_target" >&6
8273 -target=$ac_cv_target
8274 -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
8275 -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
8276 -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
8279 -# The aliases save the names the user supplied, while $host etc.
8280 -# will get canonicalized.
8281 -test -n "$target_alias" &&
8282 - test "$program_prefix$program_suffix$program_transform_name" = \
8284 - program_prefix=${target_alias}-
8286 -# This works around an automake problem.
8287 -mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
8290 - # test to see if srcdir already configured
8291 -if test "`cd $srcdir && pwd`" != "`pwd`" &&
8292 - test -f $srcdir/config.status; then
8293 - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
8294 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
8295 - { (exit 1); exit 1; }; }
8298 -# Define the identity of the package.
8303 -# Some tools Automake needs.
8305 -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
8308 -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
8311 -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
8314 -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
8317 -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
8320 -AMTAR=${AMTAR-"${am_missing_run}tar"}
8322 -install_sh=${install_sh-"$am_aux_dir/install-sh"}
8324 -# Installed binaries are usually stripped using `strip' when the user
8325 -# run `make install-strip'. However `strip' might not be the right
8326 -# tool to use in cross-compilation environments, therefore Automake
8327 -# will honor the `STRIP' environment variable to overrule this program.
8328 -if test "$cross_compiling" != no; then
8329 - if test -n "$ac_tool_prefix"; then
8330 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
8331 -set dummy ${ac_tool_prefix}strip; ac_word=$2
8332 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8333 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8334 -if test "${ac_cv_prog_STRIP+set}" = set; then
8335 - echo $ECHO_N "(cached) $ECHO_C" >&6
8337 - if test -n "$STRIP"; then
8338 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
8340 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8341 -for as_dir in $PATH
8344 - test -z "$as_dir" && as_dir=.
8345 - for ac_exec_ext in '' $ac_executable_extensions; do
8346 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8347 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
8348 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8356 -STRIP=$ac_cv_prog_STRIP
8357 -if test -n "$STRIP"; then
8358 - echo "$as_me:$LINENO: result: $STRIP" >&5
8359 -echo "${ECHO_T}$STRIP" >&6
8361 - echo "$as_me:$LINENO: result: no" >&5
8362 -echo "${ECHO_T}no" >&6
8366 -if test -z "$ac_cv_prog_STRIP"; then
8367 - ac_ct_STRIP=$STRIP
8368 - # Extract the first word of "strip", so it can be a program name with args.
8369 -set dummy strip; ac_word=$2
8370 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8371 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8372 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
8373 - echo $ECHO_N "(cached) $ECHO_C" >&6
8375 - if test -n "$ac_ct_STRIP"; then
8376 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
8378 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8379 -for as_dir in $PATH
8382 - test -z "$as_dir" && as_dir=.
8383 - for ac_exec_ext in '' $ac_executable_extensions; do
8384 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8385 - ac_cv_prog_ac_ct_STRIP="strip"
8386 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8392 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
8395 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
8396 -if test -n "$ac_ct_STRIP"; then
8397 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
8398 -echo "${ECHO_T}$ac_ct_STRIP" >&6
8400 - echo "$as_me:$LINENO: result: no" >&5
8401 -echo "${ECHO_T}no" >&6
8404 - STRIP=$ac_ct_STRIP
8406 - STRIP="$ac_cv_prog_STRIP"
8410 -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
8412 -# We need awk for the "check" target. The system "awk" is bad on
8418 -# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
8419 -# run it explicitly here, it will be run implicitly before
8420 -# NEWLIB_CONFIGURE, which doesn't work because that means that it will
8421 -# be run before AC_CANONICAL_HOST.
8424 -if test -n "$ac_tool_prefix"; then
8425 - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
8426 -set dummy ${ac_tool_prefix}as; ac_word=$2
8427 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8428 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8429 -if test "${ac_cv_prog_AS+set}" = set; then
8430 - echo $ECHO_N "(cached) $ECHO_C" >&6
8432 - if test -n "$AS"; then
8433 - ac_cv_prog_AS="$AS" # Let the user override the test.
8435 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8436 -for as_dir in $PATH
8439 - test -z "$as_dir" && as_dir=.
8440 - for ac_exec_ext in '' $ac_executable_extensions; do
8441 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8442 - ac_cv_prog_AS="${ac_tool_prefix}as"
8443 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8452 -if test -n "$AS"; then
8453 - echo "$as_me:$LINENO: result: $AS" >&5
8454 -echo "${ECHO_T}$AS" >&6
8456 - echo "$as_me:$LINENO: result: no" >&5
8457 -echo "${ECHO_T}no" >&6
8461 -if test -z "$ac_cv_prog_AS"; then
8463 - # Extract the first word of "as", so it can be a program name with args.
8464 -set dummy as; ac_word=$2
8465 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8466 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8467 -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
8468 - echo $ECHO_N "(cached) $ECHO_C" >&6
8470 - if test -n "$ac_ct_AS"; then
8471 - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
8473 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8474 -for as_dir in $PATH
8477 - test -z "$as_dir" && as_dir=.
8478 - for ac_exec_ext in '' $ac_executable_extensions; do
8479 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8480 - ac_cv_prog_ac_ct_AS="as"
8481 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8489 -ac_ct_AS=$ac_cv_prog_ac_ct_AS
8490 -if test -n "$ac_ct_AS"; then
8491 - echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
8492 -echo "${ECHO_T}$ac_ct_AS" >&6
8494 - echo "$as_me:$LINENO: result: no" >&5
8495 -echo "${ECHO_T}no" >&6
8500 - AS="$ac_cv_prog_AS"
8503 -if test -n "$ac_tool_prefix"; then
8504 - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
8505 -set dummy ${ac_tool_prefix}ar; ac_word=$2
8506 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8507 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8508 -if test "${ac_cv_prog_AR+set}" = set; then
8509 - echo $ECHO_N "(cached) $ECHO_C" >&6
8511 - if test -n "$AR"; then
8512 - ac_cv_prog_AR="$AR" # Let the user override the test.
8514 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8515 -for as_dir in $PATH
8518 - test -z "$as_dir" && as_dir=.
8519 - for ac_exec_ext in '' $ac_executable_extensions; do
8520 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8521 - ac_cv_prog_AR="${ac_tool_prefix}ar"
8522 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8531 -if test -n "$AR"; then
8532 - echo "$as_me:$LINENO: result: $AR" >&5
8533 -echo "${ECHO_T}$AR" >&6
8535 - echo "$as_me:$LINENO: result: no" >&5
8536 -echo "${ECHO_T}no" >&6
8540 -if test -z "$ac_cv_prog_AR"; then
8542 - # Extract the first word of "ar", so it can be a program name with args.
8543 -set dummy ar; ac_word=$2
8544 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8545 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8546 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
8547 - echo $ECHO_N "(cached) $ECHO_C" >&6
8549 - if test -n "$ac_ct_AR"; then
8550 - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
8552 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8553 -for as_dir in $PATH
8556 - test -z "$as_dir" && as_dir=.
8557 - for ac_exec_ext in '' $ac_executable_extensions; do
8558 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8559 - ac_cv_prog_ac_ct_AR="ar"
8560 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8568 -ac_ct_AR=$ac_cv_prog_ac_ct_AR
8569 -if test -n "$ac_ct_AR"; then
8570 - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
8571 -echo "${ECHO_T}$ac_ct_AR" >&6
8573 - echo "$as_me:$LINENO: result: no" >&5
8574 -echo "${ECHO_T}no" >&6
8579 - AR="$ac_cv_prog_AR"
8582 -if test -n "$ac_tool_prefix"; then
8583 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
8584 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
8585 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8586 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8587 -if test "${ac_cv_prog_RANLIB+set}" = set; then
8588 - echo $ECHO_N "(cached) $ECHO_C" >&6
8590 - if test -n "$RANLIB"; then
8591 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
8593 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8594 -for as_dir in $PATH
8597 - test -z "$as_dir" && as_dir=.
8598 - for ac_exec_ext in '' $ac_executable_extensions; do
8599 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8600 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
8601 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8609 -RANLIB=$ac_cv_prog_RANLIB
8610 -if test -n "$RANLIB"; then
8611 - echo "$as_me:$LINENO: result: $RANLIB" >&5
8612 -echo "${ECHO_T}$RANLIB" >&6
8614 - echo "$as_me:$LINENO: result: no" >&5
8615 -echo "${ECHO_T}no" >&6
8619 -if test -z "$ac_cv_prog_RANLIB"; then
8620 - ac_ct_RANLIB=$RANLIB
8621 - # Extract the first word of "ranlib", so it can be a program name with args.
8622 -set dummy ranlib; ac_word=$2
8623 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8624 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8625 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
8626 - echo $ECHO_N "(cached) $ECHO_C" >&6
8628 - if test -n "$ac_ct_RANLIB"; then
8629 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
8631 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8632 -for as_dir in $PATH
8635 - test -z "$as_dir" && as_dir=.
8636 - for ac_exec_ext in '' $ac_executable_extensions; do
8637 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8638 - ac_cv_prog_ac_ct_RANLIB="ranlib"
8639 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8645 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
8648 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
8649 -if test -n "$ac_ct_RANLIB"; then
8650 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
8651 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
8653 - echo "$as_me:$LINENO: result: no" >&5
8654 -echo "${ECHO_T}no" >&6
8657 - RANLIB=$ac_ct_RANLIB
8659 - RANLIB="$ac_cv_prog_RANLIB"
8663 -# Find a good install program. We prefer a C program (faster),
8664 -# so one script is as good as another. But avoid the broken or
8665 -# incompatible versions:
8666 -# SysV /etc/install, /usr/sbin/install
8667 -# SunOS /usr/etc/install
8668 -# IRIX /sbin/install
8670 -# AmigaOS /C/install, which installs bootblocks on floppy discs
8671 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
8672 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
8673 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
8674 -# ./install, which can be erroneously created by make from ./install.sh.
8675 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
8676 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
8677 -if test -z "$INSTALL"; then
8678 -if test "${ac_cv_path_install+set}" = set; then
8679 - echo $ECHO_N "(cached) $ECHO_C" >&6
8681 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8682 -for as_dir in $PATH
8685 - test -z "$as_dir" && as_dir=.
8686 - # Account for people who put trailing slashes in PATH elements.
8688 - ./ | .// | /cC/* | \
8689 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
8692 - # OSF1 and SCO ODT 3.0 have their own names for install.
8693 - # Don't use installbsd from OSF since it installs stuff as root
8695 - for ac_prog in ginstall scoinst install; do
8696 - for ac_exec_ext in '' $ac_executable_extensions; do
8697 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
8698 - if test $ac_prog = install &&
8699 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8700 - # AIX install. It has an incompatible calling convention.
8702 - elif test $ac_prog = install &&
8703 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8704 - # program-specific install script used by HP pwplus--don't use.
8707 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
8719 - if test "${ac_cv_path_install+set}" = set; then
8720 - INSTALL=$ac_cv_path_install
8722 - # As a last resort, use the slow shell script. We don't cache a
8723 - # path for INSTALL within a source directory, because that will
8724 - # break other packages using the cache if that directory is
8725 - # removed, or if the path is relative.
8726 - INSTALL=$ac_install_sh
8729 -echo "$as_me:$LINENO: result: $INSTALL" >&5
8730 -echo "${ECHO_T}$INSTALL" >&6
8732 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
8733 -# It thinks the first close brace ends the variable substitution.
8734 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
8736 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
8738 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
8741 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
8742 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
8743 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
8744 -if test "${enable_maintainer_mode+set}" = set; then
8745 - enableval="$enable_maintainer_mode"
8746 - USE_MAINTAINER_MODE=$enableval
8748 - USE_MAINTAINER_MODE=no
8750 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
8751 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
8754 -if test $USE_MAINTAINER_MODE = yes; then
8755 - MAINTAINER_MODE_TRUE=
8756 - MAINTAINER_MODE_FALSE='#'
8758 - MAINTAINER_MODE_TRUE='#'
8759 - MAINTAINER_MODE_FALSE=
8762 - MAINT=$MAINTAINER_MODE_TRUE
8766 -# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
8767 -# at least currently, we never actually build a program, so we never
8768 -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
8769 -# fails, because we are probably configuring with a cross compiler
8770 -# which can't create executables. So we include AC_EXEEXT to keep
8771 -# automake happy, but we don't execute it, since we don't care about
8774 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
8775 - # to nothing, so nothing would remain between `then' and `fi' if it
8776 - # were not for the `:' below.
8781 -. ${srcdir}/configure.host
8783 -case ${gc_basedir} in
8784 -/* | A-Za-z:/\\*) gc_flagbasedir=${gc_basedir} ;;
8785 -*) gc_flagbasedir='$(top_builddir)/'${gc_basedir} ;;
8788 -gc_cflags="${gc_cflags} -I"'$(top_builddir)'"/./targ-include -I${gc_flagbasedir}/libc/include"
8791 - gc_cflags="${gc_cflags} -I${gc_flagbasedir}/../winsup/include"
8796 -GC_CFLAGS=${gc_cflags}
8800 -# Check whether --enable-shared or --disable-shared was given.
8801 -if test "${enable_shared+set}" = set; then
8802 - enableval="$enable_shared"
8803 - p=${PACKAGE-default}
8805 -yes) enable_shared=yes ;;
8806 -no) enable_shared=no ;;
8809 - # Look at the argument we got. We use all the common list separators.
8810 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8811 - for pkg in $enableval; do
8812 - if test "X$pkg" = "X$p"; then
8816 - IFS="$ac_save_ifs"
8822 -# Check whether --enable-static or --disable-static was given.
8823 -if test "${enable_static+set}" = set; then
8824 - enableval="$enable_static"
8825 - p=${PACKAGE-default}
8827 -yes) enable_static=yes ;;
8828 -no) enable_static=no ;;
8831 - # Look at the argument we got. We use all the common list separators.
8832 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8833 - for pkg in $enableval; do
8834 - if test "X$pkg" = "X$p"; then
8838 - IFS="$ac_save_ifs"
8844 -# Check whether --enable-fast-install or --disable-fast-install was given.
8845 -if test "${enable_fast_install+set}" = set; then
8846 - enableval="$enable_fast_install"
8847 - p=${PACKAGE-default}
8849 -yes) enable_fast_install=yes ;;
8850 -no) enable_fast_install=no ;;
8852 - enable_fast_install=no
8853 - # Look at the argument we got. We use all the common list separators.
8854 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8855 - for pkg in $enableval; do
8856 - if test "X$pkg" = "X$p"; then
8857 - enable_fast_install=yes
8860 - IFS="$ac_save_ifs"
8864 - enable_fast_install=yes
8866 -rm -f .deps 2>/dev/null
8867 -mkdir .deps 2>/dev/null
8868 -if test -d .deps; then
8871 - # MS-DOS does not allow filenames that begin with a dot.
8874 -rmdir .deps 2>/dev/null
8877 - ac_config_commands="$ac_config_commands depfiles"
8880 -am_make=${MAKE-make}
8881 -cat > confinc << 'END'
8885 -# If we don't find an include directive, just comment out the code.
8886 -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
8887 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
8891 -# First try GNU make style include.
8892 -echo "include confinc" > confmf
8893 -# We grep out `Entering directory' and `Leaving directory'
8894 -# messages which can occur if `w' ends up in MAKEFLAGS.
8895 -# In particular we don't look at `^make:' because GNU make might
8896 -# be invoked under some other name (usually "gmake"), in which
8897 -# case it prints its new name instead of `make'.
8898 -if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
8899 - am__include=include
8903 -# Now try BSD make style include.
8904 -if test "$am__include" = "#"; then
8905 - echo '.include "confinc"' > confmf
8906 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
8907 - am__include=.include
8914 -echo "$as_me:$LINENO: result: $_am_result" >&5
8915 -echo "${ECHO_T}$_am_result" >&6
8916 -rm -f confinc confmf
8918 -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
8919 -if test "${enable_dependency_tracking+set}" = set; then
8920 - enableval="$enable_dependency_tracking"
8923 -if test "x$enable_dependency_tracking" != xno; then
8924 - am_depcomp="$ac_aux_dir/depcomp"
8925 - AMDEPBACKSLASH='\'
8929 -if test "x$enable_dependency_tracking" != xno; then
8940 -ac_cpp='$CPP $CPPFLAGS'
8941 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
8942 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
8943 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
8944 -if test -n "$ac_tool_prefix"; then
8945 - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
8946 -set dummy ${ac_tool_prefix}gcc; ac_word=$2
8947 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8948 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8949 -if test "${ac_cv_prog_CC+set}" = set; then
8950 - echo $ECHO_N "(cached) $ECHO_C" >&6
8952 - if test -n "$CC"; then
8953 - ac_cv_prog_CC="$CC" # Let the user override the test.
8955 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8956 -for as_dir in $PATH
8959 - test -z "$as_dir" && as_dir=.
8960 - for ac_exec_ext in '' $ac_executable_extensions; do
8961 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8962 - ac_cv_prog_CC="${ac_tool_prefix}gcc"
8963 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8972 -if test -n "$CC"; then
8973 - echo "$as_me:$LINENO: result: $CC" >&5
8974 -echo "${ECHO_T}$CC" >&6
8976 - echo "$as_me:$LINENO: result: no" >&5
8977 -echo "${ECHO_T}no" >&6
8981 -if test -z "$ac_cv_prog_CC"; then
8983 - # Extract the first word of "gcc", so it can be a program name with args.
8984 -set dummy gcc; ac_word=$2
8985 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8986 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8987 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
8988 - echo $ECHO_N "(cached) $ECHO_C" >&6
8990 - if test -n "$ac_ct_CC"; then
8991 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
8993 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8994 -for as_dir in $PATH
8997 - test -z "$as_dir" && as_dir=.
8998 - for ac_exec_ext in '' $ac_executable_extensions; do
8999 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9000 - ac_cv_prog_ac_ct_CC="gcc"
9001 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9009 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
9010 -if test -n "$ac_ct_CC"; then
9011 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
9012 -echo "${ECHO_T}$ac_ct_CC" >&6
9014 - echo "$as_me:$LINENO: result: no" >&5
9015 -echo "${ECHO_T}no" >&6
9020 - CC="$ac_cv_prog_CC"
9023 -if test -z "$CC"; then
9024 - if test -n "$ac_tool_prefix"; then
9025 - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
9026 -set dummy ${ac_tool_prefix}cc; ac_word=$2
9027 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9028 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9029 -if test "${ac_cv_prog_CC+set}" = set; then
9030 - echo $ECHO_N "(cached) $ECHO_C" >&6
9032 - if test -n "$CC"; then
9033 - ac_cv_prog_CC="$CC" # Let the user override the test.
9035 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9036 -for as_dir in $PATH
9039 - test -z "$as_dir" && as_dir=.
9040 - for ac_exec_ext in '' $ac_executable_extensions; do
9041 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9042 - ac_cv_prog_CC="${ac_tool_prefix}cc"
9043 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9052 -if test -n "$CC"; then
9053 - echo "$as_me:$LINENO: result: $CC" >&5
9054 -echo "${ECHO_T}$CC" >&6
9056 - echo "$as_me:$LINENO: result: no" >&5
9057 -echo "${ECHO_T}no" >&6
9061 -if test -z "$ac_cv_prog_CC"; then
9063 - # Extract the first word of "cc", so it can be a program name with args.
9064 -set dummy cc; ac_word=$2
9065 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9066 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9067 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
9068 - echo $ECHO_N "(cached) $ECHO_C" >&6
9070 - if test -n "$ac_ct_CC"; then
9071 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
9073 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9074 -for as_dir in $PATH
9077 - test -z "$as_dir" && as_dir=.
9078 - for ac_exec_ext in '' $ac_executable_extensions; do
9079 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9080 - ac_cv_prog_ac_ct_CC="cc"
9081 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9089 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
9090 -if test -n "$ac_ct_CC"; then
9091 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
9092 -echo "${ECHO_T}$ac_ct_CC" >&6
9094 - echo "$as_me:$LINENO: result: no" >&5
9095 -echo "${ECHO_T}no" >&6
9100 - CC="$ac_cv_prog_CC"
9104 -if test -z "$CC"; then
9105 - # Extract the first word of "cc", so it can be a program name with args.
9106 -set dummy cc; 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_CC+set}" = set; then
9110 - echo $ECHO_N "(cached) $ECHO_C" >&6
9112 - if test -n "$CC"; then
9113 - ac_cv_prog_CC="$CC" # Let the user override the test.
9115 - ac_prog_rejected=no
9116 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9117 -for as_dir in $PATH
9120 - test -z "$as_dir" && as_dir=.
9121 - for ac_exec_ext in '' $ac_executable_extensions; do
9122 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9123 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
9124 - ac_prog_rejected=yes
9127 - ac_cv_prog_CC="cc"
9128 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9134 -if test $ac_prog_rejected = yes; then
9135 - # We found a bogon in the path, so make sure we never use it.
9136 - set dummy $ac_cv_prog_CC
9138 - if test $@%:@ != 0; then
9139 - # We chose a different compiler from the bogus one.
9140 - # However, it has the same basename, so the bogon will be chosen
9141 - # first if we set CC to just the basename; use the full file name.
9143 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
9149 -if test -n "$CC"; then
9150 - echo "$as_me:$LINENO: result: $CC" >&5
9151 -echo "${ECHO_T}$CC" >&6
9153 - echo "$as_me:$LINENO: result: no" >&5
9154 -echo "${ECHO_T}no" >&6
9158 -if test -z "$CC"; then
9159 - if test -n "$ac_tool_prefix"; then
9162 - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
9163 -set dummy $ac_tool_prefix$ac_prog; ac_word=$2
9164 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9165 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9166 -if test "${ac_cv_prog_CC+set}" = set; then
9167 - echo $ECHO_N "(cached) $ECHO_C" >&6
9169 - if test -n "$CC"; then
9170 - ac_cv_prog_CC="$CC" # Let the user override the test.
9172 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9173 -for as_dir in $PATH
9176 - test -z "$as_dir" && as_dir=.
9177 - for ac_exec_ext in '' $ac_executable_extensions; do
9178 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9179 - ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
9180 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9189 -if test -n "$CC"; then
9190 - echo "$as_me:$LINENO: result: $CC" >&5
9191 -echo "${ECHO_T}$CC" >&6
9193 - echo "$as_me:$LINENO: result: no" >&5
9194 -echo "${ECHO_T}no" >&6
9197 - test -n "$CC" && break
9200 -if test -z "$CC"; then
9204 - # Extract the first word of "$ac_prog", so it can be a program name with args.
9205 -set dummy $ac_prog; ac_word=$2
9206 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9207 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9208 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
9209 - echo $ECHO_N "(cached) $ECHO_C" >&6
9211 - if test -n "$ac_ct_CC"; then
9212 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
9214 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9215 -for as_dir in $PATH
9218 - test -z "$as_dir" && as_dir=.
9219 - for ac_exec_ext in '' $ac_executable_extensions; do
9220 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9221 - ac_cv_prog_ac_ct_CC="$ac_prog"
9222 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9230 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
9231 -if test -n "$ac_ct_CC"; then
9232 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
9233 -echo "${ECHO_T}$ac_ct_CC" >&6
9235 - echo "$as_me:$LINENO: result: no" >&5
9236 -echo "${ECHO_T}no" >&6
9239 - test -n "$ac_ct_CC" && break
9248 -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
9249 -echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
9250 - { (exit 1); exit 1; }; }
9252 -# Provide some information about the compiler.
9253 -echo "$as_me:$LINENO:" \
9254 - "checking for C compiler version" >&5
9255 -ac_compiler=`set X $ac_compile; echo $2`
9256 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
9257 - (eval $ac_compiler --version </dev/null >&5) 2>&5
9259 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9260 - (exit $ac_status); }
9261 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
9262 - (eval $ac_compiler -v </dev/null >&5) 2>&5
9264 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9265 - (exit $ac_status); }
9266 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
9267 - (eval $ac_compiler -V </dev/null >&5) 2>&5
9269 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9270 - (exit $ac_status); }
9272 -cat >conftest.$ac_ext <<_ACEOF
9273 -#line $LINENO "configure"
9274 -#include "confdefs.h"
9284 -ac_clean_files_save=$ac_clean_files
9285 -ac_clean_files="$ac_clean_files a.out a.exe"
9286 -# Try to create an executable without -o first, disregard a.out.
9287 -# It will help us diagnose broken compilers, and finding out an intuition
9289 -echo "$as_me:$LINENO: checking for C compiler default output" >&5
9290 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
9291 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
9292 -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
9293 - (eval $ac_link_default) 2>&5
9295 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9296 - (exit $ac_status); }; then
9297 - # Find the output, starting from the most likely. This scheme is
9298 -# not robust to junk in `.', hence go to wildcards (a.*) only as a last
9301 -# Be careful to initialize this variable, since it used to be cached.
9302 -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
9304 -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.*; do
9305 - test -f "$ac_file" || continue
9307 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
9308 - a.out ) # We found the default executable, but exeext='' is most
9309 - # certainly right.
9311 - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
9312 - # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
9313 - export ac_cv_exeext
9319 - echo "$as_me: failed program was:" >&5
9320 -cat conftest.$ac_ext >&5
9321 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
9322 -check \`config.log' for details." >&5
9323 -echo "$as_me: error: C compiler cannot create executables
9324 -check \`config.log' for details." >&2;}
9325 - { (exit 77); exit 77; }; }
9328 -ac_exeext=$ac_cv_exeext
9329 -echo "$as_me:$LINENO: result: $ac_file" >&5
9330 -echo "${ECHO_T}$ac_file" >&6
9332 -# Check the compiler produces executables we can run. If not, either
9333 -# the compiler is broken, or we cross compile.
9334 -echo "$as_me:$LINENO: checking whether the C compiler works" >&5
9335 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
9336 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
9337 -# If not cross compiling, check that we can run a simple program.
9338 -if test "$cross_compiling" != yes; then
9339 - if { ac_try='./$ac_file'
9340 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9341 - (eval $ac_try) 2>&5
9343 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9344 - (exit $ac_status); }; }; then
9345 - cross_compiling=no
9347 - if test "$cross_compiling" = maybe; then
9348 - cross_compiling=yes
9350 - { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
9351 -If you meant to cross compile, use \`--host'." >&5
9352 -echo "$as_me: error: cannot run C compiled programs.
9353 -If you meant to cross compile, use \`--host'." >&2;}
9354 - { (exit 1); exit 1; }; }
9358 -echo "$as_me:$LINENO: result: yes" >&5
9359 -echo "${ECHO_T}yes" >&6
9361 -rm -f a.out a.exe conftest$ac_cv_exeext
9362 -ac_clean_files=$ac_clean_files_save
9363 -# Check the compiler produces executables we can run. If not, either
9364 -# the compiler is broken, or we cross compile.
9365 -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
9366 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
9367 -echo "$as_me:$LINENO: result: $cross_compiling" >&5
9368 -echo "${ECHO_T}$cross_compiling" >&6
9370 -echo "$as_me:$LINENO: checking for suffix of executables" >&5
9371 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
9372 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9373 - (eval $ac_link) 2>&5
9375 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9376 - (exit $ac_status); }; then
9377 - # If both `conftest.exe' and `conftest' are `present' (well, observable)
9378 -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
9379 -# work properly (i.e., refer to `conftest.exe'), while it won't with
9381 -for ac_file in conftest.exe conftest conftest.*; do
9382 - test -f "$ac_file" || continue
9384 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
9385 - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
9386 - export ac_cv_exeext
9392 - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
9393 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
9394 - { (exit 1); exit 1; }; }
9397 -rm -f conftest$ac_cv_exeext
9398 -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
9399 -echo "${ECHO_T}$ac_cv_exeext" >&6
9401 -rm -f conftest.$ac_ext
9402 -EXEEXT=$ac_cv_exeext
9404 -echo "$as_me:$LINENO: checking for suffix of object files" >&5
9405 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
9406 -if test "${ac_cv_objext+set}" = set; then
9407 - echo $ECHO_N "(cached) $ECHO_C" >&6
9409 - cat >conftest.$ac_ext <<_ACEOF
9410 -#line $LINENO "configure"
9411 -#include "confdefs.h"
9421 -rm -f conftest.o conftest.obj
9422 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9423 - (eval $ac_compile) 2>&5
9425 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9426 - (exit $ac_status); }; then
9427 - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
9429 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
9430 - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
9435 - echo "$as_me: failed program was:" >&5
9436 -cat conftest.$ac_ext >&5
9437 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
9438 -echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
9439 - { (exit 1); exit 1; }; }
9442 -rm -f conftest.$ac_cv_objext conftest.$ac_ext
9444 -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
9445 -echo "${ECHO_T}$ac_cv_objext" >&6
9446 -OBJEXT=$ac_cv_objext
9448 -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
9449 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
9450 -if test "${ac_cv_c_compiler_gnu+set}" = set; then
9451 - echo $ECHO_N "(cached) $ECHO_C" >&6
9453 - cat >conftest.$ac_ext <<_ACEOF
9454 -#line $LINENO "configure"
9455 -#include "confdefs.h"
9468 -rm -f conftest.$ac_objext
9469 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9470 - (eval $ac_compile) 2>&5
9472 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9473 - (exit $ac_status); } &&
9474 - { ac_try='test -s conftest.$ac_objext'
9475 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9476 - (eval $ac_try) 2>&5
9478 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9479 - (exit $ac_status); }; }; then
9480 - ac_compiler_gnu=yes
9482 - echo "$as_me: failed program was:" >&5
9483 -cat conftest.$ac_ext >&5
9486 -rm -f conftest.$ac_objext conftest.$ac_ext
9487 -ac_cv_c_compiler_gnu=$ac_compiler_gnu
9490 -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
9491 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
9492 -GCC=`test $ac_compiler_gnu = yes && echo yes`
9493 -ac_test_CFLAGS=${CFLAGS+set}
9494 -ac_save_CFLAGS=$CFLAGS
9496 -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
9497 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
9498 -if test "${ac_cv_prog_cc_g+set}" = set; then
9499 - echo $ECHO_N "(cached) $ECHO_C" >&6
9501 - cat >conftest.$ac_ext <<_ACEOF
9502 -#line $LINENO "configure"
9503 -#include "confdefs.h"
9513 -rm -f conftest.$ac_objext
9514 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9515 - (eval $ac_compile) 2>&5
9517 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9518 - (exit $ac_status); } &&
9519 - { ac_try='test -s conftest.$ac_objext'
9520 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9521 - (eval $ac_try) 2>&5
9523 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9524 - (exit $ac_status); }; }; then
9525 - ac_cv_prog_cc_g=yes
9527 - echo "$as_me: failed program was:" >&5
9528 -cat conftest.$ac_ext >&5
9531 -rm -f conftest.$ac_objext conftest.$ac_ext
9533 -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
9534 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
9535 -if test "$ac_test_CFLAGS" = set; then
9536 - CFLAGS=$ac_save_CFLAGS
9537 -elif test $ac_cv_prog_cc_g = yes; then
9538 - if test "$GCC" = yes; then
9544 - if test "$GCC" = yes; then
9550 -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
9551 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
9552 -if test "${ac_cv_prog_cc_stdc+set}" = set; then
9553 - echo $ECHO_N "(cached) $ECHO_C" >&6
9555 - ac_cv_prog_cc_stdc=no
9557 -cat >conftest.$ac_ext <<_ACEOF
9558 -#line $LINENO "configure"
9559 -#include "confdefs.h"
9560 -#include <stdarg.h>
9562 -#include <sys/types.h>
9563 -#include <sys/stat.h>
9564 -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
9565 -struct buf { int x; };
9566 -FILE * (*rcsopen) (struct buf *, struct stat *, int);
9567 -static char *e (p, i)
9573 -static char *f (char * (*g) (char **, int), char **p, ...)
9578 - s = g (p, va_arg (v,int));
9582 -int test (int i, double x);
9583 -struct s1 {int (*f) (int a);};
9584 -struct s2 {int (*f) (double a);};
9585 -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
9591 -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
9596 -# Don't try gcc -ansi; that turns off useful extensions and
9597 -# breaks some systems' header files.
9598 -# AIX -qlanglvl=ansi
9599 -# Ultrix and OSF/1 -std1
9600 -# HP-UX 10.20 and later -Ae
9601 -# HP-UX older versions -Aa -D_HPUX_SOURCE
9602 -# SVR4 -Xc -D__EXTENSIONS__
9603 -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
9605 - CC="$ac_save_CC $ac_arg"
9606 - rm -f conftest.$ac_objext
9607 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9608 - (eval $ac_compile) 2>&5
9610 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9611 - (exit $ac_status); } &&
9612 - { ac_try='test -s conftest.$ac_objext'
9613 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9614 - (eval $ac_try) 2>&5
9616 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9617 - (exit $ac_status); }; }; then
9618 - ac_cv_prog_cc_stdc=$ac_arg
9621 - echo "$as_me: failed program was:" >&5
9622 -cat conftest.$ac_ext >&5
9624 -rm -f conftest.$ac_objext
9626 -rm -f conftest.$ac_ext conftest.$ac_objext
9631 -case "x$ac_cv_prog_cc_stdc" in
9633 - echo "$as_me:$LINENO: result: none needed" >&5
9634 -echo "${ECHO_T}none needed" >&6 ;;
9636 - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
9637 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
9638 - CC="$CC $ac_cv_prog_cc_stdc" ;;
9641 -# Some people use a C++ compiler to compile C. Since we use `exit',
9642 -# in C++ we need to declare it. In case someone uses the same compiler
9643 -# for both compiling C and C++ we need to have the C++ compiler decide
9644 -# the declaration of exit, since it's the most demanding environment.
9645 -cat >conftest.$ac_ext <<_ACEOF
9646 -@%:@ifndef __cplusplus
9650 -rm -f conftest.$ac_objext
9651 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9652 - (eval $ac_compile) 2>&5
9654 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9655 - (exit $ac_status); } &&
9656 - { ac_try='test -s conftest.$ac_objext'
9657 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9658 - (eval $ac_try) 2>&5
9660 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9661 - (exit $ac_status); }; }; then
9662 - for ac_declaration in \
9664 - '#include <stdlib.h>' \
9665 - 'extern "C" void std::exit (int) throw (); using std::exit;' \
9666 - 'extern "C" void std::exit (int); using std::exit;' \
9667 - 'extern "C" void exit (int) throw ();' \
9668 - 'extern "C" void exit (int);' \
9669 - 'void exit (int);'
9671 - cat >conftest.$ac_ext <<_ACEOF
9672 -#line $LINENO "configure"
9673 -#include "confdefs.h"
9674 -@%:@include <stdlib.h>
9684 -rm -f conftest.$ac_objext
9685 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9686 - (eval $ac_compile) 2>&5
9688 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9689 - (exit $ac_status); } &&
9690 - { ac_try='test -s conftest.$ac_objext'
9691 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9692 - (eval $ac_try) 2>&5
9694 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9695 - (exit $ac_status); }; }; then
9698 - echo "$as_me: failed program was:" >&5
9699 -cat conftest.$ac_ext >&5
9702 -rm -f conftest.$ac_objext conftest.$ac_ext
9703 - cat >conftest.$ac_ext <<_ACEOF
9704 -#line $LINENO "configure"
9705 -#include "confdefs.h"
9715 -rm -f conftest.$ac_objext
9716 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9717 - (eval $ac_compile) 2>&5
9719 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9720 - (exit $ac_status); } &&
9721 - { ac_try='test -s conftest.$ac_objext'
9722 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9723 - (eval $ac_try) 2>&5
9725 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9726 - (exit $ac_status); }; }; then
9729 - echo "$as_me: failed program was:" >&5
9730 -cat conftest.$ac_ext >&5
9732 -rm -f conftest.$ac_objext conftest.$ac_ext
9735 -if test -n "$ac_declaration"; then
9736 - echo '#ifdef __cplusplus' >>confdefs.h
9737 - echo $ac_declaration >>confdefs.h
9738 - echo '#endif' >>confdefs.h
9742 - echo "$as_me: failed program was:" >&5
9743 -cat conftest.$ac_ext >&5
9745 -rm -f conftest.$ac_objext conftest.$ac_ext
9747 -ac_cpp='$CPP $CPPFLAGS'
9748 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
9749 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
9750 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
9752 -depcc="$CC" am_compiler_list=
9754 -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
9755 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
9756 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
9757 - echo $ECHO_N "(cached) $ECHO_C" >&6
9759 - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
9760 - # We make a subdir and do the tests there. Otherwise we can end up
9761 - # making bogus files that we don't know about and never remove. For
9762 - # instance it was reported that on HP-UX the gcc test will end up
9763 - # making a dummy file named `D' -- because `-MD' means `put the output
9765 - mkdir conftest.dir
9766 - # Copy depcomp to subdir because otherwise we won't find it if we're
9767 - # using a relative directory.
9768 - cp "$am_depcomp" conftest.dir
9771 - am_cv_CC_dependencies_compiler_type=none
9772 - if test "$am_compiler_list" = ""; then
9773 - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
9775 - for depmode in $am_compiler_list; do
9776 - # We need to recreate these files for each test, as the compiler may
9777 - # overwrite some of them when testing with obscure command lines.
9778 - # This happens at least with the AIX C compiler.
9779 - echo '#include "conftest.h"' > conftest.c
9780 - echo 'int i;' > conftest.h
9781 - echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
9785 - # after this tag, mechanisms are not by side-effect, so they'll
9786 - # only be used when explicitly requested
9787 - if test "x$enable_dependency_tracking" = xyes; then
9795 - # We check with `-c' and `-o' for the sake of the "dashmstdout"
9796 - # mode. It turns out that the SunPro C++ compiler does not properly
9797 - # handle `-M -o', and we need to detect this.
9798 - if depmode=$depmode \
9799 - source=conftest.c object=conftest.o \
9800 - depfile=conftest.Po tmpdepfile=conftest.TPo \
9801 - $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
9802 - grep conftest.h conftest.Po > /dev/null 2>&1 &&
9803 - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
9804 - am_cv_CC_dependencies_compiler_type=$depmode
9810 - rm -rf conftest.dir
9812 - am_cv_CC_dependencies_compiler_type=none
9816 -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
9817 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
9818 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
9821 -# Find the correct PATH separator. Usually this is `:', but
9822 -# DJGPP uses `;' like DOS.
9823 -if test "X${PATH_SEPARATOR+set}" != Xset; then
9824 - UNAME=${UNAME-`uname 2>/dev/null`}
9826 - *-DOS) lt_cv_sys_path_separator=';' ;;
9827 - *) lt_cv_sys_path_separator=':' ;;
9829 - PATH_SEPARATOR=$lt_cv_sys_path_separator
9833 -# Check whether --with-gnu-ld or --without-gnu-ld was given.
9834 -if test "${with_gnu_ld+set}" = set; then
9835 - withval="$with_gnu_ld"
9836 - test "$withval" = no || with_gnu_ld=yes
9841 -if test "$GCC" = yes; then
9842 - # Check if gcc -print-prog-name=ld gives a path.
9843 - echo "$as_me:$LINENO: checking for ld used by GCC" >&5
9844 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
9847 - # gcc leaves a trailing carriage return which upsets mingw
9848 - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
9850 - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
9853 - # Accept absolute paths.
9854 - [\\/]* | [A-Za-z]:[\\/]*)
9855 - re_direlt='/[^/][^/]*/\.\./'
9856 - # Canonicalize the path of ld
9857 - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
9858 - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
9859 - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
9861 - test -z "$LD" && LD="$ac_prog"
9864 - # If it fails, then pretend we aren't using GCC.
9868 - # If it is relative, then search for the first ld in PATH.
9869 - with_gnu_ld=unknown
9872 -elif test "$with_gnu_ld" = yes; then
9873 - echo "$as_me:$LINENO: checking for GNU ld" >&5
9874 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
9876 - echo "$as_me:$LINENO: checking for non-GNU ld" >&5
9877 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
9879 -if test "${lt_cv_path_LD+set}" = set; then
9880 - echo $ECHO_N "(cached) $ECHO_C" >&6
9882 - if test -z "$LD"; then
9883 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
9884 - for ac_dir in $PATH; do
9885 - test -z "$ac_dir" && ac_dir=.
9886 - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
9887 - lt_cv_path_LD="$ac_dir/$ac_prog"
9888 - # Check to see if the program is GNU ld. I'd rather use --version,
9889 - # but apparently some GNU ld's only accept -v.
9890 - # Break only if it was the GNU/non-GNU ld that we prefer.
9891 - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
9892 - test "$with_gnu_ld" != no && break
9894 - test "$with_gnu_ld" != yes && break
9898 - IFS="$ac_save_ifs"
9900 - lt_cv_path_LD="$LD" # Let the user override the test with a path.
9904 -LD="$lt_cv_path_LD"
9905 -if test -n "$LD"; then
9906 - echo "$as_me:$LINENO: result: $LD" >&5
9907 -echo "${ECHO_T}$LD" >&6
9909 - echo "$as_me:$LINENO: result: no" >&5
9910 -echo "${ECHO_T}no" >&6
9912 -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
9913 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
9914 - { (exit 1); exit 1; }; }
9915 -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
9916 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
9917 -if test "${lt_cv_prog_gnu_ld+set}" = set; then
9918 - echo $ECHO_N "(cached) $ECHO_C" >&6
9920 - # I'd rather use --version here, but apparently some GNU ld's only accept -v.
9921 -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
9922 - lt_cv_prog_gnu_ld=yes
9924 - lt_cv_prog_gnu_ld=no
9927 -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
9928 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
9929 -with_gnu_ld=$lt_cv_prog_gnu_ld
9932 -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
9933 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
9934 -if test "${lt_cv_ld_reload_flag+set}" = set; then
9935 - echo $ECHO_N "(cached) $ECHO_C" >&6
9937 - lt_cv_ld_reload_flag='-r'
9939 -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
9940 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
9941 -reload_flag=$lt_cv_ld_reload_flag
9942 -test -n "$reload_flag" && reload_flag=" $reload_flag"
9944 -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
9945 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
9946 -if test "${lt_cv_path_NM+set}" = set; then
9947 - echo $ECHO_N "(cached) $ECHO_C" >&6
9949 - if test -n "$NM"; then
9950 - # Let the user override the test.
9951 - lt_cv_path_NM="$NM"
9953 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
9954 - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
9955 - test -z "$ac_dir" && ac_dir=.
9956 - tmp_nm=$ac_dir/${ac_tool_prefix}nm
9957 - if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
9958 - # Check to see if the nm accepts a BSD-compat flag.
9959 - # Adding the `sed 1q' prevents false positives on HP-UX, which says:
9960 - # nm: unknown option "B" ignored
9961 - # Tru64's nm complains that /dev/null is an invalid object file
9962 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
9963 - lt_cv_path_NM="$tmp_nm -B"
9965 - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
9966 - lt_cv_path_NM="$tmp_nm -p"
9969 - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
9970 - continue # so that we can try to find one that supports BSD flags
9974 - IFS="$ac_save_ifs"
9975 - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
9979 -NM="$lt_cv_path_NM"
9980 -echo "$as_me:$LINENO: result: $NM" >&5
9981 -echo "${ECHO_T}$NM" >&6
9983 -echo "$as_me:$LINENO: checking whether ln -s works" >&5
9984 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
9986 -if test "$LN_S" = "ln -s"; then
9987 - echo "$as_me:$LINENO: result: yes" >&5
9988 -echo "${ECHO_T}yes" >&6
9990 - echo "$as_me:$LINENO: result: no, using $LN_S" >&5
9991 -echo "${ECHO_T}no, using $LN_S" >&6
9994 -echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5
9995 -echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
9996 -if test "${lt_cv_deplibs_check_method+set}" = set; then
9997 - echo $ECHO_N "(cached) $ECHO_C" >&6
9999 - lt_cv_file_magic_cmd='$MAGIC_CMD'
10000 -lt_cv_file_magic_test_file=
10001 -lt_cv_deplibs_check_method='unknown'
10002 -# Need to set the preceding variable on all platforms that support
10003 -# interlibrary dependencies.
10004 -# 'none' -- dependencies not supported.
10005 -# `unknown' -- same as none, but documents that we really don't know.
10006 -# 'pass_all' -- all dependencies passed with no checks.
10007 -# 'test_compile' -- check by making test program.
10008 -# 'file_magic [[regex]]' -- check by looking for files in library path
10009 -# which responds to the $file_magic_cmd with a given egrep regex.
10010 -# If you have `file' or equivalent on your system and you're not sure
10011 -# whether `pass_all' will *always* work, you probably want this one.
10015 - lt_cv_deplibs_check_method=pass_all
10019 - lt_cv_deplibs_check_method=pass_all
10023 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
10024 - lt_cv_file_magic_cmd='/usr/bin/file -L'
10025 - lt_cv_file_magic_test_file=/shlib/libc.so
10028 -cygwin* | mingw* | pw32*)
10029 - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
10030 - lt_cv_file_magic_cmd='$OBJDUMP -f'
10033 -darwin* | rhapsody*)
10034 - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
10035 - lt_cv_file_magic_cmd='/usr/bin/file -L'
10036 - case "$host_os" in
10037 - rhapsody* | darwin1.[012])
10038 - lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
10040 - *) # Darwin 1.3 on
10041 - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
10047 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
10048 - case $host_cpu in
10050 - # Not sure whether the presence of OpenBSD here was a mistake.
10051 - # Let's accept both of them until this is cleared up.
10052 - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
10053 - lt_cv_file_magic_cmd=/usr/bin/file
10054 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
10058 - lt_cv_deplibs_check_method=pass_all
10063 - lt_cv_deplibs_check_method=pass_all
10066 -hpux10.20*|hpux11*)
10067 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
10068 - lt_cv_file_magic_cmd=/usr/bin/file
10069 - lt_cv_file_magic_test_file=/usr/lib/libc.sl
10075 - # this will be overridden with pass_all, but let us keep it just in case
10076 - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
10080 - *-32|*"-32 ") libmagic=32-bit;;
10081 - *-n32|*"-n32 ") libmagic=N32;;
10082 - *-64|*"-64 ") libmagic=64-bit;;
10083 - *) libmagic=never-match;;
10085 - # this will be overridden with pass_all, but let us keep it just in case
10086 - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
10089 - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
10090 - lt_cv_deplibs_check_method=pass_all
10093 -# This must be Linux ELF.
10095 - case $host_cpu in
10096 - alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
10097 - lt_cv_deplibs_check_method=pass_all ;;
10099 - # glibc up to 2.1.1 does not perform some relocations on ARM
10100 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
10102 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
10106 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
10107 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
10109 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
10114 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
10115 - lt_cv_file_magic_cmd=/usr/bin/file
10116 - lt_cv_file_magic_test_file=/usr/lib/libnls.so
10120 - lt_cv_file_magic_cmd=/usr/bin/file
10121 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
10122 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
10123 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
10125 - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
10129 -osf3* | osf4* | osf5*)
10130 - # this will be overridden with pass_all, but let us keep it just in case
10131 - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
10132 - lt_cv_file_magic_test_file=/shlib/libc.so
10133 - lt_cv_deplibs_check_method=pass_all
10137 - lt_cv_deplibs_check_method=pass_all
10141 - lt_cv_deplibs_check_method=pass_all
10142 - lt_cv_file_magic_test_file=/lib/libc.so
10145 -sysv5uw[78]* | sysv4*uw2*)
10146 - lt_cv_deplibs_check_method=pass_all
10149 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
10150 - case $host_vendor in
10152 - 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]'
10153 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
10156 - lt_cv_deplibs_check_method=pass_all
10159 - lt_cv_file_magic_cmd='/bin/file'
10160 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
10163 - lt_cv_file_magic_cmd='/bin/file'
10164 - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
10165 - lt_cv_file_magic_test_file=/lib/libc.so
10172 -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
10173 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
10174 -file_magic_cmd=$lt_cv_file_magic_cmd
10175 -deplibs_check_method=$lt_cv_deplibs_check_method
10183 -# Check for command to grab the raw symbol name followed by C symbol from nm.
10184 -echo "$as_me:$LINENO: checking command to parse $NM output" >&5
10185 -echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6
10186 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
10187 - echo $ECHO_N "(cached) $ECHO_C" >&6
10190 -# These are sane defaults that work on at least a few old systems.
10191 -# [They come from Ultrix. What could be older than Ultrix?!! ;)]
10193 -# Character class describing NM global symbol codes.
10194 -symcode='[BCDEGRST]'
10196 -# Regexp to match symbols that can be accessed directly from C.
10197 -sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
10199 -# Transform the above into a raw symbol and a C symbol.
10200 -symxfrm='\1 \2\3 \3'
10202 -# Transform an extracted symbol line into a proper C declaration
10203 -lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
10205 -# Transform an extracted symbol line into symbol name and symbol address
10206 -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'"
10208 -# Define system-specific variables.
10213 -cygwin* | mingw* | pw32*)
10214 - symcode='[ABCDGISTW]'
10216 -hpux*) # Its linker distinguishes data from code symbols
10217 - lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
10218 - 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'"
10221 - symcode='[BCDEGRST]'
10223 -solaris* | sysv5*)
10227 - symcode='[DFNSTU]'
10231 -# Handle CRLF in mingw tool chain
10235 - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
10239 -# If we're using GNU nm, then use its standard symbol codes.
10240 -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
10241 - symcode='[ABCDGISTW]'
10244 -# Try without a prefix undercore, then with it.
10245 -for ac_symprfx in "" "_"; do
10247 - # Write the raw and C identifiers.
10248 -lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
10250 - # Check to see that the pipe works correctly.
10253 - cat > conftest.$ac_ext <<EOF
10254 -#ifdef __cplusplus
10258 -void nm_test_func(){}
10259 -#ifdef __cplusplus
10262 -int main(){nm_test_var='a';nm_test_func();return(0);}
10265 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10266 - (eval $ac_compile) 2>&5
10268 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10269 - (exit $ac_status); }; then
10270 - # Now try to grab the symbols.
10271 - nlist=conftest.nm
10272 - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
10273 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
10275 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10276 - (exit $ac_status); } && test -s "$nlist"; then
10277 - # Try sorting and uniquifying the output.
10278 - if sort "$nlist" | uniq > "$nlist"T; then
10279 - mv -f "$nlist"T "$nlist"
10284 - # Make sure that we snagged all the symbols we need.
10285 - if egrep ' nm_test_var$' "$nlist" >/dev/null; then
10286 - if egrep ' nm_test_func$' "$nlist" >/dev/null; then
10287 - cat <<EOF > conftest.$ac_ext
10288 -#ifdef __cplusplus
10293 - # Now generate the symbol file.
10294 - eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
10296 - cat <<EOF >> conftest.$ac_ext
10297 -#if defined (__STDC__) && __STDC__
10298 -# define lt_ptr void *
10300 -# define lt_ptr char *
10304 -/* The mapping between symbol names and symbols. */
10306 - const char *name;
10309 -lt_preloaded_symbols[] =
10312 - sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
10313 - cat <<\EOF >> conftest.$ac_ext
10317 -#ifdef __cplusplus
10321 - # Now try linking the two files.
10322 - mv conftest.$ac_objext conftstm.$ac_objext
10323 - save_LIBS="$LIBS"
10324 - save_CFLAGS="$CFLAGS"
10325 - LIBS="conftstm.$ac_objext"
10326 - CFLAGS="$CFLAGS$no_builtin_flag"
10327 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10328 - (eval $ac_link) 2>&5
10330 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10331 - (exit $ac_status); } && test -s conftest; then
10334 - LIBS="$save_LIBS"
10335 - CFLAGS="$save_CFLAGS"
10337 - echo "cannot find nm_test_func in $nlist" >&5
10340 - echo "cannot find nm_test_var in $nlist" >&5
10343 - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
10346 - echo "$progname: failed program was:" >&5
10347 - cat conftest.$ac_ext >&5
10349 - rm -f conftest* conftst*
10351 - # Do not use the global_symbol_pipe unless it works.
10352 - if test "$pipe_works" = yes; then
10355 - lt_cv_sys_global_symbol_pipe=
10361 -global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
10362 -if test -z "$lt_cv_sys_global_symbol_pipe"; then
10363 - global_symbol_to_cdecl=
10364 - global_symbol_to_c_name_address=
10366 - global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
10367 - global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
10369 -if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
10371 - echo "$as_me:$LINENO: result: failed" >&5
10372 -echo "${ECHO_T}failed" >&6
10374 - echo "$as_me:$LINENO: result: ok" >&5
10375 -echo "${ECHO_T}ok" >&6
10379 -ac_cpp='$CPP $CPPFLAGS'
10380 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10381 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10382 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
10383 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
10384 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
10385 -# On Suns, sometimes $CPP names a directory.
10386 -if test -n "$CPP" && test -d "$CPP"; then
10389 -if test -z "$CPP"; then
10390 - if test "${ac_cv_prog_CPP+set}" = set; then
10391 - echo $ECHO_N "(cached) $ECHO_C" >&6
10393 - # Double quotes because CPP needs to be expanded
10394 - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
10396 - ac_preproc_ok=false
10397 -for ac_c_preproc_warn_flag in '' yes
10399 - # Use a header file that comes with gcc, so configuring glibc
10400 - # with a fresh cross-compiler works.
10401 - # On the NeXT, cc -E runs the code through the compiler's parser,
10402 - # not just through cpp. "Syntax error" is here to catch this case.
10403 - cat >conftest.$ac_ext <<_ACEOF
10404 -#line $LINENO "configure"
10405 -#include "confdefs.h"
10406 -@%:@include <assert.h>
10409 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10410 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10412 - grep -v '^ *+' conftest.er1 >conftest.err
10413 - rm -f conftest.er1
10414 - cat conftest.err >&5
10415 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10416 - (exit $ac_status); } >/dev/null; then
10417 - if test -s conftest.err; then
10418 - ac_cpp_err=$ac_c_preproc_warn_flag
10425 -if test -z "$ac_cpp_err"; then
10428 - echo "$as_me: failed program was:" >&5
10429 - cat conftest.$ac_ext >&5
10430 - # Broken: fails on valid input.
10433 -rm -f conftest.err conftest.$ac_ext
10435 - # OK, works on sane cases. Now check whether non-existent headers
10436 - # can be detected and how.
10437 - cat >conftest.$ac_ext <<_ACEOF
10438 -#line $LINENO "configure"
10439 -#include "confdefs.h"
10440 -@%:@include <ac_nonexistent.h>
10442 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10443 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10445 - grep -v '^ *+' conftest.er1 >conftest.err
10446 - rm -f conftest.er1
10447 - cat conftest.err >&5
10448 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10449 - (exit $ac_status); } >/dev/null; then
10450 - if test -s conftest.err; then
10451 - ac_cpp_err=$ac_c_preproc_warn_flag
10458 -if test -z "$ac_cpp_err"; then
10459 - # Broken: success on invalid input.
10462 - echo "$as_me: failed program was:" >&5
10463 - cat conftest.$ac_ext >&5
10464 - # Passes both tests.
10468 -rm -f conftest.err conftest.$ac_ext
10471 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
10472 -rm -f conftest.err conftest.$ac_ext
10473 -if $ac_preproc_ok; then
10478 - ac_cv_prog_CPP=$CPP
10481 - CPP=$ac_cv_prog_CPP
10483 - ac_cv_prog_CPP=$CPP
10485 -echo "$as_me:$LINENO: result: $CPP" >&5
10486 -echo "${ECHO_T}$CPP" >&6
10487 -ac_preproc_ok=false
10488 -for ac_c_preproc_warn_flag in '' yes
10490 - # Use a header file that comes with gcc, so configuring glibc
10491 - # with a fresh cross-compiler works.
10492 - # On the NeXT, cc -E runs the code through the compiler's parser,
10493 - # not just through cpp. "Syntax error" is here to catch this case.
10494 - cat >conftest.$ac_ext <<_ACEOF
10495 -#line $LINENO "configure"
10496 -#include "confdefs.h"
10497 -@%:@include <assert.h>
10500 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10501 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10503 - grep -v '^ *+' conftest.er1 >conftest.err
10504 - rm -f conftest.er1
10505 - cat conftest.err >&5
10506 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10507 - (exit $ac_status); } >/dev/null; then
10508 - if test -s conftest.err; then
10509 - ac_cpp_err=$ac_c_preproc_warn_flag
10516 -if test -z "$ac_cpp_err"; then
10519 - echo "$as_me: failed program was:" >&5
10520 - cat conftest.$ac_ext >&5
10521 - # Broken: fails on valid input.
10524 -rm -f conftest.err conftest.$ac_ext
10526 - # OK, works on sane cases. Now check whether non-existent headers
10527 - # can be detected and how.
10528 - cat >conftest.$ac_ext <<_ACEOF
10529 -#line $LINENO "configure"
10530 -#include "confdefs.h"
10531 -@%:@include <ac_nonexistent.h>
10533 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10534 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10536 - grep -v '^ *+' conftest.er1 >conftest.err
10537 - rm -f conftest.er1
10538 - cat conftest.err >&5
10539 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10540 - (exit $ac_status); } >/dev/null; then
10541 - if test -s conftest.err; then
10542 - ac_cpp_err=$ac_c_preproc_warn_flag
10549 -if test -z "$ac_cpp_err"; then
10550 - # Broken: success on invalid input.
10553 - echo "$as_me: failed program was:" >&5
10554 - cat conftest.$ac_ext >&5
10555 - # Passes both tests.
10559 -rm -f conftest.err conftest.$ac_ext
10562 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
10563 -rm -f conftest.err conftest.$ac_ext
10564 -if $ac_preproc_ok; then
10567 - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
10568 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
10569 - { (exit 1); exit 1; }; }
10573 -ac_cpp='$CPP $CPPFLAGS'
10574 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10575 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10576 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
10579 -echo "$as_me:$LINENO: checking for egrep" >&5
10580 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6
10581 -if test "${ac_cv_prog_egrep+set}" = set; then
10582 - echo $ECHO_N "(cached) $ECHO_C" >&6
10584 - if echo a | (grep -E '(a|b)') >/dev/null 2>&1
10585 - then ac_cv_prog_egrep='grep -E'
10586 - else ac_cv_prog_egrep='egrep'
10589 -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
10590 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6
10591 - EGREP=$ac_cv_prog_egrep
10594 -echo "$as_me:$LINENO: checking for ANSI C header files" >&5
10595 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
10596 -if test "${ac_cv_header_stdc+set}" = set; then
10597 - echo $ECHO_N "(cached) $ECHO_C" >&6
10599 - cat >conftest.$ac_ext <<_ACEOF
10600 -#line $LINENO "configure"
10601 -#include "confdefs.h"
10602 -#include <stdlib.h>
10603 -#include <stdarg.h>
10604 -#include <string.h>
10605 -#include <float.h>
10608 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10609 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10611 - grep -v '^ *+' conftest.er1 >conftest.err
10612 - rm -f conftest.er1
10613 - cat conftest.err >&5
10614 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10615 - (exit $ac_status); } >/dev/null; then
10616 - if test -s conftest.err; then
10617 - ac_cpp_err=$ac_c_preproc_warn_flag
10624 -if test -z "$ac_cpp_err"; then
10625 - ac_cv_header_stdc=yes
10627 - echo "$as_me: failed program was:" >&5
10628 - cat conftest.$ac_ext >&5
10629 - ac_cv_header_stdc=no
10631 -rm -f conftest.err conftest.$ac_ext
10633 -if test $ac_cv_header_stdc = yes; then
10634 - # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
10635 - cat >conftest.$ac_ext <<_ACEOF
10636 -#line $LINENO "configure"
10637 -#include "confdefs.h"
10638 -#include <string.h>
10641 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
10642 - $EGREP "memchr" >/dev/null 2>&1; then
10645 - ac_cv_header_stdc=no
10651 -if test $ac_cv_header_stdc = yes; then
10652 - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
10653 - cat >conftest.$ac_ext <<_ACEOF
10654 -#line $LINENO "configure"
10655 -#include "confdefs.h"
10656 -#include <stdlib.h>
10659 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
10660 - $EGREP "free" >/dev/null 2>&1; then
10663 - ac_cv_header_stdc=no
10669 -if test $ac_cv_header_stdc = yes; then
10670 - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
10671 - if test "$cross_compiling" = yes; then
10674 - cat >conftest.$ac_ext <<_ACEOF
10675 -#line $LINENO "configure"
10676 -#include "confdefs.h"
10677 -#include <ctype.h>
10678 -#if ((' ' & 0x0FF) == 0x020)
10679 -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
10680 -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
10682 -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
10683 - || ('j' <= (c) && (c) <= 'r') \
10684 - || ('s' <= (c) && (c) <= 'z'))
10685 -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
10688 -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
10693 - for (i = 0; i < 256; i++)
10694 - if (XOR (islower (i), ISLOWER (i))
10695 - || toupper (i) != TOUPPER (i))
10700 -rm -f conftest$ac_exeext
10701 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10702 - (eval $ac_link) 2>&5
10704 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10705 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
10706 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10707 - (eval $ac_try) 2>&5
10709 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10710 - (exit $ac_status); }; }; then
10713 - echo "$as_me: program exited with status $ac_status" >&5
10714 -echo "$as_me: failed program was:" >&5
10715 -cat conftest.$ac_ext >&5
10716 -( exit $ac_status )
10717 -ac_cv_header_stdc=no
10719 -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
10723 -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
10724 -echo "${ECHO_T}$ac_cv_header_stdc" >&6
10725 -if test $ac_cv_header_stdc = yes; then
10727 -cat >>confdefs.h <<\_ACEOF
10728 -@%:@define STDC_HEADERS 1
10733 -# On IRIX 5.3, sys/types and inttypes.h are conflicting.
10743 -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
10744 - inttypes.h stdint.h unistd.h
10746 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
10747 -echo "$as_me:$LINENO: checking for $ac_header" >&5
10748 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10749 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10750 - echo $ECHO_N "(cached) $ECHO_C" >&6
10752 - cat >conftest.$ac_ext <<_ACEOF
10753 -#line $LINENO "configure"
10754 -#include "confdefs.h"
10755 -$ac_includes_default
10757 -@%:@include <$ac_header>
10759 -rm -f conftest.$ac_objext
10760 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10761 - (eval $ac_compile) 2>&5
10763 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10764 - (exit $ac_status); } &&
10765 - { ac_try='test -s conftest.$ac_objext'
10766 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10767 - (eval $ac_try) 2>&5
10769 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10770 - (exit $ac_status); }; }; then
10771 - eval "$as_ac_Header=yes"
10773 - echo "$as_me: failed program was:" >&5
10774 -cat conftest.$ac_ext >&5
10775 -eval "$as_ac_Header=no"
10777 -rm -f conftest.$ac_objext conftest.$ac_ext
10779 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10780 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10781 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
10782 - cat >>confdefs.h <<_ACEOF
10783 -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
10792 -for ac_header in dlfcn.h
10794 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
10795 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10796 - echo "$as_me:$LINENO: checking for $ac_header" >&5
10797 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10798 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10799 - echo $ECHO_N "(cached) $ECHO_C" >&6
10801 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10802 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10804 - # Is the header compilable?
10805 -echo "$as_me:$LINENO: checking $ac_header usability" >&5
10806 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
10807 -cat >conftest.$ac_ext <<_ACEOF
10808 -#line $LINENO "configure"
10809 -#include "confdefs.h"
10810 -$ac_includes_default
10811 -@%:@include <$ac_header>
10813 -rm -f conftest.$ac_objext
10814 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10815 - (eval $ac_compile) 2>&5
10817 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10818 - (exit $ac_status); } &&
10819 - { ac_try='test -s conftest.$ac_objext'
10820 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10821 - (eval $ac_try) 2>&5
10823 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10824 - (exit $ac_status); }; }; then
10825 - ac_header_compiler=yes
10827 - echo "$as_me: failed program was:" >&5
10828 -cat conftest.$ac_ext >&5
10829 -ac_header_compiler=no
10831 -rm -f conftest.$ac_objext conftest.$ac_ext
10832 -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
10833 -echo "${ECHO_T}$ac_header_compiler" >&6
10835 -# Is the header present?
10836 -echo "$as_me:$LINENO: checking $ac_header presence" >&5
10837 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
10838 -cat >conftest.$ac_ext <<_ACEOF
10839 -#line $LINENO "configure"
10840 -#include "confdefs.h"
10841 -@%:@include <$ac_header>
10843 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10844 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10846 - grep -v '^ *+' conftest.er1 >conftest.err
10847 - rm -f conftest.er1
10848 - cat conftest.err >&5
10849 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10850 - (exit $ac_status); } >/dev/null; then
10851 - if test -s conftest.err; then
10852 - ac_cpp_err=$ac_c_preproc_warn_flag
10859 -if test -z "$ac_cpp_err"; then
10860 - ac_header_preproc=yes
10862 - echo "$as_me: failed program was:" >&5
10863 - cat conftest.$ac_ext >&5
10864 - ac_header_preproc=no
10866 -rm -f conftest.err conftest.$ac_ext
10867 -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
10868 -echo "${ECHO_T}$ac_header_preproc" >&6
10870 -# So? What about this header?
10871 -case $ac_header_compiler:$ac_header_preproc in
10873 - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
10874 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
10875 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
10876 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
10878 - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
10879 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
10880 - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
10881 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
10882 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
10883 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
10885 -echo "$as_me:$LINENO: checking for $ac_header" >&5
10886 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10887 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10888 - echo $ECHO_N "(cached) $ECHO_C" >&6
10890 - eval "$as_ac_Header=$ac_header_preproc"
10892 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10893 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10896 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
10897 - cat >>confdefs.h <<_ACEOF
10898 -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
10909 -# Only perform the check for file, if the check method requires it
10910 -case $deplibs_check_method in
10912 - if test "$file_magic_cmd" = '$MAGIC_CMD'; then
10913 - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
10914 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
10915 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
10916 - echo $ECHO_N "(cached) $ECHO_C" >&6
10918 - case $MAGIC_CMD in
10920 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
10923 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
10926 - ac_save_MAGIC_CMD="$MAGIC_CMD"
10927 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
10928 - ac_dummy="/usr/bin:$PATH"
10929 - for ac_dir in $ac_dummy; do
10930 - test -z "$ac_dir" && ac_dir=.
10931 - if test -f $ac_dir/${ac_tool_prefix}file; then
10932 - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
10933 - if test -n "$file_magic_test_file"; then
10934 - case $deplibs_check_method in
10936 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
10937 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10938 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
10939 - egrep "$file_magic_regex" > /dev/null; then
10944 -*** Warning: the command libtool uses to detect shared libraries,
10945 -*** $file_magic_cmd, produces output that libtool cannot recognize.
10946 -*** The result is that libtool may fail to recognize shared libraries
10947 -*** as such. This will affect the creation of libtool libraries that
10948 -*** depend on shared libraries, but programs linked with such libtool
10949 -*** libraries will work regardless of this problem. Nevertheless, you
10950 -*** may want to report the problem to your system manager and/or to
10951 -*** bug-libtool@gnu.org
10960 - IFS="$ac_save_ifs"
10961 - MAGIC_CMD="$ac_save_MAGIC_CMD"
10966 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10967 -if test -n "$MAGIC_CMD"; then
10968 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
10969 -echo "${ECHO_T}$MAGIC_CMD" >&6
10971 - echo "$as_me:$LINENO: result: no" >&5
10972 -echo "${ECHO_T}no" >&6
10975 -if test -z "$lt_cv_path_MAGIC_CMD"; then
10976 - if test -n "$ac_tool_prefix"; then
10977 - echo "$as_me:$LINENO: checking for file" >&5
10978 -echo $ECHO_N "checking for file... $ECHO_C" >&6
10979 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
10980 - echo $ECHO_N "(cached) $ECHO_C" >&6
10982 - case $MAGIC_CMD in
10984 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
10987 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
10990 - ac_save_MAGIC_CMD="$MAGIC_CMD"
10991 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
10992 - ac_dummy="/usr/bin:$PATH"
10993 - for ac_dir in $ac_dummy; do
10994 - test -z "$ac_dir" && ac_dir=.
10995 - if test -f $ac_dir/file; then
10996 - lt_cv_path_MAGIC_CMD="$ac_dir/file"
10997 - if test -n "$file_magic_test_file"; then
10998 - case $deplibs_check_method in
11000 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
11001 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
11002 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
11003 - egrep "$file_magic_regex" > /dev/null; then
11008 -*** Warning: the command libtool uses to detect shared libraries,
11009 -*** $file_magic_cmd, produces output that libtool cannot recognize.
11010 -*** The result is that libtool may fail to recognize shared libraries
11011 -*** as such. This will affect the creation of libtool libraries that
11012 -*** depend on shared libraries, but programs linked with such libtool
11013 -*** libraries will work regardless of this problem. Nevertheless, you
11014 -*** may want to report the problem to your system manager and/or to
11015 -*** bug-libtool@gnu.org
11024 - IFS="$ac_save_ifs"
11025 - MAGIC_CMD="$ac_save_MAGIC_CMD"
11030 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
11031 -if test -n "$MAGIC_CMD"; then
11032 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
11033 -echo "${ECHO_T}$MAGIC_CMD" >&6
11035 - echo "$as_me:$LINENO: result: no" >&5
11036 -echo "${ECHO_T}no" >&6
11048 -if test -n "$ac_tool_prefix"; then
11049 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
11050 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
11051 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11052 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11053 -if test "${ac_cv_prog_RANLIB+set}" = set; then
11054 - echo $ECHO_N "(cached) $ECHO_C" >&6
11056 - if test -n "$RANLIB"; then
11057 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
11059 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11060 -for as_dir in $PATH
11063 - test -z "$as_dir" && as_dir=.
11064 - for ac_exec_ext in '' $ac_executable_extensions; do
11065 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11066 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
11067 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11075 -RANLIB=$ac_cv_prog_RANLIB
11076 -if test -n "$RANLIB"; then
11077 - echo "$as_me:$LINENO: result: $RANLIB" >&5
11078 -echo "${ECHO_T}$RANLIB" >&6
11080 - echo "$as_me:$LINENO: result: no" >&5
11081 -echo "${ECHO_T}no" >&6
11085 -if test -z "$ac_cv_prog_RANLIB"; then
11086 - ac_ct_RANLIB=$RANLIB
11087 - # Extract the first word of "ranlib", so it can be a program name with args.
11088 -set dummy ranlib; ac_word=$2
11089 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11090 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11091 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
11092 - echo $ECHO_N "(cached) $ECHO_C" >&6
11094 - if test -n "$ac_ct_RANLIB"; then
11095 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
11097 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11098 -for as_dir in $PATH
11101 - test -z "$as_dir" && as_dir=.
11102 - for ac_exec_ext in '' $ac_executable_extensions; do
11103 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11104 - ac_cv_prog_ac_ct_RANLIB="ranlib"
11105 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11111 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
11114 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
11115 -if test -n "$ac_ct_RANLIB"; then
11116 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
11117 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
11119 - echo "$as_me:$LINENO: result: no" >&5
11120 -echo "${ECHO_T}no" >&6
11123 - RANLIB=$ac_ct_RANLIB
11125 - RANLIB="$ac_cv_prog_RANLIB"
11128 -if test -n "$ac_tool_prefix"; then
11129 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
11130 -set dummy ${ac_tool_prefix}strip; ac_word=$2
11131 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11132 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11133 -if test "${ac_cv_prog_STRIP+set}" = set; then
11134 - echo $ECHO_N "(cached) $ECHO_C" >&6
11136 - if test -n "$STRIP"; then
11137 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
11139 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11140 -for as_dir in $PATH
11143 - test -z "$as_dir" && as_dir=.
11144 - for ac_exec_ext in '' $ac_executable_extensions; do
11145 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11146 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
11147 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11155 -STRIP=$ac_cv_prog_STRIP
11156 -if test -n "$STRIP"; then
11157 - echo "$as_me:$LINENO: result: $STRIP" >&5
11158 -echo "${ECHO_T}$STRIP" >&6
11160 - echo "$as_me:$LINENO: result: no" >&5
11161 -echo "${ECHO_T}no" >&6
11165 -if test -z "$ac_cv_prog_STRIP"; then
11166 - ac_ct_STRIP=$STRIP
11167 - # Extract the first word of "strip", so it can be a program name with args.
11168 -set dummy strip; ac_word=$2
11169 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11170 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11171 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
11172 - echo $ECHO_N "(cached) $ECHO_C" >&6
11174 - if test -n "$ac_ct_STRIP"; then
11175 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
11177 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11178 -for as_dir in $PATH
11181 - test -z "$as_dir" && as_dir=.
11182 - for ac_exec_ext in '' $ac_executable_extensions; do
11183 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11184 - ac_cv_prog_ac_ct_STRIP="strip"
11185 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11191 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
11194 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
11195 -if test -n "$ac_ct_STRIP"; then
11196 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
11197 -echo "${ECHO_T}$ac_ct_STRIP" >&6
11199 - echo "$as_me:$LINENO: result: no" >&5
11200 -echo "${ECHO_T}no" >&6
11203 - STRIP=$ac_ct_STRIP
11205 - STRIP="$ac_cv_prog_STRIP"
11210 -enable_win32_dll=no
11212 -# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
11213 -if test "${enable_libtool_lock+set}" = set; then
11214 - enableval="$enable_libtool_lock"
11217 -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
11219 -# Some flags need to be propagated to the compiler or linker for good
11220 -# libtool support.
11223 - # Find out which ABI we are using.
11224 - echo '#line __oline__ "configure"' > conftest.$ac_ext
11225 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11226 - (eval $ac_compile) 2>&5
11228 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11229 - (exit $ac_status); }; then
11230 - case `/usr/bin/file conftest.$ac_objext` in
11232 - LD="${LD-ld} -32"
11235 - LD="${LD-ld} -n32"
11238 - LD="${LD-ld} -64"
11246 - # On SCO OpenServer 5, we need -belf to get full-featured binaries.
11247 - SAVE_CFLAGS="$CFLAGS"
11248 - CFLAGS="$CFLAGS -belf"
11249 - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
11250 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
11251 -if test "${lt_cv_cc_needs_belf+set}" = set; then
11252 - echo $ECHO_N "(cached) $ECHO_C" >&6
11257 -ac_cpp='$CPP $CPPFLAGS'
11258 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11259 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11260 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
11262 - cat >conftest.$ac_ext <<_ACEOF
11263 -#line $LINENO "configure"
11264 -#include "confdefs.h"
11274 -rm -f conftest.$ac_objext conftest$ac_exeext
11275 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11276 - (eval $ac_link) 2>&5
11278 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11279 - (exit $ac_status); } &&
11280 - { ac_try='test -s conftest$ac_exeext'
11281 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11282 - (eval $ac_try) 2>&5
11284 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11285 - (exit $ac_status); }; }; then
11286 - lt_cv_cc_needs_belf=yes
11288 - echo "$as_me: failed program was:" >&5
11289 -cat conftest.$ac_ext >&5
11290 -lt_cv_cc_needs_belf=no
11292 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
11294 -ac_cpp='$CPP $CPPFLAGS'
11295 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11296 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11297 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
11300 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
11301 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
11302 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then
11303 - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
11304 - CFLAGS="$SAVE_CFLAGS"
11311 -# Sed substitution that helps us do robust quoting. It backslashifies
11312 -# metacharacters that are still active within double-quoted strings.
11313 -Xsed='sed -e s/^X//'
11314 -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
11316 -# Same as above, but do not quote variable references.
11317 -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
11319 -# Sed substitution to delay expansion of an escaped shell variable in a
11320 -# double_quote_subst'ed string.
11321 -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
11326 -# Global variables:
11327 -default_ofile=libtool
11328 -can_build_shared=yes
11330 -# All known linkers require a `.a' archive for static linking (except M$VC,
11331 -# which needs '.lib').
11333 -ltmain="$ac_aux_dir/ltmain.sh"
11334 -ofile="$default_ofile"
11335 -with_gnu_ld="$lt_cv_prog_gnu_ld"
11336 -need_locks="$enable_libtool_lock"
11339 -old_CFLAGS="$CFLAGS"
11341 -# Set sane defaults for various variables
11342 -test -z "$AR" && AR=ar
11343 -test -z "$AR_FLAGS" && AR_FLAGS=cru
11344 -test -z "$AS" && AS=as
11345 -test -z "$CC" && CC=cc
11346 -test -z "$DLLTOOL" && DLLTOOL=dlltool
11347 -test -z "$LD" && LD=ld
11348 -test -z "$LN_S" && LN_S="ln -s"
11349 -test -z "$MAGIC_CMD" && MAGIC_CMD=file
11350 -test -z "$NM" && NM=nm
11351 -test -z "$OBJDUMP" && OBJDUMP=objdump
11352 -test -z "$RANLIB" && RANLIB=:
11353 -test -z "$STRIP" && STRIP=:
11354 -test -z "$ac_objext" && ac_objext=o
11356 -if test x"$host" != x"$build"; then
11357 - ac_tool_prefix=${host_alias}-
11362 -# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
11365 -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
11370 - # AIX sometimes has problems with the GCC collect2 program. For some
11371 - # reason, if we set the COLLECT_NAMES environment variable, the problems
11372 - # vanish in a puff of smoke.
11373 - if test "X${COLLECT_NAMES+set}" != Xset; then
11375 - export COLLECT_NAMES
11380 -# Determine commands to create old-style static archives.
11381 -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
11382 -old_postinstall_cmds='chmod 644 $oldlib'
11383 -old_postuninstall_cmds=
11385 -if test -n "$RANLIB"; then
11388 - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
11391 - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
11394 - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
11397 -# Allow CC to be a program name with arguments.
11401 -echo "$as_me:$LINENO: checking for objdir" >&5
11402 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6
11403 -rm -f .libs 2>/dev/null
11404 -mkdir .libs 2>/dev/null
11405 -if test -d .libs; then
11408 - # MS-DOS does not allow filenames that begin with a dot.
11411 -rmdir .libs 2>/dev/null
11412 -echo "$as_me:$LINENO: result: $objdir" >&5
11413 -echo "${ECHO_T}$objdir" >&6
11417 -# Check whether --with-pic or --without-pic was given.
11418 -if test "${with_pic+set}" = set; then
11419 - withval="$with_pic"
11420 - pic_mode="$withval"
11424 -test -z "$pic_mode" && pic_mode=default
11426 -# We assume here that the value for lt_cv_prog_cc_pic will not be cached
11427 -# in isolation, and that seeing it set (from the cache) indicates that
11428 -# the associated values are set (in the cache) correctly too.
11429 -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
11430 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
11431 -if test "${lt_cv_prog_cc_pic+set}" = set; then
11432 - echo $ECHO_N "(cached) $ECHO_C" >&6
11434 - lt_cv_prog_cc_pic=
11435 - lt_cv_prog_cc_shlib=
11436 - lt_cv_prog_cc_wl=
11437 - lt_cv_prog_cc_static=
11438 - lt_cv_prog_cc_no_builtin=
11439 - lt_cv_prog_cc_can_build_shared=$can_build_shared
11441 - if test "$GCC" = yes; then
11442 - lt_cv_prog_cc_wl='-Wl,'
11443 - lt_cv_prog_cc_static='-static'
11447 - # Below there is a dirty hack to force normal static linking with -ldl
11448 - # The problem is because libdl dynamically linked with both libc and
11449 - # libC (AIX C++ library), which obviously doesn't included in libraries
11450 - # list by gcc. This cause undefined symbols with -static flags.
11451 - # This hack allows C programs to be linked with "-static -ldl", but
11452 - # not sure about C++ programs.
11453 - lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
11456 - # FIXME: we need at least 68020 code to build shared libraries, but
11457 - # adding the `-m68020' flag to GCC prevents building anything better,
11458 - # like `-m68040'.
11459 - lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
11461 - beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
11462 - # PIC is the default for these OSes.
11464 - darwin* | rhapsody*)
11465 - # PIC is the default on this platform
11466 - # Common symbols not allowed in MH_DYLIB files
11467 - lt_cv_prog_cc_pic='-fno-common'
11469 - cygwin* | mingw* | pw32* | os2*)
11470 - # This hack is so that the source file can tell whether it is being
11471 - # built for inclusion in a dll (and should export symbols for example).
11472 - lt_cv_prog_cc_pic='-DDLL_EXPORT'
11475 - if test -d /usr/nec; then
11476 - lt_cv_prog_cc_pic=-Kconform_pic
11480 - lt_cv_prog_cc_pic='-fPIC'
11484 - # PORTME Check for PIC flags for the system compiler.
11486 - aix3* | aix4* | aix5*)
11487 - lt_cv_prog_cc_wl='-Wl,'
11488 - # All AIX code is PIC.
11489 - if test "$host_cpu" = ia64; then
11490 - # AIX 5 now supports IA64 processor
11491 - lt_cv_prog_cc_static='-Bstatic'
11493 - lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
11497 - hpux9* | hpux10* | hpux11*)
11498 - # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
11499 - lt_cv_prog_cc_wl='-Wl,'
11500 - lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
11501 - lt_cv_prog_cc_pic='+Z'
11505 - lt_cv_prog_cc_wl='-Wl,'
11506 - lt_cv_prog_cc_static='-non_shared'
11507 - # PIC (with -KPIC) is the default.
11510 - cygwin* | mingw* | pw32* | os2*)
11511 - # This hack is so that the source file can tell whether it is being
11512 - # built for inclusion in a dll (and should export symbols for example).
11513 - lt_cv_prog_cc_pic='-DDLL_EXPORT'
11517 - lt_cv_prog_cc_pic='-KPIC'
11518 - lt_cv_prog_cc_static='-Bstatic'
11521 - osf3* | osf4* | osf5*)
11522 - # All OSF/1 code is PIC.
11523 - lt_cv_prog_cc_wl='-Wl,'
11524 - lt_cv_prog_cc_static='-non_shared'
11528 - lt_cv_prog_cc_pic='-Kpic'
11529 - lt_cv_prog_cc_static='-dn'
11530 - lt_cv_prog_cc_shlib='-belf'
11534 - lt_cv_prog_cc_pic='-KPIC'
11535 - lt_cv_prog_cc_static='-Bstatic'
11536 - lt_cv_prog_cc_wl='-Wl,'
11540 - lt_cv_prog_cc_pic='-PIC'
11541 - lt_cv_prog_cc_static='-Bstatic'
11542 - lt_cv_prog_cc_wl='-Qoption ld '
11545 - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
11546 - lt_cv_prog_cc_pic='-KPIC'
11547 - lt_cv_prog_cc_static='-Bstatic'
11548 - if test "x$host_vendor" = xsni; then
11549 - lt_cv_prog_cc_wl='-LD'
11551 - lt_cv_prog_cc_wl='-Wl,'
11556 - lt_cv_prog_cc_pic='-pic'
11557 - lt_cv_prog_cc_static='-Bstatic'
11561 - if test -d /usr/nec ;then
11562 - lt_cv_prog_cc_pic='-Kconform_pic'
11563 - lt_cv_prog_cc_static='-Bstatic'
11568 - lt_cv_prog_cc_can_build_shared=no
11575 -if test -z "$lt_cv_prog_cc_pic"; then
11576 - echo "$as_me:$LINENO: result: none" >&5
11577 -echo "${ECHO_T}none" >&6
11579 - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5
11580 -echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6
11582 - # Check to make sure the pic_flag actually works.
11583 - echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
11584 -echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6
11585 - if test "${lt_cv_prog_cc_pic_works+set}" = set; then
11586 - echo $ECHO_N "(cached) $ECHO_C" >&6
11588 - save_CFLAGS="$CFLAGS"
11589 - CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
11590 - cat >conftest.$ac_ext <<_ACEOF
11591 -#line $LINENO "configure"
11592 -#include "confdefs.h"
11602 -rm -f conftest.$ac_objext
11603 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11604 - (eval $ac_compile) 2>&5
11606 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11607 - (exit $ac_status); } &&
11608 - { ac_try='test -s conftest.$ac_objext'
11609 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11610 - (eval $ac_try) 2>&5
11612 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11613 - (exit $ac_status); }; }; then
11615 - hpux9* | hpux10* | hpux11*)
11616 - # On HP-UX, both CC and GCC only warn that PIC is supported... then
11617 - # they create non-PIC objects. So, if there were any warnings, we
11618 - # assume that PIC is not supported.
11619 - if test -s conftest.err; then
11620 - lt_cv_prog_cc_pic_works=no
11622 - lt_cv_prog_cc_pic_works=yes
11626 - lt_cv_prog_cc_pic_works=yes
11631 - echo "$as_me: failed program was:" >&5
11632 -cat conftest.$ac_ext >&5
11633 - lt_cv_prog_cc_pic_works=no
11636 -rm -f conftest.$ac_objext conftest.$ac_ext
11637 - CFLAGS="$save_CFLAGS"
11642 - if test "X$lt_cv_prog_cc_pic_works" = Xno; then
11643 - lt_cv_prog_cc_pic=
11644 - lt_cv_prog_cc_can_build_shared=no
11646 - lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
11649 - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5
11650 -echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6
11653 -# Check for any special shared library compilation flags.
11654 -if test -n "$lt_cv_prog_cc_shlib"; then
11655 - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5
11656 -echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;}
11657 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then :
11659 - { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
11660 -echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
11661 - lt_cv_prog_cc_can_build_shared=no
11665 -echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
11666 -echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6
11667 -if test "${lt_cv_prog_cc_static_works+set}" = set; then
11668 - echo $ECHO_N "(cached) $ECHO_C" >&6
11670 - lt_cv_prog_cc_static_works=no
11671 - save_LDFLAGS="$LDFLAGS"
11672 - LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
11673 - cat >conftest.$ac_ext <<_ACEOF
11674 -#line $LINENO "configure"
11675 -#include "confdefs.h"
11685 -rm -f conftest.$ac_objext conftest$ac_exeext
11686 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11687 - (eval $ac_link) 2>&5
11689 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11690 - (exit $ac_status); } &&
11691 - { ac_try='test -s conftest$ac_exeext'
11692 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11693 - (eval $ac_try) 2>&5
11695 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11696 - (exit $ac_status); }; }; then
11697 - lt_cv_prog_cc_static_works=yes
11699 - echo "$as_me: failed program was:" >&5
11700 -cat conftest.$ac_ext >&5
11702 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
11703 - LDFLAGS="$save_LDFLAGS"
11708 -# Belt *and* braces to stop my trousers falling down:
11709 -test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
11710 -echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5
11711 -echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6
11713 -pic_flag="$lt_cv_prog_cc_pic"
11714 -special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
11715 -wl="$lt_cv_prog_cc_wl"
11716 -link_static_flag="$lt_cv_prog_cc_static"
11717 -no_builtin_flag="$lt_cv_prog_cc_no_builtin"
11718 -can_build_shared="$lt_cv_prog_cc_can_build_shared"
11721 -# Check to see if options -o and -c are simultaneously supported by compiler
11722 -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
11723 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
11724 -if test "${lt_cv_compiler_c_o+set}" = set; then
11725 - echo $ECHO_N "(cached) $ECHO_C" >&6
11728 -$rm -r conftest 2>/dev/null
11731 -echo "int some_variable = 0;" > conftest.$ac_ext
11733 -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
11734 -# that will create temporary files in the current directory regardless of
11735 -# the output directory. Thus, making CWD read-only will cause this test
11736 -# to fail, enabling locking or at least warning the user not to do parallel
11739 -save_CFLAGS="$CFLAGS"
11740 -CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
11742 -if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
11743 - # The compiler can only warn and ignore the option if not recognized
11744 - # So say no if there are warnings
11745 - if test -s out/conftest.err; then
11746 - lt_cv_compiler_c_o=no
11748 - lt_cv_compiler_c_o=yes
11751 - # Append any errors to the config.log.
11752 - cat out/conftest.err 1>&5
11753 - lt_cv_compiler_c_o=no
11755 -CFLAGS="$save_CFLAGS"
11757 -$rm conftest* out/*
11761 -$rm -r conftest 2>/dev/null
11765 -compiler_c_o=$lt_cv_compiler_c_o
11766 -echo "$as_me:$LINENO: result: $compiler_c_o" >&5
11767 -echo "${ECHO_T}$compiler_c_o" >&6
11769 -if test x"$compiler_c_o" = x"yes"; then
11770 - # Check to see if we can write to a .lo
11771 - echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5
11772 -echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6
11773 - if test "${lt_cv_compiler_o_lo+set}" = set; then
11774 - echo $ECHO_N "(cached) $ECHO_C" >&6
11777 - lt_cv_compiler_o_lo=no
11778 - save_CFLAGS="$CFLAGS"
11779 - CFLAGS="$CFLAGS -c -o conftest.lo"
11780 - save_objext="$ac_objext"
11782 - cat >conftest.$ac_ext <<_ACEOF
11783 -#line $LINENO "configure"
11784 -#include "confdefs.h"
11789 -int some_variable = 0;
11794 -rm -f conftest.$ac_objext
11795 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11796 - (eval $ac_compile) 2>&5
11798 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11799 - (exit $ac_status); } &&
11800 - { ac_try='test -s conftest.$ac_objext'
11801 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11802 - (eval $ac_try) 2>&5
11804 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11805 - (exit $ac_status); }; }; then
11806 - # The compiler can only warn and ignore the option if not recognized
11807 - # So say no if there are warnings
11808 - if test -s conftest.err; then
11809 - lt_cv_compiler_o_lo=no
11811 - lt_cv_compiler_o_lo=yes
11815 - echo "$as_me: failed program was:" >&5
11816 -cat conftest.$ac_ext >&5
11818 -rm -f conftest.$ac_objext conftest.$ac_ext
11819 - ac_objext="$save_objext"
11820 - CFLAGS="$save_CFLAGS"
11824 - compiler_o_lo=$lt_cv_compiler_o_lo
11825 - echo "$as_me:$LINENO: result: $compiler_o_lo" >&5
11826 -echo "${ECHO_T}$compiler_o_lo" >&6
11831 -# Check to see if we can do hard links to lock some files if needed
11832 -hard_links="nottested"
11833 -if test "$compiler_c_o" = no && test "$need_locks" != no; then
11834 - # do not overwrite the value of need_locks provided by the user
11835 - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
11836 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
11839 - ln conftest.a conftest.b 2>/dev/null && hard_links=no
11841 - ln conftest.a conftest.b 2>&5 || hard_links=no
11842 - ln conftest.a conftest.b 2>/dev/null && hard_links=no
11843 - echo "$as_me:$LINENO: result: $hard_links" >&5
11844 -echo "${ECHO_T}$hard_links" >&6
11845 - if test "$hard_links" = no; then
11846 - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
11847 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
11854 -if test "$GCC" = yes; then
11855 - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
11856 - echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
11857 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
11858 - echo "int some_variable = 0;" > conftest.$ac_ext
11859 - save_CFLAGS="$CFLAGS"
11860 - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
11861 - compiler_rtti_exceptions=no
11862 - cat >conftest.$ac_ext <<_ACEOF
11863 -#line $LINENO "configure"
11864 -#include "confdefs.h"
11869 -int some_variable = 0;
11874 -rm -f conftest.$ac_objext
11875 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11876 - (eval $ac_compile) 2>&5
11878 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11879 - (exit $ac_status); } &&
11880 - { ac_try='test -s conftest.$ac_objext'
11881 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11882 - (eval $ac_try) 2>&5
11884 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11885 - (exit $ac_status); }; }; then
11886 - # The compiler can only warn and ignore the option if not recognized
11887 - # So say no if there are warnings
11888 - if test -s conftest.err; then
11889 - compiler_rtti_exceptions=no
11891 - compiler_rtti_exceptions=yes
11895 - echo "$as_me: failed program was:" >&5
11896 -cat conftest.$ac_ext >&5
11898 -rm -f conftest.$ac_objext conftest.$ac_ext
11899 - CFLAGS="$save_CFLAGS"
11900 - echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5
11901 -echo "${ECHO_T}$compiler_rtti_exceptions" >&6
11903 - if test "$compiler_rtti_exceptions" = "yes"; then
11904 - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
11906 - no_builtin_flag=' -fno-builtin'
11910 -# See if the linker supports building shared libraries.
11911 -echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5
11912 -echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6
11914 -allow_undefined_flag=
11915 -no_undefined_flag=
11916 -need_lib_prefix=unknown
11917 -need_version=unknown
11918 -# when you set need_version to no, make sure it does not cause -set_version
11919 -# flags to be left without arguments
11921 -archive_expsym_cmds=
11922 -old_archive_from_new_cmds=
11923 -old_archive_from_expsyms_cmds=
11924 -export_dynamic_flag_spec=
11925 -whole_archive_flag_spec=
11926 -thread_safe_flag_spec=
11927 -hardcode_into_libs=no
11928 -hardcode_libdir_flag_spec=
11929 -hardcode_libdir_separator=
11930 -hardcode_direct=no
11931 -hardcode_minus_L=no
11932 -hardcode_shlibpath_var=unsupported
11934 -link_all_deplibs=unknown
11935 -always_export_symbols=no
11936 -export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
11937 -# include_expsyms should be a list of space-separated symbols to be *always*
11938 -# included in the symbol list
11940 -# exclude_expsyms can be an egrep regular expression of symbols to exclude
11941 -# it will be wrapped by ` (' and `)$', so one must not match beginning or
11942 -# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
11943 -# as well as any symbol that contains `d'.
11944 -exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
11945 -# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
11946 -# platforms (ab)use it in PIC code, but their linkers get confused if
11947 -# the symbol is explicitly referenced. Since portable code cannot
11948 -# rely on this symbol name, it's probably fine to never include it in
11949 -# preloaded symbol tables.
11950 -extract_expsyms_cmds=
11953 -cygwin* | mingw* | pw32*)
11954 - # FIXME: the MSVC++ port hasn't been tested in a loooong time
11955 - # When not using gcc, we currently assume that we are using
11956 - # Microsoft Visual C++.
11957 - if test "$GCC" != yes; then
11967 -if test "$with_gnu_ld" = yes; then
11968 - # If archive_cmds runs LD, not CC, wlarc should be empty
11971 - # See if GNU ld supports shared libraries.
11973 - aix3* | aix4* | aix5*)
11974 - # On AIX, the GNU linker is very broken
11975 - # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
11979 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported
11980 -*** to be unable to reliably create shared libraries on AIX.
11981 -*** Therefore, libtool is disabling shared libraries support. If you
11982 -*** really care for shared libraries, you may want to modify your PATH
11983 -*** so that a non-GNU linker is found, and then restart.
11989 - 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)'
11990 - hardcode_libdir_flag_spec='-L$libdir'
11991 - hardcode_minus_L=yes
11993 - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
11994 - # that the semantics of dynamic libraries on AmigaOS, at least up
11995 - # to version 4, is to share data among multiple programs linked
11996 - # with the same dynamic library. Since this doesn't match the
11997 - # behavior of shared libraries on other platforms, we can use
12003 - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
12004 - allow_undefined_flag=unsupported
12005 - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
12006 - # support --undefined. This deserves some investigation. FIXME
12007 - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12013 - cygwin* | mingw* | pw32*)
12014 - # hardcode_libdir_flag_spec is actually meaningless, as there is
12015 - # no search path for DLLs.
12016 - hardcode_libdir_flag_spec='-L$libdir'
12017 - allow_undefined_flag=unsupported
12018 - always_export_symbols=yes
12020 - extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
12021 - sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
12022 - test -f $output_objdir/impgen.exe || (cd $output_objdir && \
12023 - if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
12024 - else $CC -o impgen impgen.c ; fi)~
12025 - $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
12027 - old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
12029 - # cygwin and mingw dlls have different entry points and sets of symbols
12031 - # FIXME: what about values for MSVC?
12032 - dll_entry=__cygwin_dll_entry@12
12033 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
12037 - dll_entry=_DllMainCRTStartup@12
12038 - dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
12042 - # mingw and cygwin differ, and it's simplest to just exclude the union
12043 - # of the two symbol sets.
12044 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
12046 - # recent cygwin and mingw systems supply a stub DllMain which the user
12047 - # can override, but on older systems we have to supply one (in ltdll.c)
12048 - if test "x$lt_cv_need_dllmain" = "xyes"; then
12049 - ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
12050 - 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~
12051 - test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
12057 - # Extract the symbol export list from an `--export-all' def file,
12058 - # then regenerate the def file from the symbol export list, so that
12059 - # the compiled dll only exports the symbol export list.
12060 - # Be careful not to strip the DATA tag left be newer dlltools.
12061 - export_symbols_cmds="$ltdll_cmds"'
12062 - $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
12063 - sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
12065 - # If the export-symbols file already is a .def file (1st line
12066 - # is EXPORTS), use it as is.
12067 - # If DATA tags from a recent dlltool are present, honour them!
12068 - archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
12069 - cp $export_symbols $output_objdir/$soname-def;
12071 - echo EXPORTS > $output_objdir/$soname-def;
12073 - cat $export_symbols | while read symbol; do
12074 - set dummy \$symbol;
12076 - 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
12077 - *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
12079 - _lt_hint=`expr 1 + \$_lt_hint`;
12083 - $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~
12084 - $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~
12085 - $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~
12086 - $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~
12087 - $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
12091 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
12092 - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
12095 - archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12096 - archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
12100 - solaris* | sysv5*)
12101 - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
12105 -*** Warning: The releases 2.8.* of the GNU linker cannot reliably
12106 -*** create shared libraries on Solaris systems. Therefore, libtool
12107 -*** is disabling shared libraries support. We urge you to upgrade GNU
12108 -*** binutils to release 2.9.1 or newer. Another option is to modify
12109 -*** your PATH or compiler configuration so that the native linker is
12110 -*** used, and then restart.
12113 - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
12114 - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12115 - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
12122 - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12124 - hardcode_direct=yes
12125 - hardcode_shlibpath_var=no
12129 - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
12130 - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
12131 - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
12138 - if test "$ld_shlibs" = yes; then
12139 - runpath_var=LD_RUN_PATH
12140 - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
12141 - export_dynamic_flag_spec='${wl}--export-dynamic'
12143 - cygwin* | mingw* | pw32*)
12144 - # dlltool doesn't understand --whole-archive et. al.
12145 - whole_archive_flag_spec=
12148 - # ancient GNU ld didn't support --whole-archive et. al.
12149 - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
12150 - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
12152 - whole_archive_flag_spec=
12158 - # PORTME fill in a description of your system's linker (not GNU ld)
12161 - allow_undefined_flag=unsupported
12162 - always_export_symbols=yes
12163 - 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'
12164 - # Note: this linker hardcodes the directories in LIBPATH if there
12165 - # are no directories specified by -L.
12166 - hardcode_minus_L=yes
12167 - if test "$GCC" = yes && test -z "$link_static_flag"; then
12168 - # Neither direct hardcoding nor static linking is supported with a
12169 - # broken collect2.
12170 - hardcode_direct=unsupported
12175 - if test "$host_cpu" = ia64; then
12176 - # On IA64, the linker does run time linking by default, so we don't
12177 - # have to do anything special.
12178 - aix_use_runtimelinking=no
12179 - exp_sym_flag='-Bexport'
12182 - aix_use_runtimelinking=no
12184 - # Test if we are trying to use run time linking or normal
12185 - # AIX style linking. If -brtl is somewhere in LDFLAGS, we
12186 - # need to do runtime linking.
12187 - case $host_os in aix4.[23]|aix4.[23].*|aix5*)
12188 - for ld_flag in $LDFLAGS; do
12189 - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
12190 - aix_use_runtimelinking=yes
12196 - exp_sym_flag='-bexport'
12197 - no_entry_flag='-bnoentry'
12200 - # When large executables or shared objects are built, AIX ld can
12201 - # have problems creating the table of contents. If linking a library
12202 - # or program results in "error TOC overflow" add -mminimal-toc to
12203 - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
12204 - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
12206 - hardcode_direct=yes
12208 - hardcode_libdir_separator=':'
12209 - if test "$GCC" = yes; then
12210 - case $host_os in aix4.[012]|aix4.[012].*)
12211 - collect2name=`${CC} -print-prog-name=collect2`
12212 - if test -f "$collect2name" && \
12213 - strings "$collect2name" | grep resolve_lib_name >/dev/null
12215 - # We have reworked collect2
12216 - hardcode_direct=yes
12218 - # We have old collect2
12219 - hardcode_direct=unsupported
12220 - # It fails to find uninstalled libraries when the uninstalled
12221 - # path is not listed in the libpath. Setting hardcode_minus_L
12222 - # to unsupported forces relinking
12223 - hardcode_minus_L=yes
12224 - hardcode_libdir_flag_spec='-L$libdir'
12225 - hardcode_libdir_separator=
12229 - shared_flag='-shared'
12232 - if test "$host_cpu" = ia64; then
12233 - shared_flag='${wl}-G'
12235 - if test "$aix_use_runtimelinking" = yes; then
12236 - shared_flag='${wl}-G'
12238 - shared_flag='${wl}-bM:SRE'
12243 - # It seems that -bexpall can do strange things, so it is better to
12244 - # generate a list of symbols to export.
12245 - always_export_symbols=yes
12246 - if test "$aix_use_runtimelinking" = yes; then
12247 - # Warning - without using the other runtime loading flags (-brtl),
12248 - # -berok will link without error, but may produce a broken library.
12249 - allow_undefined_flag='-berok'
12250 - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
12251 - 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"
12253 - if test "$host_cpu" = ia64; then
12254 - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
12255 - allow_undefined_flag="-z nodefs"
12256 - 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"
12258 - hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
12259 - # Warning - without using the other run time loading flags,
12260 - # -berok will link without error, but may produce a broken library.
12261 - allow_undefined_flag='${wl}-berok'
12262 - # This is a bit strange, but is similar to how AIX traditionally builds
12263 - # it's shared libraries.
12264 - 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'
12270 - 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)'
12271 - hardcode_libdir_flag_spec='-L$libdir'
12272 - hardcode_minus_L=yes
12273 - # see comment about different semantics on the GNU ld section
12277 - cygwin* | mingw* | pw32*)
12278 - # When not using gcc, we currently assume that we are using
12279 - # Microsoft Visual C++.
12280 - # hardcode_libdir_flag_spec is actually meaningless, as there is
12281 - # no search path for DLLs.
12282 - hardcode_libdir_flag_spec=' '
12283 - allow_undefined_flag=unsupported
12284 - # Tell ltmain to make .lib files, not .a files.
12286 - # FIXME: Setting linknames here is a bad hack.
12287 - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
12288 - # The linker will automatically build a .lib file if we build a DLL.
12289 - old_archive_from_new_cmds='true'
12290 - # FIXME: Should let the user specify the lib program.
12291 - old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
12292 - fix_srcfile_path='`cygpath -w "$srcfile"`'
12295 - darwin* | rhapsody*)
12296 - case "$host_os" in
12297 - rhapsody* | darwin1.[012])
12298 - allow_undefined_flag='-undefined suppress'
12300 - *) # Darwin 1.3 on
12301 - allow_undefined_flag='-flat_namespace -undefined suppress'
12304 - # FIXME: Relying on posixy $() will cause problems for
12305 - # cross-compilation, but unfortunately the echo tests do not
12306 - # yet detect zsh echo's removal of \ escapes.
12307 - 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'
12308 - # We need to add '_' to the symbols in $export_symbols first
12309 - #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
12310 - hardcode_direct=yes
12311 - hardcode_shlibpath_var=no
12312 - whole_archive_flag_spec='-all_load $convenience'
12319 - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
12320 - # support. Future versions do this automatically, but an explicit c++rt0.o
12321 - # does not break anything, and helps significantly (at the cost of a little
12324 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
12325 - hardcode_libdir_flag_spec='-R$libdir'
12326 - hardcode_direct=yes
12327 - hardcode_shlibpath_var=no
12330 - # Unfortunately, older versions of FreeBSD 2 do not have this feature.
12332 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12333 - hardcode_direct=yes
12334 - hardcode_minus_L=yes
12335 - hardcode_shlibpath_var=no
12338 - # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
12340 - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
12341 - hardcode_libdir_flag_spec='-R$libdir'
12342 - hardcode_direct=yes
12343 - hardcode_shlibpath_var=no
12346 - hpux9* | hpux10* | hpux11*)
12348 - 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' ;;
12349 - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
12351 - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
12352 - hardcode_libdir_separator=:
12353 - hardcode_direct=yes
12354 - hardcode_minus_L=yes # Not in the search PATH, but as the default
12355 - # location of the library.
12356 - export_dynamic_flag_spec='${wl}-E'
12360 - if test "$GCC" = yes; then
12361 - 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'
12363 - 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'
12365 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12366 - hardcode_libdir_separator=:
12367 - link_all_deplibs=yes
12371 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
12372 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
12374 - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
12376 - hardcode_libdir_flag_spec='-R$libdir'
12377 - hardcode_direct=yes
12378 - hardcode_shlibpath_var=no
12382 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12383 - hardcode_direct=yes
12384 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12385 - hardcode_libdir_separator=:
12386 - hardcode_shlibpath_var=no
12390 - hardcode_direct=yes
12391 - hardcode_shlibpath_var=no
12392 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
12393 - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
12394 - hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12395 - export_dynamic_flag_spec='${wl}-E'
12397 - case "$host_os" in
12398 - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
12399 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12400 - hardcode_libdir_flag_spec='-R$libdir'
12403 - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
12404 - hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12411 - hardcode_libdir_flag_spec='-L$libdir'
12412 - hardcode_minus_L=yes
12413 - allow_undefined_flag=unsupported
12414 - 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'
12415 - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
12419 - if test "$GCC" = yes; then
12420 - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12421 - 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'
12423 - allow_undefined_flag=' -expect_unresolved \*'
12424 - 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'
12426 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12427 - hardcode_libdir_separator=:
12430 - osf4* | osf5*) # as osf3* with the addition of -msym flag
12431 - if test "$GCC" = yes; then
12432 - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12433 - 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'
12434 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12436 - allow_undefined_flag=' -expect_unresolved \*'
12437 - 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'
12438 - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
12439 - $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'
12441 - #Both c and cxx compiler support -rpath directly
12442 - hardcode_libdir_flag_spec='-rpath $libdir'
12444 - hardcode_libdir_separator=:
12448 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12449 - hardcode_shlibpath_var=no
12450 - runpath_var=LD_RUN_PATH
12451 - hardcode_runpath_var=yes
12452 - export_dynamic_flag_spec='${wl}-Bexport'
12456 - # gcc --version < 3.0 without binutils cannot create self contained
12457 - # shared libraries reliably, requiring libgcc.a to resolve some of
12458 - # the object symbols generated in some cases. Libraries that use
12459 - # assert need libgcc.a to resolve __eprintf, for example. Linking
12460 - # a copy of libgcc.a into every shared library to guarantee resolving
12461 - # such symbols causes other problems: According to Tim Van Holder
12462 - # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
12463 - # (to the application) exception stack for one thing.
12464 - no_undefined_flag=' -z defs'
12465 - if test "$GCC" = yes; then
12466 - case `$CC --version 2>/dev/null` in
12470 -*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
12471 -*** create self contained shared libraries on Solaris systems, without
12472 -*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
12473 -*** -no-undefined support, which will at least allow you to build shared
12474 -*** libraries. However, you may find that when you link such libraries
12475 -*** into an application without using GCC, you have to manually add
12476 -*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
12477 -*** upgrade to a newer version of GCC. Another option is to rebuild your
12478 -*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
12481 - no_undefined_flag=
12485 - # $CC -shared without GNU ld will not create a library from C++
12486 - # object files and a static libstdc++, better avoid it by now
12487 - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
12488 - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
12489 - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
12490 - hardcode_libdir_flag_spec='-R$libdir'
12491 - hardcode_shlibpath_var=no
12493 - solaris2.[0-5] | solaris2.[0-5].*) ;;
12494 - *) # Supported since Solaris 2.6 (maybe 2.5.1?)
12495 - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
12497 - link_all_deplibs=yes
12501 - if test "x$host_vendor" = xsequent; then
12502 - # Use $CC to link under sequent, because it throws in some extra .o
12503 - # files that make .init and .fini sections work.
12504 - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
12506 - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
12508 - hardcode_libdir_flag_spec='-L$libdir'
12509 - hardcode_direct=yes
12510 - hardcode_minus_L=yes
12511 - hardcode_shlibpath_var=no
12515 - if test "x$host_vendor" = xsno; then
12516 - archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linker_flags'
12517 - hardcode_direct=yes # is this really true???
12519 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12520 - hardcode_direct=no #Motorola manual says yes, but my tests say they lie
12522 - runpath_var='LD_RUN_PATH'
12523 - hardcode_shlibpath_var=no
12527 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12528 - hardcode_shlibpath_var=no
12529 - export_dynamic_flag_spec='-Bexport'
12533 - no_undefined_flag=' -z text'
12534 - # $CC -shared without GNU ld will not create a library from C++
12535 - # object files and a static libstdc++, better avoid it by now
12536 - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
12537 - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
12538 - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
12539 - hardcode_libdir_flag_spec=
12540 - hardcode_shlibpath_var=no
12541 - runpath_var='LD_RUN_PATH'
12545 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12546 - hardcode_libdir_flag_spec='-L$libdir'
12547 - hardcode_shlibpath_var=no
12551 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12552 - hardcode_libdir_flag_spec='-L$libdir'
12553 - hardcode_shlibpath_var=no
12557 - if test -d /usr/nec; then
12558 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12559 - hardcode_shlibpath_var=no
12560 - runpath_var=LD_RUN_PATH
12561 - hardcode_runpath_var=yes
12567 - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
12568 - hardcode_direct=yes
12569 - hardcode_minus_L=no
12570 - hardcode_shlibpath_var=no
12571 - hardcode_runpath_var=yes
12572 - runpath_var=LD_RUN_PATH
12575 - sysv5uw7* | unixware7*)
12576 - no_undefined_flag='${wl}-z ${wl}text'
12577 - if test "$GCC" = yes; then
12578 - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
12580 - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
12582 - runpath_var='LD_RUN_PATH'
12583 - hardcode_shlibpath_var=no
12591 -echo "$as_me:$LINENO: result: $ld_shlibs" >&5
12592 -echo "${ECHO_T}$ld_shlibs" >&6
12593 -test "$ld_shlibs" = no && can_build_shared=no
12595 -# Check hardcoding attributes.
12596 -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
12597 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
12599 -if test -n "$hardcode_libdir_flag_spec" || \
12600 - test -n "$runpath_var"; then
12602 - # We can hardcode non-existant directories.
12603 - if test "$hardcode_direct" != no &&
12604 - # If the only mechanism to avoid hardcoding is shlibpath_var, we
12605 - # have to relink, otherwise we might link with an installed library
12606 - # when we should be linking with a yet-to-be-installed one
12607 - ## test "$hardcode_shlibpath_var" != no &&
12608 - test "$hardcode_minus_L" != no; then
12609 - # Linking always hardcodes the temporary library directory.
12610 - hardcode_action=relink
12612 - # We can link without hardcoding, and we can hardcode nonexisting dirs.
12613 - hardcode_action=immediate
12616 - # We cannot hardcode anything, or else we can only hardcode existing
12618 - hardcode_action=unsupported
12620 -echo "$as_me:$LINENO: result: $hardcode_action" >&5
12621 -echo "${ECHO_T}$hardcode_action" >&6
12625 -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
12626 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
12627 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
12628 - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
12629 - test -z "$striplib" && striplib="$STRIP --strip-unneeded"
12630 - echo "$as_me:$LINENO: result: yes" >&5
12631 -echo "${ECHO_T}yes" >&6
12633 - echo "$as_me:$LINENO: result: no" >&5
12634 -echo "${ECHO_T}no" >&6
12637 -reload_cmds='$LD$reload_flag -o $output$reload_objs'
12638 -test -z "$deplibs_check_method" && deplibs_check_method=unknown
12640 -# PORTME Fill in your ld.so characteristics
12641 -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
12642 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
12643 -library_names_spec=
12644 -libname_spec='lib$name'
12647 -postuninstall_cmds=
12651 -shlibpath_overrides_runpath=unknown
12653 -dynamic_linker="$host_os ld.so"
12654 -sys_lib_dlsearch_path_spec="/lib /usr/lib"
12655 -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
12659 - version_type=linux
12660 - library_names_spec='${libname}${release}.so$versuffix $libname.a'
12661 - shlibpath_var=LIBPATH
12663 - # AIX has no versioning support, so we append a major version to the name.
12664 - soname_spec='${libname}${release}.so$major'
12668 - version_type=linux
12669 - if test "$host_cpu" = ia64; then
12670 - # AIX 5 supports IA64
12671 - library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
12672 - shlibpath_var=LD_LIBRARY_PATH
12674 - # With GCC up to 2.95.x, collect2 would create an import file
12675 - # for dependence libraries. The import file would start with
12676 - # the line `#! .'. This would cause the generated library to
12677 - # depend on `.', always an invalid library. This was fixed in
12678 - # development snapshots of GCC prior to 3.0.
12680 - aix4 | aix4.[01] | aix4.[01].*)
12681 - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
12683 - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
12686 - can_build_shared=no
12690 - # AIX (on Power*) has no versioning support, so currently we can
12691 - # not hardcode correct soname into executable. Probably we can
12692 - # add versioning support to collect2, so additional links can
12693 - # be useful in future.
12694 - if test "$aix_use_runtimelinking" = yes; then
12695 - # If using run time linking (on AIX 4.2 or later) use lib<name>.so
12696 - # instead of lib<name>.a to let people know that these are not
12697 - # typical AIX shared libraries.
12698 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12700 - # We preserve .a as extension for shared libraries through AIX4.2
12701 - # and later when we are not doing run time linking.
12702 - library_names_spec='${libname}${release}.a $libname.a'
12703 - soname_spec='${libname}${release}.so$major'
12705 - shlibpath_var=LIBPATH
12710 - library_names_spec='$libname.ixlibrary $libname.a'
12711 - # Create ${libname}_ixlibrary.a entries in /sys/libs.
12712 - 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'
12716 - library_names_spec='${libname}.so'
12717 - dynamic_linker="$host_os ld.so"
12718 - shlibpath_var=LIBRARY_PATH
12722 - version_type=linux
12724 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12725 - soname_spec='${libname}${release}.so$major'
12726 - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
12727 - shlibpath_var=LD_LIBRARY_PATH
12728 - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
12729 - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
12730 - export_dynamic_flag_spec=-rdynamic
12731 - # the default ld.so.conf also contains /usr/contrib/lib and
12732 - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
12733 - # libtool to hard-code these into programs
12736 -cygwin* | mingw* | pw32*)
12737 - version_type=windows
12739 - need_lib_prefix=no
12740 - case $GCC,$host_os in
12742 - library_names_spec='$libname.dll.a'
12743 - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
12744 - postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
12745 - dldir=$destdir/`dirname \$dlpath`~
12746 - test -d \$dldir || mkdir -p \$dldir~
12747 - $install_prog .libs/$dlname \$dldir/$dlname'
12748 - postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
12749 - dlpath=$dir/\$dldll~
12753 - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
12754 - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
12757 - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
12760 - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
12763 - dynamic_linker='Win32 ld.exe'
12764 - # FIXME: first we should search . and the directory the executable is in
12765 - shlibpath_var=PATH
12768 -darwin* | rhapsody*)
12769 - dynamic_linker="$host_os dyld"
12770 - version_type=darwin
12771 - need_lib_prefix=no
12773 - # FIXME: Relying on posixy $() will cause problems for
12774 - # cross-compilation, but unfortunately the echo tests do not
12775 - # yet detect zsh echo's removal of \ escapes.
12776 - 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)'
12777 - soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
12778 - shlibpath_overrides_runpath=yes
12779 - shlibpath_var=DYLD_LIBRARY_PATH
12783 - dynamic_linker=no
12787 - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
12788 - version_type=freebsd-$objformat
12789 - case $version_type in
12791 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
12793 - need_lib_prefix=no
12796 - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
12800 - shlibpath_var=LD_LIBRARY_PATH
12803 - shlibpath_overrides_runpath=yes
12806 - shlibpath_overrides_runpath=no
12807 - hardcode_into_libs=yes
12813 - version_type=linux
12814 - need_lib_prefix=no
12816 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
12817 - soname_spec='${libname}${release}.so$major'
12818 - shlibpath_var=LD_LIBRARY_PATH
12819 - hardcode_into_libs=yes
12822 -hpux9* | hpux10* | hpux11*)
12823 - # Give a soname corresponding to the major version so that dld.sl refuses to
12824 - # link against other versions.
12825 - dynamic_linker="$host_os dld.sl"
12826 - version_type=sunos
12827 - need_lib_prefix=no
12829 - shlibpath_var=SHLIB_PATH
12830 - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
12831 - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
12832 - soname_spec='${libname}${release}.sl$major'
12833 - # HP-UX runs *really* slowly unless shared libraries are mode 555.
12834 - postinstall_cmds='chmod 555 $lib'
12838 - version_type=irix
12839 - need_lib_prefix=no
12841 - soname_spec='${libname}${release}.so$major'
12842 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
12845 - libsuff= shlibsuff=
12848 - case $LD in # libtool.m4 will add one of these switches to LD
12849 - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
12850 - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
12851 - *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
12852 - *) libsuff= shlibsuff= libmagic=never-match;;
12856 - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
12857 - shlibpath_overrides_runpath=no
12858 - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
12859 - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
12862 -# No shared lib support for Linux oldld, aout, or coff.
12863 -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
12864 - dynamic_linker=no
12867 -# This must be Linux ELF.
12869 - version_type=linux
12870 - need_lib_prefix=no
12872 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12873 - soname_spec='${libname}${release}.so$major'
12874 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
12875 - shlibpath_var=LD_LIBRARY_PATH
12876 - shlibpath_overrides_runpath=no
12877 - # This implies no fast_install, which is unacceptable.
12878 - # Some rework will be needed to allow for fast_install
12879 - # before this can be enabled.
12880 - hardcode_into_libs=yes
12882 - # We used to test for /lib/ld.so.1 and disable shared libraries on
12883 - # powerpc, because MkLinux only supported shared libraries with the
12884 - # GNU dynamic linker. Since this was broken with cross compilers,
12885 - # most powerpc-linux boxes support dynamic linking these days and
12886 - # people can always --disable-shared, the test was removed, and we
12887 - # assume the GNU/Linux dynamic linker is in use.
12888 - dynamic_linker='GNU/Linux ld.so'
12892 - version_type=sunos
12893 - need_lib_prefix=no
12895 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
12896 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
12897 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
12898 - dynamic_linker='NetBSD (a.out) ld.so'
12900 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
12901 - soname_spec='${libname}${release}.so$major'
12902 - dynamic_linker='NetBSD ld.elf_so'
12904 - shlibpath_var=LD_LIBRARY_PATH
12905 - shlibpath_overrides_runpath=yes
12906 - hardcode_into_libs=yes
12910 - version_type=linux
12911 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12912 - shlibpath_var=LD_LIBRARY_PATH
12913 - shlibpath_overrides_runpath=yes
12917 - version_type=sunos
12918 - need_lib_prefix=no
12920 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
12921 - case "$host_os" in
12922 - openbsd2.[89] | openbsd2.[89].*)
12923 - shlibpath_overrides_runpath=no
12926 - shlibpath_overrides_runpath=yes
12930 - shlibpath_overrides_runpath=yes
12932 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
12933 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
12934 - shlibpath_var=LD_LIBRARY_PATH
12938 - libname_spec='$name'
12939 - need_lib_prefix=no
12940 - library_names_spec='$libname.dll $libname.a'
12941 - dynamic_linker='OS/2 ld.exe'
12942 - shlibpath_var=LIBPATH
12945 -osf3* | osf4* | osf5*)
12948 - soname_spec='${libname}${release}.so'
12949 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
12950 - shlibpath_var=LD_LIBRARY_PATH
12951 - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
12952 - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
12957 - soname_spec='${libname}${release}.so$major'
12958 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12959 - shlibpath_var=LD_LIBRARY_PATH
12963 - version_type=linux
12964 - need_lib_prefix=no
12966 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12967 - soname_spec='${libname}${release}.so$major'
12968 - shlibpath_var=LD_LIBRARY_PATH
12969 - shlibpath_overrides_runpath=yes
12970 - hardcode_into_libs=yes
12971 - # ldd complains unless libraries are executable
12972 - postinstall_cmds='chmod +x $lib'
12976 - version_type=sunos
12977 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
12978 - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
12979 - shlibpath_var=LD_LIBRARY_PATH
12980 - shlibpath_overrides_runpath=yes
12981 - if test "$with_gnu_ld" = yes; then
12982 - need_lib_prefix=no
12987 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
12988 - version_type=linux
12989 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12990 - soname_spec='${libname}${release}.so$major'
12991 - shlibpath_var=LD_LIBRARY_PATH
12992 - case $host_vendor in
12994 - shlibpath_overrides_runpath=no
12997 - need_lib_prefix=no
12999 - shlibpath_overrides_runpath=no
13000 - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
13006 - version_type=linux
13007 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13008 - soname_spec='${libname}${release}.so$major'
13009 - shlibpath_var=LD_LIBRARY_PATH
13013 - version_type=linux
13014 - need_lib_prefix=no
13016 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
13017 - soname_spec='${libname}${release}.so$major'
13018 - shlibpath_var=LD_LIBRARY_PATH
13022 - if test -d /usr/nec ;then
13023 - version_type=linux
13024 - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
13025 - soname_spec='$libname.so.$major'
13026 - shlibpath_var=LD_LIBRARY_PATH
13031 - dynamic_linker=no
13034 -echo "$as_me:$LINENO: result: $dynamic_linker" >&5
13035 -echo "${ECHO_T}$dynamic_linker" >&6
13036 -test "$dynamic_linker" = no && can_build_shared=no
13038 -# Report the final consequences.
13039 -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
13040 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
13041 -echo "$as_me:$LINENO: result: $can_build_shared" >&5
13042 -echo "${ECHO_T}$can_build_shared" >&6
13044 -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
13045 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
13046 -test "$can_build_shared" = "no" && enable_shared=no
13048 -# On AIX, shared libraries and static libraries use the same namespace, and
13049 -# are all built from PIC.
13050 -case "$host_os" in
13052 - test "$enable_shared" = yes && enable_static=no
13053 - if test -n "$RANLIB"; then
13054 - archive_cmds="$archive_cmds~\$RANLIB \$lib"
13055 - postinstall_cmds='$RANLIB $lib'
13060 - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
13061 - test "$enable_shared" = yes && enable_static=no
13065 -echo "$as_me:$LINENO: result: $enable_shared" >&5
13066 -echo "${ECHO_T}$enable_shared" >&6
13068 -echo "$as_me:$LINENO: checking whether to build static libraries" >&5
13069 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
13070 -# Make sure either enable_shared or enable_static is yes.
13071 -test "$enable_shared" = yes || enable_static=yes
13072 -echo "$as_me:$LINENO: result: $enable_static" >&5
13073 -echo "${ECHO_T}$enable_static" >&6
13075 -if test "$hardcode_action" = relink; then
13076 - # Fast installation is not supported
13077 - enable_fast_install=no
13078 -elif test "$shlibpath_overrides_runpath" = yes ||
13079 - test "$enable_shared" = no; then
13080 - # Fast installation is not necessary
13081 - enable_fast_install=needless
13084 -variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
13085 -if test "$GCC" = yes; then
13086 - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
13089 -if test "x$enable_dlopen" != xyes; then
13090 - enable_dlopen=unknown
13091 - enable_dlopen_self=unknown
13092 - enable_dlopen_self_static=unknown
13095 - lt_cv_dlopen_libs=
13099 - lt_cv_dlopen="load_add_on"
13100 - lt_cv_dlopen_libs=
13101 - lt_cv_dlopen_self=yes
13104 - cygwin* | mingw* | pw32*)
13105 - lt_cv_dlopen="LoadLibrary"
13106 - lt_cv_dlopen_libs=
13110 - echo "$as_me:$LINENO: checking for shl_load" >&5
13111 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
13112 -if test "${ac_cv_func_shl_load+set}" = set; then
13113 - echo $ECHO_N "(cached) $ECHO_C" >&6
13115 - cat >conftest.$ac_ext <<_ACEOF
13116 -#line $LINENO "configure"
13117 -#include "confdefs.h"
13118 -/* System header to define __stub macros and hopefully few prototypes,
13119 - which can conflict with char shl_load (); below. */
13120 -#include <assert.h>
13121 -/* Override any gcc2 internal prototype to avoid an error. */
13122 -#ifdef __cplusplus
13125 -/* We use char because int might match the return type of a gcc2
13126 - builtin and then its argument prototype would still apply. */
13133 -/* The GNU C library defines this for functions which it implements
13134 - to always fail with ENOSYS. Some functions are actually named
13135 - something starting with __ and the normal name is an alias. */
13136 -#if defined (__stub_shl_load) || defined (__stub___shl_load)
13146 -rm -f conftest.$ac_objext conftest$ac_exeext
13147 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13148 - (eval $ac_link) 2>&5
13150 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13151 - (exit $ac_status); } &&
13152 - { ac_try='test -s conftest$ac_exeext'
13153 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13154 - (eval $ac_try) 2>&5
13156 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13157 - (exit $ac_status); }; }; then
13158 - ac_cv_func_shl_load=yes
13160 - echo "$as_me: failed program was:" >&5
13161 -cat conftest.$ac_ext >&5
13162 -ac_cv_func_shl_load=no
13164 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13166 -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
13167 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6
13168 -if test $ac_cv_func_shl_load = yes; then
13169 - lt_cv_dlopen="shl_load"
13171 - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
13172 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
13173 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then
13174 - echo $ECHO_N "(cached) $ECHO_C" >&6
13176 - ac_check_lib_save_LIBS=$LIBS
13177 -LIBS="-ldld $LIBS"
13178 -cat >conftest.$ac_ext <<_ACEOF
13179 -#line $LINENO "configure"
13180 -#include "confdefs.h"
13182 -/* Override any gcc2 internal prototype to avoid an error. */
13183 -#ifdef __cplusplus
13186 -/* We use char because int might match the return type of a gcc2
13187 - builtin and then its argument prototype would still apply. */
13197 -rm -f conftest.$ac_objext conftest$ac_exeext
13198 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13199 - (eval $ac_link) 2>&5
13201 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13202 - (exit $ac_status); } &&
13203 - { ac_try='test -s conftest$ac_exeext'
13204 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13205 - (eval $ac_try) 2>&5
13207 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13208 - (exit $ac_status); }; }; then
13209 - ac_cv_lib_dld_shl_load=yes
13211 - echo "$as_me: failed program was:" >&5
13212 -cat conftest.$ac_ext >&5
13213 -ac_cv_lib_dld_shl_load=no
13215 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13216 -LIBS=$ac_check_lib_save_LIBS
13218 -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
13219 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
13220 -if test $ac_cv_lib_dld_shl_load = yes; then
13221 - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
13223 - echo "$as_me:$LINENO: checking for dlopen" >&5
13224 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
13225 -if test "${ac_cv_func_dlopen+set}" = set; then
13226 - echo $ECHO_N "(cached) $ECHO_C" >&6
13228 - cat >conftest.$ac_ext <<_ACEOF
13229 -#line $LINENO "configure"
13230 -#include "confdefs.h"
13231 -/* System header to define __stub macros and hopefully few prototypes,
13232 - which can conflict with char dlopen (); below. */
13233 -#include <assert.h>
13234 -/* Override any gcc2 internal prototype to avoid an error. */
13235 -#ifdef __cplusplus
13238 -/* We use char because int might match the return type of a gcc2
13239 - builtin and then its argument prototype would still apply. */
13246 -/* The GNU C library defines this for functions which it implements
13247 - to always fail with ENOSYS. Some functions are actually named
13248 - something starting with __ and the normal name is an alias. */
13249 -#if defined (__stub_dlopen) || defined (__stub___dlopen)
13259 -rm -f conftest.$ac_objext conftest$ac_exeext
13260 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13261 - (eval $ac_link) 2>&5
13263 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13264 - (exit $ac_status); } &&
13265 - { ac_try='test -s conftest$ac_exeext'
13266 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13267 - (eval $ac_try) 2>&5
13269 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13270 - (exit $ac_status); }; }; then
13271 - ac_cv_func_dlopen=yes
13273 - echo "$as_me: failed program was:" >&5
13274 -cat conftest.$ac_ext >&5
13275 -ac_cv_func_dlopen=no
13277 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13279 -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
13280 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6
13281 -if test $ac_cv_func_dlopen = yes; then
13282 - lt_cv_dlopen="dlopen"
13284 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
13285 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
13286 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
13287 - echo $ECHO_N "(cached) $ECHO_C" >&6
13289 - ac_check_lib_save_LIBS=$LIBS
13291 -cat >conftest.$ac_ext <<_ACEOF
13292 -#line $LINENO "configure"
13293 -#include "confdefs.h"
13295 -/* Override any gcc2 internal prototype to avoid an error. */
13296 -#ifdef __cplusplus
13299 -/* We use char because int might match the return type of a gcc2
13300 - builtin and then its argument prototype would still apply. */
13310 -rm -f conftest.$ac_objext conftest$ac_exeext
13311 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13312 - (eval $ac_link) 2>&5
13314 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13315 - (exit $ac_status); } &&
13316 - { ac_try='test -s conftest$ac_exeext'
13317 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13318 - (eval $ac_try) 2>&5
13320 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13321 - (exit $ac_status); }; }; then
13322 - ac_cv_lib_dl_dlopen=yes
13324 - echo "$as_me: failed program was:" >&5
13325 -cat conftest.$ac_ext >&5
13326 -ac_cv_lib_dl_dlopen=no
13328 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13329 -LIBS=$ac_check_lib_save_LIBS
13331 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
13332 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
13333 -if test $ac_cv_lib_dl_dlopen = yes; then
13334 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
13336 - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
13337 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
13338 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then
13339 - echo $ECHO_N "(cached) $ECHO_C" >&6
13341 - ac_check_lib_save_LIBS=$LIBS
13342 -LIBS="-lsvld $LIBS"
13343 -cat >conftest.$ac_ext <<_ACEOF
13344 -#line $LINENO "configure"
13345 -#include "confdefs.h"
13347 -/* Override any gcc2 internal prototype to avoid an error. */
13348 -#ifdef __cplusplus
13351 -/* We use char because int might match the return type of a gcc2
13352 - builtin and then its argument prototype would still apply. */
13362 -rm -f conftest.$ac_objext conftest$ac_exeext
13363 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13364 - (eval $ac_link) 2>&5
13366 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13367 - (exit $ac_status); } &&
13368 - { ac_try='test -s conftest$ac_exeext'
13369 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13370 - (eval $ac_try) 2>&5
13372 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13373 - (exit $ac_status); }; }; then
13374 - ac_cv_lib_svld_dlopen=yes
13376 - echo "$as_me: failed program was:" >&5
13377 -cat conftest.$ac_ext >&5
13378 -ac_cv_lib_svld_dlopen=no
13380 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13381 -LIBS=$ac_check_lib_save_LIBS
13383 -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
13384 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
13385 -if test $ac_cv_lib_svld_dlopen = yes; then
13386 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
13388 - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
13389 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
13390 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then
13391 - echo $ECHO_N "(cached) $ECHO_C" >&6
13393 - ac_check_lib_save_LIBS=$LIBS
13394 -LIBS="-ldld $LIBS"
13395 -cat >conftest.$ac_ext <<_ACEOF
13396 -#line $LINENO "configure"
13397 -#include "confdefs.h"
13399 -/* Override any gcc2 internal prototype to avoid an error. */
13400 -#ifdef __cplusplus
13403 -/* We use char because int might match the return type of a gcc2
13404 - builtin and then its argument prototype would still apply. */
13414 -rm -f conftest.$ac_objext conftest$ac_exeext
13415 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13416 - (eval $ac_link) 2>&5
13418 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13419 - (exit $ac_status); } &&
13420 - { ac_try='test -s conftest$ac_exeext'
13421 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13422 - (eval $ac_try) 2>&5
13424 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13425 - (exit $ac_status); }; }; then
13426 - ac_cv_lib_dld_dld_link=yes
13428 - echo "$as_me: failed program was:" >&5
13429 -cat conftest.$ac_ext >&5
13430 -ac_cv_lib_dld_dld_link=no
13432 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13433 -LIBS=$ac_check_lib_save_LIBS
13435 -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
13436 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
13437 -if test $ac_cv_lib_dld_dld_link = yes; then
13438 - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
13459 - if test "x$lt_cv_dlopen" != xno; then
13460 - enable_dlopen=yes
13465 - case $lt_cv_dlopen in
13467 - save_CPPFLAGS="$CPPFLAGS"
13468 - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
13470 - save_LDFLAGS="$LDFLAGS"
13471 - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
13473 - save_LIBS="$LIBS"
13474 - LIBS="$lt_cv_dlopen_libs $LIBS"
13476 - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
13477 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
13478 -if test "${lt_cv_dlopen_self+set}" = set; then
13479 - echo $ECHO_N "(cached) $ECHO_C" >&6
13481 - if test "$cross_compiling" = yes; then :
13482 - lt_cv_dlopen_self=cross
13484 - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13485 - lt_status=$lt_dlunknown
13486 - cat > conftest.$ac_ext <<EOF
13487 -#line __oline__ "configure"
13488 -#include "confdefs.h"
13491 -#include <dlfcn.h>
13494 -#include <stdio.h>
13496 -#ifdef RTLD_GLOBAL
13497 -# define LT_DLGLOBAL RTLD_GLOBAL
13500 -# define LT_DLGLOBAL DL_GLOBAL
13502 -# define LT_DLGLOBAL 0
13506 -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13507 - find out it does not work in some platform. */
13508 -#ifndef LT_DLLAZY_OR_NOW
13510 -# define LT_DLLAZY_OR_NOW RTLD_LAZY
13513 -# define LT_DLLAZY_OR_NOW DL_LAZY
13516 -# define LT_DLLAZY_OR_NOW RTLD_NOW
13519 -# define LT_DLLAZY_OR_NOW DL_NOW
13521 -# define LT_DLLAZY_OR_NOW 0
13528 -#ifdef __cplusplus
13529 -extern "C" void exit (int);
13532 -void fnord() { int i=42;}
13535 - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13536 - int status = $lt_dlunknown;
13540 - if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13541 - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13542 - /* dlclose (self); */
13548 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13549 - (eval $ac_link) 2>&5
13551 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13552 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
13553 - (./conftest; exit; ) 2>/dev/null
13555 - case x$lt_status in
13556 - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
13557 - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
13558 - x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
13561 - # compilation failed
13562 - lt_cv_dlopen_self=no
13569 -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
13570 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6
13572 - if test "x$lt_cv_dlopen_self" = xyes; then
13573 - LDFLAGS="$LDFLAGS $link_static_flag"
13574 - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
13575 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
13576 -if test "${lt_cv_dlopen_self_static+set}" = set; then
13577 - echo $ECHO_N "(cached) $ECHO_C" >&6
13579 - if test "$cross_compiling" = yes; then :
13580 - lt_cv_dlopen_self_static=cross
13582 - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13583 - lt_status=$lt_dlunknown
13584 - cat > conftest.$ac_ext <<EOF
13585 -#line __oline__ "configure"
13586 -#include "confdefs.h"
13589 -#include <dlfcn.h>
13592 -#include <stdio.h>
13594 -#ifdef RTLD_GLOBAL
13595 -# define LT_DLGLOBAL RTLD_GLOBAL
13598 -# define LT_DLGLOBAL DL_GLOBAL
13600 -# define LT_DLGLOBAL 0
13604 -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13605 - find out it does not work in some platform. */
13606 -#ifndef LT_DLLAZY_OR_NOW
13608 -# define LT_DLLAZY_OR_NOW RTLD_LAZY
13611 -# define LT_DLLAZY_OR_NOW DL_LAZY
13614 -# define LT_DLLAZY_OR_NOW RTLD_NOW
13617 -# define LT_DLLAZY_OR_NOW DL_NOW
13619 -# define LT_DLLAZY_OR_NOW 0
13626 -#ifdef __cplusplus
13627 -extern "C" void exit (int);
13630 -void fnord() { int i=42;}
13633 - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13634 - int status = $lt_dlunknown;
13638 - if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13639 - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13640 - /* dlclose (self); */
13646 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13647 - (eval $ac_link) 2>&5
13649 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13650 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
13651 - (./conftest; exit; ) 2>/dev/null
13653 - case x$lt_status in
13654 - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
13655 - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
13656 - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
13659 - # compilation failed
13660 - lt_cv_dlopen_self_static=no
13667 -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
13668 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
13671 - CPPFLAGS="$save_CPPFLAGS"
13672 - LDFLAGS="$save_LDFLAGS"
13673 - LIBS="$save_LIBS"
13677 - case $lt_cv_dlopen_self in
13678 - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
13679 - *) enable_dlopen_self=unknown ;;
13682 - case $lt_cv_dlopen_self_static in
13683 - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
13684 - *) enable_dlopen_self_static=unknown ;;
13689 -if test "$enable_shared" = yes && test "$GCC" = yes; then
13690 - case $archive_cmds in
13692 - # FIXME: we may have to deal with multi-command sequences.
13695 - # Test whether the compiler implicitly links with -lc since on some
13696 - # systems, -lgcc has to come before -lc. If gcc already passes -lc
13697 - # to ld, don't add -lc before -lgcc.
13698 - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
13699 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
13700 - if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
13701 - echo $ECHO_N "(cached) $ECHO_C" >&6
13704 - echo 'static int dummy;' > conftest.$ac_ext
13706 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13707 - (eval $ac_compile) 2>&5
13709 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13710 - (exit $ac_status); }; then
13713 - libobjs=conftest.$ac_objext
13715 - wl=$lt_cv_prog_cc_wl
13716 - compiler_flags=-v
13721 - save_allow_undefined_flag=$allow_undefined_flag
13722 - allow_undefined_flag=
13723 - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
13724 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
13726 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13727 - (exit $ac_status); }
13729 - lt_cv_archive_cmds_need_lc=no
13731 - lt_cv_archive_cmds_need_lc=yes
13733 - allow_undefined_flag=$save_allow_undefined_flag
13735 - cat conftest.err 1>&5
13739 - echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
13740 -echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
13744 -need_lc=${lt_cv_archive_cmds_need_lc-yes}
13746 -# The second clause should only fire when bootstrapping the
13747 -# libtool distribution, otherwise you forgot to ship ltmain.sh
13748 -# with your package, and you will get complaints that there are
13749 -# no rules to generate ltmain.sh.
13750 -if test -f "$ltmain"; then
13753 - # If there is no Makefile yet, we rely on a make rule to execute
13754 - # `config.status --recheck' to rerun these tests and create the
13755 - # libtool script then.
13756 - test -f Makefile && make "$ltmain"
13759 -if test -f "$ltmain"; then
13760 - trap "$rm \"${ofile}T\"; exit 1" 1 2 15
13761 - $rm -f "${ofile}T"
13763 - echo creating $ofile
13765 - # Now quote all the things that may contain metacharacters while being
13766 - # careful not to overquote the AC_SUBSTed values. We take copies of the
13767 - # variables and quote the copies for generation of the libtool script.
13768 - for var in echo old_CC old_CFLAGS \
13769 - AR AR_FLAGS CC LD LN_S NM SHELL \
13770 - reload_flag reload_cmds wl \
13771 - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
13772 - thread_safe_flag_spec whole_archive_flag_spec libname_spec \
13773 - library_names_spec soname_spec \
13774 - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
13775 - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
13776 - postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
13777 - old_striplib striplib file_magic_cmd export_symbols_cmds \
13778 - deplibs_check_method allow_undefined_flag no_undefined_flag \
13779 - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
13780 - global_symbol_to_c_name_address \
13781 - hardcode_libdir_flag_spec hardcode_libdir_separator \
13782 - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
13783 - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
13786 - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
13787 - old_postinstall_cmds | old_postuninstall_cmds | \
13788 - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
13789 - extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
13790 - postinstall_cmds | postuninstall_cmds | \
13791 - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
13792 - # Double-quote double-evaled strings.
13793 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
13796 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
13801 - cat <<__EOF__ > "${ofile}T"
13804 -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
13805 -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
13806 -# NOTE: Changes made to this file will be lost: look at ltmain.sh.
13808 -# Copyright (C) 1996-2000 Free Software Foundation, Inc.
13809 -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
13811 -# This program is free software; you can redistribute it and/or modify
13812 -# it under the terms of the GNU General Public License as published by
13813 -# the Free Software Foundation; either version 2 of the License, or
13814 -# (at your option) any later version.
13816 -# This program is distributed in the hope that it will be useful, but
13817 -# WITHOUT ANY WARRANTY; without even the implied warranty of
13818 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13819 -# General Public License for more details.
13821 -# You should have received a copy of the GNU General Public License
13822 -# along with this program; if not, write to the Free Software
13823 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
13825 -# As a special exception to the GNU General Public License, if you
13826 -# distribute this file as part of a program that contains a
13827 -# configuration script generated by Autoconf, you may include it under
13828 -# the same distribution terms that you use for the rest of that program.
13830 -# Sed that helps us avoid accidentally triggering echo(1) options like -n.
13831 -Xsed="sed -e s/^X//"
13833 -# The HP-UX ksh and POSIX shell print the target directory to stdout
13834 -# if CDPATH is set.
13835 -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
13837 -# ### BEGIN LIBTOOL CONFIG
13839 -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
13841 -# Shell to use when invoking shell scripts.
13844 -# Whether or not to build shared libraries.
13845 -build_libtool_libs=$enable_shared
13847 -# Whether or not to build static libraries.
13848 -build_old_libs=$enable_static
13850 -# Whether or not to add -lc for building shared libraries.
13851 -build_libtool_need_lc=$need_lc
13853 -# Whether or not to optimize for fast installation.
13854 -fast_install=$enable_fast_install
13856 -# The host system.
13857 -host_alias=$host_alias
13860 -# An echo program that does not interpret backslashes.
13865 -AR_FLAGS=$lt_AR_FLAGS
13867 -# The default C compiler.
13870 -# Is the compiler the GNU C compiler?
13873 -# The linker used to build libraries.
13876 -# Whether we need hard or soft links.
13879 -# A BSD-compatible nm program.
13882 -# A symbol stripping program
13885 -# Used to examine libraries when file_magic_cmd begins "file"
13886 -MAGIC_CMD=$MAGIC_CMD
13888 -# Used on cygwin: DLL creation program.
13889 -DLLTOOL="$DLLTOOL"
13891 -# Used on cygwin: object dumper.
13892 -OBJDUMP="$OBJDUMP"
13894 -# Used on cygwin: assembler.
13897 -# The name of the directory that contains temporary libtool files.
13900 -# How to create reloadable object files.
13901 -reload_flag=$lt_reload_flag
13902 -reload_cmds=$lt_reload_cmds
13904 -# How to pass a linker flag through the compiler.
13907 -# Object file suffix (normally "o").
13908 -objext="$ac_objext"
13910 -# Old archive suffix (normally "a").
13913 -# Executable file suffix (normally "").
13916 -# Additional compiler flags for building library objects.
13917 -pic_flag=$lt_pic_flag
13918 -pic_mode=$pic_mode
13920 -# Does compiler simultaneously support -c and -o options?
13921 -compiler_c_o=$lt_compiler_c_o
13923 -# Can we write directly to a .lo ?
13924 -compiler_o_lo=$lt_compiler_o_lo
13926 -# Must we lock files when doing compilation ?
13927 -need_locks=$lt_need_locks
13929 -# Do we need the lib prefix for modules?
13930 -need_lib_prefix=$need_lib_prefix
13932 -# Do we need a version for libraries?
13933 -need_version=$need_version
13935 -# Whether dlopen is supported.
13936 -dlopen_support=$enable_dlopen
13938 -# Whether dlopen of programs is supported.
13939 -dlopen_self=$enable_dlopen_self
13941 -# Whether dlopen of statically linked programs is supported.
13942 -dlopen_self_static=$enable_dlopen_self_static
13944 -# Compiler flag to prevent dynamic linking.
13945 -link_static_flag=$lt_link_static_flag
13947 -# Compiler flag to turn off builtin functions.
13948 -no_builtin_flag=$lt_no_builtin_flag
13950 -# Compiler flag to allow reflexive dlopens.
13951 -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
13953 -# Compiler flag to generate shared objects directly from archives.
13954 -whole_archive_flag_spec=$lt_whole_archive_flag_spec
13956 -# Compiler flag to generate thread-safe objects.
13957 -thread_safe_flag_spec=$lt_thread_safe_flag_spec
13959 -# Library versioning type.
13960 -version_type=$version_type
13962 -# Format of library name prefix.
13963 -libname_spec=$lt_libname_spec
13965 -# List of archive names. First name is the real one, the rest are links.
13966 -# The last name is the one that the linker finds with -lNAME.
13967 -library_names_spec=$lt_library_names_spec
13969 -# The coded name of the library, if different from the real name.
13970 -soname_spec=$lt_soname_spec
13972 -# Commands used to build and install an old-style archive.
13974 -old_archive_cmds=$lt_old_archive_cmds
13975 -old_postinstall_cmds=$lt_old_postinstall_cmds
13976 -old_postuninstall_cmds=$lt_old_postuninstall_cmds
13978 -# Create an old-style archive from a shared archive.
13979 -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
13981 -# Create a temporary old-style archive to link instead of a shared archive.
13982 -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
13984 -# Commands used to build and install a shared archive.
13985 -archive_cmds=$lt_archive_cmds
13986 -archive_expsym_cmds=$lt_archive_expsym_cmds
13987 -postinstall_cmds=$lt_postinstall_cmds
13988 -postuninstall_cmds=$lt_postuninstall_cmds
13990 -# Commands to strip libraries.
13991 -old_striplib=$lt_old_striplib
13992 -striplib=$lt_striplib
13994 -# Method to check whether dependent libraries are shared objects.
13995 -deplibs_check_method=$lt_deplibs_check_method
13997 -# Command to use when deplibs_check_method == file_magic.
13998 -file_magic_cmd=$lt_file_magic_cmd
14000 -# Flag that allows shared libraries with undefined symbols to be built.
14001 -allow_undefined_flag=$lt_allow_undefined_flag
14003 -# Flag that forces no undefined symbols.
14004 -no_undefined_flag=$lt_no_undefined_flag
14006 -# Commands used to finish a libtool library installation in a directory.
14007 -finish_cmds=$lt_finish_cmds
14009 -# Same as above, but a single script fragment to be evaled but not shown.
14010 -finish_eval=$lt_finish_eval
14012 -# Take the output of nm and produce a listing of raw symbols and C names.
14013 -global_symbol_pipe=$lt_global_symbol_pipe
14015 -# Transform the output of nm in a proper C declaration
14016 -global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
14018 -# Transform the output of nm in a C name address pair
14019 -global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
14021 -# This is the shared library runtime path variable.
14022 -runpath_var=$runpath_var
14024 -# This is the shared library path variable.
14025 -shlibpath_var=$shlibpath_var
14027 -# Is shlibpath searched before the hard-coded library search path?
14028 -shlibpath_overrides_runpath=$shlibpath_overrides_runpath
14030 -# How to hardcode a shared library path into an executable.
14031 -hardcode_action=$hardcode_action
14033 -# Whether we should hardcode library paths into libraries.
14034 -hardcode_into_libs=$hardcode_into_libs
14036 -# Flag to hardcode \$libdir into a binary during linking.
14037 -# This must work even if \$libdir does not exist.
14038 -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
14040 -# Whether we need a single -rpath flag with a separated argument.
14041 -hardcode_libdir_separator=$lt_hardcode_libdir_separator
14043 -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
14044 -# resulting binary.
14045 -hardcode_direct=$hardcode_direct
14047 -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
14048 -# resulting binary.
14049 -hardcode_minus_L=$hardcode_minus_L
14051 -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
14052 -# the resulting binary.
14053 -hardcode_shlibpath_var=$hardcode_shlibpath_var
14055 -# Variables whose values should be saved in libtool wrapper scripts and
14056 -# restored at relink time.
14057 -variables_saved_for_relink="$variables_saved_for_relink"
14059 -# Whether libtool must link a program against all its dependency libraries.
14060 -link_all_deplibs=$link_all_deplibs
14062 -# Compile-time system search path for libraries
14063 -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
14065 -# Run-time system search path for libraries
14066 -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
14068 -# Fix the shell variable \$srcfile for the compiler.
14069 -fix_srcfile_path="$fix_srcfile_path"
14071 -# Set to yes if exported symbols are required.
14072 -always_export_symbols=$always_export_symbols
14074 -# The commands to list exported symbols.
14075 -export_symbols_cmds=$lt_export_symbols_cmds
14077 -# The commands to extract the exported symbol list from a shared archive.
14078 -extract_expsyms_cmds=$lt_extract_expsyms_cmds
14080 -# Symbols that should not be listed in the preloaded symbols.
14081 -exclude_expsyms=$lt_exclude_expsyms
14083 -# Symbols that must always be exported.
14084 -include_expsyms=$lt_include_expsyms
14086 -# ### END LIBTOOL CONFIG
14092 - cat <<\EOF >> "${ofile}T"
14094 -# AIX sometimes has problems with the GCC collect2 program. For some
14095 -# reason, if we set the COLLECT_NAMES environment variable, the problems
14096 -# vanish in a puff of smoke.
14097 -if test "X${COLLECT_NAMES+set}" != Xset; then
14099 - export COLLECT_NAMES
14106 - cygwin* | mingw* | pw32* | os2*)
14107 - cat <<'EOF' >> "${ofile}T"
14108 - # This is a source program that is used to create dlls on Windows
14109 - # Don't remove nor modify the starting and closing comments
14110 -# /* ltdll.c starts here */
14111 -# #define WIN32_LEAN_AND_MEAN
14112 -# #include <windows.h>
14113 -# #undef WIN32_LEAN_AND_MEAN
14114 -# #include <stdio.h>
14116 -# #ifndef __CYGWIN__
14117 -# # ifdef __CYGWIN32__
14118 -# # define __CYGWIN__ __CYGWIN32__
14122 -# #ifdef __cplusplus
14125 -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
14126 -# #ifdef __cplusplus
14130 -# #ifdef __CYGWIN__
14131 -# #include <cygwin/cygwin_dll.h>
14132 -# DECLARE_CYGWIN_DLL( DllMain );
14134 -# HINSTANCE __hDllInstance_base;
14137 -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
14139 -# __hDllInstance_base = hInst;
14142 -# /* ltdll.c ends here */
14143 - # This is a source program that is used to create import libraries
14144 - # on Windows for dlls which lack them. Don't remove nor modify the
14145 - # starting and closing comments
14146 -# /* impgen.c starts here */
14147 -# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
14149 -# This file is part of GNU libtool.
14151 -# This program is free software; you can redistribute it and/or modify
14152 -# it under the terms of the GNU General Public License as published by
14153 -# the Free Software Foundation; either version 2 of the License, or
14154 -# (at your option) any later version.
14156 -# This program is distributed in the hope that it will be useful,
14157 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
14158 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14159 -# GNU General Public License for more details.
14161 -# You should have received a copy of the GNU General Public License
14162 -# along with this program; if not, write to the Free Software
14163 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
14166 -# #include <stdio.h> /* for printf() */
14167 -# #include <unistd.h> /* for open(), lseek(), read() */
14168 -# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
14169 -# #include <string.h> /* for strdup() */
14171 -# /* O_BINARY isn't required (or even defined sometimes) under Unix */
14172 -# #ifndef O_BINARY
14173 -# #define O_BINARY 0
14176 -# static unsigned int
14177 -# pe_get16 (fd, offset)
14181 -# unsigned char b[2];
14182 -# lseek (fd, offset, SEEK_SET);
14183 -# read (fd, b, 2);
14184 -# return b[0] + (b[1]<<8);
14187 -# static unsigned int
14188 -# pe_get32 (fd, offset)
14192 -# unsigned char b[4];
14193 -# lseek (fd, offset, SEEK_SET);
14194 -# read (fd, b, 4);
14195 -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
14198 -# static unsigned int
14202 -# unsigned char *b = ptr;
14203 -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
14207 -# main (argc, argv)
14212 -# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
14213 -# unsigned long export_rva, export_size, nsections, secptr, expptr;
14214 -# unsigned long name_rvas, nexp;
14215 -# unsigned char *expdata, *erva;
14216 -# char *filename, *dll_name;
14218 -# filename = argv[1];
14220 -# dll = open(filename, O_RDONLY|O_BINARY);
14224 -# dll_name = filename;
14226 -# for (i=0; filename[i]; i++)
14227 -# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
14228 -# dll_name = filename + i +1;
14230 -# pe_header_offset = pe_get32 (dll, 0x3c);
14231 -# opthdr_ofs = pe_header_offset + 4 + 20;
14232 -# num_entries = pe_get32 (dll, opthdr_ofs + 92);
14234 -# if (num_entries < 1) /* no exports */
14237 -# export_rva = pe_get32 (dll, opthdr_ofs + 96);
14238 -# export_size = pe_get32 (dll, opthdr_ofs + 100);
14239 -# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
14240 -# secptr = (pe_header_offset + 4 + 20 +
14241 -# pe_get16 (dll, pe_header_offset + 4 + 16));
14244 -# for (i = 0; i < nsections; i++)
14247 -# unsigned long secptr1 = secptr + 40 * i;
14248 -# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
14249 -# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
14250 -# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
14251 -# lseek(dll, secptr1, SEEK_SET);
14252 -# read(dll, sname, 8);
14253 -# if (vaddr <= export_rva && vaddr+vsize > export_rva)
14255 -# expptr = fptr + (export_rva - vaddr);
14256 -# if (export_rva + export_size > vaddr + vsize)
14257 -# export_size = vsize - (export_rva - vaddr);
14262 -# expdata = (unsigned char*)malloc(export_size);
14263 -# lseek (dll, expptr, SEEK_SET);
14264 -# read (dll, expdata, export_size);
14265 -# erva = expdata - export_rva;
14267 -# nexp = pe_as32 (expdata+24);
14268 -# name_rvas = pe_as32 (expdata+32);
14270 -# printf ("EXPORTS\n");
14271 -# for (i = 0; i<nexp; i++)
14273 -# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
14274 -# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
14279 -# /* impgen.c ends here */
14285 - # We use sed instead of cat because bash on DJGPP gets confused if
14286 - # if finds mixed CR/LF and LF-only lines. Since sed operates in
14287 - # text mode, it properly converts lines to CR/LF. This bash problem
14288 - # is reportedly fixed, but why not run on old versions too?
14289 - sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
14291 - mv -f "${ofile}T" "$ofile" || \
14292 - (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
14293 - chmod +x "$ofile"
14300 -# This can be used to rebuild libtool when needed
14301 -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
14303 -# Always use our own libtool.
14304 -LIBTOOL='$(SHELL) $(top_builddir)/libtool'
14306 -# Prevent multiple expansion
14311 -# Check whether --with-target-subdir or --without-target-subdir was given.
14312 -if test "${with_target_subdir+set}" = set; then
14313 - withval="$with_target_subdir"
14317 -# Check whether --with-cross-host or --without-cross-host was given.
14318 -if test "${with_cross_host+set}" = set; then
14319 - withval="$with_cross_host"
14323 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
14324 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
14325 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
14326 -if test "${enable_maintainer_mode+set}" = set; then
14327 - enableval="$enable_maintainer_mode"
14328 - USE_MAINTAINER_MODE=$enableval
14330 - USE_MAINTAINER_MODE=no
14332 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
14333 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
14336 -if test $USE_MAINTAINER_MODE = yes; then
14337 - MAINTAINER_MODE_TRUE=
14338 - MAINTAINER_MODE_FALSE='#'
14340 - MAINTAINER_MODE_TRUE='#'
14341 - MAINTAINER_MODE_FALSE=
14344 - MAINT=$MAINTAINER_MODE_TRUE
14347 -# automake wants to see AC_EXEEXT. But we don't need it. And having
14348 -# it is actually a problem, because the compiler we're passed can't
14349 -# necessarily do a full link. So we fool automake here.
14351 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
14352 - # to nothing, so nothing would remain between `then' and `fi' if it
14353 - # were not for the `:' below.
14358 -echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
14359 -echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
14360 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
14361 -if test -z "$THREADS"; then
14364 -echo "$as_me:$LINENO: result: $THREADS" >&5
14365 -echo "${ECHO_T}$THREADS" >&6
14367 -# Check whether --enable-parallel-mark or --disable-parallel-mark was given.
14368 -if test "${enable_parallel_mark+set}" = set; then
14369 - enableval="$enable_parallel_mark"
14370 - case "$THREADS" in
14371 - no | none | single)
14372 - { { echo "$as_me:$LINENO: error: Parallel mark requires --enable-threads=x spec" >&5
14373 -echo "$as_me: error: Parallel mark requires --enable-threads=x spec" >&2;}
14374 - { (exit 1); exit 1; }; }
14380 -INCLUDES=-I${srcdir}/include
14382 -case "$THREADS" in
14383 - no | none | single)
14386 - posix | pthreads)
14388 - THREADLIBS=-lpthread
14390 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
14391 - cat >>confdefs.h <<\_ACEOF
14392 -@%:@define GC_LINUX_THREADS 1
14395 - cat >>confdefs.h <<\_ACEOF
14396 -@%:@define _REENTRANT 1
14399 - if test "${enable_parallel_mark}"; then
14400 - cat >>confdefs.h <<\_ACEOF
14401 -@%:@define PARALLEL_MARK 1
14405 - cat >>confdefs.h <<\_ACEOF
14406 -@%:@define THREAD_LOCAL_ALLOC 1
14411 - cat >>confdefs.h <<\_ACEOF
14412 -@%:@define GC_LINUX_THREADS 1
14415 - cat >>confdefs.h <<\_ACEOF
14416 -@%:@define _REENTRANT 1
14421 - { echo "$as_me:$LINENO: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
14422 -echo "$as_me: WARNING: \"Only HP/UX 11 threads are supported.\"" >&2;}
14423 - cat >>confdefs.h <<\_ACEOF
14424 -@%:@define GC_HPUX_THREADS 1
14427 - cat >>confdefs.h <<\_ACEOF
14428 -@%:@define _POSIX_C_SOURCE 199506L
14431 - if test "${enable_parallel_mark}" = yes; then
14432 - cat >>confdefs.h <<\_ACEOF
14433 -@%:@define PARALLEL_MARK 1
14437 - cat >>confdefs.h <<\_ACEOF
14438 -@%:@define THREAD_LOCAL_ALLOC 1
14441 - THREADLIBS="-lpthread -lrt"
14444 - { echo "$as_me:$LINENO: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&5
14445 -echo "$as_me: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&2;}
14446 - cat >>confdefs.h <<\_ACEOF
14447 -@%:@define GC_FREEBSD_THREADS 1
14450 - INCLUDES="$INCLUDES -pthread"
14451 - THREADLIBS=-pthread
14454 - cat >>confdefs.h <<\_ACEOF
14455 -@%:@define GC_SOLARIS_THREADS 1
14458 - cat >>confdefs.h <<\_ACEOF
14459 -@%:@define GC_SOLARIS_PTHREADS 1
14464 - cat >>confdefs.h <<\_ACEOF
14465 -@%:@define GC_IRIX_THREADS 1
14473 - cat >>confdefs.h <<\_ACEOF
14474 -@%:@define GC_DARWIN_THREADS 1
14477 - cat >>confdefs.h <<\_ACEOF
14478 -@%:@define THREAD_LOCAL_ALLOC 1
14481 - if test "${enable_parallel_mark}" = yes; then
14482 - cat >>confdefs.h <<\_ACEOF
14483 -@%:@define PARALLEL_MARK 1
14491 - cat >>confdefs.h <<\_ACEOF
14492 -@%:@define GC_WIN32_THREADS 1
14495 - cat >>confdefs.h <<\_ACEOF
14496 -@%:@define NO_GETENV 1
14500 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
14501 - { { echo "$as_me:$LINENO: error: thread package $THREADS not yet supported" >&5
14502 -echo "$as_me: error: thread package $THREADS not yet supported" >&2;}
14503 - { (exit 1); exit 1; }; }
14506 - { { echo "$as_me:$LINENO: error: $THREADS is an unknown thread package" >&5
14507 -echo "$as_me: error: $THREADS is an unknown thread package" >&2;}
14508 - { (exit 1); exit 1; }; }
14514 - powerpc-*-darwin*)
14515 - powerpc_darwin=true
14520 -if test x$powerpc_darwin = xtrue; then
14521 - POWERPC_DARWIN_TRUE=
14522 - POWERPC_DARWIN_FALSE='#'
14524 - POWERPC_DARWIN_TRUE='#'
14525 - POWERPC_DARWIN_FALSE=
14529 -# We never want libdl on darwin. It is a fake libdl that just ends up making
14530 -# dyld calls anyway
14534 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
14535 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
14536 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
14537 - echo $ECHO_N "(cached) $ECHO_C" >&6
14539 - ac_check_lib_save_LIBS=$LIBS
14541 -cat >conftest.$ac_ext <<_ACEOF
14542 -#line $LINENO "configure"
14543 -#include "confdefs.h"
14545 -/* Override any gcc2 internal prototype to avoid an error. */
14546 -#ifdef __cplusplus
14549 -/* We use char because int might match the return type of a gcc2
14550 - builtin and then its argument prototype would still apply. */
14560 -rm -f conftest.$ac_objext conftest$ac_exeext
14561 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14562 - (eval $ac_link) 2>&5
14564 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
14565 - (exit $ac_status); } &&
14566 - { ac_try='test -s conftest$ac_exeext'
14567 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14568 - (eval $ac_try) 2>&5
14570 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
14571 - (exit $ac_status); }; }; then
14572 - ac_cv_lib_dl_dlopen=yes
14574 - echo "$as_me: failed program was:" >&5
14575 -cat conftest.$ac_ext >&5
14576 -ac_cv_lib_dl_dlopen=no
14578 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
14579 -LIBS=$ac_check_lib_save_LIBS
14581 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
14582 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
14583 -if test $ac_cv_lib_dl_dlopen = yes; then
14584 - EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
14592 -target_all=libgcjgc.la
14598 -# Check whether --with-ecos or --without-ecos was given.
14599 -if test "${with_ecos+set}" = set; then
14600 - withval="$with_ecos"
14601 - TARGET_ECOS="$with_ecos"
14607 -case "$TARGET_ECOS" in
14611 - cat >>confdefs.h <<\_ACEOF
14615 - CXXINCLUDES="-I${TARGET_ECOS}/include"
14616 - addobjs="$addobjs ecos.lo"
14626 - alpha*-*-openbsd*)
14627 - machdep="alpha_mach_dep.lo"
14628 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
14629 - { echo "$as_me:$LINENO: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
14630 -echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&2;}
14631 - # Check whether --enable-shared or --disable-shared was given.
14632 -if test "${enable_shared+set}" = set; then
14633 - enableval="$enable_shared"
14634 - p=${PACKAGE-default}
14635 -case $enableval in
14636 -yes) enable_shared=yes ;;
14637 -no) enable_shared=no ;;
14640 - # Look at the argument we got. We use all the common list separators.
14641 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
14642 - for pkg in $enableval; do
14643 - if test "X$pkg" = "X$p"; then
14644 - enable_shared=yes
14647 - IFS="$ac_save_ifs"
14656 - machdep="alpha_mach_dep.lo"
14658 - i?86-*-solaris2.[89]*)
14659 - cat >>confdefs.h <<\_ACEOF
14660 -@%:@define SOLARIS25_PROC_VDB_BUG_FIXED 1
14665 - machdep="mips_ultrix_mach_dep.lo"
14666 - cat >>confdefs.h <<\_ACEOF
14667 -@%:@define STACKBASE __stackbase
14670 - cat >>confdefs.h <<\_ACEOF
14671 -@%:@define DATASTART_IS_ETEXT 1
14675 - mips-dec-ultrix*)
14676 - machdep="mips_ultrix_mach-dep.lo"
14681 - machdep="mips_sgi_mach_dep.lo"
14682 - cat >>confdefs.h <<\_ACEOF
14683 -@%:@define NO_EXECUTE_PERMISSION 1
14687 - sparc-sun-solaris2.3*)
14688 - machdep="sparc_mach_dep.lo"
14689 - cat >>confdefs.h <<\_ACEOF
14690 -@%:@define SUNOS53_SHARED_LIB 1
14694 - sparc-sun-solaris2.*)
14695 - machdep="sparc_mach_dep.lo"
14698 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
14701 -if test x"$machdep" = x; then
14702 - machdep="mach_dep.lo"
14704 -addobjs="$addobjs $machdep"
14708 - sparc-sun-solaris2*)
14709 - if test "$GCC" = yes; then
14711 - for i in $CFLAGS; do
14716 - new_CFLAGS="$new_CFLAGS $i"
14720 - CFLAGS="$new_CFLAGS"
14725 -MY_CFLAGS="$CFLAGS"
14728 -cat >>confdefs.h <<\_ACEOF
14729 -@%:@define SILENT 1
14732 -cat >>confdefs.h <<\_ACEOF
14733 -@%:@define NO_SIGNALS 1
14736 -cat >>confdefs.h <<\_ACEOF
14737 -@%:@define NO_EXECUTE_PERMISSION 1
14740 -cat >>confdefs.h <<\_ACEOF
14741 -@%:@define ALL_INTERIOR_POINTERS 1
14745 -cat >>confdefs.h <<\_ACEOF
14746 -@%:@define JAVA_FINALIZATION 1
14749 -cat >>confdefs.h <<\_ACEOF
14750 -@%:@define GC_GCJ_SUPPORT 1
14753 -cat >>confdefs.h <<\_ACEOF
14754 -@%:@define ATOMIC_UNCOLLECTABLE 1
14758 -if test -n "${with_cross_host}"; then
14759 - cat >>confdefs.h <<\_ACEOF
14760 -@%:@define NO_SIGSET 1
14763 - cat >>confdefs.h <<\_ACEOF
14764 -@%:@define NO_DEBUGGING 1
14769 -# Check whether --enable-full-debug or --disable-full-debug was given.
14770 -if test "${enable_full_debug+set}" = set; then
14771 - enableval="$enable_full_debug"
14772 - if test "$enable_full_debug" = "yes"; then
14773 - { echo "$as_me:$LINENO: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&5
14774 -echo "$as_me: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&2;}
14775 - cat >>confdefs.h <<\_ACEOF
14776 -@%:@define KEEP_BACK_PTRS 1
14779 - cat >>confdefs.h <<\_ACEOF
14780 -@%:@define DBG_HDRS_ALL 1
14785 - cat >>confdefs.h <<\_ACEOF
14786 -@%:@define MAKE_BACK_GRAPH 1
14790 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
14791 - cat >>confdefs.h <<\_ACEOF
14792 -@%:@define MAKE_BACK_GRAPH 1
14795 - { echo "$as_me:$LINENO: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
14796 -echo "$as_me: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&2;}
14797 - cat >>confdefs.h <<\_ACEOF
14798 -@%:@define SAVE_CALL_COUNT 8
14808 -if test -z "$with_cross_host"; then
14810 - USE_LIBDIR_FALSE='#'
14812 - USE_LIBDIR_TRUE='#'
14813 - USE_LIBDIR_FALSE=
14817 -if test "${multilib}" = "yes"; then
14818 - multilib_arg="--enable-multilib"
14823 - ac_config_files="$ac_config_files Makefile include/Makefile"
14824 - ac_config_commands="$ac_config_commands default"
14825 -cat >confcache <<\_ACEOF
14826 -# This file is a shell script that caches the results of configure
14827 -# tests run on this system so they can be shared between configure
14828 -# scripts and configure runs, see configure's option --config-cache.
14829 -# It is not useful on other systems. If it contains results you don't
14830 -# want to keep, you may remove or edit it.
14832 -# config.status only pays attention to the cache file if you give it
14833 -# the --recheck option to rerun configure.
14835 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
14836 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
14837 -# following values.
14841 -# The following way of writing the cache mishandles newlines in values,
14842 -# but we know of no workaround that is simple, portable, and efficient.
14843 -# So, don't put newlines in cache variables' values.
14844 -# Ultrix sh set writes to stderr and can't be redirected directly,
14845 -# and sets the high bit in the cache file unless we assign to the vars.
14848 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
14850 - # `set' does not quote correctly, so add quotes (double-quote
14851 - # substitution turns \\\\ into \\, and sed turns \\ into \).
14854 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
14857 - # `set' quotes correctly as required by POSIX, so do not add quotes.
14859 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
14866 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
14868 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
14869 - : end' >>confcache
14870 -if cmp -s $cache_file confcache; then :; else
14871 - if test -w $cache_file; then
14872 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
14873 - cat confcache >$cache_file
14875 - echo "not updating unwritable cache $cache_file"
14880 -test "x$prefix" = xNONE && prefix=$ac_default_prefix
14881 -# Let make expand exec_prefix.
14882 -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
14884 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
14885 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
14886 -# trailing colons and then remove the whole line if VPATH becomes empty
14887 -# (actually we leave an empty line to preserve line numbers).
14888 -if test "x$srcdir" = x.; then
14889 - ac_vpsub='/^[ ]*VPATH[ ]*=/{
14890 -s/:*\$(srcdir):*/:/;
14891 -s/:*\${srcdir}:*/:/;
14892 -s/:*@srcdir@:*/:/;
14893 -s/^\([^=]*=[ ]*\):*/\1/;
14899 -# Transform confdefs.h into DEFS.
14900 -# Protect against shell expansion while executing Makefile rules.
14901 -# Protect against Makefile macro expansion.
14903 -# If the first sed substitution is executed (which looks for macros that
14904 -# take arguments), then we branch to the quote section. Otherwise,
14905 -# look for a macro that doesn't take arguments.
14906 -cat >confdef2opt.sed <<\_ACEOF
14909 -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
14911 -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
14915 -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
14921 -# We use echo to avoid assuming a particular line-breaking character.
14922 -# The extra dot is to prevent the shell from consuming trailing
14923 -# line-breaks from the sub-command output. A line-break within
14924 -# single-quotes doesn't work because, if this script is created in a
14925 -# platform that uses two characters for line-breaks (e.g., DOS), tr
14927 -ac_LF_and_DOT=`echo; echo .`
14928 -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
14929 -rm -f confdef2opt.sed
14934 -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
14935 - # 1. Remove the extension, and $U if already installed.
14936 - ac_i=`echo "$ac_i" |
14937 - sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
14939 - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
14940 - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
14942 -LIB@&t@OBJS=$ac_libobjs
14944 -LTLIBOBJS=$ac_ltlibobjs
14947 -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
14948 - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
14949 -Usually this means the macro was only invoked conditionally." >&5
14950 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
14951 -Usually this means the macro was only invoked conditionally." >&2;}
14952 - { (exit 1); exit 1; }; }
14954 -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
14955 - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
14956 -Usually this means the macro was only invoked conditionally." >&5
14957 -echo "$as_me: error: conditional \"AMDEP\" was never defined.
14958 -Usually this means the macro was only invoked conditionally." >&2;}
14959 - { (exit 1); exit 1; }; }
14961 -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
14962 - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
14963 -Usually this means the macro was only invoked conditionally." >&5
14964 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
14965 -Usually this means the macro was only invoked conditionally." >&2;}
14966 - { (exit 1); exit 1; }; }
14968 -if test -z "${POWERPC_DARWIN_TRUE}" && test -z "${POWERPC_DARWIN_FALSE}"; then
14969 - { { echo "$as_me:$LINENO: error: conditional \"POWERPC_DARWIN\" was never defined.
14970 -Usually this means the macro was only invoked conditionally." >&5
14971 -echo "$as_me: error: conditional \"POWERPC_DARWIN\" was never defined.
14972 -Usually this means the macro was only invoked conditionally." >&2;}
14973 - { (exit 1); exit 1; }; }
14975 -if test -z "${USE_LIBDIR_TRUE}" && test -z "${USE_LIBDIR_FALSE}"; then
14976 - { { echo "$as_me:$LINENO: error: conditional \"USE_LIBDIR\" was never defined.
14977 -Usually this means the macro was only invoked conditionally." >&5
14978 -echo "$as_me: error: conditional \"USE_LIBDIR\" was never defined.
14979 -Usually this means the macro was only invoked conditionally." >&2;}
14980 - { (exit 1); exit 1; }; }
14983 -: ${CONFIG_STATUS=./config.status}
14984 -ac_clean_files_save=$ac_clean_files
14985 -ac_clean_files="$ac_clean_files $CONFIG_STATUS"
14986 -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
14987 -echo "$as_me: creating $CONFIG_STATUS" >&6;}
14988 -cat >$CONFIG_STATUS <<_ACEOF
14990 -# Generated by $as_me.
14991 -# Run this file to recreate the current configuration.
14992 -# Compiler output produced by configure, useful for debugging
14993 -# configure, is in config.log if it exists.
14996 -SHELL=\${CONFIG_SHELL-$SHELL}
14999 -cat >>$CONFIG_STATUS <<\_ACEOF
15000 -## --------------------- ##
15001 -## M4sh Initialization. ##
15002 -## --------------------- ##
15004 -# Be Bourne compatible
15005 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
15008 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
15009 - # is contrary to our usage. Disable this feature.
15010 - alias -g '${1+"$@"}'='"$@"'
15011 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
15015 -# Support unset when possible.
15016 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
15023 -# Work around bugs in pre-3.0 UWIN ksh.
15024 -$as_unset ENV MAIL MAILPATH
15030 -for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME
15032 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
15033 - eval $as_var=C; export $as_var
15035 - $as_unset $as_var
15039 -# Required to use basename.
15040 -if expr a : '\(a\)' >/dev/null 2>&1; then
15046 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
15047 - as_basename=basename
15049 - as_basename=false
15053 -# Name of the executable.
15054 -as_me=`$as_basename "$0" ||
15055 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
15056 - X"$0" : 'X\(//\)$' \| \
15057 - X"$0" : 'X\(/\)$' \| \
15058 - . : '\(.\)' 2>/dev/null ||
15060 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
15061 - /^X\/\(\/\/\)$/{ s//\1/; q; }
15062 - /^X\/\(\/\).*/{ s//\1/; q; }
15066 -# PATH needs CR, and LINENO needs CR and PATH.
15067 -# Avoid depending upon Character Ranges.
15068 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
15069 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
15070 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
15071 -as_cr_digits='0123456789'
15072 -as_cr_alnum=$as_cr_Letters$as_cr_digits
15074 -# The user is always right.
15075 -if test "${PATH_SEPARATOR+set}" != set; then
15076 - echo "#! /bin/sh" >conftest.sh
15077 - echo "exit 0" >>conftest.sh
15078 - chmod +x conftest.sh
15079 - if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then
15080 - PATH_SEPARATOR=';'
15084 - rm -f conftest.sh
15088 - as_lineno_1=$LINENO
15089 - as_lineno_2=$LINENO
15090 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
15091 - test "x$as_lineno_1" != "x$as_lineno_2" &&
15092 - test "x$as_lineno_3" = "x$as_lineno_2" || {
15093 - # Find who we are. Look in the path if we contain no path at all
15094 - # relative or not.
15096 - *[\\/]* ) as_myself=$0 ;;
15097 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
15098 -for as_dir in $PATH
15101 - test -z "$as_dir" && as_dir=.
15102 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
15107 - # We did not find ourselves, most probably we were run as `sh COMMAND'
15108 - # in which case we are not to be found in the path.
15109 - if test "x$as_myself" = x; then
15112 - if test ! -f "$as_myself"; then
15113 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
15114 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
15115 - { (exit 1); exit 1; }; }
15117 - case $CONFIG_SHELL in
15119 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
15120 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
15123 - test -z "$as_dir" && as_dir=.
15124 - for as_base in sh bash ksh sh5; do
15127 - if ("$as_dir/$as_base" -c '
15128 - as_lineno_1=$LINENO
15129 - as_lineno_2=$LINENO
15130 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
15131 - test "x$as_lineno_1" != "x$as_lineno_2" &&
15132 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
15133 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
15134 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
15135 - CONFIG_SHELL=$as_dir/$as_base
15136 - export CONFIG_SHELL
15137 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
15145 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
15146 - # uniformly replaced by the line number. The first 'sed' inserts a
15147 - # line-number line before each line; the second 'sed' does the real
15148 - # work. The second script uses 'N' to pair each line-number line
15149 - # with the numbered line, and appends trailing '-' during
15150 - # substitution so that $LINENO is not a special case at line end.
15151 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
15152 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
15153 - sed '=' <$as_myself |
15158 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
15161 - s,^['$as_cr_digits']*\n,,
15162 - ' >$as_me.lineno &&
15163 - chmod +x $as_me.lineno ||
15164 - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
15165 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
15166 - { (exit 1); exit 1; }; }
15168 - # Don't try to exec as it changes $[0], causing all sort of problems
15169 - # (the dirname of $[0] is not the place where we might find the
15170 - # original and so on. Autoconf is especially sensible to this).
15171 - . ./$as_me.lineno
15172 - # Exit status is that of the last command.
15177 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
15178 - *c*,-n*) ECHO_N= ECHO_C='
15180 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
15181 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
15184 -if expr a : '\(a\)' >/dev/null 2>&1; then
15190 -rm -f conf$$ conf$$.exe conf$$.file
15192 -if ln -s conf$$.file conf$$ 2>/dev/null; then
15193 - # We could just check for DJGPP; but this test a) works b) is more generic
15194 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
15195 - if test -f conf$$.exe; then
15196 - # Don't use ln at all; we don't have any links
15201 -elif ln conf$$.file conf$$ 2>/dev/null; then
15206 -rm -f conf$$ conf$$.exe conf$$.file
15208 -if mkdir -p . 2>/dev/null; then
15214 -as_executable_p="test -f"
15216 -# Sed expression to map a string onto a valid CPP name.
15217 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
15219 -# Sed expression to map a string onto a valid variable name.
15220 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
15224 -# We need space, tab and new line, in precisely that order.
15234 -# Open the log real soon, to keep \$[0] and so on meaningful, and to
15235 -# report actual input values of CONFIG_FILES etc. instead of their
15236 -# values after options handling. Logging --version etc. is OK.
15237 -exec 5>>config.log
15240 - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
15241 -@%:@@%:@ Running $as_me. @%:@@%:@
15246 -This file was extended by $as_me, which was
15247 -generated by GNU Autoconf 2.54. Invocation command line was
15249 - CONFIG_FILES = $CONFIG_FILES
15250 - CONFIG_HEADERS = $CONFIG_HEADERS
15251 - CONFIG_LINKS = $CONFIG_LINKS
15252 - CONFIG_COMMANDS = $CONFIG_COMMANDS
15256 -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
15260 -# Files that config.status was made for.
15261 -if test -n "$ac_config_files"; then
15262 - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
15265 -if test -n "$ac_config_headers"; then
15266 - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
15269 -if test -n "$ac_config_links"; then
15270 - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
15273 -if test -n "$ac_config_commands"; then
15274 - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
15277 -cat >>$CONFIG_STATUS <<\_ACEOF
15280 -\`$as_me' instantiates files from templates according to the
15281 -current configuration.
15283 -Usage: $0 [OPTIONS] [FILE]...
15285 - -h, --help print this help, then exit
15286 - -V, --version print version number, then exit
15287 - -d, --debug don't remove temporary files
15288 - --recheck update $as_me by reconfiguring in the same conditions
15289 - --file=FILE[:TEMPLATE]
15290 - instantiate the configuration file FILE
15292 -Configuration files:
15295 -Configuration commands:
15298 -Report bugs to <bug-autoconf@gnu.org>."
15301 -cat >>$CONFIG_STATUS <<_ACEOF
15304 -configured by $0, generated by GNU Autoconf 2.54,
15305 - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
15307 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
15308 -Free Software Foundation, Inc.
15309 -This config.status script is free software; the Free Software Foundation
15310 -gives unlimited permission to copy, distribute and modify it."
15312 -INSTALL="$INSTALL"
15315 -cat >>$CONFIG_STATUS <<\_ACEOF
15316 -# If no file are specified by the user, then we need to provide default
15317 -# value. By we need to know if files were specified by the user.
15318 -ac_need_defaults=:
15319 -while test $# != 0
15323 - ac_option=`expr "x$1" : 'x\([^=]*\)='`
15324 - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
15332 - *) # This is not an option, so the user has probably given explicit
15335 - ac_need_defaults=false;;
15338 - case $ac_option in
15339 - # Handling of the options.
15341 -cat >>$CONFIG_STATUS <<_ACEOF
15342 - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
15343 - echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
15344 - exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
15346 -cat >>$CONFIG_STATUS <<\_ACEOF
15347 - --version | --vers* | -V )
15348 - echo "$ac_cs_version"; exit 0 ;;
15350 - # Conflict between --help and --header
15351 - { { echo "$as_me:$LINENO: error: ambiguous option: $1
15352 -Try \`$0 --help' for more information." >&5
15353 -echo "$as_me: error: ambiguous option: $1
15354 -Try \`$0 --help' for more information." >&2;}
15355 - { (exit 1); exit 1; }; };;
15356 - --help | --hel | -h )
15357 - echo "$ac_cs_usage"; exit 0 ;;
15358 - --debug | --d* | -d )
15360 - --file | --fil | --fi | --f )
15362 - CONFIG_FILES="$CONFIG_FILES $ac_optarg"
15363 - ac_need_defaults=false;;
15364 - --header | --heade | --head | --hea )
15366 - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
15367 - ac_need_defaults=false;;
15369 - # This is an error.
15370 - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
15371 -Try \`$0 --help' for more information." >&5
15372 -echo "$as_me: error: unrecognized option: $1
15373 -Try \`$0 --help' for more information." >&2;}
15374 - { (exit 1); exit 1; }; } ;;
15376 - *) ac_config_targets="$ac_config_targets $1" ;;
15384 -cat >>$CONFIG_STATUS <<_ACEOF
15386 -# INIT-COMMANDS section.
15389 -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
15393 -with_multisubdir=${with_multisubdir}
15394 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
15395 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
15396 -gc_basedir=${gc_basedir}
15405 -cat >>$CONFIG_STATUS <<\_ACEOF
15406 -for ac_config_target in $ac_config_targets
15408 - case "$ac_config_target" in
15409 - # Handling of arguments.
15410 - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
15411 - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
15412 - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
15413 - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
15414 - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
15415 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
15416 - { (exit 1); exit 1; }; };;
15420 -# If the user did not use the arguments to specify the items to instantiate,
15421 -# then the envvar interface is used. Set only those that are not.
15422 -# We use the long form for the default assignment because of an extremely
15423 -# bizarre bug on SunOS 4.1.3.
15424 -if $ac_need_defaults; then
15425 - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
15426 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
15429 -# Create a temporary directory, and hook for its removal unless debugging.
15432 - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
15433 - trap '{ (exit 1); exit 1; }' 1 2 13 15
15436 -# Create a (secure) tmp directory for tmp files.
15439 - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
15440 - test -n "$tmp" && test -d "$tmp"
15443 - tmp=$TMPDIR/cs$$-$RANDOM
15444 - (umask 077 && mkdir $tmp)
15447 - echo "$me: cannot create a temporary directory in $TMPDIR" >&2
15448 - { (exit 1); exit 1; }
15453 -cat >>$CONFIG_STATUS <<_ACEOF
15456 -# CONFIG_FILES section.
15459 -# No need to generate the scripts if there are no CONFIG_FILES.
15460 -# This happens for instance when ./config.status config.h
15461 -if test -n "\$CONFIG_FILES"; then
15462 - # Protect against being on the right side of a sed subst in config.status.
15463 - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
15464 - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
15465 -s,@SHELL@,$SHELL,;t t
15466 -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
15467 -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
15468 -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
15469 -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
15470 -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
15471 -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
15472 -s,@exec_prefix@,$exec_prefix,;t t
15473 -s,@prefix@,$prefix,;t t
15474 -s,@program_transform_name@,$program_transform_name,;t t
15475 -s,@bindir@,$bindir,;t t
15476 -s,@sbindir@,$sbindir,;t t
15477 -s,@libexecdir@,$libexecdir,;t t
15478 -s,@datadir@,$datadir,;t t
15479 -s,@sysconfdir@,$sysconfdir,;t t
15480 -s,@sharedstatedir@,$sharedstatedir,;t t
15481 -s,@localstatedir@,$localstatedir,;t t
15482 -s,@libdir@,$libdir,;t t
15483 -s,@includedir@,$includedir,;t t
15484 -s,@oldincludedir@,$oldincludedir,;t t
15485 -s,@infodir@,$infodir,;t t
15486 -s,@mandir@,$mandir,;t t
15487 -s,@build_alias@,$build_alias,;t t
15488 -s,@host_alias@,$host_alias,;t t
15489 -s,@target_alias@,$target_alias,;t t
15490 -s,@DEFS@,$DEFS,;t t
15491 -s,@ECHO_C@,$ECHO_C,;t t
15492 -s,@ECHO_N@,$ECHO_N,;t t
15493 -s,@ECHO_T@,$ECHO_T,;t t
15494 -s,@LIBS@,$LIBS,;t t
15495 -s,@gc_basedir@,$gc_basedir,;t t
15496 -s,@build@,$build,;t t
15497 -s,@build_cpu@,$build_cpu,;t t
15498 -s,@build_vendor@,$build_vendor,;t t
15499 -s,@build_os@,$build_os,;t t
15500 -s,@host@,$host,;t t
15501 -s,@host_cpu@,$host_cpu,;t t
15502 -s,@host_vendor@,$host_vendor,;t t
15503 -s,@host_os@,$host_os,;t t
15504 -s,@target@,$target,;t t
15505 -s,@target_cpu@,$target_cpu,;t t
15506 -s,@target_vendor@,$target_vendor,;t t
15507 -s,@target_os@,$target_os,;t t
15508 -s,@mkinstalldirs@,$mkinstalldirs,;t t
15509 -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
15510 -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
15511 -s,@INSTALL_DATA@,$INSTALL_DATA,;t t
15512 -s,@PACKAGE@,$PACKAGE,;t t
15513 -s,@VERSION@,$VERSION,;t t
15514 -s,@ACLOCAL@,$ACLOCAL,;t t
15515 -s,@AUTOCONF@,$AUTOCONF,;t t
15516 -s,@AUTOMAKE@,$AUTOMAKE,;t t
15517 -s,@AUTOHEADER@,$AUTOHEADER,;t t
15518 -s,@MAKEINFO@,$MAKEINFO,;t t
15519 -s,@AMTAR@,$AMTAR,;t t
15520 -s,@install_sh@,$install_sh,;t t
15521 -s,@STRIP@,$STRIP,;t t
15522 -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
15523 -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
15525 -s,@SET_MAKE@,$SET_MAKE,;t t
15527 -s,@ac_ct_AS@,$ac_ct_AS,;t t
15529 -s,@ac_ct_AR@,$ac_ct_AR,;t t
15530 -s,@RANLIB@,$RANLIB,;t t
15531 -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
15532 -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
15533 -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
15534 -s,@MAINT@,$MAINT,;t t
15535 -s,@GC_CFLAGS@,$GC_CFLAGS,;t t
15537 -s,@CFLAGS@,$CFLAGS,;t t
15538 -s,@LDFLAGS@,$LDFLAGS,;t t
15539 -s,@CPPFLAGS@,$CPPFLAGS,;t t
15540 -s,@ac_ct_CC@,$ac_ct_CC,;t t
15541 -s,@EXEEXT@,$EXEEXT,;t t
15542 -s,@OBJEXT@,$OBJEXT,;t t
15543 -s,@DEPDIR@,$DEPDIR,;t t
15544 -s,@am__include@,$am__include,;t t
15545 -s,@am__quote@,$am__quote,;t t
15546 -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
15547 -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
15548 -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
15549 -s,@CCDEPMODE@,$CCDEPMODE,;t t
15550 -s,@LN_S@,$LN_S,;t t
15551 -s,@ECHO@,$ECHO,;t t
15553 -s,@EGREP@,$EGREP,;t t
15554 -s,@LIBTOOL@,$LIBTOOL,;t t
15555 -s,@THREADLIBS@,$THREADLIBS,;t t
15556 -s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t
15557 -s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t
15558 -s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t
15559 -s,@target_all@,$target_all,;t t
15561 -s,@INCLUDES@,$INCLUDES,;t t
15562 -s,@CXXINCLUDES@,$CXXINCLUDES,;t t
15563 -s,@addobjs@,$addobjs,;t t
15564 -s,@MY_CFLAGS@,$MY_CFLAGS,;t t
15565 -s,@USE_LIBDIR_TRUE@,$USE_LIBDIR_TRUE,;t t
15566 -s,@USE_LIBDIR_FALSE@,$USE_LIBDIR_FALSE,;t t
15567 -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
15568 -s,@LTLIBOBJS@,$LTLIBOBJS,;t t
15573 - cat >>$CONFIG_STATUS <<\_ACEOF
15574 - # Split the substitutions into bite-sized pieces for seds with
15575 - # small command number limits, like on Digital OSF/1 and HP-UX.
15576 - ac_max_sed_lines=48
15577 - ac_sed_frag=1 # Number of current file.
15578 - ac_beg=1 # First line for current file.
15579 - ac_end=$ac_max_sed_lines # Line after last line for current file.
15582 - while $ac_more_lines; do
15583 - if test $ac_beg -gt 1; then
15584 - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
15586 - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
15588 - if test ! -s $tmp/subs.frag; then
15589 - ac_more_lines=false
15591 - # The purpose of the label and of the branching condition is to
15592 - # speed up the sed processing (if there are no `@' at all, there
15593 - # is no need to browse any of the substitutions).
15594 - # These are the two extra sed commands mentioned above.
15596 - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
15597 - if test -z "$ac_sed_cmds"; then
15598 - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
15600 - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
15602 - ac_sed_frag=`expr $ac_sed_frag + 1`
15604 - ac_end=`expr $ac_end + $ac_max_sed_lines`
15607 - if test -z "$ac_sed_cmds"; then
15610 -fi # test -n "$CONFIG_FILES"
15613 -cat >>$CONFIG_STATUS <<\_ACEOF
15614 -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
15615 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
15617 - - | *:- | *:-:* ) # input from stdin
15619 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
15620 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
15621 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
15622 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
15623 - * ) ac_file_in=$ac_file.in ;;
15626 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
15627 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
15628 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15629 - X"$ac_file" : 'X\(//\)[^/]' \| \
15630 - X"$ac_file" : 'X\(//\)$' \| \
15631 - X"$ac_file" : 'X\(/\)' \| \
15632 - . : '\(.\)' 2>/dev/null ||
15633 -echo X"$ac_file" |
15634 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15635 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15636 - /^X\(\/\/\)$/{ s//\1/; q; }
15637 - /^X\(\/\).*/{ s//\1/; q; }
15639 - { if $as_mkdir_p; then
15640 - mkdir -p "$ac_dir"
15644 - while test ! -d "$as_dir"; do
15645 - as_dirs="$as_dir $as_dirs"
15646 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
15647 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15648 - X"$as_dir" : 'X\(//\)[^/]' \| \
15649 - X"$as_dir" : 'X\(//\)$' \| \
15650 - X"$as_dir" : 'X\(/\)' \| \
15651 - . : '\(.\)' 2>/dev/null ||
15653 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15654 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15655 - /^X\(\/\/\)$/{ s//\1/; q; }
15656 - /^X\(\/\).*/{ s//\1/; q; }
15659 - test ! -n "$as_dirs" || mkdir $as_dirs
15660 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
15661 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
15662 - { (exit 1); exit 1; }; }; }
15666 -if test "$ac_dir" != .; then
15667 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
15668 - # A "../" for each directory in $ac_dir_suffix.
15669 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
15671 - ac_dir_suffix= ac_top_builddir=
15675 - .) # No --srcdir option. We are building in place.
15677 - if test -z "$ac_top_builddir"; then
15680 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
15682 - [\\/]* | ?:[\\/]* ) # Absolute path.
15683 - ac_srcdir=$srcdir$ac_dir_suffix;
15684 - ac_top_srcdir=$srcdir ;;
15685 - *) # Relative path.
15686 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
15687 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
15689 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
15691 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
15692 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
15693 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
15694 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
15698 - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
15699 - *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
15702 - if test x"$ac_file" != x-; then
15703 - { echo "$as_me:$LINENO: creating $ac_file" >&5
15704 -echo "$as_me: creating $ac_file" >&6;}
15707 - # Let's still pretend it is `configure' which instantiates (i.e., don't
15708 - # use $as_me), people would be surprised to read:
15709 - # /* config.h. Generated by config.status. */
15710 - if test x"$ac_file" = x-; then
15713 - configure_input="$ac_file. "
15715 - configure_input=$configure_input"Generated from `echo $ac_file_in |
15716 - sed 's,.*/,,'` by configure."
15718 - # First look for the input files in the build tree, otherwise in the
15720 - ac_file_inputs=`IFS=:
15721 - for f in $ac_file_in; do
15723 - -) echo $tmp/stdin ;;
15725 - # Absolute (can't be DOS-style, as IFS=:)
15726 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
15727 -echo "$as_me: error: cannot find input file: $f" >&2;}
15728 - { (exit 1); exit 1; }; }
15731 - if test -f "$f"; then
15734 - elif test -f "$srcdir/$f"; then
15739 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
15740 -echo "$as_me: error: cannot find input file: $f" >&2;}
15741 - { (exit 1); exit 1; }; }
15744 - done` || { (exit 1); exit 1; }
15746 -cat >>$CONFIG_STATUS <<_ACEOF
15750 -cat >>$CONFIG_STATUS <<\_ACEOF
15752 -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
15753 -s,@configure_input@,$configure_input,;t t
15754 -s,@srcdir@,$ac_srcdir,;t t
15755 -s,@abs_srcdir@,$ac_abs_srcdir,;t t
15756 -s,@top_srcdir@,$ac_top_srcdir,;t t
15757 -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
15758 -s,@builddir@,$ac_builddir,;t t
15759 -s,@abs_builddir@,$ac_abs_builddir,;t t
15760 -s,@top_builddir@,$ac_top_builddir,;t t
15761 -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
15762 -s,@INSTALL@,$ac_INSTALL,;t t
15763 -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
15765 - if test x"$ac_file" != x-; then
15766 - mv $tmp/out $ac_file
15774 -cat >>$CONFIG_STATUS <<\_ACEOF
15777 -# CONFIG_COMMANDS section.
15779 -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
15780 - ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
15781 - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
15782 - ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
15783 -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15784 - X"$ac_dest" : 'X\(//\)[^/]' \| \
15785 - X"$ac_dest" : 'X\(//\)$' \| \
15786 - X"$ac_dest" : 'X\(/\)' \| \
15787 - . : '\(.\)' 2>/dev/null ||
15788 -echo X"$ac_dest" |
15789 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15790 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15791 - /^X\(\/\/\)$/{ s//\1/; q; }
15792 - /^X\(\/\).*/{ s//\1/; q; }
15796 -if test "$ac_dir" != .; then
15797 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
15798 - # A "../" for each directory in $ac_dir_suffix.
15799 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
15801 - ac_dir_suffix= ac_top_builddir=
15805 - .) # No --srcdir option. We are building in place.
15807 - if test -z "$ac_top_builddir"; then
15810 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
15812 - [\\/]* | ?:[\\/]* ) # Absolute path.
15813 - ac_srcdir=$srcdir$ac_dir_suffix;
15814 - ac_top_srcdir=$srcdir ;;
15815 - *) # Relative path.
15816 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
15817 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
15819 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
15821 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
15822 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
15823 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
15824 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
15827 - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
15828 -echo "$as_me: executing $ac_dest commands" >&6;}
15830 - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
15831 - # Strip MF so we end up with the name of the file.
15832 - mf=`echo "$mf" | sed -e 's/:.*$//'`
15833 - if (sed 1q $mf | fgrep 'generated by automake') > /dev/null 2>&1; then
15834 - dirpart=`(dirname "$mf") 2>/dev/null ||
15835 -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15836 - X"$mf" : 'X\(//\)[^/]' \| \
15837 - X"$mf" : 'X\(//\)$' \| \
15838 - X"$mf" : 'X\(/\)' \| \
15839 - . : '\(.\)' 2>/dev/null ||
15841 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15842 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15843 - /^X\(\/\/\)$/{ s//\1/; q; }
15844 - /^X\(\/\).*/{ s//\1/; q; }
15849 - grep '^DEP_FILES *= *[^ @%:@]' < "$mf" > /dev/null || continue
15850 - # Extract the definition of DEP_FILES from the Makefile without
15851 - # running `make'.
15852 - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
15853 - test -z "$DEPDIR" && continue
15854 - # When using ansi2knr, U may be empty or an underscore; expand it
15855 - U=`sed -n -e '/^U = / s///p' < "$mf"`
15856 - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
15857 - # We invoke sed twice because it is the simplest approach to
15858 - # changing $(DEPDIR) to its actual value in the expansion.
15859 - for file in `sed -n -e '
15860 - /^DEP_FILES = .*\\\\$/ {
15861 - s/^DEP_FILES = //
15869 - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
15870 - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
15871 - # Make sure the directory exists.
15872 - test -f "$dirpart/$file" && continue
15873 - fdir=`(dirname "$file") 2>/dev/null ||
15874 -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15875 - X"$file" : 'X\(//\)[^/]' \| \
15876 - X"$file" : 'X\(//\)$' \| \
15877 - X"$file" : 'X\(/\)' \| \
15878 - . : '\(.\)' 2>/dev/null ||
15880 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15881 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15882 - /^X\(\/\/\)$/{ s//\1/; q; }
15883 - /^X\(\/\).*/{ s//\1/; q; }
15885 - { if $as_mkdir_p; then
15886 - mkdir -p $dirpart/$fdir
15888 - as_dir=$dirpart/$fdir
15890 - while test ! -d "$as_dir"; do
15891 - as_dirs="$as_dir $as_dirs"
15892 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
15893 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15894 - X"$as_dir" : 'X\(//\)[^/]' \| \
15895 - X"$as_dir" : 'X\(//\)$' \| \
15896 - X"$as_dir" : 'X\(/\)' \| \
15897 - . : '\(.\)' 2>/dev/null ||
15899 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15900 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15901 - /^X\(\/\/\)$/{ s//\1/; q; }
15902 - /^X\(\/\).*/{ s//\1/; q; }
15905 - test ! -n "$as_dirs" || mkdir $as_dirs
15906 - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
15907 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
15908 - { (exit 1); exit 1; }; }; }
15910 - # echo "creating $dirpart/$file"
15911 - echo '# dummy' > "$dirpart/$file"
15916 -echo "$DEFS" > boehm-cflags
15918 -if test -n "$CONFIG_FILES"; then
15919 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
15920 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
15926 -cat >>$CONFIG_STATUS <<\_ACEOF
15928 -{ (exit 0); exit 0; }
15930 -chmod +x $CONFIG_STATUS
15931 -ac_clean_files=$ac_clean_files_save
15934 -# configure is writing to config.log, and then calls config.status.
15935 -# config.status does its own redirection, appending to config.log.
15936 -# Unfortunately, on DOS this fails, as config.log is still kept open
15937 -# by configure, so config.status won't be able to write to it; its
15938 -# output is simply discarded. So we exec the FD to /dev/null,
15939 -# effectively closing config.log, so it can be properly (re)opened and
15940 -# appended to by config.status. When coming back to configure, we
15941 -# need to make the FD available again.
15942 -if test "$no_create" != yes; then
15945 - $SHELL $CONFIG_STATUS || ac_cs_success=false
15946 - exec 5>>config.log
15947 - # Use ||, not &&, to avoid exiting from the if with $? = 1, which
15948 - # would make configure fail if this is the last instruction.
15949 - $ac_cs_success || { (exit 1); exit 1; }
15952 diff -Nur ../boehm-gc/autom4te.cache/requests boehm-gc/autom4te.cache/requests
15953 --- ../boehm-gc/autom4te.cache/requests Sat May 31 15:09:32 2003
15954 +++ boehm-gc/autom4te.cache/requests Wed Dec 31 16:00:00 1969
15956 -# This file was created by autom4te-2.54.
15957 -# It contains the lists of macros which have been traced.
15958 -# It can be safely removed.
15965 - '/sw/share/autoconf'
15968 - '/sw/share/autoconf/autoconf/autoconf.m4f',
15973 - 'm4_pattern_forbid' => 1,
15974 - 'AC_C_VOLATILE' => 1,
15975 - 'AC_TYPE_OFF_T' => 1,
15976 - 'AC_FUNC_CLOSEDIR_VOID' => 1,
15977 - 'AC_REPLACE_FNMATCH' => 1,
15978 - 'AC_PROG_LIBTOOL' => 1,
15979 - 'AC_FUNC_STAT' => 1,
15980 - 'AC_FUNC_WAIT3' => 1,
15981 - 'AC_HEADER_TIME' => 1,
15982 - 'AC_FUNC_LSTAT' => 1,
15983 - 'AC_STRUCT_TM' => 1,
15984 - 'AM_AUTOMAKE_VERSION' => 1,
15985 - 'AC_FUNC_GETMNTENT' => 1,
15986 - 'AC_TYPE_MODE_T' => 1,
15987 - 'AC_FUNC_STRTOD' => 1,
15988 - 'AC_CHECK_HEADERS' => 1,
15989 - 'AC_FUNC_STRNLEN' => 1,
15990 - 'AC_PROG_CXX' => 1,
15991 - 'AC_PATH_X' => 1,
15992 - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
15993 - 'AC_PROG_AWK' => 1,
15994 - 'AC_HEADER_STDC' => 1,
15995 - 'AC_HEADER_MAJOR' => 1,
15996 - 'AC_FUNC_ERROR_AT_LINE' => 1,
15997 - 'AC_PROG_GCC_TRADITIONAL' => 1,
15998 - 'AC_LIBSOURCE' => 1,
15999 - 'AC_FUNC_MBRTOWC' => 1,
16000 - 'AC_STRUCT_ST_BLOCKS' => 1,
16001 - 'AC_TYPE_SIGNAL' => 1,
16002 - 'AC_TYPE_UID_T' => 1,
16003 - 'AC_CONFIG_AUX_DIR' => 1,
16004 - 'AC_PROG_MAKE_SET' => 1,
16005 - 'm4_pattern_allow' => 1,
16006 - 'AC_DEFINE_TRACE_LITERAL' => 1,
16007 - 'AC_FUNC_STRERROR_R' => 1,
16008 - 'AC_PROG_CC' => 1,
16009 - 'AC_FUNC_FORK' => 1,
16010 - 'AC_DECL_SYS_SIGLIST' => 1,
16011 - 'AC_FUNC_STRCOLL' => 1,
16012 - 'AC_FUNC_VPRINTF' => 1,
16013 - 'AC_PROG_YACC' => 1,
16015 - 'AC_STRUCT_TIMEZONE' => 1,
16016 - 'AC_FUNC_CHOWN' => 1,
16018 - 'AC_FUNC_ALLOCA' => 1,
16019 - 'AC_CANONICAL_HOST' => 1,
16020 - 'AC_FUNC_GETPGRP' => 1,
16021 - 'AC_PROG_RANLIB' => 1,
16022 - 'AM_INIT_AUTOMAKE' => 1,
16023 - 'AC_FUNC_SETPGRP' => 1,
16024 - 'AC_CONFIG_SUBDIRS' => 1,
16025 - 'AC_FUNC_MMAP' => 1,
16026 - 'AC_FUNC_REALLOC' => 1,
16027 - 'AC_TYPE_SIZE_T' => 1,
16028 - 'AC_CHECK_TYPES' => 1,
16029 - 'AC_CHECK_MEMBERS' => 1,
16030 - 'AM_MAINTAINER_MODE' => 1,
16031 - 'AC_FUNC_UTIME_NULL' => 1,
16032 - 'AC_FUNC_SELECT_ARGTYPES' => 1,
16033 - 'AC_FUNC_STRFTIME' => 1,
16034 - 'AC_HEADER_STAT' => 1,
16035 - 'AC_C_INLINE' => 1,
16036 - 'AC_PROG_CPP' => 1,
16037 - 'AC_TYPE_PID_T' => 1,
16038 - 'AC_PROG_LEX' => 1,
16039 - 'AC_C_CONST' => 1,
16040 - 'AC_CONFIG_FILES' => 1,
16042 - 'AC_FUNC_SETVBUF_REVERSED' => 1,
16043 - 'AC_PROG_INSTALL' => 1,
16044 - 'AM_GNU_GETTEXT' => 1,
16045 - 'AC_CHECK_LIB' => 1,
16046 - 'AC_FUNC_OBSTACK' => 1,
16047 - 'AC_FUNC_MALLOC' => 1,
16048 - 'AC_FUNC_GETGROUPS' => 1,
16049 - 'AC_FUNC_GETLOADAVG' => 1,
16050 - 'AH_OUTPUT' => 1,
16051 - 'AC_FUNC_FSEEKO' => 1,
16052 - 'AM_PROG_CC_C_O' => 1,
16053 - 'AC_FUNC_MKTIME' => 1,
16054 - 'AC_CANONICAL_SYSTEM' => 1,
16055 - 'AM_CONDITIONAL' => 1,
16056 - 'AC_CONFIG_HEADERS' => 1,
16057 - 'AC_HEADER_SYS_WAIT' => 1,
16058 - 'AC_PROG_LN_S' => 1,
16059 - 'AC_FUNC_MEMCMP' => 1,
16060 - 'm4_include' => 1,
16061 - 'AC_HEADER_DIRENT' => 1,
16062 - 'AC_CHECK_FUNCS' => 1
16069 - '/sw/share/autoconf-2.54'
16072 - '--reload-state=/sw/share/autoconf-2.54/autoconf/autoconf.m4f',
16077 - 'm4_pattern_forbid' => 1,
16078 - 'AC_TYPE_OFF_T' => 1,
16079 - 'AC_PROG_LIBTOOL' => 1,
16080 - 'AC_FUNC_STAT' => 1,
16081 - 'AC_HEADER_TIME' => 1,
16082 - 'AC_FUNC_WAIT3' => 1,
16083 - 'AC_STRUCT_TM' => 1,
16084 - 'AC_FUNC_LSTAT' => 1,
16085 - 'AC_TYPE_MODE_T' => 1,
16086 - 'AC_FUNC_STRTOD' => 1,
16087 - 'AC_CHECK_HEADERS' => 1,
16088 - 'AC_PROG_CXX' => 1,
16089 - 'AC_PATH_X' => 1,
16090 - 'AC_PROG_AWK' => 1,
16091 - 'AC_HEADER_STDC' => 1,
16092 - 'AC_HEADER_MAJOR' => 1,
16093 - 'AC_FUNC_ERROR_AT_LINE' => 1,
16094 - 'AC_PROG_GCC_TRADITIONAL' => 1,
16095 - 'AC_LIBSOURCE' => 1,
16096 - 'AC_STRUCT_ST_BLOCKS' => 1,
16097 - 'AC_TYPE_SIGNAL' => 1,
16098 - 'AC_TYPE_UID_T' => 1,
16099 - 'AC_PROG_MAKE_SET' => 1,
16100 - 'm4_pattern_allow' => 1,
16101 - 'AC_DEFINE_TRACE_LITERAL' => 1,
16102 - 'AM_PROG_LIBTOOL' => 1,
16103 - 'AC_FUNC_STRERROR_R' => 1,
16104 - 'AC_PROG_CC' => 1,
16105 - 'AC_FUNC_FORK' => 1,
16106 - 'AC_DECL_SYS_SIGLIST' => 1,
16107 - 'AC_FUNC_STRCOLL' => 1,
16108 - 'AC_FUNC_VPRINTF' => 1,
16109 - 'AC_PROG_YACC' => 1,
16110 - 'AC_STRUCT_TIMEZONE' => 1,
16111 - 'AC_FUNC_CHOWN' => 1,
16113 - 'AC_FUNC_ALLOCA' => 1,
16114 - 'AC_FUNC_GETPGRP' => 1,
16115 - 'AC_PROG_RANLIB' => 1,
16116 - 'AC_FUNC_SETPGRP' => 1,
16117 - 'AC_FUNC_MMAP' => 1,
16118 - 'AC_TYPE_SIZE_T' => 1,
16119 - 'AC_CHECK_TYPES' => 1,
16120 - 'AC_FUNC_UTIME_NULL' => 1,
16121 - 'AC_FUNC_STRFTIME' => 1,
16122 - 'AC_HEADER_STAT' => 1,
16123 - 'AC_C_INLINE' => 1,
16124 - 'AC_PROG_CPP' => 1,
16125 - 'AC_C_CONST' => 1,
16126 - 'AC_PROG_LEX' => 1,
16127 - 'AC_TYPE_PID_T' => 1,
16128 - 'AC_CONFIG_FILES' => 1,
16130 - 'AC_FUNC_SETVBUF_REVERSED' => 1,
16131 - 'AC_FUNC_FNMATCH' => 1,
16132 - 'AC_PROG_INSTALL' => 1,
16133 - 'AM_GNU_GETTEXT' => 1,
16134 - 'AC_FUNC_OBSTACK' => 1,
16135 - 'AC_CHECK_LIB' => 1,
16136 - 'AC_FUNC_MALLOC' => 1,
16137 - 'AC_FUNC_GETGROUPS' => 1,
16138 - 'AC_FUNC_GETLOADAVG' => 1,
16139 - 'AH_OUTPUT' => 1,
16140 - 'AC_FUNC_FSEEKO' => 1,
16141 - 'AC_FUNC_MKTIME' => 1,
16142 - 'AM_CONDITIONAL' => 1,
16143 - 'AC_CONFIG_HEADERS' => 1,
16144 - 'AC_HEADER_SYS_WAIT' => 1,
16145 - 'AC_PROG_LN_S' => 1,
16146 - 'AC_FUNC_MEMCMP' => 1,
16147 - 'm4_include' => 1,
16148 - 'AC_HEADER_DIRENT' => 1,
16149 - 'AC_CHECK_FUNCS' => 1
16154 diff -Nur ../boehm-gc/autom4te.cache/traces.0 boehm-gc/autom4te.cache/traces.0
16155 --- ../boehm-gc/autom4te.cache/traces.0 Mon May 26 13:14:22 2003
16156 +++ boehm-gc/autom4te.cache/traces.0 Wed Dec 31 16:00:00 1969
16158 -m4trace:configure.in:16: -1- AC_INIT([gcj_mlc.c])
16159 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?A[CHUM]_])
16160 -m4trace:configure.in:16: -1- m4_pattern_forbid([_AC_])
16161 -m4trace:configure.in:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
16162 -m4trace:configure.in:16: -1- m4_pattern_allow([^AS_FLAGS$])
16163 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?m4_])
16164 -m4trace:configure.in:16: -1- m4_pattern_forbid([^dnl$])
16165 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?AS_])
16166 -m4trace:configure.in:16: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
16167 -m4trace:configure.in:16: -1- AC_SUBST([PATH_SEPARATOR])
16168 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
16169 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
16170 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
16171 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
16172 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16173 -m4trace:configure.in:16: -1- AC_SUBST([exec_prefix], [NONE])
16174 -m4trace:configure.in:16: -1- AC_SUBST([prefix], [NONE])
16175 -m4trace:configure.in:16: -1- AC_SUBST([program_transform_name], [s,x,x,])
16176 -m4trace:configure.in:16: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
16177 -m4trace:configure.in:16: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
16178 -m4trace:configure.in:16: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
16179 -m4trace:configure.in:16: -1- AC_SUBST([datadir], ['${prefix}/share'])
16180 -m4trace:configure.in:16: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
16181 -m4trace:configure.in:16: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
16182 -m4trace:configure.in:16: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
16183 -m4trace:configure.in:16: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
16184 -m4trace:configure.in:16: -1- AC_SUBST([includedir], ['${prefix}/include'])
16185 -m4trace:configure.in:16: -1- AC_SUBST([oldincludedir], ['/usr/include'])
16186 -m4trace:configure.in:16: -1- AC_SUBST([infodir], ['${prefix}/info'])
16187 -m4trace:configure.in:16: -1- AC_SUBST([mandir], ['${prefix}/man'])
16188 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
16189 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
16190 -#undef PACKAGE_NAME])
16191 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
16192 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
16193 -#undef PACKAGE_TARNAME])
16194 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
16195 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
16196 -#undef PACKAGE_VERSION])
16197 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
16198 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
16199 -#undef PACKAGE_STRING])
16200 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
16201 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
16202 -#undef PACKAGE_BUGREPORT])
16203 -m4trace:configure.in:16: -1- AC_SUBST([build_alias])
16204 -m4trace:configure.in:16: -1- AC_SUBST([host_alias])
16205 -m4trace:configure.in:16: -1- AC_SUBST([target_alias])
16206 -m4trace:configure.in:16: -1- AC_SUBST([DEFS])
16207 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_C])
16208 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_N])
16209 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_T])
16210 -m4trace:configure.in:16: -1- AC_SUBST([LIBS])
16211 -m4trace:configure.in:25: -1- AC_CONFIG_AUX_DIR([.])
16212 -m4trace:configure.in:27: -1- AC_SUBST([gc_basedir])
16213 -m4trace:configure.in:27: -1- AC_CONFIG_AUX_DIR([$gc_basedir/..])
16214 -m4trace:configure.in:27: -1- AC_CONFIG_AUX_DIR([..])
16215 -m4trace:configure.in:27: -1- AC_CANONICAL_SYSTEM
16216 -m4trace:configure.in:27: -1- AC_CANONICAL_HOST
16217 -m4trace:configure.in:27: -1- AC_SUBST([build], [$ac_cv_build])
16218 -m4trace:configure.in:27: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16219 -m4trace:configure.in:27: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16220 -m4trace:configure.in:27: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16221 -m4trace:configure.in:27: -1- AC_SUBST([host], [$ac_cv_host])
16222 -m4trace:configure.in:27: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16223 -m4trace:configure.in:27: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16224 -m4trace:configure.in:27: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16225 -m4trace:configure.in:27: -1- AC_SUBST([target], [$ac_cv_target])
16226 -m4trace:configure.in:27: -1- AC_SUBST([target_cpu], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16227 -m4trace:configure.in:27: -1- AC_SUBST([target_vendor], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16228 -m4trace:configure.in:27: -1- AC_SUBST([target_os], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16229 -m4trace:configure.in:27: -1- AC_SUBST([mkinstalldirs])
16230 -m4trace:configure.in:27: -1- AM_INIT_AUTOMAKE([gc], [6.0], [no-define])
16231 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16232 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16233 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16234 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16235 -m4trace:configure.in:27: -1- AC_SUBST([PACKAGE])
16236 -m4trace:configure.in:27: -1- AC_SUBST([VERSION])
16237 -m4trace:configure.in:27: -2- AC_DEFINE_TRACE_LITERAL([PACKAGE])
16238 -m4trace:configure.in:27: -2- AH_OUTPUT([PACKAGE], [/* Name of package */
16240 -m4trace:configure.in:27: -2- AC_DEFINE_TRACE_LITERAL([VERSION])
16241 -m4trace:configure.in:27: -2- AH_OUTPUT([VERSION], [/* Version number of package */
16243 -m4trace:configure.in:27: -1- AC_SUBST([ACLOCAL])
16244 -m4trace:configure.in:27: -1- AC_SUBST([AUTOCONF])
16245 -m4trace:configure.in:27: -1- AC_SUBST([AUTOMAKE])
16246 -m4trace:configure.in:27: -1- AC_SUBST([AUTOHEADER])
16247 -m4trace:configure.in:27: -1- AC_SUBST([MAKEINFO])
16248 -m4trace:configure.in:27: -1- AC_PROG_MAKE_SET
16249 -m4trace:configure.in:27: -1- AC_SUBST([SET_MAKE])
16250 -m4trace:configure.in:27: -1- AC_SUBST([CC])
16251 -m4trace:configure.in:27: -1- AC_SUBST([CC])
16252 -m4trace:configure.in:27: -1- AC_SUBST([CXX])
16253 -m4trace:configure.in:27: -1- AC_SUBST([AS])
16254 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AS])
16255 -m4trace:configure.in:27: -1- AC_SUBST([AR])
16256 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AR])
16257 -m4trace:configure.in:27: -1- AC_SUBST([RANLIB])
16258 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_RANLIB])
16259 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16260 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16261 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16262 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16263 -m4trace:configure.in:27: -1- AM_MAINTAINER_MODE
16264 -m4trace:configure.in:27: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16265 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16266 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16267 -m4trace:configure.in:27: -1- AC_SUBST([MAINT])
16268 -m4trace:configure.in:27: -1- AC_SUBST([GC_CFLAGS])
16269 -m4trace:configure.in:29: -1- AC_PROG_LIBTOOL
16270 -m4trace:configure.in:29: -1- AC_PROG_LN_S
16271 -m4trace:configure.in:29: -1- AC_SUBST([LN_S], [$as_ln_s])
16272 -m4trace:configure.in:29: -1- AC_SUBST([RANLIB])
16273 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_RANLIB])
16274 -m4trace:configure.in:29: -1- AC_SUBST([STRIP])
16275 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_STRIP])
16276 -m4trace:configure.in:29: -1- AC_SUBST([LIBTOOL])
16277 -m4trace:configure.in:29: -1- AC_SUBST([CXXCPP])
16278 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16279 -m4trace:configure.in:29: -1- AC_SUBST([CXXCPP])
16280 -m4trace:configure.in:38: -1- AM_MAINTAINER_MODE
16281 -m4trace:configure.in:38: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16282 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16283 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16284 -m4trace:configure.in:38: -1- AC_SUBST([MAINT])
16285 -m4trace:configure.in:77: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16286 -m4trace:configure.in:78: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16287 -m4trace:configure.in:80: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16288 -m4trace:configure.in:82: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16289 -m4trace:configure.in:85: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16290 -m4trace:configure.in:86: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16291 -m4trace:configure.in:90: -1- AC_DEFINE_TRACE_LITERAL([GC_HPUX_THREADS])
16292 -m4trace:configure.in:91: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_C_SOURCE])
16293 -m4trace:configure.in:93: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16294 -m4trace:configure.in:95: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16295 -m4trace:configure.in:100: -1- AC_DEFINE_TRACE_LITERAL([GC_FREEBSD_THREADS])
16296 -m4trace:configure.in:105: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_THREADS])
16297 -m4trace:configure.in:106: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_PTHREADS])
16298 -m4trace:configure.in:109: -1- AC_DEFINE_TRACE_LITERAL([GC_IRIX_THREADS])
16299 -m4trace:configure.in:117: -1- AC_DEFINE_TRACE_LITERAL([GC_DARWIN_THREADS])
16300 -m4trace:configure.in:118: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16301 -m4trace:configure.in:120: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16302 -m4trace:configure.in:124: -1- AC_DEFINE_TRACE_LITERAL([GC_WIN32_THREADS])
16303 -m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([NO_GETENV])
16304 -m4trace:configure.in:134: -1- AC_SUBST([THREADLIBS])
16305 -m4trace:configure.in:141: -1- AM_CONDITIONAL([POWERPC_DARWIN], [test x$powerpc_darwin = xtrue])
16306 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_TRUE])
16307 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_FALSE])
16308 -m4trace:configure.in:148: -1- AC_CHECK_LIB([dl], [dlopen], [EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"])
16309 -m4trace:configure.in:152: -1- AC_SUBST([EXTRA_TEST_LIBS])
16310 -m4trace:configure.in:155: -1- AC_SUBST([target_all])
16311 -m4trace:configure.in:156: -1- AC_SUBST([target_alias])
16312 -m4trace:configure.in:174: -1- AC_DEFINE_TRACE_LITERAL([ECOS])
16313 -m4trace:configure.in:179: -1- AC_SUBST([CXX])
16314 -m4trace:configure.in:181: -1- AC_SUBST([INCLUDES])
16315 -m4trace:configure.in:182: -1- AC_SUBST([CXXINCLUDES])
16316 -m4trace:configure.in:197: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS25_PROC_VDB_BUG_FIXED])
16317 -m4trace:configure.in:201: -1- AC_DEFINE_TRACE_LITERAL([STACKBASE])
16318 -m4trace:configure.in:202: -1- AC_DEFINE_TRACE_LITERAL([DATASTART_IS_ETEXT])
16319 -m4trace:configure.in:211: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16320 -m4trace:configure.in:215: -1- AC_DEFINE_TRACE_LITERAL([SUNOS53_SHARED_LIB])
16321 -m4trace:configure.in:228: -1- AC_SUBST([addobjs])
16322 -m4trace:configure.in:252: -1- AC_SUBST([MY_CFLAGS])
16323 -m4trace:configure.in:256: -1- AC_DEFINE_TRACE_LITERAL([SILENT])
16324 -m4trace:configure.in:257: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGNALS])
16325 -m4trace:configure.in:258: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16326 -m4trace:configure.in:259: -1- AC_DEFINE_TRACE_LITERAL([ALL_INTERIOR_POINTERS])
16327 -m4trace:configure.in:262: -1- AC_DEFINE_TRACE_LITERAL([JAVA_FINALIZATION])
16328 -m4trace:configure.in:263: -1- AC_DEFINE_TRACE_LITERAL([GC_GCJ_SUPPORT])
16329 -m4trace:configure.in:264: -1- AC_DEFINE_TRACE_LITERAL([ATOMIC_UNCOLLECTABLE])
16330 -m4trace:configure.in:270: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGSET])
16331 -m4trace:configure.in:271: -1- AC_DEFINE_TRACE_LITERAL([NO_DEBUGGING])
16332 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([KEEP_BACK_PTRS])
16333 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([DBG_HDRS_ALL])
16334 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16335 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16336 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([SAVE_CALL_COUNT])
16337 -m4trace:configure.in:292: -1- AM_CONDITIONAL([USE_LIBDIR], [test -z "$with_cross_host"])
16338 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_TRUE])
16339 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_FALSE])
16340 -m4trace:configure.in:317: -1- AC_CONFIG_FILES([Makefile include/Makefile])
16341 -m4trace:configure.in:317: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
16342 -m4trace:configure.in:317: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
16343 diff -Nur ../boehm-gc/autom4te.cache/traces.1 boehm-gc/autom4te.cache/traces.1
16344 --- ../boehm-gc/autom4te.cache/traces.1 Sat May 31 15:09:31 2003
16345 +++ boehm-gc/autom4te.cache/traces.1 Wed Dec 31 16:00:00 1969
16347 -m4trace:aclocal.m4:166: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
16348 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?A[CHUM]_])
16349 -m4trace:configure.in:16: -1- m4_pattern_forbid([_AC_])
16350 -m4trace:configure.in:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
16351 -m4trace:configure.in:16: -1- m4_pattern_allow([^AS_FLAGS$])
16352 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?m4_])
16353 -m4trace:configure.in:16: -1- m4_pattern_forbid([^dnl$])
16354 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?AS_])
16355 -m4trace:configure.in:16: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
16356 -m4trace:configure.in:16: -1- AC_SUBST([PATH_SEPARATOR])
16357 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
16358 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
16359 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
16360 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
16361 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16362 -m4trace:configure.in:16: -1- AC_SUBST([exec_prefix], [NONE])
16363 -m4trace:configure.in:16: -1- AC_SUBST([prefix], [NONE])
16364 -m4trace:configure.in:16: -1- AC_SUBST([program_transform_name], [s,x,x,])
16365 -m4trace:configure.in:16: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
16366 -m4trace:configure.in:16: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
16367 -m4trace:configure.in:16: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
16368 -m4trace:configure.in:16: -1- AC_SUBST([datadir], ['${prefix}/share'])
16369 -m4trace:configure.in:16: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
16370 -m4trace:configure.in:16: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
16371 -m4trace:configure.in:16: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
16372 -m4trace:configure.in:16: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
16373 -m4trace:configure.in:16: -1- AC_SUBST([includedir], ['${prefix}/include'])
16374 -m4trace:configure.in:16: -1- AC_SUBST([oldincludedir], ['/usr/include'])
16375 -m4trace:configure.in:16: -1- AC_SUBST([infodir], ['${prefix}/info'])
16376 -m4trace:configure.in:16: -1- AC_SUBST([mandir], ['${prefix}/man'])
16377 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
16378 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
16379 -#undef PACKAGE_NAME])
16380 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
16381 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
16382 -#undef PACKAGE_TARNAME])
16383 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
16384 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
16385 -#undef PACKAGE_VERSION])
16386 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
16387 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
16388 -#undef PACKAGE_STRING])
16389 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
16390 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
16391 -#undef PACKAGE_BUGREPORT])
16392 -m4trace:configure.in:16: -1- AC_SUBST([build_alias])
16393 -m4trace:configure.in:16: -1- AC_SUBST([host_alias])
16394 -m4trace:configure.in:16: -1- AC_SUBST([target_alias])
16395 -m4trace:configure.in:16: -1- AC_SUBST([DEFS])
16396 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_C])
16397 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_N])
16398 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_T])
16399 -m4trace:configure.in:16: -1- AC_SUBST([LIBS])
16400 -m4trace:configure.in:27: -1- AC_SUBST([gc_basedir])
16401 -m4trace:configure.in:27: -1- AC_SUBST([build], [$ac_cv_build])
16402 -m4trace:configure.in:27: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16403 -m4trace:configure.in:27: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16404 -m4trace:configure.in:27: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16405 -m4trace:configure.in:27: -1- AC_SUBST([host], [$ac_cv_host])
16406 -m4trace:configure.in:27: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16407 -m4trace:configure.in:27: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16408 -m4trace:configure.in:27: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16409 -m4trace:configure.in:27: -1- AC_SUBST([target], [$ac_cv_target])
16410 -m4trace:configure.in:27: -1- AC_SUBST([target_cpu], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16411 -m4trace:configure.in:27: -1- AC_SUBST([target_vendor], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16412 -m4trace:configure.in:27: -1- AC_SUBST([target_os], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16413 -m4trace:configure.in:27: -1- AC_SUBST([mkinstalldirs])
16414 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16415 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16416 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16417 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16418 -m4trace:configure.in:27: -1- AC_SUBST([PACKAGE], [gc])
16419 -m4trace:configure.in:27: -1- AC_SUBST([VERSION], [6.1a1])
16420 -m4trace:configure.in:27: -1- AC_SUBST([ACLOCAL])
16421 -m4trace:configure.in:27: -1- AC_SUBST([AUTOCONF])
16422 -m4trace:configure.in:27: -1- AC_SUBST([AUTOMAKE])
16423 -m4trace:configure.in:27: -1- AC_SUBST([AUTOHEADER])
16424 -m4trace:configure.in:27: -1- AC_SUBST([MAKEINFO])
16425 -m4trace:configure.in:27: -1- AC_SUBST([AMTAR])
16426 -m4trace:configure.in:27: -1- AC_SUBST([install_sh])
16427 -m4trace:configure.in:27: -1- AC_SUBST([STRIP])
16428 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_STRIP])
16429 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
16430 -m4trace:configure.in:27: -1- AC_PROG_AWK
16431 -m4trace:configure.in:27: -1- AC_SUBST([AWK])
16432 -m4trace:configure.in:27: -1- AC_PROG_MAKE_SET
16433 -m4trace:configure.in:27: -1- AC_SUBST([SET_MAKE])
16434 -m4trace:configure.in:27: -1- AC_SUBST([AS])
16435 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AS])
16436 -m4trace:configure.in:27: -1- AC_SUBST([AR])
16437 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AR])
16438 -m4trace:configure.in:27: -1- AC_SUBST([RANLIB])
16439 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_RANLIB])
16440 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16441 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16442 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16443 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16444 -m4trace:configure.in:27: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16445 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16446 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16447 -m4trace:configure.in:27: -1- AC_SUBST([MAINT])
16448 -m4trace:configure.in:27: -1- AC_SUBST([GC_CFLAGS])
16449 -m4trace:configure.in:29: -1- AM_PROG_LIBTOOL
16450 -m4trace:configure.in:29: -1- AC_PROG_LIBTOOL
16451 -m4trace:configure.in:29: -1- AC_PROG_CC
16452 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16453 -m4trace:configure.in:29: -1- AC_SUBST([CFLAGS])
16454 -m4trace:configure.in:29: -1- AC_SUBST([LDFLAGS])
16455 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16456 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16457 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16458 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16459 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16460 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16461 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16462 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16463 -m4trace:configure.in:29: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
16464 -m4trace:configure.in:29: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
16465 -m4trace:configure.in:29: -1- AC_SUBST([DEPDIR])
16466 -m4trace:configure.in:29: -1- AC_SUBST([am__include])
16467 -m4trace:configure.in:29: -1- AC_SUBST([am__quote])
16468 -m4trace:configure.in:29: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
16469 -m4trace:configure.in:29: -1- AC_SUBST([AMDEP_TRUE])
16470 -m4trace:configure.in:29: -1- AC_SUBST([AMDEP_FALSE])
16471 -m4trace:configure.in:29: -1- AC_SUBST([AMDEPBACKSLASH])
16472 -m4trace:configure.in:29: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
16473 -m4trace:configure.in:29: -1- AC_PROG_LN_S
16474 -m4trace:configure.in:29: -1- AC_SUBST([LN_S], [$as_ln_s])
16475 -m4trace:configure.in:29: -1- AC_SUBST([ECHO])
16476 -m4trace:configure.in:29: -1- AC_SUBST([RANLIB])
16477 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_RANLIB])
16478 -m4trace:configure.in:29: -1- AC_SUBST([STRIP])
16479 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_STRIP])
16480 -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],
16481 - [lt_cv_dlopen="dlopen"],
16482 - [AC_CHECK_LIB([dl], [dlopen],
16483 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
16484 - [AC_CHECK_LIB([svld], [dlopen],
16485 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
16486 - [AC_CHECK_LIB([dld], [dld_link],
16487 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16492 -m4trace:configure.in:29: -1- AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen],
16493 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
16494 - [AC_CHECK_LIB([dld], [dld_link],
16495 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16498 -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],
16499 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16501 -m4trace:configure.in:29: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16502 -m4trace:configure.in:29: -1- AC_CHECK_HEADERS([dlfcn.h])
16503 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
16504 -#undef HAVE_DLFCN_H])
16505 -m4trace:configure.in:29: -1- AC_HEADER_STDC
16506 -m4trace:configure.in:29: -1- AC_PROG_CPP
16507 -m4trace:configure.in:29: -1- AC_SUBST([CPP])
16508 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16509 -m4trace:configure.in:29: -1- AC_SUBST([CPP])
16510 -m4trace:configure.in:29: -1- AC_SUBST([EGREP])
16511 -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
16512 -m4trace:configure.in:29: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
16513 -#undef STDC_HEADERS])
16514 -m4trace:configure.in:29: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
16515 - inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
16516 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
16517 -#undef HAVE_SYS_TYPES_H])
16518 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
16519 -#undef HAVE_SYS_STAT_H])
16520 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
16521 -#undef HAVE_STDLIB_H])
16522 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
16523 -#undef HAVE_STRING_H])
16524 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
16525 -#undef HAVE_MEMORY_H])
16526 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
16527 -#undef HAVE_STRINGS_H])
16528 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
16529 -#undef HAVE_INTTYPES_H])
16530 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
16531 -#undef HAVE_STDINT_H])
16532 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
16533 -#undef HAVE_UNISTD_H])
16534 -m4trace:configure.in:29: -1- AC_SUBST([LIBTOOL])
16535 -m4trace:configure.in:38: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16536 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16537 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16538 -m4trace:configure.in:38: -1- AC_SUBST([MAINT])
16539 -m4trace:configure.in:77: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16540 -m4trace:configure.in:78: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16541 -m4trace:configure.in:80: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16542 -m4trace:configure.in:82: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16543 -m4trace:configure.in:85: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16544 -m4trace:configure.in:86: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16545 -m4trace:configure.in:90: -1- AC_DEFINE_TRACE_LITERAL([GC_HPUX_THREADS])
16546 -m4trace:configure.in:91: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_C_SOURCE])
16547 -m4trace:configure.in:93: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16548 -m4trace:configure.in:95: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16549 -m4trace:configure.in:100: -1- AC_DEFINE_TRACE_LITERAL([GC_FREEBSD_THREADS])
16550 -m4trace:configure.in:105: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_THREADS])
16551 -m4trace:configure.in:106: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_PTHREADS])
16552 -m4trace:configure.in:109: -1- AC_DEFINE_TRACE_LITERAL([GC_IRIX_THREADS])
16553 -m4trace:configure.in:115: -1- AC_DEFINE_TRACE_LITERAL([GC_DARWIN_THREADS])
16554 -m4trace:configure.in:116: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16555 -m4trace:configure.in:118: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16556 -m4trace:configure.in:124: -1- AC_DEFINE_TRACE_LITERAL([GC_WIN32_THREADS])
16557 -m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([NO_GETENV])
16558 -m4trace:configure.in:134: -1- AC_SUBST([THREADLIBS])
16559 -m4trace:configure.in:141: -1- AM_CONDITIONAL([POWERPC_DARWIN], [test x$powerpc_darwin = xtrue])
16560 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_TRUE])
16561 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_FALSE])
16562 -m4trace:configure.in:148: -1- AC_CHECK_LIB([dl], [dlopen], [EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"])
16563 -m4trace:configure.in:152: -1- AC_SUBST([EXTRA_TEST_LIBS])
16564 -m4trace:configure.in:155: -1- AC_SUBST([target_all])
16565 -m4trace:configure.in:156: -1- AC_SUBST([target_alias])
16566 -m4trace:configure.in:174: -1- AC_DEFINE_TRACE_LITERAL([ECOS])
16567 -m4trace:configure.in:179: -1- AC_SUBST([CXX])
16568 -m4trace:configure.in:181: -1- AC_SUBST([INCLUDES])
16569 -m4trace:configure.in:182: -1- AC_SUBST([CXXINCLUDES])
16570 -m4trace:configure.in:197: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS25_PROC_VDB_BUG_FIXED])
16571 -m4trace:configure.in:201: -1- AC_DEFINE_TRACE_LITERAL([STACKBASE])
16572 -m4trace:configure.in:202: -1- AC_DEFINE_TRACE_LITERAL([DATASTART_IS_ETEXT])
16573 -m4trace:configure.in:211: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16574 -m4trace:configure.in:215: -1- AC_DEFINE_TRACE_LITERAL([SUNOS53_SHARED_LIB])
16575 -m4trace:configure.in:228: -1- AC_SUBST([addobjs])
16576 -m4trace:configure.in:252: -1- AC_SUBST([MY_CFLAGS])
16577 -m4trace:configure.in:256: -1- AC_DEFINE_TRACE_LITERAL([SILENT])
16578 -m4trace:configure.in:257: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGNALS])
16579 -m4trace:configure.in:258: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16580 -m4trace:configure.in:259: -1- AC_DEFINE_TRACE_LITERAL([ALL_INTERIOR_POINTERS])
16581 -m4trace:configure.in:262: -1- AC_DEFINE_TRACE_LITERAL([JAVA_FINALIZATION])
16582 -m4trace:configure.in:263: -1- AC_DEFINE_TRACE_LITERAL([GC_GCJ_SUPPORT])
16583 -m4trace:configure.in:264: -1- AC_DEFINE_TRACE_LITERAL([ATOMIC_UNCOLLECTABLE])
16584 -m4trace:configure.in:270: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGSET])
16585 -m4trace:configure.in:271: -1- AC_DEFINE_TRACE_LITERAL([NO_DEBUGGING])
16586 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([KEEP_BACK_PTRS])
16587 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([DBG_HDRS_ALL])
16588 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16589 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16590 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([SAVE_CALL_COUNT])
16591 -m4trace:configure.in:292: -1- AM_CONDITIONAL([USE_LIBDIR], [test -z "$with_cross_host"])
16592 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_TRUE])
16593 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_FALSE])
16594 -m4trace:configure.in:317: -1- AC_CONFIG_FILES([Makefile include/Makefile])
16595 -m4trace:configure.in:317: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
16596 -m4trace:configure.in:317: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
16597 diff -Nur ../boehm-gc/backgraph.c boehm-gc/backgraph.c
16598 --- ../boehm-gc/backgraph.c Mon May 26 12:48:52 2003
16599 +++ boehm-gc/backgraph.c Wed Jan 30 18:48:45 2002
16600 @@ -307,7 +307,6 @@
16602 while (currentp < (word *)(p + gc_descr)) {
16603 word current = *currentp++;
16604 - FIXUP_POINTER(current);
16605 if (current >= (word)GC_least_plausible_heap_addr &&
16606 current <= (word)GC_greatest_plausible_heap_addr) {
16607 ptr_t target = GC_base((GC_PTR)current);
16608 diff -Nur ../boehm-gc/configure boehm-gc/configure
16609 --- ../boehm-gc/configure Sat May 31 21:21:37 2003
16610 +++ boehm-gc/configure Tue May 13 17:18:14 2003
16612 program_transform_name=s,x,x,
16619 @@ -175,6 +176,7 @@
16620 --help print this message
16621 --no-create do not create output files
16622 --quiet, --silent do not print \`checking...' messages
16623 + --site-file=FILE use FILE as the site file
16624 --version print the version of autoconf that created configure
16625 Directory and file names:
16626 --prefix=PREFIX install architecture-independent files in PREFIX
16627 @@ -345,6 +347,11 @@
16628 -site=* | --site=* | --sit=*)
16629 site="$ac_optarg" ;;
16631 + -site-file | --site-file | --site-fil | --site-fi | --site-f)
16632 + ac_prev=sitefile ;;
16633 + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
16634 + sitefile="$ac_optarg" ;;
16636 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
16638 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
16639 @@ -510,12 +517,16 @@
16640 srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
16642 # Prefer explicitly selected file to automatically selected ones.
16643 -if test -z "$CONFIG_SITE"; then
16644 - if test "x$prefix" != xNONE; then
16645 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
16647 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
16648 +if test -z "$sitefile"; then
16649 + if test -z "$CONFIG_SITE"; then
16650 + if test "x$prefix" != xNONE; then
16651 + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
16653 + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
16657 + CONFIG_SITE="$sitefile"
16659 for ac_site_file in $CONFIG_SITE; do
16660 if test -r "$ac_site_file"; then
16661 @@ -593,7 +604,7 @@
16662 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
16663 # ./install, which can be erroneously created by make from ./install.sh.
16664 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
16665 -echo "configure:597: checking for a BSD compatible install" >&5
16666 +echo "configure:608: checking for a BSD compatible install" >&5
16667 if test -z "$INSTALL"; then
16668 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
16669 echo $ac_n "(cached) $ac_c" 1>&6
16670 @@ -646,7 +657,7 @@
16671 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
16673 echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
16674 -echo "configure:650: checking whether build environment is sane" >&5
16675 +echo "configure:661: checking whether build environment is sane" >&5
16678 echo timestamp > conftestfile
16679 @@ -703,7 +714,7 @@
16680 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
16682 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
16683 -echo "configure:707: checking whether ${MAKE-make} sets \${MAKE}" >&5
16684 +echo "configure:718: checking whether ${MAKE-make} sets \${MAKE}" >&5
16685 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
16686 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
16687 echo $ac_n "(cached) $ac_c" 1>&6
16688 @@ -736,12 +747,12 @@
16691 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
16692 -echo "configure:740: checking for Cygwin environment" >&5
16693 +echo "configure:751: checking for Cygwin environment" >&5
16694 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
16695 echo $ac_n "(cached) $ac_c" 1>&6
16697 cat > conftest.$ac_ext <<EOF
16698 -#line 745 "configure"
16699 +#line 756 "configure"
16700 #include "confdefs.h"
16703 @@ -752,7 +763,7 @@
16707 -if { (eval echo configure:756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16708 +if { (eval echo configure:767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16712 @@ -769,19 +780,19 @@
16714 test "$ac_cv_cygwin" = yes && CYGWIN=yes
16715 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
16716 -echo "configure:773: checking for mingw32 environment" >&5
16717 +echo "configure:784: checking for mingw32 environment" >&5
16718 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
16719 echo $ac_n "(cached) $ac_c" 1>&6
16721 cat > conftest.$ac_ext <<EOF
16722 -#line 778 "configure"
16723 +#line 789 "configure"
16724 #include "confdefs.h"
16727 return __MINGW32__;
16730 -if { (eval echo configure:785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16731 +if { (eval echo configure:796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16735 @@ -892,7 +903,7 @@
16738 echo $ac_n "checking host system type""... $ac_c" 1>&6
16739 -echo "configure:896: checking host system type" >&5
16740 +echo "configure:907: checking host system type" >&5
16743 case "$host_alias" in
16744 @@ -913,7 +924,7 @@
16745 echo "$ac_t""$host" 1>&6
16747 echo $ac_n "checking target system type""... $ac_c" 1>&6
16748 -echo "configure:917: checking target system type" >&5
16749 +echo "configure:928: checking target system type" >&5
16751 target_alias=$target
16752 case "$target_alias" in
16753 @@ -931,7 +942,7 @@
16754 echo "$ac_t""$target" 1>&6
16756 echo $ac_n "checking build system type""... $ac_c" 1>&6
16757 -echo "configure:935: checking build system type" >&5
16758 +echo "configure:946: checking build system type" >&5
16761 case "$build_alias" in
16762 @@ -971,7 +982,7 @@
16764 missing_dir=`cd $ac_aux_dir && pwd`
16765 echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
16766 -echo "configure:975: checking for working aclocal" >&5
16767 +echo "configure:986: checking for working aclocal" >&5
16768 # Run test in a subshell; some versions of sh will print an error if
16769 # an executable is not found, even if stderr is redirected.
16770 # Redirect stdin to placate older versions of autoconf. Sigh.
16771 @@ -984,7 +995,7 @@
16774 echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
16775 -echo "configure:988: checking for working autoconf" >&5
16776 +echo "configure:999: checking for working autoconf" >&5
16777 # Run test in a subshell; some versions of sh will print an error if
16778 # an executable is not found, even if stderr is redirected.
16779 # Redirect stdin to placate older versions of autoconf. Sigh.
16780 @@ -997,7 +1008,7 @@
16783 echo $ac_n "checking for working automake""... $ac_c" 1>&6
16784 -echo "configure:1001: checking for working automake" >&5
16785 +echo "configure:1012: checking for working automake" >&5
16786 # Run test in a subshell; some versions of sh will print an error if
16787 # an executable is not found, even if stderr is redirected.
16788 # Redirect stdin to placate older versions of autoconf. Sigh.
16789 @@ -1010,7 +1021,7 @@
16792 echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
16793 -echo "configure:1014: checking for working autoheader" >&5
16794 +echo "configure:1025: checking for working autoheader" >&5
16795 # Run test in a subshell; some versions of sh will print an error if
16796 # an executable is not found, even if stderr is redirected.
16797 # Redirect stdin to placate older versions of autoconf. Sigh.
16798 @@ -1023,7 +1034,7 @@
16801 echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
16802 -echo "configure:1027: checking for working makeinfo" >&5
16803 +echo "configure:1038: checking for working makeinfo" >&5
16804 # Run test in a subshell; some versions of sh will print an error if
16805 # an executable is not found, even if stderr is redirected.
16806 # Redirect stdin to placate older versions of autoconf. Sigh.
16807 @@ -1049,7 +1060,7 @@
16808 # Extract the first word of "gcc", so it can be a program name with args.
16809 set dummy gcc; ac_word=$2
16810 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16811 -echo "configure:1053: checking for $ac_word" >&5
16812 +echo "configure:1064: checking for $ac_word" >&5
16813 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
16814 echo $ac_n "(cached) $ac_c" 1>&6
16816 @@ -1079,7 +1090,7 @@
16817 # Extract the first word of "cc", so it can be a program name with args.
16818 set dummy cc; ac_word=$2
16819 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16820 -echo "configure:1083: checking for $ac_word" >&5
16821 +echo "configure:1094: checking for $ac_word" >&5
16822 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
16823 echo $ac_n "(cached) $ac_c" 1>&6
16825 @@ -1128,7 +1139,7 @@
16828 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
16829 -echo "configure:1132: checking whether we are using GNU C" >&5
16830 +echo "configure:1143: checking whether we are using GNU C" >&5
16831 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
16832 echo $ac_n "(cached) $ac_c" 1>&6
16834 @@ -1137,7 +1148,7 @@
16838 -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
16839 +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
16843 @@ -1152,7 +1163,7 @@
16844 ac_save_CFLAGS="$CFLAGS"
16846 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
16847 -echo "configure:1156: checking whether ${CC-cc} accepts -g" >&5
16848 +echo "configure:1167: checking whether ${CC-cc} accepts -g" >&5
16849 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
16850 echo $ac_n "(cached) $ac_c" 1>&6
16852 @@ -1189,7 +1200,7 @@
16853 # Extract the first word of "$ac_prog", so it can be a program name with args.
16854 set dummy $ac_prog; ac_word=$2
16855 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16856 -echo "configure:1193: checking for $ac_word" >&5
16857 +echo "configure:1204: checking for $ac_word" >&5
16858 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
16859 echo $ac_n "(cached) $ac_c" 1>&6
16861 @@ -1222,7 +1233,7 @@
16862 test -z "$CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; }
16864 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
16865 -echo "configure:1226: checking whether we are using GNU C++" >&5
16866 +echo "configure:1237: checking whether we are using GNU C++" >&5
16867 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
16868 echo $ac_n "(cached) $ac_c" 1>&6
16870 @@ -1231,7 +1242,7 @@
16874 -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
16875 +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
16879 @@ -1246,7 +1257,7 @@
16880 ac_save_CXXFLAGS="$CXXFLAGS"
16882 echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
16883 -echo "configure:1250: checking whether ${CXX-g++} accepts -g" >&5
16884 +echo "configure:1261: checking whether ${CXX-g++} accepts -g" >&5
16885 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
16886 echo $ac_n "(cached) $ac_c" 1>&6
16888 @@ -1279,7 +1290,7 @@
16889 # NEWLIB_CONFIGURE, which doesn't work because that means that it will
16890 # be run before AC_CANONICAL_HOST.
16891 echo $ac_n "checking build system type""... $ac_c" 1>&6
16892 -echo "configure:1283: checking build system type" >&5
16893 +echo "configure:1294: checking build system type" >&5
16896 case "$build_alias" in
16897 @@ -1300,7 +1311,7 @@
16898 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
16899 set dummy ${ac_tool_prefix}as; ac_word=$2
16900 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16901 -echo "configure:1304: checking for $ac_word" >&5
16902 +echo "configure:1315: checking for $ac_word" >&5
16903 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
16904 echo $ac_n "(cached) $ac_c" 1>&6
16906 @@ -1332,7 +1343,7 @@
16907 # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
16908 set dummy ${ac_tool_prefix}ar; ac_word=$2
16909 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16910 -echo "configure:1336: checking for $ac_word" >&5
16911 +echo "configure:1347: checking for $ac_word" >&5
16912 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
16913 echo $ac_n "(cached) $ac_c" 1>&6
16915 @@ -1364,7 +1375,7 @@
16916 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
16917 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
16918 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16919 -echo "configure:1368: checking for $ac_word" >&5
16920 +echo "configure:1379: checking for $ac_word" >&5
16921 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
16922 echo $ac_n "(cached) $ac_c" 1>&6
16924 @@ -1396,7 +1407,7 @@
16925 # Extract the first word of "ranlib", so it can be a program name with args.
16926 set dummy ranlib; ac_word=$2
16927 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16928 -echo "configure:1400: checking for $ac_word" >&5
16929 +echo "configure:1411: checking for $ac_word" >&5
16930 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
16931 echo $ac_n "(cached) $ac_c" 1>&6
16933 @@ -1441,7 +1452,7 @@
16934 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
16935 # ./install, which can be erroneously created by make from ./install.sh.
16936 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
16937 -echo "configure:1445: checking for a BSD compatible install" >&5
16938 +echo "configure:1456: checking for a BSD compatible install" >&5
16939 if test -z "$INSTALL"; then
16940 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
16941 echo $ac_n "(cached) $ac_c" 1>&6
16942 @@ -1495,7 +1506,7 @@
16945 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
16946 -echo "configure:1499: checking whether to enable maintainer-specific portions of Makefiles" >&5
16947 +echo "configure:1510: checking whether to enable maintainer-specific portions of Makefiles" >&5
16948 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
16949 if test "${enable_maintainer_mode+set}" = set; then
16950 enableval="$enable_maintainer_mode"
16951 @@ -1533,7 +1544,7 @@
16954 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
16955 -echo "configure:1537: checking for executable suffix" >&5
16956 +echo "configure:1548: checking for executable suffix" >&5
16957 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
16958 echo $ac_n "(cached) $ac_c" 1>&6
16960 @@ -1543,10 +1554,10 @@
16962 echo 'int main () { return 0; }' > conftest.$ac_ext
16964 - if { (eval echo configure:1547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
16965 + if { (eval echo configure:1558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
16966 for file in conftest.*; do
16968 - *.c | *.o | *.obj) ;;
16969 + *.c | *.o | *.obj | *.ilk | *.pdb) ;;
16970 *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
16973 @@ -1665,7 +1676,7 @@
16974 if test "$GCC" = yes; then
16975 # Check if gcc -print-prog-name=ld gives a path.
16976 echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
16977 -echo "configure:1669: checking for ld used by GCC" >&5
16978 +echo "configure:1680: checking for ld used by GCC" >&5
16981 # gcc leaves a trailing carriage return which upsets mingw
16982 @@ -1695,10 +1706,10 @@
16984 elif test "$with_gnu_ld" = yes; then
16985 echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
16986 -echo "configure:1699: checking for GNU ld" >&5
16987 +echo "configure:1710: checking for GNU ld" >&5
16989 echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
16990 -echo "configure:1702: checking for non-GNU ld" >&5
16991 +echo "configure:1713: checking for non-GNU ld" >&5
16993 if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
16994 echo $ac_n "(cached) $ac_c" 1>&6
16995 @@ -1733,7 +1744,7 @@
16997 test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
16998 echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
16999 -echo "configure:1737: checking if the linker ($LD) is GNU ld" >&5
17000 +echo "configure:1748: checking if the linker ($LD) is GNU ld" >&5
17001 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
17002 echo $ac_n "(cached) $ac_c" 1>&6
17004 @@ -1750,7 +1761,7 @@
17007 echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
17008 -echo "configure:1754: checking for $LD option to reload object files" >&5
17009 +echo "configure:1765: checking for $LD option to reload object files" >&5
17010 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
17011 echo $ac_n "(cached) $ac_c" 1>&6
17013 @@ -1762,7 +1773,7 @@
17014 test -n "$reload_flag" && reload_flag=" $reload_flag"
17016 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
17017 -echo "configure:1766: checking for BSD-compatible nm" >&5
17018 +echo "configure:1777: checking for BSD-compatible nm" >&5
17019 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
17020 echo $ac_n "(cached) $ac_c" 1>&6
17022 @@ -1800,7 +1811,7 @@
17023 echo "$ac_t""$NM" 1>&6
17025 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
17026 -echo "configure:1804: checking whether ln -s works" >&5
17027 +echo "configure:1815: checking whether ln -s works" >&5
17028 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
17029 echo $ac_n "(cached) $ac_c" 1>&6
17031 @@ -1821,7 +1832,7 @@
17034 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
17035 -echo "configure:1825: checking how to recognise dependant libraries" >&5
17036 +echo "configure:1836: checking how to recognise dependant libraries" >&5
17037 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
17038 echo $ac_n "(cached) $ac_c" 1>&6
17040 @@ -1994,13 +2005,13 @@
17041 deplibs_check_method=$lt_cv_deplibs_check_method
17043 echo $ac_n "checking for object suffix""... $ac_c" 1>&6
17044 -echo "configure:1998: checking for object suffix" >&5
17045 +echo "configure:2009: checking for object suffix" >&5
17046 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
17047 echo $ac_n "(cached) $ac_c" 1>&6
17050 echo 'int i = 1;' > conftest.$ac_ext
17051 -if { (eval echo configure:2004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17052 +if { (eval echo configure:2015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17053 for ac_file in conftest.*; do
17056 @@ -2024,7 +2035,7 @@
17058 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
17059 echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
17060 -echo "configure:2028: checking for ${ac_tool_prefix}file" >&5
17061 +echo "configure:2039: checking for ${ac_tool_prefix}file" >&5
17062 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
17063 echo $ac_n "(cached) $ac_c" 1>&6
17065 @@ -2086,7 +2097,7 @@
17066 if test -z "$lt_cv_path_MAGIC_CMD"; then
17067 if test -n "$ac_tool_prefix"; then
17068 echo $ac_n "checking for file""... $ac_c" 1>&6
17069 -echo "configure:2090: checking for file" >&5
17070 +echo "configure:2101: checking for file" >&5
17071 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
17072 echo $ac_n "(cached) $ac_c" 1>&6
17074 @@ -2157,7 +2168,7 @@
17075 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
17076 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
17077 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17078 -echo "configure:2161: checking for $ac_word" >&5
17079 +echo "configure:2172: checking for $ac_word" >&5
17080 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
17081 echo $ac_n "(cached) $ac_c" 1>&6
17083 @@ -2189,7 +2200,7 @@
17084 # Extract the first word of "ranlib", so it can be a program name with args.
17085 set dummy ranlib; ac_word=$2
17086 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17087 -echo "configure:2193: checking for $ac_word" >&5
17088 +echo "configure:2204: checking for $ac_word" >&5
17089 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
17090 echo $ac_n "(cached) $ac_c" 1>&6
17092 @@ -2224,7 +2235,7 @@
17093 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
17094 set dummy ${ac_tool_prefix}strip; ac_word=$2
17095 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17096 -echo "configure:2228: checking for $ac_word" >&5
17097 +echo "configure:2239: checking for $ac_word" >&5
17098 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
17099 echo $ac_n "(cached) $ac_c" 1>&6
17101 @@ -2256,7 +2267,7 @@
17102 # Extract the first word of "strip", so it can be a program name with args.
17103 set dummy strip; ac_word=$2
17104 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
17105 -echo "configure:2260: checking for $ac_word" >&5
17106 +echo "configure:2271: checking for $ac_word" >&5
17107 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
17108 echo $ac_n "(cached) $ac_c" 1>&6
17110 @@ -2323,8 +2334,21 @@
17113 # Find out which ABI we are using.
17114 - echo '#line 2327 "configure"' > conftest.$ac_ext
17115 - if { (eval echo configure:2328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17116 + echo '#line 2338 "configure"' > conftest.$ac_ext
17117 + if { (eval echo configure:2339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17118 + if test "$lt_cv_prog_gnu_ld" = yes; then
17119 + case `/usr/bin/file conftest.$ac_objext` in
17121 + LD="${LD-ld} -melf32bsmip"
17124 + LD="${LD-ld} -melf32bmipn32"
17127 + LD="${LD-ld} -melf64bmip"
17131 case `/usr/bin/file conftest.$ac_objext` in
17134 @@ -2336,6 +2360,7 @@
17142 @@ -2343,7 +2368,7 @@
17144 # Find out which ABI we are using.
17145 echo 'int i;' > conftest.$ac_ext
17146 - if { (eval echo configure:2347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17147 + if { (eval echo configure:2372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17148 case "`/usr/bin/file conftest.o`" in
17150 HPUX_IA64_MODE="32"
17151 @@ -2359,7 +2384,7 @@
17152 x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
17153 # Find out which ABI we are using.
17154 echo 'int i;' > conftest.$ac_ext
17155 - if { (eval echo configure:2363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17156 + if { (eval echo configure:2388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
17157 case "`/usr/bin/file conftest.o`" in
17160 @@ -2403,7 +2428,7 @@
17161 SAVE_CFLAGS="$CFLAGS"
17162 CFLAGS="$CFLAGS -belf"
17163 echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
17164 -echo "configure:2407: checking whether the C compiler needs -belf" >&5
17165 +echo "configure:2432: checking whether the C compiler needs -belf" >&5
17166 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
17167 echo $ac_n "(cached) $ac_c" 1>&6
17169 @@ -2416,14 +2441,14 @@
17170 cross_compiling=$ac_cv_prog_cc_cross
17172 cat > conftest.$ac_ext <<EOF
17173 -#line 2420 "configure"
17174 +#line 2445 "configure"
17175 #include "confdefs.h"
17181 -if { (eval echo configure:2427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17182 +if { (eval echo configure:2452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17184 lt_cv_cc_needs_belf=yes
17186 @@ -2453,7 +2478,7 @@
17189 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
17190 -echo "configure:2457: checking how to run the C++ preprocessor" >&5
17191 +echo "configure:2482: checking how to run the C++ preprocessor" >&5
17192 if test -z "$CXXCPP"; then
17193 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
17194 echo $ac_n "(cached) $ac_c" 1>&6
17195 @@ -2466,12 +2491,12 @@
17196 cross_compiling=$ac_cv_prog_cxx_cross
17197 CXXCPP="${CXX-g++} -E"
17198 cat > conftest.$ac_ext <<EOF
17199 -#line 2470 "configure"
17200 +#line 2495 "configure"
17201 #include "confdefs.h"
17202 #include <stdlib.h>
17204 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
17205 -{ (eval echo configure:2475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
17206 +{ (eval echo configure:2500: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
17207 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
17208 if test -z "$ac_err"; then
17210 @@ -2618,7 +2643,7 @@
17213 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
17214 -echo "configure:2622: checking whether to enable maintainer-specific portions of Makefiles" >&5
17215 +echo "configure:2647: checking whether to enable maintainer-specific portions of Makefiles" >&5
17216 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
17217 if test "${enable_maintainer_mode+set}" = set; then
17218 enableval="$enable_maintainer_mode"
17219 @@ -2651,7 +2676,7 @@
17222 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
17223 -echo "configure:2655: checking for executable suffix" >&5
17224 +echo "configure:2680: checking for executable suffix" >&5
17225 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
17226 echo $ac_n "(cached) $ac_c" 1>&6
17228 @@ -2661,10 +2686,10 @@
17230 echo 'int main () { return 0; }' > conftest.$ac_ext
17232 - if { (eval echo configure:2665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17233 + if { (eval echo configure:2690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17234 for file in conftest.*; do
17236 - *.c | *.o | *.obj) ;;
17237 + *.c | *.o | *.obj | *.ilk | *.pdb) ;;
17238 *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
17241 @@ -2684,7 +2709,7 @@
17244 echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
17245 -echo "configure:2688: checking for thread model used by GCC" >&5
17246 +echo "configure:2713: checking for thread model used by GCC" >&5
17247 THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
17248 if test -z "$THREADS"; then
17250 @@ -2793,22 +2818,6 @@
17255 - cat >> confdefs.h <<\EOF
17256 -#define GC_DARWIN_THREADS 1
17259 - cat >> confdefs.h <<\EOF
17260 -#define THREAD_LOCAL_ALLOC 1
17263 - if test "${enable_parallel_mark}" = yes; then
17264 - cat >> confdefs.h <<\EOF
17265 -#define PARALLEL_MARK 1
17273 @@ -2820,6 +2829,12 @@
17274 #define NO_GETENV 1
17277 + if test $enable_shared = yes; then
17278 + cat >> confdefs.h <<\EOF
17284 decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17285 { echo "configure: error: thread package $THREADS not yet supported" 1>&2; exit 1; }
17286 @@ -2830,28 +2845,8 @@
17291 - powerpc-*-darwin*)
17292 - powerpc_darwin=true
17297 -if test x$powerpc_darwin = xtrue; then
17298 - POWERPC_DARWIN_TRUE=
17299 - POWERPC_DARWIN_FALSE='#'
17301 - POWERPC_DARWIN_TRUE='#'
17302 - POWERPC_DARWIN_FALSE=
17305 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17306 -# dyld calls anyway
17310 - echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
17311 -echo "configure:2855: checking for dlopen in -ldl" >&5
17312 +echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
17313 +echo "configure:2850: checking for dlopen in -ldl" >&5
17314 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
17315 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
17316 echo $ac_n "(cached) $ac_c" 1>&6
17317 @@ -2859,7 +2854,7 @@
17318 ac_save_LIBS="$LIBS"
17320 cat > conftest.$ac_ext <<EOF
17321 -#line 2863 "configure"
17322 +#line 2858 "configure"
17323 #include "confdefs.h"
17324 /* Override any gcc2 internal prototype to avoid an error. */
17325 /* We use char because int might match the return type of a gcc2
17326 @@ -2870,7 +2865,7 @@
17330 -if { (eval echo configure:2874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17331 +if { (eval echo configure:2869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17333 eval "ac_cv_lib_$ac_lib_var=yes"
17335 @@ -2890,9 +2885,6 @@
17336 echo "$ac_t""no" 1>&6
17344 target_all=libgcjgc.la
17345 @@ -3108,15 +3100,17 @@
17351 -if test -z "$with_cross_host"; then
17353 - USE_LIBDIR_FALSE='#'
17354 +if test -n "$with_cross_host" &&
17355 + test x"$with_cross_host" != x"no"; then
17356 + toolexecdir='$(exec_prefix)/$(target_alias)'
17357 + toolexeclibdir='$(toolexecdir)/lib'
17359 - USE_LIBDIR_TRUE='#'
17360 - USE_LIBDIR_FALSE=
17361 + toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
17362 + toolexeclibdir='$(libdir)'
17364 +toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
17368 if test "${multilib}" = "yes"; then
17369 multilib_arg="--enable-multilib"
17370 @@ -3313,16 +3307,14 @@
17371 s%@LIBTOOL@%$LIBTOOL%g
17372 s%@CXXCPP@%$CXXCPP%g
17373 s%@THREADLIBS@%$THREADLIBS%g
17374 -s%@POWERPC_DARWIN_TRUE@%$POWERPC_DARWIN_TRUE%g
17375 -s%@POWERPC_DARWIN_FALSE@%$POWERPC_DARWIN_FALSE%g
17376 s%@EXTRA_TEST_LIBS@%$EXTRA_TEST_LIBS%g
17377 s%@target_all@%$target_all%g
17378 s%@INCLUDES@%$INCLUDES%g
17379 s%@CXXINCLUDES@%$CXXINCLUDES%g
17380 s%@addobjs@%$addobjs%g
17381 s%@MY_CFLAGS@%$MY_CFLAGS%g
17382 -s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
17383 -s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
17384 +s%@toolexecdir@%$toolexecdir%g
17385 +s%@toolexeclibdir@%$toolexeclibdir%g
17389 @@ -3331,7 +3323,7 @@
17391 # Split the substitutions into bite-sized pieces for seds with
17392 # small command number limits, like on Digital OSF/1 and HP-UX.
17393 -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
17394 +ac_max_sed_cmds=60 # Maximum number of lines to put in a sed script.
17395 ac_file=1 # Number of current file.
17396 ac_beg=1 # First line for current file.
17397 ac_end=$ac_max_sed_cmds # Line after last line for current file.
17398 @@ -3433,6 +3425,7 @@
17399 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17400 gc_basedir=${gc_basedir}
17402 +ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
17406 diff -Nur ../boehm-gc/configure.in boehm-gc/configure.in
17407 --- ../boehm-gc/configure.in Mon May 26 13:33:22 2003
17408 +++ boehm-gc/configure.in Mon Apr 28 13:55:07 2003
17410 -# Copyright (c) 1999, 2000, 2001, 2002 by Red Hat, Inc. All rights reserved.
17411 +# Copyright (c) 1999, 2000, 2001, 2002, 2003 by Red Hat, Inc. All rights reserved.
17413 # THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
17414 # OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
17415 @@ -111,18 +111,14 @@
17420 - AC_DEFINE(GC_DARWIN_THREADS)
17421 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17422 - if test "${enable_parallel_mark}" = yes; then
17423 - AC_DEFINE(PARALLEL_MARK)
17429 AC_DEFINE(GC_WIN32_THREADS)
17430 AC_DEFINE(NO_GETENV)
17431 + if test $enable_shared = yes; then
17432 + AC_DEFINE(GC_DLL)
17435 decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17436 AC_MSG_ERROR(thread package $THREADS not yet supported)
17437 @@ -133,22 +129,7 @@
17439 AC_SUBST(THREADLIBS)
17442 - powerpc-*-darwin*)
17443 - powerpc_darwin=true
17446 -AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue)
17448 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17449 -# dyld calls anyway
17453 - AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17457 +AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17458 AC_SUBST(EXTRA_TEST_LIBS)
17460 target_all=libgcjgc.la
17461 @@ -289,7 +270,17 @@
17465 -AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
17466 +if test -n "$with_cross_host" &&
17467 + test x"$with_cross_host" != x"no"; then
17468 + toolexecdir='$(exec_prefix)/$(target_alias)'
17469 + toolexeclibdir='$(toolexecdir)/lib'
17471 + toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
17472 + toolexeclibdir='$(libdir)'
17474 +toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
17475 +AC_SUBST(toolexecdir)
17476 +AC_SUBST(toolexeclibdir)
17478 if test "${multilib}" = "yes"; then
17479 multilib_arg="--enable-multilib"
17480 @@ -313,5 +304,6 @@
17481 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17482 gc_basedir=${gc_basedir}
17484 +ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
17487 diff -Nur ../boehm-gc/configure.in~ boehm-gc/configure.in~
17488 --- ../boehm-gc/configure.in~ Mon May 26 13:33:22 2003
17489 +++ boehm-gc/configure.in~ Wed Dec 31 16:00:00 1969
17491 -# Copyright (c) 1999, 2000, 2001, 2002 by Red Hat, Inc. All rights reserved.
17493 -# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
17494 -# OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
17496 -# Permission is hereby granted to use or copy this program
17497 -# for any purpose, provided the above notices are retained on all copies.
17498 -# Permission to modify the code and to distribute modified code is granted,
17499 -# provided the above notices are retained, and a notice that the code was
17500 -# modified is included with the above copyright notice.
17502 -# Original author: Tom Tromey
17504 -dnl Process this file with autoconf to produce configure.
17506 -AC_INIT(gcj_mlc.c)
17508 -# This works around the fact that libtool configuration may change LD
17509 -# for this particular configuration, but some shells, instead of
17510 -# keeping the changes in LD private, export them just because LD is
17512 -ORIGINAL_LD_FOR_MULTILIBS=$LD
17514 -dnl Can't be done in GC_CONFIGURE because that confuses automake.
17515 -AC_CONFIG_AUX_DIR(.)
17521 -dnl We use these options to decide which functions to include.
17522 -AC_ARG_WITH(target-subdir,
17523 -[ --with-target-subdir=SUBDIR
17524 - configuring with a cross compiler])
17525 -AC_ARG_WITH(cross-host,
17526 -[ --with-cross-host=HOST configuring with a cross compiler])
17528 -AM_MAINTAINER_MODE
17529 -# automake wants to see AC_EXEEXT. But we don't need it. And having
17530 -# it is actually a problem, because the compiler we're passed can't
17531 -# necessarily do a full link. So we fool automake here.
17533 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
17534 - # to nothing, so nothing would remain between `then' and `fi' if it
17535 - # were not for the `:' below.
17540 -AC_MSG_CHECKING([for thread model used by GCC])
17541 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
17542 -if test -z "$THREADS"; then
17545 -AC_MSG_RESULT([$THREADS])
17547 -AC_ARG_ENABLE(parallel-mark,
17548 -[ --enable-parallel-mark parallelize marking and free list construction],
17549 - [case "$THREADS" in
17550 - no | none | single)
17551 - AC_MSG_ERROR([Parallel mark requires --enable-threads=x spec])
17556 -INCLUDES=-I${srcdir}/include
17558 -case "$THREADS" in
17559 - no | none | single)
17562 - posix | pthreads)
17564 - THREADLIBS=-lpthread
17566 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
17567 - AC_DEFINE(GC_LINUX_THREADS)
17568 - AC_DEFINE(_REENTRANT)
17569 - if test "${enable_parallel_mark}"; then
17570 - AC_DEFINE(PARALLEL_MARK)
17572 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17575 - AC_DEFINE(GC_LINUX_THREADS)
17576 - AC_DEFINE(_REENTRANT)
17579 - AC_MSG_WARN("Only HP/UX 11 threads are supported.")
17580 - AC_DEFINE(GC_HPUX_THREADS)
17581 - AC_DEFINE(_POSIX_C_SOURCE,199506L)
17582 - if test "${enable_parallel_mark}" = yes; then
17583 - AC_DEFINE(PARALLEL_MARK)
17585 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17586 - THREADLIBS="-lpthread -lrt"
17589 - AC_MSG_WARN("FreeBSD does not yet fully support threads with Boehm GC.")
17590 - AC_DEFINE(GC_FREEBSD_THREADS)
17591 - INCLUDES="$INCLUDES -pthread"
17592 - THREADLIBS=-pthread
17595 - AC_DEFINE(GC_SOLARIS_THREADS)
17596 - AC_DEFINE(GC_SOLARIS_PTHREADS)
17599 - AC_DEFINE(GC_IRIX_THREADS)
17607 - AC_DEFINE(GC_DARWIN_THREADS)
17608 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17609 - if test "${enable_parallel_mark}" = yes; then
17610 - AC_DEFINE(PARALLEL_MARK)
17614 - AC_DEFINE(GC_WIN32_THREADS)
17615 - AC_DEFINE(NO_GETENV)
17617 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17618 - AC_MSG_ERROR(thread package $THREADS not yet supported)
17621 - AC_MSG_ERROR($THREADS is an unknown thread package)
17624 -AC_SUBST(THREADLIBS)
17627 - powerpc-*-darwin*)
17628 - powerpc_darwin=true
17631 -AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue)
17633 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17634 -# dyld calls anyway
17638 - AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17642 -AC_SUBST(EXTRA_TEST_LIBS)
17644 -target_all=libgcjgc.la
17645 -AC_SUBST(target_all)
17646 -AC_SUBST(target_alias)
17648 -dnl If the target is an eCos system, use the appropriate eCos
17650 -dnl FIXME: this should not be a local option but a global target
17651 -dnl system; at present there is no eCos target.
17654 -[ --with-ecos enable runtime eCos target support],
17655 -TARGET_ECOS="$with_ecos"
17660 -case "$TARGET_ECOS" in
17665 - CXXINCLUDES="-I${TARGET_ECOS}/include"
17666 - addobjs="$addobjs ecos.lo"
17671 -AC_SUBST(INCLUDES)
17672 -AC_SUBST(CXXINCLUDES)
17676 - alpha*-*-openbsd*)
17677 - machdep="alpha_mach_dep.lo"
17678 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
17679 - AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled)
17680 - AM_DISABLE_SHARED
17684 - machdep="alpha_mach_dep.lo"
17686 - i?86-*-solaris2.[[89]]*)
17687 - AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED)
17690 - machdep="mips_ultrix_mach_dep.lo"
17691 - AC_DEFINE(STACKBASE, __stackbase)
17692 - AC_DEFINE(DATASTART_IS_ETEXT)
17694 - mips-dec-ultrix*)
17695 - machdep="mips_ultrix_mach-dep.lo"
17700 - machdep="mips_sgi_mach_dep.lo"
17701 - AC_DEFINE(NO_EXECUTE_PERMISSION)
17703 - sparc-sun-solaris2.3*)
17704 - machdep="sparc_mach_dep.lo"
17705 - AC_DEFINE(SUNOS53_SHARED_LIB)
17707 - sparc-sun-solaris2.*)
17708 - machdep="sparc_mach_dep.lo"
17711 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
17714 -if test x"$machdep" = x; then
17715 - machdep="mach_dep.lo"
17717 -addobjs="$addobjs $machdep"
17720 -dnl As of 4.13a2, the collector will not properly work on Solaris when
17721 -dnl built with gcc and -O. So we remove -O in the appropriate case.
17723 - sparc-sun-solaris2*)
17724 - if test "$GCC" = yes; then
17726 - for i in $CFLAGS; do
17731 - new_CFLAGS="$new_CFLAGS $i"
17735 - CFLAGS="$new_CFLAGS"
17740 -dnl We need to override the top-level CFLAGS. This is how we do it.
17741 -MY_CFLAGS="$CFLAGS"
17742 -AC_SUBST(MY_CFLAGS)
17744 -dnl Include defines that have become de facto standard.
17745 -dnl ALL_INTERIOR_POINTERS can be overridden in startup code.
17747 -AC_DEFINE(NO_SIGNALS)
17748 -AC_DEFINE(NO_EXECUTE_PERMISSION)
17749 -AC_DEFINE(ALL_INTERIOR_POINTERS)
17751 -dnl By default, make the library as general as possible.
17752 -AC_DEFINE(JAVA_FINALIZATION)
17753 -AC_DEFINE(GC_GCJ_SUPPORT)
17754 -AC_DEFINE(ATOMIC_UNCOLLECTABLE)
17756 -dnl This is something of a hack. When cross-compiling we turn off
17757 -dnl some functionality. These is only correct when targetting an
17758 -dnl embedded system. FIXME.
17759 -if test -n "${with_cross_host}"; then
17760 - AC_DEFINE(NO_SIGSET)
17761 - AC_DEFINE(NO_DEBUGGING)
17764 -AC_ARG_ENABLE(full-debug,
17765 -[ --enable-full-debug include full support for pointer backtracing etc.],
17766 -[ if test "$enable_full_debug" = "yes"; then
17767 - AC_MSG_WARN("Must define GC_DEBUG and use debug alloc. in clients.")
17768 - AC_DEFINE(KEEP_BACK_PTRS)
17769 - AC_DEFINE(DBG_HDRS_ALL)
17772 - AC_DEFINE(MAKE_BACK_GRAPH)
17774 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
17775 - AC_DEFINE(MAKE_BACK_GRAPH)
17776 - AC_MSG_WARN("Client must not use -fomit-frame-pointer.")
17777 - AC_DEFINE(SAVE_CALL_COUNT, 8)
17782 -AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
17784 -if test "${multilib}" = "yes"; then
17785 - multilib_arg="--enable-multilib"
17790 -AC_OUTPUT(Makefile include/Makefile, [
17791 -dnl Put all the -D options in a file.
17792 -echo "$DEFS" > boehm-cflags
17794 -if test -n "$CONFIG_FILES"; then
17795 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
17796 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
17801 -with_multisubdir=${with_multisubdir}
17802 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
17803 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17804 -gc_basedir=${gc_basedir}
17808 diff -Nur ../boehm-gc/darwin_stop_world.c boehm-gc/darwin_stop_world.c
17809 --- ../boehm-gc/darwin_stop_world.c Sun Jun 1 14:17:58 2003
17810 +++ boehm-gc/darwin_stop_world.c Wed Dec 31 16:00:00 1969
17812 -#include "private/pthread_support.h"
17814 -# if defined(GC_DARWIN_THREADS)
17816 -#define DEBUG_THREADS 0
17818 -/* From "Inside Mac OS X - Mach-O Runtime Architecture" published by Apple
17820 - "The space beneath the stack pointer, where a new stack frame would normally
17821 - be allocated, is called the red zone. This area as shown in Figure 3-2 may
17822 - be used for any purpose as long as a new stack frame does not need to be
17823 - added to the stack."
17825 - Page 50: "If a leaf procedure's red zone usage would exceed 224 bytes, then
17826 - it must set up a stack frame just like routines that call other routines."
17828 -#define PPC_RED_ZONE_SIZE 224
17830 -void GC_push_all_stacks() {
17836 -# if defined(POWERPC)
17837 - ppc_thread_state_t state;
17839 -# error FIXME for non-ppc OS X
17841 - mach_msg_type_number_t thread_state_count = MACHINE_THREAD_STATE_COUNT;
17843 - me = pthread_self();
17844 - if (!GC_thr_initialized) GC_thr_init();
17846 - for(i=0;i<THREAD_TABLE_SZ;i++) {
17847 - for(p=GC_threads[i];p!=0;p=p->next) {
17848 - if(p -> flags & FINISHED) continue;
17849 - if(pthread_equal(p->id,me)) {
17850 - lo = GC_approx_sp();
17852 - /* Get the thread state (registers, etc) */
17853 - r = thread_get_state(
17854 - p->stop_info.mach_thread,
17855 - MACHINE_THREAD_STATE,
17856 - (natural_t*)&state,
17857 - &thread_state_count);
17858 - if(r != KERN_SUCCESS) ABORT("thread_get_state failed");
17861 - lo = (void*)(state.r1 - PPC_RED_ZONE_SIZE);
17863 - GC_push_one(state.r0);
17864 - GC_push_one(state.r2);
17865 - GC_push_one(state.r3);
17866 - GC_push_one(state.r4);
17867 - GC_push_one(state.r5);
17868 - GC_push_one(state.r6);
17869 - GC_push_one(state.r7);
17870 - GC_push_one(state.r8);
17871 - GC_push_one(state.r9);
17872 - GC_push_one(state.r10);
17873 - GC_push_one(state.r11);
17874 - GC_push_one(state.r12);
17875 - GC_push_one(state.r13);
17876 - GC_push_one(state.r14);
17877 - GC_push_one(state.r15);
17878 - GC_push_one(state.r16);
17879 - GC_push_one(state.r17);
17880 - GC_push_one(state.r18);
17881 - GC_push_one(state.r19);
17882 - GC_push_one(state.r20);
17883 - GC_push_one(state.r21);
17884 - GC_push_one(state.r22);
17885 - GC_push_one(state.r23);
17886 - GC_push_one(state.r24);
17887 - GC_push_one(state.r25);
17888 - GC_push_one(state.r26);
17889 - GC_push_one(state.r27);
17890 - GC_push_one(state.r28);
17891 - GC_push_one(state.r29);
17892 - GC_push_one(state.r30);
17893 - GC_push_one(state.r31);
17895 - # error FIXME for non-PPC darwin
17896 - #endif /* !POWERPC */
17898 - if(p->flags & MAIN_THREAD)
17899 - hi = GC_stackbottom;
17901 - hi = p->stack_end;
17902 - #if DEBUG_THREADS
17903 - GC_printf3("Darwin: Stack for thread 0x%lx = [%lx,%lx)\n",
17904 - (unsigned long) p -> id,
17905 - (unsigned long) lo,
17906 - (unsigned long) hi
17909 - GC_push_all_stack(lo,hi);
17910 - } /* for(p=GC_threads[i]...) */
17911 - } /* for(i=0;i<THREAD_TABLE_SZ...) */
17914 -/* Caller holds allocation lock. */
17915 -void GC_stop_world()
17919 - pthread_t my_thread = pthread_self();
17920 - kern_return_t kern_result;
17922 - #if DEBUG_THREADS
17923 - GC_printf1("Stopping the world from 0x%lx\n", pthread_self());
17926 - /* Make sure all free list construction has stopped before we start. */
17927 - /* No new construction can start, since free list construction is */
17928 - /* required to acquire and release the GC lock before it starts, */
17929 - /* and we have the lock. */
17930 -# ifdef PARALLEL_MARK
17931 - GC_acquire_mark_lock();
17932 - GC_ASSERT(GC_fl_builder_count == 0);
17933 - /* We should have previously waited for it to become zero. */
17934 -# endif /* PARALLEL_MARK */
17936 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
17937 - for (p = GC_threads[i]; p != 0; p = p -> next) {
17938 - if (p -> id == my_thread) continue;
17939 - if (p -> flags & FINISHED) continue;
17940 - if (p -> thread_blocked) /* Will wait */ continue;
17942 - #if DEBUG_THREADS
17943 - GC_printf1("Suspending thread 0x%lx\n", p -> id);
17946 - /* Suspend the thread */
17947 - kern_result = thread_suspend(p->stop_info.mach_thread);
17948 - if(kern_result != KERN_SUCCESS) ABORT("thread_suspend failed");
17952 -# ifdef MPROTECT_VDB
17953 - if(GC_incremental) {
17954 - extern void GC_mprotect_stop();
17955 - GC_mprotect_stop();
17959 -# ifdef PARALLEL_MARK
17960 - GC_release_mark_lock();
17962 - #if DEBUG_THREADS
17963 - GC_printf1("World stopped from 0x%lx\n", pthread_self());
17967 -/* Caller holds allocation lock, and has held it continuously since */
17968 -/* the world stopped. */
17969 -void GC_start_world()
17971 - pthread_t my_thread = pthread_self();
17974 - kern_return_t kern_result;
17976 -# if DEBUG_THREADS
17977 - GC_printf0("World starting\n");
17980 -# ifdef MPROTECT_VDB
17981 - if(GC_incremental) {
17982 - extern void GC_mprotect_resume();
17983 - GC_mprotect_resume();
17987 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
17988 - for (p = GC_threads[i]; p != 0; p = p -> next) {
17989 - if (p -> id == my_thread) continue;
17990 - if (p -> flags & FINISHED) continue;
17991 - if (p -> thread_blocked) continue;
17993 - #if DEBUG_THREADS
17994 - GC_printf1("Resuming 0x%lx\n", p -> id);
17997 - /* Resume the thread */
17998 - kern_result = thread_resume(p->stop_info.mach_thread);
17999 - if(kern_result != KERN_SUCCESS) ABORT("thread_resume failed");
18002 - #if DEBUG_THREADS
18003 - GC_printf0("World started\n");
18007 -void GC_stop_init() {
18012 diff -Nur ../boehm-gc/dbg_mlc.c boehm-gc/dbg_mlc.c
18013 --- ../boehm-gc/dbg_mlc.c Mon May 26 12:48:52 2003
18014 +++ boehm-gc/dbg_mlc.c Tue Feb 12 21:38:39 2002
18016 # include <stdlib.h>
18018 # if defined(LINUX) || defined(SUNOS4) || defined(SUNOS5) \
18019 - || defined(HPUX) || defined(IRIX5) || defined(OSF1)
18020 + || defined(HPUX) || defined(IRIX) || defined(OSF1)
18021 # define RANDOM() random()
18023 # define RANDOM() (long)rand()
18024 @@ -228,8 +228,6 @@
18026 #endif /* KEEP_BACK_PTRS */
18028 -# define CROSSES_HBLK(p, sz) \
18029 - (((word)(p + sizeof(oh) + sz - 1) ^ (word)p) >= HBLKSIZE)
18030 /* Store debugging info into p. Return displaced pointer. */
18031 /* Assumes we don't hold allocation lock. */
18032 ptr_t GC_store_debug_info(p, sz, string, integer)
18033 @@ -245,8 +243,6 @@
18034 /* But that's expensive. And this way things should only appear */
18035 /* inconsistent while we're in the handler. */
18037 - GC_ASSERT(GC_size(p) >= sizeof(oh) + sz);
18038 - GC_ASSERT(!(SMALL_OBJ(sz) && CROSSES_HBLK(p, sz)));
18039 # ifdef KEEP_BACK_PTRS
18040 ((oh *)p) -> oh_back_ptr = HIDE_BACK_PTR(NOT_MARKED);
18042 @@ -279,8 +275,6 @@
18043 /* There is some argument that we should disable signals here. */
18044 /* But that's expensive. And this way things should only appear */
18045 /* inconsistent while we're in the handler. */
18046 - GC_ASSERT(GC_size(p) >= sizeof(oh) + sz);
18047 - GC_ASSERT(!(SMALL_OBJ(sz) && CROSSES_HBLK(p, sz)));
18048 # ifdef KEEP_BACK_PTRS
18049 ((oh *)p) -> oh_back_ptr = HIDE_BACK_PTR(NOT_MARKED);
18051 @@ -330,11 +324,10 @@
18053 register oh * ohdr = (oh *)GC_base(p);
18055 - GC_ASSERT(!I_HOLD_LOCK());
18056 GC_err_printf1("0x%lx (", ((unsigned long)ohdr + sizeof(oh)));
18057 GC_err_puts(ohdr -> oh_string);
18058 # ifdef SHORT_DBG_HDRS
18059 - GC_err_printf1(":%ld)\n", (unsigned long)(ohdr -> oh_int));
18060 + GC_err_printf1(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int));
18062 GC_err_printf2(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int),
18063 (unsigned long)(ohdr -> oh_sz));
18064 @@ -349,7 +342,6 @@
18068 - GC_ASSERT(!I_HOLD_LOCK());
18069 if (GC_HAS_DEBUG_INFO(p)) {
18072 @@ -363,7 +355,6 @@
18074 register oh * ohdr = (oh *)GC_base(p);
18076 - GC_ASSERT(!I_HOLD_LOCK());
18077 GC_err_printf2("0x%lx in object at 0x%lx(", (unsigned long)clobbered_addr,
18079 if (clobbered_addr <= (ptr_t)(&(ohdr -> oh_sz))
18080 @@ -385,18 +376,14 @@
18082 void GC_check_heap_proc GC_PROTO((void));
18084 -void GC_print_all_smashed_proc GC_PROTO((void));
18086 void GC_do_nothing() {}
18088 void GC_start_debugging()
18090 # ifndef SHORT_DBG_HDRS
18091 GC_check_heap = GC_check_heap_proc;
18092 - GC_print_all_smashed = GC_print_all_smashed_proc;
18094 GC_check_heap = GC_do_nothing;
18095 - GC_print_all_smashed = GC_do_nothing;
18097 GC_print_heap_obj = GC_debug_print_heap_obj_proc;
18098 GC_debugging_started = TRUE;
18099 @@ -442,62 +429,6 @@
18100 return (GC_store_debug_info(result, (word)lb, s, (word)i));
18104 - GC_PTR GC_debug_malloc_ignore_off_page(size_t lb, GC_EXTRA_PARAMS)
18106 - GC_PTR GC_debug_malloc_ignore_off_page(lb, s, i)
18110 -# ifdef GC_ADD_CALLER
18111 - --> GC_ADD_CALLER not implemented for K&R C
18115 - GC_PTR result = GC_malloc_ignore_off_page(lb + DEBUG_BYTES);
18117 - if (result == 0) {
18118 - GC_err_printf1("GC_debug_malloc_ignore_off_page(%ld) returning NIL (",
18119 - (unsigned long) lb);
18121 - GC_err_printf1(":%ld)\n", (unsigned long)i);
18124 - if (!GC_debugging_started) {
18125 - GC_start_debugging();
18127 - ADD_CALL_CHAIN(result, ra);
18128 - return (GC_store_debug_info(result, (word)lb, s, (word)i));
18132 - GC_PTR GC_debug_malloc_atomic_ignore_off_page(size_t lb, GC_EXTRA_PARAMS)
18134 - GC_PTR GC_debug_malloc_atomic_ignore_off_page(lb, s, i)
18138 -# ifdef GC_ADD_CALLER
18139 - --> GC_ADD_CALLER not implemented for K&R C
18143 - GC_PTR result = GC_malloc_atomic_ignore_off_page(lb + DEBUG_BYTES);
18145 - if (result == 0) {
18146 - GC_err_printf1("GC_debug_malloc_atomic_ignore_off_page(%ld)"
18147 - " returning NIL (", (unsigned long) lb);
18149 - GC_err_printf1(":%ld)\n", (unsigned long)i);
18152 - if (!GC_debugging_started) {
18153 - GC_start_debugging();
18155 - ADD_CALL_CHAIN(result, ra);
18156 - return (GC_store_debug_info(result, (word)lb, s, (word)i));
18159 # ifdef DBG_HDRS_ALL
18161 * An allocation function for internal use.
18162 @@ -516,7 +447,7 @@
18163 (unsigned long) lb);
18166 - ADD_CALL_CHAIN(result, GC_RETURN_ADDR);
18167 + ADD_CALL_CHAIN(result, ra);
18168 return (GC_store_debug_info_inner(result, (word)lb, "INTERNAL", (word)0));
18171 @@ -530,7 +461,7 @@
18172 (unsigned long) lb);
18175 - ADD_CALL_CHAIN(result, GC_RETURN_ADDR);
18176 + ADD_CALL_CHAIN(result, ra);
18177 return (GC_store_debug_info_inner(result, (word)lb, "INTERNAL", (word)0));
18180 @@ -661,7 +592,7 @@
18184 - GC_PTR result = GC_malloc_uncollectable(lb + UNCOLLECTABLE_DEBUG_BYTES);
18185 + GC_PTR result = GC_malloc_uncollectable(lb + DEBUG_BYTES);
18188 GC_err_printf1("GC_debug_malloc_uncollectable(%ld) returning NIL (",
18189 @@ -687,8 +618,7 @@
18194 - GC_malloc_atomic_uncollectable(lb + UNCOLLECTABLE_DEBUG_BYTES);
18195 + GC_PTR result = GC_malloc_atomic_uncollectable(lb + DEBUG_BYTES);
18199 @@ -844,45 +774,6 @@
18202 #ifndef SHORT_DBG_HDRS
18204 -/* List of smashed objects. We defer printing these, since we can't */
18205 -/* always print them nicely with the allocation lock held. */
18206 -/* We put them here instead of in GC_arrays, since it may be useful to */
18207 -/* be able to look at them with the debugger. */
18208 -#define MAX_SMASHED 20
18209 -ptr_t GC_smashed[MAX_SMASHED];
18210 -unsigned GC_n_smashed = 0;
18212 -# if defined(__STDC__) || defined(__cplusplus)
18213 - void GC_add_smashed(ptr_t smashed)
18215 - void GC_add_smashed(smashed)
18219 - GC_ASSERT(GC_is_marked(GC_base(smashed)));
18220 - GC_smashed[GC_n_smashed] = smashed;
18221 - if (GC_n_smashed < MAX_SMASHED - 1) ++GC_n_smashed;
18222 - /* In case of overflow, we keep the first MAX_SMASHED-1 */
18223 - /* entries plus the last one. */
18224 - GC_have_errors = TRUE;
18227 -/* Print all objects on the list. Clear the list. */
18228 -void GC_print_all_smashed_proc ()
18232 - GC_ASSERT(!I_HOLD_LOCK());
18233 - if (GC_n_smashed == 0) return;
18234 - GC_err_printf0("GC_check_heap_block: found smashed heap objects:\n");
18235 - for (i = 0; i < GC_n_smashed; ++i) {
18236 - GC_print_smashed_obj(GC_base(GC_smashed[i]), GC_smashed[i]);
18237 - GC_smashed[i] = 0;
18239 - GC_n_smashed = 0;
18242 /* Check all marked objects in the given block for validity */
18244 # if defined(__STDC__) || defined(__cplusplus)
18245 @@ -911,7 +802,11 @@
18246 && GC_HAS_DEBUG_INFO((ptr_t)p)) {
18247 ptr_t clobbered = GC_check_annotated_obj((oh *)p);
18249 - if (clobbered != 0) GC_add_smashed(clobbered);
18250 + if (clobbered != 0) {
18252 + "GC_check_heap_block: found smashed location at ");
18253 + GC_print_smashed_obj((ptr_t)p, clobbered);
18258 @@ -924,11 +819,9 @@
18259 void GC_check_heap_proc()
18261 # ifndef SMALL_CONFIG
18262 -# ifdef ALIGN_DOUBLE
18263 - GC_STATIC_ASSERT((sizeof(oh) & (2 * sizeof(word) - 1)) == 0);
18265 - GC_STATIC_ASSERT((sizeof(oh) & (sizeof(word) - 1)) == 0);
18267 + if (sizeof(oh) & (2 * sizeof(word) - 1) != 0) {
18268 + ABORT("Alignment problem: object header has inappropriate size\n");
18271 GC_apply_to_all_blocks(GC_check_heap_block, (word)0);
18273 @@ -949,12 +842,12 @@
18276 struct closure * result =
18277 -# ifdef DBG_HDRS_ALL
18278 - (struct closure *) GC_debug_malloc(sizeof (struct closure),
18281 - (struct closure *) GC_malloc(sizeof (struct closure));
18283 +# ifdef DBG_HDRS_ALL
18284 + (struct closure *) GC_debug_malloc(sizeof (struct closure),
18287 + (struct closure *) GC_malloc(sizeof (struct closure));
18290 result -> cl_fn = fn;
18291 result -> cl_data = data;
18292 @@ -1015,7 +908,7 @@
18293 ptr_t base = GC_base(obj);
18294 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
18296 - "GC_debug_register_finalizer called with non-base-pointer 0x%lx\n",
18297 + "GC_register_finalizer called with non-base-pointer 0x%lx\n",
18301 @@ -1047,7 +940,7 @@
18302 ptr_t base = GC_base(obj);
18303 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
18305 - "GC_debug_register_finalizer_no_order called with non-base-pointer 0x%lx\n",
18306 + "GC_register_finalizer_no_order called with non-base-pointer 0x%lx\n",
18310 @@ -1080,7 +973,7 @@
18311 ptr_t base = GC_base(obj);
18312 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
18314 - "GC_debug_register_finalizer_ignore_self called with non-base-pointer 0x%lx\n",
18315 + "GC_register_finalizer_ignore_self called with non-base-pointer 0x%lx\n",
18319 diff -Nur ../boehm-gc/dyn_load.c boehm-gc/dyn_load.c
18320 --- ../boehm-gc/dyn_load.c Mon May 26 12:48:52 2003
18321 +++ boehm-gc/dyn_load.c Mon Mar 3 22:38:30 2003
18323 !defined(MSWIN32) && !defined(MSWINCE) && \
18324 !(defined(ALPHA) && defined(OSF1)) && \
18325 !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
18326 - !defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \
18327 + !defined(RS6000) && !defined(SCO_ELF) && \
18328 !(defined(FREEBSD) && defined(__ELF__)) && \
18329 - !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \
18331 + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD)
18332 --> We only know how to find data segments of dynamic libraries for the
18333 --> above. Additional SVR4 variants might not be too
18338 #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
18339 - (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
18340 + (defined(FREEBSD) && defined(__ELF__)) || \
18341 (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
18342 # include <stddef.h>
18344 @@ -265,7 +264,7 @@
18345 # endif /* SUNOS */
18347 #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
18348 - (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
18349 + (defined(FREEBSD) && defined(__ELF__)) || \
18350 (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
18353 @@ -283,23 +282,56 @@
18354 /* Repeatedly read until buffer is filled, or EOF is encountered */
18355 /* Defined in os_dep.c. */
18357 -char *GC_parse_map_entry(char *buf_ptr, word *start, word *end,
18358 - char *prot_buf, unsigned int *maj_dev);
18359 -word GC_apply_to_maps(word (*fn)(char *));
18360 - /* From os_dep.c */
18361 +static char *parse_map_entry(char *buf_ptr, word *start, word *end,
18362 + char *prot_buf, unsigned int *maj_dev);
18364 -word GC_register_map_entries(char *maps)
18365 +void GC_register_dynamic_libraries()
18370 - char *buf_ptr = maps;
18372 + char maps_temp[32768];
18377 - unsigned int maj_dev;
18378 + unsigned int maj_dev, min_dev;
18379 word least_ha, greatest_ha;
18381 word datastart = (word)(DATASTART);
18383 - /* Compute heap bounds. FIXME: Should be done by add_to_heap? */
18384 + /* Read /proc/self/maps */
18385 + /* Note that we may not allocate, and thus can't use stdio. */
18386 + f = open("/proc/self/maps", O_RDONLY);
18387 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
18388 + /* stat() doesn't work for /proc/self/maps, so we have to
18389 + read it to find out how large it is... */
18392 + result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
18393 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
18394 + maps_size += result;
18395 + } while (result == sizeof(maps_temp));
18397 + if (maps_size > sizeof(maps_temp)) {
18398 + /* If larger than our buffer, close and re-read it. */
18400 + f = open("/proc/self/maps", O_RDONLY);
18401 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
18402 + maps_buf = alloca(maps_size);
18403 + if (NULL == maps_buf) ABORT("/proc/self/maps alloca failed");
18404 + result = GC_repeat_read(f, maps_buf, maps_size);
18405 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
18407 + /* Otherwise use the fixed size buffer */
18408 + maps_buf = maps_temp;
18412 + maps_buf[result] = '\0';
18413 + buf_ptr = maps_buf;
18414 + /* Compute heap bounds. Should be done by add_to_heap? */
18415 least_ha = (word)(-1);
18417 for (i = 0; i < GC_n_heap_sects; ++i) {
18418 @@ -310,10 +342,11 @@
18420 if (greatest_ha < (word)GC_scratch_last_end_ptr)
18421 greatest_ha = (word)GC_scratch_last_end_ptr;
18424 - buf_ptr = GC_parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
18425 - if (buf_ptr == NULL) return 1;
18427 + buf_ptr = parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
18428 + if (buf_ptr == NULL) return;
18430 if (prot_buf[1] == 'w') {
18431 /* This is a writable mapping. Add it to */
18432 /* the root set unless it is already otherwise */
18433 @@ -325,7 +358,16 @@
18435 if (GC_segment_is_thread_stack(start, end)) continue;
18437 - /* We no longer exclude the main data segment. */
18438 + /* The rest of this assumes that there is no mapping */
18439 + /* spanning the beginning of the data segment, or extending */
18440 + /* beyond the entire heap at both ends. */
18441 + /* Empirically these assumptions hold. */
18443 + if (start < (word)DATAEND && end > (word)DATAEND) {
18444 + /* Rld may use space at the end of the main data */
18445 + /* segment. Thus we add that in. */
18446 + start = (word)DATAEND;
18448 if (start < least_ha && end > least_ha) {
18451 @@ -335,14 +377,7 @@
18452 if (start >= least_ha && end <= greatest_ha) continue;
18453 GC_add_roots_inner((char *)start, (char *)end, TRUE);
18459 -void GC_register_dynamic_libraries()
18461 - if (!GC_apply_to_maps(GC_register_map_entries))
18462 - ABORT("Failed to read /proc for library registration.");
18466 /* We now take care of the main data segment ourselves: */
18467 @@ -352,6 +387,60 @@
18470 # define HAVE_REGISTER_MAIN_STATIC_DATA
18472 +// parse_map_entry parses an entry from /proc/self/maps so we can
18473 +// locate all writable data segments that belong to shared libraries.
18474 +// The format of one of these entries and the fields we care about
18476 +// XXXXXXXX-XXXXXXXX r-xp 00000000 30:05 260537 name of mapping...\n
18477 +// ^^^^^^^^ ^^^^^^^^ ^^^^ ^^
18478 +// start end prot maj_dev
18481 +// The parser is called with a pointer to the entry and the return value
18482 +// is either NULL or is advanced to the next entry(the byte after the
18483 +// trailing '\n'.)
18485 +#define OFFSET_MAP_START 0
18486 +#define OFFSET_MAP_END 9
18487 +#define OFFSET_MAP_PROT 18
18488 +#define OFFSET_MAP_MAJDEV 32
18490 +static char *parse_map_entry(char *buf_ptr, word *start, word *end,
18491 + char *prot_buf, unsigned int *maj_dev)
18494 + unsigned int val;
18497 + if (buf_ptr == NULL || *buf_ptr == '\0') {
18501 + memcpy(prot_buf, buf_ptr+OFFSET_MAP_PROT, 4); // do the protections first
18502 + prot_buf[4] = '\0';
18504 + if (prot_buf[1] == 'w') { // we can skip all of this if it's not writable
18507 + buf_ptr[OFFSET_MAP_START+8] = '\0';
18508 + *start = strtoul(tok, NULL, 16);
18510 + tok = buf_ptr+OFFSET_MAP_END;
18511 + buf_ptr[OFFSET_MAP_END+8] = '\0';
18512 + *end = strtoul(tok, NULL, 16);
18514 + buf_ptr += OFFSET_MAP_MAJDEV;
18516 + while (*buf_ptr != ':') buf_ptr++;
18517 + *buf_ptr++ = '\0';
18518 + *maj_dev = strtoul(tok, NULL, 16);
18521 + while (*buf_ptr && *buf_ptr++ != '\n');
18526 #endif /* USE_PROC_FOR_LIBRARIES */
18528 @@ -419,7 +508,6 @@
18529 GC_add_roots_inner(DATASTART2, (char *)(DATAEND2), TRUE);
18536 @@ -542,7 +630,6 @@
18537 /* The type is a lie, since the real type doesn't make sense here, */
18538 /* and we only test for NULL. */
18541 /* We use /proc to track down all parts of the address space that are */
18542 /* mapped by the process, and throw out regions we know we shouldn't */
18543 /* worry about. This may also work under other SVR4 variants. */
18544 @@ -969,122 +1056,7 @@
18546 #endif /* RS6000 */
18550 -#include <mach-o/dyld.h>
18551 -#include <mach-o/getsect.h>
18553 -/*#define DARWIN_DEBUG*/
18555 -const static struct {
18557 - const char *sect;
18558 -} GC_dyld_sections[] = {
18559 - { SEG_DATA, SECT_DATA },
18560 - { SEG_DATA, SECT_BSS },
18561 - { SEG_DATA, SECT_COMMON }
18564 -#ifdef DARWIN_DEBUG
18565 -static const char *GC_dyld_name_for_hdr(struct mach_header *hdr) {
18566 - unsigned long i,c;
18567 - c = _dyld_image_count();
18568 - for(i=0;i<c;i++) if(_dyld_get_image_header(i) == hdr)
18569 - return _dyld_get_image_name(i);
18574 -/* This should never be called by a thread holding the lock */
18575 -static void GC_dyld_image_add(struct mach_header* hdr, unsigned long slide) {
18576 - unsigned long start,end,i;
18577 - const struct section *sec;
18578 - for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
18579 - sec = getsectbynamefromheader(
18580 - hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
18581 - if(sec == NULL || sec->size == 0) continue;
18582 - start = slide + sec->addr;
18583 - end = start + sec->size;
18584 -# ifdef DARWIN_DEBUG
18585 - GC_printf4("Adding section at %p-%p (%lu bytes) from image %s\n",
18586 - start,end,sec->size,GC_dyld_name_for_hdr(hdr));
18588 - GC_add_roots((char*)start,(char*)end);
18590 -# ifdef DARWIN_DEBUG
18591 - GC_print_static_roots();
18595 -/* This should never be called by a thread holding the lock */
18596 -static void GC_dyld_image_remove(struct mach_header* hdr, unsigned long slide) {
18597 - unsigned long start,end,i;
18598 - const struct section *sec;
18599 - for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
18600 - sec = getsectbynamefromheader(
18601 - hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
18602 - if(sec == NULL || sec->size == 0) continue;
18603 - start = slide + sec->addr;
18604 - end = start + sec->size;
18605 -# ifdef DARWIN_DEBUG
18606 - GC_printf4("Removing section at %p-%p (%lu bytes) from image %s\n",
18607 - start,end,sec->size,GC_dyld_name_for_hdr(hdr));
18609 - GC_remove_roots((char*)start,(char*)end);
18611 -# ifdef DARWIN_DEBUG
18612 - GC_print_static_roots();
18616 -void GC_register_dynamic_libraries() {
18617 - /* Currently does nothing. The callbacks are setup by GC_init_dyld()
18618 - The dyld library takes it from there. */
18621 -/* The _dyld_* functions have an internal lock so no _dyld functions
18622 - can be called while the world is stopped without the risk of a deadlock.
18623 - Because of this we MUST setup callbacks BEFORE we ever stop the world.
18624 - This should be called BEFORE any thread in created and WITHOUT the
18625 - allocation lock held. */
18627 -void GC_init_dyld() {
18628 - static GC_bool initialized = FALSE;
18630 - if(initialized) return;
18632 -# ifdef DARWIN_DEBUG
18633 - GC_printf0("Forcing full bind of GC code...\n");
18635 - if(!_dyld_bind_fully_image_containing_address((unsigned long*)GC_malloc))
18636 - GC_abort("_dyld_bind_fully_image_containing_addres failed");
18638 -# ifdef DARWIN_DEBUG
18639 - GC_printf0("Registering dyld callbacks...\n");
18642 - /* Apple's Documentation:
18643 - When you call _dyld_register_func_for_add_image, the dynamic linker runtime
18644 - calls the specified callback (func) once for each of the images that is
18645 - currently loaded into the program. When a new image is added to the program,
18646 - your callback is called again with the mach_header for the new image, and the virtual memory slide amount of the new image.
18648 - This WILL properly register existing and all future libraries
18651 - _dyld_register_func_for_add_image(GC_dyld_image_add);
18652 - _dyld_register_func_for_remove_image(GC_dyld_image_remove);
18653 - initialized = TRUE;
18656 -#define HAVE_REGISTER_MAIN_STATIC_DATA
18657 -GC_bool GC_register_main_static_data()
18659 - /* Already done through dyld callbacks */
18663 -#endif /* DARWIN */
18665 #else /* !DYNAMIC_LOADING */
18667 diff -Nur ../boehm-gc/finalize.c boehm-gc/finalize.c
18668 --- ../boehm-gc/finalize.c Mon May 26 12:48:52 2003
18669 +++ boehm-gc/finalize.c Mon Feb 11 20:37:53 2002
18670 @@ -207,8 +207,7 @@
18674 - new_dl = (struct disappearing_link *)
18675 - GC_oom_fn(sizeof(struct disappearing_link));
18676 + new_dl = GC_oom_fn(sizeof(struct disappearing_link));
18678 GC_finalization_failures++;
18680 @@ -434,8 +433,7 @@
18684 - new_fo = (struct finalizable_object *)
18685 - GC_oom_fn(sizeof(struct finalizable_object));
18686 + new_fo = GC_oom_fn(sizeof(struct finalizable_object));
18688 GC_finalization_failures++;
18690 @@ -761,9 +759,8 @@
18691 /* Should be called without allocation lock. */
18692 int GC_invoke_finalizers()
18694 - struct finalizable_object * curr_fo;
18696 - word mem_freed_before;
18697 + register struct finalizable_object * curr_fo;
18698 + register int count = 0;
18701 while (GC_finalize_now != 0) {
18702 @@ -771,9 +768,6 @@
18706 - if (count == 0) {
18707 - mem_freed_before = GC_mem_freed;
18709 curr_fo = GC_finalize_now;
18711 if (curr_fo != 0) GC_finalize_now = fo_next(curr_fo);
18712 @@ -795,11 +789,6 @@
18713 GC_free((GC_PTR)curr_fo);
18716 - if (count != 0 && mem_freed_before != GC_mem_freed) {
18718 - GC_finalizer_mem_freed += (GC_mem_freed - mem_freed_before);
18724 @@ -812,9 +801,7 @@
18725 if (GC_finalize_now == 0) return;
18726 if (!GC_finalize_on_demand) {
18727 (void) GC_invoke_finalizers();
18729 - GC_ASSERT(GC_finalize_now == 0);
18730 -# endif /* Otherwise GC can run concurrently and add more */
18731 + GC_ASSERT(GC_finalize_now == 0);
18734 if (GC_finalizer_notifier != (void (*) GC_PROTO((void)))0
18735 @@ -852,17 +839,3 @@
18739 -#if !defined(NO_DEBUGGING)
18741 -void GC_print_finalization_stats()
18743 - struct finalizable_object *fo = GC_finalize_now;
18744 - size_t ready = 0;
18746 - GC_printf2("%lu finalization table entries; %lu disappearing links\n",
18747 - GC_fo_entries, GC_dl_entries);
18748 - for (; 0 != fo; fo = fo_next(fo)) ++ready;
18749 - GC_printf1("%lu objects are eligible for immediate finalization\n", ready);
18752 -#endif /* NO_DEBUGGING */
18753 diff -Nur ../boehm-gc/gc_dlopen.c boehm-gc/gc_dlopen.c
18754 --- ../boehm-gc/gc_dlopen.c Mon May 26 12:48:52 2003
18755 +++ boehm-gc/gc_dlopen.c Tue Oct 16 02:01:35 2001
18756 @@ -19,14 +19,12 @@
18758 * This used to be in dyn_load.c. It was extracted into a separate file
18759 * to avoid having to link against libdl.{a,so} if the client doesn't call
18760 - * dlopen. Of course this fails if the collector is in a dynamic
18765 #include "private/gc_priv.h"
18767 -# if (defined(GC_PTHREADS) && !defined(GC_DARWIN_THREADS)) \
18768 - || defined(GC_SOLARIS_THREADS)
18769 +# if defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS)
18771 # if defined(dlopen) && !defined(GC_USE_LD_WRAP)
18772 /* To support various threads pkgs, gc.h interposes on dlopen by */
18773 @@ -46,14 +44,19 @@
18774 /* calls in either a multithreaded environment, or if the library */
18775 /* initialization code allocates substantial amounts of GC'ed memory. */
18776 /* But I don't know of a better solution. */
18777 - static void disable_gc_for_dlopen()
18778 + /* This can still deadlock if the client explicitly starts a GC */
18779 + /* during the dlopen. He shouldn't do that. */
18780 + static GC_bool disable_gc_for_dlopen()
18784 + result = GC_dont_gc;
18785 while (GC_incremental && GC_collection_in_progress()) {
18786 GC_collect_a_little_inner(1000);
18789 + GC_dont_gc = TRUE;
18794 /* Redefine dlopen to guarantee mutual exclusion with */
18799 + GC_bool dont_gc_save;
18801 # ifndef USE_PROC_FOR_LIBRARIES
18802 - disable_gc_for_dlopen();
18803 + dont_gc_save = disable_gc_for_dlopen();
18805 # ifdef GC_USE_LD_WRAP
18806 result = (void *)__real_dlopen(path, mode);
18808 result = dlopen(path, mode);
18810 # ifndef USE_PROC_FOR_LIBRARIES
18811 - GC_enable(); /* undoes disable_gc_for_dlopen */
18812 + GC_dont_gc = dont_gc_save;
18816 diff -Nur ../boehm-gc/gcj_mlc.c boehm-gc/gcj_mlc.c
18817 --- ../boehm-gc/gcj_mlc.c Mon May 26 12:48:52 2003
18818 +++ boehm-gc/gcj_mlc.c Mon Feb 11 20:37:53 2002
18819 @@ -157,7 +157,6 @@
18820 GC_words_allocd += lw;
18822 *(void **)op = ptr_to_struct_containing_descr;
18823 - GC_ASSERT(((void **)op)[1] == 0);
18827 diff -Nur ../boehm-gc/if_mach.c boehm-gc/if_mach.c
18828 --- ../boehm-gc/if_mach.c Mon May 26 12:48:52 2003
18829 +++ boehm-gc/if_mach.c Fri Aug 17 11:30:45 2001
18831 if (strcmp(MACH_TYPE, argv[1]) != 0) return(0);
18832 if (strcmp(OS_TYPE, "") != 0 && strcmp(argv[2], "") != 0
18833 && strcmp(OS_TYPE, argv[2]) != 0) return(0);
18834 - fprintf(stderr, "^^^^Starting command^^^^\n");
18835 + printf("^^^^Starting command^^^^\n");
18837 execvp(argv[3], argv+3);
18838 perror("Couldn't execute");
18839 diff -Nur ../boehm-gc/include/Makefile.in boehm-gc/include/Makefile.in
18840 --- ../boehm-gc/include/Makefile.in Mon May 26 13:08:48 2003
18841 +++ boehm-gc/include/Makefile.in Tue Dec 31 09:52:45 2002
18843 -# Makefile.in generated by automake 1.6.3 from Makefile.am.
18844 -# @configure_input@
18845 +# Makefile.in generated automatically by automake 1.4 from Makefile.am
18847 -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
18848 -# Free Software Foundation, Inc.
18849 +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
18850 # This Makefile.in is free software; the Free Software Foundation
18851 # gives unlimited permission to copy and/or distribute it,
18852 # with or without modifications, as long as this notice is preserved.
18854 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
18855 # PARTICULAR PURPOSE.
18864 includedir = @includedir@
18865 oldincludedir = /usr/include
18869 pkgdatadir = $(datadir)/@PACKAGE@
18870 pkglibdir = $(libdir)/@PACKAGE@
18871 pkgincludedir = $(includedir)/@PACKAGE@
18875 ACLOCAL = @ACLOCAL@
18876 @@ -43,16 +45,12 @@
18877 AUTOMAKE = @AUTOMAKE@
18878 AUTOHEADER = @AUTOHEADER@
18880 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
18881 INSTALL = @INSTALL@
18882 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
18883 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
18884 INSTALL_DATA = @INSTALL_DATA@
18885 -install_sh_DATA = $(install_sh) -c -m 644
18886 -install_sh_PROGRAM = $(install_sh) -c
18887 -install_sh_SCRIPT = $(install_sh) -c
18888 INSTALL_SCRIPT = @INSTALL_SCRIPT@
18889 -INSTALL_HEADER = $(INSTALL_DATA)
18890 transform = @program_transform_name@
18895 @@ -65,190 +63,171 @@
18896 host_triplet = @host@
18897 target_alias = @target_alias@
18898 target_triplet = @target@
18902 -PATH_SEPARATOR = @PATH_SEPARATOR@
18911 CXXINCLUDES = @CXXINCLUDES@
18913 DLLTOOL = @DLLTOOL@
18917 EXTRA_TEST_LIBS = @EXTRA_TEST_LIBS@
18920 GCJFLAGS = @GCJFLAGS@
18921 GC_CFLAGS = @GC_CFLAGS@
18922 INCLUDES = @INCLUDES@
18923 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
18924 LIBTOOL = @LIBTOOL@
18927 +MAKEINFO = @MAKEINFO@
18928 MY_CFLAGS = @MY_CFLAGS@
18929 OBJDUMP = @OBJDUMP@
18931 PACKAGE = @PACKAGE@
18935 THREADLIBS = @THREADLIBS@
18936 VERSION = @VERSION@
18937 addobjs = @addobjs@
18938 -am__include = @am__include@
18939 -am__quote = @am__quote@
18940 gc_basedir = @gc_basedir@
18941 -install_sh = @install_sh@
18942 mkinstalldirs = @mkinstalldirs@
18943 target_all = @target_all@
18945 AUTOMAKE_OPTIONS = foreign
18947 noinst_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
18948 gc_pthread_redirects.h gc_cpp.h
18951 -CONFIG_CLEAN_FILES =
18953 -am__depfiles_maybe =
18955 -HEADERS = $(noinst_HEADERS)
18956 +CONFIG_CLEAN_FILES =
18957 +HEADERS = $(noinst_HEADERS)
18960 +DIST_COMMON = Makefile.am Makefile.in
18963 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
18964 - cd $(top_srcdir) && \
18965 - $(AUTOMAKE) --cygnus include/Makefile
18966 -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
18967 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
18969 -mostlyclean-libtool:
18971 +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
18974 - -rm -rf .libs _libs
18979 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
18980 + cd $(top_srcdir) && $(AUTOMAKE) --cygnus include/Makefile
18982 -distclean-libtool:
18984 -uninstall-info-am:
18985 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
18986 + cd $(top_builddir) \
18987 + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
18994 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
18995 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
18996 - unique=`for i in $$list; do \
18997 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
18999 - $(AWK) ' { files[$$0] = 1; } \
19000 +ID: $(HEADERS) $(SOURCES) $(LISP)
19001 + list='$(SOURCES) $(HEADERS)'; \
19002 + unique=`for i in $$list; do echo $$i; done | \
19003 + awk ' { files[$$0] = 1; } \
19004 END { for (i in files) print i; }'`; \
19005 - mkid -fID $$unique
19006 + here=`pwd` && cd $(srcdir) \
19007 + && mkid -f$$here/ID $$unique $(LISP)
19009 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
19010 - $(TAGS_FILES) $(LISP)
19011 +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
19014 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
19015 - unique=`for i in $$list; do \
19016 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
19018 - $(AWK) ' { files[$$0] = 1; } \
19019 + list='$(SOURCES) $(HEADERS)'; \
19020 + unique=`for i in $$list; do echo $$i; done | \
19021 + awk ' { files[$$0] = 1; } \
19022 END { for (i in files) print i; }'`; \
19023 - test -z "$(ETAGS_ARGS)$$tags$$unique" \
19024 - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
19028 - here=`$(am__cd) $(top_builddir) && pwd` \
19029 - && cd $(top_srcdir) \
19030 - && gtags -i $(GTAGS_ARGS) $$here
19031 + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
19032 + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
19039 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
19042 -all-am: Makefile $(HEADERS)
19046 +maintainer-clean-tags:
19048 -install: install-am
19049 +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
19053 +distdir: $(DISTFILES)
19054 + @for file in $(DISTFILES); do \
19055 + if test -f $$file; then d=.; else d=$(srcdir); fi; \
19056 + if test -d $$d/$$file; then \
19057 + cp -pr $$d/$$file $(distdir)/$$file; \
19059 + test -f $(distdir)/$$file \
19060 + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
19061 + || cp -p $$d/$$file $(distdir)/$$file || :; \
19071 +installcheck: installcheck-am
19073 +install-info: install-info-am
19075 install-exec: install-exec-am
19078 install-data: install-data-am
19079 -uninstall: uninstall-am
19082 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
19084 -installcheck: installcheck-am
19085 +install: install-am
19087 +uninstall: uninstall-am
19088 +all-am: Makefile $(HEADERS)
19089 +all-redirect: all-am
19091 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
19092 - INSTALL_STRIP_FLAG=-s \
19093 - `test -z '$(STRIP)' || \
19094 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
19095 + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
19099 mostlyclean-generic:
19104 -rm -f Makefile $(CONFIG_CLEAN_FILES)
19105 + -rm -f config.cache config.log stamp-h stamp-h[0-9]*
19107 maintainer-clean-generic:
19108 - @echo "This command is intended for maintainers to use"
19109 - @echo "it deletes files that may require special tools to rebuild."
19112 -clean-am: clean-generic clean-libtool mostlyclean-am
19114 -distclean: distclean-am
19116 -distclean-am: clean-am distclean-generic distclean-libtool \
19120 +mostlyclean-am: mostlyclean-tags mostlyclean-generic
19127 +mostlyclean: mostlyclean-am
19130 +clean-am: clean-tags clean-generic mostlyclean-am
19136 +distclean-am: distclean-tags distclean-generic clean-am
19140 +distclean: distclean-am
19143 +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
19145 + @echo "This command is intended for maintainers to use;"
19146 + @echo "it deletes files that may require special tools to rebuild."
19148 maintainer-clean: maintainer-clean-am
19150 -maintainer-clean-am: distclean-am maintainer-clean-generic
19152 -mostlyclean: mostlyclean-am
19154 -mostlyclean-am: mostlyclean-generic mostlyclean-libtool
19157 +.PHONY: tags mostlyclean-tags distclean-tags clean-tags \
19158 +maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
19159 +installcheck-am installcheck install-info-am install-info \
19160 +install-exec-am install-exec install-data-am install-data install-am \
19161 +install uninstall-am uninstall all-redirect all-am all installdirs \
19162 +mostlyclean-generic distclean-generic clean-generic \
19163 +maintainer-clean-generic clean mostlyclean distclean maintainer-clean
19165 -.PHONY: GTAGS all all-am check check-am clean clean-generic \
19166 - clean-libtool distclean distclean-generic distclean-libtool \
19167 - distclean-tags dvi dvi-am info info-am install install-am \
19168 - install-data install-data-am install-exec install-exec-am \
19169 - install-info install-info-am install-man install-strip \
19170 - installcheck installcheck-am installdirs maintainer-clean \
19171 - maintainer-clean-generic mostlyclean mostlyclean-generic \
19172 - mostlyclean-libtool tags uninstall uninstall-am \
19173 - uninstall-info-am
19175 # Tell versions [3.59,3.63) of GNU make to not export all variables.
19176 # Otherwise a system limit (for SysV at least) may be exceeded.
19177 diff -Nur ../boehm-gc/include/gc.h boehm-gc/include/gc.h
19178 --- ../boehm-gc/include/gc.h Mon May 26 13:28:19 2003
19179 +++ boehm-gc/include/gc.h Mon Feb 11 20:37:56 2002
19184 -# include "gc_config_macros.h"
19186 + * Some tests for old macros. These violate our namespace rules and will
19187 + * disappear shortly. Use the GC_ names.
19189 +#if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS)
19190 +# define GC_SOLARIS_THREADS
19192 +#if defined(_SOLARIS_PTHREADS)
19193 +# define GC_SOLARIS_PTHREADS
19195 +#if defined(IRIX_THREADS)
19196 +# define GC_IRIX_THREADS
19198 +#if defined(HPUX_THREADS)
19199 +# define GC_HPUX_THREADS
19201 +#if defined(OSF1_THREADS)
19202 +# define GC_OSF1_THREADS
19204 +#if defined(LINUX_THREADS)
19205 +# define GC_LINUX_THREADS
19207 +#if defined(WIN32_THREADS)
19208 +# define GC_WIN32_THREADS
19210 +#if defined(USE_LD_WRAP)
19211 +# define GC_USE_LD_WRAP
19214 +#if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \
19215 + || defined(GC_SOLARIS_PTHREADS) \
19216 + || defined(GC_HPUX_THREADS) \
19217 + || defined(GC_LINUX_THREADS))
19218 +# define _REENTRANT
19219 + /* Better late than never. This fails if system headers that */
19220 + /* depend on this were previously included. */
19223 +#if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
19224 +# define GC_SOLARIS_THREADS
19227 +# if defined(GC_SOLARIS_PTHREADS) || defined(GC_FREEBSD_THREADS) || \
19228 + defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \
19229 + defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
19230 +# define GC_PTHREADS
19234 +# include <stddef.h>
19235 +# ifdef _WIN32_WCE
19236 +/* Yet more kluges for WinCE */
19237 +# include <stdlib.h> /* size_t is defined here */
19238 + typedef long ptrdiff_t; /* ptrdiff_t is not defined */
19241 +#if defined(__MINGW32__) &&defined(_DLL) && !defined(GC_NOT_DLL)
19243 +# define GC_API __declspec(dllexport)
19245 +# define GC_API __declspec(dllimport)
19249 +#if (defined(__DMC__) || defined(_MSC_VER)) \
19250 + && (defined(_DLL) && !defined(GC_NOT_DLL) \
19251 + || defined(GC_DLL))
19253 +# define GC_API extern __declspec(dllexport)
19255 +# define GC_API __declspec(dllimport)
19259 +#if defined(__WATCOMC__) && defined(GC_DLL)
19261 +# define GC_API extern __declspec(dllexport)
19263 +# define GC_API extern __declspec(dllimport)
19268 +#define GC_API extern
19271 # if defined(__STDC__) || defined(__cplusplus)
19272 # define GC_PROTO(args) args
19274 /* Env variable GC_NPROC is set to > 1, or */
19275 /* GC_NPROC is not set and this is an MP. */
19276 /* If GC_parallel is set, incremental */
19277 - /* collection is only partially functional, */
19278 + /* collection is aonly partially functional, */
19279 /* and may not be desirable. */
19282 @@ -131,14 +215,8 @@
19283 /* thread, which will call GC_invoke_finalizers */
19286 -GC_API int GC_dont_gc; /* != 0 ==> Dont collect. In versions 7.2a1+, */
19287 - /* this overrides explicit GC_gcollect() calls. */
19288 - /* Used as a counter, so that nested enabling */
19289 - /* and disabling work correctly. Should */
19290 - /* normally be updated with GC_enable() and */
19291 - /* GC_disable() calls. */
19292 - /* Direct assignment to GC_dont_gc is */
19293 - /* deprecated. */
19294 +GC_API int GC_dont_gc; /* Dont collect unless explicitly requested, e.g. */
19295 + /* because it's not safe. */
19297 GC_API int GC_dont_expand;
19298 /* Dont expand heap unless explicitly requested */
19299 @@ -218,6 +296,15 @@
19300 /* Interferes with blacklisting. */
19301 /* Wizards only. */
19303 +/* Public procedures */
19305 +/* Initialize the collector. This is only required when using thread-local
19306 + * allocation, since unlike the regular allocation routines, GC_local_malloc
19307 + * is not self-initializing. If you use GC_local_malloc you should arrange
19308 + * to call this somehow (e.g. from a constructor) before doing any allocation.
19310 +GC_API void GC_init GC_PROTO((void));
19312 GC_API unsigned long GC_time_limit;
19313 /* If incremental collection is enabled, */
19314 /* We try to terminate collections */
19315 @@ -229,18 +316,9 @@
19317 # define GC_TIME_UNLIMITED 999999
19318 /* Setting GC_time_limit to this value */
19319 - /* will disable the "pause time exceeded"*/
19320 + /* will disable the "pause time exceeded */
19323 -/* Public procedures */
19325 -/* Initialize the collector. This is only required when using thread-local
19326 - * allocation, since unlike the regular allocation routines, GC_local_malloc
19327 - * is not self-initializing. If you use GC_local_malloc you should arrange
19328 - * to call this somehow (e.g. from a constructor) before doing any allocation.
19330 -GC_API void GC_init GC_PROTO((void));
19333 * general purpose allocation routines, with roughly malloc calling conv.
19334 * The atomic versions promise that no relevant pointers are contained
19335 @@ -341,21 +419,17 @@
19336 GC_API void GC_add_roots GC_PROTO((char * low_address,
19337 char * high_address_plus_1));
19339 -/* Remove a root segment. Wizards only. */
19340 -GC_API void GC_remove_roots GC_PROTO((char * low_address,
19341 - char * high_address_plus_1));
19343 /* Add a displacement to the set of those considered valid by the */
19344 /* collector. GC_register_displacement(n) means that if p was returned */
19345 /* by GC_malloc, then (char *)p + n will be considered to be a valid */
19346 -/* pointer to p. N must be small and less than the size of p. */
19347 +/* pointer to n. N must be small and less than the size of p. */
19348 /* (All pointers to the interior of objects from the stack are */
19349 /* considered valid in any case. This applies to heap objects and */
19350 /* static data.) */
19351 /* Preferably, this should be called before any other GC procedures. */
19352 /* Calling it later adds to the probability of excess memory */
19354 -/* This is a no-op if the collector has recognition of */
19355 +/* This is a no-op if the collector was compiled with recognition of */
19356 /* arbitrary interior pointers enabled, which is now the default. */
19357 GC_API void GC_register_displacement GC_PROTO((GC_word n));
19359 @@ -390,18 +464,9 @@
19360 GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
19362 /* Return the total number of bytes allocated in this process. */
19363 -/* Never decreases, except due to wrapping. */
19364 +/* Never decreases. */
19365 GC_API size_t GC_get_total_bytes GC_PROTO((void));
19367 -/* Disable garbage collection. Even GC_gcollect calls will be */
19368 -/* ineffective. */
19369 -GC_API void GC_disable GC_PROTO((void));
19371 -/* Reenable garbage collection. GC_diable() and GC_enable() calls */
19372 -/* nest. Garbage collection is enabled if the number of calls to both */
19373 -/* both functions is equal. */
19374 -GC_API void GC_enable GC_PROTO((void));
19376 /* Enable incremental/generational collection. */
19377 /* Not advisable unless dirty bits are */
19378 /* available or most heap objects are */
19379 @@ -409,11 +474,7 @@
19380 /* Don't use in leak finding mode. */
19381 /* Ignored if GC_dont_gc is true. */
19382 /* Only the generational piece of this is */
19383 -/* functional if GC_parallel is TRUE */
19384 -/* or if GC_time_limit is GC_TIME_UNLIMITED. */
19385 -/* Causes GC_local_gcj_malloc() to revert to */
19386 -/* locked allocation. Must be called */
19387 -/* before any GC_local_gcj_malloc() calls. */
19388 +/* functional if GC_parallel is TRUE. */
19389 GC_API void GC_enable_incremental GC_PROTO((void));
19391 /* Does incremental mode write-protect pages? Returns zero or */
19392 @@ -457,42 +518,6 @@
19393 # define GC_RETURN_ADDR (GC_word)__return_address
19397 -# include <features.h>
19398 -# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
19399 - && !defined(__ia64__)
19400 -# define GC_HAVE_BUILTIN_BACKTRACE
19401 -# define GC_CAN_SAVE_CALL_STACKS
19403 -# if defined(__i386__) || defined(__x86_64__)
19404 -# define GC_CAN_SAVE_CALL_STACKS
19408 -#if defined(__sparc__)
19409 -# define GC_CAN_SAVE_CALL_STACKS
19412 -/* If we're on an a platform on which we can't save call stacks, but */
19413 -/* gcc is normally used, we go ahead and define GC_ADD_CALLER. */
19414 -/* We make this decision independent of whether gcc is actually being */
19415 -/* used, in order to keep the interface consistent, and allow mixing */
19416 -/* of compilers. */
19417 -/* This may also be desirable if it is possible but expensive to */
19418 -/* retrieve the call chain. */
19419 -#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \
19420 - || defined(__FreeBSD__)) & !defined(GC_CAN_SAVE_CALL_STACKS)
19421 -# define GC_ADD_CALLER
19422 -# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
19423 - /* gcc knows how to retrieve return address, but we don't know */
19424 - /* how to generate call stacks. */
19425 -# define GC_RETURN_ADDR (GC_word)__builtin_return_address(0)
19427 - /* Just pass 0 for gcc compatibility. */
19428 -# define GC_RETURN_ADDR 0
19432 #ifdef GC_ADD_CALLER
19433 # define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
19434 # define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
19435 @@ -511,42 +536,18 @@
19436 GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19437 GC_API GC_PTR GC_debug_malloc_stubborn
19438 GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19439 -GC_API GC_PTR GC_debug_malloc_ignore_off_page
19440 - GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19441 -GC_API GC_PTR GC_debug_malloc_atomic_ignore_off_page
19442 - GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
19443 GC_API void GC_debug_free GC_PROTO((GC_PTR object_addr));
19444 GC_API GC_PTR GC_debug_realloc
19445 GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes,
19448 GC_API void GC_debug_change_stubborn GC_PROTO((GC_PTR));
19449 GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
19451 -/* Routines that allocate objects with debug information (like the */
19452 -/* above), but just fill in dummy file and line number information. */
19453 -/* Thus they can serve as drop-in malloc/realloc replacements. This */
19454 -/* can be useful for two reasons: */
19455 -/* 1) It allows the collector to be built with DBG_HDRS_ALL defined */
19456 -/* even if some allocation calls come from 3rd party libraries */
19457 -/* that can't be recompiled. */
19458 -/* 2) On some platforms, the file and line information is redundant, */
19459 -/* since it can be reconstructed from a stack trace. On such */
19460 -/* platforms it may be more convenient not to recompile, e.g. for */
19461 -/* leak detection. This can be accomplished by instructing the */
19462 -/* linker to replace malloc/realloc with these. */
19463 -GC_API GC_PTR GC_debug_malloc_replacement GC_PROTO((size_t size_in_bytes));
19464 -GC_API GC_PTR GC_debug_realloc_replacement
19465 - GC_PROTO((GC_PTR object_addr, size_t size_in_bytes));
19468 # define GC_MALLOC(sz) GC_debug_malloc(sz, GC_EXTRAS)
19469 # define GC_MALLOC_ATOMIC(sz) GC_debug_malloc_atomic(sz, GC_EXTRAS)
19470 -# define GC_MALLOC_UNCOLLECTABLE(sz) \
19471 - GC_debug_malloc_uncollectable(sz, GC_EXTRAS)
19472 -# define GC_MALLOC_IGNORE_OFF_PAGE(sz) \
19473 - GC_debug_malloc_ignore_off_page(sz, GC_EXTRAS)
19474 -# define GC_MALLOC_ATOMIC_IGNORE_OFF_PAGE(sz) \
19475 - GC_debug_malloc_atomic_ignore_off_page(sz, GC_EXTRAS)
19476 +# define GC_MALLOC_UNCOLLECTABLE(sz) GC_debug_malloc_uncollectable(sz, \
19478 # define GC_REALLOC(old, sz) GC_debug_realloc(old, sz, GC_EXTRAS)
19479 # define GC_FREE(p) GC_debug_free(p)
19480 # define GC_REGISTER_FINALIZER(p, f, d, of, od) \
19481 @@ -565,10 +566,6 @@
19482 # define GC_MALLOC(sz) GC_malloc(sz)
19483 # define GC_MALLOC_ATOMIC(sz) GC_malloc_atomic(sz)
19484 # define GC_MALLOC_UNCOLLECTABLE(sz) GC_malloc_uncollectable(sz)
19485 -# define GC_MALLOC_IGNORE_OFF_PAGE(sz) \
19486 - GC_malloc_ignore_off_page(sz)
19487 -# define GC_MALLOC_ATOMIC_IGNORE_OFF_PAGE(sz) \
19488 - GC_malloc_atomic_ignore_off_page(sz)
19489 # define GC_REALLOC(old, sz) GC_realloc(old, sz)
19490 # define GC_FREE(p) GC_free(p)
19491 # define GC_REGISTER_FINALIZER(p, f, d, of, od) \
19492 @@ -647,8 +644,7 @@
19493 /* itself. There is a stylistic argument that this is wrong, */
19494 /* but it's unavoidable for C++, since the compiler may */
19495 /* silently introduce these. It's also benign in that specific */
19496 -/* case. And it helps if finalizable objects are split to */
19497 -/* avoid cycles. */
19499 /* Note that cd will still be viewed as accessible, even if it */
19500 /* refers to the object itself. */
19501 GC_API void GC_register_finalizer_ignore_self
19502 @@ -721,6 +717,11 @@
19503 /* Undoes a registration by either of the above two */
19506 +/* Auxiliary fns to make finalization work correctly with displaced */
19507 +/* pointers introduced by the debugging allocators. */
19508 +GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
19509 +GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
19511 /* Returns !=0 if GC_invoke_finalizers has something to do. */
19512 GC_API int GC_should_invoke_finalizers GC_PROTO((void));
19514 @@ -737,10 +738,6 @@
19515 typedef void (*GC_warn_proc) GC_PROTO((char *msg, GC_word arg));
19516 GC_API GC_warn_proc GC_set_warn_proc GC_PROTO((GC_warn_proc p));
19517 /* Returns old warning procedure. */
19519 -GC_API GC_word GC_set_free_space_divisor GC_PROTO((GC_word value));
19520 - /* Set free_space_divisor. See above for definition. */
19521 - /* Returns old value. */
19523 /* The following is intended to be used by a higher level */
19524 /* (e.g. Java-like) finalization facility. It is expected */
19525 @@ -878,16 +875,12 @@
19527 #if defined(GC_WIN32_THREADS)
19528 # include <windows.h>
19529 -# include <winbase.h>
19532 * All threads must be created using GC_CreateThread, so that they will be
19533 - * recorded in the thread table. For backwards compatibility, this is not
19534 - * technically true if the GC is built as a dynamic library, since it can
19535 - * and does then use DllMain to keep track of thread creations. But new code
19536 - * should be built to call GC_CreateThread.
19537 + * recorded in the thread table.
19539 - GC_API HANDLE GC_CreateThread(
19540 + HANDLE WINAPI GC_CreateThread(
19541 LPSECURITY_ATTRIBUTES lpThreadAttributes,
19542 DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
19543 LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );
19544 @@ -921,18 +914,13 @@
19545 # define GC_INIT() { extern end, etext; \
19546 GC_noop(&end, &etext); }
19548 -# if defined(__CYGWIN32__) && defined(GC_DLL) || defined (_AIX)
19549 +# if (defined(__CYGWIN32__) && defined(GC_USE_DLL)) || defined (_AIX)
19551 - * Similarly gnu-win32 DLLs need explicit initialization from
19552 - * the main program, as does AIX.
19553 + * Similarly gnu-win32 DLLs need explicit initialization
19555 # define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
19557 -# if defined(__APPLE__) && defined(__MACH__)
19558 -# define GC_INIT() { GC_init(); }
19560 -# define GC_INIT()
19562 +# define GC_INIT()
19566 diff -Nur ../boehm-gc/include/gc_allocator.h boehm-gc/include/gc_allocator.h
19567 --- ../boehm-gc/include/gc_allocator.h Mon May 26 13:28:19 2003
19568 +++ boehm-gc/include/gc_allocator.h Wed Dec 31 16:00:00 1969
19571 - * Copyright (c) 1996-1997
19572 - * Silicon Graphics Computer Systems, Inc.
19574 - * Permission to use, copy, modify, distribute and sell this software
19575 - * and its documentation for any purpose is hereby granted without fee,
19576 - * provided that the above copyright notice appear in all copies and
19577 - * that both that copyright notice and this permission notice appear
19578 - * in supporting documentation. Silicon Graphics makes no
19579 - * representations about the suitability of this software for any
19580 - * purpose. It is provided "as is" without express or implied warranty.
19582 - * Copyright (c) 2002
19583 - * Hewlett-Packard Company
19585 - * Permission to use, copy, modify, distribute and sell this software
19586 - * and its documentation for any purpose is hereby granted without fee,
19587 - * provided that the above copyright notice appear in all copies and
19588 - * that both that copyright notice and this permission notice appear
19589 - * in supporting documentation. Hewlett-Packard Company makes no
19590 - * representations about the suitability of this software for any
19591 - * purpose. It is provided "as is" without express or implied warranty.
19595 - * This implements standard-conforming allocators that interact with
19596 - * the garbage collector. Gc_alloctor<T> allocates garbage-collectable
19597 - * objects of type T. Traceable_allocator<T> allocates objects that
19598 - * are not temselves garbage collected, but are scanned by the
19599 - * collector for pointers to collectable objects. Traceable_alloc
19600 - * should be used for explicitly managed STL containers that may
19601 - * point to collectable objects.
19603 - * This code was derived from an earlier version of the GNU C++ standard
19604 - * library, which itself was derived from the SGI STL implementation.
19607 -#include "gc.h" // For size_t
19609 -/* First some helpers to allow us to dispatch on whether or not a type
19610 - * is known to be pointerfree.
19611 - * These are private, except that the client may invoke the
19612 - * GC_DECLARE_PTRFREE macro.
19615 -struct GC_true_type {};
19616 -struct GC_false_type {};
19618 -template <class GC_tp>
19619 -struct GC_type_traits {
19620 - GC_false_type GC_is_ptr_free;
19623 -# define GC_DECLARE_PTRFREE(T) \
19624 -template<> struct GC_type_traits<T> { GC_true_type GC_is_ptr_free; }
19626 -GC_DECLARE_PTRFREE(signed char);
19627 -GC_DECLARE_PTRFREE(unsigned char);
19628 -GC_DECLARE_PTRFREE(signed short);
19629 -GC_DECLARE_PTRFREE(unsigned short);
19630 -GC_DECLARE_PTRFREE(signed int);
19631 -GC_DECLARE_PTRFREE(unsigned int);
19632 -GC_DECLARE_PTRFREE(signed long);
19633 -GC_DECLARE_PTRFREE(unsigned long);
19634 -GC_DECLARE_PTRFREE(float);
19635 -GC_DECLARE_PTRFREE(double);
19636 -/* The client may want to add others. */
19638 -// In the following GC_Tp is GC_true_type iff we are allocating a
19639 -// pointerfree object.
19640 -template <class GC_Tp>
19641 -inline void * GC_selective_alloc(size_t n, GC_Tp) {
19642 - return GC_MALLOC(n);
19646 -inline void * GC_selective_alloc<GC_true_type>(size_t n, GC_true_type) {
19647 - return GC_MALLOC_ATOMIC(n);
19650 -/* Now the public gc_allocator<T> class:
19652 -template <class GC_Tp>
19653 -class gc_allocator {
19655 - typedef size_t size_type;
19656 - typedef ptrdiff_t difference_type;
19657 - typedef GC_Tp* pointer;
19658 - typedef const GC_Tp* const_pointer;
19659 - typedef GC_Tp& reference;
19660 - typedef const GC_Tp& const_reference;
19661 - typedef GC_Tp value_type;
19663 - template <class GC_Tp1> struct rebind {
19664 - typedef gc_allocator<GC_Tp1> other;
19667 - gc_allocator() {}
19669 - // I'm not sure why this is needed here in addition to the following.
19670 - // The standard specifies it for the standard allocator, but VC++ rejects
19672 - gc_allocator(const gc_allocator&) throw() {}
19674 - template <class GC_Tp1> gc_allocator(const gc_allocator<GC_Tp1>&) throw() {}
19675 - ~gc_allocator() throw() {}
19677 - pointer address(reference GC_x) const { return &GC_x; }
19678 - const_pointer address(const_reference GC_x) const { return &GC_x; }
19680 - // GC_n is permitted to be 0. The C++ standard says nothing about what
19681 - // the return value is when GC_n == 0.
19682 - GC_Tp* allocate(size_type GC_n, const void* = 0) {
19683 - GC_type_traits<GC_Tp> traits;
19684 - return static_cast<GC_Tp *>
19685 - (GC_selective_alloc(GC_n * sizeof(GC_Tp),
19686 - traits.GC_is_ptr_free));
19689 - // __p is not permitted to be a null pointer.
19690 - void deallocate(pointer __p, size_type GC_n)
19691 - { GC_FREE(__p); }
19693 - size_type max_size() const throw()
19694 - { return size_t(-1) / sizeof(GC_Tp); }
19696 - void construct(pointer __p, const GC_Tp& __val) { new(__p) GC_Tp(__val); }
19697 - void destroy(pointer __p) { __p->~GC_Tp(); }
19701 -class gc_allocator<void> {
19702 - typedef size_t size_type;
19703 - typedef ptrdiff_t difference_type;
19704 - typedef void* pointer;
19705 - typedef const void* const_pointer;
19706 - typedef void value_type;
19708 - template <class GC_Tp1> struct rebind {
19709 - typedef gc_allocator<GC_Tp1> other;
19714 -template <class GC_T1, class GC_T2>
19715 -inline bool operator==(const gc_allocator<GC_T1>&, const gc_allocator<GC_T2>&)
19720 -template <class GC_T1, class GC_T2>
19721 -inline bool operator!=(const gc_allocator<GC_T1>&, const gc_allocator<GC_T2>&)
19727 - * And the public traceable_allocator class.
19730 -// Note that we currently don't specialize the pointer-free case, since a
19731 -// pointer-free traceable container doesn't make that much sense,
19732 -// though it could become an issue due to abstraction boundaries.
19733 -template <class GC_Tp>
19734 -class traceable_allocator {
19736 - typedef size_t size_type;
19737 - typedef ptrdiff_t difference_type;
19738 - typedef GC_Tp* pointer;
19739 - typedef const GC_Tp* const_pointer;
19740 - typedef GC_Tp& reference;
19741 - typedef const GC_Tp& const_reference;
19742 - typedef GC_Tp value_type;
19744 - template <class GC_Tp1> struct rebind {
19745 - typedef traceable_allocator<GC_Tp1> other;
19748 - traceable_allocator() throw() {}
19750 - traceable_allocator(const traceable_allocator&) throw() {}
19752 - template <class GC_Tp1> traceable_allocator
19753 - (const traceable_allocator<GC_Tp1>&) throw() {}
19754 - ~traceable_allocator() throw() {}
19756 - pointer address(reference GC_x) const { return &GC_x; }
19757 - const_pointer address(const_reference GC_x) const { return &GC_x; }
19759 - // GC_n is permitted to be 0. The C++ standard says nothing about what
19760 - // the return value is when GC_n == 0.
19761 - GC_Tp* allocate(size_type GC_n, const void* = 0) {
19762 - return static_cast<GC_Tp*>(GC_MALLOC_UNCOLLECTABLE(GC_n * sizeof(GC_Tp)));
19765 - // __p is not permitted to be a null pointer.
19766 - void deallocate(pointer __p, size_type GC_n)
19767 - { GC_FREE(__p); }
19769 - size_type max_size() const throw()
19770 - { return size_t(-1) / sizeof(GC_Tp); }
19772 - void construct(pointer __p, const GC_Tp& __val) { new(__p) GC_Tp(__val); }
19773 - void destroy(pointer __p) { __p->~GC_Tp(); }
19777 -class traceable_allocator<void> {
19778 - typedef size_t size_type;
19779 - typedef ptrdiff_t difference_type;
19780 - typedef void* pointer;
19781 - typedef const void* const_pointer;
19782 - typedef void value_type;
19784 - template <class GC_Tp1> struct rebind {
19785 - typedef traceable_allocator<GC_Tp1> other;
19790 -template <class GC_T1, class GC_T2>
19791 -inline bool operator==(const traceable_allocator<GC_T1>&, const traceable_allocator<GC_T2>&)
19796 -template <class GC_T1, class GC_T2>
19797 -inline bool operator!=(const traceable_allocator<GC_T1>&, const traceable_allocator<GC_T2>&)
19802 diff -Nur ../boehm-gc/include/gc_config_macros.h boehm-gc/include/gc_config_macros.h
19803 --- ../boehm-gc/include/gc_config_macros.h Mon May 26 13:28:19 2003
19804 +++ boehm-gc/include/gc_config_macros.h Wed Dec 31 16:00:00 1969
19807 - * This should never be included directly. It is included only from gc.h.
19808 - * We separate it only to make gc.h more suitable as documentation.
19810 - * Some tests for old macros. These violate our namespace rules and will
19811 - * disappear shortly. Use the GC_ names.
19813 -#if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS)
19814 -# define GC_SOLARIS_THREADS
19816 -#if defined(_SOLARIS_PTHREADS)
19817 -# define GC_SOLARIS_PTHREADS
19819 -#if defined(IRIX_THREADS)
19820 -# define GC_IRIX_THREADS
19822 -#if defined(DGUX_THREADS)
19823 -# if !defined(GC_DGUX386_THREADS)
19824 -# define GC_DGUX386_THREADS
19827 -#if defined(HPUX_THREADS)
19828 -# define GC_HPUX_THREADS
19830 -#if defined(OSF1_THREADS)
19831 -# define GC_OSF1_THREADS
19833 -#if defined(LINUX_THREADS)
19834 -# define GC_LINUX_THREADS
19836 -#if defined(WIN32_THREADS)
19837 -# define GC_WIN32_THREADS
19839 -#if defined(USE_LD_WRAP)
19840 -# define GC_USE_LD_WRAP
19843 -#if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \
19844 - || defined(GC_SOLARIS_PTHREADS) \
19845 - || defined(GC_HPUX_THREADS) \
19846 - || defined(GC_LINUX_THREADS))
19847 -# define _REENTRANT
19848 - /* Better late than never. This fails if system headers that */
19849 - /* depend on this were previously included. */
19852 -#if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE)
19853 -# define _POSIX4A_DRAFT10_SOURCE 1
19856 -# if defined(GC_SOLARIS_PTHREADS) || defined(GC_FREEBSD_THREADS) || \
19857 - defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \
19858 - defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \
19859 - defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \
19860 - (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__))
19861 -# define GC_PTHREADS
19864 -#if defined(GC_THREADS) && !defined(GC_PTHREADS)
19865 -# if defined(__linux__)
19866 -# define GC_LINUX_THREADS
19867 -# define GC_PTHREADS
19869 -# if !defined(LINUX) && (defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
19870 - || defined(hppa) || defined(__HPPA))
19871 -# define GC_HPUX_THREADS
19872 -# define GC_PTHREADS
19874 -# if !defined(__linux__) && (defined(__alpha) || defined(__alpha__))
19875 -# define GC_OSF1_THREADS
19876 -# define GC_PTHREADS
19878 -# if defined(__mips) && !defined(__linux__)
19879 -# define GC_IRIX_THREADS
19880 -# define GC_PTHREADS
19882 -# if defined(__sparc) && !defined(__linux__)
19883 -# define GC_SOLARIS_PTHREADS
19884 -# define GC_PTHREADS
19886 -# if defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)
19887 -# define GC_DARWIN_THREADS
19888 -# define GC_PTHREADS
19890 -# if !defined(GC_PTHREADS) && defined(__FreeBSD__)
19891 -# define GC_FREEBSD_THREADS
19892 -# define GC_PTHREADS
19894 -# if defined(DGUX) && (defined(i386) || defined(__i386__))
19895 -# define GC_DGUX386_THREADS
19896 -# define GC_PTHREADS
19898 -#endif /* GC_THREADS */
19900 -#if defined(GC_THREADS) && !defined(GC_PTHREADS) && defined(MSWIN32)
19901 -# define GC_WIN32_THREADS
19904 -#if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
19905 -# define GC_SOLARIS_THREADS
19909 -# include <stddef.h>
19910 -# ifdef _WIN32_WCE
19911 -/* Yet more kluges for WinCE */
19912 -# include <stdlib.h> /* size_t is defined here */
19913 - typedef long ptrdiff_t; /* ptrdiff_t is not defined */
19916 -#if defined(_DLL) && !defined(GC_NOT_DLL) && !defined(GC_DLL)
19920 -#if defined(__MINGW32__) && defined(GC_DLL)
19922 -# define GC_API __declspec(dllexport)
19924 -# define GC_API __declspec(dllimport)
19928 -#if (defined(__DMC__) || defined(_MSC_VER)) && defined(GC_DLL)
19930 -# define GC_API extern __declspec(dllexport)
19932 -# define GC_API __declspec(dllimport)
19936 -#if defined(__WATCOMC__) && defined(GC_DLL)
19938 -# define GC_API extern __declspec(dllexport)
19940 -# define GC_API extern __declspec(dllimport)
19945 -#define GC_API extern
19948 diff -Nur ../boehm-gc/include/gc_cpp.h boehm-gc/include/gc_cpp.h
19949 --- ../boehm-gc/include/gc_cpp.h Mon May 26 13:28:19 2003
19950 +++ boehm-gc/include/gc_cpp.h Fri Aug 17 18:04:43 2001
19951 @@ -134,9 +134,7 @@
19954 #ifndef THINK_CPLUS
19957 -# define GC_cdecl _cdecl
19961 #if ! defined( GC_NO_OPERATOR_NEW_ARRAY ) \
19962 @@ -161,22 +159,12 @@
19964 inline void* operator new( size_t size );
19965 inline void* operator new( size_t size, GCPlacement gcp );
19966 - inline void* operator new( size_t size, void *p );
19967 - /* Must be redefined here, since the other overloadings */
19968 - /* hide the global definition. */
19969 inline void operator delete( void* obj );
19970 -# ifndef __BORLANDC__ /* Confuses the Borland compiler. */
19971 - inline void operator delete( void*, void* );
19974 #ifdef GC_OPERATOR_NEW_ARRAY
19975 inline void* operator new[]( size_t size );
19976 inline void* operator new[]( size_t size, GCPlacement gcp );
19977 - inline void* operator new[]( size_t size, void *p );
19978 inline void operator delete[]( void* obj );
19979 -# ifndef __BORLANDC__
19980 - inline void gc::operator delete[]( void*, void* );
19982 #endif /* GC_OPERATOR_NEW_ARRAY */
19985 @@ -188,7 +176,7 @@
19986 inline gc_cleanup();
19987 inline virtual ~gc_cleanup();
19989 - inline static void GC_cdecl cleanup( void* obj, void* clientData );};
19990 + inline static void _cdecl cleanup( void* obj, void* clientData );};
19992 Instances of classes derived from "gc_cleanup" will be allocated
19993 in the collected heap by default. When the collector discovers an
19994 @@ -223,6 +211,7 @@
19995 classes derived from "gc_cleanup" or containing members derived
19996 from "gc_cleanup". */
19998 +#ifdef GC_OPERATOR_NEW_ARRAY
20001 /** This ensures that the system default operator new[] doesn't get
20002 @@ -231,23 +220,41 @@
20003 * There seems to be really redirect new in this environment without
20004 * including this everywhere.
20006 - void *operator new[]( size_t size );
20008 - void operator delete[](void* obj);
20010 - void* operator new( size_t size);
20011 + inline void *operator new[]( size_t size )
20013 + return GC_MALLOC_UNCOLLECTABLE( size );
20016 + inline void operator delete[](void* obj)
20021 + inline void* operator new( size_t size)
20023 + return GC_MALLOC_UNCOLLECTABLE( size);
20026 + inline void operator delete(void* obj)
20031 - void operator delete(void* obj);
20033 - // This new operator is used by VC++ in case of Debug builds !
20034 - void* operator new( size_t size,
20035 +// This new operator is used by VC++ in case of Debug builds !
20036 + inline void* operator new( size_t size,
20038 const char * szFileName,
20040 -#endif /* _MSC_VER */
20044 + return GC_malloc_uncollectable( size );
20046 + return GC_debug_malloc_uncollectable(size, szFileName, nLine);
20051 -#ifdef GC_OPERATOR_NEW_ARRAY
20052 +#endif /* _MSC_VER */
20054 inline void* operator new[](
20056 @@ -276,15 +283,9 @@
20058 return GC_MALLOC_UNCOLLECTABLE( size );}
20060 -inline void* gc::operator new( size_t size, void *p ) {
20063 inline void gc::operator delete( void* obj ) {
20066 -#ifndef __BORLANDC__
20067 - inline void gc::operator delete( void*, void* ) {}
20070 #ifdef GC_OPERATOR_NEW_ARRAY
20072 @@ -294,21 +295,14 @@
20073 inline void* gc::operator new[]( size_t size, GCPlacement gcp ) {
20074 return gc::operator new( size, gcp );}
20076 -inline void* gc::operator new[]( size_t size, void *p ) {
20079 inline void gc::operator delete[]( void* obj ) {
20080 gc::operator delete( obj );}
20082 -#ifndef __BORLANDC__
20083 - inline void gc::operator delete[]( void*, void* ) {}
20086 #endif /* GC_OPERATOR_NEW_ARRAY */
20089 inline gc_cleanup::~gc_cleanup() {
20090 - GC_register_finalizer_ignore_self( GC_base(this), 0, 0, 0, 0 );}
20091 + GC_REGISTER_FINALIZER_IGNORE_SELF( GC_base(this), 0, 0, 0, 0 );}
20093 inline void gc_cleanup::cleanup( void* obj, void* displ ) {
20094 ((gc_cleanup*) ((char*) obj + (ptrdiff_t) displ))->~gc_cleanup();}
20095 diff -Nur ../boehm-gc/include/gc_local_alloc.h boehm-gc/include/gc_local_alloc.h
20096 --- ../boehm-gc/include/gc_local_alloc.h Mon May 26 13:28:19 2003
20097 +++ boehm-gc/include/gc_local_alloc.h Fri Aug 17 11:30:50 2001
20099 * -DTHREAD_LOCAL_ALLOC, which is currently supported only on Linux.
20101 * The debugging allocators use standard, not thread-local allocation.
20103 - * These routines normally require an explicit call to GC_init(), though
20104 - * that may be done from a constructor function.
20107 #ifndef GC_LOCAL_ALLOC_H
20108 diff -Nur ../boehm-gc/include/gc_mark.h boehm-gc/include/gc_mark.h
20109 --- ../boehm-gc/include/gc_mark.h Mon May 26 13:28:19 2003
20110 +++ boehm-gc/include/gc_mark.h Fri Aug 17 11:30:50 2001
20111 @@ -129,9 +129,7 @@
20112 /* be reserved for exceptional cases. That will ensure that */
20113 /* performance of this call is not extremely performance critical. */
20114 /* (Otherwise we would need to inline GC_mark_and_push completely, */
20115 -/* which would tie the client code to a fixed collector version.) */
20116 -/* Note that mark procedures should explicitly call FIXUP_POINTER() */
20117 -/* if required. */
20118 +/* which would tie the client code to a fixed colllector version.) */
20119 struct GC_ms_entry *GC_mark_and_push
20120 GC_PROTO((GC_PTR obj,
20121 struct GC_ms_entry * mark_stack_ptr,
20122 diff -Nur ../boehm-gc/include/gc_pthread_redirects.h boehm-gc/include/gc_pthread_redirects.h
20123 --- ../boehm-gc/include/gc_pthread_redirects.h Mon May 26 13:28:19 2003
20124 +++ boehm-gc/include/gc_pthread_redirects.h Tue Oct 16 21:55:28 2001
20125 @@ -52,21 +52,15 @@
20126 int GC_pthread_create(pthread_t *new_thread,
20127 const pthread_attr_t *attr,
20128 void *(*start_routine)(void *), void *arg);
20129 -#ifndef GC_DARWIN_THREADS
20130 int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
20132 int GC_pthread_join(pthread_t thread, void **retval);
20133 int GC_pthread_detach(pthread_t thread);
20135 # define pthread_create GC_pthread_create
20136 -#ifndef GC_DARWIN_THREADS
20137 # define pthread_sigmask GC_pthread_sigmask
20139 # define pthread_join GC_pthread_join
20140 # define pthread_detach GC_pthread_detach
20141 -#ifndef GC_DARWIN_THREADS
20142 # define dlopen GC_dlopen
20145 #endif /* GC_xxxxx_THREADS */
20147 diff -Nur ../boehm-gc/include/gc_typed.h boehm-gc/include/gc_typed.h
20148 --- ../boehm-gc/include/gc_typed.h Mon May 26 13:28:19 2003
20149 +++ boehm-gc/include/gc_typed.h Fri Aug 17 11:30:50 2001
20150 @@ -29,21 +29,14 @@
20154 -#ifdef __cplusplus
20157 typedef GC_word * GC_bitmap;
20158 /* The least significant bit of the first word is one if */
20159 /* the first word in the object may be a pointer. */
20161 -# define GC_WORDSZ (8*sizeof(GC_word))
20162 # define GC_get_bit(bm, index) \
20163 - (((bm)[index/GC_WORDSZ] >> (index%GC_WORDSZ)) & 1)
20164 + (((bm)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
20165 # define GC_set_bit(bm, index) \
20166 - (bm)[index/GC_WORDSZ] |= ((GC_word)1 << (index%GC_WORDSZ))
20167 -# define GC_WORD_OFFSET(t, f) (offsetof(t,f)/sizeof(GC_word))
20168 -# define GC_WORD_LEN(t) (sizeof(t)/ sizeof(GC_word))
20169 -# define GC_BITMAP_SIZE(t) ((GC_WORD_LEN(t) + GC_WORDSZ-1)/GC_WORDSZ)
20170 + (bm)[divWORDSZ(index)] |= (word)1 << modWORDSZ(index)
20172 typedef GC_word GC_descr;
20175 /* is intended to be called once per type, not once */
20176 /* per allocation. */
20178 -/* It is possible to generate a descriptor for a C type T with */
20179 -/* word aligned pointer fields f1, f2, ... as follows: */
20181 -/* GC_descr T_descr;
20182 -/* GC_word T_bitmap[GC_BITMAP_SIZE(T)] = {0}; */
20183 -/* GC_set_bit(T_bitmap, GC_WORD_OFFSET(T,f1)); */
20184 -/* GC_set_bit(T_bitmap, GC_WORD_OFFSET(T,f2)); */
20186 -/* T_descr = GC_make_descriptor(T_bitmap, GC_WORD_LEN(T)); */
20188 GC_API GC_PTR GC_malloc_explicitly_typed
20189 GC_PROTO((size_t size_in_bytes, GC_descr d));
20190 /* Allocate an object whose layout is described by d. */
20191 @@ -96,18 +79,15 @@
20192 /* Returned object is cleared. */
20195 -# define GC_MALLOC_EXPLICITLY_TYPED(bytes, d) GC_MALLOC(bytes)
20196 -# define GC_CALLOC_EXPLICITLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
20197 +# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) GC_MALLOC(bytes)
20198 +# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
20200 -# define GC_MALLOC_EXPLICITLY_TYPED(bytes, d) \
20201 +# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) \
20202 GC_malloc_explicitly_typed(bytes, d)
20203 -# define GC_CALLOC_EXPLICITLY_TYPED(n, bytes, d) \
20204 +# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) \
20205 GC_calloc_explicitly_typed(n, bytes, d)
20206 #endif /* !GC_DEBUG */
20208 -#ifdef __cplusplus
20209 - } /* matches extern "C" */
20212 #endif /* _GC_TYPED_H */
20214 diff -Nur ../boehm-gc/include/new_gc_alloc.h boehm-gc/include/new_gc_alloc.h
20215 --- ../boehm-gc/include/new_gc_alloc.h Mon May 26 13:28:19 2003
20216 +++ boehm-gc/include/new_gc_alloc.h Tue Oct 16 02:01:38 2001
20221 -/* A hack to deal with gcc 3.1. If you are using gcc3.1 and later, */
20222 -/* you should probably really use gc_allocator.h instead. */
20223 -#if defined (__GNUC__) && \
20224 - (__GNUC > 3 || (__GNUC__ == 3 && (__GNUC_MINOR__ >= 1)))
20225 -# define simple_alloc __simple_alloc
20232 diff -Nur ../boehm-gc/include/private/darwin_semaphore.h boehm-gc/include/private/darwin_semaphore.h
20233 --- ../boehm-gc/include/private/darwin_semaphore.h Mon May 26 13:28:24 2003
20234 +++ boehm-gc/include/private/darwin_semaphore.h Wed Dec 31 16:00:00 1969
20236 -#ifndef GC_DARWIN_SEMAPHORE_H
20237 -#define GC_DARWIN_SEMAPHORE_H
20239 -#if !defined(GC_DARWIN_THREADS)
20240 -#error darwin_semaphore.h included with GC_DARWIN_THREADS not defined
20244 - This is a very simple semaphore implementation for darwin. It
20245 - is implemented in terms of pthreads calls so it isn't async signal
20246 - safe. This isn't a problem because signals aren't used to
20247 - suspend threads on darwin.
20251 - pthread_mutex_t mutex;
20252 - pthread_cond_t cond;
20256 -static int sem_init(sem_t *sem, int pshared, int value) {
20259 - GC_abort("sem_init with pshared set");
20260 - sem->value = value;
20262 - ret = pthread_mutex_init(&sem->mutex,NULL);
20263 - if(ret < 0) return -1;
20264 - ret = pthread_cond_init(&sem->cond,NULL);
20265 - if(ret < 0) return -1;
20269 -static int sem_post(sem_t *sem) {
20270 - if(pthread_mutex_lock(&sem->mutex) < 0)
20273 - if(pthread_cond_signal(&sem->cond) < 0) {
20274 - pthread_mutex_unlock(&sem->mutex);
20277 - if(pthread_mutex_unlock(&sem->mutex) < 0)
20282 -static int sem_wait(sem_t *sem) {
20283 - if(pthread_mutex_lock(&sem->mutex) < 0)
20285 - while(sem->value == 0) {
20286 - pthread_cond_wait(&sem->cond,&sem->mutex);
20289 - if(pthread_mutex_unlock(&sem->mutex) < 0)
20294 -static int sem_destroy(sem_t *sem) {
20296 - ret = pthread_cond_destroy(&sem->cond);
20297 - if(ret < 0) return -1;
20298 - ret = pthread_mutex_destroy(&sem->mutex);
20299 - if(ret < 0) return -1;
20304 diff -Nur ../boehm-gc/include/private/darwin_stop_world.h boehm-gc/include/private/darwin_stop_world.h
20305 --- ../boehm-gc/include/private/darwin_stop_world.h Mon May 26 13:28:24 2003
20306 +++ boehm-gc/include/private/darwin_stop_world.h Wed Dec 31 16:00:00 1969
20308 -#ifndef GC_DARWIN_STOP_WORLD_H
20309 -#define GC_DARWIN_STOP_WORLD_H
20311 -#if !defined(GC_DARWIN_THREADS)
20312 -#error darwin_stop_world.h included without GC_DARWIN_THREADS defined
20315 -#include <mach/mach.h>
20316 -#include <mach/thread_act.h>
20318 -struct thread_stop_info {
20319 - mach_port_t mach_thread;
20323 diff -Nur ../boehm-gc/include/private/dbg_mlc.h boehm-gc/include/private/dbg_mlc.h
20324 --- ../boehm-gc/include/private/dbg_mlc.h Mon May 26 13:28:24 2003
20325 +++ boehm-gc/include/private/dbg_mlc.h Mon Feb 11 20:37:57 2002
20326 @@ -115,24 +115,16 @@
20328 #ifdef SHORT_DBG_HDRS
20329 # define DEBUG_BYTES (sizeof (oh))
20330 -# define UNCOLLECTABLE_DEBUG_BYTES DEBUG_BYTES
20332 /* Add space for END_FLAG, but use any extra space that was already */
20333 /* added to catch off-the-end pointers. */
20334 - /* For uncollectable objects, the extra byte is not added. */
20335 -# define UNCOLLECTABLE_DEBUG_BYTES (sizeof (oh) + sizeof (word))
20336 -# define DEBUG_BYTES (UNCOLLECTABLE_DEBUG_BYTES - EXTRA_BYTES)
20337 +# define DEBUG_BYTES (sizeof (oh) + sizeof (word) - EXTRA_BYTES)
20339 #define USR_PTR_FROM_BASE(p) ((ptr_t)(p) + sizeof(oh))
20341 /* Round bytes to words without adding extra byte at end. */
20342 #define SIMPLE_ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + WORDS_TO_BYTES(1) - 1)
20344 -/* ADD_CALL_CHAIN stores a (partial) call chain into an object */
20345 -/* header. It may be called with or without the allocation */
20347 -/* PRINT_CALL_CHAIN prints the call chain stored in an object */
20348 -/* to stderr. It requires that we do not hold the lock. */
20349 #ifdef SAVE_CALL_CHAIN
20350 # define ADD_CALL_CHAIN(base, ra) GC_save_callers(((oh *)(base)) -> oh_ci)
20351 # define PRINT_CALL_CHAIN(base) GC_print_callers(((oh *)(base)) -> oh_ci)
20352 diff -Nur ../boehm-gc/include/private/gc_hdrs.h boehm-gc/include/private/gc_hdrs.h
20353 --- ../boehm-gc/include/private/gc_hdrs.h Mon May 26 13:28:24 2003
20354 +++ boehm-gc/include/private/gc_hdrs.h Fri Aug 17 18:04:43 2001
20356 #define ADVANCE(p, hhdr, source) \
20358 hdr * new_hdr = GC_invalid_header; \
20359 - p = GC_find_start(p, hhdr, &new_hdr); \
20360 + p = GC_FIND_START(p, hhdr, &new_hdr, (word)source); \
20364 diff -Nur ../boehm-gc/include/private/gc_locks.h boehm-gc/include/private/gc_locks.h
20365 --- ../boehm-gc/include/private/gc_locks.h Mon May 26 13:28:24 2003
20366 +++ boehm-gc/include/private/gc_locks.h Fri Sep 27 13:40:06 2002
20367 @@ -145,24 +145,23 @@
20368 # if defined(POWERPC)
20369 inline static int GC_test_and_set(volatile unsigned int *addr) {
20371 - int temp = 1; /* locked value */
20372 + int temp = 1; // locked value
20374 __asm__ __volatile__(
20375 - "1:\tlwarx %0,0,%3\n" /* load and reserve */
20376 - "\tcmpwi %0, 0\n" /* if load is */
20377 - "\tbne 2f\n" /* non-zero, return already set */
20378 - "\tstwcx. %2,0,%1\n" /* else store conditional */
20379 - "\tbne- 1b\n" /* retry if lost reservation */
20380 - "\tsync\n" /* import barrier */
20381 - "2:\t\n" /* oldval is zero if we set */
20382 + "1:\tlwarx %0,0,%3\n" // load and reserve
20383 + "\tcmpwi %0, 0\n" // if load is
20384 + "\tbne 2f\n" // non-zero, return already set
20385 + "\tstwcx. %2,0,%1\n" // else store conditional
20386 + "\tbne- 1b\n" // retry if lost reservation
20387 + "2:\t\n" // oldval is zero if we set
20388 : "=&r"(oldval), "=p"(addr)
20389 : "r"(temp), "1"(addr)
20390 - : "cr0","memory");
20393 + return (int)oldval;
20395 # define GC_TEST_AND_SET_DEFINED
20396 inline static void GC_clear(volatile unsigned int *addr) {
20397 - __asm__ __volatile__("eieio" : : : "memory");
20398 + __asm__ __volatile__("eieio" ::: "memory");
20401 # define GC_CLEAR_DEFINED
20402 @@ -192,11 +191,8 @@
20405 # define GC_TEST_AND_SET_DEFINED
20406 - inline static void GC_clear(volatile unsigned int *addr) {
20407 - __asm__ __volatile__("mb" : : : "memory");
20410 -# define GC_CLEAR_DEFINED
20411 + /* Should probably also define GC_clear, since it needs */
20412 + /* a memory barrier ?? */
20413 # endif /* ALPHA */
20415 inline static int GC_test_and_set(volatile unsigned int *addr) {
20416 @@ -214,30 +210,22 @@
20417 # define GC_TEST_AND_SET_DEFINED
20418 # endif /* ARM32 */
20420 - inline static int GC_test_and_set(volatile unsigned int *addr) {
20422 - __asm__ __volatile__ (
20424 - "0: cs %0,%1,0(%2)\n"
20427 - : "d" (1), "a" (addr)
20428 - : "cc", "memory");
20431 + inline static int GC_test_and_set(volatile unsigned int *addr) {
20433 + __asm__ __volatile__ (
20435 + "0: cs %0,%1,0(%2)\n"
20438 + : "d" (1), "a" (addr)
20439 + : "cc", "memory");
20443 # endif /* __GNUC__ */
20444 # if (defined(ALPHA) && !defined(__GNUC__))
20446 - --> We currently assume that if gcc is not used, we are
20447 - --> running under Tru64.
20449 -# include <machine/builtins.h>
20450 -# include <c_asm.h>
20451 -# define GC_test_and_set(addr) __ATOMIC_EXCH_LONG(addr, 1)
20452 +# define GC_test_and_set(addr) __cxx_test_and_set_atomic(addr, 1)
20453 # define GC_TEST_AND_SET_DEFINED
20454 -# define GC_clear(addr) { asm("mb"); *(volatile unsigned *)addr = 0; }
20455 -# define GC_CLEAR_DEFINED
20457 # if defined(MSWIN32)
20458 # define GC_test_and_set(addr) InterlockedExchange((LPLONG)addr,1)
20459 @@ -250,11 +238,7 @@
20460 # define GC_TEST_AND_SET_DEFINED
20461 # elif __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \
20462 || !defined(_COMPILER_VERSION) || _COMPILER_VERSION < 700
20464 -# define GC_test_and_set(addr) _test_and_set(addr,1)
20466 -# define GC_test_and_set(addr) test_and_set(addr,1)
20468 +# define GC_test_and_set(addr) test_and_set(addr, 1)
20470 # define GC_test_and_set(addr) __test_and_set(addr,1)
20471 # define GC_clear(addr) __lock_release(addr);
20472 @@ -295,7 +279,7 @@
20475 # if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
20476 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
20477 + && !defined(GC_IRIX_THREADS)
20478 # define NO_THREAD (pthread_t)(-1)
20479 # include <pthread.h>
20480 # if defined(PARALLEL_MARK)
20481 @@ -326,12 +310,12 @@
20484 __asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
20485 - : "+m"(*(addr)), "=r"(result)
20486 - : "r" (new_val), "a"(old) : "memory");
20487 + : "=m"(*(addr)), "=r"(result)
20488 + : "r" (new_val), "0"(*(addr)), "a"(old) : "memory");
20489 return (GC_bool) result;
20491 # endif /* !GENERIC_COMPARE_AND_SWAP */
20492 - inline static void GC_memory_barrier()
20493 + inline static void GC_memory_write_barrier()
20495 /* We believe the processor ensures at least processor */
20496 /* consistent ordering. Thus a compiler barrier */
20497 @@ -339,37 +323,6 @@
20498 __asm__ __volatile__("" : : : "memory");
20502 -# if defined(POWERPC)
20503 -# if !defined(GENERIC_COMPARE_AND_SWAP)
20504 - /* Returns TRUE if the comparison succeeded. */
20505 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20506 - GC_word old, GC_word new_val)
20508 - int result, dummy;
20509 - __asm__ __volatile__(
20510 - "1:\tlwarx %0,0,%5\n"
20513 - "\tstwcx. %3,0,%2\n"
20520 - : "=&r" (dummy), "=r" (result), "=p" (addr)
20521 - : "r" (new_val), "r" (old), "2"(addr)
20522 - : "cr0","memory");
20523 - return (GC_bool) result;
20525 -# endif /* !GENERIC_COMPARE_AND_SWAP */
20526 - inline static void GC_memory_barrier()
20528 - __asm__ __volatile__("sync" : : : "memory");
20530 -# endif /* POWERPC */
20533 # if !defined(GENERIC_COMPARE_AND_SWAP)
20534 inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20535 @@ -384,71 +337,31 @@
20536 # endif /* !GENERIC_COMPARE_AND_SWAP */
20538 /* Shouldn't be needed; we use volatile stores instead. */
20539 - inline static void GC_memory_barrier()
20540 + inline static void GC_memory_write_barrier()
20542 __asm__ __volatile__("mf" : : : "memory");
20546 -# if defined(ALPHA)
20547 -# if !defined(GENERIC_COMPARE_AND_SWAP)
20548 -# if defined(__GNUC__)
20549 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20550 - GC_word old, GC_word new_val)
20552 - unsigned long was_equal;
20553 - unsigned long temp;
20555 - __asm__ __volatile__(
20556 - "1: ldq_l %0,%1\n"
20557 - " cmpeq %0,%4,%2\n"
20564 - :"=&r" (temp), "=m" (*addr), "=&r" (was_equal)
20565 - : "r" (new_val), "Ir" (old)
20567 - return was_equal;
20569 -# else /* !__GNUC__ */
20570 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20571 - GC_word old, GC_word new_val)
20573 - return __CMP_STORE_QUAD(addr, old, new_val, addr);
20575 -# endif /* !__GNUC__ */
20576 -# endif /* !GENERIC_COMPARE_AND_SWAP */
20578 - inline static void GC_memory_barrier()
20580 - __asm__ __volatile__("mb" : : : "memory");
20583 -# define GC_memory_barrier() asm("mb")
20584 -# endif /* !__GNUC__ */
20585 -# endif /* ALPHA */
20587 # if !defined(GENERIC_COMPARE_AND_SWAP)
20588 - inline static GC_bool GC_compare_and_exchange(volatile C_word *addr,
20589 - GC_word old, GC_word new_val)
20592 - __asm__ __volatile__ (
20593 -# ifndef __s390x__
20594 - " cs %1,%2,0(%3)\n"
20596 - " csg %1,%2,0(%3)\n"
20600 - : "=&d" (retval), "+d" (old)
20601 - : "d" (new_val), "a" (addr)
20602 - : "cc", "memory");
20603 - return retval == 0;
20605 + inline static GC_bool GC_compare_and_exchange(volatile C_word *addr,
20606 + GC_word old, GC_word new_val)
20609 + __asm__ __volatile__ (
20610 +# ifndef __s390x__
20611 + " cs %1,%2,0(%3)\n"
20613 + " csg %1,%2,0(%3)\n"
20617 + : "=&d" (retval), "+d" (old)
20618 + : "d" (new_val), "a" (addr)
20619 + : "cc", "memory");
20620 + return retval == 0;
20624 # if !defined(GENERIC_COMPARE_AND_SWAP)
20625 @@ -480,7 +393,7 @@
20626 extern void GC_lock(void);
20627 /* Allocation lock holder. Only set if acquired by client through */
20628 /* GC_call_with_alloc_lock. */
20629 -# ifdef GC_ASSERTIONS
20630 +# ifdef GC_ASSERTIONS
20632 { if (GC_test_and_set(&GC_allocate_lock)) GC_lock(); \
20633 SET_LOCK_HOLDER(); }
20634 @@ -521,12 +434,8 @@
20635 { GC_ASSERT(I_HOLD_LOCK()); UNSET_LOCK_HOLDER(); \
20636 pthread_mutex_unlock(&GC_allocate_ml); }
20637 # else /* !GC_ASSERTIONS */
20638 -# if defined(NO_PTHREAD_TRYLOCK)
20639 -# define LOCK() GC_lock();
20640 -# else /* !defined(NO_PTHREAD_TRYLOCK) */
20643 { if (0 != pthread_mutex_trylock(&GC_allocate_ml)) GC_lock(); }
20645 # define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
20646 # endif /* !GC_ASSERTIONS */
20647 # endif /* USE_PTHREAD_LOCKS */
20648 @@ -569,18 +478,11 @@
20650 # define EXIT_GC() GC_collecting = 0;
20651 # endif /* GC_IRIX_THREADS */
20652 -# if defined(GC_WIN32_THREADS)
20653 -# if defined(GC_PTHREADS)
20654 -# include <pthread.h>
20655 - extern pthread_mutex_t GC_allocate_ml;
20656 -# define LOCK() pthread_mutex_lock(&GC_allocate_ml)
20657 -# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
20659 -# include <windows.h>
20660 - GC_API CRITICAL_SECTION GC_allocate_ml;
20661 -# define LOCK() EnterCriticalSection(&GC_allocate_ml);
20662 -# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
20664 +# ifdef GC_WIN32_THREADS
20665 +# include <windows.h>
20666 + GC_API CRITICAL_SECTION GC_allocate_ml;
20667 +# define LOCK() EnterCriticalSection(&GC_allocate_ml);
20668 +# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
20670 # ifndef SET_LOCK_HOLDER
20671 # define SET_LOCK_HOLDER()
20672 diff -Nur ../boehm-gc/include/private/gc_pmark.h boehm-gc/include/private/gc_pmark.h
20673 --- ../boehm-gc/include/private/gc_pmark.h Mon May 26 13:28:24 2003
20674 +++ boehm-gc/include/private/gc_pmark.h Mon Feb 11 20:37:57 2002
20675 @@ -137,7 +137,7 @@
20677 # ifdef PRINT_BLACK_LIST
20678 ptr_t GC_find_start(ptr_t current, hdr *hhdr, hdr **new_hdr_p,
20682 ptr_t GC_find_start(ptr_t current, hdr *hhdr, hdr **new_hdr_p);
20684 @@ -145,7 +145,7 @@
20685 ptr_t GC_find_start();
20688 -mse * GC_signal_mark_stack_overflow GC_PROTO((mse *msp));
20689 +mse *GC_signal_mark_stack_overflow(mse *msp);
20691 # ifdef GATHERSTATS
20692 # define ADD_TO_ATOMIC(sz) GC_atomic_in_use += (sz)
20693 @@ -174,6 +174,14 @@
20697 +#ifdef PRINT_BLACK_LIST
20698 +# define GC_FIND_START(current, hhdr, new_hdr_p, source) \
20699 + GC_find_start(current, hhdr, new_hdr_p, source)
20701 +# define GC_FIND_START(current, hhdr, new_hdr_p, source) \
20702 + GC_find_start(current, hhdr, new_hdr_p)
20705 /* Push the contents of current onto the mark stack if it is a valid */
20706 /* ptr to a currently unmarked object. Mark it. */
20707 /* If we assumed a standard-conforming compiler, we could probably */
20708 @@ -187,7 +195,8 @@
20709 GET_HDR(my_current, my_hhdr); \
20710 if (IS_FORWARDING_ADDR_OR_NIL(my_hhdr)) { \
20711 hdr * new_hdr = GC_invalid_header; \
20712 - my_current = GC_find_start(my_current, my_hhdr, &new_hdr); \
20713 + my_current = GC_FIND_START(my_current, my_hhdr, \
20714 + &new_hdr, (word)source); \
20715 my_hhdr = new_hdr; \
20717 PUSH_CONTENTS_HDR(my_current, mark_stack_top, mark_stack_limit, \
20718 @@ -281,39 +290,21 @@
20721 * Push a single value onto mark stack. Mark from the object pointed to by p.
20722 - * Invoke FIXUP_POINTER(p) before any further processing.
20723 * P is considered valid even if it is an interior pointer.
20724 * Previously marked objects are not pushed. Hence we make progress even
20725 * if the mark stack overflows.
20728 -# if NEED_FIXUP_POINTER
20729 - /* Try both the raw version and the fixed up one. */
20730 -# define GC_PUSH_ONE_STACK(p, source) \
20731 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20732 - && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20733 - PUSH_ONE_CHECKED_STACK(p, source); \
20735 - FIXUP_POINTER(p); \
20736 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20737 - && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20738 - PUSH_ONE_CHECKED_STACK(p, source); \
20740 -# else /* !NEED_FIXUP_POINTER */
20741 -# define GC_PUSH_ONE_STACK(p, source) \
20742 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20743 +# define GC_PUSH_ONE_STACK(p, source) \
20744 + if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20745 && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20746 PUSH_ONE_CHECKED_STACK(p, source); \
20753 * As above, but interior pointer recognition as for
20754 * normal for heap pointers.
20756 # define GC_PUSH_ONE_HEAP(p,source) \
20757 - FIXUP_POINTER(p); \
20758 if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20759 && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20760 GC_mark_stack_top = GC_mark_and_push( \
20761 diff -Nur ../boehm-gc/include/private/gc_priv.h boehm-gc/include/private/gc_priv.h
20762 --- ../boehm-gc/include/private/gc_priv.h Mon May 26 13:28:24 2003
20763 +++ boehm-gc/include/private/gc_priv.h Tue Mar 4 09:56:49 2003
20769 -# include <sys/types.h>
20770 -# include <sys/time.h>
20771 -# include <sys/resource.h>
20775 # include <sys/types.h>
20776 # include <sys/time.h>
20777 @@ -212,10 +206,11 @@
20780 #if defined(GC_GCJ_SUPPORT) && ALIGNMENT < 8 && !defined(ALIGN_DOUBLE)
20781 - /* GCJ's Hashtable synchronization code requires 64-bit alignment. */
20782 + /* GCJ's Hashtable synchronization code requires 64-bit alignment. */
20783 # define ALIGN_DOUBLE
20787 /* ALIGN_DOUBLE requires MERGE_SIZES at present. */
20788 # if defined(ALIGN_DOUBLE) && !defined(MERGE_SIZES)
20789 # define MERGE_SIZES
20790 @@ -352,8 +347,7 @@
20791 # include <string.h>
20792 # define BCOPY_EXISTS
20794 -# if defined(DARWIN)
20795 -# include <string.h>
20796 +# if defined(MACOSX)
20797 # define BCOPY_EXISTS
20800 @@ -366,6 +360,68 @@
20801 # define BZERO(x,n) bzero((char *)(x),(int)(n))
20804 +/* HBLKSIZE aligned allocation. 0 is taken to mean failure */
20805 +/* space is assumed to be cleared. */
20806 +/* In the case os USE_MMAP, the argument must also be a */
20807 +/* physical page size. */
20808 +/* GET_MEM is currently not assumed to retrieve 0 filled space, */
20809 +/* though we should perhaps take advantage of the case in which */
20811 +struct hblk; /* See below. */
20813 + char * real_malloc();
20814 +# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
20815 + + GC_page_size-1)
20818 + void * os2_alloc(size_t bytes);
20819 +# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
20820 + + GC_page_size) \
20821 + + GC_page_size-1)
20823 +# if defined(NEXT) || defined(MACOSX) || defined(DOS4GW) || \
20824 + (defined(AMIGA) && !defined(GC_AMIGA_FASTALLOC)) || \
20825 + (defined(SUNOS5) && !defined(USE_MMAP))
20826 +# define GET_MEM(bytes) HBLKPTR((size_t) \
20827 + calloc(1, (size_t)bytes + GC_page_size) \
20828 + + GC_page_size-1)
20831 + extern ptr_t GC_win32_get_mem();
20832 +# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
20835 +# if defined(USE_TEMPORARY_MEMORY)
20836 + extern Ptr GC_MacTemporaryNewPtr(size_t size,
20837 + Boolean clearMemory);
20838 +# define GET_MEM(bytes) HBLKPTR( \
20839 + GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
20840 + + GC_page_size-1)
20842 +# define GET_MEM(bytes) HBLKPTR( \
20843 + NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
20847 + extern ptr_t GC_wince_get_mem();
20848 +# define GET_MEM(bytes) (struct hblk *)GC_wince_get_mem(bytes)
20850 +# if defined(AMIGA) && defined(GC_AMIGA_FASTALLOC)
20851 + extern void *GC_amiga_get_mem(size_t size);
20852 + define GET_MEM(bytes) HBLKPTR((size_t) \
20853 + GC_amiga_get_mem((size_t)bytes + GC_page_size) \
20854 + + GC_page_size-1)
20856 + extern ptr_t GC_unix_get_mem();
20857 +# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
20866 /* Delay any interrupts or signals that may abort this thread. Data */
20867 /* structures are in a consistent state outside this pair of calls. */
20868 /* ANSI C allows both to be empty (though the standard isn't very */
20869 @@ -430,7 +486,7 @@
20870 # ifdef SMALL_CONFIG
20871 # define ABORT(msg) abort();
20873 - GC_API void GC_abort GC_PROTO((GC_CONST char * msg));
20874 + GC_API void GC_abort();
20875 # define ABORT(msg) GC_abort(msg);
20878 @@ -590,10 +646,9 @@
20881 # ifdef LARGE_CONFIG
20882 -# define LOG_PHT_ENTRIES 20 /* Collisions likely at 1M blocks, */
20883 - /* which is >= 4GB. Each table takes */
20884 - /* 128KB, some of which may never be */
20886 +# define LOG_PHT_ENTRIES 19 /* Collisions likely at 512K blocks, */
20887 + /* which is >= 2GB. Each table takes */
20890 # ifdef SMALL_CONFIG
20891 # define LOG_PHT_ENTRIES 14 /* Collisions are likely if heap grows */
20892 @@ -601,7 +656,7 @@
20893 /* Each hash table occupies 2K bytes. */
20894 # else /* default "medium" configuration */
20895 # define LOG_PHT_ENTRIES 16 /* Collisions are likely if heap grows */
20896 - /* to more than 64K hblks >= 256MB. */
20897 + /* to more than 16K hblks >= 256MB. */
20898 /* Each hash table occupies 8K bytes. */
20901 @@ -842,10 +897,6 @@
20903 /* Number of explicitly deallocated words of memory */
20904 /* since last collection. */
20905 - word _finalizer_mem_freed;
20906 - /* Words of memory explicitly deallocated while */
20907 - /* finalizers were running. Used to approximate mem. */
20908 - /* explicitly deallocated by finalizers. */
20909 ptr_t _scratch_end_ptr;
20910 ptr_t _scratch_last_end_ptr;
20911 /* Used by headers.c, and can easily appear to point to */
20912 @@ -906,7 +957,7 @@
20913 /* OFFSET_TOO_BIG if the value j would be too */
20914 /* large to fit in the entry. (Note that the */
20915 /* size of these entries matters, both for */
20916 - /* space consumption and for cache utilization.) */
20917 + /* space consumption and for cache utilization. */
20918 # define OFFSET_TOO_BIG 0xfe
20919 # define OBJ_INVALID 0xff
20920 # define MAP_ENTRY(map, bytes) (map)[bytes]
20921 @@ -1016,7 +1067,6 @@
20922 # define GC_words_finalized GC_arrays._words_finalized
20923 # define GC_non_gc_bytes_at_gc GC_arrays._non_gc_bytes_at_gc
20924 # define GC_mem_freed GC_arrays._mem_freed
20925 -# define GC_finalizer_mem_freed GC_arrays._finalizer_mem_freed
20926 # define GC_scratch_end_ptr GC_arrays._scratch_end_ptr
20927 # define GC_scratch_last_end_ptr GC_arrays._scratch_last_end_ptr
20928 # define GC_mark_procs GC_arrays._mark_procs
20929 @@ -1151,19 +1201,17 @@
20930 /* header structure associated with */
20933 +extern GC_bool GC_is_initialized; /* GC_init() has been run. */
20935 extern GC_bool GC_objects_are_marked; /* There are marked objects in */
20938 #ifndef SMALL_CONFIG
20939 extern GC_bool GC_incremental;
20940 /* Using incremental/generational collection. */
20941 -# define TRUE_INCREMENTAL \
20942 - (GC_incremental && GC_time_limit != GC_TIME_UNLIMITED)
20943 - /* True incremental, not just generational, mode */
20945 # define GC_incremental FALSE
20946 /* Hopefully allow optimizer to remove some code. */
20947 -# define TRUE_INCREMENTAL FALSE
20950 extern GC_bool GC_dirty_maintained;
20951 @@ -1181,10 +1229,6 @@
20952 extern long GC_large_alloc_warn_suppressed;
20953 /* Number of warnings suppressed so far. */
20956 - extern GC_bool GC_world_stopped;
20961 # define abs(x) ((x) < 0? (-(x)) : (x))
20962 @@ -1408,7 +1452,6 @@
20963 /* Set all mark bits associated with */
20965 void GC_add_roots_inner GC_PROTO((char * b, char * e, GC_bool tmp));
20966 -void GC_remove_roots_inner GC_PROTO((char * b, char * e));
20967 GC_bool GC_is_static_root GC_PROTO((ptr_t p));
20968 /* Is the address p in one of the registered static */
20969 /* root sections? */
20970 @@ -1421,9 +1464,9 @@
20971 /* Add dynamic library data sections to the root set. */
20973 GC_bool GC_register_main_static_data GC_PROTO((void));
20974 - /* We need to register the main data segment. Returns */
20975 - /* TRUE unless this is done implicitly as part of */
20976 - /* dynamic library registration. */
20977 + /* We need to register the main data segment. Returns */
20978 + /* TRUE unless this is done implicitly as part of */
20979 + /* dynamic library registration. */
20981 /* Machine dependent startup routines */
20982 ptr_t GC_get_stack_base GC_PROTO((void)); /* Cold end of stack */
20983 @@ -1581,8 +1624,6 @@
20984 /* until the blocks are available or */
20985 /* until it fails by returning FALSE. */
20987 -extern GC_bool GC_is_initialized; /* GC_init() has been run. */
20989 #if defined(MSWIN32) || defined(MSWINCE)
20990 void GC_deinit GC_PROTO((void));
20991 /* Free any resources allocated by */
20992 @@ -1624,8 +1665,6 @@
20993 /* Make the indicated */
20994 /* free list nonempty, and return its */
20997 -void GC_free_inner(GC_PTR p);
20999 void GC_init_headers GC_PROTO((void));
21000 struct hblkhdr * GC_install_header GC_PROTO((struct hblk *h));
21001 @@ -1655,12 +1694,6 @@
21002 /* Call *GC_finalizer_notifier if there are */
21003 /* finalizers to be run, and we haven't called */
21004 /* this procedure yet this GC cycle. */
21006 -GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
21007 -GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
21008 - /* Auxiliary fns to make finalization work */
21009 - /* correctly with displaced pointers introduced */
21010 - /* by the debugging allocators. */
21012 void GC_add_to_heap GC_PROTO((struct hblk *p, word bytes));
21013 /* Add a HBLKSIZE aligned chunk to the heap. */
21014 @@ -1671,36 +1704,16 @@
21015 /* description of the object to stderr. */
21016 extern void (*GC_check_heap) GC_PROTO((void));
21017 /* Check that all objects in the heap with */
21018 - /* debugging info are intact. */
21019 - /* Add any that are not to GC_smashed list. */
21020 -extern void (*GC_print_all_smashed) GC_PROTO((void));
21021 - /* Print GC_smashed if it's not empty. */
21022 - /* Clear GC_smashed list. */
21023 -extern void GC_print_all_errors GC_PROTO((void));
21024 - /* Print smashed and leaked objects, if any. */
21025 - /* Clear the lists of such objects. */
21026 + /* debugging info are intact. Print */
21027 + /* descriptions of any that are not. */
21028 extern void (*GC_print_heap_obj) GC_PROTO((ptr_t p));
21029 /* If possible print s followed by a more */
21030 /* detailed description of the object */
21031 /* referred to by p. */
21032 -#if defined(LINUX) && defined(__ELF__) && !defined(SMALL_CONFIG)
21033 - void GC_print_address_map GC_PROTO((void));
21034 - /* Print an address map of the process. */
21037 -extern GC_bool GC_have_errors; /* We saw a smashed or leaked object. */
21038 - /* Call error printing routine */
21039 - /* occasionally. */
21040 extern GC_bool GC_print_stats; /* Produce at least some logging output */
21041 /* Set from environment variable. */
21043 -#ifndef NO_DEBUGGING
21044 - extern GC_bool GC_dump_regularly; /* Generate regular debugging dumps. */
21045 -# define COND_DUMP if (GC_dump_regularly) GC_dump();
21047 -# define COND_DUMP
21050 /* Macros used for collector internal allocation. */
21051 /* These assume the collector lock is held. */
21052 #ifdef DBG_HDRS_ALL
21053 @@ -1772,7 +1785,6 @@
21054 void GC_print_hblkfreelist GC_PROTO((void));
21055 void GC_print_heap_sects GC_PROTO((void));
21056 void GC_print_static_roots GC_PROTO((void));
21057 -void GC_print_finalization_stats GC_PROTO((void));
21058 void GC_dump GC_PROTO((void));
21060 #ifdef KEEP_BACK_PTRS
21061 @@ -1854,10 +1866,6 @@
21062 # define GC_ASSERT(expr)
21065 -/* Check a compile time assertion at compile time. The error */
21066 -/* message for failure is a bit baroque, but ... */
21067 -# define GC_STATIC_ASSERT(expr) sizeof(char[(expr)? 1 : -1])
21069 # if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
21070 /* We need additional synchronization facilities from the thread */
21071 /* support. We believe these are less performance critical */
21072 @@ -1903,7 +1911,7 @@
21073 /* in Linux glibc, but it's not exported.) Thus we continue to use */
21074 /* the same hard-coded signals we've always used. */
21075 # if !defined(SIG_SUSPEND)
21076 -# if defined(GC_LINUX_THREADS) || defined(GC_DGUX386_THREADS)
21077 +# if defined(GC_LINUX_THREADS)
21078 # if defined(SPARC) && !defined(SIGPWR)
21079 /* SPARC/Linux doesn't properly define SIGPWR in <signal.h>.
21080 * It is aliased to SIGLOST in asm/signal.h, though. */
21081 diff -Nur ../boehm-gc/include/private/gcconfig.h boehm-gc/include/private/gcconfig.h
21082 --- ../boehm-gc/include/private/gcconfig.h Mon May 26 13:28:24 2003
21083 +++ boehm-gc/include/private/gcconfig.h Wed Apr 9 17:08:01 2003
21084 @@ -13,25 +13,11 @@
21085 * provided the above notices are retained, and a notice that the code was
21086 * modified is included with the above copyright notice.
21090 - * This header is private to the gc. It is almost always included from
21091 - * gc_priv.h. However it is possible to include it by itself if just the
21092 - * configuration macros are needed. In that
21093 - * case, a few declarations relying on types declared in gc_priv.h will be
21099 # define GCCONFIG_H
21101 -# ifndef GC_PRIVATE_H
21102 - /* Fake ptr_t declaration, just to avoid compilation errors. */
21103 - /* This avoids many instances if "ifndef GC_PRIVATE_H" below. */
21104 - typedef struct GC_undefined_struct * ptr_t;
21107 /* Machine dependent parameters. Some tuning parameters can be found */
21108 /* near the top of gc_private.h. */
21113 /* Determine the machine type: */
21114 -# if defined(__XSCALE__)
21115 +# if defined(__arm__) || defined(__thumb__)
21117 # if !defined(LINUX)
21120 # if defined(nec_ews) || defined(_nec_ews)
21123 -# if !defined(LINUX) && !defined(EWS4800)
21124 -# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
21125 +# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD)
21126 +# if defined(ultrix) || defined(__ultrix)
21129 # if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) \
21130 @@ -121,16 +107,6 @@
21133 # endif /* !LINUX */
21134 -# if defined(__NetBSD__) && defined(__MIPSEL__)
21137 -# define mach_type_known
21139 -# if defined(DGUX) && (defined(i386) || defined(__i386__))
21141 -# ifndef _USING_DGUX
21142 -# define _USING_DGUX
21144 # define mach_type_known
21146 # if defined(sequent) && (defined(i386) || defined(__i386__))
21147 @@ -222,10 +198,6 @@
21149 # define mach_type_known
21151 -# if defined(LINUX) && defined(__arm__)
21153 -# define mach_type_known
21155 # if defined(LINUX) && (defined(powerpc) || defined(__powerpc__))
21157 # define mach_type_known
21158 @@ -265,19 +237,19 @@
21160 # define mach_type_known
21162 -# if defined(__MWERKS__) && defined(__powerc) && !defined(__MACH__)
21163 +# if defined(__MWERKS__) && defined(__powerc)
21166 # define mach_type_known
21168 # if defined(macosx) || \
21169 defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)
21173 # define mach_type_known
21175 # if defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
21179 --> Not really supported, but at least we recognize it.
21181 @@ -319,7 +291,7 @@
21183 # define mach_type_known
21185 -# if defined(DGUX) && defined(m88k)
21186 +# if defined(DGUX)
21189 # define mach_type_known
21190 @@ -447,12 +419,14 @@
21191 /* (CX_UX and DGUX) */
21192 /* S370 ==> 370-like machine */
21193 /* running Amdahl UTS4 */
21194 - /* S390 ==> 390-like machine */
21195 - /* running LINUX */
21196 + /* S390 ==> 390-like machine */
21197 + /* running LINUX */
21198 /* ARM32 ==> Intel StrongARM */
21199 /* IA64 ==> Intel IPF */
21200 /* (e.g. Itanium) */
21201 /* (LINUX and HPUX) */
21202 + /* IA64_32 ==> IA64 w/32 bit ABI */
21204 /* SH ==> Hitachi SuperH */
21205 /* (LINUX & MSWINCE) */
21206 /* X86_64 ==> AMD x86-64 */
21207 @@ -476,17 +450,15 @@
21208 * defining it to be 1 will always work, but perform poorly.
21210 * DATASTART is the beginning of the data segment.
21211 - * On some platforms SEARCH_FOR_DATA_START is defined.
21212 - * SEARCH_FOR_DATASTART will cause GC_data_start to
21213 - * be set to an address determined by accessing data backwards from _end
21214 - * until an unmapped page is found. DATASTART will be defined to be
21216 - * On UNIX-like systems, the collector will scan the area between DATASTART
21217 + * On UNIX systems, the collector will scan the area between DATASTART
21218 * and DATAEND for root pointers.
21220 * DATAEND, if not `end' where `end' is defined as ``extern int end[];''.
21221 * RTH suggests gaining access to linker script synth'd values with
21222 * this idiom instead of `&end' where `end' is defined as ``extern int end;'' .
21223 + * Otherwise, ``GCC will assume these are in .sdata/.sbss'' and it will, e.g.,
21224 + * cause failures on alpha*-*-* with ``-msmall-data or -fpic'' or mips-*-*
21225 + * without any special options.
21227 * ALIGN_DOUBLE of GC_malloc should return blocks aligned to twice
21228 * the pointer size.
21229 @@ -498,13 +470,8 @@
21230 * 1) define STACK_GROWS_UP if the stack grows toward higher addresses, and
21231 * 2) define exactly one of
21232 * STACKBOTTOM (should be defined to be an expression)
21233 - * LINUX_STACKBOTTOM
21236 - * If STACKBOTTOM is defined, then it's value will be used directly as the
21237 - * stack base. If LINUX_STACKBOTTOM is defined, then it will be determined
21238 - * with a method appropriate for most Linux systems. Currently we look
21239 - * first for __libc_stack_end, and if that fails read it from /proc.
21240 * If either of the last two macros are defined, then STACKBOTTOM is computed
21241 * during collector startup using one of the following two heuristics:
21242 * HEURISTIC1: Take an address inside GC_init's frame, and round it up to
21243 @@ -569,9 +536,6 @@
21244 * An architecture may also define CLEAR_DOUBLE(x) to be a fast way to
21245 * clear the two words at GC_malloc-aligned address x. By default,
21246 * word stores of 0 are used instead.
21248 - * HEAP_START may be defined as the initial address hint for mmap-based
21252 /* If we are using a recent version of gcc, we can use __builtin_unwind_init()
21253 @@ -607,7 +571,7 @@
21254 # define DYNAMIC_LOADING
21255 # include <features.h>
21256 # if defined(__GLIBC__)&& __GLIBC__>=2
21257 -# define SEARCH_FOR_DATA_START
21258 +# define LINUX_DATA_START
21259 # else /* !GLIBC2 */
21260 extern char **__environ;
21261 # define DATASTART ((ptr_t)(&__environ))
21262 @@ -705,42 +669,23 @@
21263 # define ALIGNMENT 4 /* Guess. Can someone verify? */
21264 /* This was 2, but that didn't sound right. */
21265 # define OS_TYPE "LINUX"
21266 - /* HEURISTIC1 has been reliably reported to fail for a 32-bit */
21267 - /* executable on a 64 bit kernel. */
21268 -# define LINUX_STACKBOTTOM
21269 # define DYNAMIC_LOADING
21270 -# define SEARCH_FOR_DATA_START
21271 +# define LINUX_STACKBOTTOM
21272 + /* Stack usually starts at 0x80000000 */
21273 +# define LINUX_DATA_START
21275 # define DATAEND (_end)
21279 /* There are reasons to suspect this may not be reliable. */
21280 # define ALIGNMENT 4
21281 -# define OS_TYPE "DARWIN"
21282 -# define DYNAMIC_LOADING
21283 - /* XXX: see get_end(3), get_etext() and get_end() should not be used.
21284 - These aren't used when dyld support is enabled (it is by default) */
21285 +# define OS_TYPE "MACOSX"
21286 # define DATASTART ((ptr_t) get_etext())
21287 -# define DATAEND ((ptr_t) get_end())
21288 # define STACKBOTTOM ((ptr_t) 0xc0000000)
21290 -# define USE_MMAP_ANON
21291 -# define USE_ASM_PUSH_REGS
21292 - /* This is potentially buggy. It needs more testing. See the comments in
21294 -# define MPROTECT_VDB
21295 +# define DATAEND /* not needed */
21296 +# undef MPROTECT_VDB
21297 # include <unistd.h>
21298 # define GETPAGESIZE() getpagesize()
21299 -# if defined(USE_PPC_PREFETCH) && defined(__GNUC__)
21300 - /* The performance impact of prefetches is untested */
21301 -# define PREFETCH(x) \
21302 - __asm__ __volatile__ ("dcbt 0,%0" : : "r" ((const void *) (x)))
21303 -# define PREFETCH_FOR_WRITE(x) \
21304 - __asm__ __volatile__ ("dcbtst 0,%0" : : "r" ((const void *) (x)))
21306 - /* There seems to be some issues with trylock hanging on darwin. This
21307 - should be looked into some more */
21308 -# define NO_PTHREAD_TRYLOCK
21311 # define ALIGNMENT 4
21312 @@ -801,8 +746,8 @@
21313 # define OS_TYPE "SUNOS5"
21314 extern int _etext[];
21316 - extern ptr_t GC_SysVGetDataStart();
21317 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
21318 + extern char * GC_SysVGetDataStart();
21319 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
21320 # define DATAEND (_end)
21321 # if !defined(USE_MMAP) && defined(REDIRECT_MALLOC)
21323 @@ -856,9 +801,9 @@
21326 # define OS_TYPE "DRSNX"
21327 - extern ptr_t GC_SysVGetDataStart();
21328 + extern char * GC_SysVGetDataStart();
21329 extern int etext[];
21330 -# define DATASTART GC_SysVGetDataStart(0x10000, etext)
21331 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, etext)
21332 # define MPROTECT_VDB
21333 # define STACKBOTTOM ((ptr_t) 0xdfff0000)
21334 # define DYNAMIC_LOADING
21335 @@ -874,14 +819,13 @@
21336 extern int _etext[];
21337 # define DATAEND (_end)
21339 - extern ptr_t GC_SysVGetDataStart();
21341 -# define DATASTART GC_SysVGetDataStart(0x100000, _etext)
21342 /* libc_stack_end is not set reliably for sparc64 */
21343 -# define STACKBOTTOM ((ptr_t) 0x80000000000ULL)
21344 +# define STACKBOTTOM ((ptr_t) 0x80000000000)
21345 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x100000, _etext)
21347 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
21348 -# define LINUX_STACKBOTTOM
21349 +# define LINUX_STACKBOTTOM
21350 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
21354 @@ -932,7 +876,7 @@
21356 # define OS_TYPE "SUNOS5"
21357 extern int _etext[], _end[];
21358 - extern ptr_t GC_SysVGetDataStart();
21359 + extern char * GC_SysVGetDataStart();
21360 # define DATASTART GC_SysVGetDataStart(0x1000, _etext)
21361 # define DATAEND (_end)
21362 /* # define STACKBOTTOM ((ptr_t)(_start)) worked through 2.7, */
21363 @@ -977,28 +921,6 @@
21364 # define DYNAMIC_LOADING
21365 # define ELF_CLASS ELFCLASS32
21368 -# define OS_TYPE "DGUX"
21369 - extern int _etext, _end;
21370 - extern ptr_t GC_SysVGetDataStart();
21371 -# define DATASTART GC_SysVGetDataStart(0x1000, &_etext)
21372 -# define DATAEND (&_end)
21373 -# define STACK_GROWS_DOWN
21374 -# define HEURISTIC2
21375 -# include <unistd.h>
21376 -# define GETPAGESIZE() sysconf(_SC_PAGESIZE)
21377 -# define DYNAMIC_LOADING
21380 -# endif /* USE_MMAP */
21381 -# define MAP_FAILED (void *) -1
21383 -# define HEAP_START (ptr_t)0x40000000
21384 -# else /* USE_MMAP */
21385 -# define HEAP_START DATAEND
21386 -# endif /* USE_MMAP */
21387 -# endif /* DGUX */
21391 /* The Intel compiler doesn't like inline assembly */
21392 @@ -1022,9 +944,6 @@
21393 /* possibly because Linux threads is itself a malloc client */
21394 /* and can't deal with the signals. */
21396 -# define HEAP_START 0x1000
21397 - /* This encourages mmap to give us low addresses, */
21398 - /* thus allowing the heap to grow to ~3GB */
21400 # define DYNAMIC_LOADING
21401 # ifdef UNDEFINED /* includes ro data */
21402 @@ -1033,7 +952,7 @@
21404 # include <features.h>
21405 # if defined(__GLIBC__) && __GLIBC__ >= 2
21406 -# define SEARCH_FOR_DATA_START
21407 +# define LINUX_DATA_START
21409 extern char **__environ;
21410 # define DATASTART ((ptr_t)(&__environ))
21411 @@ -1142,9 +1061,16 @@
21413 # define DYNAMIC_LOADING
21415 +/* Handle unmapped hole i386*-*-freebsd[45]* may put between etext and edata. */
21416 extern char etext[];
21417 - extern char * GC_FreeBSDGetDataStart();
21418 -# define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
21419 + extern char edata[];
21420 + extern char end[];
21421 +# define NEED_FIND_LIMIT
21422 +# define DATASTART ((ptr_t)(etext))
21423 +# define MIN(x,y) ((x) < (y) ? (x) : (y))
21424 +# define DATAEND (MIN (GC_find_limit (DATASTART, TRUE), DATASTART2))
21425 +# define DATASTART2 ((ptr_t)(edata))
21426 +# define DATAEND2 ((ptr_t)(end))
21429 # define OS_TYPE "NETBSD"
21430 @@ -1223,11 +1149,7 @@
21431 # define DATASTART ((ptr_t)(__data_start))
21432 # define ALIGNMENT 4
21433 # define USE_GENERIC_PUSH_REGS
21434 -# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2
21435 -# define LINUX_STACKBOTTOM
21437 -# define STACKBOTTOM 0x80000000
21439 +# define LINUX_STACKBOTTOM
21440 # endif /* Linux */
21442 # define HEURISTIC2
21443 @@ -1300,21 +1222,15 @@
21444 # define DATAEND /* not needed */
21446 # if defined(NETBSD)
21447 - /* This also checked for __MIPSEL__ . Why? NETBSD recognition */
21448 - /* should be handled at the top of the file. */
21449 -# define ALIGNMENT 4
21450 # define OS_TYPE "NETBSD"
21451 +# define ALIGNMENT 4
21452 # define HEURISTIC2
21453 # define USE_GENERIC_PUSH_REGS
21455 - extern int etext[];
21456 -# define DATASTART GC_data_start
21457 -# define NEED_FIND_LIMIT
21458 -# define DYNAMIC_LOADING
21460 -# define DATASTART ((ptr_t) 0x10000000)
21461 -# define STACKBOTTOM ((ptr_t) 0x7ffff000)
21462 -# endif /* _ELF_ */
21463 + extern int _fdata[];
21464 +# define DATASTART ((ptr_t)(_fdata))
21465 + extern int _end[];
21466 +# define DATAEND ((ptr_t)(_end))
21467 +# define DYNAMIC_LOADING
21471 @@ -1323,16 +1239,15 @@
21473 # define ALIGNMENT 8
21474 # define CPP_WORDSZ 64
21475 -# define STACKBOTTOM 0x1000000000000000
21477 # define ALIGNMENT 4
21478 # define CPP_WORDSZ 32
21479 -# define STACKBOTTOM ((ptr_t)((ulong)&errno))
21481 extern int _data[], _end[];
21482 # define DATASTART ((ptr_t)((ulong)_data))
21483 # define DATAEND ((ptr_t)((ulong)_end))
21485 +# define STACKBOTTOM ((ptr_t)((ulong)&errno))
21486 # define USE_GENERIC_PUSH_REGS
21487 # define DYNAMIC_LOADING
21488 /* For really old versions of AIX, this may have to be removed. */
21489 @@ -1396,23 +1311,15 @@
21490 # define OS_TYPE "LINUX"
21491 # define LINUX_STACKBOTTOM
21492 # define DYNAMIC_LOADING
21493 -# define SEARCH_FOR_DATA_START
21494 +# define LINUX_DATA_START
21496 -# define DATAEND (&_end)
21497 +# define DATAEND (_end)
21498 # endif /* LINUX */
21499 # endif /* HP_PA */
21502 # define MACH_TYPE "ALPHA"
21503 # define ALIGNMENT 8
21504 -# define CPP_WORDSZ 64
21506 -# define USE_GENERIC_PUSH_REGS
21507 - /* Gcc and probably the DEC/Compaq compiler spill pointers to preserved */
21508 - /* fp registers in some cases when the target is a 21264. The assembly */
21509 - /* code doesn't handle that yet, and version dependencies make that a */
21510 - /* bit tricky. Do the easy thing for now. */
21513 # define OS_TYPE "NETBSD"
21514 # define HEURISTIC2
21515 @@ -1420,11 +1327,13 @@
21516 # define ELFCLASS32 32
21517 # define ELFCLASS64 64
21518 # define ELF_CLASS ELFCLASS64
21519 +# define CPP_WORDSZ 64
21520 # define DYNAMIC_LOADING
21523 # define OS_TYPE "OPENBSD"
21524 # define HEURISTIC2
21525 +# define CPP_WORDSZ 64
21526 # ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
21527 # define DATASTART GC_data_start
21528 # define ELFCLASS32 32
21529 @@ -1448,16 +1357,17 @@
21530 extern char edata[];
21532 # define NEED_FIND_LIMIT
21533 -# define DATASTART ((ptr_t)(&etext))
21534 +# define DATASTART ((ptr_t)(etext))
21535 # define DATAEND (GC_find_limit (DATASTART, TRUE))
21536 -# define DATASTART2 ((ptr_t)(&edata))
21537 -# define DATAEND2 ((ptr_t)(&end))
21538 +# define DATASTART2 ((ptr_t)(edata))
21539 +# define DATAEND2 ((ptr_t)(end))
21540 +# define CPP_WORDSZ 64
21543 # define OS_TYPE "OSF1"
21544 # define DATASTART ((ptr_t) 0x140000000)
21546 -# define DATAEND ((ptr_t) &_end)
21547 +# define DATAEND ((ptr_t) _end)
21548 extern char ** environ;
21549 /* round up from the value of environ to the nearest page boundary */
21550 /* Probably breaks if putenv is called before collector */
21551 @@ -1470,17 +1380,17 @@
21552 /* This is currently unused, since we disabled HEURISTIC2 */
21553 extern int __start[];
21554 # define HEURISTIC2_LIMIT ((ptr_t)((word)(__start) & ~(getpagesize()-1)))
21555 -# ifndef GC_OSF1_THREADS
21556 - /* Unresolved signal issues with threads. */
21557 -# define MPROTECT_VDB
21559 +# define CPP_WORDSZ 64
21560 +# define MPROTECT_VDB
21561 # define DYNAMIC_LOADING
21564 # define OS_TYPE "LINUX"
21565 +# define CPP_WORDSZ 64
21566 # define STACKBOTTOM ((ptr_t) 0x120000000)
21568 # define SEARCH_FOR_DATA_START
21569 +# define DATASTART GC_data_start
21570 # define DYNAMIC_LOADING
21572 # define DATASTART ((ptr_t) 0x140000000)
21573 @@ -1558,6 +1468,7 @@
21574 extern char * GC_register_stackbottom;
21575 # define BACKING_STORE_BASE ((ptr_t)GC_register_stackbottom)
21576 # define SEARCH_FOR_DATA_START
21577 +# define DATASTART GC_data_start
21579 # define DYNAMIC_LOADING
21581 @@ -1591,15 +1502,13 @@
21584 # define OS_TYPE "DGUX"
21585 - extern ptr_t GC_SysVGetDataStart();
21586 -# define DATASTART GC_SysVGetDataStart(0x10000, etext)
21587 + extern char * GC_SysVGetDataStart();
21588 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, etext)
21590 # define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
21594 - /* If this still works, and if anyone cares, this should probably */
21595 - /* be moved to the S390 category. */
21596 # define MACH_TYPE "S370"
21597 # define ALIGNMENT 4 /* Required by hardware */
21598 # define USE_GENERIC_PUSH_REGS
21599 @@ -1608,8 +1517,8 @@
21600 extern int etext[];
21601 extern int _etext[];
21603 - extern ptr_t GC_SysVGetDataStart();
21604 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
21605 + extern char * GC_SysVGetDataStart();
21606 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
21607 # define DATAEND (_end)
21608 # define HEURISTIC2
21610 @@ -1619,12 +1528,12 @@
21611 # define MACH_TYPE "S390"
21612 # define USE_GENERIC_PUSH_REGS
21614 -# define ALIGNMENT 4
21615 -# define CPP_WORDSZ 32
21616 +# define ALIGNMENT 4
21617 +# define CPP_WORDSZ 32
21619 -# define ALIGNMENT 8
21620 -# define CPP_WORDSZ 64
21621 -# define HBLKSIZE 4096
21622 +# define ALIGNMENT 8
21623 +# define CPP_WORDSZ 64
21624 +# define HBLKSIZE 4096
21627 # define OS_TYPE "LINUX"
21628 @@ -1632,10 +1541,10 @@
21629 # define DYNAMIC_LOADING
21630 extern int __data_start[];
21631 # define DATASTART ((ptr_t)(__data_start))
21632 - extern int _end[];
21633 -# define DATAEND (_end)
21634 -# define CACHE_LINE_SIZE 256
21635 -# define GETPAGESIZE() 4096
21636 + extern int _end[];
21637 +# define DATAEND (_end)
21638 +# define CACHE_LINE_SIZE 256
21639 +# define GETPAGESIZE() 4096
21643 @@ -1667,7 +1576,7 @@
21644 # define DYNAMIC_LOADING
21645 # include <features.h>
21646 # if defined(__GLIBC__) && __GLIBC__ >= 2
21647 -# define SEARCH_FOR_DATA_START
21648 +# define LINUX_DATA_START
21650 extern char **__environ;
21651 # define DATASTART ((ptr_t)(&__environ))
21652 @@ -1714,7 +1623,7 @@
21653 # define STACKBOTTOM ((ptr_t) 0x7c000000)
21654 # define USE_GENERIC_PUSH_REGS
21655 # define DYNAMIC_LOADING
21656 -# define SEARCH_FOR_DATA_START
21657 +# define LINUX_DATA_START
21659 # define DATAEND (_end)
21661 @@ -1731,9 +1640,7 @@
21662 # define MACH_TYPE "X86_64"
21663 # define ALIGNMENT 8
21664 # define CPP_WORDSZ 64
21666 -# define HBLKSIZE 4096
21668 +# define HBLKSIZE 4096
21669 # define CACHE_LINE_SIZE 64
21670 # define USE_GENERIC_PUSH_REGS
21672 @@ -1753,7 +1660,7 @@
21673 # define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff))
21675 # include <features.h>
21676 -# define SEARCH_FOR_DATA_START
21677 +# define LINUX_DATA_START
21679 # define DATAEND (_end)
21681 @@ -1767,6 +1674,19 @@
21685 +#ifdef LINUX_DATA_START
21686 + /* Some Linux distributions arrange to define __data_start. Some */
21687 + /* define data_start as a weak symbol. The latter is technically */
21688 + /* broken, since the user program may define data_start, in which */
21689 + /* case we lose. Nonetheless, we try both, prefering __data_start. */
21690 + /* We assume gcc. */
21691 +# pragma weak __data_start
21692 + extern int __data_start[];
21693 +# pragma weak data_start
21694 + extern int data_start[];
21695 +# define DATASTART ((ptr_t)(__data_start != 0? __data_start : data_start))
21698 #if defined(LINUX) && defined(REDIRECT_MALLOC)
21699 /* Rld appears to allocate some memory with its own allocator, and */
21700 /* some through malloc, which might be redirected. To make this */
21701 @@ -1805,15 +1725,15 @@
21704 # if defined(SUNOS5) || defined(DRSNX) || defined(UTS4)
21705 - /* OS has SVR4 generic features. Probably others also qualify. */
21706 + /* OS has SVR4 generic features. Probably others also qualify. */
21710 # if defined(SUNOS5) || defined(DRSNX)
21711 - /* OS has SUNOS5 style semi-undocumented interface to dynamic */
21713 + /* OS has SUNOS5 style semi-undocumented interface to dynamic */
21716 - /* OS has SUNOS5 style signal handlers. */
21717 + /* OS has SUNOS5 style signal handlers. */
21718 # define SUNOS5SIGS
21721 @@ -1822,13 +1742,13 @@
21724 # if defined(SVR4) || defined(LINUX) || defined(IRIX) || defined(HPUX) \
21725 - || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) || defined(DGUX) \
21726 - || defined(BSD) || defined(AIX) || defined(DARWIN) || defined(OSF1)
21727 + || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
21728 + || defined(BSD) || defined(_AIX) || defined(MACOSX) || defined(OSF1)
21729 # define UNIX_LIKE /* Basic Unix-like system calls work. */
21732 # if CPP_WORDSZ != 32 && CPP_WORDSZ != 64
21738 @@ -1842,13 +1762,13 @@
21742 - /* Postponed for now. */
21743 +/* Postponed for now. */
21745 # undef MPROTECT_VDB
21748 # ifdef SMALL_CONFIG
21749 - /* Presumably not worth the space it takes. */
21750 +/* Presumably not worth the space it takes. */
21752 # undef MPROTECT_VDB
21754 @@ -1888,47 +1808,49 @@
21755 /* platforms as well, though it should be avoided in win32. */
21756 # endif /* LINUX */
21758 -# if defined(SEARCH_FOR_DATA_START)
21759 +# if defined(SEARCH_FOR_DATA_START) && defined(GC_PRIVATE_H)
21760 extern ptr_t GC_data_start;
21761 -# define DATASTART GC_data_start
21764 # ifndef CLEAR_DOUBLE
21765 # define CLEAR_DOUBLE(x) \
21766 - ((word*)x)[0] = 0; \
21767 - ((word*)x)[1] = 0;
21768 + ((word*)x)[0] = 0; \
21769 + ((word*)x)[1] = 0;
21770 # endif /* CLEAR_DOUBLE */
21772 - /* Internally we use GC_SOLARIS_THREADS to test for either old or pthreads. */
21773 +/* Internally we use GC_SOLARIS_THREADS to test for either old or pthreads. */
21774 # if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
21775 # define GC_SOLARIS_THREADS
21778 # if defined(GC_IRIX_THREADS) && !defined(IRIX5)
21779 - --> inconsistent configuration
21780 +--> inconsistent configuration
21782 # if defined(GC_LINUX_THREADS) && !defined(LINUX)
21783 - --> inconsistent configuration
21784 +--> inconsistent configuration
21786 # if defined(GC_SOLARIS_THREADS) && !defined(SUNOS5)
21787 - --> inconsistent configuration
21788 +--> inconsistent configuration
21790 # if defined(GC_HPUX_THREADS) && !defined(HPUX)
21791 - --> inconsistent configuration
21792 +--> inconsistent configuration
21794 -# if defined(GC_WIN32_THREADS) && !defined(MSWIN32) && !defined(CYGWIN32)
21795 - --> inconsistent configuration
21796 +# if defined(GC_WIN32_THREADS) && !defined(MSWIN32)
21797 + /* Ideally CYGWIN32 should work, in addition to MSWIN32. I suspect */
21798 + /* the necessary code is mostly there, but nobody has actually made */
21799 + /* sure the right combination of pieces is compiled in, etc. */
21800 +--> inconsistent configuration
21803 # if defined(PCR) || defined(SRC_M3) || \
21804 - defined(GC_SOLARIS_THREADS) || defined(GC_WIN32_THREADS) || \
21805 - defined(GC_PTHREADS)
21806 + defined(GC_SOLARIS_THREADS) || defined(GC_WIN32_THREADS) || \
21807 + defined(GC_PTHREADS)
21811 -# if defined(HP_PA) || defined(M88K) || defined(POWERPC) && !defined(DARWIN) \
21812 - || defined(LINT) || defined(MSWINCE) || defined(ARM32) \
21813 - || (defined(I386) && defined(__LCC__))
21814 +# if defined(HP_PA) || defined(M88K) || defined(POWERPC) && !defined(MACOSX) \
21815 + || defined(LINT) || defined(MSWINCE) \
21816 + || (defined(I386) && defined(__LCC__))
21817 /* Use setjmp based hack to mark from callee-save registers. */
21818 /* The define should move to the individual platform */
21819 /* descriptions. */
21820 @@ -1940,26 +1862,36 @@
21821 /* include assembly code to do it well. */
21824 - /* Can we save call chain in objects for debugging? */
21825 - /* SET NFRAMES (# of saved frames) and NARGS (#of args for each */
21826 - /* frame) to reasonable values for the platform. */
21827 - /* Set SAVE_CALL_CHAIN if we can. SAVE_CALL_COUNT can be specified */
21828 - /* at build time, though we feel free to adjust it slightly. */
21829 - /* Define NEED_CALLINFO if we either save the call stack or */
21830 - /* GC_ADD_CALLER is defined. */
21831 - /* GC_CAN_SAVE_CALL_STACKS is set in gc.h. */
21832 +/* Can we save call chain in objects for debugging? */
21833 +/* SET NFRAMES (# of saved frames) and NARGS (#of args for each frame) */
21834 +/* to reasonable values for the platform. */
21835 +/* Set SAVE_CALL_CHAIN if we can. SAVE_CALL_COUNT can be specified at */
21836 +/* build time, though we feel free to adjust it slightly. */
21837 +/* Define NEED_CALLINFO if we either save the call stack or */
21838 +/* GC_ADD_CALLER is defined. */
21840 +# include <features.h>
21841 +# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2
21842 +# define HAVE_BUILTIN_BACKTRACE
21847 +# define CAN_SAVE_CALL_STACKS
21848 # define CAN_SAVE_CALL_ARGS
21850 #if (defined(I386) || defined(X86_64)) && defined(LINUX)
21851 - /* SAVE_CALL_CHAIN is supported if the code is compiled to save */
21852 - /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */
21853 + /* SAVE_CALL_CHAIN is supported if the code is compiled to save */
21854 + /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */
21855 +# define CAN_SAVE_CALL_STACKS
21856 # define CAN_SAVE_CALL_ARGS
21858 +#if defined(HAVE_BUILTIN_BACKTRACE) && !defined(CAN_SAVE_CALL_STACKS)
21859 +# define CAN_SAVE_CALL_STACKS
21862 # if defined(SAVE_CALL_COUNT) && !defined(GC_ADD_CALLER) \
21863 - && defined(GC_CAN_SAVE_CALL_STACKS)
21864 + && defined(CAN_SAVE_CALL_STACKS)
21865 # define SAVE_CALL_CHAIN
21867 # ifdef SAVE_CALL_CHAIN
21868 @@ -1972,7 +1904,7 @@
21869 # ifdef SAVE_CALL_CHAIN
21870 # ifndef SAVE_CALL_COUNT
21871 # define NFRAMES 6 /* Number of frames to save. Even for */
21872 - /* alignment reasons. */
21873 + /* alignment reasons. */
21875 # define NFRAMES ((SAVE_CALL_COUNT + 1) & ~1)
21877 @@ -1987,97 +1919,5 @@
21878 # if defined(MAKE_BACK_GRAPH) && !defined(DBG_HDRS_ALL)
21879 # define DBG_HDRS_ALL
21882 -# if defined(POINTER_MASK) && !defined(POINTER_SHIFT)
21883 -# define POINTER_SHIFT 0
21886 -# if defined(POINTER_SHIFT) && !defined(POINTER_MASK)
21887 -# define POINTER_MASK ((GC_word)(-1))
21890 -# if !defined(FIXUP_POINTER) && defined(POINTER_MASK)
21891 -# define FIXUP_POINTER(p) (p) = ((p) & (POINTER_MASK) << POINTER_SHIFT)
21894 -# if defined(FIXUP_POINTER)
21895 -# define NEED_FIXUP_POINTER 1
21897 -# define NEED_FIXUP_POINTER 0
21898 -# define FIXUP_POINTER(p)
21901 -#ifdef GC_PRIVATE_H
21902 - /* This relies on some type definitions from gc_priv.h, from */
21903 - /* where it's normally included. */
21905 - /* How to get heap memory from the OS: */
21906 - /* Note that sbrk()-like allocation is preferred, since it */
21907 - /* usually makes it possible to merge consecutively allocated */
21908 - /* chunks. It also avoids unintented recursion with */
21909 - /* -DREDIRECT_MALLOC. */
21910 - /* GET_MEM() returns a HLKSIZE aligned chunk. */
21911 - /* 0 is taken to mean failure. */
21912 - /* In the case os USE_MMAP, the argument must also be a */
21913 - /* physical page size. */
21914 - /* GET_MEM is currently not assumed to retrieve 0 filled space, */
21915 - /* though we should perhaps take advantage of the case in which */
21917 - struct hblk; /* See gc_priv.h. */
21919 - char * real_malloc();
21920 -# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
21921 - + GC_page_size-1)
21924 - void * os2_alloc(size_t bytes);
21925 -# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
21926 - + GC_page_size) \
21927 - + GC_page_size-1)
21929 -# if defined(NEXT) || defined(DOS4GW) || \
21930 - (defined(AMIGA) && !defined(GC_AMIGA_FASTALLOC)) || \
21931 - (defined(SUNOS5) && !defined(USE_MMAP))
21932 -# define GET_MEM(bytes) HBLKPTR((size_t) \
21933 - calloc(1, (size_t)bytes + GC_page_size) \
21934 - + GC_page_size-1)
21937 - extern ptr_t GC_win32_get_mem();
21938 -# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
21941 -# if defined(USE_TEMPORARY_MEMORY)
21942 - extern Ptr GC_MacTemporaryNewPtr(size_t size,
21943 - Boolean clearMemory);
21944 -# define GET_MEM(bytes) HBLKPTR( \
21945 - GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
21946 - + GC_page_size-1)
21948 -# define GET_MEM(bytes) HBLKPTR( \
21949 - NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
21953 - extern ptr_t GC_wince_get_mem();
21954 -# define GET_MEM(bytes) (struct hblk *)GC_wince_get_mem(bytes)
21956 -# if defined(AMIGA) && defined(GC_AMIGA_FASTALLOC)
21957 - extern void *GC_amiga_get_mem(size_t size);
21958 - define GET_MEM(bytes) HBLKPTR((size_t) \
21959 - GC_amiga_get_mem((size_t)bytes + GC_page_size) \
21960 - + GC_page_size-1)
21962 - extern ptr_t GC_unix_get_mem();
21963 -# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
21972 -#endif /* GC_PRIVATE_H */
21974 # endif /* GCCONFIG_H */
21975 diff -Nur ../boehm-gc/include/private/pthread_stop_world.h boehm-gc/include/private/pthread_stop_world.h
21976 --- ../boehm-gc/include/private/pthread_stop_world.h Mon May 26 13:28:24 2003
21977 +++ boehm-gc/include/private/pthread_stop_world.h Wed Dec 31 16:00:00 1969
21979 -#ifndef GC_PTHREAD_STOP_WORLD_H
21980 -#define GC_PTHREAD_STOP_WORLD_H
21982 -struct thread_stop_info {
21984 - word last_stop_count; /* GC_last_stop_count value when thread */
21985 - /* last successfully handled a suspend */
21987 - ptr_t stack_ptr; /* Valid only when stopped. */
21991 diff -Nur ../boehm-gc/include/private/pthread_support.h boehm-gc/include/private/pthread_support.h
21992 --- ../boehm-gc/include/private/pthread_support.h Mon May 26 13:28:24 2003
21993 +++ boehm-gc/include/private/pthread_support.h Wed Dec 31 16:00:00 1969
21995 -#ifndef GC_PTHREAD_SUPPORT_H
21996 -#define GC_PTHREAD_SUPPORT_H
21998 -# include "private/gc_priv.h"
22000 -# if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
22001 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
22003 -#if defined(GC_DARWIN_THREADS)
22004 -# include "private/darwin_stop_world.h"
22006 -# include "private/pthread_stop_world.h"
22009 -/* We use the allocation lock to protect thread-related data structures. */
22011 -/* The set of all known threads. We intercept thread creation and */
22013 -/* Protected by allocation/GC lock. */
22014 -/* Some of this should be declared volatile, but that's inconsistent */
22015 -/* with some library routine declarations. */
22016 -typedef struct GC_Thread_Rep {
22017 - struct GC_Thread_Rep * next; /* More recently allocated threads */
22018 - /* with a given pthread id come */
22019 - /* first. (All but the first are */
22020 - /* guaranteed to be dead, but we may */
22021 - /* not yet have registered the join.) */
22023 - /* Extra bookkeeping information the stopping code uses */
22024 - struct thread_stop_info stop_info;
22027 -# define FINISHED 1 /* Thread has exited. */
22028 -# define DETACHED 2 /* Thread is intended to be detached. */
22029 -# define MAIN_THREAD 4 /* True for the original thread only. */
22030 - short thread_blocked; /* Protected by GC lock. */
22031 - /* Treated as a boolean value. If set, */
22032 - /* thread will acquire GC lock before */
22033 - /* doing any pointer manipulations, and */
22034 - /* has set its sp value. Thus it does */
22035 - /* not need to be sent a signal to stop */
22037 - ptr_t stack_end; /* Cold end of the stack. */
22039 - ptr_t backing_store_end;
22040 - ptr_t backing_store_ptr;
22042 - void * status; /* The value returned from the thread. */
22043 - /* Used only to avoid premature */
22044 - /* reclamation of any data it might */
22046 -# ifdef THREAD_LOCAL_ALLOC
22047 -# if CPP_WORDSZ == 64 && defined(ALIGN_DOUBLE)
22048 -# define GRANULARITY 16
22049 -# define NFREELISTS 49
22051 -# define GRANULARITY 8
22052 -# define NFREELISTS 65
22054 - /* The ith free list corresponds to size i*GRANULARITY */
22055 -# define INDEX_FROM_BYTES(n) ((ADD_SLOP(n) + GRANULARITY - 1)/GRANULARITY)
22056 -# define BYTES_FROM_INDEX(i) ((i) * GRANULARITY - EXTRA_BYTES)
22057 -# define SMALL_ENOUGH(bytes) (ADD_SLOP(bytes) <= \
22058 - (NFREELISTS-1)*GRANULARITY)
22059 - ptr_t ptrfree_freelists[NFREELISTS];
22060 - ptr_t normal_freelists[NFREELISTS];
22061 -# ifdef GC_GCJ_SUPPORT
22062 - ptr_t gcj_freelists[NFREELISTS];
22064 - /* Free lists contain either a pointer or a small count */
22065 - /* reflecting the number of granules allocated at that */
22067 - /* 0 ==> thread-local allocation in use, free list */
22069 - /* > 0, <= DIRECT_GRANULES ==> Using global allocation, */
22070 - /* too few objects of this size have been */
22071 - /* allocated by this thread. */
22072 - /* >= HBLKSIZE => pointer to nonempty free list. */
22073 - /* > DIRECT_GRANULES, < HBLKSIZE ==> transition to */
22074 - /* local alloc, equivalent to 0. */
22075 -# define DIRECT_GRANULES (HBLKSIZE/GRANULARITY)
22076 - /* Don't use local free lists for up to this much */
22077 - /* allocation. */
22081 -# define THREAD_TABLE_SZ 128 /* Must be power of 2 */
22082 -extern volatile GC_thread GC_threads[THREAD_TABLE_SZ];
22084 -extern GC_bool GC_thr_initialized;
22086 -GC_thread GC_lookup_thread(pthread_t id);
22088 -void GC_stop_init();
22090 -#endif /* GC_PTHREADS && !GC_SOLARIS_THREADS.... etc */
22091 -#endif /* GC_PTHREAD_SUPPORT_H */
22092 diff -Nur ../boehm-gc/include/private/solaris_threads.h boehm-gc/include/private/solaris_threads.h
22093 --- ../boehm-gc/include/private/solaris_threads.h Mon May 26 13:28:24 2003
22094 +++ boehm-gc/include/private/solaris_threads.h Tue Oct 23 16:21:39 2001
22096 # define DETACHED 2 /* Thread is intended to be detached. */
22097 # define CLIENT_OWNS_STACK 4
22098 /* Stack was supplied by client. */
22099 -# define SUSPNDED 8 /* Currently suspended. */
22100 - /* SUSPENDED is used insystem header. */
22101 +# define SUSPENDED 8 /* Currently suspended. */
22105 diff -Nur ../boehm-gc/include/private/specific.h boehm-gc/include/private/specific.h
22106 --- ../boehm-gc/include/private/specific.h Mon May 26 13:28:24 2003
22107 +++ boehm-gc/include/private/specific.h Fri Mar 29 14:52:13 2002
22109 unsigned hash_val = CACHE_HASH(qtid);
22110 tse * volatile * entry_ptr = key -> cache + hash_val;
22111 tse * entry = *entry_ptr; /* Must be loaded only once. */
22112 - if (EXPECT(entry -> qtid == qtid, 1)) {
22113 + if (entry -> qtid == qtid) {
22114 GC_ASSERT(entry -> thread == pthread_self());
22115 return entry -> value;
22117 diff -Nur ../boehm-gc/irix_threads.c boehm-gc/irix_threads.c
22118 --- ../boehm-gc/irix_threads.c Mon May 26 12:48:52 2003
22119 +++ boehm-gc/irix_threads.c Sun May 19 10:36:14 2002
22121 #undef pthread_join
22122 #undef pthread_detach
22124 -#ifdef HANDLE_FORK
22125 - --> Not yet supported. Try porting the code from linux_threads.c.
22128 void GC_thr_init();
22131 diff -Nur ../boehm-gc/mach_dep.c boehm-gc/mach_dep.c
22132 --- ../boehm-gc/mach_dep.c Mon May 26 12:48:52 2003
22133 +++ boehm-gc/mach_dep.c Thu Jul 18 13:06:00 2002
22135 /* on your architecture. Run the test_setjmp program to see whether */
22136 /* there is any chance it will work. */
22138 -#if !defined(USE_GENERIC_PUSH_REGS) && !defined(USE_ASM_PUSH_REGS)
22139 +#ifndef USE_GENERIC_PUSH_REGS
22140 void GC_push_regs()
22143 @@ -228,8 +228,7 @@
22144 || ( defined(I386) && defined(FREEBSD) && defined(__ELF__) ) \
22145 || ( defined(I386) && defined(NETBSD) && defined(__ELF__) ) \
22146 || ( defined(I386) && defined(OPENBSD) && defined(__ELF__) ) \
22147 - || ( defined(I386) && defined(HURD) && defined(__ELF__) ) \
22148 - || ( defined(I386) && defined(DGUX) )
22149 + || ( defined(I386) && defined(HURD) && defined(__ELF__) )
22151 /* This is modified for Linux with ELF (Note: _ELF_ only) */
22152 /* This section handles FreeBSD with ELF. */
22153 @@ -378,7 +377,7 @@
22154 /* other machines... */
22155 # if !defined(M68K) && !defined(VAX) && !defined(RT)
22156 # if !defined(SPARC) && !defined(I386) && !defined(NS32K)
22157 -# if !(defined(POWERPC) && defined(LINUX)) && !defined(UTS4)
22158 +# if !defined(POWERPC) && !defined(UTS4)
22159 # if !defined(PJ) && !(defined(MIPS) && defined(LINUX))
22162 @@ -386,7 +385,7 @@
22166 -#endif /* !USE_GENERIC_PUSH_REGS && !USE_ASM_PUSH_REGS */
22167 +#endif /* !USE_GENERIC_PUSH_REGS */
22169 #if defined(USE_GENERIC_PUSH_REGS)
22170 void GC_generic_push_regs(cold_gc_frame)
22171 diff -Nur ../boehm-gc/malloc.c boehm-gc/malloc.c
22172 --- ../boehm-gc/malloc.c Mon May 26 12:48:52 2003
22173 +++ boehm-gc/malloc.c Mon Feb 11 20:37:53 2002
22174 @@ -182,7 +182,6 @@
22178 - if (GC_have_errors) GC_print_all_errors();
22179 GC_INVOKE_FINALIZERS();
22180 if (SMALL_OBJ(lb)) {
22182 @@ -295,11 +294,6 @@
22183 return(GENERAL_MALLOC((word)lb, NORMAL));
22185 /* See above comment on signals. */
22186 - GC_ASSERT(0 == obj_link(op)
22187 - || (word)obj_link(op)
22188 - <= (word)GC_greatest_plausible_heap_addr
22189 - && (word)obj_link(op)
22190 - >= (word)GC_least_plausible_heap_addr);
22191 *opp = obj_link(op);
22193 GC_words_allocd += lw;
22194 @@ -344,7 +338,6 @@
22195 return((GC_PTR)REDIRECT_MALLOC(n*lb));
22199 # include <string.h>
22201 char *strdup(const char *s)
22202 @@ -353,16 +346,11 @@
22206 - size_t len = strlen(s) + 1;
22207 + size_t len = strlen + 1;
22208 char * result = ((char *)REDIRECT_MALLOC(len+1));
22209 BCOPY(s, result, len+1);
22212 -#endif /* !defined(strdup) */
22213 - /* If strdup is macro defined, we assume that it actually calls malloc, */
22214 - /* and thus the right thing will happen even without overriding it. */
22215 - /* This seems to be true on most Linux systems. */
22217 # endif /* REDIRECT_MALLOC */
22219 /* Explicitly deallocate an object p. */
22220 @@ -385,7 +373,6 @@
22221 /* Required by ANSI. It's not my fault ... */
22224 - GC_ASSERT(GC_base(p) == p);
22225 # if defined(REDIRECT_MALLOC) && \
22226 (defined(GC_SOLARIS_THREADS) || defined(GC_LINUX_THREADS) \
22227 || defined(__MINGW32__)) /* Should this be MSWIN32 in general? */
22228 @@ -467,10 +454,7 @@
22230 #endif /* THREADS */
22232 -# if defined(REDIRECT_MALLOC) && !defined(REDIRECT_FREE)
22233 -# define REDIRECT_FREE GC_free
22235 -# ifdef REDIRECT_FREE
22236 +# ifdef REDIRECT_MALLOC
22238 void free(GC_PTR p)
22240 @@ -479,7 +463,7 @@
22243 # ifndef IGNORE_FREE
22244 - REDIRECT_FREE(p);
22248 # endif /* REDIRECT_MALLOC */
22249 diff -Nur ../boehm-gc/mallocx.c boehm-gc/mallocx.c
22250 --- ../boehm-gc/mallocx.c Mon May 26 12:48:52 2003
22251 +++ boehm-gc/mallocx.c Fri Aug 17 18:04:43 2001
22252 @@ -142,11 +142,7 @@
22256 -# if defined(REDIRECT_MALLOC) && !defined(REDIRECT_REALLOC)
22257 -# define REDIRECT_REALLOC GC_realloc
22260 -# ifdef REDIRECT_REALLOC
22261 +# if defined(REDIRECT_MALLOC) || defined(REDIRECT_REALLOC)
22263 GC_PTR realloc(GC_PTR p, size_t lb)
22265 @@ -155,9 +151,13 @@
22269 - return(REDIRECT_REALLOC(p, lb));
22270 +# ifdef REDIRECT_REALLOC
22271 + return(REDIRECT_REALLOC(p, lb));
22273 + return(GC_realloc(p, lb));
22276 -# endif /* REDIRECT_REALLOC */
22277 +# endif /* REDIRECT_MALLOC */
22280 /* The same thing, except caller does not hold allocation lock. */
22281 @@ -177,7 +177,6 @@
22282 lw = ROUNDED_UP_WORDS(lb);
22283 n_blocks = OBJ_SZ_TO_BLOCKS(lw);
22284 init = GC_obj_kinds[k].ok_init;
22285 - if (GC_have_errors) GC_print_all_errors();
22286 GC_INVOKE_FINALIZERS();
22289 @@ -287,7 +286,6 @@
22293 - if (GC_have_errors) GC_print_all_errors();
22294 GC_INVOKE_FINALIZERS();
22297 @@ -356,7 +354,6 @@
22300 lw = ALIGNED_WORDS(lb);
22301 - if (GC_have_errors) GC_print_all_errors();
22302 GC_INVOKE_FINALIZERS();
22305 @@ -378,7 +375,6 @@
22306 while ((hbp = *rlh) != 0) {
22308 *rlh = hhdr -> hb_next;
22309 - hhdr -> hb_last_reclaimed = (unsigned short) GC_gc_no;
22310 # ifdef PARALLEL_MARK
22312 signed_word my_words_allocd_tmp = GC_words_allocd_tmp;
22313 @@ -578,44 +574,6 @@
22314 return((GC_PTR) op);
22319 -/* Not well tested nor integrated. */
22320 -/* Debug version is tricky and currently missing. */
22321 -#include <limits.h>
22323 -GC_PTR GC_memalign(size_t align, size_t lb)
22329 -# ifdef ALIGN_DOUBLE
22330 - if (align <= WORDS_TO_BYTES(2) && lb > align) return GC_malloc(lb);
22332 - if (align <= WORDS_TO_BYTES(1)) return GC_malloc(lb);
22333 - if (align >= HBLKSIZE/2 || lb >= HBLKSIZE/2) {
22334 - if (align > HBLKSIZE) return GC_oom_fn(LONG_MAX-1024) /* Fail */;
22335 - return GC_malloc(lb <= HBLKSIZE? HBLKSIZE : lb);
22336 - /* Will be HBLKSIZE aligned. */
22338 - /* We could also try to make sure that the real rounded-up object size */
22339 - /* is a multiple of align. That would be correct up to HBLKSIZE. */
22340 - new_lb = lb + align - 1;
22341 - result = GC_malloc(new_lb);
22342 - offset = (word)result % align;
22343 - if (offset != 0) {
22344 - offset = align - offset;
22345 - if (!GC_all_interior_pointers) {
22346 - if (offset >= VALID_OFFSET_SZ) return GC_malloc(HBLKSIZE);
22347 - GC_register_displacement(offset);
22350 - result = (GC_PTR) ((ptr_t)result + offset);
22351 - GC_ASSERT((word)result % align == 0);
22356 # ifdef ATOMIC_UNCOLLECTABLE
22357 /* Allocate lb bytes of pointerfree, untraced, uncollectable data */
22358 diff -Nur ../boehm-gc/mark.c boehm-gc/mark.c
22359 --- ../boehm-gc/mark.c Mon May 26 12:48:52 2003
22360 +++ boehm-gc/mark.c Fri Mar 29 14:52:12 2002
22362 # include <stdio.h>
22363 # include "private/gc_pmark.h"
22365 -#if defined(MSWIN32) && defined(__GNUC__)
22366 -# include <excpt.h>
22369 /* We put this here to minimize the risk of inlining. */
22372 @@ -265,20 +261,20 @@
22373 /* remains valid until all marking is complete. */
22374 /* A zero value indicates that it's OK to miss some */
22375 /* register values. */
22376 -/* We hold the allocation lock. In the case of */
22377 -/* incremental collection, the world may not be stopped.*/
22379 - /* For win32, this is called after we establish a structured */
22380 - /* exception handler, in case Windows unmaps one of our root */
22381 - /* segments. See below. In either case, we acquire the */
22382 - /* allocator lock long before we get here. */
22383 - GC_bool GC_mark_some_inner(cold_gc_frame)
22384 - ptr_t cold_gc_frame;
22386 - GC_bool GC_mark_some(cold_gc_frame)
22387 - ptr_t cold_gc_frame;
22389 +GC_bool GC_mark_some(cold_gc_frame)
22390 +ptr_t cold_gc_frame;
22392 +#if defined(MSWIN32) && !defined(__GNUC__)
22393 + /* Windows 98 appears to asynchronously create and remove writable */
22394 + /* memory mappings, for reasons we haven't yet understood. Since */
22395 + /* we look for writable regions to determine the root set, we may */
22396 + /* try to mark from an address range that disappeared since we */
22397 + /* started the collection. Thus we have to recover from faults here. */
22398 + /* This code does not appear to be necessary for Windows 95/NT/2000. */
22399 + /* Note that this code should never generate an incremental GC write */
22402 +#endif /* defined(MSWIN32) && !defined(__GNUC__) */
22403 switch(GC_mark_state) {
22406 @@ -399,130 +395,23 @@
22407 ABORT("GC_mark_some: bad state");
22418 - EXCEPTION_REGISTRATION ex_reg;
22423 - static EXCEPTION_DISPOSITION mark_ex_handler(
22424 - struct _EXCEPTION_RECORD *ex_rec,
22426 - struct _CONTEXT *context,
22429 - if (ex_rec->ExceptionCode == STATUS_ACCESS_VIOLATION) {
22430 - ext_ex_regn *xer = (ext_ex_regn *)est_frame;
22432 - /* Unwind from the inner function assuming the standard */
22433 - /* function prologue. */
22434 - /* Assumes code has not been compiled with */
22435 - /* -fomit-frame-pointer. */
22436 - context->Esp = context->Ebp;
22437 - context->Ebp = *((DWORD *)context->Esp);
22438 - context->Esp = context->Esp - 8;
22440 - /* Resume execution at the "real" handler within the */
22441 - /* wrapper function. */
22442 - context->Eip = (DWORD )(xer->alt_path);
22444 - return ExceptionContinueExecution;
22447 - return ExceptionContinueSearch;
22450 -# endif /* __GNUC__ */
22453 - GC_bool GC_mark_some(cold_gc_frame)
22454 - ptr_t cold_gc_frame;
22459 - /* Windows 98 appears to asynchronously create and remove */
22460 - /* writable memory mappings, for reasons we haven't yet */
22461 - /* understood. Since we look for writable regions to */
22462 - /* determine the root set, we may try to mark from an */
22463 - /* address range that disappeared since we started the */
22464 - /* collection. Thus we have to recover from faults here. */
22465 - /* This code does not appear to be necessary for Windows */
22466 - /* 95/NT/2000. Note that this code should never generate */
22467 - /* an incremental GC write fault. */
22471 -# else /* __GNUC__ */
22473 - /* Manually install an exception handler since GCC does */
22474 - /* not yet support Structured Exception Handling (SEH) on */
22479 - er.alt_path = &&handle_ex;
22480 - er.ex_reg.handler = mark_ex_handler;
22481 - asm volatile ("movl %%fs:0, %0" : "=r" (er.ex_reg.prev));
22482 - asm volatile ("movl %0, %%fs:0" : : "r" (&er));
22484 -# endif /* __GNUC__ */
22486 - ret_val = GC_mark_some_inner(cold_gc_frame);
22490 - } __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
22491 - EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
22493 -# else /* __GNUC__ */
22495 - /* Prevent GCC from considering the following code unreachable */
22496 - /* and thus eliminating it. */
22497 - if (er.alt_path != 0)
22501 - /* Execution resumes from here on an access violation. */
22503 -# endif /* __GNUC__ */
22506 - if (GC_print_stats) {
22507 - GC_printf0("Caught ACCESS_VIOLATION in marker. "
22508 - "Memory mapping disappeared.\n");
22510 -# endif /* CONDPRINT */
22512 - /* We have bad roots on the stack. Discard mark stack. */
22513 - /* Rescan from marked objects. Redetermine roots. */
22514 - GC_invalidate_mark_state();
22521 +#if defined(MSWIN32) && !defined(__GNUC__)
22522 + } __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
22523 + EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
22525 + if (GC_print_stats) {
22526 + GC_printf0("Caught ACCESS_VIOLATION in marker. "
22527 + "Memory mapping disappeared.\n");
22530 -# else /* __GNUC__ */
22533 - /* Uninstall the exception handler */
22534 - asm volatile ("mov %0, %%fs:0" : : "r" (er.ex_reg.prev));
22536 -# endif /* __GNUC__ */
22539 +# endif /* CONDPRINT */
22540 + /* We have bad roots on the stack. Discard mark stack. */
22541 + /* Rescan from marked objects. Redetermine roots. */
22542 + GC_invalidate_mark_state();
22546 -#endif /* MSWIN32 */
22547 +#endif /* defined(MSWIN32) && !defined(__GNUC__) */
22551 GC_bool GC_mark_stack_empty()
22552 @@ -545,7 +434,13 @@
22553 /* for the large object. */
22554 /* - just return current if it does not point to a large object. */
22556 -ptr_t GC_find_start(current, hhdr, new_hdr_p)
22557 +# ifdef PRINT_BLACK_LIST
22558 + ptr_t GC_find_start(current, hhdr, new_hdr_p, source)
22561 + ptr_t GC_find_start(current, hhdr, new_hdr_p)
22564 register ptr_t current;
22565 register hdr *hhdr, **new_hdr_p;
22567 @@ -573,6 +468,7 @@
22574 void GC_invalidate_mark_state()
22575 @@ -650,8 +546,8 @@
22576 /* Large length. */
22577 /* Process part of the range to avoid pushing too much on the */
22579 - GC_ASSERT(descr < (word)GC_greatest_plausible_heap_addr
22580 - - (word)GC_least_plausible_heap_addr);
22581 + GC_ASSERT(descr < GC_greatest_plausible_heap_addr
22582 + - GC_least_plausible_heap_addr);
22583 # ifdef PARALLEL_MARK
22584 # define SHARE_BYTES 2048
22585 if (descr > SHARE_BYTES && GC_parallel
22586 @@ -682,7 +578,6 @@
22587 while (descr != 0) {
22588 if ((signed_word)descr < 0) {
22589 current = *current_p;
22590 - FIXUP_POINTER(current);
22591 if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
22593 HC_PUSH_CONTENTS((ptr_t)current, mark_stack_top,
22594 @@ -757,7 +652,6 @@
22595 PREFETCH((ptr_t)limit - PREF_DIST*CACHE_LINE_SIZE);
22596 GC_ASSERT(limit >= current_p);
22598 - FIXUP_POINTER(deferred);
22599 limit = (word *)((char *)limit - ALIGNMENT);
22600 if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
22601 PREFETCH(deferred);
22602 @@ -767,7 +661,6 @@
22603 /* Unroll once, so we don't do too many of the prefetches */
22604 /* based on limit. */
22606 - FIXUP_POINTER(deferred);
22607 limit = (word *)((char *)limit - ALIGNMENT);
22608 if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
22609 PREFETCH(deferred);
22610 @@ -782,7 +675,6 @@
22611 /* Since HC_PUSH_CONTENTS expands to a lot of code, */
22613 current = *current_p;
22614 - FIXUP_POINTER(current);
22615 PREFETCH((ptr_t)current_p + PREF_DIST*CACHE_LINE_SIZE);
22616 if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
22617 /* Prefetch the contents of the object we just pushed. It's */
22618 @@ -834,33 +726,22 @@
22619 mse *top = local - 1;
22622 - /* Make sure that prior writes to the mark stack are visible. */
22623 - /* On some architectures, the fact that the reads are */
22624 - /* volatile should suffice. */
22625 -# if !defined(IA64) && !defined(HP_PA) && !defined(I386)
22626 - GC_memory_barrier();
22628 GC_ASSERT(high >= low-1 && high - low + 1 <= GC_mark_stack_size);
22629 for (p = low; p <= high && i <= max; ++p) {
22630 word descr = *(volatile word *) &(p -> mse_descr);
22631 - /* In the IA64 memory model, the following volatile store is */
22632 - /* ordered after this read of descr. Thus a thread must read */
22633 - /* the original nonzero value. HP_PA appears to be similar, */
22634 - /* and if I'm reading the P4 spec correctly, X86 is probably */
22635 - /* also OK. In some other cases we need a barrier. */
22636 -# if !defined(IA64) && !defined(HP_PA) && !defined(I386)
22637 - GC_memory_barrier();
22640 *(volatile word *) &(p -> mse_descr) = 0;
22641 - /* More than one thread may get this entry, but that's only */
22642 - /* a minor performance problem. */
22644 top -> mse_descr = descr;
22645 top -> mse_start = p -> mse_start;
22646 GC_ASSERT( top -> mse_descr & GC_DS_TAGS != GC_DS_LENGTH ||
22647 top -> mse_descr < GC_greatest_plausible_heap_addr
22648 - GC_least_plausible_heap_addr);
22649 + /* There is no synchronization here. We assume that at */
22650 + /* least one thread will see the original descriptor. */
22651 + /* Otherwise we need a barrier. */
22652 + /* More than one thread may get this entry, but that's only */
22653 + /* a minor performance problem. */
22654 /* If this is a big object, count it as */
22655 /* size/256 + 1 objects. */
22657 @@ -897,7 +778,7 @@
22658 BCOPY(low, my_start, stack_size * sizeof(mse));
22659 GC_ASSERT(GC_mark_stack_top = my_top);
22660 # if !defined(IA64) && !defined(HP_PA)
22661 - GC_memory_barrier();
22662 + GC_memory_write_barrier();
22664 /* On IA64, the volatile write acts as a release barrier. */
22665 GC_mark_stack_top = my_top + stack_size;
22666 @@ -1461,8 +1342,8 @@
22667 # define GC_least_plausible_heap_addr least_ha
22669 if (top == 0) return;
22670 - /* check all pointers in range and push if they appear */
22671 - /* to be valid. */
22672 + /* check all pointers in range and put in push if they appear */
22673 + /* to be valid. */
22674 lim = t - 1 /* longword */;
22675 for (p = b; p <= lim; p = (word *)(((char *)p) + ALIGNMENT)) {
22677 @@ -1485,7 +1366,7 @@
22679 ptr_t cold_gc_frame;
22681 - if (!NEED_FIXUP_POINTER && GC_all_interior_pointers) {
22682 + if (GC_all_interior_pointers) {
22683 # define EAGER_BYTES 1024
22684 /* Push the hot end of the stack eagerly, so that register values */
22685 /* saved inside GC frames are marked before they disappear. */
22686 @@ -1494,7 +1375,6 @@
22687 GC_push_all_stack(bottom, top);
22690 - GC_ASSERT(bottom <= cold_gc_frame && cold_gc_frame <= top);
22691 # ifdef STACK_GROWS_DOWN
22692 GC_push_all(cold_gc_frame - sizeof(ptr_t), top);
22693 GC_push_all_eager(bottom, cold_gc_frame);
22694 @@ -1515,7 +1395,7 @@
22698 - if (!NEED_FIXUP_POINTER && GC_all_interior_pointers) {
22699 + if (GC_all_interior_pointers) {
22700 GC_push_all(bottom, top);
22702 GC_push_all_eager(bottom, top);
22703 diff -Nur ../boehm-gc/mark_rts.c boehm-gc/mark_rts.c
22704 --- ../boehm-gc/mark_rts.c Mon May 26 12:48:52 2003
22705 +++ boehm-gc/mark_rts.c Mon Mar 3 22:38:29 2003
22706 @@ -275,72 +275,33 @@
22709 /* Internal use only; lock held. */
22710 -static void GC_remove_root_at_pos(i)
22713 - GC_root_size -= (GC_static_roots[i].r_end - GC_static_roots[i].r_start);
22714 - GC_static_roots[i].r_start = GC_static_roots[n_root_sets-1].r_start;
22715 - GC_static_roots[i].r_end = GC_static_roots[n_root_sets-1].r_end;
22716 - GC_static_roots[i].r_tmp = GC_static_roots[n_root_sets-1].r_tmp;
22720 -#if !defined(MSWIN32) && !defined(MSWINCE)
22721 -static void GC_rebuild_root_index()
22725 - for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
22726 - for (i = 0; i < n_root_sets; i++)
22727 - add_roots_to_index(GC_static_roots + i);
22731 -/* Internal use only; lock held. */
22732 void GC_remove_tmp_roots()
22736 for (i = 0; i < n_root_sets; ) {
22737 if (GC_static_roots[i].r_tmp) {
22738 - GC_remove_root_at_pos(i);
22740 + (GC_static_roots[i].r_end - GC_static_roots[i].r_start);
22741 + GC_static_roots[i].r_start = GC_static_roots[n_root_sets-1].r_start;
22742 + GC_static_roots[i].r_end = GC_static_roots[n_root_sets-1].r_end;
22743 + GC_static_roots[i].r_tmp = GC_static_roots[n_root_sets-1].r_tmp;
22749 - #if !defined(MSWIN32) && !defined(MSWINCE)
22750 - GC_rebuild_root_index();
22754 -#if !defined(MSWIN32) && !defined(MSWINCE)
22755 -void GC_remove_roots(b, e)
22756 -char * b; char * e;
22760 - DISABLE_SIGNALS();
22762 - GC_remove_roots_inner(b, e);
22764 - ENABLE_SIGNALS();
22767 -/* Should only be called when the lock is held */
22768 -void GC_remove_roots_inner(b,e)
22769 -char * b; char * e;
22772 - for (i = 0; i < n_root_sets; ) {
22773 - if (GC_static_roots[i].r_start >= (ptr_t)b && GC_static_roots[i].r_end <= (ptr_t)e) {
22774 - GC_remove_root_at_pos(i);
22778 +# if !defined(MSWIN32) && !defined(MSWINCE)
22782 + for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
22783 + for (i = 0; i < n_root_sets; i++)
22784 + add_roots_to_index(GC_static_roots + i);
22786 - GC_rebuild_root_index();
22790 -#endif /* !defined(MSWIN32) && !defined(MSWINCE) */
22792 #if defined(MSWIN32) || defined(_WIN32_WCE_EMULATION)
22793 /* Workaround for the OS mapping and unmapping behind our back: */
22794 @@ -612,11 +573,8 @@
22796 /* Mark thread local free lists, even if their mark */
22797 /* descriptor excludes the link field. */
22798 - /* If the world is not stopped, this is unsafe. It is */
22799 - /* also unnecessary, since we will do this again with the */
22800 - /* world stopped. */
22801 # ifdef THREAD_LOCAL_ALLOC
22802 - if (GC_world_stopped) GC_mark_thread_local_free_lists();
22803 + GC_mark_thread_local_free_lists();
22807 diff -Nur ../boehm-gc/misc.c boehm-gc/misc.c
22808 --- ../boehm-gc/misc.c Mon May 26 12:48:52 2003
22809 +++ boehm-gc/misc.c Mon Mar 3 22:38:30 2003
22811 # ifdef GC_SOLARIS_THREADS
22812 mutex_t GC_allocate_ml; /* Implicitly initialized. */
22814 -# if defined(GC_WIN32_THREADS)
22815 -# if defined(GC_PTHREADS)
22816 - pthread_mutex_t GC_allocate_ml = PTHREAD_MUTEX_INITIALIZER;
22817 -# elif defined(GC_DLL)
22818 +# ifdef GC_WIN32_THREADS
22819 +# if !defined(GC_NOT_DLL) && (defined(_DLL) || defined(GC_DLL))
22820 __declspec(dllexport) CRITICAL_SECTION GC_allocate_ml;
22822 CRITICAL_SECTION GC_allocate_ml;
22827 -/* Dont unnecessarily call GC_register_main_static_data() in case */
22828 -/* dyn_load.c isn't linked in. */
22829 +/* Dont unnecessarily call GC_register_main_static_data() in case */
22830 +/* dyn_load.c isn't linked in. */
22831 #ifdef DYNAMIC_LOADING
22832 # define GC_REGISTER_MAIN_STATIC_DATA() GC_register_main_static_data()
22835 /* defined here so we don't have to load debug_malloc.o */
22837 void (*GC_check_heap) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
22838 -void (*GC_print_all_smashed) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
22840 void (*GC_start_call_back) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
22842 @@ -112,10 +109,6 @@
22844 GC_bool GC_print_back_height = 0;
22846 -#ifndef NO_DEBUGGING
22847 - GC_bool GC_dump_regularly = 0; /* Generate regular debugging dumps. */
22851 int GC_find_leak = 1;
22853 @@ -144,13 +137,6 @@
22855 extern signed_word GC_mem_found;
22857 -void * GC_project2(arg1, arg2)
22864 # ifdef MERGE_SIZES
22865 /* Set things up so that GC_size_map[i] >= words(i), */
22866 /* but not too much bigger */
22867 @@ -469,7 +455,7 @@
22871 -#if defined(GC_WIN32_THREADS) && !defined(GC_PTHREADS)
22873 if (!GC_is_initialized) InitializeCriticalSection(&GC_allocate_ml);
22874 #endif /* MSWIN32 */
22876 @@ -487,15 +473,6 @@
22877 GC_init_parallel();
22879 # endif /* PARALLEL_MARK || THREAD_LOCAL_ALLOC */
22881 -# if defined(DYNAMIC_LOADING) && defined(DARWIN)
22883 - /* This must be called WITHOUT the allocation lock held
22884 - and before any threads are created */
22885 - extern void GC_init_dyld();
22891 #if defined(MSWIN32) || defined(MSWINCE)
22892 @@ -508,22 +485,6 @@
22894 extern void GC_setpagesize();
22898 -extern GC_bool GC_no_win32_dlls;
22900 -# define GC_no_win32_dlls FALSE
22903 -void GC_exit_check GC_PROTO((void))
22908 -#ifdef SEARCH_FOR_DATA_START
22909 - extern void GC_init_linux_data_start GC_PROTO((void));
22914 extern void GC_set_and_save_fault_handler GC_PROTO((void (*handler)(int)));
22915 @@ -534,23 +495,12 @@
22916 GC_err_printf1("Caught signal %d: looping in handler\n", sig);
22921 -static GC_bool installed_looping_handler = FALSE;
22923 -void maybe_install_looping_handler()
22925 - /* Install looping handler before the write fault handler, so we */
22926 - /* handle write faults correctly. */
22927 - if (!installed_looping_handler && 0 != GETENV("GC_LOOP_ON_ABORT")) {
22928 - GC_set_and_save_fault_handler(looping_handler);
22929 - installed_looping_handler = TRUE;
22933 -#else /* !UNIX_LIKE */
22935 -# define maybe_install_looping_handler()
22938 +extern GC_bool GC_no_win32_dlls;
22940 +# define GC_no_win32_dlls FALSE
22943 void GC_init_inner()
22944 @@ -565,21 +515,14 @@
22945 GC_print_stats = 1;
22947 # if defined(MSWIN32) || defined(MSWINCE)
22948 - InitializeCriticalSection(&GC_write_cs);
22949 + InitializeCriticalSection(&GC_write_cs);
22952 if (0 != GETENV("GC_PRINT_STATS")) {
22953 GC_print_stats = 1;
22955 -# ifndef NO_DEBUGGING
22956 - if (0 != GETENV("GC_DUMP_REGULARLY")) {
22957 - GC_dump_regularly = 1;
22960 if (0 != GETENV("GC_FIND_LEAK")) {
22963 - atexit(GC_exit_check);
22966 if (0 != GETENV("GC_ALL_INTERIOR_POINTERS")) {
22967 GC_all_interior_pointers = 1;
22968 @@ -617,7 +560,11 @@
22972 - maybe_install_looping_handler();
22974 + if (0 != GETENV("GC_LOOP_ON_ABORT")) {
22975 + GC_set_and_save_fault_handler(looping_handler);
22978 /* Adjust normal object descriptor for extra allocation. */
22979 if (ALIGNMENT > GC_DS_TAGS && EXTRA_BYTES != 0) {
22980 GC_obj_kinds[NORMAL].ok_descriptor = ((word)(-ALIGNMENT) | GC_DS_LENGTH);
22981 @@ -652,21 +599,11 @@
22982 # if defined(LINUX) && defined(IA64)
22983 GC_register_stackbottom = GC_get_register_stack_base();
22986 -# if defined(LINUX) && defined(IA64)
22987 - if (GC_register_stackbottom == 0) {
22988 - WARN("GC_register_stackbottom should be set with GC_stackbottom", 0);
22989 - /* The following is likely to fail, since we rely on */
22990 - /* alignment properties that may not hold with a user set */
22991 - /* GC_stackbottom. */
22992 - GC_register_stackbottom = GC_get_register_stack_base();
22997 - GC_STATIC_ASSERT(sizeof (ptr_t) == sizeof(word));
22998 - GC_STATIC_ASSERT(sizeof (signed_word) == sizeof(word));
22999 - GC_STATIC_ASSERT(sizeof (struct hblk) == HBLKSIZE);
23000 + GC_ASSERT(sizeof (ptr_t) == sizeof(word));
23001 + GC_ASSERT(sizeof (signed_word) == sizeof(word));
23002 + GC_ASSERT(sizeof (struct hblk) == HBLKSIZE);
23004 # if defined(STACK_GROWS_UP) && defined(STACK_GROWS_DOWN)
23006 @@ -705,18 +642,6 @@
23007 initial_heap_sz = divHBLKSZ(initial_heap_sz);
23011 - char * sz_str = GETENV("GC_MAXIMUM_HEAP_SIZE");
23012 - if (sz_str != NULL) {
23013 - word max_heap_sz = (word)atol(sz_str);
23014 - if (max_heap_sz < initial_heap_sz * HBLKSIZE) {
23015 - WARN("Bad maximum heap size %s - ignoring it.\n",
23018 - if (0 == GC_max_retries) GC_max_retries = 2;
23019 - GC_set_max_heap_size(max_heap_sz);
23022 if (!GC_expand_hp_inner(initial_heap_sz)) {
23023 GC_err_printf0("Can't start up: not enough memory\n");
23025 @@ -752,7 +677,6 @@
23026 GC_incremental = TRUE;
23028 # endif /* !SMALL_CONFIG */
23030 /* Get black list set up and/or incrmental GC started */
23031 if (!GC_dont_precollect || GC_incremental) GC_gcollect_inner();
23032 GC_is_initialized = TRUE;
23033 @@ -788,9 +712,8 @@
23034 if (GC_incremental) goto out;
23036 if (GC_no_win32_dlls) goto out;
23037 -# ifndef GC_SOLARIS_THREADS
23038 - maybe_install_looping_handler(); /* Before write fault handler! */
23040 +# ifndef GC_SOLARIS_THREADS
23043 if (!GC_is_initialized) {
23045 @@ -1009,17 +932,6 @@
23049 -# if defined(__STDC__) || defined(__cplusplus)
23050 - GC_word GC_set_free_space_divisor (GC_word value)
23052 - GC_word GC_set_free_space_divisor (value)
23056 - GC_word old = GC_free_space_divisor;
23057 - GC_free_space_divisor = value;
23063 @@ -1046,18 +958,122 @@
23067 +#ifdef NEED_CALLINFO
23069 +#ifdef HAVE_BUILTIN_BACKTRACE
23070 +# include <execinfo.h>
23072 +# include <unistd.h>
23076 +void GC_print_callers (info)
23077 +struct callinfo info[NFRAMES];
23082 + GC_err_printf0("\tCaller at allocation:\n");
23084 + GC_err_printf0("\tCall chain at allocation:\n");
23086 + for (i = 0; i < NFRAMES; i++) {
23087 + if (info[i].ci_pc == 0) break;
23092 + GC_err_printf0("\t\targs: ");
23093 + for (j = 0; j < NARGS; j++) {
23094 + if (j != 0) GC_err_printf0(", ");
23095 + GC_err_printf2("%d (0x%X)", ~(info[i].ci_arg[j]),
23096 + ~(info[i].ci_arg[j]));
23098 + GC_err_printf0("\n");
23101 +# if defined(HAVE_BUILTIN_BACKTRACE) && !defined(REDIRECT_MALLOC)
23102 + /* Unfortunately backtrace_symbols calls malloc, which makes */
23103 + /* it dangersous if that has been redirected. */
23105 + char **sym_name =
23106 + backtrace_symbols((void **)(&(info[i].ci_pc)), 1);
23107 + char *name = sym_name[0];
23108 + GC_bool found_it = (strchr(name, '(') != 0);
23112 +# define EXE_SZ 100
23113 + static char exe_name[EXE_SZ];
23114 +# define CMD_SZ 200
23115 + char cmd_buf[CMD_SZ];
23116 +# define RESULT_SZ 200
23117 + static char result_buf[RESULT_SZ];
23118 + size_t result_len;
23119 + static GC_bool found_exe_name = FALSE;
23120 + static GC_bool will_fail = FALSE;
23122 + /* Unfortunately, this is the common case for the */
23123 + /* main executable. */
23124 + /* Try to get it via a hairy and expensive scheme. */
23125 + /* First we get the name of the executable: */
23126 + if (will_fail) goto out;
23127 + if (!found_exe_name) {
23128 + ret_code = readlink("/proc/self/exe", exe_name, EXE_SZ);
23129 + if (ret_code < 0 || ret_code >= EXE_SZ || exe_name[0] != '/') {
23130 + will_fail = TRUE; /* Dont try again. */
23133 + exe_name[ret_code] = '\0';
23134 + found_exe_name = TRUE;
23136 + /* Then we use popen to start addr2line -e <exe> <addr> */
23137 + /* There are faster ways to do this, but hopefully this */
23138 + /* isn't time critical. */
23139 + sprintf(cmd_buf, "/usr/bin/addr2line -e %s 0x%lx", exe_name,
23140 + (unsigned long)info[i].ci_pc);
23141 + pipe = popen(cmd_buf, "r");
23142 + if (pipe < 0 || fgets(result_buf, RESULT_SZ, pipe) == 0) {
23143 + will_fail = TRUE;
23146 + result_len = strlen(result_buf);
23147 + if (result_buf[result_len - 1] == '\n') --result_len;
23148 + if (result_buf[0] == '?'
23149 + || result_buf[result_len-2] == ':'
23150 + && result_buf[result_len-1] == '0')
23152 + if (result_len < RESULT_SZ - 25) {
23153 + /* Add in hex address */
23154 + sprintf(result_buf + result_len, " [0x%lx]",
23155 + (unsigned long)info[i].ci_pc);
23157 + name = result_buf;
23162 + GC_err_printf1("\t\t%s\n", name);
23166 + GC_err_printf1("\t\t##PC##= 0x%lx\n", info[i].ci_pc);
23171 +#endif /* SAVE_CALL_CHAIN */
23173 +/* Needed by SRC_M3, gcj, and should perhaps be the official interface */
23174 +/* to GC_dont_gc. */
23189 #if !defined(NO_DEBUGGING)
23190 @@ -1072,8 +1088,6 @@
23191 GC_print_hblkfreelist();
23192 GC_printf0("\n***Blocks in use:\n");
23193 GC_print_block_list();
23194 - GC_printf0("\n***Finalization statistics:\n");
23195 - GC_print_finalization_stats();
23198 #endif /* NO_DEBUGGING */
23199 diff -Nur ../boehm-gc/os_dep.c boehm-gc/os_dep.c
23200 --- ../boehm-gc/os_dep.c Sat May 31 14:46:38 2003
23201 +++ boehm-gc/os_dep.c Fri Jul 19 01:54:43 2002
23202 @@ -80,17 +80,14 @@
23203 # define NEED_FIND_LIMIT
23206 -#if defined(FREEBSD) && defined(I386)
23207 -# include <machine/trap.h>
23208 -# if !defined(PCR)
23209 -# define NEED_FIND_LIMIT
23213 #ifdef NEED_FIND_LIMIT
23214 # include <setjmp.h>
23217 +#if defined(FREEBSD) && defined(I386)
23218 +# include <machine/trap.h>
23222 # define GC_AMIGA_DEF
23223 # include "AmigaOS.c"
23224 @@ -132,11 +129,6 @@
23225 # define jmp_buf sigjmp_buf
23229 -/* for get_etext and friends */
23230 -#include <mach-o/getsect.h>
23234 /* Apparently necessary for djgpp 2.01. May cause problems with */
23235 /* other versions. */
23236 @@ -155,155 +147,6 @@
23237 # define OPT_PROT_EXEC 0
23240 -#if defined(LINUX) && \
23241 - (defined(USE_PROC_FOR_LIBRARIES) || defined(IA64) || !defined(SMALL_CONFIG))
23243 -/* We need to parse /proc/self/maps, either to find dynamic libraries, */
23244 -/* and/or to find the register backing store base (IA64). Do it once */
23249 -/* Repeatedly perform a read call until the buffer is filled or */
23250 -/* we encounter EOF. */
23251 -ssize_t GC_repeat_read(int fd, char *buf, size_t count)
23253 - ssize_t num_read = 0;
23256 - while (num_read < count) {
23257 - result = READ(fd, buf + num_read, count - num_read);
23258 - if (result < 0) return result;
23259 - if (result == 0) break;
23260 - num_read += result;
23266 - * Apply fn to a buffer containing the contents of /proc/self/maps.
23267 - * Return the result of fn or, if we failed, 0.
23270 -word GC_apply_to_maps(word (*fn)(char *))
23275 - char maps_temp[32768];
23278 - /* Read /proc/self/maps */
23279 - /* Note that we may not allocate, and thus can't use stdio. */
23280 - f = open("/proc/self/maps", O_RDONLY);
23281 - if (-1 == f) return 0;
23282 - /* stat() doesn't work for /proc/self/maps, so we have to
23283 - read it to find out how large it is... */
23286 - result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
23287 - if (result <= 0) return 0;
23288 - maps_size += result;
23289 - } while (result == sizeof(maps_temp));
23291 - if (maps_size > sizeof(maps_temp)) {
23292 - /* If larger than our buffer, close and re-read it. */
23294 - f = open("/proc/self/maps", O_RDONLY);
23295 - if (-1 == f) return 0;
23296 - maps_buf = alloca(maps_size);
23297 - if (NULL == maps_buf) return 0;
23298 - result = GC_repeat_read(f, maps_buf, maps_size);
23299 - if (result <= 0) return 0;
23301 - /* Otherwise use the fixed size buffer */
23302 - maps_buf = maps_temp;
23306 - maps_buf[result] = '\0';
23308 - /* Apply fn to result. */
23309 - return fn(maps_buf);
23312 -#endif /* Need GC_apply_to_maps */
23314 -#if defined(LINUX) && (defined(USE_PROC_FOR_LIBRARIES) || defined(IA64))
23316 -// GC_parse_map_entry parses an entry from /proc/self/maps so we can
23317 -// locate all writable data segments that belong to shared libraries.
23318 -// The format of one of these entries and the fields we care about
23320 -// XXXXXXXX-XXXXXXXX r-xp 00000000 30:05 260537 name of mapping...\n
23321 -// ^^^^^^^^ ^^^^^^^^ ^^^^ ^^
23322 -// start end prot maj_dev
23325 -// For 64 bit ABIs:
23328 -// The parser is called with a pointer to the entry and the return value
23329 -// is either NULL or is advanced to the next entry(the byte after the
23330 -// trailing '\n'.)
23332 -#if CPP_WORDSZ == 32
23333 -# define OFFSET_MAP_START 0
23334 -# define OFFSET_MAP_END 9
23335 -# define OFFSET_MAP_PROT 18
23336 -# define OFFSET_MAP_MAJDEV 32
23337 -# define ADDR_WIDTH 8
23340 -#if CPP_WORDSZ == 64
23341 -# define OFFSET_MAP_START 0
23342 -# define OFFSET_MAP_END 17
23343 -# define OFFSET_MAP_PROT 34
23344 -# define OFFSET_MAP_MAJDEV 56
23345 -# define ADDR_WIDTH 16
23349 - * Assign various fields of the first line in buf_ptr to *start, *end,
23350 - * *prot_buf and *maj_dev. Only *prot_buf may be set for unwritable maps.
23352 -char *GC_parse_map_entry(char *buf_ptr, word *start, word *end,
23353 - char *prot_buf, unsigned int *maj_dev)
23358 - if (buf_ptr == NULL || *buf_ptr == '\0') {
23362 - memcpy(prot_buf, buf_ptr+OFFSET_MAP_PROT, 4); // do the protections first
23363 - prot_buf[4] = '\0';
23365 - if (prot_buf[1] == 'w') { // we can skip all of this if it's not writable
23368 - buf_ptr[OFFSET_MAP_START+ADDR_WIDTH] = '\0';
23369 - *start = strtoul(tok, NULL, 16);
23371 - tok = buf_ptr+OFFSET_MAP_END;
23372 - buf_ptr[OFFSET_MAP_END+ADDR_WIDTH] = '\0';
23373 - *end = strtoul(tok, NULL, 16);
23375 - buf_ptr += OFFSET_MAP_MAJDEV;
23377 - while (*buf_ptr != ':') buf_ptr++;
23378 - *buf_ptr++ = '\0';
23379 - *maj_dev = strtoul(tok, NULL, 16);
23382 - while (*buf_ptr && *buf_ptr++ != '\n');
23387 -#endif /* Need to parse /proc/self/maps. */
23389 #if defined(SEARCH_FOR_DATA_START)
23390 /* The I386 case can be handled without a search. The Alpha case */
23391 /* used to be handled differently as well, but the rules changed */
23392 @@ -311,11 +154,6 @@
23393 /* cover all versions. */
23396 - /* Some Linux distributions arrange to define __data_start. Some */
23397 - /* define data_start as a weak symbol. The latter is technically */
23398 - /* broken, since the user program may define data_start, in which */
23399 - /* case we lose. Nonetheless, we try both, prefering __data_start. */
23400 - /* We assume gcc-compatible pragmas. */
23401 # pragma weak __data_start
23402 extern int __data_start[];
23403 # pragma weak data_start
23404 @@ -331,16 +169,16 @@
23407 /* Try the easy approaches first: */
23408 - if ((ptr_t)__data_start != 0) {
23409 - GC_data_start = (ptr_t)(__data_start);
23410 + if (__data_start != 0) {
23411 + GC_data_start = (ptr_t)__data_start;
23414 - if ((ptr_t)data_start != 0) {
23415 - GC_data_start = (ptr_t)(data_start);
23416 + if (data_start != 0) {
23417 + GC_data_start = (ptr_t)data_start;
23420 # endif /* LINUX */
23421 - GC_data_start = GC_find_limit((ptr_t)(_end), FALSE);
23422 + GC_data_start = GC_find_limit((ptr_t)_end, FALSE);
23426 @@ -703,7 +541,7 @@
23430 -# if defined(SUNOS5SIGS) || defined(IRIX5) \
23431 +# if defined(SUNOS5SIGS) || defined(IRIX5) \
23432 || defined(OSF1) || defined(HURD)
23433 struct sigaction act;
23435 @@ -763,68 +601,67 @@
23437 void GC_reset_fault_handler()
23439 -# if defined(SUNOS5SIGS) || defined(IRIX5) \
23440 - || defined(OSF1) || defined(HURD)
23441 - (void) sigaction(SIGSEGV, &old_segv_act, 0);
23442 -# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
23443 - || defined(HPUX) || defined(HURD)
23444 - (void) sigaction(SIGBUS, &old_bus_act, 0);
23447 - (void) signal(SIGSEGV, old_segv_handler);
23449 - (void) signal(SIGBUS, old_bus_handler);
23452 +# if defined(SUNOS5SIGS) || defined(IRIX5) \
23453 + || defined(OSF1) || defined(HURD)
23454 + (void) sigaction(SIGSEGV, &old_segv_act, 0);
23455 +# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
23456 + || defined(HPUX) || defined(HURD)
23457 + (void) sigaction(SIGBUS, &old_bus_act, 0);
23460 + (void) signal(SIGSEGV, old_segv_handler);
23462 + (void) signal(SIGBUS, old_bus_handler);
23467 /* Return the first nonaddressible location > p (up) or */
23468 - /* the smallest location q s.t. [q,p) is addressable (!up). */
23469 - /* We assume that p (up) or p-1 (!up) is addressable. */
23470 + /* the smallest location q s.t. [q,p] is addressible (!up). */
23471 ptr_t GC_find_limit(p, up)
23475 - static VOLATILE ptr_t result;
23476 - /* Needs to be static, since otherwise it may not be */
23477 - /* preserved across the longjmp. Can safely be */
23478 - /* static since it's only called once, with the */
23479 - /* allocation lock held. */
23482 - GC_setup_temporary_fault_handler();
23483 - if (setjmp(GC_jmp_buf) == 0) {
23484 - result = (ptr_t)(((word)(p))
23485 - & ~(MIN_PAGE_SIZE-1));
23488 - result += MIN_PAGE_SIZE;
23490 - result -= MIN_PAGE_SIZE;
23492 - GC_noop1((word)(*result));
23495 - GC_reset_fault_handler();
23497 + static VOLATILE ptr_t result;
23498 + /* Needs to be static, since otherwise it may not be */
23499 + /* preserved across the longjmp. Can safely be */
23500 + /* static since it's only called once, with the */
23501 + /* allocation lock held. */
23504 + GC_setup_temporary_fault_handler();
23505 + if (setjmp(GC_jmp_buf) == 0) {
23506 + result = (ptr_t)(((word)(p))
23507 + & ~(MIN_PAGE_SIZE-1));
23510 result += MIN_PAGE_SIZE;
23514 + result -= MIN_PAGE_SIZE;
23516 + GC_noop1((word)(*result));
23519 + GC_reset_fault_handler();
23521 + result += MIN_PAGE_SIZE;
23527 -#if defined(ECOS) || defined(NOSYS)
23528 - ptr_t GC_get_stack_base()
23530 - return STACKBOTTOM;
23533 +# if defined(ECOS) || defined(NOSYS)
23534 +ptr_t GC_get_stack_base()
23536 + return STACKBOTTOM;
23541 #ifdef LINUX_STACKBOTTOM
23543 #include <sys/types.h>
23544 #include <sys/stat.h>
23545 -#include <ctype.h>
23547 # define STAT_SKIP 27 /* Number of fields preceding startstack */
23548 /* field in /proc/self/stat */
23549 @@ -833,33 +670,6 @@
23550 extern ptr_t __libc_stack_end;
23553 - /* Try to read the backing store base from /proc/self/maps. */
23554 - /* We look for the writable mapping with a 0 major device, */
23555 - /* which is as close to our frame as possible, but below it.*/
23556 - static word backing_store_base_from_maps(char *maps)
23558 - char prot_buf[5];
23559 - char *buf_ptr = maps;
23561 - unsigned int maj_dev;
23562 - word current_best = 0;
23566 - buf_ptr = GC_parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
23567 - if (buf_ptr == NULL) return current_best;
23568 - if (prot_buf[1] == 'w' && maj_dev == 0) {
23569 - if (end < (word)(&dummy) && start > current_best) current_best = start;
23572 - return current_best;
23575 - static word backing_store_base_from_proc(void)
23577 - return GC_apply_to_maps(backing_store_base_from_maps);
23580 # pragma weak __libc_ia64_register_backing_store_base
23581 extern ptr_t __libc_ia64_register_backing_store_base;
23583 @@ -873,15 +683,9 @@
23584 /* Hence we check for both nonzero address and value. */
23585 return __libc_ia64_register_backing_store_base;
23587 - word result = backing_store_base_from_proc();
23588 - if (0 == result) {
23589 - /* Use dumb heuristics. Works only for default configuration. */
23590 - result = (word)GC_stackbottom - BACKING_STORE_DISPLACEMENT;
23591 - result += BACKING_STORE_ALIGNMENT - 1;
23592 - result &= ~(BACKING_STORE_ALIGNMENT - 1);
23593 - /* Verify that it's at least readable. If not, we goofed. */
23594 - GC_noop1(*(word *)result);
23596 + word result = (word)GC_stackbottom - BACKING_STORE_DISPLACEMENT;
23597 + result += BACKING_STORE_ALIGNMENT - 1;
23598 + result &= ~(BACKING_STORE_ALIGNMENT - 1);
23599 return (ptr_t)result;
23602 @@ -893,8 +697,11 @@
23603 /* using direct I/O system calls in order to avoid calling malloc */
23604 /* in case REDIRECT_MALLOC is defined. */
23605 # define STAT_BUF_SIZE 4096
23606 -# define STAT_READ read
23607 - /* Should probably call the real read, if read is wrapped. */
23608 +# if defined(GC_USE_LD_WRAP)
23609 +# define STAT_READ __real_read
23611 +# define STAT_READ read
23613 char stat_buf[STAT_BUF_SIZE];
23616 @@ -903,16 +710,7 @@
23618 /* First try the easy way. This should work for glibc 2.2 */
23619 if (0 != &__libc_stack_end) {
23621 - /* Some versions of glibc set the address 16 bytes too */
23622 - /* low while the initialization code is running. */
23623 - if (((word)__libc_stack_end & 0xfff) + 0x10 < 0x1000) {
23624 - return __libc_stack_end + 0x10;
23625 - } /* Otherwise it's not safe to add 16 bytes and we fall */
23626 - /* back to using /proc. */
23628 - return __libc_stack_end;
23630 + return __libc_stack_end;
23632 f = open("/proc/self/stat", O_RDONLY);
23633 if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) {
23634 @@ -966,11 +764,8 @@
23636 ptr_t GC_get_stack_base()
23638 -# if defined(HEURISTIC1) || defined(HEURISTIC2) || \
23639 - defined(LINUX_STACKBOTTOM) || defined(FREEBSD_STACKBOTTOM)
23646 # define STACKBOTTOM_ALIGNMENT_M1 ((word)STACK_GRAN - 1)
23648 @@ -1019,6 +814,7 @@
23650 # endif /* STACKBOTTOM */
23652 +# endif /* NOSYS ECOS */
23654 # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS */
23656 @@ -1128,14 +924,15 @@
23657 /* Unfortunately, we have to handle win32s very differently from NT, */
23658 /* Since VirtualQuery has very different semantics. In particular, */
23659 /* under win32s a VirtualQuery call on an unmapped page returns an */
23660 - /* invalid result. Under NT, GC_register_data_segments is a noop and */
23661 + /* invalid result. Under GC_register_data_segments is a noop and */
23662 /* all real work is done by GC_register_dynamic_libraries. Under */
23663 /* win32s, we cannot find the data segments associated with dll's. */
23664 - /* We register the main data segment here. */
23665 + /* We rgister the main data segment here. */
23667 + GC_bool GC_no_win32_dlls = TRUE; /* GCC can't do SEH, so we can't use VirtualQuery */
23669 GC_bool GC_no_win32_dlls = FALSE;
23670 - /* This used to be set for gcc, to avoid dealing with */
23671 - /* the structured exception handling issues. But we now have */
23672 - /* assembly code to do that right. */
23675 void GC_init_win32()
23677 @@ -1167,102 +964,36 @@
23682 -# ifndef REDIRECT_MALLOC
23683 - /* We maintain a linked list of AllocationBase values that we know */
23684 - /* correspond to malloc heap sections. Currently this is only called */
23685 - /* during a GC. But there is some hope that for long running */
23686 - /* programs we will eventually see most heap sections. */
23688 - /* In the long run, it would be more reliable to occasionally walk */
23689 - /* the malloc heap with HeapWalk on the default heap. But that */
23690 - /* apparently works only for NT-based Windows. */
23692 - /* In the long run, a better data structure would also be nice ... */
23693 - struct GC_malloc_heap_list {
23694 - void * allocation_base;
23695 - struct GC_malloc_heap_list *next;
23696 - } *GC_malloc_heap_l = 0;
23698 - /* Is p the base of one of the malloc heap sections we already know */
23700 - GC_bool GC_is_malloc_heap_base(ptr_t p)
23702 - struct GC_malloc_heap_list *q = GC_malloc_heap_l;
23705 - if (q -> allocation_base == p) return TRUE;
23711 - void *GC_get_allocation_base(void *p)
23713 - MEMORY_BASIC_INFORMATION buf;
23714 - DWORD result = VirtualQuery(p, &buf, sizeof(buf));
23715 - if (result != sizeof(buf)) {
23716 - ABORT("Weird VirtualQuery result");
23718 - return buf.AllocationBase;
23721 - size_t GC_max_root_size = 100000; /* Appr. largest root size. */
23723 - void GC_add_current_malloc_heap()
23725 - struct GC_malloc_heap_list *new_l =
23726 - malloc(sizeof(struct GC_malloc_heap_list));
23727 - void * candidate = GC_get_allocation_base(new_l);
23729 - if (new_l == 0) return;
23730 - if (GC_is_malloc_heap_base(candidate)) {
23731 - /* Try a little harder to find malloc heap. */
23732 - size_t req_size = 10000;
23734 - void *p = malloc(req_size);
23735 - if (0 == p) { free(new_l); return; }
23736 - candidate = GC_get_allocation_base(p);
23739 - } while (GC_is_malloc_heap_base(candidate)
23740 - && req_size < GC_max_root_size/10 && req_size < 500000);
23741 - if (GC_is_malloc_heap_base(candidate)) {
23742 - free(new_l); return;
23746 - if (GC_print_stats)
23747 - GC_printf1("Found new system malloc AllocationBase at 0x%lx\n",
23750 - new_l -> allocation_base = candidate;
23751 - new_l -> next = GC_malloc_heap_l;
23752 - GC_malloc_heap_l = new_l;
23754 -# endif /* REDIRECT_MALLOC */
23756 /* Is p the start of either the malloc heap, or of one of our */
23757 /* heap sections? */
23758 GC_bool GC_is_heap_base (ptr_t p)
23762 + register unsigned i;
23764 # ifndef REDIRECT_MALLOC
23765 - static word last_gc_no = -1;
23766 + static ptr_t malloc_heap_pointer = 0;
23768 - if (last_gc_no != GC_gc_no) {
23769 - GC_add_current_malloc_heap();
23770 - last_gc_no = GC_gc_no;
23771 + if (0 == malloc_heap_pointer) {
23772 + MEMORY_BASIC_INFORMATION buf;
23773 + void *pTemp = malloc( 1 );
23774 + register DWORD result = VirtualQuery(pTemp, &buf, sizeof(buf));
23779 + if (result != sizeof(buf)) {
23780 + ABORT("Weird VirtualQuery result");
23782 + malloc_heap_pointer = (ptr_t)(buf.AllocationBase);
23784 - if (GC_root_size > GC_max_root_size) GC_max_root_size = GC_root_size;
23785 - if (GC_is_malloc_heap_base(p)) return TRUE;
23786 + if (p == malloc_heap_pointer) return(TRUE);
23788 for (i = 0; i < GC_n_heap_bases; i++) {
23789 - if (GC_heap_bases[i] == p) return TRUE;
23790 + if (GC_heap_bases[i] == p) return(TRUE);
23797 @@ -1312,7 +1043,7 @@
23799 # if (defined(SVR4) || defined(AUX) || defined(DGUX) \
23800 || (defined(LINUX) && defined(SPARC))) && !defined(PCR)
23801 -ptr_t GC_SysVGetDataStart(max_page_size, etext_addr)
23802 +char * GC_SysVGetDataStart(max_page_size, etext_addr)
23806 @@ -1338,43 +1069,10 @@
23807 /* string constants in the text segment, but after etext. */
23808 /* Use plan B. Note that we now know there is a gap between */
23809 /* text and data segments, so plan A bought us something. */
23810 - result = (char *)GC_find_limit((ptr_t)(DATAEND), FALSE);
23811 + result = (char *)GC_find_limit((ptr_t)(DATAEND) - MIN_PAGE_SIZE, FALSE);
23813 - return((ptr_t)result);
23817 -# if defined(FREEBSD) && defined(I386) && !defined(PCR)
23818 -/* Its unclear whether this should be identical to the above, or */
23819 -/* whether it should apply to non-X86 architectures. */
23820 -/* For now we don't assume that there is always an empty page after */
23821 -/* etext. But in some cases there actually seems to be slightly more. */
23822 -/* This also deals with holes between read-only data and writable data. */
23823 -ptr_t GC_FreeBSDGetDataStart(max_page_size, etext_addr)
23824 -int max_page_size;
23827 - word text_end = ((word)(etext_addr) + sizeof(word) - 1)
23828 - & ~(sizeof(word) - 1);
23829 - /* etext rounded to word boundary */
23830 - VOLATILE word next_page = (text_end + (word)max_page_size - 1)
23831 - & ~((word)max_page_size - 1);
23832 - VOLATILE ptr_t result = (ptr_t)text_end;
23833 - GC_setup_temporary_fault_handler();
23834 - if (setjmp(GC_jmp_buf) == 0) {
23835 - /* Try reading at the address. */
23836 - /* This should happen before there is another thread. */
23837 - for (; next_page < (word)(DATAEND); next_page += (word)max_page_size)
23838 - *(VOLATILE char *)next_page;
23839 - GC_reset_fault_handler();
23841 - GC_reset_fault_handler();
23842 - /* As above, we go to plan B */
23843 - result = GC_find_limit((ptr_t)(DATAEND), FALSE);
23846 + return((char *)result);
23852 @@ -1388,7 +1086,8 @@
23854 void GC_register_data_segments()
23856 -# if !defined(PCR) && !defined(SRC_M3) && !defined(MACOS)
23857 +# if !defined(PCR) && !defined(SRC_M3) && !defined(NEXT) && !defined(MACOS) \
23858 + && !defined(MACOSX)
23859 # if defined(REDIRECT_MALLOC) && defined(GC_SOLARIS_THREADS)
23860 /* As of Solaris 2.3, the Solaris threads implementation */
23861 /* allocates the data structure for the initial thread with */
23862 @@ -1405,6 +1104,9 @@
23866 +# if !defined(PCR) && (defined(NEXT) || defined(MACOSX))
23867 + GC_add_roots_inner(DATASTART, (char *) get_end(), FALSE);
23869 # if defined(MACOS)
23871 # if defined(THINK_C)
23872 @@ -1514,28 +1216,18 @@
23873 ptr_t GC_unix_get_mem(bytes)
23876 + static GC_bool initialized = FALSE;
23879 static ptr_t last_addr = HEAP_START;
23881 -# ifndef USE_MMAP_ANON
23882 - static GC_bool initialized = FALSE;
23885 - if (!initialized) {
23886 - fd = open("/dev/zero", O_RDONLY);
23887 - fcntl(fd, F_SETFD, FD_CLOEXEC);
23888 - initialized = TRUE;
23892 + if (!initialized) {
23893 + fd = open("/dev/zero", O_RDONLY);
23894 + initialized = TRUE;
23896 if (bytes & (GC_page_size -1)) ABORT("Bad GET_MEM arg");
23897 -# ifdef USE_MMAP_ANON
23898 - result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23899 - GC_MMAP_FLAGS | MAP_ANON, -1, 0/* offset */);
23901 - result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23902 - GC_MMAP_FLAGS, fd, 0/* offset */);
23904 + result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23905 + GC_MMAP_FLAGS, fd, 0/* offset */);
23906 if (result == MAP_FAILED) return(0);
23907 last_addr = (ptr_t)result + bytes + GC_page_size - 1;
23908 last_addr = (ptr_t)((word)last_addr & ~(GC_page_size - 1));
23909 @@ -1630,15 +1322,7 @@
23910 result = (ptr_t) GlobalAlloc(0, bytes + HBLKSIZE);
23911 result = (ptr_t)(((word)result + HBLKSIZE) & ~(HBLKSIZE-1));
23913 - /* VirtualProtect only works on regions returned by a */
23914 - /* single VirtualAlloc call. Thus we allocate one */
23915 - /* extra page, which will prevent merging of blocks */
23916 - /* in separate regions, and eliminate any temptation */
23917 - /* to call VirtualProtect on a range spanning regions. */
23918 - /* This wastes a small amount of memory, and risks */
23919 - /* increased fragmentation. But better alternatives */
23920 - /* would require effort. */
23921 - result = (ptr_t) VirtualAlloc(NULL, bytes + 1,
23922 + result = (ptr_t) VirtualAlloc(NULL, bytes,
23923 MEM_COMMIT | MEM_RESERVE,
23924 PAGE_EXECUTE_READWRITE);
23926 @@ -1694,10 +1378,6 @@
23927 /* Reserve more pages */
23928 word res_bytes = (bytes + GC_sysinfo.dwAllocationGranularity-1)
23929 & ~(GC_sysinfo.dwAllocationGranularity-1);
23930 - /* If we ever support MPROTECT_VDB here, we will probably need to */
23931 - /* ensure that res_bytes is strictly > bytes, so that VirtualProtect */
23932 - /* never spans regions. It seems to be OK for a VirtualFree argument */
23933 - /* to span regions, so we should be OK for now. */
23934 result = (ptr_t) VirtualAlloc(NULL, res_bytes,
23935 MEM_RESERVE | MEM_TOP_DOWN,
23936 PAGE_EXECUTE_READWRITE);
23937 @@ -1828,7 +1508,6 @@
23940 if (-1 == zero_descr) zero_descr = open("/dev/zero", O_RDWR);
23941 - fcntl(zero_descr, F_SETFD, FD_CLOEXEC);
23942 if (0 == start_addr) return;
23943 result = mmap(start_addr, len, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23944 MAP_FIXED | MAP_PRIVATE, zero_descr, 0);
23945 @@ -2015,6 +1694,7 @@
23946 * make sure that other system calls are similarly protected
23947 * or write only to the stack.
23950 GC_bool GC_dirty_maintained = FALSE;
23952 # ifdef DEFAULT_VDB
23953 @@ -2028,9 +1708,6 @@
23954 /* Initialize virtual dirty bit implementation. */
23955 void GC_dirty_init()
23958 - GC_printf0("Initializing DEFAULT_VDB...\n");
23960 GC_dirty_maintained = TRUE;
23963 @@ -2099,21 +1776,17 @@
23965 * This implementation maintains dirty bits itself by catching write
23966 * faults and keeping track of them. We assume nobody else catches
23967 - * SIGBUS or SIGSEGV. We assume no write faults occur in system calls.
23968 - * This means that clients must ensure that system calls don't write
23969 - * to the write-protected heap. Probably the best way to do this is to
23970 - * ensure that system calls write at most to POINTERFREE objects in the
23971 - * heap, and do even that only if we are on a platform on which those
23972 - * are not protected. Another alternative is to wrap system calls
23973 - * (see example for read below), but the current implementation holds
23974 - * a lock across blocking calls, making it problematic for multithreaded
23976 + * SIGBUS or SIGSEGV. We assume no write faults occur in system calls
23977 + * except as a result of a read system call. This means clients must
23978 + * either ensure that system calls do not touch the heap, or must
23979 + * provide their own wrappers analogous to the one for read.
23980 * We assume the page size is a multiple of HBLKSIZE.
23981 - * We prefer them to be the same. We avoid protecting POINTERFREE
23982 - * objects only if they are the same.
23983 + * This implementation is currently SunOS 4.X and IRIX 5.X specific, though we
23984 + * tried to use portable code where easily possible. It is known
23985 + * not to work under a number of other systems.
23988 -# if !defined(MSWIN32) && !defined(MSWINCE) && !defined(DARWIN)
23989 +# if !defined(MSWIN32) && !defined(MSWINCE)
23991 # include <sys/mman.h>
23992 # include <signal.h>
23993 @@ -2132,23 +1805,6 @@
23998 - /* Using vm_protect (mach syscall) over mprotect (BSD syscall) seems to
23999 - decrease the likelihood of some of the problems described below. */
24000 - #include <mach/vm_map.h>
24001 - extern mach_port_t GC_task_self;
24002 - #define PROTECT(addr,len) \
24003 - if(vm_protect(GC_task_self,(vm_address_t)(addr),(vm_size_t)(len), \
24004 - FALSE,VM_PROT_READ) != KERN_SUCCESS) { \
24005 - ABORT("vm_portect failed"); \
24007 - #define UNPROTECT(addr,len) \
24008 - if(vm_protect(GC_task_self,(vm_address_t)(addr),(vm_size_t)(len), \
24009 - FALSE,VM_PROT_READ|VM_PROT_WRITE) != KERN_SUCCESS) { \
24010 - ABORT("vm_portect failed"); \
24015 # include <signal.h>
24017 @@ -2166,22 +1822,20 @@
24018 &protect_junk)) { \
24019 ABORT("un-VirtualProtect failed"); \
24021 -# endif /* !DARWIN */
24022 -# endif /* MSWIN32 || MSWINCE || DARWIN */
24026 #if defined(SUNOS4) || defined(FREEBSD)
24027 typedef void (* SIG_PF)();
24028 -#endif /* SUNOS4 || FREEBSD */
24031 #if defined(SUNOS5SIGS) || defined(OSF1) || defined(LINUX) \
24033 + || defined(MACOSX) || defined(HURD)
24035 typedef void (* SIG_PF)(int);
24037 typedef void (* SIG_PF)();
24039 -#endif /* SUNOS5SIGS || OSF1 || LINUX || HURD */
24042 #if defined(MSWIN32)
24043 typedef LPTOP_LEVEL_EXCEPTION_FILTER SIG_PF;
24045 @@ -2195,8 +1849,7 @@
24047 #if defined(IRIX5) || defined(OSF1) || defined(HURD)
24048 typedef void (* REAL_SIG_PF)(int, int, struct sigcontext *);
24049 -#endif /* IRIX5 || OSF1 || HURD */
24052 #if defined(SUNOS5SIGS)
24054 # define SIGINFO __siginfo
24055 @@ -2208,14 +1861,13 @@
24057 typedef void (* REAL_SIG_PF)();
24059 -#endif /* SUNOS5SIGS */
24063 # if __GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2
24064 typedef struct sigcontext s_c;
24065 # else /* glibc < 2.2 */
24066 # include <linux/version.h>
24067 -# if (LINUX_VERSION_CODE >= 0x20100) && !defined(M68K) || defined(ALPHA) || defined(ARM32)
24068 +# if (LINUX_VERSION_CODE >= 0x20100) && !defined(M68K) || defined(ALPHA)
24069 typedef struct sigcontext s_c;
24071 typedef struct sigcontext_struct s_c;
24072 @@ -2243,14 +1895,139 @@
24073 return (char *)faultaddr;
24075 # endif /* !ALPHA */
24076 -# endif /* LINUX */
24079 +# if defined(MACOSX) /* Should also test for PowerPC? */
24080 + typedef void (* REAL_SIG_PF)(int, int, struct sigcontext *);
24082 +/* Decodes the machine instruction which was responsible for the sending of the
24083 + SIGBUS signal. Sadly this is the only way to find the faulting address because
24084 + the signal handler doesn't get it directly from the kernel (although it is
24085 + available on the Mach level, but droppped by the BSD personality before it
24086 + calls our signal handler...)
24087 + This code should be able to deal correctly with all PPCs starting from the
24088 + 601 up to and including the G4s (including Velocity Engine). */
24089 +#define EXTRACT_OP1(iw) (((iw) & 0xFC000000) >> 26)
24090 +#define EXTRACT_OP2(iw) (((iw) & 0x000007FE) >> 1)
24091 +#define EXTRACT_REGA(iw) (((iw) & 0x001F0000) >> 16)
24092 +#define EXTRACT_REGB(iw) (((iw) & 0x03E00000) >> 21)
24093 +#define EXTRACT_REGC(iw) (((iw) & 0x0000F800) >> 11)
24094 +#define EXTRACT_DISP(iw) ((short *) &(iw))[1]
24096 +static char *get_fault_addr(struct sigcontext *scp)
24098 + unsigned int instr = *((unsigned int *) scp->sc_ir);
24099 + unsigned int * regs = &((unsigned int *) scp->sc_regs)[2];
24100 + int disp = 0, tmp;
24101 + unsigned int baseA = 0, baseB = 0;
24102 + unsigned int addr, alignmask = 0xFFFFFFFF;
24104 +#ifdef GC_DEBUG_DECODER
24105 + GC_err_printf1("Instruction: 0x%lx\n", instr);
24106 + GC_err_printf1("Opcode 1: d\n", (int)EXTRACT_OP1(instr));
24108 + switch(EXTRACT_OP1(instr)) {
24109 + case 38: /* stb */
24110 + case 39: /* stbu */
24111 + case 54: /* stfd */
24112 + case 55: /* stfdu */
24113 + case 52: /* stfs */
24114 + case 53: /* stfsu */
24115 + case 44: /* sth */
24116 + case 45: /* sthu */
24117 + case 47: /* stmw */
24118 + case 36: /* stw */
24119 + case 37: /* stwu */
24120 + tmp = EXTRACT_REGA(instr);
24122 + baseA = regs[tmp];
24123 + disp = EXTRACT_DISP(instr);
24126 +#ifdef GC_DEBUG_DECODER
24127 + GC_err_printf1("Opcode 2: %d\n", (int)EXTRACT_OP2(instr));
24129 + switch(EXTRACT_OP2(instr)) {
24130 + case 86: /* dcbf */
24131 + case 54: /* dcbst */
24132 + case 1014: /* dcbz */
24133 + case 247: /* stbux */
24134 + case 215: /* stbx */
24135 + case 759: /* stfdux */
24136 + case 727: /* stfdx */
24137 + case 983: /* stfiwx */
24138 + case 695: /* stfsux */
24139 + case 663: /* stfsx */
24140 + case 918: /* sthbrx */
24141 + case 439: /* sthux */
24142 + case 407: /* sthx */
24143 + case 661: /* stswx */
24144 + case 662: /* stwbrx */
24145 + case 150: /* stwcx. */
24146 + case 183: /* stwux */
24147 + case 151: /* stwx */
24148 + case 135: /* stvebx */
24149 + case 167: /* stvehx */
24150 + case 199: /* stvewx */
24151 + case 231: /* stvx */
24152 + case 487: /* stvxl */
24153 + tmp = EXTRACT_REGA(instr);
24155 + baseA = regs[tmp];
24156 + baseB = regs[EXTRACT_REGC(instr)];
24157 + /* determine Altivec alignment mask */
24158 + switch(EXTRACT_OP2(instr)) {
24159 + case 167: /* stvehx */
24160 + alignmask = 0xFFFFFFFE;
24162 + case 199: /* stvewx */
24163 + alignmask = 0xFFFFFFFC;
24165 + case 231: /* stvx */
24166 + alignmask = 0xFFFFFFF0;
24168 + case 487: /* stvxl */
24169 + alignmask = 0xFFFFFFF0;
24173 + case 725: /* stswi */
24174 + tmp = EXTRACT_REGA(instr);
24176 + baseA = regs[tmp];
24178 + default: /* ignore instruction */
24179 +#ifdef GC_DEBUG_DECODER
24180 + GC_err_printf("Ignored by inner handler\n");
24186 + default: /* ignore instruction */
24187 +#ifdef GC_DEBUG_DECODER
24188 + GC_err_printf("Ignored by main handler\n");
24194 + addr = (baseA + baseB) + disp;
24195 + addr &= alignmask;
24196 +#ifdef GC_DEBUG_DECODER
24197 + GC_err_printf1("BaseA: %d\n", baseA);
24198 + GC_err_printf1("BaseB: %d\n", baseB);
24199 + GC_err_printf1("Disp: %d\n", disp);
24200 + GC_err_printf1("Address: %d\n", addr);
24202 + return (char *)addr;
24204 +#endif /* MACOSX */
24207 SIG_PF GC_old_bus_handler;
24208 SIG_PF GC_old_segv_handler; /* Also old MSWIN32 ACCESS_VIOLATION filter */
24209 -#endif /* !DARWIN */
24211 -#if defined(THREADS)
24213 /* We need to lock around the bitmap update in the write fault handler */
24214 /* in order to avoid the risk of losing a bit. We do this with a */
24215 /* test-and-set spin lock if we know how to do that. Otherwise we */
24216 @@ -2299,7 +2076,6 @@
24217 #endif /* !THREADS */
24220 -#if !defined(DARWIN)
24221 # if defined (SUNOS4) || defined(FREEBSD)
24222 void GC_write_fault_handler(sig, code, scp, addr)
24224 @@ -2315,8 +2091,7 @@
24225 # define SIG_OK (sig == SIGBUS)
24226 # define CODE_OK (code == BUS_PAGE_FAULT)
24228 -# endif /* SUNOS4 || FREEBSD */
24231 # if defined(IRIX5) || defined(OSF1) || defined(HURD)
24232 # include <errno.h>
24233 void GC_write_fault_handler(int sig, int code, struct sigcontext *scp)
24234 @@ -2332,8 +2107,7 @@
24235 # define SIG_OK (sig == SIGBUS || sig == SIGSEGV)
24236 # define CODE_OK TRUE
24238 -# endif /* IRIX5 || OSF1 || HURD */
24241 # if defined(LINUX)
24242 # if defined(ALPHA) || defined(M68K)
24243 void GC_write_fault_handler(int sig, int code, s_c * sc)
24244 @@ -2341,11 +2115,7 @@
24245 # if defined(IA64) || defined(HP_PA)
24246 void GC_write_fault_handler(int sig, siginfo_t * si, s_c * scp)
24248 -# if defined(ARM32)
24249 - void GC_write_fault_handler(int sig, int a2, int a3, int a4, s_c sc)
24251 - void GC_write_fault_handler(int sig, s_c sc)
24253 + void GC_write_fault_handler(int sig, s_c sc)
24256 # define SIG_OK (sig == SIGSEGV)
24257 @@ -2353,8 +2123,7 @@
24258 /* Empirically c.trapno == 14, on IA32, but is that useful? */
24259 /* Should probably consider alignment issues on other */
24260 /* architectures. */
24261 -# endif /* LINUX */
24264 # if defined(SUNOS5SIGS)
24266 void GC_write_fault_handler(int sig, struct SIGINFO *scp, void * context)
24267 @@ -2375,7 +2144,13 @@
24268 # define SIG_OK (sig == SIGSEGV)
24269 # define CODE_OK (scp -> si_code == SEGV_ACCERR)
24271 -# endif /* SUNOS5SIGS */
24274 +# if defined(MACOSX)
24275 + void GC_write_fault_handler(int sig, int code, struct sigcontext *scp)
24276 +# define SIG_OK (sig == SIGBUS)
24277 +# define CODE_OK (code == 0 /* experimentally determined */)
24280 # if defined(MSWIN32) || defined(MSWINCE)
24281 LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info)
24282 @@ -2383,7 +2158,7 @@
24283 STATUS_ACCESS_VIOLATION)
24284 # define CODE_OK (exc_info -> ExceptionRecord -> ExceptionInformation[0] == 1)
24286 -# endif /* MSWIN32 || MSWINCE */
24289 register unsigned i;
24291 @@ -2443,17 +2218,16 @@
24292 # if defined(POWERPC)
24293 char * addr = (char *) (sc.regs->dar);
24295 -# if defined(ARM32)
24296 - char * addr = (char *)sc.fault_address;
24298 - --> architecture not supported
24300 + --> architecture not supported
24307 +# if defined(MACOSX)
24308 + char * addr = get_fault_addr(scp);
24310 # if defined(MSWIN32) || defined(MSWINCE)
24311 char * addr = (char *) (exc_info -> ExceptionRecord
24312 -> ExceptionInformation[1]);
24313 @@ -2517,6 +2291,9 @@
24314 (*(REAL_SIG_PF)old_handler) (sig, code, scp);
24318 + (*(REAL_SIG_PF)old_handler) (sig, code, scp);
24321 return((*old_handler)(exc_info));
24323 @@ -2558,11 +2335,10 @@
24324 ABORT("Unexpected bus error or segmentation fault");
24327 -#endif /* !DARWIN */
24330 * We hold the allocation lock. We expect block h to be written
24331 - * shortly. Ensure that all pages containing any part of the n hblks
24332 + * shortly. Ensure that all pages cvontaining any part of the n hblks
24333 * starting at h are no longer protected. If is_ptrfree is false,
24334 * also ensure that they will subsequently appear to be dirty.
24336 @@ -2591,7 +2367,6 @@
24337 UNPROTECT(h_trunc, (ptr_t)h_end - (ptr_t)h_trunc);
24340 -#if !defined(DARWIN)
24341 void GC_dirty_init()
24343 # if defined(SUNOS5SIGS) || defined(IRIX5) || defined(LINUX) || \
24344 @@ -2614,6 +2389,13 @@
24345 (void)sigaddset(&act.sa_mask, SIG_SUSPEND);
24346 # endif /* SIG_SUSPEND */
24348 +# if defined(MACOSX)
24349 + struct sigaction act, oldact;
24351 + act.sa_flags = SA_RESTART;
24352 + act.sa_handler = GC_write_fault_handler;
24353 + sigemptyset(&act.sa_mask);
24356 GC_printf0("Inititalizing mprotect virtual dirty bit implementation\n");
24358 @@ -2653,12 +2435,9 @@
24359 sigaction(SIGSEGV, 0, &oldact);
24360 sigaction(SIGSEGV, &act, 0);
24363 - int res = sigaction(SIGSEGV, &act, &oldact);
24364 - if (res != 0) ABORT("Sigaction failed");
24366 + sigaction(SIGSEGV, &act, &oldact);
24368 -# if defined(_sigargs) || defined(HURD) || !defined(SA_SIGINFO)
24369 +# if defined(_sigargs) || defined(HURD)
24370 /* This is Irix 5.x, not 6.x. Irix 5.x does not have */
24371 /* sa_sigaction. */
24372 GC_old_segv_handler = oldact.sa_handler;
24373 @@ -2679,7 +2458,7 @@
24377 -# if defined(HPUX) || defined(LINUX) || defined(HURD)
24378 +# if defined(MACOSX) || defined(HPUX) || defined(LINUX) || defined(HURD)
24379 sigaction(SIGBUS, &act, &oldact);
24380 GC_old_bus_handler = oldact.sa_handler;
24381 if (GC_old_bus_handler == SIG_IGN) {
24382 @@ -2691,7 +2470,7 @@
24383 GC_err_printf0("Replaced other SIGBUS handler\n");
24386 -# endif /* HPUX || LINUX || HURD */
24387 +# endif /* MACOS || HPUX || LINUX */
24388 # if defined(MSWIN32)
24389 GC_old_segv_handler = SetUnhandledExceptionFilter(GC_write_fault_handler);
24390 if (GC_old_segv_handler != NULL) {
24391 @@ -2703,7 +2482,6 @@
24395 -#endif /* !DARWIN */
24397 int GC_incremental_protection_needs()
24399 @@ -2850,23 +2628,15 @@
24400 ((ptr_t)end_block - (ptr_t)start_block) + HBLKSIZE);
24405 -/* We no longer wrap read by default, since that was causing too many */
24406 -/* problems. It is preferred that the client instead avoids writing */
24407 -/* to the write-protected heap with a system call. */
24408 -/* This still serves as sample code if you do want to wrap system calls.*/
24410 -#if !defined(MSWIN32) && !defined(MSWINCE) && !defined(GC_USE_LD_WRAP)
24411 -/* Replacement for UNIX system call. */
24412 -/* Other calls that write to the heap should be handled similarly. */
24413 -/* Note that this doesn't work well for blocking reads: It will hold */
24414 -/* the allocation lock for the entire duration of the call. Multithreaded */
24415 -/* clients should really ensure that it won't block, either by setting */
24416 -/* the descriptor nonblocking, or by calling select or poll first, to */
24417 -/* make sure that input is available. */
24418 -/* Another, preferred alternative is to ensure that system calls never */
24419 -/* write to the protected heap (see above). */
24420 +#if !defined(MSWIN32) && !defined(MSWINCE) && !defined(THREADS) \
24421 + && !defined(GC_USE_LD_WRAP)
24422 +/* Replacement for UNIX system call. */
24423 +/* Other calls that write to the heap should be handled similarly. */
24424 +/* Note that this doesn't work well for blocking reads: It will hold */
24425 +/* tha allocation lock for the entur duration of the call. Multithreaded */
24426 +/* clients should really ensure that it won't block, either by setting */
24427 +/* the descriptor nonblocking, or by calling select or poll first, to */
24428 +/* make sure that input is available. */
24429 # if defined(__STDC__) && !defined(SUNOS4)
24430 # include <unistd.h>
24431 # include <sys/uio.h>
24432 @@ -2936,8 +2706,6 @@
24433 /* actually calls. */
24439 GC_bool GC_page_was_ever_dirty(h)
24441 @@ -2953,6 +2721,13 @@
24445 +# else /* !MPROTECT_VDB */
24447 +# ifdef GC_USE_LD_WRAP
24448 + ssize_t __wrap_read(int fd, void *buf, size_t nbyte)
24449 + { return __real_read(fd, buf, nbyte); }
24452 # endif /* MPROTECT_VDB */
24455 @@ -3031,7 +2806,6 @@
24457 GC_proc_fd = syscall(SYS_ioctl, fd, PIOCOPENPD, 0);
24459 - syscall(SYS_fcntl, GC_proc_fd, F_SETFD, FD_CLOEXEC);
24460 if (GC_proc_fd < 0) {
24461 ABORT("/proc ioctl failed");
24463 @@ -3271,553 +3045,6 @@
24465 # endif /* PCR_VDB */
24467 -#if defined(MPROTECT_VDB) && defined(DARWIN)
24468 -/* The following sources were used as a *reference* for this exception handling
24470 - 1. Apple's mach/xnu documentation
24471 - 2. Timothy J. Wood's "Mach Exception Handlers 101" post to the
24472 - omnigroup's macosx-dev list.
24473 - www.omnigroup.com/mailman/archive/macosx-dev/2000-June/002030.html
24474 - 3. macosx-nat.c from Apple's GDB source code.
24477 -/* There seem to be numerous problems with darwin's mach exception handling.
24478 - I'm pretty sure they are not problems in my code. Search for
24479 - BROKEN_EXCEPTION_HANDLING for more information. */
24480 -#define BROKEN_EXCEPTION_HANDLING
24482 -#include <mach/mach.h>
24483 -#include <mach/mach_error.h>
24484 -#include <mach/thread_status.h>
24485 -#include <mach/exception.h>
24486 -#include <mach/task.h>
24487 -#include <pthread.h>
24489 -/* These are not defined in any header, although they are documented */
24490 -extern boolean_t exc_server(mach_msg_header_t *,mach_msg_header_t *);
24491 -extern kern_return_t exception_raise(
24492 - mach_port_t,mach_port_t,mach_port_t,
24493 - exception_type_t,exception_data_t,mach_msg_type_number_t);
24494 -extern kern_return_t exception_raise_state(
24495 - mach_port_t,mach_port_t,mach_port_t,
24496 - exception_type_t,exception_data_t,mach_msg_type_number_t,
24497 - thread_state_flavor_t*,thread_state_t,mach_msg_type_number_t,
24498 - thread_state_t,mach_msg_type_number_t*);
24499 -extern kern_return_t exception_raise_state_identity(
24500 - mach_port_t,mach_port_t,mach_port_t,
24501 - exception_type_t,exception_data_t,mach_msg_type_number_t,
24502 - thread_state_flavor_t*,thread_state_t,mach_msg_type_number_t,
24503 - thread_state_t,mach_msg_type_number_t*);
24506 -#define MAX_EXCEPTION_PORTS 16
24508 -static mach_port_t GC_task_self;
24511 - mach_msg_type_number_t count;
24512 - exception_mask_t masks[MAX_EXCEPTION_PORTS];
24513 - exception_handler_t ports[MAX_EXCEPTION_PORTS];
24514 - exception_behavior_t behaviors[MAX_EXCEPTION_PORTS];
24515 - thread_state_flavor_t flavors[MAX_EXCEPTION_PORTS];
24516 -} GC_old_exc_ports;
24519 - mach_port_t exception;
24520 -#if defined(THREADS)
24521 - mach_port_t reply;
24526 - mach_msg_header_t head;
24530 - GC_MP_NORMAL, GC_MP_DISCARDING, GC_MP_STOPPED
24531 -} GC_mprotect_state_t;
24533 -/* FIXME: 1 and 2 seem to be safe to use in the msgh_id field,
24534 - but it isn't documented. Use the source and see if they
24537 -#define ID_RESUME 2
24539 -/* These values are only used on the reply port */
24542 -#if defined(THREADS)
24544 -GC_mprotect_state_t GC_mprotect_state;
24546 -/* The following should ONLY be called when the world is stopped */
24547 -static void GC_mprotect_thread_notify(mach_msg_id_t id) {
24550 - mach_msg_trailer_t trailer;
24552 - mach_msg_return_t r;
24553 - /* remote, local */
24554 - buf.msg.head.msgh_bits =
24555 - MACH_MSGH_BITS(MACH_MSG_TYPE_MAKE_SEND,0);
24556 - buf.msg.head.msgh_size = sizeof(buf.msg);
24557 - buf.msg.head.msgh_remote_port = GC_ports.exception;
24558 - buf.msg.head.msgh_local_port = MACH_PORT_NULL;
24559 - buf.msg.head.msgh_id = id;
24563 - MACH_SEND_MSG|MACH_RCV_MSG|MACH_RCV_LARGE,
24567 - MACH_MSG_TIMEOUT_NONE,
24569 - if(r != MACH_MSG_SUCCESS)
24570 - ABORT("mach_msg failed in GC_mprotect_thread_notify");
24571 - if(buf.msg.head.msgh_id != ID_ACK)
24572 - ABORT("invalid ack in GC_mprotect_thread_notify");
24575 -/* Should only be called by the mprotect thread */
24576 -static void GC_mprotect_thread_reply() {
24578 - mach_msg_return_t r;
24579 - /* remote, local */
24580 - msg.head.msgh_bits =
24581 - MACH_MSGH_BITS(MACH_MSG_TYPE_MAKE_SEND,0);
24582 - msg.head.msgh_size = sizeof(msg);
24583 - msg.head.msgh_remote_port = GC_ports.reply;
24584 - msg.head.msgh_local_port = MACH_PORT_NULL;
24585 - msg.head.msgh_id = ID_ACK;
24593 - MACH_MSG_TIMEOUT_NONE,
24595 - if(r != MACH_MSG_SUCCESS)
24596 - ABORT("mach_msg failed in GC_mprotect_thread_reply");
24599 -void GC_mprotect_stop() {
24600 - GC_mprotect_thread_notify(ID_STOP);
24602 -void GC_mprotect_resume() {
24603 - GC_mprotect_thread_notify(ID_RESUME);
24606 -#else /* !THREADS */
24607 -/* The compiler should optimize away any GC_mprotect_state computations */
24608 -#define GC_mprotect_state GC_MP_NORMAL
24611 -static void *GC_mprotect_thread(void *arg) {
24612 - mach_msg_return_t r;
24613 - /* These two structures contain some private kernel data. We don't need to
24614 - access any of it so we don't bother defining a proper struct. The
24615 - correct definitions are in the xnu source code. */
24617 - mach_msg_header_t head;
24621 - mach_msg_header_t head;
24622 - mach_msg_body_t msgh_body;
24626 - mach_msg_id_t id;
24631 - MACH_RCV_MSG|MACH_RCV_LARGE|
24632 - (GC_mprotect_state == GC_MP_DISCARDING ? MACH_RCV_TIMEOUT : 0),
24635 - GC_ports.exception,
24636 - GC_mprotect_state == GC_MP_DISCARDING ? 0 : MACH_MSG_TIMEOUT_NONE,
24639 - id = r == MACH_MSG_SUCCESS ? msg.head.msgh_id : -1;
24641 -#if defined(THREADS)
24642 - if(GC_mprotect_state == GC_MP_DISCARDING) {
24643 - if(r == MACH_RCV_TIMED_OUT) {
24644 - GC_mprotect_state = GC_MP_STOPPED;
24645 - GC_mprotect_thread_reply();
24648 - if(r == MACH_MSG_SUCCESS && (id == ID_STOP || id == ID_RESUME))
24649 - ABORT("out of order mprotect thread request");
24653 - if(r != MACH_MSG_SUCCESS) {
24654 - GC_err_printf2("mach_msg failed with %d %s\n",
24655 - (int)r,mach_error_string(r));
24656 - ABORT("mach_msg failed");
24660 -#if defined(THREADS)
24662 - if(GC_mprotect_state != GC_MP_NORMAL)
24663 - ABORT("Called mprotect_stop when state wasn't normal");
24664 - GC_mprotect_state = GC_MP_DISCARDING;
24667 - if(GC_mprotect_state != GC_MP_STOPPED)
24668 - ABORT("Called mprotect_resume when state wasn't stopped");
24669 - GC_mprotect_state = GC_MP_NORMAL;
24670 - GC_mprotect_thread_reply();
24672 -#endif /* THREADS */
24674 - /* Handle the message (calls catch_exception_raise) */
24675 - if(!exc_server(&msg.head,&reply.head))
24676 - ABORT("exc_server failed");
24677 - /* Send the reply */
24681 - reply.head.msgh_size,
24684 - MACH_MSG_TIMEOUT_NONE,
24686 - if(r != MACH_MSG_SUCCESS) {
24687 - /* This will fail if the thread dies, but the thread shouldn't
24689 - #ifdef BROKEN_EXCEPTION_HANDLING
24691 - "mach_msg failed with %d %s while sending exc reply\n",
24692 - (int)r,mach_error_string(r));
24694 - ABORT("mach_msg failed while sending exception reply");
24699 - /* NOT REACHED */
24703 -/* All this SIGBUS code shouldn't be necessary. All protection faults should
24704 - be going throught the mach exception handler. However, it seems a SIGBUS is
24705 - occasionally sent for some unknown reason. Even more odd, it seems to be
24706 - meaningless and safe to ignore. */
24707 -#ifdef BROKEN_EXCEPTION_HANDLING
24709 -typedef void (* SIG_PF)();
24710 -static SIG_PF GC_old_bus_handler;
24712 -/* Updates to this aren't atomic, but the SIGBUSs seem pretty rare.
24713 - Even if this doesn't get updated property, it isn't really a problem */
24714 -static int GC_sigbus_count;
24716 -static void GC_darwin_sigbus(int num,siginfo_t *sip,void *context) {
24717 - if(num != SIGBUS) ABORT("Got a non-sigbus signal in the sigbus handler");
24719 - /* Ugh... some seem safe to ignore, but too many in a row probably means
24720 - trouble. GC_sigbus_count is reset for each mach exception that is
24722 - if(GC_sigbus_count >= 8) {
24723 - ABORT("Got more than 8 SIGBUSs in a row!");
24725 - GC_sigbus_count++;
24726 - GC_err_printf0("GC: WARNING: Ignoring SIGBUS.\n");
24729 -#endif /* BROKEN_EXCEPTION_HANDLING */
24731 -void GC_dirty_init() {
24734 - pthread_t thread;
24735 - pthread_attr_t attr;
24736 - exception_mask_t mask;
24738 -# ifdef PRINTSTATS
24739 - GC_printf0("Inititalizing mach/darwin mprotect virtual dirty bit "
24740 - "implementation\n");
24742 -# ifdef BROKEN_EXCEPTION_HANDLING
24743 - GC_err_printf0("GC: WARNING: Enabling workarounds for various darwin "
24744 - "exception handling bugs.\n");
24746 - GC_dirty_maintained = TRUE;
24747 - if (GC_page_size % HBLKSIZE != 0) {
24748 - GC_err_printf0("Page size not multiple of HBLKSIZE\n");
24749 - ABORT("Page size not multiple of HBLKSIZE");
24752 - GC_task_self = me = mach_task_self();
24754 - r = mach_port_allocate(me,MACH_PORT_RIGHT_RECEIVE,&GC_ports.exception);
24755 - if(r != KERN_SUCCESS) ABORT("mach_port_allocate failed (exception port)");
24757 - r = mach_port_insert_right(me,GC_ports.exception,GC_ports.exception,
24758 - MACH_MSG_TYPE_MAKE_SEND);
24759 - if(r != KERN_SUCCESS)
24760 - ABORT("mach_port_insert_right failed (exception port)");
24762 - #if defined(THREADS)
24763 - r = mach_port_allocate(me,MACH_PORT_RIGHT_RECEIVE,&GC_ports.reply);
24764 - if(r != KERN_SUCCESS) ABORT("mach_port_allocate failed (reply port)");
24767 - /* The exceptions we want to catch */
24768 - mask = EXC_MASK_BAD_ACCESS;
24770 - r = task_get_exception_ports(
24773 - GC_old_exc_ports.masks,
24774 - &GC_old_exc_ports.count,
24775 - GC_old_exc_ports.ports,
24776 - GC_old_exc_ports.behaviors,
24777 - GC_old_exc_ports.flavors
24779 - if(r != KERN_SUCCESS) ABORT("task_get_exception_ports failed");
24781 - r = task_set_exception_ports(
24784 - GC_ports.exception,
24785 - EXCEPTION_DEFAULT,
24786 - MACHINE_THREAD_STATE
24788 - if(r != KERN_SUCCESS) ABORT("task_set_exception_ports failed");
24790 - if(pthread_attr_init(&attr) != 0) ABORT("pthread_attr_init failed");
24791 - if(pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED) != 0)
24792 - ABORT("pthread_attr_setdetachedstate failed");
24794 -# undef pthread_create
24795 - /* This will call the real pthread function, not our wrapper */
24796 - if(pthread_create(&thread,&attr,GC_mprotect_thread,NULL) != 0)
24797 - ABORT("pthread_create failed");
24798 - pthread_attr_destroy(&attr);
24800 - /* Setup the sigbus handler for ignoring the meaningless SIGBUSs */
24801 - #ifdef BROKEN_EXCEPTION_HANDLING
24803 - struct sigaction sa, oldsa;
24804 - sa.sa_handler = (SIG_PF)GC_darwin_sigbus;
24805 - sigemptyset(&sa.sa_mask);
24806 - sa.sa_flags = SA_RESTART|SA_SIGINFO;
24807 - if(sigaction(SIGBUS,&sa,&oldsa) < 0) ABORT("sigaction");
24808 - GC_old_bus_handler = (SIG_PF)oldsa.sa_handler;
24809 - if (GC_old_bus_handler != SIG_DFL) {
24810 -# ifdef PRINTSTATS
24811 - GC_err_printf0("Replaced other SIGBUS handler\n");
24815 - #endif /* BROKEN_EXCEPTION_HANDLING */
24818 -/* The source code for Apple's GDB was used as a reference for the exception
24819 - forwarding code. This code is similar to be GDB code only because there is
24820 - only one way to do it. */
24821 -static kern_return_t GC_forward_exception(
24822 - mach_port_t thread,
24823 - mach_port_t task,
24824 - exception_type_t exception,
24825 - exception_data_t data,
24826 - mach_msg_type_number_t data_count
24830 - mach_port_t port;
24831 - exception_behavior_t behavior;
24832 - thread_state_flavor_t flavor;
24834 - thread_state_data_t thread_state;
24835 - mach_msg_type_number_t thread_state_count = THREAD_STATE_MAX;
24837 - for(i=0;i<GC_old_exc_ports.count;i++)
24838 - if(GC_old_exc_ports.masks[i] & (1 << exception))
24840 - if(i==GC_old_exc_ports.count) ABORT("No handler for exception!");
24842 - port = GC_old_exc_ports.ports[i];
24843 - behavior = GC_old_exc_ports.behaviors[i];
24844 - flavor = GC_old_exc_ports.flavors[i];
24846 - if(behavior != EXCEPTION_DEFAULT) {
24847 - r = thread_get_state(thread,flavor,thread_state,&thread_state_count);
24848 - if(r != KERN_SUCCESS)
24849 - ABORT("thread_get_state failed in forward_exception");
24852 - switch(behavior) {
24853 - case EXCEPTION_DEFAULT:
24854 - r = exception_raise(port,thread,task,exception,data,data_count);
24856 - case EXCEPTION_STATE:
24857 - r = exception_raise_state(port,thread,task,exception,data,
24858 - data_count,&flavor,thread_state,thread_state_count,
24859 - thread_state,&thread_state_count);
24861 - case EXCEPTION_STATE_IDENTITY:
24862 - r = exception_raise_state_identity(port,thread,task,exception,data,
24863 - data_count,&flavor,thread_state,thread_state_count,
24864 - thread_state,&thread_state_count);
24867 - r = KERN_FAILURE; /* make gcc happy */
24868 - ABORT("forward_exception: unknown behavior");
24872 - if(behavior != EXCEPTION_DEFAULT) {
24873 - r = thread_set_state(thread,flavor,thread_state,thread_state_count);
24874 - if(r != KERN_SUCCESS)
24875 - ABORT("thread_set_state failed in forward_exception");
24881 -#define FWD() GC_forward_exception(thread,task,exception,code,code_count)
24883 -/* This violates the namespace rules but there isn't anything that can be done
24884 - about it. The exception handling stuff is hard coded to call this */
24886 -catch_exception_raise(
24887 - mach_port_t exception_port,mach_port_t thread,mach_port_t task,
24888 - exception_type_t exception,exception_data_t code,
24889 - mach_msg_type_number_t code_count
24896 - thread_state_flavor_t flavor = PPC_EXCEPTION_STATE;
24897 - mach_msg_type_number_t exc_state_count = PPC_EXCEPTION_STATE_COUNT;
24898 - ppc_exception_state_t exc_state;
24900 -# error FIXME for non-ppc darwin
24904 - if(exception != EXC_BAD_ACCESS || code[0] != KERN_PROTECTION_FAILURE) {
24905 - #ifdef DEBUG_EXCEPTION_HANDLING
24906 - /* We aren't interested, pass it on to the old handler */
24907 - GC_printf3("Exception: 0x%x Code: 0x%x 0x%x in catch....\n",
24909 - code_count > 0 ? code[0] : -1,
24910 - code_count > 1 ? code[1] : -1);
24915 - r = thread_get_state(thread,flavor,
24916 - (natural_t*)&exc_state,&exc_state_count);
24917 - if(r != KERN_SUCCESS) {
24918 - /* The thread is supposed to be suspended while the exception handler
24919 - is called. This shouldn't fail. */
24920 - #ifdef BROKEN_EXCEPTION_HANDLING
24921 - GC_err_printf0("thread_get_state failed in "
24922 - "catch_exception_raise\n");
24923 - return KERN_SUCCESS;
24925 - ABORT("thread_get_state failed in catch_exception_raise");
24929 - /* This is the address that caused the fault */
24930 - addr = (char*) exc_state.dar;
24932 - if((HDR(addr)) == 0) {
24933 - /* Ugh... just like the SIGBUS problem above, it seems we get a bogus
24934 - KERN_PROTECTION_FAILURE every once and a while. We wait till we get
24935 - a bunch in a row before doing anything about it. If a "real" fault
24936 - ever occurres it'll just keep faulting over and over and we'll hit
24937 - the limit pretty quickly. */
24938 - #ifdef BROKEN_EXCEPTION_HANDLING
24939 - static char *last_fault;
24940 - static int last_fault_count;
24942 - if(addr != last_fault) {
24943 - last_fault = addr;
24944 - last_fault_count = 0;
24946 - if(++last_fault_count < 32) {
24947 - if(last_fault_count == 1)
24949 - "GC: WARNING: Ignoring KERN_PROTECTION_FAILURE at %p\n",
24951 - return KERN_SUCCESS;
24954 - GC_err_printf1("Unexpected KERN_PROTECTION_FAILURE at %p\n",addr);
24955 - /* Can't pass it along to the signal handler because that is
24956 - ignoring SIGBUS signals. We also shouldn't call ABORT here as
24957 - signals don't always work too well from the exception handler. */
24958 - GC_err_printf0("Aborting\n");
24959 - exit(EXIT_FAILURE);
24960 - #else /* BROKEN_EXCEPTION_HANDLING */
24961 - /* Pass it along to the next exception handler
24962 - (which should call SIGBUS/SIGSEGV) */
24964 - #endif /* !BROKEN_EXCEPTION_HANDLING */
24967 - #ifdef BROKEN_EXCEPTION_HANDLING
24968 - /* Reset the number of consecutive SIGBUSs */
24969 - GC_sigbus_count = 0;
24972 - if(GC_mprotect_state == GC_MP_NORMAL) { /* common case */
24973 - h = (struct hblk*)((word)addr & ~(GC_page_size-1));
24974 - UNPROTECT(h, GC_page_size);
24975 - for (i = 0; i < divHBLKSZ(GC_page_size); i++) {
24976 - register int index = PHT_HASH(h+i);
24977 - async_set_pht_entry_from_index(GC_dirty_pages, index);
24979 - } else if(GC_mprotect_state == GC_MP_DISCARDING) {
24980 - /* Lie to the thread for now. No sense UNPROTECT()ing the memory
24981 - when we're just going to PROTECT() it again later. The thread
24982 - will just fault again once it resumes */
24984 - /* Shouldn't happen, i don't think */
24985 - GC_printf0("KERN_PROTECTION_FAILURE while world is stopped\n");
24988 - return KERN_SUCCESS;
24992 -/* These should never be called, but just in case... */
24993 -kern_return_t catch_exception_raise_state(mach_port_name_t exception_port,
24994 - int exception, exception_data_t code, mach_msg_type_number_t codeCnt,
24995 - int flavor, thread_state_t old_state, int old_stateCnt,
24996 - thread_state_t new_state, int new_stateCnt)
24998 - ABORT("catch_exception_raise_state");
24999 - return(KERN_INVALID_ARGUMENT);
25001 -kern_return_t catch_exception_raise_state_identity(
25002 - mach_port_name_t exception_port, mach_port_t thread, mach_port_t task,
25003 - int exception, exception_data_t code, mach_msg_type_number_t codeCnt,
25004 - int flavor, thread_state_t old_state, int old_stateCnt,
25005 - thread_state_t new_state, int new_stateCnt)
25007 - ABORT("catch_exception_raise_state_identity");
25008 - return(KERN_INVALID_ARGUMENT);
25012 -#endif /* DARWIN && MPROTECT_VDB */
25014 # ifndef HAVE_INCREMENTAL_PROTECTION_NEEDS
25015 int GC_incremental_protection_needs()
25017 @@ -3878,20 +3105,19 @@
25021 -#ifdef NEED_CALLINFO
25022 +#ifdef SAVE_CALL_CHAIN
25023 /* Fill in the pc and argument information for up to NFRAMES of my */
25024 /* callers. Ignore my frame and my callers frame. */
25027 -# include <unistd.h>
25028 +# include <features.h>
25029 +# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2
25030 +# define HAVE_BUILTIN_BACKTRACE
25034 -#endif /* NEED_CALLINFO */
25036 -#ifdef SAVE_CALL_CHAIN
25038 #if NARGS == 0 && NFRAMES % 2 == 0 /* No padding */ \
25039 - && defined(GC_HAVE_BUILTIN_BACKTRACE)
25040 + && defined(HAVE_BUILTIN_BACKTRACE)
25042 #include <execinfo.h>
25044 @@ -3962,139 +3188,31 @@
25046 #endif /* SAVE_CALL_CHAIN */
25048 -#ifdef NEED_CALLINFO
25049 +#if defined(LINUX) && defined(__ELF__) && \
25050 + (!defined(SMALL_CONFIG) || defined(USE_PROC_FOR_LIBRARIES))
25051 +#ifdef GC_USE_LD_WRAP
25052 +# define READ __real_read
25054 +# define READ read
25057 -/* Print info to stderr. We do NOT hold the allocation lock */
25058 -void GC_print_callers (info)
25059 -struct callinfo info[NFRAMES];
25062 - static int reentry_count = 0;
25063 - GC_bool stop = FALSE;
25068 +/* Repeatedly perform a read call until the buffer is filled or */
25069 +/* we encounter EOF. */
25070 +ssize_t GC_repeat_read(int fd, char *buf, size_t count)
25072 + ssize_t num_read = 0;
25076 - GC_err_printf0("\tCaller at allocation:\n");
25078 - GC_err_printf0("\tCall chain at allocation:\n");
25080 - for (i = 0; i < NFRAMES && !stop ; i++) {
25081 - if (info[i].ci_pc == 0) break;
25086 - GC_err_printf0("\t\targs: ");
25087 - for (j = 0; j < NARGS; j++) {
25088 - if (j != 0) GC_err_printf0(", ");
25089 - GC_err_printf2("%d (0x%X)", ~(info[i].ci_arg[j]),
25090 - ~(info[i].ci_arg[j]));
25092 - GC_err_printf0("\n");
25095 - if (reentry_count > 1) {
25096 - /* We were called during an allocation during */
25097 - /* a previous GC_print_callers call; punt. */
25098 - GC_err_printf1("\t\t##PC##= 0x%lx\n", info[i].ci_pc);
25105 -# if defined(GC_HAVE_BUILTIN_BACKTRACE)
25106 - char **sym_name =
25107 - backtrace_symbols((void **)(&(info[i].ci_pc)), 1);
25108 - char *name = sym_name[0];
25111 - char *name = buf;
25112 - sprintf(buf, "##PC##= 0x%lx", info[i].ci_pc);
25114 -# if defined(LINUX) && !defined(SMALL_CONFIG)
25115 - /* Try for a line number. */
25117 -# define EXE_SZ 100
25118 - static char exe_name[EXE_SZ];
25119 -# define CMD_SZ 200
25120 - char cmd_buf[CMD_SZ];
25121 -# define RESULT_SZ 200
25122 - static char result_buf[RESULT_SZ];
25123 - size_t result_len;
25124 - static GC_bool found_exe_name = FALSE;
25125 - static GC_bool will_fail = FALSE;
25127 - /* Try to get it via a hairy and expensive scheme. */
25128 - /* First we get the name of the executable: */
25129 - if (will_fail) goto out;
25130 - if (!found_exe_name) {
25131 - ret_code = readlink("/proc/self/exe", exe_name, EXE_SZ);
25132 - if (ret_code < 0 || ret_code >= EXE_SZ
25133 - || exe_name[0] != '/') {
25134 - will_fail = TRUE; /* Dont try again. */
25137 - exe_name[ret_code] = '\0';
25138 - found_exe_name = TRUE;
25140 - /* Then we use popen to start addr2line -e <exe> <addr> */
25141 - /* There are faster ways to do this, but hopefully this */
25142 - /* isn't time critical. */
25143 - sprintf(cmd_buf, "/usr/bin/addr2line -f -e %s 0x%lx", exe_name,
25144 - (unsigned long)info[i].ci_pc);
25145 - pipe = popen(cmd_buf, "r");
25147 - || (result_len = fread(result_buf, 1, RESULT_SZ - 1, pipe))
25149 - if (pipe != NULL) pclose(pipe);
25150 - will_fail = TRUE;
25153 - if (result_buf[result_len - 1] == '\n') --result_len;
25154 - result_buf[result_len] = 0;
25155 - if (result_buf[0] == '?'
25156 - || result_buf[result_len-2] == ':'
25157 - && result_buf[result_len-1] == '0') {
25161 - /* Get rid of embedded newline, if any. Test for "main" */
25163 - char * nl = strchr(result_buf, '\n');
25164 - if (nl != NULL && nl < result_buf + result_len) {
25167 - if (strncmp(result_buf, "main", nl - result_buf) == 0) {
25171 - if (result_len < RESULT_SZ - 25) {
25172 - /* Add in hex address */
25173 - sprintf(result_buf + result_len, " [0x%lx]",
25174 - (unsigned long)info[i].ci_pc);
25176 - name = result_buf;
25180 -# endif /* LINUX */
25181 - GC_err_printf1("\t\t%s\n", name);
25182 -# if defined(GC_HAVE_BUILTIN_BACKTRACE)
25183 - free(sym_name); /* May call GC_free; that's OK */
25186 + while (num_read < count) {
25187 + result = READ(fd, buf + num_read, count - num_read);
25188 + if (result < 0) return result;
25189 + if (result == 0) break;
25190 + num_read += result;
25198 -#endif /* NEED_CALLINFO */
25200 +#endif /* LINUX && ... */
25203 #if defined(LINUX) && defined(__ELF__) && !defined(SMALL_CONFIG)
25204 @@ -4102,16 +3220,20 @@
25205 /* Dump /proc/self/maps to GC_stderr, to enable looking up names for
25206 addresses in FIND_LEAK output. */
25208 -static word dump_maps(char *maps)
25210 - GC_err_write(maps, strlen(maps));
25214 void GC_print_address_map()
25218 + char maps_temp[32768];
25219 GC_err_printf0("---------- Begin address map ----------\n");
25220 - GC_apply_to_maps(dump_maps);
25221 + f = open("/proc/self/maps", O_RDONLY);
25222 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
25224 + result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
25225 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
25226 + GC_err_write(maps_temp, result);
25227 + } while (result == sizeof(maps_temp));
25229 GC_err_printf0("---------- End address map ----------\n");
25232 diff -Nur ../boehm-gc/powerpc_darwin_mach_dep.s boehm-gc/powerpc_darwin_mach_dep.s
25233 --- ../boehm-gc/powerpc_darwin_mach_dep.s Mon May 26 12:48:52 2003
25234 +++ boehm-gc/powerpc_darwin_mach_dep.s Wed Dec 31 16:00:00 1969
25237 -; GC_push_regs function. Under some optimization levels GCC will clobber
25238 -; some of the non-volatile registers before we get a chance to save them
25239 -; therefore, this can't be inline asm.
25243 - .globl _GC_push_regs
25253 - bl L_GC_push_one$stub
25255 - bl L_GC_push_one$stub
25257 - bl L_GC_push_one$stub
25259 - bl L_GC_push_one$stub
25261 - bl L_GC_push_one$stub
25263 - bl L_GC_push_one$stub
25265 - bl L_GC_push_one$stub
25267 - bl L_GC_push_one$stub
25269 - bl L_GC_push_one$stub
25271 - bl L_GC_push_one$stub
25273 - bl L_GC_push_one$stub
25275 - bl L_GC_push_one$stub
25277 - bl L_GC_push_one$stub
25279 - bl L_GC_push_one$stub
25281 - bl L_GC_push_one$stub
25283 - bl L_GC_push_one$stub
25285 - bl L_GC_push_one$stub
25287 - bl L_GC_push_one$stub
25289 - bl L_GC_push_one$stub
25299 -; PIC stuff, generated by GCC
25303 -L_GC_push_one$stub:
25304 - .indirect_symbol _GC_push_one
25306 - bcl 20,31,L0$_GC_push_one
25309 - addis r11,r11,ha16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
25311 - lwz r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11)
25313 - addi r11,r11,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
25316 -.lazy_symbol_pointer
25317 -L_GC_push_one$lazy_ptr:
25318 - .indirect_symbol _GC_push_one
25319 - .long dyld_stub_binding_helper
25320 diff -Nur ../boehm-gc/pthread_stop_world.c boehm-gc/pthread_stop_world.c
25321 --- ../boehm-gc/pthread_stop_world.c Mon May 26 12:48:52 2003
25322 +++ boehm-gc/pthread_stop_world.c Wed Dec 31 16:00:00 1969
25324 -#include "private/pthread_support.h"
25326 -#if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
25327 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS) \
25328 - && !defined(GC_DARWIN_THREADS)
25330 -#include <signal.h>
25331 -#include <semaphore.h>
25332 -#include <errno.h>
25333 -#include <unistd.h>
25338 -# if defined(MAXSIG)
25339 -# define NSIG (MAXSIG+1)
25340 -# elif defined(_NSIG)
25341 -# define NSIG _NSIG
25342 -# elif defined(__SIGRTMAX)
25343 -# define NSIG (__SIGRTMAX+1)
25345 - --> please fix it
25349 -void GC_print_sig_mask()
25351 - sigset_t blocked;
25354 - if (pthread_sigmask(SIG_BLOCK, NULL, &blocked) != 0)
25355 - ABORT("pthread_sigmask");
25356 - GC_printf0("Blocked: ");
25357 - for (i = 1; i < NSIG; i++) {
25358 - if (sigismember(&blocked, i)) { GC_printf1("%ld ",(long) i); }
25360 - GC_printf0("\n");
25365 -word GC_stop_count; /* Incremented at the beginning of GC_stop_world. */
25367 -#ifdef GC_OSF1_THREADS
25368 - GC_bool GC_retry_signals = TRUE;
25370 - GC_bool GC_retry_signals = FALSE;
25374 - * We use signals to stop threads during GC.
25376 - * Suspended threads wait in signal handler for SIG_THR_RESTART.
25377 - * That's more portable than semaphores or condition variables.
25378 - * (We do use sem_post from a signal handler, but that should be portable.)
25380 - * The thread suspension signal SIG_SUSPEND is now defined in gc_priv.h.
25381 - * Note that we can't just stop a thread; we need it to save its stack
25382 - * pointer(s) and acknowledge.
25385 -#ifndef SIG_THR_RESTART
25386 -# if defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
25388 -# define SIG_THR_RESTART _SIGRTMIN + 5
25390 -# define SIG_THR_RESTART SIGRTMIN + 5
25393 -# define SIG_THR_RESTART SIGXCPU
25397 -sem_t GC_suspend_ack_sem;
25399 -void GC_suspend_handler(int sig)
25402 - pthread_t my_thread = pthread_self();
25405 -# ifdef PARALLEL_MARK
25406 - word my_mark_no = GC_mark_no;
25407 - /* Marker can't proceed until we acknowledge. Thus this is */
25408 - /* guaranteed to be the mark_no correspending to our */
25409 - /* suspension, i.e. the marker can't have incremented it yet. */
25411 - word my_stop_count = GC_stop_count;
25413 - if (sig != SIG_SUSPEND) ABORT("Bad signal in suspend_handler");
25416 - GC_printf1("Suspending 0x%lx\n", my_thread);
25419 - me = GC_lookup_thread(my_thread);
25420 - /* The lookup here is safe, since I'm doing this on behalf */
25421 - /* of a thread which holds the allocation lock in order */
25422 - /* to stop the world. Thus concurrent modification of the */
25423 - /* data structure is impossible. */
25424 - if (me -> stop_info.last_stop_count == my_stop_count) {
25425 - /* Duplicate signal. OK if we are retrying. */
25426 - if (!GC_retry_signals) {
25427 - WARN("Duplicate suspend signal in thread %lx\n",
25433 - me -> stop_info.stack_ptr = (ptr_t)GC_save_regs_in_stack();
25435 - me -> stop_info.stack_ptr = (ptr_t)(&dummy);
25438 - me -> backing_store_ptr = (ptr_t)GC_save_regs_in_stack();
25441 - /* Tell the thread that wants to stop the world that this */
25442 - /* thread has been stopped. Note that sem_post() is */
25443 - /* the only async-signal-safe primitive in LinuxThreads. */
25444 - sem_post(&GC_suspend_ack_sem);
25445 - me -> stop_info.last_stop_count = my_stop_count;
25447 - /* Wait until that thread tells us to restart by sending */
25448 - /* this thread a SIG_THR_RESTART signal. */
25449 - /* SIG_THR_RESTART should be masked at this point. Thus there */
25450 - /* is no race. */
25451 - if (sigfillset(&mask) != 0) ABORT("sigfillset() failed");
25452 - if (sigdelset(&mask, SIG_THR_RESTART) != 0) ABORT("sigdelset() failed");
25453 -# ifdef NO_SIGNALS
25454 - if (sigdelset(&mask, SIGINT) != 0) ABORT("sigdelset() failed");
25455 - if (sigdelset(&mask, SIGQUIT) != 0) ABORT("sigdelset() failed");
25456 - if (sigdelset(&mask, SIGTERM) != 0) ABORT("sigdelset() failed");
25457 - if (sigdelset(&mask, SIGABRT) != 0) ABORT("sigdelset() failed");
25460 - me->stop_info.signal = 0;
25461 - sigsuspend(&mask); /* Wait for signal */
25462 - } while (me->stop_info.signal != SIG_THR_RESTART);
25463 - /* If the RESTART signal gets lost, we can still lose. That should be */
25464 - /* less likely than losing the SUSPEND signal, since we don't do much */
25465 - /* between the sem_post and sigsuspend. */
25466 - /* We'd need more handshaking to work around that, since we don't want */
25467 - /* to accidentally leave a RESTART signal pending, thus causing us to */
25468 - /* continue prematurely in a future round. */
25471 - GC_printf1("Continuing 0x%lx\n", my_thread);
25475 -void GC_restart_handler(int sig)
25477 - pthread_t my_thread = pthread_self();
25480 - if (sig != SIG_THR_RESTART) ABORT("Bad signal in suspend_handler");
25482 - /* Let the GC_suspend_handler() know that we got a SIG_THR_RESTART. */
25483 - /* The lookup here is safe, since I'm doing this on behalf */
25484 - /* of a thread which holds the allocation lock in order */
25485 - /* to stop the world. Thus concurrent modification of the */
25486 - /* data structure is impossible. */
25487 - me = GC_lookup_thread(my_thread);
25488 - me->stop_info.signal = SIG_THR_RESTART;
25491 - ** Note: even if we didn't do anything useful here,
25492 - ** it would still be necessary to have a signal handler,
25493 - ** rather than ignoring the signals, otherwise
25494 - ** the signals will not be delivered at all, and
25495 - ** will thus not interrupt the sigsuspend() above.
25499 - GC_printf1("In GC_restart_handler for 0x%lx\n", pthread_self());
25504 -# define IF_IA64(x) x
25506 -# define IF_IA64(x)
25508 -/* We hold allocation lock. Should do exactly the right thing if the */
25509 -/* world is stopped. Should not fail if it isn't. */
25510 -void GC_push_all_stacks()
25515 - /* On IA64, we also need to scan the register backing store. */
25516 - IF_IA64(ptr_t bs_lo; ptr_t bs_hi;)
25517 - pthread_t me = pthread_self();
25519 - if (!GC_thr_initialized) GC_thr_init();
25520 - #if DEBUG_THREADS
25521 - GC_printf1("Pushing stacks from thread 0x%lx\n", (unsigned long) me);
25523 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25524 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25525 - if (p -> flags & FINISHED) continue;
25526 - if (pthread_equal(p -> id, me)) {
25528 - lo = (ptr_t)GC_save_regs_in_stack();
25530 - lo = GC_approx_sp();
25532 - IF_IA64(bs_hi = (ptr_t)GC_save_regs_in_stack();)
25534 - lo = p -> stop_info.stack_ptr;
25535 - IF_IA64(bs_hi = p -> backing_store_ptr;)
25537 - if ((p -> flags & MAIN_THREAD) == 0) {
25538 - hi = p -> stack_end;
25539 - IF_IA64(bs_lo = p -> backing_store_end);
25541 - /* The original stack. */
25542 - hi = GC_stackbottom;
25543 - IF_IA64(bs_lo = BACKING_STORE_BASE;)
25545 - #if DEBUG_THREADS
25546 - GC_printf3("Stack for thread 0x%lx = [%lx,%lx)\n",
25547 - (unsigned long) p -> id,
25548 - (unsigned long) lo, (unsigned long) hi);
25550 - if (0 == lo) ABORT("GC_push_all_stacks: sp not set!\n");
25551 -# ifdef STACK_GROWS_UP
25552 - /* We got them backwards! */
25553 - GC_push_all_stack(hi, lo);
25555 - GC_push_all_stack(lo, hi);
25558 - if (pthread_equal(p -> id, me)) {
25559 - GC_push_all_eager(bs_lo, bs_hi);
25561 - GC_push_all_stack(bs_lo, bs_hi);
25568 -/* There seems to be a very rare thread stopping problem. To help us */
25569 -/* debug that, we save the ids of the stopping thread. */
25570 -pthread_t GC_stopping_thread;
25571 -int GC_stopping_pid;
25573 -/* We hold the allocation lock. Suspend all threads that might */
25574 -/* still be running. Return the number of suspend signals that */
25576 -int GC_suspend_all()
25578 - int n_live_threads = 0;
25582 - pthread_t my_thread = pthread_self();
25584 - GC_stopping_thread = my_thread; /* debugging only. */
25585 - GC_stopping_pid = getpid(); /* debugging only. */
25586 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25587 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25588 - if (p -> id != my_thread) {
25589 - if (p -> flags & FINISHED) continue;
25590 - if (p -> stop_info.last_stop_count == GC_stop_count) continue;
25591 - if (p -> thread_blocked) /* Will wait */ continue;
25592 - n_live_threads++;
25593 - #if DEBUG_THREADS
25594 - GC_printf1("Sending suspend signal to 0x%lx\n", p -> id);
25597 - result = pthread_kill(p -> id, SIG_SUSPEND);
25600 - /* Not really there anymore. Possible? */
25601 - n_live_threads--;
25606 - ABORT("pthread_kill failed");
25611 - return n_live_threads;
25614 -/* Caller holds allocation lock. */
25615 -void GC_stop_world()
25618 - int n_live_threads;
25621 - #if DEBUG_THREADS
25622 - GC_printf1("Stopping the world from 0x%lx\n", pthread_self());
25625 - /* Make sure all free list construction has stopped before we start. */
25626 - /* No new construction can start, since free list construction is */
25627 - /* required to acquire and release the GC lock before it starts, */
25628 - /* and we have the lock. */
25629 -# ifdef PARALLEL_MARK
25630 - GC_acquire_mark_lock();
25631 - GC_ASSERT(GC_fl_builder_count == 0);
25632 - /* We should have previously waited for it to become zero. */
25633 -# endif /* PARALLEL_MARK */
25635 - n_live_threads = GC_suspend_all();
25637 - if (GC_retry_signals) {
25638 - unsigned long wait_usecs = 0; /* Total wait since retry. */
25639 -# define WAIT_UNIT 3000
25640 -# define RETRY_INTERVAL 100000
25644 - sem_getvalue(&GC_suspend_ack_sem, &ack_count);
25645 - if (ack_count == n_live_threads) break;
25646 - if (wait_usecs > RETRY_INTERVAL) {
25647 - int newly_sent = GC_suspend_all();
25650 - if (GC_print_stats) {
25651 - GC_printf1("Resent %ld signals after timeout\n",
25655 - sem_getvalue(&GC_suspend_ack_sem, &ack_count);
25656 - if (newly_sent < n_live_threads - ack_count) {
25657 - WARN("Lost some threads during GC_stop_world?!\n",0);
25658 - n_live_threads = ack_count + newly_sent;
25662 - usleep(WAIT_UNIT);
25663 - wait_usecs += WAIT_UNIT;
25666 - for (i = 0; i < n_live_threads; i++) {
25667 - if (0 != (code = sem_wait(&GC_suspend_ack_sem))) {
25668 - GC_err_printf1("Sem_wait returned %ld\n", (unsigned long)code);
25669 - ABORT("sem_wait for handler failed");
25672 -# ifdef PARALLEL_MARK
25673 - GC_release_mark_lock();
25675 - #if DEBUG_THREADS
25676 - GC_printf1("World stopped from 0x%lx\n", pthread_self());
25678 - GC_stopping_thread = 0; /* debugging only */
25681 -/* Caller holds allocation lock, and has held it continuously since */
25682 -/* the world stopped. */
25683 -void GC_start_world()
25685 - pthread_t my_thread = pthread_self();
25687 - register GC_thread p;
25688 - register int n_live_threads = 0;
25689 - register int result;
25691 -# if DEBUG_THREADS
25692 - GC_printf0("World starting\n");
25695 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25696 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25697 - if (p -> id != my_thread) {
25698 - if (p -> flags & FINISHED) continue;
25699 - if (p -> thread_blocked) continue;
25700 - n_live_threads++;
25701 - #if DEBUG_THREADS
25702 - GC_printf1("Sending restart signal to 0x%lx\n", p -> id);
25705 - result = pthread_kill(p -> id, SIG_THR_RESTART);
25708 - /* Not really there anymore. Possible? */
25709 - n_live_threads--;
25714 - ABORT("pthread_kill failed");
25719 - #if DEBUG_THREADS
25720 - GC_printf0("World started\n");
25724 -void GC_stop_init() {
25725 - struct sigaction act;
25727 - if (sem_init(&GC_suspend_ack_sem, 0, 0) != 0)
25728 - ABORT("sem_init failed");
25730 - act.sa_flags = SA_RESTART;
25731 - if (sigfillset(&act.sa_mask) != 0) {
25732 - ABORT("sigfillset() failed");
25734 -# ifdef NO_SIGNALS
25735 - if (sigdelset(&act.sa_mask, SIGINT) != 0
25736 - || sigdelset(&act.sa_mask, SIGQUIT != 0)
25737 - || sigdelset(&act.sa_mask, SIGABRT != 0)
25738 - || sigdelset(&act.sa_mask, SIGTERM != 0)) {
25739 - ABORT("sigdelset() failed");
25743 - /* SIG_THR_RESTART is unmasked by the handler when necessary. */
25744 - act.sa_handler = GC_suspend_handler;
25745 - if (sigaction(SIG_SUSPEND, &act, NULL) != 0) {
25746 - ABORT("Cannot set SIG_SUSPEND handler");
25749 - act.sa_handler = GC_restart_handler;
25750 - if (sigaction(SIG_THR_RESTART, &act, NULL) != 0) {
25751 - ABORT("Cannot set SIG_THR_RESTART handler");
25754 - /* Check for GC_RETRY_SIGNALS. */
25755 - if (0 != GETENV("GC_RETRY_SIGNALS")) {
25756 - GC_retry_signals = TRUE;
25758 - if (0 != GETENV("GC_NO_RETRY_SIGNALS")) {
25759 - GC_retry_signals = FALSE;
25762 - if (GC_print_stats && GC_retry_signals) {
25763 - GC_printf0("Will retry suspend signal if necessary.\n");
25769 diff -Nur ../boehm-gc/pthread_support.c boehm-gc/pthread_support.c
25770 --- ../boehm-gc/pthread_support.c Mon May 26 12:48:52 2003
25771 +++ boehm-gc/pthread_support.c Wed Dec 31 16:00:00 1969
25774 - * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
25775 - * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
25776 - * Copyright (c) 1998 by Fergus Henderson. All rights reserved.
25777 - * Copyright (c) 2000-2001 by Hewlett-Packard Company. All rights reserved.
25779 - * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
25780 - * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
25782 - * Permission is hereby granted to use or copy this program
25783 - * for any purpose, provided the above notices are retained on all copies.
25784 - * Permission to modify the code and to distribute modified code is granted,
25785 - * provided the above notices are retained, and a notice that the code was
25786 - * modified is included with the above copyright notice.
25789 - * Support code for LinuxThreads, the clone()-based kernel
25790 - * thread package for Linux which is included in libc6.
25792 - * This code relies on implementation details of LinuxThreads,
25793 - * (i.e. properties not guaranteed by the Pthread standard),
25794 - * though this version now does less of that than the other Pthreads
25797 - * Note that there is a lot of code duplication between linux_threads.c
25798 - * and thread support for some of the other Posix platforms; any changes
25799 - * made here may need to be reflected there too.
25801 - /* DG/UX ix86 support <takis@xfree86.org> */
25803 - * Linux_threads.c now also includes some code to support HPUX and
25804 - * OSF1 (Compaq Tru64 Unix, really). The OSF1 support is not yet
25805 - * functional. The OSF1 code is based on Eric Benson's
25806 - * patch, though that was originally against hpux_irix_threads. The code
25807 - * here is completely untested. With 0.0000001% probability, it might
25810 - * Eric also suggested an alternate basis for a lock implementation in
25812 - * + #elif defined(OSF1)
25813 - * + unsigned long GC_allocate_lock = 0;
25814 - * + msemaphore GC_allocate_semaphore;
25815 - * + # define GC_TRY_LOCK() \
25816 - * + ((msem_lock(&GC_allocate_semaphore, MSEM_IF_NOWAIT) == 0) \
25817 - * + ? (GC_allocate_lock = 1) \
25819 - * + # define GC_LOCK_TAKEN GC_allocate_lock
25822 -/*#define DEBUG_THREADS 1*/
25823 -/*#define GC_ASSERTIONS*/
25825 -# include "private/pthread_support.h"
25827 -# if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
25828 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
25830 -# if defined(GC_HPUX_THREADS) && !defined(USE_PTHREAD_SPECIFIC) \
25831 - && !defined(USE_HPUX_TLS)
25832 -# define USE_HPUX_TLS
25835 -# if (defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) || \
25836 - defined(GC_DARWIN_THREADS)) && !defined(USE_PTHREAD_SPECIFIC)
25837 -# define USE_PTHREAD_SPECIFIC
25840 -# if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE)
25841 -# define _POSIX4A_DRAFT10_SOURCE 1
25844 -# if defined(GC_DGUX386_THREADS) && !defined(_USING_POSIX4A_DRAFT10)
25845 -# define _USING_POSIX4A_DRAFT10 1
25848 -# ifdef THREAD_LOCAL_ALLOC
25849 -# if !defined(USE_PTHREAD_SPECIFIC) && !defined(USE_HPUX_TLS)
25850 -# include "private/specific.h"
25852 -# if defined(USE_PTHREAD_SPECIFIC)
25853 -# define GC_getspecific pthread_getspecific
25854 -# define GC_setspecific pthread_setspecific
25855 -# define GC_key_create pthread_key_create
25856 - typedef pthread_key_t GC_key_t;
25858 -# if defined(USE_HPUX_TLS)
25859 -# define GC_getspecific(x) (x)
25860 -# define GC_setspecific(key, v) ((key) = (v), 0)
25861 -# define GC_key_create(key, d) 0
25862 - typedef void * GC_key_t;
25865 -# include <stdlib.h>
25866 -# include <pthread.h>
25867 -# include <sched.h>
25868 -# include <time.h>
25869 -# include <errno.h>
25870 -# include <unistd.h>
25871 -# include <sys/mman.h>
25872 -# include <sys/time.h>
25873 -# include <sys/types.h>
25874 -# include <sys/stat.h>
25875 -# include <fcntl.h>
25877 -#if defined(GC_DARWIN_THREADS)
25878 -# include "private/darwin_semaphore.h"
25880 -# include <semaphore.h>
25881 -#endif /* !GC_DARWIN_THREADS */
25883 -#if defined(GC_DARWIN_THREADS)
25884 -# include <sys/sysctl.h>
25885 -#endif /* GC_DARWIN_THREADS */
25889 -#if defined(GC_DGUX386_THREADS)
25890 -# include <sys/dg_sys_info.h>
25891 -# include <sys/_int_psem.h>
25892 - /* sem_t is an uint in DG/UX */
25893 - typedef unsigned int sem_t;
25894 -#endif /* GC_DGUX386_THREADS */
25897 -# define __inline__
25900 -#ifdef GC_USE_LD_WRAP
25901 -# define WRAP_FUNC(f) __wrap_##f
25902 -# define REAL_FUNC(f) __real_##f
25904 -# define WRAP_FUNC(f) GC_##f
25905 -# if !defined(GC_DGUX386_THREADS)
25906 -# define REAL_FUNC(f) f
25907 -# else /* GC_DGUX386_THREADS */
25908 -# define REAL_FUNC(f) __d10_##f
25909 -# endif /* GC_DGUX386_THREADS */
25910 -# undef pthread_create
25911 -# if !defined(GC_DARWIN_THREADS)
25912 -# undef pthread_sigmask
25914 -# undef pthread_join
25915 -# undef pthread_detach
25918 -void GC_thr_init();
25920 -static GC_bool parallel_initialized = FALSE;
25922 -void GC_init_parallel();
25924 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
25926 -/* We don't really support thread-local allocation with DBG_HDRS_ALL */
25928 -#ifdef USE_HPUX_TLS
25931 -GC_key_t GC_thread_key;
25933 -static GC_bool keys_initialized;
25935 -/* Recover the contents of the freelist array fl into the global one gfl.*/
25936 -/* Note that the indexing scheme differs, in that gfl has finer size */
25937 -/* resolution, even if not all entries are used. */
25938 -/* We hold the allocator lock. */
25939 -static void return_freelists(ptr_t *fl, ptr_t *gfl)
25945 - for (i = 1; i < NFREELISTS; ++i) {
25946 - nwords = i * (GRANULARITY/sizeof(word));
25949 - if ((word)q >= HBLKSIZE) {
25950 - if (gfl[nwords] == 0) {
25953 - /* Concatenate: */
25954 - for (; (word)q >= HBLKSIZE; qptr = &(obj_link(q)), q = *qptr);
25955 - GC_ASSERT(0 == q);
25956 - *qptr = gfl[nwords];
25957 - gfl[nwords] = fl[i];
25960 - /* Clear fl[i], since the thread structure may hang around. */
25961 - /* Do it in a way that is likely to trap if we access it. */
25962 - fl[i] = (ptr_t)HBLKSIZE;
25966 -/* We statically allocate a single "size 0" object. It is linked to */
25967 -/* itself, and is thus repeatedly reused for all size 0 allocation */
25968 -/* requests. (Size 0 gcj allocation requests are incorrect, and */
25969 -/* we arrange for those to fault asap.) */
25970 -static ptr_t size_zero_object = (ptr_t)(&size_zero_object);
25972 -/* Each thread structure must be initialized. */
25973 -/* This call must be made from the new thread. */
25974 -/* Caller holds allocation lock. */
25975 -void GC_init_thread_local(GC_thread p)
25979 - if (!keys_initialized) {
25980 - if (0 != GC_key_create(&GC_thread_key, 0)) {
25981 - ABORT("Failed to create key for local allocator");
25983 - keys_initialized = TRUE;
25985 - if (0 != GC_setspecific(GC_thread_key, p)) {
25986 - ABORT("Failed to set thread specific allocation pointers");
25988 - for (i = 1; i < NFREELISTS; ++i) {
25989 - p -> ptrfree_freelists[i] = (ptr_t)1;
25990 - p -> normal_freelists[i] = (ptr_t)1;
25991 -# ifdef GC_GCJ_SUPPORT
25992 - p -> gcj_freelists[i] = (ptr_t)1;
25995 - /* Set up the size 0 free lists. */
25996 - p -> ptrfree_freelists[0] = (ptr_t)(&size_zero_object);
25997 - p -> normal_freelists[0] = (ptr_t)(&size_zero_object);
25998 -# ifdef GC_GCJ_SUPPORT
25999 - p -> gcj_freelists[0] = (ptr_t)(-1);
26003 -#ifdef GC_GCJ_SUPPORT
26004 - extern ptr_t * GC_gcjobjfreelist;
26007 -/* We hold the allocator lock. */
26008 -void GC_destroy_thread_local(GC_thread p)
26010 - /* We currently only do this from the thread itself or from */
26011 - /* the fork handler for a child process. */
26012 -# ifndef HANDLE_FORK
26013 - GC_ASSERT(GC_getspecific(GC_thread_key) == (void *)p);
26015 - return_freelists(p -> ptrfree_freelists, GC_aobjfreelist);
26016 - return_freelists(p -> normal_freelists, GC_objfreelist);
26017 -# ifdef GC_GCJ_SUPPORT
26018 - return_freelists(p -> gcj_freelists, GC_gcjobjfreelist);
26022 -extern GC_PTR GC_generic_malloc_many();
26024 -GC_PTR GC_local_malloc(size_t bytes)
26026 - if (EXPECT(!SMALL_ENOUGH(bytes),0)) {
26027 - return(GC_malloc(bytes));
26029 - int index = INDEX_FROM_BYTES(bytes);
26032 -# if defined(REDIRECT_MALLOC) && !defined(USE_PTHREAD_SPECIFIC)
26033 - GC_key_t k = GC_thread_key;
26037 -# if defined(REDIRECT_MALLOC) && !defined(USE_PTHREAD_SPECIFIC)
26038 - if (EXPECT(0 == k, 0)) {
26039 - /* This can happen if we get called when the world is */
26040 - /* being initialized. Whether we can actually complete */
26041 - /* the initialization then is unclear. */
26042 - GC_init_parallel();
26043 - k = GC_thread_key;
26046 - tsd = GC_getspecific(GC_thread_key);
26047 -# ifdef GC_ASSERTIONS
26049 - GC_ASSERT(tsd == (void *)GC_lookup_thread(pthread_self()));
26052 - my_fl = ((GC_thread)tsd) -> normal_freelists + index;
26053 - my_entry = *my_fl;
26054 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
26055 - ptr_t next = obj_link(my_entry);
26056 - GC_PTR result = (GC_PTR)my_entry;
26058 - obj_link(my_entry) = 0;
26059 - PREFETCH_FOR_WRITE(next);
26061 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
26062 - *my_fl = my_entry + index + 1;
26063 - return GC_malloc(bytes);
26065 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), NORMAL, my_fl);
26066 - if (*my_fl == 0) return GC_oom_fn(bytes);
26067 - return GC_local_malloc(bytes);
26072 -GC_PTR GC_local_malloc_atomic(size_t bytes)
26074 - if (EXPECT(!SMALL_ENOUGH(bytes), 0)) {
26075 - return(GC_malloc_atomic(bytes));
26077 - int index = INDEX_FROM_BYTES(bytes);
26078 - ptr_t * my_fl = ((GC_thread)GC_getspecific(GC_thread_key))
26079 - -> ptrfree_freelists + index;
26080 - ptr_t my_entry = *my_fl;
26082 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
26083 - GC_PTR result = (GC_PTR)my_entry;
26084 - *my_fl = obj_link(my_entry);
26086 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
26087 - *my_fl = my_entry + index + 1;
26088 - return GC_malloc_atomic(bytes);
26090 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), PTRFREE, my_fl);
26091 - /* *my_fl is updated while the collector is excluded; */
26092 - /* the free list is always visible to the collector as */
26094 - if (*my_fl == 0) return GC_oom_fn(bytes);
26095 - return GC_local_malloc_atomic(bytes);
26100 -#ifdef GC_GCJ_SUPPORT
26102 -#include "include/gc_gcj.h"
26104 -#ifdef GC_ASSERTIONS
26105 - extern GC_bool GC_gcj_malloc_initialized;
26108 -extern int GC_gcj_kind;
26110 -GC_PTR GC_local_gcj_malloc(size_t bytes,
26111 - void * ptr_to_struct_containing_descr)
26113 - GC_ASSERT(GC_gcj_malloc_initialized);
26114 - if (EXPECT(!SMALL_ENOUGH(bytes), 0)) {
26115 - return GC_gcj_malloc(bytes, ptr_to_struct_containing_descr);
26117 - int index = INDEX_FROM_BYTES(bytes);
26118 - ptr_t * my_fl = ((GC_thread)GC_getspecific(GC_thread_key))
26119 - -> gcj_freelists + index;
26120 - ptr_t my_entry = *my_fl;
26121 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
26122 - GC_PTR result = (GC_PTR)my_entry;
26123 - GC_ASSERT(!GC_incremental);
26124 - /* We assert that any concurrent marker will stop us. */
26125 - /* Thus it is impossible for a mark procedure to see the */
26126 - /* allocation of the next object, but to see this object */
26127 - /* still containing a free list pointer. Otherwise the */
26128 - /* marker might find a random "mark descriptor". */
26129 - *(volatile ptr_t *)my_fl = obj_link(my_entry);
26130 - /* We must update the freelist before we store the pointer. */
26131 - /* Otherwise a GC at this point would see a corrupted */
26133 - /* A memory barrier is probably never needed, since the */
26134 - /* action of stopping this thread will cause prior writes */
26135 - /* to complete. */
26136 - GC_ASSERT(((void * volatile *)result)[1] == 0);
26137 - *(void * volatile *)result = ptr_to_struct_containing_descr;
26139 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
26140 - if (!GC_incremental) *my_fl = my_entry + index + 1;
26141 - /* In the incremental case, we always have to take this */
26142 - /* path. Thus we leave the counter alone. */
26143 - return GC_gcj_malloc(bytes, ptr_to_struct_containing_descr);
26145 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), GC_gcj_kind, my_fl);
26146 - if (*my_fl == 0) return GC_oom_fn(bytes);
26147 - return GC_local_gcj_malloc(bytes, ptr_to_struct_containing_descr);
26152 -#endif /* GC_GCJ_SUPPORT */
26154 -# else /* !THREAD_LOCAL_ALLOC && !DBG_HDRS_ALL */
26156 -# define GC_destroy_thread_local(t)
26158 -# endif /* !THREAD_LOCAL_ALLOC */
26162 -To make sure that we're using LinuxThreads and not some other thread
26163 -package, we generate a dummy reference to `pthread_kill_other_threads_np'
26164 -(was `__pthread_initial_thread_bos' but that disappeared),
26165 -which is a symbol defined in LinuxThreads, but (hopefully) not in other
26168 -We no longer do this, since this code is now portable enough that it might
26169 -actually work for something else.
26171 -void (*dummy_var_to_force_linux_threads)() = pthread_kill_other_threads_np;
26174 -#if defined(SPARC) || defined(IA64)
26175 - extern word GC_save_regs_in_stack();
26178 -long GC_nprocs = 1; /* Number of processors. We may not have */
26179 - /* access to all of them, but this is as good */
26180 - /* a guess as any ... */
26182 -#ifdef PARALLEL_MARK
26184 -# ifndef MAX_MARKERS
26185 -# define MAX_MARKERS 16
26188 -static ptr_t marker_sp[MAX_MARKERS] = {0};
26190 -void * GC_mark_thread(void * id)
26192 - word my_mark_no = 0;
26194 - marker_sp[(word)id] = GC_approx_sp();
26195 - for (;; ++my_mark_no) {
26196 - /* GC_mark_no is passed only to allow GC_help_marker to terminate */
26197 - /* promptly. This is important if it were called from the signal */
26198 - /* handler or from the GC lock acquisition code. Under Linux, it's */
26199 - /* not safe to call it from a signal handler, since it uses mutexes */
26200 - /* and condition variables. Since it is called only here, the */
26201 - /* argument is unnecessary. */
26202 - if (my_mark_no < GC_mark_no || my_mark_no > GC_mark_no + 2) {
26203 - /* resynchronize if we get far off, e.g. because GC_mark_no */
26205 - my_mark_no = GC_mark_no;
26207 -# ifdef DEBUG_THREADS
26208 - GC_printf1("Starting mark helper for mark number %ld\n", my_mark_no);
26210 - GC_help_marker(my_mark_no);
26214 -extern long GC_markers; /* Number of mark threads we would */
26215 - /* like to have. Includes the */
26216 - /* initiating thread. */
26218 -pthread_t GC_mark_threads[MAX_MARKERS];
26220 -#define PTHREAD_CREATE REAL_FUNC(pthread_create)
26222 -static void start_mark_threads()
26225 - pthread_attr_t attr;
26227 - if (GC_markers > MAX_MARKERS) {
26228 - WARN("Limiting number of mark threads\n", 0);
26229 - GC_markers = MAX_MARKERS;
26231 - if (0 != pthread_attr_init(&attr)) ABORT("pthread_attr_init failed");
26233 - if (0 != pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED))
26234 - ABORT("pthread_attr_setdetachstate failed");
26236 -# if defined(HPUX) || defined(GC_DGUX386_THREADS)
26237 - /* Default stack size is usually too small: fix it. */
26238 - /* Otherwise marker threads or GC may run out of */
26240 -# define MIN_STACK_SIZE (8*HBLKSIZE*sizeof(word))
26245 - if (pthread_attr_getstacksize(&attr, &old_size) != 0)
26246 - ABORT("pthread_attr_getstacksize failed\n");
26247 - if (old_size < MIN_STACK_SIZE) {
26248 - if (pthread_attr_setstacksize(&attr, MIN_STACK_SIZE) != 0)
26249 - ABORT("pthread_attr_setstacksize failed\n");
26252 -# endif /* HPUX || GC_DGUX386_THREADS */
26254 - if (GC_print_stats) {
26255 - GC_printf1("Starting %ld marker threads\n", GC_markers - 1);
26258 - for (i = 0; i < GC_markers - 1; ++i) {
26259 - if (0 != PTHREAD_CREATE(GC_mark_threads + i, &attr,
26260 - GC_mark_thread, (void *)(word)i)) {
26261 - WARN("Marker thread creation failed, errno = %ld.\n", errno);
26266 -#else /* !PARALLEL_MARK */
26268 -static __inline__ void start_mark_threads()
26272 -#endif /* !PARALLEL_MARK */
26274 -/* Defining INSTALL_LOOPING_SEGV_HANDLER causes SIGSEGV and SIGBUS to */
26275 -/* result in an infinite loop in a signal handler. This can be very */
26276 -/* useful for debugging, since (as of RH7) gdb still seems to have */
26277 -/* serious problems with threads. */
26278 -#ifdef INSTALL_LOOPING_SEGV_HANDLER
26279 -void GC_looping_handler(int sig)
26281 - GC_printf3("Signal %ld in thread %lx, pid %ld\n",
26282 - sig, pthread_self(), getpid());
26287 -GC_bool GC_thr_initialized = FALSE;
26289 -volatile GC_thread GC_threads[THREAD_TABLE_SZ];
26291 -void GC_push_thread_structures GC_PROTO((void))
26293 - GC_push_all((ptr_t)(GC_threads), (ptr_t)(GC_threads)+sizeof(GC_threads));
26294 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26295 - GC_push_all((ptr_t)(&GC_thread_key),
26296 - (ptr_t)(&GC_thread_key)+sizeof(&GC_thread_key));
26300 -#ifdef THREAD_LOCAL_ALLOC
26301 -/* We must explicitly mark ptrfree and gcj free lists, since the free */
26302 -/* list links wouldn't otherwise be found. We also set them in the */
26303 -/* normal free lists, since that involves touching less memory than if */
26304 -/* we scanned them normally. */
26305 -void GC_mark_thread_local_free_lists(void)
26311 - for (i = 0; i < THREAD_TABLE_SZ; ++i) {
26312 - for (p = GC_threads[i]; 0 != p; p = p -> next) {
26313 - for (j = 1; j < NFREELISTS; ++j) {
26314 - q = p -> ptrfree_freelists[j];
26315 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
26316 - q = p -> normal_freelists[j];
26317 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
26318 -# ifdef GC_GCJ_SUPPORT
26319 - q = p -> gcj_freelists[j];
26320 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
26321 -# endif /* GC_GCJ_SUPPORT */
26326 -#endif /* THREAD_LOCAL_ALLOC */
26328 -static struct GC_Thread_Rep first_thread;
26330 -/* Add a thread to GC_threads. We assume it wasn't already there. */
26331 -/* Caller holds allocation lock. */
26332 -GC_thread GC_new_thread(pthread_t id)
26334 - int hv = ((word)id) % THREAD_TABLE_SZ;
26335 - GC_thread result;
26336 - static GC_bool first_thread_used = FALSE;
26338 - if (!first_thread_used) {
26339 - result = &first_thread;
26340 - first_thread_used = TRUE;
26342 - result = (struct GC_Thread_Rep *)
26343 - GC_INTERNAL_MALLOC(sizeof(struct GC_Thread_Rep), NORMAL);
26345 - if (result == 0) return(0);
26346 - result -> id = id;
26347 - result -> next = GC_threads[hv];
26348 - GC_threads[hv] = result;
26349 - GC_ASSERT(result -> flags == 0 && result -> thread_blocked == 0);
26353 -/* Delete a thread from GC_threads. We assume it is there. */
26354 -/* (The code intentionally traps if it wasn't.) */
26355 -/* Caller holds allocation lock. */
26356 -void GC_delete_thread(pthread_t id)
26358 - int hv = ((word)id) % THREAD_TABLE_SZ;
26359 - register GC_thread p = GC_threads[hv];
26360 - register GC_thread prev = 0;
26362 - while (!pthread_equal(p -> id, id)) {
26367 - GC_threads[hv] = p -> next;
26369 - prev -> next = p -> next;
26371 - GC_INTERNAL_FREE(p);
26374 -/* If a thread has been joined, but we have not yet */
26375 -/* been notified, then there may be more than one thread */
26376 -/* in the table with the same pthread id. */
26377 -/* This is OK, but we need a way to delete a specific one. */
26378 -void GC_delete_gc_thread(pthread_t id, GC_thread gc_id)
26380 - int hv = ((word)id) % THREAD_TABLE_SZ;
26381 - register GC_thread p = GC_threads[hv];
26382 - register GC_thread prev = 0;
26384 - while (p != gc_id) {
26389 - GC_threads[hv] = p -> next;
26391 - prev -> next = p -> next;
26393 - GC_INTERNAL_FREE(p);
26396 -/* Return a GC_thread corresponding to a given thread_t. */
26397 -/* Returns 0 if it's not there. */
26398 -/* Caller holds allocation lock or otherwise inhibits */
26400 -/* If there is more than one thread with the given id we */
26401 -/* return the most recent one. */
26402 -GC_thread GC_lookup_thread(pthread_t id)
26404 - int hv = ((word)id) % THREAD_TABLE_SZ;
26405 - register GC_thread p = GC_threads[hv];
26407 - while (p != 0 && !pthread_equal(p -> id, id)) p = p -> next;
26411 -#ifdef HANDLE_FORK
26412 -/* Remove all entries from the GC_threads table, except the */
26413 -/* one for the current thread. We need to do this in the child */
26414 -/* process after a fork(), since only the current thread */
26415 -/* survives in the child. */
26416 -void GC_remove_all_threads_but_me(void)
26418 - pthread_t self = pthread_self();
26420 - GC_thread p, next, me;
26422 - for (hv = 0; hv < THREAD_TABLE_SZ; ++hv) {
26424 - for (p = GC_threads[hv]; 0 != p; p = next) {
26425 - next = p -> next;
26426 - if (p -> id == self) {
26430 -# ifdef THREAD_LOCAL_ALLOC
26431 - if (!(p -> flags & FINISHED)) {
26432 - GC_destroy_thread_local(p);
26434 -# endif /* THREAD_LOCAL_ALLOC */
26435 - if (p != &first_thread) GC_INTERNAL_FREE(p);
26438 - GC_threads[hv] = me;
26441 -#endif /* HANDLE_FORK */
26443 -#ifdef USE_PROC_FOR_LIBRARIES
26444 -int GC_segment_is_thread_stack(ptr_t lo, ptr_t hi)
26449 -# ifdef PARALLEL_MARK
26450 - for (i = 0; i < GC_markers; ++i) {
26451 - if (marker_sp[i] > lo & marker_sp[i] < hi) return 1;
26454 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
26455 - for (p = GC_threads[i]; p != 0; p = p -> next) {
26456 - if (0 != p -> stack_end) {
26457 -# ifdef STACK_GROWS_UP
26458 - if (p -> stack_end >= lo && p -> stack_end < hi) return 1;
26459 -# else /* STACK_GROWS_DOWN */
26460 - if (p -> stack_end > lo && p -> stack_end <= hi) return 1;
26467 -#endif /* USE_PROC_FOR_LIBRARIES */
26469 -#ifdef GC_LINUX_THREADS
26470 -/* Return the number of processors, or i<= 0 if it can't be determined. */
26471 -int GC_get_nprocs()
26473 - /* Should be "return sysconf(_SC_NPROCESSORS_ONLN);" but that */
26474 - /* appears to be buggy in many cases. */
26475 - /* We look for lines "cpu<n>" in /proc/stat. */
26476 -# define STAT_BUF_SIZE 4096
26477 -# define STAT_READ read
26478 - /* If read is wrapped, this may need to be redefined to call */
26479 - /* the real one. */
26480 - char stat_buf[STAT_BUF_SIZE];
26483 - /* Some old kernels only have a single "cpu nnnn ..." */
26484 - /* entry in /proc/stat. We identify those as */
26485 - /* uniprocessors. */
26486 - size_t i, len = 0;
26488 - f = open("/proc/stat", O_RDONLY);
26489 - if (f < 0 || (len = STAT_READ(f, stat_buf, STAT_BUF_SIZE)) < 100) {
26490 - WARN("Couldn't read /proc/stat\n", 0);
26493 - for (i = 0; i < len - 100; ++i) {
26494 - if (stat_buf[i] == '\n' && stat_buf[i+1] == 'c'
26495 - && stat_buf[i+2] == 'p' && stat_buf[i+3] == 'u') {
26496 - int cpu_no = atoi(stat_buf + i + 4);
26497 - if (cpu_no >= result) result = cpu_no + 1;
26503 -#endif /* GC_LINUX_THREADS */
26505 -/* We hold the GC lock. Wait until an in-progress GC has finished. */
26506 -/* Repeatedly RELEASES GC LOCK in order to wait. */
26507 -/* If wait_for_all is true, then we exit with the GC lock held and no */
26508 -/* collection in progress; otherwise we just wait for the current GC */
26510 -extern GC_bool GC_collection_in_progress();
26511 -void GC_wait_for_gc_completion(GC_bool wait_for_all)
26513 - if (GC_incremental && GC_collection_in_progress()) {
26514 - int old_gc_no = GC_gc_no;
26516 - /* Make sure that no part of our stack is still on the mark stack, */
26517 - /* since it's about to be unmapped. */
26518 - while (GC_incremental && GC_collection_in_progress()
26519 - && (wait_for_all || old_gc_no == GC_gc_no)) {
26521 - GC_collect_a_little_inner(1);
26530 -#ifdef HANDLE_FORK
26531 -/* Procedures called before and after a fork. The goal here is to make */
26532 -/* it safe to call GC_malloc() in a forked child. It's unclear that is */
26533 -/* attainable, since the single UNIX spec seems to imply that one */
26534 -/* should only call async-signal-safe functions, and we probably can't */
26535 -/* quite guarantee that. But we give it our best shot. (That same */
26536 -/* spec also implies that it's not safe to call the system malloc */
26537 -/* between fork() and exec(). Thus we're doing no worse than it. */
26539 -/* Called before a fork() */
26540 -void GC_fork_prepare_proc(void)
26542 - /* Acquire all relevant locks, so that after releasing the locks */
26543 - /* the child will see a consistent state in which monitor */
26544 - /* invariants hold. Unfortunately, we can't acquire libc locks */
26545 - /* we might need, and there seems to be no guarantee that libc */
26546 - /* must install a suitable fork handler. */
26547 - /* Wait for an ongoing GC to finish, since we can't finish it in */
26548 - /* the (one remaining thread in) the child. */
26550 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26551 - GC_wait_for_reclaim();
26553 - GC_wait_for_gc_completion(TRUE);
26554 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26555 - GC_acquire_mark_lock();
26559 -/* Called in parent after a fork() */
26560 -void GC_fork_parent_proc(void)
26562 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26563 - GC_release_mark_lock();
26568 -/* Called in child after a fork() */
26569 -void GC_fork_child_proc(void)
26571 - /* Clean up the thread table, so that just our thread is left. */
26572 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26573 - GC_release_mark_lock();
26575 - GC_remove_all_threads_but_me();
26576 -# ifdef PARALLEL_MARK
26577 - /* Turn off parallel marking in the child, since we are probably */
26578 - /* just going to exec, and we would have to restart mark threads. */
26580 - GC_parallel = FALSE;
26581 -# endif /* PARALLEL_MARK */
26584 -#endif /* HANDLE_FORK */
26586 -#if defined(GC_DGUX386_THREADS)
26587 -/* Return the number of processors, or i<= 0 if it can't be determined. */
26588 -int GC_get_nprocs()
26590 - /* <takis@XFree86.Org> */
26592 - struct dg_sys_info_pm_info pm_sysinfo;
26595 - status = dg_sys_info((long int *) &pm_sysinfo,
26596 - DG_SYS_INFO_PM_INFO_TYPE, DG_SYS_INFO_PM_CURRENT_VERSION);
26598 - /* set -1 for error */
26601 - /* Active CPUs */
26602 - numCpus = pm_sysinfo.idle_vp_count;
26604 -# ifdef DEBUG_THREADS
26605 - GC_printf1("Number of active CPUs in this system: %d\n", numCpus);
26609 -#endif /* GC_DGUX386_THREADS */
26611 -/* We hold the allocation lock. */
26612 -void GC_thr_init()
26614 -# ifndef GC_DARWIN_THREADS
26619 - if (GC_thr_initialized) return;
26620 - GC_thr_initialized = TRUE;
26622 -# ifdef HANDLE_FORK
26623 - /* Prepare for a possible fork. */
26624 - pthread_atfork(GC_fork_prepare_proc, GC_fork_parent_proc,
26625 - GC_fork_child_proc);
26626 -# endif /* HANDLE_FORK */
26627 - /* Add the initial thread, so we can stop it. */
26628 - t = GC_new_thread(pthread_self());
26629 -# ifdef GC_DARWIN_THREADS
26630 - t -> stop_info.mach_thread = mach_thread_self();
26632 - t -> stop_info.stack_ptr = (ptr_t)(&dummy);
26634 - t -> flags = DETACHED | MAIN_THREAD;
26638 - /* Set GC_nprocs. */
26640 - char * nprocs_string = GETENV("GC_NPROCS");
26642 - if (nprocs_string != NULL) GC_nprocs = atoi(nprocs_string);
26644 - if (GC_nprocs <= 0) {
26645 -# if defined(GC_HPUX_THREADS)
26646 - GC_nprocs = pthread_num_processors_np();
26648 -# if defined(GC_OSF1_THREADS)
26649 - GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN);
26650 - if (GC_nprocs <= 0) GC_nprocs = 1;
26652 -# if defined(GC_FREEBSD_THREADS)
26655 -# if defined(GC_DARWIN_THREADS)
26657 - size_t len = sizeof(ncpus);
26658 - sysctl((int[2]) {CTL_HW, HW_NCPU}, 2, &ncpus, &len, NULL, 0);
26659 - GC_nprocs = ncpus;
26661 -# if defined(GC_LINUX_THREADS) || defined(GC_DGUX386_THREADS)
26662 - GC_nprocs = GC_get_nprocs();
26665 - if (GC_nprocs <= 0) {
26666 - WARN("GC_get_nprocs() returned %ld\n", GC_nprocs);
26668 -# ifdef PARALLEL_MARK
26672 -# ifdef PARALLEL_MARK
26674 - char * markers_string = GETENV("GC_MARKERS");
26675 - if (markers_string != NULL) {
26676 - GC_markers = atoi(markers_string);
26678 - GC_markers = GC_nprocs;
26683 -# ifdef PARALLEL_MARK
26685 - if (GC_print_stats) {
26686 - GC_printf2("Number of processors = %ld, "
26687 - "number of marker threads = %ld\n", GC_nprocs, GC_markers);
26690 - if (GC_markers == 1) {
26691 - GC_parallel = FALSE;
26693 - if (GC_print_stats) {
26694 - GC_printf0("Single marker thread, turning off parallel marking\n");
26698 - GC_parallel = TRUE;
26699 - /* Disable true incremental collection, but generational is OK. */
26700 - GC_time_limit = GC_TIME_UNLIMITED;
26706 -/* Perform all initializations, including those that */
26707 -/* may require allocation. */
26708 -/* Called without allocation lock. */
26709 -/* Must be called before a second thread is created. */
26710 -/* Called without allocation lock. */
26711 -void GC_init_parallel()
26713 - if (parallel_initialized) return;
26714 - parallel_initialized = TRUE;
26716 - /* GC_init() calls us back, so set flag first. */
26717 - if (!GC_is_initialized) GC_init();
26718 - /* If we are using a parallel marker, start the helper threads. */
26719 -# ifdef PARALLEL_MARK
26720 - if (GC_parallel) start_mark_threads();
26722 - /* Initialize thread local free lists if used. */
26723 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26725 - GC_init_thread_local(GC_lookup_thread(pthread_self()));
26731 -#if !defined(GC_DARWIN_THREADS)
26732 -int WRAP_FUNC(pthread_sigmask)(int how, const sigset_t *set, sigset_t *oset)
26734 - sigset_t fudged_set;
26736 - if (set != NULL && (how == SIG_BLOCK || how == SIG_SETMASK)) {
26737 - fudged_set = *set;
26738 - sigdelset(&fudged_set, SIG_SUSPEND);
26739 - set = &fudged_set;
26741 - return(REAL_FUNC(pthread_sigmask)(how, set, oset));
26743 -#endif /* !GC_DARWIN_THREADS */
26745 -/* Wrappers for functions that are likely to block for an appreciable */
26746 -/* length of time. Must be called in pairs, if at all. */
26747 -/* Nothing much beyond the system call itself should be executed */
26748 -/* between these. */
26750 -void GC_start_blocking(void) {
26751 -# define SP_SLOP 128
26754 - me = GC_lookup_thread(pthread_self());
26755 - GC_ASSERT(!(me -> thread_blocked));
26757 - me -> stop_info.stack_ptr = (ptr_t)GC_save_regs_in_stack();
26759 -# ifndef GC_DARWIN_THREADS
26760 - me -> stop_info.stack_ptr = (ptr_t)GC_approx_sp();
26764 - me -> backing_store_ptr = (ptr_t)GC_save_regs_in_stack() + SP_SLOP;
26766 - /* Add some slop to the stack pointer, since the wrapped call may */
26767 - /* end up pushing more callee-save registers. */
26768 -# ifndef GC_DARWIN_THREADS
26769 -# ifdef STACK_GROWS_UP
26770 - me -> stop_info.stack_ptr += SP_SLOP;
26772 - me -> stop_info.stack_ptr -= SP_SLOP;
26775 - me -> thread_blocked = TRUE;
26779 -void GC_end_blocking(void) {
26781 - LOCK(); /* This will block if the world is stopped. */
26782 - me = GC_lookup_thread(pthread_self());
26783 - GC_ASSERT(me -> thread_blocked);
26784 - me -> thread_blocked = FALSE;
26788 -#if defined(GC_DGUX386_THREADS)
26789 -#define __d10_sleep sleep
26790 -#endif /* GC_DGUX386_THREADS */
26792 -/* A wrapper for the standard C sleep function */
26793 -int WRAP_FUNC(sleep) (unsigned int seconds)
26797 - GC_start_blocking();
26798 - result = REAL_FUNC(sleep)(seconds);
26799 - GC_end_blocking();
26803 -struct start_info {
26804 - void *(*start_routine)(void *);
26807 - sem_t registered; /* 1 ==> in our thread table, but */
26808 - /* parent hasn't yet noticed. */
26811 -/* Called at thread exit. */
26812 -/* Never called for main thread. That's OK, since it */
26813 -/* results in at most a tiny one-time leak. And */
26814 -/* linuxthreads doesn't reclaim the main threads */
26815 -/* resources or id anyway. */
26816 -void GC_thread_exit_proc(void *arg)
26821 - me = GC_lookup_thread(pthread_self());
26822 - GC_destroy_thread_local(me);
26823 - if (me -> flags & DETACHED) {
26824 - GC_delete_thread(pthread_self());
26826 - me -> flags |= FINISHED;
26828 -# if defined(THREAD_LOCAL_ALLOC) && !defined(USE_PTHREAD_SPECIFIC) \
26829 - && !defined(USE_HPUX_TLS) && !defined(DBG_HDRS_ALL)
26830 - GC_remove_specific(GC_thread_key);
26832 - GC_wait_for_gc_completion(FALSE);
26836 -int WRAP_FUNC(pthread_join)(pthread_t thread, void **retval)
26839 - GC_thread thread_gc_id;
26842 - thread_gc_id = GC_lookup_thread(thread);
26843 - /* This is guaranteed to be the intended one, since the thread id */
26844 - /* cant have been recycled by pthreads. */
26846 - result = REAL_FUNC(pthread_join)(thread, retval);
26847 -# if defined (GC_FREEBSD_THREADS)
26848 - /* On FreeBSD, the wrapped pthread_join() sometimes returns (what
26849 - appears to be) a spurious EINTR which caused the test and real code
26850 - to gratuitously fail. Having looked at system pthread library source
26851 - code, I see how this return code may be generated. In one path of
26852 - code, pthread_join() just returns the errno setting of the thread
26853 - being joined. This does not match the POSIX specification or the
26854 - local man pages thus I have taken the liberty to catch this one
26855 - spurious return value properly conditionalized on GC_FREEBSD_THREADS. */
26856 - if (result == EINTR) result = 0;
26858 - if (result == 0) {
26860 - /* Here the pthread thread id may have been recycled. */
26861 - GC_delete_gc_thread(thread, thread_gc_id);
26868 -WRAP_FUNC(pthread_detach)(pthread_t thread)
26871 - GC_thread thread_gc_id;
26874 - thread_gc_id = GC_lookup_thread(thread);
26876 - result = REAL_FUNC(pthread_detach)(thread);
26877 - if (result == 0) {
26879 - thread_gc_id -> flags |= DETACHED;
26880 - /* Here the pthread thread id may have been recycled. */
26881 - if (thread_gc_id -> flags & FINISHED) {
26882 - GC_delete_gc_thread(thread, thread_gc_id);
26889 -void * GC_start_routine(void * arg)
26892 - struct start_info * si = arg;
26895 - pthread_t my_pthread;
26896 - void *(*start)(void *);
26899 - my_pthread = pthread_self();
26900 -# ifdef DEBUG_THREADS
26901 - GC_printf1("Starting thread 0x%lx\n", my_pthread);
26902 - GC_printf1("pid = %ld\n", (long) getpid());
26903 - GC_printf1("sp = 0x%lx\n", (long) &arg);
26906 - me = GC_new_thread(my_pthread);
26907 -#ifdef GC_DARWIN_THREADS
26908 - me -> stop_info.mach_thread = mach_thread_self();
26910 - me -> stop_info.stack_ptr = 0;
26912 - me -> flags = si -> flags;
26913 - /* me -> stack_end = GC_linux_stack_base(); -- currently (11/99) */
26914 - /* doesn't work because the stack base in /proc/self/stat is the */
26915 - /* one for the main thread. There is a strong argument that that's */
26916 - /* a kernel bug, but a pervasive one. */
26917 -# ifdef STACK_GROWS_DOWN
26918 - me -> stack_end = (ptr_t)(((word)(&dummy) + (GC_page_size - 1))
26919 - & ~(GC_page_size - 1));
26920 -# ifndef GC_DARWIN_THREADS
26921 - me -> stop_info.stack_ptr = me -> stack_end - 0x10;
26923 - /* Needs to be plausible, since an asynchronous stack mark */
26924 - /* should not crash. */
26926 - me -> stack_end = (ptr_t)((word)(&dummy) & ~(GC_page_size - 1));
26927 - me -> stop_info.stack_ptr = me -> stack_end + 0x10;
26929 - /* This is dubious, since we may be more than a page into the stack, */
26930 - /* and hence skip some of it, though it's not clear that matters. */
26932 - me -> backing_store_end = (ptr_t)
26933 - (GC_save_regs_in_stack() & ~(GC_page_size - 1));
26934 - /* This is also < 100% convincing. We should also read this */
26935 - /* from /proc, but the hook to do so isn't there yet. */
26936 -# endif /* IA64 */
26938 - start = si -> start_routine;
26939 -# ifdef DEBUG_THREADS
26940 - GC_printf1("start_routine = 0x%lx\n", start);
26942 - start_arg = si -> arg;
26943 - sem_post(&(si -> registered)); /* Last action on si. */
26944 - /* OK to deallocate. */
26945 - pthread_cleanup_push(GC_thread_exit_proc, 0);
26946 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26948 - GC_init_thread_local(me);
26951 - result = (*start)(start_arg);
26953 - GC_printf1("Finishing thread 0x%x\n", pthread_self());
26955 - me -> status = result;
26956 - me -> flags |= FINISHED;
26957 - pthread_cleanup_pop(1);
26958 - /* Cleanup acquires lock, ensuring that we can't exit */
26959 - /* while a collection that thinks we're alive is trying to stop */
26965 -WRAP_FUNC(pthread_create)(pthread_t *new_thread,
26966 - const pthread_attr_t *attr,
26967 - void *(*start_routine)(void *), void *arg)
26971 - word my_flags = 0;
26972 - struct start_info * si;
26973 - /* This is otherwise saved only in an area mmapped by the thread */
26974 - /* library, which isn't visible to the collector. */
26976 - /* We resist the temptation to muck with the stack size here, */
26977 - /* even if the default is unreasonably small. That's the client's */
26978 - /* responsibility. */
26981 - si = (struct start_info *)GC_INTERNAL_MALLOC(sizeof(struct start_info),
26984 - if (!parallel_initialized) GC_init_parallel();
26985 - if (0 == si) return(ENOMEM);
26986 - sem_init(&(si -> registered), 0, 0);
26987 - si -> start_routine = start_routine;
26990 - if (!GC_thr_initialized) GC_thr_init();
26991 -# ifdef GC_ASSERTIONS
26994 - if (NULL == attr) {
26995 - pthread_attr_t my_attr;
26996 - pthread_attr_init(&my_attr);
26997 - pthread_attr_getstacksize(&my_attr, &stack_size);
26999 - pthread_attr_getstacksize(attr, &stack_size);
27001 - GC_ASSERT(stack_size >= (8*HBLKSIZE*sizeof(word)));
27002 - /* Our threads may need to do some work for the GC. */
27003 - /* Ridiculously small threads won't work, and they */
27004 - /* probably wouldn't work anyway. */
27007 - if (NULL == attr) {
27008 - detachstate = PTHREAD_CREATE_JOINABLE;
27010 - pthread_attr_getdetachstate(attr, &detachstate);
27012 - if (PTHREAD_CREATE_DETACHED == detachstate) my_flags |= DETACHED;
27013 - si -> flags = my_flags;
27015 -# ifdef DEBUG_THREADS
27016 - GC_printf1("About to start new thread from thread 0x%X\n",
27020 - result = REAL_FUNC(pthread_create)(new_thread, attr, GC_start_routine, si);
27022 -# ifdef DEBUG_THREADS
27023 - GC_printf1("Started thread 0x%X\n", *new_thread);
27025 - /* Wait until child has been added to the thread table. */
27026 - /* This also ensures that we hold onto si until the child is done */
27027 - /* with it. Thus it doesn't matter whether it is otherwise */
27028 - /* visible to the collector. */
27029 - while (0 != sem_wait(&(si -> registered))) {
27030 - if (EINTR != errno) ABORT("sem_wait failed");
27032 - sem_destroy(&(si -> registered));
27034 - GC_INTERNAL_FREE(si);
27040 -#ifdef GENERIC_COMPARE_AND_SWAP
27041 - pthread_mutex_t GC_compare_and_swap_lock = PTHREAD_MUTEX_INITIALIZER;
27043 - GC_bool GC_compare_and_exchange(volatile GC_word *addr,
27044 - GC_word old, GC_word new_val)
27047 - pthread_mutex_lock(&GC_compare_and_swap_lock);
27048 - if (*addr == old) {
27054 - pthread_mutex_unlock(&GC_compare_and_swap_lock);
27058 - GC_word GC_atomic_add(volatile GC_word *addr, GC_word how_much)
27061 - pthread_mutex_lock(&GC_compare_and_swap_lock);
27063 - *addr = old + how_much;
27064 - pthread_mutex_unlock(&GC_compare_and_swap_lock);
27068 -#endif /* GENERIC_COMPARE_AND_SWAP */
27069 -/* Spend a few cycles in a way that can't introduce contention with */
27070 -/* othre threads. */
27075 - volatile word dummy = 0;
27078 - for (i = 0; i < 10; ++i) {
27080 - __asm__ __volatile__ (" " : : : "memory");
27082 - /* Something that's unlikely to be optimized away. */
27083 - GC_noop(++dummy);
27088 -#define SPIN_MAX 1024 /* Maximum number of calls to GC_pause before */
27091 -VOLATILE GC_bool GC_collecting = 0;
27092 - /* A hint that we're in the collector and */
27093 - /* holding the allocation lock for an */
27094 - /* extended period. */
27096 -#if !defined(USE_SPIN_LOCK) || defined(PARALLEL_MARK)
27097 -/* If we don't want to use the below spinlock implementation, either */
27098 -/* because we don't have a GC_test_and_set implementation, or because */
27099 -/* we don't want to risk sleeping, we can still try spinning on */
27100 -/* pthread_mutex_trylock for a while. This appears to be very */
27101 -/* beneficial in many cases. */
27102 -/* I suspect that under high contention this is nearly always better */
27103 -/* than the spin lock. But it's a bit slower on a uniprocessor. */
27104 -/* Hence we still default to the spin lock. */
27105 -/* This is also used to acquire the mark lock for the parallel */
27108 -/* Here we use a strict exponential backoff scheme. I don't know */
27109 -/* whether that's better or worse than the above. We eventually */
27110 -/* yield by calling pthread_mutex_lock(); it never makes sense to */
27111 -/* explicitly sleep. */
27113 -void GC_generic_lock(pthread_mutex_t * lock)
27115 -#ifndef NO_PTHREAD_TRYLOCK
27116 - unsigned pause_length = 1;
27119 - if (0 == pthread_mutex_trylock(lock)) return;
27120 - for (; pause_length <= SPIN_MAX; pause_length <<= 1) {
27121 - for (i = 0; i < pause_length; ++i) {
27124 - switch(pthread_mutex_trylock(lock)) {
27130 - ABORT("Unexpected error from pthread_mutex_trylock");
27133 -#endif /* !NO_PTHREAD_TRYLOCK */
27134 - pthread_mutex_lock(lock);
27137 -#endif /* !USE_SPIN_LOCK || PARALLEL_MARK */
27139 -#if defined(USE_SPIN_LOCK)
27141 -/* Reasonably fast spin locks. Basically the same implementation */
27142 -/* as STL alloc.h. This isn't really the right way to do this. */
27143 -/* but until the POSIX scheduling mess gets straightened out ... */
27145 -volatile unsigned int GC_allocate_lock = 0;
27150 -# define low_spin_max 30 /* spin cycles if we suspect uniprocessor */
27151 -# define high_spin_max SPIN_MAX /* spin cycles for multiprocessor */
27152 - static unsigned spin_max = low_spin_max;
27153 - unsigned my_spin_max;
27154 - static unsigned last_spins = 0;
27155 - unsigned my_last_spins;
27158 - if (!GC_test_and_set(&GC_allocate_lock)) {
27161 - my_spin_max = spin_max;
27162 - my_last_spins = last_spins;
27163 - for (i = 0; i < my_spin_max; i++) {
27164 - if (GC_collecting || GC_nprocs == 1) goto yield;
27165 - if (i < my_last_spins/2 || GC_allocate_lock) {
27169 - if (!GC_test_and_set(&GC_allocate_lock)) {
27172 - * Spinning worked. Thus we're probably not being scheduled
27173 - * against the other process with which we were contending.
27174 - * Thus it makes sense to spin longer the next time.
27177 - spin_max = high_spin_max;
27181 - /* We are probably being scheduled against the other process. Sleep. */
27182 - spin_max = low_spin_max;
27184 - for (i = 0;; ++i) {
27185 - if (!GC_test_and_set(&GC_allocate_lock)) {
27188 -# define SLEEP_THRESHOLD 12
27189 - /* Under Linux very short sleeps tend to wait until */
27190 - /* the current time quantum expires. On old Linux */
27191 - /* kernels nanosleep(<= 2ms) just spins under Linux. */
27192 - /* (Under 2.4, this happens only for real-time */
27193 - /* processes.) We want to minimize both behaviors */
27195 - if (i < SLEEP_THRESHOLD) {
27198 - struct timespec ts;
27200 - if (i > 24) i = 24;
27201 - /* Don't wait for more than about 15msecs, even */
27202 - /* under extreme contention. */
27204 - ts.tv_nsec = 1 << i;
27205 - nanosleep(&ts, 0);
27210 -#else /* !USE_SPINLOCK */
27213 -#ifndef NO_PTHREAD_TRYLOCK
27214 - if (1 == GC_nprocs || GC_collecting) {
27215 - pthread_mutex_lock(&GC_allocate_ml);
27217 - GC_generic_lock(&GC_allocate_ml);
27219 -#else /* !NO_PTHREAD_TRYLOCK */
27220 - pthread_mutex_lock(&GC_allocate_ml);
27221 -#endif /* !NO_PTHREAD_TRYLOCK */
27224 -#endif /* !USE_SPINLOCK */
27226 -#if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
27228 -#ifdef GC_ASSERTIONS
27229 - pthread_t GC_mark_lock_holder = NO_THREAD;
27233 - /* Ugly workaround for a linux threads bug in the final versions */
27234 - /* of glibc2.1. Pthread_mutex_trylock sets the mutex owner */
27235 - /* field even when it fails to acquire the mutex. This causes */
27236 - /* pthread_cond_wait to die. Remove for glibc2.2. */
27237 - /* According to the man page, we should use */
27238 - /* PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP, but that isn't actually */
27240 - static pthread_mutex_t mark_mutex =
27241 - {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, {0, 0}};
27243 - static pthread_mutex_t mark_mutex = PTHREAD_MUTEX_INITIALIZER;
27246 -static pthread_cond_t builder_cv = PTHREAD_COND_INITIALIZER;
27248 -void GC_acquire_mark_lock()
27251 - if (pthread_mutex_lock(&mark_mutex) != 0) {
27252 - ABORT("pthread_mutex_lock failed");
27255 - GC_generic_lock(&mark_mutex);
27256 -# ifdef GC_ASSERTIONS
27257 - GC_mark_lock_holder = pthread_self();
27261 -void GC_release_mark_lock()
27263 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27264 -# ifdef GC_ASSERTIONS
27265 - GC_mark_lock_holder = NO_THREAD;
27267 - if (pthread_mutex_unlock(&mark_mutex) != 0) {
27268 - ABORT("pthread_mutex_unlock failed");
27272 -/* Collector must wait for a freelist builders for 2 reasons: */
27273 -/* 1) Mark bits may still be getting examined without lock. */
27274 -/* 2) Partial free lists referenced only by locals may not be scanned */
27275 -/* correctly, e.g. if they contain "pointer-free" objects, since the */
27276 -/* free-list link may be ignored. */
27277 -void GC_wait_builder()
27279 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27280 -# ifdef GC_ASSERTIONS
27281 - GC_mark_lock_holder = NO_THREAD;
27283 - if (pthread_cond_wait(&builder_cv, &mark_mutex) != 0) {
27284 - ABORT("pthread_cond_wait failed");
27286 - GC_ASSERT(GC_mark_lock_holder == NO_THREAD);
27287 -# ifdef GC_ASSERTIONS
27288 - GC_mark_lock_holder = pthread_self();
27292 -void GC_wait_for_reclaim()
27294 - GC_acquire_mark_lock();
27295 - while (GC_fl_builder_count > 0) {
27296 - GC_wait_builder();
27298 - GC_release_mark_lock();
27301 -void GC_notify_all_builder()
27303 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27304 - if (pthread_cond_broadcast(&builder_cv) != 0) {
27305 - ABORT("pthread_cond_broadcast failed");
27309 -#endif /* PARALLEL_MARK || THREAD_LOCAL_ALLOC */
27311 -#ifdef PARALLEL_MARK
27313 -static pthread_cond_t mark_cv = PTHREAD_COND_INITIALIZER;
27315 -void GC_wait_marker()
27317 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
27318 -# ifdef GC_ASSERTIONS
27319 - GC_mark_lock_holder = NO_THREAD;
27321 - if (pthread_cond_wait(&mark_cv, &mark_mutex) != 0) {
27322 - ABORT("pthread_cond_wait failed");
27324 - GC_ASSERT(GC_mark_lock_holder == NO_THREAD);
27325 -# ifdef GC_ASSERTIONS
27326 - GC_mark_lock_holder = pthread_self();
27330 -void GC_notify_all_marker()
27332 - if (pthread_cond_broadcast(&mark_cv) != 0) {
27333 - ABORT("pthread_cond_broadcast failed");
27337 -#endif /* PARALLEL_MARK */
27339 -# endif /* GC_LINUX_THREADS and friends */
27341 diff -Nur ../boehm-gc/ptr_chck.c boehm-gc/ptr_chck.c
27342 --- ../boehm-gc/ptr_chck.c Mon May 26 12:48:52 2003
27343 +++ boehm-gc/ptr_chck.c Fri Aug 17 11:30:46 2001
27347 sz = WORDS_TO_BYTES(hhdr -> hb_sz);
27348 - if (sz > MAXOBJBYTES) {
27349 + if (sz > WORDS_TO_BYTES(MAXOBJSZ)) {
27350 base = (ptr_t)HBLKPTR(p);
27352 if ((ptr_t)p >= limit) {
27353 @@ -165,7 +165,7 @@
27354 pdispl = HBLKDISPL(p);
27355 map_entry = MAP_ENTRY((hhdr -> hb_map), pdispl);
27356 if (map_entry == OBJ_INVALID
27357 - || sz > MAXOBJBYTES && (ptr_t)p >= (ptr_t)h + sz) {
27358 + || sz > MAXOBJSZ && (ptr_t)p >= (ptr_t)h + sz) {
27362 diff -Nur ../boehm-gc/reclaim.c boehm-gc/reclaim.c
27363 --- ../boehm-gc/reclaim.c Mon May 26 12:48:52 2003
27364 +++ boehm-gc/reclaim.c Fri Mar 29 14:52:12 2002
27365 @@ -27,61 +27,23 @@
27367 #endif /* PARALLEL_MARK */
27369 -/* We defer printing of leaked objects until we're done with the GC */
27370 -/* cycle, since the routine for printing objects needs to run outside */
27371 -/* the collector, e.g. without the allocation lock. */
27372 -#define MAX_LEAKED 40
27373 -ptr_t GC_leaked[MAX_LEAKED];
27374 -unsigned GC_n_leaked = 0;
27376 -GC_bool GC_have_errors = FALSE;
27378 -void GC_add_leaked(leaked)
27381 - if (GC_n_leaked < MAX_LEAKED) {
27382 - GC_have_errors = TRUE;
27383 - GC_leaked[GC_n_leaked++] = leaked;
27384 - /* Make sure it's not reclaimed this cycle */
27385 - GC_set_mark_bit(leaked);
27389 -static GC_bool printing_errors = FALSE;
27390 -/* Print all objects on the list after printing any smashed objs. */
27391 -/* Clear both lists. */
27392 -void GC_print_all_errors ()
27393 +static void report_leak(p, sz)
27400 - if (printing_errors) {
27404 - printing_errors = TRUE;
27406 - if (GC_debugging_started) GC_print_all_smashed();
27407 - for (i = 0; i < GC_n_leaked; ++i) {
27408 - ptr_t p = GC_leaked[i];
27409 - if (HDR(p) -> hb_obj_kind == PTRFREE) {
27410 - GC_err_printf0("Leaked atomic object at ");
27412 - GC_err_printf0("Leaked composite object at ");
27414 - GC_print_heap_obj(p);
27415 - GC_err_printf0("\n");
27417 - GC_leaked[i] = 0;
27418 + if (HDR(p) -> hb_obj_kind == PTRFREE) {
27419 + GC_err_printf0("Leaked atomic object at ");
27421 + GC_err_printf0("Leaked composite object at ");
27424 - printing_errors = FALSE;
27425 + GC_print_heap_obj(p);
27426 + GC_err_printf0("\n");
27430 # define FOUND_FREE(hblk, word_no) \
27432 - GC_add_leaked((ptr_t)hblk + WORDS_TO_BYTES(word_no)); \
27433 + report_leak((ptr_t)hblk + WORDS_TO_BYTES(word_no), \
27434 + HDR(hblk) -> hb_sz); \
27438 @@ -904,7 +866,7 @@
27440 * This must be done before dropping a list of free gcj-style objects,
27441 * since may otherwise end up with dangling "descriptor" pointers.
27442 - * It may help for other pointer-containing objects.
27443 + * It may help for other pointer-containg objects.
27445 void GC_clear_fl_links(flp)
27447 diff -Nur ../boehm-gc/solaris_pthreads.c boehm-gc/solaris_pthreads.c
27448 --- ../boehm-gc/solaris_pthreads.c Mon May 26 12:48:52 2003
27449 +++ boehm-gc/solaris_pthreads.c Mon Feb 11 20:37:53 2002
27452 * Support code for Solaris threads. Provides functionality we wish Sun
27453 * had provided. Relies on some information we probably shouldn't rely on.
27454 - * Modified by Peter C. for Solaris Posix Threads.
27455 + * Modified Peter C. for Solaris Posix Threads.
27457 +/* Boehm, September 14, 1994 4:44 pm PDT */
27459 # if defined(GC_SOLARIS_PTHREADS)
27460 # include "private/gc_priv.h"
27461 diff -Nur ../boehm-gc/solaris_threads.c boehm-gc/solaris_threads.c
27462 --- ../boehm-gc/solaris_threads.c Mon May 26 12:48:52 2003
27463 +++ boehm-gc/solaris_threads.c Mon Feb 11 20:37:53 2002
27465 # include <unistd.h>
27466 # include <errno.h>
27468 -#ifdef HANDLE_FORK
27469 - --> Not yet supported. Try porting the code from linux_threads.c.
27473 * This is the default size of the LWP arrays. If there are more LWPs
27474 * than this when a stop-the-world GC happens, set_max_lwps will be
27475 @@ -365,7 +361,7 @@
27476 sizeof (prgregset_t)) != 0) {
27479 - for(j = 0; j < NPRGREG; j++)
27480 + for(j = 0; j < NGREG; j++)
27482 GC_printf3("%i: %x -> %x\n", j,
27483 GC_lwp_registers[i][j],
27484 @@ -825,7 +821,7 @@
27486 t = GC_lookup_thread(target_thread);
27487 if (t == 0) ABORT("thread unknown to GC");
27488 - t -> flags |= SUSPNDED;
27489 + t -> flags |= SUSPENDED;
27493 @@ -841,7 +837,7 @@
27495 t = GC_lookup_thread(target_thread);
27496 if (t == 0) ABORT("thread unknown to GC");
27497 - t -> flags &= ~SUSPNDED;
27498 + t -> flags &= ~SUSPENDED;
27502 @@ -927,7 +923,7 @@
27503 my_flags |= CLIENT_OWNS_STACK;
27505 if (flags & THR_DETACHED) my_flags |= DETACHED;
27506 - if (flags & THR_SUSPENDED) my_flags |= SUSPNDED;
27507 + if (flags & THR_SUSPENDED) my_flags |= SUSPENDED;
27508 result = thr_create(stack, stack_size, start_routine,
27509 arg, flags & ~THR_DETACHED, &my_new_thread);
27511 diff -Nur ../boehm-gc/sparc_mach_dep.S boehm-gc/sparc_mach_dep.S
27512 --- ../boehm-gc/sparc_mach_dep.S Mon May 26 12:48:52 2003
27513 +++ boehm-gc/sparc_mach_dep.S Thu Feb 14 16:09:29 2002
27515 stx %g0,[%o3] ! *(long *)p = 0
27517 bgu,pt %xcc, loop ! if (p > limit) goto loop
27518 - add %o3,-8,%o3 ! p -= 8 (delay slot)
27519 + add %o3,-8,%o3 ! p -= 8 (delay slot)
27521 mov %o2,%sp ! Restore sp., delay slot
27522 #else /* 32 bit SPARC */
27523 diff -Nur ../boehm-gc/threadlibs.c boehm-gc/threadlibs.c
27524 --- ../boehm-gc/threadlibs.c Mon May 26 12:48:52 2003
27525 +++ boehm-gc/threadlibs.c Mon Feb 11 20:37:53 2002
27529 # if defined(GC_USE_LD_WRAP)
27530 - printf("-Wl,--wrap -Wl,dlopen "
27531 + printf("-Wl,--wrap -Wl,read -Wl,--wrap -Wl,dlopen "
27532 "-Wl,--wrap -Wl,pthread_create -Wl,--wrap -Wl,pthread_join "
27533 "-Wl,--wrap -Wl,pthread_detach "
27534 "-Wl,--wrap -Wl,pthread_sigmask -Wl,--wrap -Wl,sleep\n");
27536 # if defined(GC_LINUX_THREADS) || defined(GC_IRIX_THREADS) \
27537 - || defined(GC_FREEBSD_THREADS) || defined(GC_SOLARIS_PTHREADS) \
27538 - || defined(GC_MACOSX_THREADS)
27539 + || defined(GC_FREEBSD_THREADS) || defined(GC_SOLARIS_PTHREADS)
27540 printf("-lpthread\n");
27542 # if defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
27545 # if defined(GC_SOLARIS_THREADS) && !defined(GC_SOLARIS_PTHREADS)
27546 printf("-lthread -ldl\n");
27548 -# if defined(GC_WIN32_THREADS) && defined(CYGWIN32)
27549 - printf("-lpthread\n");
27551 -# if defined(GC_OSF1_THREADS)
27552 - printf("-lpthread -lrt");
27554 - /* You need GCC 3.0.3 to build this one! */
27555 - /* DG/UX native gcc doesnt know what "-pthread" is */
27556 -# if defined(GC_DGUX386_THREADS)
27557 - printf("-ldl -pthread\n");
27561 diff -Nur ../boehm-gc/typd_mlc.c boehm-gc/typd_mlc.c
27562 --- ../boehm-gc/typd_mlc.c Mon May 26 12:48:52 2003
27563 +++ boehm-gc/typd_mlc.c Fri Aug 17 11:30:46 2001
27564 @@ -437,7 +437,6 @@
27565 for (; bm != 0; bm >>= 1, current_p++) {
27567 current = *current_p;
27568 - FIXUP_POINTER(current);
27569 if ((ptr_t)current >= least_ha && (ptr_t)current <= greatest_ha) {
27570 PUSH_CONTENTS((ptr_t)current, mark_stack_ptr,
27571 mark_stack_limit, current_p, exit1);
27572 @@ -675,9 +674,9 @@
27573 if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
27575 op = (ptr_t)GENERAL_MALLOC((word)lb, GC_explicit_kind);
27576 - if (0 == op) return 0;
27577 + if (0 == op) return(0);
27578 # ifdef MERGE_SIZES
27579 - lw = GC_size_map[lb]; /* May have been uninitialized. */
27580 + lw = GC_size_map[lb]; /* May have been uninitialized. */
27583 *opp = obj_link(op);
27584 @@ -721,7 +720,7 @@
27586 op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_explicit_kind);
27587 # ifdef MERGE_SIZES
27588 - lw = GC_size_map[lb]; /* May have been uninitialized. */
27589 + lw = GC_size_map[lb]; /* May have been uninitialized. */
27592 *opp = obj_link(op);
27593 diff -Nur ../boehm-gc/version.h boehm-gc/version.h
27594 --- ../boehm-gc/version.h Mon May 26 12:48:52 2003
27595 +++ boehm-gc/version.h Mon Feb 11 20:37:53 2002
27597 -/* The version here should match that in configure/configure.in */
27598 -/* Eventually this one may become unnecessary. For now we need */
27599 -/* it to keep the old-style build process working. */
27600 -#define GC_TMP_VERSION_MAJOR 6
27601 -#define GC_TMP_VERSION_MINOR 2
27602 -#define GC_TMP_ALPHA_VERSION 5
27603 +#define GC_VERSION_MAJOR 6
27604 +#define GC_VERSION_MINOR 1
27605 +#define GC_ALPHA_VERSION 3
27607 -#if defined(GC_VERSION_MAJOR)
27608 -# if GC_TMP_VERSION_MAJOR != GC_VERSION_MAJOR || \
27609 - GC_TMP_VERSION_MINOR != GC_VERSION_MINOR || \
27610 - GC_TMP_ALPHA_VERSION != GC_ALPHA_VERSION
27611 -# error Inconsistent version info. Check version.h and configure.in.
27614 -# define GC_VERSION_MAJOR GC_TMP_VERSION_MAJOR
27615 -# define GC_VERSION_MINOR GC_TMP_VERSION_MINOR
27616 -# define GC_ALPHA_VERSION GC_TMP_ALPHA_VERSION
27619 -#ifndef GC_NOT_ALPHA
27620 # define GC_NOT_ALPHA 0xff
27623 #ifndef GC_NO_VERSION_VAR
27625 diff -Nur ../boehm-gc/win32_threads.c boehm-gc/win32_threads.c
27626 --- ../boehm-gc/win32_threads.c Mon May 26 12:48:52 2003
27627 +++ boehm-gc/win32_threads.c Mon Apr 28 13:55:07 2003
27629 -#if defined(GC_WIN32_THREADS)
27630 +#if defined(GC_WIN32_THREADS)
27632 #include "private/gc_priv.h"
27635 -# include <errno.h>
27637 - /* Cygwin-specific forward decls */
27638 -# undef pthread_create
27639 -# undef pthread_sigmask
27640 -# undef pthread_join
27643 -# define DEBUG_CYGWIN_THREADS 0
27645 - GC_bool GC_thr_initialized = FALSE;
27646 - void * GC_start_routine(void * arg);
27647 - void GC_thread_exit_proc(void *arg);
27651 +#include <windows.h>
27654 -#ifndef MAX_THREADS
27655 -# define MAX_THREADS 64
27657 +#define MAX_THREADS 64
27659 struct thread_entry {
27662 /* !in_use ==> stack == 0 */
27667 - void *status; /* hold exit value until join in case it's a pointer */
27668 - pthread_t pthread_id;
27673 volatile GC_bool GC_please_stop = FALSE;
27675 /* Unlike the other threads implementations, the thread table here */
27676 /* contains no pointers to the collectable heap. Thus we have */
27677 /* no private structures we need to preserve. */
27679 - { int i; /* pthreads may keep a pointer in the thread exit value */
27680 - for (i = 0; i < MAX_THREADS; i++)
27681 - if (thread_table[i].in_use) GC_push_all((ptr_t)&(thread_table[i].status),(ptr_t)(&(thread_table[i].status)+1));
27686 void GC_stop_world()
27688 DWORD thread_id = GetCurrentThreadId();
27692 - if (!GC_thr_initialized) ABORT("GC_stop_world() called before GC_thr_init()");
27695 GC_please_stop = TRUE;
27696 for (i = 0; i < MAX_THREADS; i++)
27697 if (thread_table[i].stack != 0
27698 @@ -83,15 +53,11 @@
27700 if (GetExitCodeThread(thread_table[i].handle,&exitCode) &&
27701 exitCode != STILL_ACTIVE) {
27702 - thread_table[i].stack = 0; /* prevent stack from being pushed */
27704 - /* this breaks pthread_join on Cygwin, which is guaranteed to */
27705 - /* only see user pthreads */
27706 + thread_table[i].stack = 0;
27707 thread_table[i].in_use = FALSE;
27708 CloseHandle(thread_table[i].handle);
27709 BZERO((void *)(&thread_table[i].context), sizeof(CONTEXT));
27714 if (SuspendThread(thread_table[i].handle) == (DWORD)-1)
27715 ABORT("SuspendThread failed");
27716 @@ -369,11 +335,9 @@
27717 if (*lo < start) *lo = start;
27720 -#if !defined(MSWINCE) && defined(GC_DLL)
27722 -/* We register threads from DllMain */
27723 +#if !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL))
27725 -GC_API HANDLE GC_CreateThread(
27726 +HANDLE WINAPI GC_CreateThread(
27727 LPSECURITY_ATTRIBUTES lpThreadAttributes,
27728 DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
27729 LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId )
27730 @@ -382,10 +346,7 @@
27731 lpParameter, dwCreationFlags, lpThreadId);
27734 -#else /* defined(MSWINCE) || !defined(GC_DLL)) */
27736 -/* We have no DllMain to take care of new threads. Thus we */
27737 -/* must properly intercept thread creation. */
27738 +#else /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
27741 HANDLE child_ready_h, parent_ready_h;
27742 @@ -509,7 +470,7 @@
27746 -#endif /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
27747 +#endif /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
27751 @@ -566,256 +527,13 @@
27753 LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info);
27755 -/* threadAttach/threadDetach routines used by both CYGWIN and DLL
27756 - * implementation, since both recieve explicit notification on thread
27757 - * creation/destruction.
27759 -static void threadAttach() {
27761 - /* It appears to be unsafe to acquire a lock here, since this */
27762 - /* code is apparently not preeemptible on some systems. */
27763 - /* (This is based on complaints, not on Microsoft's official */
27764 - /* documentation, which says this should perform "only simple */
27765 - /* inititalization tasks".) */
27766 - /* Hence we make do with nonblocking synchronization. */
27768 - /* The following should be a noop according to the win32 */
27769 - /* documentation. There is empirical evidence that it */
27770 - /* isn't. - HB */
27771 -# if defined(MPROTECT_VDB)
27772 - if (GC_incremental) SetUnhandledExceptionFilter(GC_write_fault_handler);
27774 - /* cast away volatile qualifier */
27775 - for (i = 0; InterlockedExchange((LONG*)&thread_table[i].in_use,1) != 0; i++) {
27776 - /* Compare-and-swap would make this cleaner, but that's not */
27777 - /* supported before Windows 98 and NT 4.0. In Windows 2000, */
27778 - /* InterlockedExchange is supposed to be replaced by */
27779 - /* InterlockedExchangePointer, but that's not really what I */
27781 - if (i == MAX_THREADS - 1)
27782 - ABORT("too many threads");
27784 - thread_table[i].id = GetCurrentThreadId();
27786 - thread_table[i].pthread_id = pthread_self();
27788 - if (!DuplicateHandle(GetCurrentProcess(),
27789 - GetCurrentThread(),
27790 - GetCurrentProcess(),
27791 - (HANDLE*)&thread_table[i].handle,
27794 - DUPLICATE_SAME_ACCESS)) {
27795 - DWORD last_error = GetLastError();
27796 - GC_printf1("Last error code: %lx\n", last_error);
27797 - ABORT("DuplicateHandle failed");
27799 - thread_table[i].stack = GC_get_stack_base();
27800 - if (thread_table[i].stack == NULL)
27801 - ABORT("Failed to find stack base in threadAttach");
27802 - /* If this thread is being created while we are trying to stop */
27803 - /* the world, wait here. Hopefully this can't happen on any */
27804 - /* systems that don't allow us to block here. */
27805 - while (GC_please_stop) Sleep(20);
27808 -static void threadDetach(DWORD thread_id) {
27813 - i < MAX_THREADS &&
27814 - !thread_table[i].in_use || thread_table[i].id != thread_id;
27816 - if (i >= MAX_THREADS ) {
27817 - WARN("thread %ld not found on detach", (GC_word)thread_id);
27820 - thread_table[i].stack = 0;
27821 - thread_table[i].in_use = FALSE;
27822 - CloseHandle(thread_table[i].handle);
27823 - /* cast away volatile qualifier */
27824 - BZERO((void *)&thread_table[i].context, sizeof(CONTEXT));
27831 -/* Called by GC_init() - we hold the allocation lock. */
27832 -void GC_thr_init() {
27833 - if (GC_thr_initialized) return;
27834 - GC_thr_initialized = TRUE;
27837 - /* this might already be handled in GC_init... */
27838 - InitializeCriticalSection(&GC_allocate_ml);
27841 - /* Add the initial thread, so we can stop it. */
27845 -struct start_info {
27846 - void *(*start_routine)(void *);
27850 -int GC_pthread_join(pthread_t pthread_id, void **retval) {
27854 -# if DEBUG_CYGWIN_THREADS
27855 - GC_printf3("thread 0x%x(0x%x) is joining thread 0x%x.\n",(int)pthread_self(),
27856 - GetCurrentThreadId(), (int)pthread_id);
27859 - /* Can't do any table lookups here, because thread being joined
27860 - might not have registered itself yet */
27862 - result = pthread_join(pthread_id, retval);
27865 - for (i = 0; !thread_table[i].in_use || thread_table[i].pthread_id != pthread_id;
27867 - if (i == MAX_THREADS - 1) {
27868 - GC_printf1("Failed to find thread 0x%x in pthread_join()\n", pthread_id);
27869 - ABORT("thread not found on detach");
27873 - threadDetach(thread_table[i].id);
27875 -# if DEBUG_CYGWIN_THREADS
27876 - GC_printf3("thread 0x%x(0x%x) completed join with thread 0x%x.\n",
27877 - (int)pthread_self(), GetCurrentThreadId(), (int)pthread_id);
27883 -/* Cygwin-pthreads calls CreateThread internally, but it's not
27884 - * easily interceptible by us..
27885 - * so intercept pthread_create instead
27888 -GC_pthread_create(pthread_t *new_thread,
27889 - const pthread_attr_t *attr,
27890 - void *(*start_routine)(void *), void *arg) {
27892 - struct start_info * si;
27894 - if (!GC_is_initialized) GC_init();
27895 - /* make sure GC is initialized (i.e. main thread is attached) */
27897 - /* This is otherwise saved only in an area mmapped by the thread */
27898 - /* library, which isn't visible to the collector. */
27899 - si = GC_malloc_uncollectable(sizeof(struct start_info));
27900 - if (0 == si) return(EAGAIN);
27902 - si -> start_routine = start_routine;
27905 -# if DEBUG_CYGWIN_THREADS
27906 - GC_printf2("About to create a thread from 0x%x(0x%x)\n",(int)pthread_self(),
27907 - GetCurrentThreadId);
27909 - result = pthread_create(new_thread, attr, GC_start_routine, si);
27911 - if (result) { /* failure */
27918 -void * GC_start_routine(void * arg)
27920 - struct start_info * si = arg;
27922 - void *(*start)(void *);
27924 - pthread_t pthread_id;
27927 -# if DEBUG_CYGWIN_THREADS
27928 - GC_printf2("thread 0x%x(0x%x) starting...\n",(int)pthread_self(),
27929 - GetCurrentThreadId());
27932 - /* If a GC occurs before the thread is registered, that GC will */
27933 - /* ignore this thread. That's fine, since it will block trying to */
27934 - /* acquire the allocation lock, and won't yet hold interesting */
27937 - /* We register the thread here instead of in the parent, so that */
27938 - /* we don't need to hold the allocation lock during pthread_create. */
27942 - start = si -> start_routine;
27943 - start_arg = si -> arg;
27944 - pthread_id = pthread_self();
27946 - GC_free(si); /* was allocated uncollectable */
27948 - pthread_cleanup_push(GC_thread_exit_proc, pthread_id);
27949 - result = (*start)(start_arg);
27950 - pthread_cleanup_pop(0);
27952 -# if DEBUG_CYGWIN_THREADS
27953 - GC_printf2("thread 0x%x(0x%x) returned from start routine.\n",
27954 - (int)pthread_self(),GetCurrentThreadId());
27958 - for (i = 0; thread_table[i].pthread_id != pthread_id; i++) {
27959 - if (i == MAX_THREADS - 1)
27960 - ABORT("thread not found on exit");
27962 - thread_table[i].status = result;
27968 -void GC_thread_exit_proc(void *arg)
27970 - pthread_t pthread_id = (pthread_t)arg;
27973 -# if DEBUG_CYGWIN_THREADS
27974 - GC_printf2("thread 0x%x(0x%x) called pthread_exit().\n",
27975 - (int)pthread_self(),GetCurrentThreadId());
27979 - for (i = 0; thread_table[i].pthread_id != pthread_id; i++) {
27980 - if (i == MAX_THREADS - 1)
27981 - ABORT("thread not found on exit");
27986 - /* TODO: we need a way to get the exit value after a pthread_exit so we can stash it safely away */
27987 - thread_table[i].status = ???
27991 -/* nothing required here... */
27992 -int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset) {
27993 - return pthread_sigmask(how, set, oset);
27995 -int GC_pthread_detach(pthread_t thread) {
27996 - return pthread_detach(thread);
27998 -#else /* !CYGWIN32 */
28002 - * We avoid acquiring locks here, since this doesn't seem to be preemptable.
28003 + * This isn't generally safe, since DllMain is not premptible.
28004 + * If another thread holds the lock while this runs we're in trouble.
28005 * Pontus Rydin suggests wrapping the thread start routine instead.
28008 BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
28011 @@ -824,13 +542,75 @@
28012 GC_init(); /* Force initialization before thread attach. */
28014 case DLL_THREAD_ATTACH:
28019 + /* It appears to be unsafe to acquire a lock here, since this */
28020 + /* code is apparently not preeemptible on some systems. */
28021 + /* (This is based on complaints, not on Microsoft's official */
28022 + /* documentation, which says this should perform "only simple */
28023 + /* inititalization tasks".) */
28024 + /* Hence we make do with nonblocking synchronization. */
28026 + /* The following should be a noop according to the win32 */
28027 + /* documentation. There is empirical evidence that it */
28028 + /* isn't. - HB */
28029 +# ifdef MPROTECT_VDB
28030 + if (GC_incremental) SetUnhandledExceptionFilter(GC_write_fault_handler);
28034 + /* cast away volatile qualifier */
28035 + InterlockedExchange((LPLONG) &thread_table[i].in_use, 1) != 0;
28037 + /* Compare-and-swap would make this cleaner, but that's not */
28038 + /* supported before Windows 98 and NT 4.0. In Windows 2000, */
28039 + /* InterlockedExchange is supposed to be replaced by */
28040 + /* InterlockedExchangePointer, but that's not really what I */
28042 + if (i == MAX_THREADS - 1)
28043 + ABORT("too many threads");
28045 + thread_table[i].id = GetCurrentThreadId();
28046 + if (!DuplicateHandle(GetCurrentProcess(),
28047 + GetCurrentThread(),
28048 + GetCurrentProcess(),
28049 + /* cast away volatile qualifier */
28050 + (HANDLE *) &thread_table[i].handle,
28053 + DUPLICATE_SAME_ACCESS)) {
28054 + DWORD last_error = GetLastError();
28055 + GC_printf1("Last error code: %lx\n", last_error);
28056 + ABORT("DuplicateHandle failed");
28058 + thread_table[i].stack = GC_get_stack_base();
28059 + /* If this thread is being created while we are trying to stop */
28060 + /* the world, wait here. Hopefully this can't happen on any */
28061 + /* systems that don't allow us to block here. */
28062 + while (GC_please_stop) Sleep(20);
28065 case DLL_THREAD_DETACH:
28066 - threadDetach(GetCurrentThreadId());
28069 + DWORD thread_id = GetCurrentThreadId();
28072 + i < MAX_THREADS &&
28073 + (thread_table[i].stack == 0 || thread_table[i].id != thread_id);
28075 + if (i >= MAX_THREADS) {
28076 + WARN("thread %ld not found on detach", (GC_word)thread_id);
28078 + thread_table[i].stack = 0;
28079 + thread_table[i].in_use = FALSE;
28080 + CloseHandle(thread_table[i].handle);
28081 + /* cast away volatile qualifier */
28082 + BZERO((void *) &thread_table[i].context, sizeof(CONTEXT));
28088 case DLL_PROCESS_DETACH:
28091 @@ -856,8 +636,8 @@
28095 -#endif /* GC_DLL */
28096 -#endif /* !CYGWIN32 */
28098 +# endif /* GC_DLL */
28100 # endif /* !MSWINCE */