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.in boehm-gc/Makefile.in
134 --- ../boehm-gc/Makefile.in Mon May 26 13:08:48 2003
135 +++ boehm-gc/Makefile.in Tue May 13 17:18:14 2003
137 -# Makefile.in generated by automake 1.6.3 from Makefile.am.
139 +# Makefile.in generated automatically by automake 1.4 from Makefile.am
141 -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
142 -# Free Software Foundation, Inc.
143 +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
144 # This Makefile.in is free software; the Free Software Foundation
145 # gives unlimited permission to copy and/or distribute it,
146 # with or without modifications, as long as this notice is preserved.
148 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
149 # PARTICULAR PURPOSE.
158 includedir = @includedir@
159 oldincludedir = /usr/include
163 pkgdatadir = $(datadir)/@PACKAGE@
164 pkglibdir = $(libdir)/@PACKAGE@
165 pkgincludedir = $(includedir)/@PACKAGE@
171 AUTOMAKE = @AUTOMAKE@
172 AUTOHEADER = @AUTOHEADER@
174 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
176 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
177 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
178 INSTALL_DATA = @INSTALL_DATA@
179 -install_sh_DATA = $(install_sh) -c -m 644
180 -install_sh_PROGRAM = $(install_sh) -c
181 -install_sh_SCRIPT = $(install_sh) -c
182 INSTALL_SCRIPT = @INSTALL_SCRIPT@
183 -INSTALL_HEADER = $(INSTALL_DATA)
184 transform = @program_transform_name@
190 host_triplet = @host@
191 target_alias = @target_alias@
192 target_triplet = @target@
196 -PATH_SEPARATOR = @PATH_SEPARATOR@
205 CXXINCLUDES = @CXXINCLUDES@
211 EXTRA_TEST_LIBS = @EXTRA_TEST_LIBS@
214 GCJFLAGS = @GCJFLAGS@
215 GC_CFLAGS = @GC_CFLAGS@
216 INCLUDES = @INCLUDES@
217 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
221 +MAKEINFO = @MAKEINFO@
222 MY_CFLAGS = @MY_CFLAGS@
229 THREADLIBS = @THREADLIBS@
232 -am__include = @am__include@
233 -am__quote = @am__quote@
234 gc_basedir = @gc_basedir@
235 -install_sh = @install_sh@
236 mkinstalldirs = @mkinstalldirs@
237 target_all = @target_all@
238 +toolexecdir = @toolexecdir@
239 +toolexeclibdir = @toolexeclibdir@
241 AUTOMAKE_OPTIONS = cygnus
243 @@ -120,32 +108,24 @@
247 -@USE_LIBDIR_TRUE@toolexeclibdir = $(libdir)$(MULTISUBDIR)
248 -@USE_LIBDIR_FALSE@toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
249 -@USE_LIBDIR_FALSE@toolexecdir = $(exec_prefix)/$(target_alias)
251 noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
253 GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
254 dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
255 -malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
256 +linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
257 obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
258 solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
259 -backgraph.c win32_threads.c \
260 -pthread_support.c pthread_stop_world.c darwin_stop_world.c
262 +backgraph.c win32_threads.c
264 -EXTRA_GC_SOURCES = alpha_mach_dep.S \
265 - mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_darwin_mach_dep.s \
266 - rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
267 - sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
269 +EXTRA_GC_SOURCES = alpha_mach_dep.s \
270 +mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
271 +rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
272 +sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
274 -@POWERPC_DARWIN_TRUE@asm_libgc_sources = powerpc_darwin_mach_dep.s
275 -@POWERPC_DARWIN_FALSE@asm_libgc_sources =
277 -libgcjgc_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
278 -libgcjgc_convenience_la_SOURCES = $(GC_SOURCES) $(asm_libgc_sources)
279 +libgcjgc_la_SOURCES = $(GC_SOURCES)
280 +libgcjgc_convenience_la_SOURCES = $(GC_SOURCES)
281 EXTRA_libgcjgc_la_SOURCES = $(EXTRA_GC_SOURCES)
282 EXTRA_libgcjgc_convenience_la_SOURCES = $(EXTRA_GC_SOURCES)
284 @@ -159,11 +139,12 @@
285 libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
287 AM_CXXFLAGS = @GC_CFLAGS@
289 AM_CFLAGS = @GC_CFLAGS@
291 check_PROGRAMS = gctest
293 # Using $< in the above seems to fail with the HP/UX on Itanium make.
295 gctest_OBJECTS = test.o
296 gctest_LDADD = ./libgcjgc.la $(THREADLIBS) $(EXTRA_TEST_LIBS)
297 gctest_LDFLAGS = -shared-libgcc
298 @@ -223,127 +204,104 @@
299 CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
303 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
304 -CONFIG_CLEAN_FILES =
305 -LTLIBRARIES = $(noinst_LTLIBRARIES)
306 +CONFIG_CLEAN_FILES =
307 +LTLIBRARIES = $(noinst_LTLIBRARIES)
309 -am__objects_1 = allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo \
310 - dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo \
311 - irix_threads.lo malloc.lo mallocx.lo mark.lo mark_rts.lo \
312 - misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo \
313 - ptr_chck.lo real_malloc.lo reclaim.lo solaris_pthreads.lo \
314 - solaris_threads.lo specific.lo stubborn.lo typd_mlc.lo \
315 - backgraph.lo win32_threads.lo pthread_support.lo \
316 - pthread_stop_world.lo darwin_stop_world.lo
317 -@POWERPC_DARWIN_TRUE@am__objects_2 = powerpc_darwin_mach_dep.lo
318 -@POWERPC_DARWIN_FALSE@am__objects_2 =
319 -am_libgcjgc_la_OBJECTS = $(am__objects_1) $(am__objects_2)
320 -libgcjgc_la_OBJECTS = $(am_libgcjgc_la_OBJECTS)
321 -libgcjgc_convenience_la_LDFLAGS =
322 -am_libgcjgc_convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2)
323 -libgcjgc_convenience_la_OBJECTS = $(am_libgcjgc_convenience_la_OBJECTS)
324 -check_PROGRAMS = gctest$(EXEEXT)
325 -gctest_DEPENDENCIES = ./libgcjgc.la
328 -DEFAULT_INCLUDES = -I. -I$(srcdir)
329 +DEFS = @DEFS@ -I. -I$(srcdir)
330 CPPFLAGS = @CPPFLAGS@
334 -am__depfiles_maybe =
335 -CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
336 -LTCCASCOMPILE = $(LIBTOOL) --mode=compile $(CCAS) $(AM_CCASFLAGS) \
338 -CCASFLAGS = @CCASFLAGS@
339 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
340 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
342 +libgcjgc_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo checksums.lo \
343 +dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo \
344 +irix_threads.lo linux_threads.lo malloc.lo mallocx.lo mark.lo \
345 +mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo \
346 +ptr_chck.lo real_malloc.lo reclaim.lo solaris_pthreads.lo \
347 +solaris_threads.lo specific.lo stubborn.lo typd_mlc.lo backgraph.lo \
349 +libgcjgc_convenience_la_LDFLAGS =
350 +libgcjgc_convenience_la_OBJECTS = allchblk.lo alloc.lo blacklst.lo \
351 +checksums.lo dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo \
352 +headers.lo irix_threads.lo linux_threads.lo malloc.lo mallocx.lo \
353 +mark.lo mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo \
354 +pcr_interface.lo ptr_chck.lo real_malloc.lo reclaim.lo \
355 +solaris_pthreads.lo solaris_threads.lo specific.lo stubborn.lo \
356 +typd_mlc.lo backgraph.lo win32_threads.lo
357 +check_PROGRAMS = gctest$(EXEEXT)
358 +gctest_DEPENDENCIES = ./libgcjgc.la
360 -DIST_SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) \
361 - $(libgcjgc_convenience_la_SOURCES) \
362 - $(EXTRA_libgcjgc_convenience_la_SOURCES)
364 -RECURSIVE_TARGETS = info-recursive dvi-recursive \
365 - uninstall-info-recursive all-recursive install-data-recursive \
366 - install-exec-recursive installdirs-recursive install-recursive \
367 - uninstall-recursive check-recursive installcheck-recursive
368 -SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) $(EXTRA_libgcjgc_convenience_la_SOURCES)
369 +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
371 +DIST_COMMON = ChangeLog Makefile.am Makefile.in acinclude.m4 aclocal.m4 \
372 +config.guess config.sub configure configure.in install-sh ltconfig \
373 +ltmain.sh mkinstalldirs
376 +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
381 +SOURCES = $(libgcjgc_la_SOURCES) $(EXTRA_libgcjgc_la_SOURCES) $(libgcjgc_convenience_la_SOURCES) $(EXTRA_libgcjgc_convenience_la_SOURCES)
382 +OBJECTS = $(libgcjgc_la_OBJECTS) $(libgcjgc_convenience_la_OBJECTS)
386 .SUFFIXES: .S .c .lo .o .obj .s
387 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
388 + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
390 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
391 + cd $(top_builddir) \
392 + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
394 -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
396 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
397 - cd $(top_srcdir) && \
398 - $(AUTOMAKE) --cygnus Makefile
399 -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
400 - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
401 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
402 + cd $(srcdir) && $(ACLOCAL)
404 -$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
405 +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
406 $(SHELL) ./config.status --recheck
407 -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
408 +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
409 cd $(srcdir) && $(AUTOCONF)
411 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
412 - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
413 +mostlyclean-noinstLTLIBRARIES:
415 clean-noinstLTLIBRARIES:
416 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
417 - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
418 - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
419 - test -z "$dir" && dir=.; \
420 - echo "rm -f \"$${dir}/so_locations\""; \
421 - rm -f "$${dir}/so_locations"; \
423 -libgcjgc.la: $(libgcjgc_la_OBJECTS) $(libgcjgc_la_DEPENDENCIES)
424 - $(LINK) $(libgcjgc_la_LDFLAGS) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS)
425 -libgcjgc_convenience.la: $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_DEPENDENCIES)
426 - $(LINK) $(libgcjgc_convenience_la_LDFLAGS) $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_LIBADD) $(LIBS)
428 -clean-checkPROGRAMS:
429 - @list='$(check_PROGRAMS)'; for p in $$list; do \
430 - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
431 - echo " rm -f $$p $$f"; \
434 -gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES)
435 - @rm -f gctest$(EXEEXT)
436 - $(LINK) $(gctest_LDFLAGS) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS)
437 +distclean-noinstLTLIBRARIES:
439 -mostlyclean-compile:
440 - -rm -f *.$(OBJEXT) core *.core
441 +maintainer-clean-noinstLTLIBRARIES:
448 +# FIXME: We should only use cygpath when building on Windows,
449 +# and only if it is available.
451 + $(COMPILE) -c `cygpath -w $<`
457 - $(CCASCOMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
461 - $(CCASCOMPILE) -c `cygpath -w $<`
462 +mostlyclean-compile:
463 + -rm -f *.o core *.core
467 - $(LTCCASCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
471 - $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
476 - $(COMPILE) -c `cygpath -w $<`
477 +maintainer-clean-compile:
480 - $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
481 + $(LIBTOOL) --mode=compile $(COMPILE) -c $<
484 - $(CCASCOMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
487 - $(CCASCOMPILE) -c `cygpath -w $<`
489 + $(LIBTOOL) --mode=compile $(COMPILE) -c $<
500 +maintainer-clean-libtool:
502 +libgcjgc.la: $(libgcjgc_la_OBJECTS) $(libgcjgc_la_DEPENDENCIES)
503 + $(LINK) $(libgcjgc_la_LDFLAGS) $(libgcjgc_la_OBJECTS) $(libgcjgc_la_LIBADD) $(LIBS)
505 +libgcjgc_convenience.la: $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_DEPENDENCIES)
506 + $(LINK) $(libgcjgc_convenience_la_LDFLAGS) $(libgcjgc_convenience_la_OBJECTS) $(libgcjgc_convenience_la_LIBADD) $(LIBS)
508 +mostlyclean-checkPROGRAMS:
510 +clean-checkPROGRAMS:
511 + -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
513 +distclean-checkPROGRAMS:
515 +maintainer-clean-checkPROGRAMS:
517 +gctest$(EXEEXT): $(gctest_OBJECTS) $(gctest_DEPENDENCIES)
518 + @rm -f gctest$(EXEEXT)
519 + $(LINK) $(gctest_LDFLAGS) $(gctest_OBJECTS) $(gctest_LDADD) $(LIBS)
521 # This directory's subdirectories are mostly independent; you can cd
522 # into them and run `make' without going through this Makefile.
524 # (1) if the variable is set in `config.status', edit `config.status'
525 # (which will cause the Makefiles to be regenerated when you run `make');
526 # (2) otherwise, pass the desired values on the `make' command line.
527 -$(RECURSIVE_TARGETS):
528 - @set fnord $$MAKEFLAGS; amf=$$2; \
532 +all-recursive install-data-recursive install-exec-recursive \
533 +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
534 +check-recursive installcheck-recursive info-recursive dvi-recursive:
535 + @set fnord $(MAKEFLAGS); amf=$$2; \
537 target=`echo $@ | sed s/-recursive//`; \
538 list='$(SUBDIRS)'; for subdir in $$list; do \
539 @@ -382,18 +364,13 @@
541 mostlyclean-recursive clean-recursive distclean-recursive \
542 maintainer-clean-recursive:
543 - @set fnord $$MAKEFLAGS; amf=$$2; \
544 + @set fnord $(MAKEFLAGS); amf=$$2; \
547 - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
548 - *) list='$(SUBDIRS)' ;; \
550 - rev=''; for subdir in $$list; do \
551 - if test "$$subdir" = "."; then :; else \
552 - rev="$$subdir $$rev"; \
554 + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
555 + rev="$$subdir $$rev"; \
556 + test "$$subdir" = "." && dot_seen=yes; \
559 + test "$$dot_seen" = "no" && rev=". $$rev"; \
560 target=`echo $@ | sed s/-recursive//`; \
561 for subdir in $$rev; do \
562 echo "Making $$target in $$subdir"; \
563 @@ -410,186 +387,211 @@
564 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
572 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
573 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
574 - unique=`for i in $$list; do \
575 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
577 - $(AWK) ' { files[$$0] = 1; } \
578 +ID: $(HEADERS) $(SOURCES) $(LISP)
579 + list='$(SOURCES) $(HEADERS)'; \
580 + unique=`for i in $$list; do echo $$i; done | \
581 + awk ' { files[$$0] = 1; } \
582 END { for (i in files) print i; }'`; \
584 + here=`pwd` && cd $(srcdir) \
585 + && mkid -f$$here/ID $$unique $(LISP)
587 -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
588 - $(TAGS_FILES) $(LISP)
589 +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
592 list='$(SUBDIRS)'; for subdir in $$list; do \
593 - if test "$$subdir" = .; then :; else \
594 + if test "$$subdir" = .; then :; else \
595 test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
599 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
600 - unique=`for i in $$list; do \
601 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
603 - $(AWK) ' { files[$$0] = 1; } \
604 + list='$(SOURCES) $(HEADERS)'; \
605 + unique=`for i in $$list; do echo $$i; done | \
606 + awk ' { files[$$0] = 1; } \
607 END { for (i in files) print i; }'`; \
608 - test -z "$(ETAGS_ARGS)$$tags$$unique" \
609 - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
613 - here=`$(am__cd) $(top_builddir) && pwd` \
614 - && cd $(top_srcdir) \
615 - && gtags -i $(GTAGS_ARGS) $$here
616 + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
617 + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
624 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
627 +maintainer-clean-tags:
629 +distdir = $(PACKAGE)-$(VERSION)
630 +top_distdir = $(distdir)
632 +# This target untars the dist file and tries a VPATH configuration. Then
633 +# it guarantees that the distribution is self-contained by making another
637 + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
638 + mkdir $(distdir)/=build
639 + mkdir $(distdir)/=inst
640 + dc_install_base=`cd $(distdir)/=inst && pwd`; \
641 + cd $(distdir)/=build \
642 + && ../configure --srcdir=.. --prefix=$$dc_install_base \
643 + && $(MAKE) $(AM_MAKEFLAGS) \
644 + && $(MAKE) $(AM_MAKEFLAGS) dvi \
645 + && $(MAKE) $(AM_MAKEFLAGS) check \
646 + && $(MAKE) $(AM_MAKEFLAGS) install \
647 + && $(MAKE) $(AM_MAKEFLAGS) installcheck \
648 + && $(MAKE) $(AM_MAKEFLAGS) dist
650 + @banner="$(distdir).tar.gz is ready for distribution"; \
651 + dashes=`echo "$$banner" | sed s/./=/g`; \
656 + -chmod -R a+r $(distdir)
657 + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
660 + -chmod -R a+r $(distdir)
661 + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
663 +distdir: $(DISTFILES)
666 + -chmod 777 $(distdir)
667 + @for file in $(DISTFILES); do \
668 + if test -f $$file; then d=.; else d=$(srcdir); fi; \
669 + if test -d $$d/$$file; then \
670 + cp -pr $$d/$$file $(distdir)/$$file; \
672 + test -f $(distdir)/$$file \
673 + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
674 + || cp -p $$d/$$file $(distdir)/$$file || :; \
677 + for subdir in $(SUBDIRS); do \
678 + if test "$$subdir" = .; then :; else \
679 + test -d $(distdir)/$$subdir \
680 + || mkdir $(distdir)/$$subdir \
682 + chmod 777 $(distdir)/$$subdir; \
683 + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
687 check-TESTS: $(TESTS)
688 - @failed=0; all=0; xfail=0; xpass=0; \
689 + @failed=0; all=0; \
690 srcdir=$(srcdir); export srcdir; \
692 - if test -n "$$list"; then \
693 - for tst in $$list; do \
694 - if test -f ./$$tst; then dir=./; \
695 - elif test -f $$tst; then dir=; \
696 - else dir="$(srcdir)/"; fi; \
697 - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
698 - all=`expr $$all + 1`; \
699 - case " $(XFAIL_TESTS) " in \
701 - xpass=`expr $$xpass + 1`; \
702 - failed=`expr $$failed + 1`; \
703 - echo "XPASS: $$tst"; \
706 - echo "PASS: $$tst"; \
709 - elif test $$? -ne 77; then \
710 - all=`expr $$all + 1`; \
711 - case " $(XFAIL_TESTS) " in \
713 - xfail=`expr $$xfail + 1`; \
714 - echo "XFAIL: $$tst"; \
717 - failed=`expr $$failed + 1`; \
718 - echo "FAIL: $$tst"; \
723 - if test "$$failed" -eq 0; then \
724 - if test "$$xfail" -eq 0; then \
725 - banner="All $$all tests passed"; \
727 - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
730 - if test "$$xpass" -eq 0; then \
731 - banner="$$failed of $$all tests failed"; \
733 - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
735 + for tst in $(TESTS); do \
736 + if test -f $$tst; then dir=.; \
737 + else dir="$(srcdir)"; fi; \
738 + if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
739 + all=`expr $$all + 1`; \
740 + echo "PASS: $$tst"; \
741 + elif test $$? -ne 77; then \
742 + all=`expr $$all + 1`; \
743 + failed=`expr $$failed + 1`; \
744 + echo "FAIL: $$tst"; \
746 - dashes=`echo "$$banner" | sed s/./=/g`; \
750 - test "$$failed" -eq 0; \
753 + if test "$$failed" -eq 0; then \
754 + banner="All $$all tests passed"; \
756 + banner="$$failed of $$all tests failed"; \
758 + dashes=`echo "$$banner" | sed s/./=/g`; \
762 + test "$$failed" -eq 0
764 +info: info-recursive
767 check-am: $(check_PROGRAMS)
768 $(MAKE) $(AM_MAKEFLAGS) check-TESTS
769 check: check-recursive
771 +installcheck: installcheck-recursive
773 +install-info: install-info-recursive
775 +install-exec: install-exec-recursive
778 +install-data: install-data-recursive
781 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
782 +install: install-recursive
784 +uninstall: uninstall-recursive
785 all-am: Makefile $(LTLIBRARIES)
786 +all-redirect: all-recursive
788 + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
789 installdirs: installdirs-recursive
792 -install: install-recursive
793 -install-exec: install-exec-recursive
794 -install-data: install-data-recursive
795 -uninstall: uninstall-recursive
797 -installcheck: installcheck-recursive
799 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
800 - INSTALL_STRIP_FLAG=-s \
801 - `test -z '$(STRIP)' || \
802 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
808 -rm -f Makefile $(CONFIG_CLEAN_FILES)
809 + -rm -f config.cache config.log stamp-h stamp-h[0-9]*
811 maintainer-clean-generic:
812 - @echo "This command is intended for maintainers to use"
813 - @echo "it deletes files that may require special tools to rebuild."
814 -clean: clean-recursive
816 -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
817 - clean-noinstLTLIBRARIES mostlyclean-am
819 -distclean: distclean-recursive
820 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
821 -distclean-am: clean-am distclean-compile distclean-generic \
822 - distclean-libtool distclean-tags
828 -info: info-recursive
829 +mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
830 + mostlyclean-libtool mostlyclean-checkPROGRAMS \
831 + mostlyclean-tags mostlyclean-generic
834 +mostlyclean: mostlyclean-recursive
837 +clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \
838 + clean-checkPROGRAMS clean-tags clean-generic \
842 +clean: clean-recursive
845 +distclean-am: distclean-noinstLTLIBRARIES distclean-compile \
846 + distclean-libtool distclean-checkPROGRAMS \
847 + distclean-tags distclean-generic clean-am
851 +distclean: distclean-recursive
852 + -rm -f config.status
855 +maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \
856 + maintainer-clean-compile maintainer-clean-libtool \
857 + maintainer-clean-checkPROGRAMS maintainer-clean-tags \
858 + maintainer-clean-generic distclean-am
859 + @echo "This command is intended for maintainers to use;"
860 + @echo "it deletes files that may require special tools to rebuild."
862 maintainer-clean: maintainer-clean-recursive
863 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
864 - -rm -rf autom4te.cache
865 -maintainer-clean-am: distclean-am maintainer-clean-generic
867 -mostlyclean: mostlyclean-recursive
869 -mostlyclean-am: mostlyclean-compile mostlyclean-generic \
870 - mostlyclean-libtool
871 + -rm -f config.status
875 -uninstall-info: uninstall-info-recursive
877 -.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-TESTS check-am \
878 - clean clean-checkPROGRAMS clean-generic clean-libtool \
879 - clean-noinstLTLIBRARIES clean-recursive distclean \
880 - distclean-compile distclean-generic distclean-libtool \
881 - distclean-recursive distclean-tags dvi dvi-am dvi-recursive \
882 - info info-am info-recursive install install-am install-data \
883 - install-data-am install-data-recursive install-exec \
884 - install-exec-am install-exec-recursive install-info \
885 - install-info-am install-man install-recursive install-strip \
886 - installcheck installcheck-am installdirs installdirs-am \
887 - installdirs-recursive maintainer-clean maintainer-clean-generic \
888 - maintainer-clean-recursive mostlyclean mostlyclean-compile \
889 - mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
890 - tags tags-recursive uninstall uninstall-am uninstall-info-am \
891 - uninstall-info-recursive uninstall-recursive
892 +.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
893 +clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
894 +mostlyclean-compile distclean-compile clean-compile \
895 +maintainer-clean-compile mostlyclean-libtool distclean-libtool \
896 +clean-libtool maintainer-clean-libtool mostlyclean-checkPROGRAMS \
897 +distclean-checkPROGRAMS clean-checkPROGRAMS \
898 +maintainer-clean-checkPROGRAMS install-data-recursive \
899 +uninstall-data-recursive install-exec-recursive \
900 +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
901 +all-recursive check-recursive installcheck-recursive info-recursive \
902 +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
903 +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
904 +distclean-tags clean-tags maintainer-clean-tags distdir check-TESTS \
905 +info-am info dvi-am dvi check check-am installcheck-am installcheck \
906 +install-info-am install-info install-exec-am install-exec \
907 +install-data-am install-data install-am install uninstall-am uninstall \
908 +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \
909 +distclean-generic clean-generic maintainer-clean-generic clean \
910 +mostlyclean distclean maintainer-clean
912 # The following hack produces a warning from automake, but we need it in order
913 # to build a file from a subdirectory. FIXME.
915 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
916 maintainer-clean-multi:
917 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
919 # Tell versions [3.59,3.63) of GNU make to not export all variables.
920 # Otherwise a system limit (for SysV at least) may be exceeded.
922 diff -Nur ../boehm-gc/allchblk.c boehm-gc/allchblk.c
923 --- ../boehm-gc/allchblk.c Mon May 26 12:48:52 2003
924 +++ boehm-gc/allchblk.c Mon Apr 8 17:39:15 2002
926 struct hblk * GC_hblkfreelist[N_HBLK_FLS+1] = { 0 };
930 word GC_free_bytes[N_HBLK_FLS+1] = { 0 };
931 /* Number of free bytes on each list. */
933 /* Is bytes + the number of free bytes on lists n .. N_HBLK_FLS */
934 /* > GC_max_large_allocd_bytes? */
938 - static GC_bool GC_enough_large_bytes_left(bytes,n)
939 + GC_bool GC_enough_large_bytes_left(bytes,n)
943 @@ -587,11 +583,11 @@
944 if (!GC_use_entire_heap
945 && size_avail != size_needed
946 && USED_HEAP_SIZE >= GC_requested_heapsize
947 - && !TRUE_INCREMENTAL && GC_should_collect()) {
948 + && !GC_incremental && GC_should_collect()) {
952 - /* If we have enough large blocks left to cover any */
953 + /* If we enough large blocks left to cover any */
954 /* previous request for large blocks, we go ahead */
955 /* and split. Assuming a steady state, that should */
956 /* be safe. It means that we can use the full */
958 if (!GC_enough_large_bytes_left(GC_large_allocd_bytes, n)) {
961 - /* If we are deallocating lots of memory from */
962 - /* finalizers, fail and collect sooner rather */
964 - if (GC_finalizer_mem_freed > (GC_heapsize >> 4)) {
967 # endif /* !USE_MUNMAP */
969 /* If the next heap block is obviously better, go on. */
970 diff -Nur ../boehm-gc/alloc.c boehm-gc/alloc.c
971 --- ../boehm-gc/alloc.c Mon May 26 12:48:52 2003
972 +++ boehm-gc/alloc.c Mon Mar 3 22:38:30 2003
974 GC_bool GC_need_full_gc = FALSE;
975 /* Need full GC do to heap growth. */
978 - GC_bool GC_world_stopped = FALSE;
979 -# define IF_THREADS(x) x
981 -# define IF_THREADS(x)
984 word GC_used_heap_size_after_full = 0;
986 char * GC_copyright[] =
988 unsigned long time_diff;
990 if ((count++ & 3) != 0) return(0);
992 GET_TIME(current_time);
993 time_diff = MS_TIME_DIFF(current_time,GC_start_time);
994 if (time_diff >= GC_time_limit) {
1002 #endif /* !SMALL_CONFIG */
1004 + (GC_large_free_bytes >> 2)
1005 /* use a bit more of large empty heap */
1007 - if (TRUE_INCREMENTAL) {
1008 + if (GC_incremental) {
1009 return scan_size / (2 * GC_free_space_divisor);
1011 return scan_size / GC_free_space_divisor;
1013 /* managed object should not alter result, assuming the client */
1014 /* is playing by the rules. */
1015 result = (signed_word)GC_words_allocd
1016 - - (signed_word)GC_mem_freed
1017 - + (signed_word)GC_finalizer_mem_freed - expl_managed;
1018 + - (signed_word)GC_mem_freed - expl_managed;
1019 if (result > (signed_word)GC_words_allocd) {
1020 result = GC_words_allocd;
1021 /* probably client bug or unfortunate scheduling */
1024 if (GC_should_collect()) {
1025 if (!GC_incremental) {
1026 + GC_notify_full_gc();
1027 GC_gcollect_inner();
1030 @@ -307,14 +302,10 @@
1032 * Stop the world garbage collection. Assumes lock held, signals disabled.
1033 * If stop_func is not GC_never_stop_func, then abort if stop_func returns TRUE.
1034 - * Return TRUE if we successfully completed the collection.
1036 GC_bool GC_try_to_collect_inner(stop_func)
1037 GC_stop_func stop_func;
1040 - CLOCK_TYPE start_time, current_time;
1042 if (GC_dont_gc) return FALSE;
1043 if (GC_incremental && GC_collection_in_progress()) {
1045 @@ -329,10 +320,8 @@
1046 GC_collect_a_little_inner(1);
1049 - if (stop_func == GC_never_stop_func) GC_notify_full_gc();
1051 if (GC_print_stats) {
1052 - if (GC_print_stats) GET_TIME(start_time);
1054 "Initiating full world-stop collection %lu after %ld allocd bytes\n",
1055 (unsigned long) GC_gc_no+1,
1056 @@ -371,13 +360,6 @@
1059 GC_finish_collection();
1060 -# if defined(CONDPRINT)
1061 - if (GC_print_stats) {
1062 - GET_TIME(current_time);
1063 - GC_printf1("Complete collection took %lu msecs\n",
1064 - MS_TIME_DIFF(current_time,start_time));
1071 result = (int)GC_collection_in_progress();
1074 - if (!result && GC_debugging_started) GC_print_all_smashed();
1078 @@ -467,17 +448,16 @@
1079 CLOCK_TYPE start_time, current_time;
1082 +# if defined(REGISTER_LIBRARIES_EARLY)
1083 + GC_cond_register_dynamic_libraries();
1087 GET_TIME(start_time);
1089 # if defined(CONDPRINT) && !defined(PRINTTIMES)
1090 if (GC_print_stats) GET_TIME(start_time);
1092 -# if defined(REGISTER_LIBRARIES_EARLY)
1093 - GC_cond_register_dynamic_libraries();
1096 - IF_THREADS(GC_world_stopped = TRUE);
1098 if (GC_print_stats) {
1099 GC_printf1("--> Marking for collection %lu ",
1103 GC_deficit = i; /* Give the mutator a chance. */
1104 - IF_THREADS(GC_world_stopped = FALSE);
1112 - IF_THREADS(GC_world_stopped = FALSE);
1115 GET_TIME(current_time);
1116 GC_printf1("World-stopped marking took %lu msecs\n",
1126 GC_print_address_map();
1131 /* Mark all objects on the free list. All objects should be */
1132 /* marked when we're done. */
1134 GC_words_allocd = 0;
1135 GC_words_wasted = 0;
1137 - GC_finalizer_mem_freed = 0;
1145 - if (GC_debugging_started) GC_print_all_smashed();
1146 GC_INVOKE_FINALIZERS();
1149 @@ -766,17 +741,14 @@
1154 - if (GC_debugging_started) GC_print_all_smashed();
1155 - GC_INVOKE_FINALIZERS();
1157 + if(result) GC_INVOKE_FINALIZERS();
1161 void GC_gcollect GC_PROTO(())
1163 + GC_notify_full_gc();
1164 (void)GC_try_to_collect(GC_never_stop_func);
1165 - if (GC_have_errors) GC_print_all_errors();
1168 word GC_n_heap_sects = 0; /* Number of sections currently in heap. */
1171 if (!GC_incremental && !GC_dont_gc &&
1172 (GC_dont_expand && GC_words_allocd > 0 || GC_should_collect())) {
1173 + GC_notify_full_gc();
1174 GC_gcollect_inner();
1176 word blocks_to_get = GC_heapsize/(HBLKSIZE*GC_free_space_divisor)
1177 @@ -1002,6 +975,7 @@
1178 && !GC_expand_hp_inner(needed_blocks)) {
1179 if (GC_fail_count++ < GC_max_retries) {
1180 WARN("Out of Memory! Trying to continue ...\n", 0);
1181 + GC_notify_full_gc();
1182 GC_gcollect_inner();
1184 # if !defined(AMIGA) || !defined(GC_AMIGA_FASTALLOC)
1185 @@ -1031,38 +1005,29 @@
1189 - ptr_t * flh = &(GC_obj_kinds[kind].ok_freelist[sz]);
1190 - GC_bool tried_minor = FALSE;
1191 + register ptr_t * flh = &(GC_obj_kinds[kind].ok_freelist[sz]);
1193 if (sz == 0) return(0);
1197 /* Do our share of marking work */
1198 - if(TRUE_INCREMENTAL) GC_collect_a_little_inner(1);
1199 + if(GC_incremental && !GC_dont_gc) GC_collect_a_little_inner(1);
1200 /* Sweep blocks for objects of this size */
1201 - GC_continue_reclaim(sz, kind);
1202 + GC_continue_reclaim(sz, kind);
1205 GC_new_hblk(sz, kind);
1209 - if (GC_incremental && GC_time_limit == GC_TIME_UNLIMITED
1210 - && ! tried_minor ) {
1211 - GC_collect_a_little_inner(1);
1212 - tried_minor = TRUE;
1214 - if (!GC_collect_or_expand((word)1,FALSE)) {
1215 + if (!GC_collect_or_expand((word)1,FALSE)) {
1223 - /* Successful allocation; reset failure count. */
1224 - GC_fail_count = 0;
1228 diff -Nur ../boehm-gc/alpha_mach_dep.s boehm-gc/alpha_mach_dep.s
1229 --- ../boehm-gc/alpha_mach_dep.s Mon May 26 12:48:52 2003
1230 +++ boehm-gc/alpha_mach_dep.s Fri Aug 17 11:30:45 2001
1232 - # $Id: darwin.patch,v 1.5 2003/09/10 04:36:20 megacz Exp $
1236 diff -Nur ../boehm-gc/autom4te.cache/output.0 boehm-gc/autom4te.cache/output.0
1237 --- ../boehm-gc/autom4te.cache/output.0 Mon May 26 13:14:22 2003
1238 +++ boehm-gc/autom4te.cache/output.0 Wed Dec 31 16:00:00 1969
1241 -@%:@ Guess values for system-dependent variables and create Makefiles.
1242 -@%:@ Generated by GNU Autoconf 2.57.
1244 -@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
1245 -@%:@ Free Software Foundation, Inc.
1246 -@%:@ This configure script is free software; the Free Software Foundation
1247 -@%:@ gives unlimited permission to copy, distribute and modify it.
1248 -## --------------------- ##
1249 -## M4sh Initialization. ##
1250 -## --------------------- ##
1252 -# Be Bourne compatible
1253 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
1256 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
1257 - # is contrary to our usage. Disable this feature.
1258 - alias -g '${1+"$@"}'='"$@"'
1259 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
1263 -# Support unset when possible.
1264 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
1271 -# Work around bugs in pre-3.0 UWIN ksh.
1272 -$as_unset ENV MAIL MAILPATH
1279 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
1280 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
1281 - LC_TELEPHONE LC_TIME
1283 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
1284 - eval $as_var=C; export $as_var
1290 -# Required to use basename.
1291 -if expr a : '\(a\)' >/dev/null 2>&1; then
1297 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
1298 - as_basename=basename
1304 -# Name of the executable.
1305 -as_me=`$as_basename "$0" ||
1306 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
1307 - X"$0" : 'X\(//\)$' \| \
1308 - X"$0" : 'X\(/\)$' \| \
1309 - . : '\(.\)' 2>/dev/null ||
1311 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
1312 - /^X\/\(\/\/\)$/{ s//\1/; q; }
1313 - /^X\/\(\/\).*/{ s//\1/; q; }
1317 -# PATH needs CR, and LINENO needs CR and PATH.
1318 -# Avoid depending upon Character Ranges.
1319 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
1320 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1321 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
1322 -as_cr_digits='0123456789'
1323 -as_cr_alnum=$as_cr_Letters$as_cr_digits
1325 -# The user is always right.
1326 -if test "${PATH_SEPARATOR+set}" != set; then
1327 - echo "#! /bin/sh" >conf$$.sh
1328 - echo "exit 0" >>conf$$.sh
1329 - chmod +x conf$$.sh
1330 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
1331 - PATH_SEPARATOR=';'
1339 - as_lineno_1=$LINENO
1340 - as_lineno_2=$LINENO
1341 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
1342 - test "x$as_lineno_1" != "x$as_lineno_2" &&
1343 - test "x$as_lineno_3" = "x$as_lineno_2" || {
1344 - # Find who we are. Look in the path if we contain no path at all
1345 - # relative or not.
1347 - *[\\/]* ) as_myself=$0 ;;
1348 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1349 -for as_dir in $PATH
1352 - test -z "$as_dir" && as_dir=.
1353 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
1358 - # We did not find ourselves, most probably we were run as `sh COMMAND'
1359 - # in which case we are not to be found in the path.
1360 - if test "x$as_myself" = x; then
1363 - if test ! -f "$as_myself"; then
1364 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
1365 - { (exit 1); exit 1; }; }
1367 - case $CONFIG_SHELL in
1369 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1370 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
1373 - test -z "$as_dir" && as_dir=.
1374 - for as_base in sh bash ksh sh5; do
1377 - if ("$as_dir/$as_base" -c '
1378 - as_lineno_1=$LINENO
1379 - as_lineno_2=$LINENO
1380 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
1381 - test "x$as_lineno_1" != "x$as_lineno_2" &&
1382 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
1383 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
1384 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
1385 - CONFIG_SHELL=$as_dir/$as_base
1386 - export CONFIG_SHELL
1387 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
1395 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
1396 - # uniformly replaced by the line number. The first 'sed' inserts a
1397 - # line-number line before each line; the second 'sed' does the real
1398 - # work. The second script uses 'N' to pair each line-number line
1399 - # with the numbered line, and appends trailing '-' during
1400 - # substitution so that $LINENO is not a special case at line end.
1401 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
1402 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
1403 - sed '=' <$as_myself |
1408 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
1411 - s,^['$as_cr_digits']*\n,,
1412 - ' >$as_me.lineno &&
1413 - chmod +x $as_me.lineno ||
1414 - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
1415 - { (exit 1); exit 1; }; }
1417 - # Don't try to exec as it changes $[0], causing all sort of problems
1418 - # (the dirname of $[0] is not the place where we might find the
1419 - # original and so on. Autoconf is especially sensible to this).
1421 - # Exit status is that of the last command.
1426 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
1427 - *c*,-n*) ECHO_N= ECHO_C='
1429 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
1430 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
1433 -if expr a : '\(a\)' >/dev/null 2>&1; then
1439 -rm -f conf$$ conf$$.exe conf$$.file
1441 -if ln -s conf$$.file conf$$ 2>/dev/null; then
1442 - # We could just check for DJGPP; but this test a) works b) is more generic
1443 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
1444 - if test -f conf$$.exe; then
1445 - # Don't use ln at all; we don't have any links
1450 -elif ln conf$$.file conf$$ 2>/dev/null; then
1455 -rm -f conf$$ conf$$.exe conf$$.file
1457 -if mkdir -p . 2>/dev/null; then
1463 -as_executable_p="test -f"
1465 -# Sed expression to map a string onto a valid CPP name.
1466 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
1468 -# Sed expression to map a string onto a valid variable name.
1469 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
1473 -# We need space, tab and new line, in precisely that order.
1482 -# Name of the host.
1483 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
1484 -# so uname gets run too.
1485 -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
1492 -ac_default_prefix=/usr/local
1493 -ac_config_libobj_dir=.
1498 -SHELL=${CONFIG_SHELL-/bin/sh}
1500 -# Maximum number of lines to put in a shell here document.
1501 -# This variable seems obsolete. It should probably be removed, and
1502 -# only ac_max_sed_lines should be used.
1503 -: ${ac_max_here_lines=38}
1505 -# Identity of this package.
1512 -ac_unique_file="gcj_mlc.c"
1513 -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'
1516 -# Initialize some variables set by options.
1518 -ac_init_version=false
1519 -# The variables have the same names as the options, with
1520 -# dashes changed to underlines.
1521 -cache_file=/dev/null
1526 -program_prefix=NONE
1527 -program_suffix=NONE
1528 -program_transform_name=s,x,x,
1536 -# Installation directory options.
1537 -# These are left unexpanded so users can "make install exec_prefix=/foo"
1538 -# and all the variables that are supposed to be based on exec_prefix
1539 -# by default will actually change.
1540 -# Use braces instead of parens because sh, perl, etc. also accept them.
1541 -bindir='${exec_prefix}/bin'
1542 -sbindir='${exec_prefix}/sbin'
1543 -libexecdir='${exec_prefix}/libexec'
1544 -datadir='${prefix}/share'
1545 -sysconfdir='${prefix}/etc'
1546 -sharedstatedir='${prefix}/com'
1547 -localstatedir='${prefix}/var'
1548 -libdir='${exec_prefix}/lib'
1549 -includedir='${prefix}/include'
1550 -oldincludedir='/usr/include'
1551 -infodir='${prefix}/info'
1552 -mandir='${prefix}/man'
1557 - # If the previous option needs an argument, assign it.
1558 - if test -n "$ac_prev"; then
1559 - eval "$ac_prev=\$ac_option"
1564 - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
1566 - # Accept the important Cygnus configure options, so we can diagnose typos.
1568 - case $ac_option in
1570 - -bindir | --bindir | --bindi | --bind | --bin | --bi)
1572 - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
1573 - bindir=$ac_optarg ;;
1575 - -build | --build | --buil | --bui | --bu)
1576 - ac_prev=build_alias ;;
1577 - -build=* | --build=* | --buil=* | --bui=* | --bu=*)
1578 - build_alias=$ac_optarg ;;
1580 - -cache-file | --cache-file | --cache-fil | --cache-fi \
1581 - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
1582 - ac_prev=cache_file ;;
1583 - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
1584 - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
1585 - cache_file=$ac_optarg ;;
1587 - --config-cache | -C)
1588 - cache_file=config.cache ;;
1590 - -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
1591 - ac_prev=datadir ;;
1592 - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
1594 - datadir=$ac_optarg ;;
1596 - -disable-* | --disable-*)
1597 - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1598 - # Reject names that are not valid shell variable names.
1599 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1600 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
1601 - { (exit 1); exit 1; }; }
1602 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
1603 - eval "enable_$ac_feature=no" ;;
1605 - -enable-* | --enable-*)
1606 - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1607 - # Reject names that are not valid shell variable names.
1608 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1609 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
1610 - { (exit 1); exit 1; }; }
1611 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
1612 - case $ac_option in
1613 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
1614 - *) ac_optarg=yes ;;
1616 - eval "enable_$ac_feature='$ac_optarg'" ;;
1618 - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
1619 - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
1620 - | --exec | --exe | --ex)
1621 - ac_prev=exec_prefix ;;
1622 - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
1623 - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
1624 - | --exec=* | --exe=* | --ex=*)
1625 - exec_prefix=$ac_optarg ;;
1627 - -gas | --gas | --ga | --g)
1628 - # Obsolete; use --with-gas.
1631 - -help | --help | --hel | --he | -h)
1632 - ac_init_help=long ;;
1633 - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
1634 - ac_init_help=recursive ;;
1635 - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
1636 - ac_init_help=short ;;
1638 - -host | --host | --hos | --ho)
1639 - ac_prev=host_alias ;;
1640 - -host=* | --host=* | --hos=* | --ho=*)
1641 - host_alias=$ac_optarg ;;
1643 - -includedir | --includedir | --includedi | --included | --include \
1644 - | --includ | --inclu | --incl | --inc)
1645 - ac_prev=includedir ;;
1646 - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
1647 - | --includ=* | --inclu=* | --incl=* | --inc=*)
1648 - includedir=$ac_optarg ;;
1650 - -infodir | --infodir | --infodi | --infod | --info | --inf)
1651 - ac_prev=infodir ;;
1652 - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
1653 - infodir=$ac_optarg ;;
1655 - -libdir | --libdir | --libdi | --libd)
1657 - -libdir=* | --libdir=* | --libdi=* | --libd=*)
1658 - libdir=$ac_optarg ;;
1660 - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
1661 - | --libexe | --libex | --libe)
1662 - ac_prev=libexecdir ;;
1663 - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
1664 - | --libexe=* | --libex=* | --libe=*)
1665 - libexecdir=$ac_optarg ;;
1667 - -localstatedir | --localstatedir | --localstatedi | --localstated \
1668 - | --localstate | --localstat | --localsta | --localst \
1669 - | --locals | --local | --loca | --loc | --lo)
1670 - ac_prev=localstatedir ;;
1671 - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
1672 - | --localstate=* | --localstat=* | --localsta=* | --localst=* \
1673 - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
1674 - localstatedir=$ac_optarg ;;
1676 - -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
1678 - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
1679 - mandir=$ac_optarg ;;
1681 - -nfp | --nfp | --nf)
1682 - # Obsolete; use --without-fp.
1685 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
1686 - | --no-cr | --no-c | -n)
1689 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
1690 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
1691 - no_recursion=yes ;;
1693 - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
1694 - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
1695 - | --oldin | --oldi | --old | --ol | --o)
1696 - ac_prev=oldincludedir ;;
1697 - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
1698 - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
1699 - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
1700 - oldincludedir=$ac_optarg ;;
1702 - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
1704 - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
1705 - prefix=$ac_optarg ;;
1707 - -program-prefix | --program-prefix | --program-prefi | --program-pref \
1708 - | --program-pre | --program-pr | --program-p)
1709 - ac_prev=program_prefix ;;
1710 - -program-prefix=* | --program-prefix=* | --program-prefi=* \
1711 - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
1712 - program_prefix=$ac_optarg ;;
1714 - -program-suffix | --program-suffix | --program-suffi | --program-suff \
1715 - | --program-suf | --program-su | --program-s)
1716 - ac_prev=program_suffix ;;
1717 - -program-suffix=* | --program-suffix=* | --program-suffi=* \
1718 - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
1719 - program_suffix=$ac_optarg ;;
1721 - -program-transform-name | --program-transform-name \
1722 - | --program-transform-nam | --program-transform-na \
1723 - | --program-transform-n | --program-transform- \
1724 - | --program-transform | --program-transfor \
1725 - | --program-transfo | --program-transf \
1726 - | --program-trans | --program-tran \
1727 - | --progr-tra | --program-tr | --program-t)
1728 - ac_prev=program_transform_name ;;
1729 - -program-transform-name=* | --program-transform-name=* \
1730 - | --program-transform-nam=* | --program-transform-na=* \
1731 - | --program-transform-n=* | --program-transform-=* \
1732 - | --program-transform=* | --program-transfor=* \
1733 - | --program-transfo=* | --program-transf=* \
1734 - | --program-trans=* | --program-tran=* \
1735 - | --progr-tra=* | --program-tr=* | --program-t=*)
1736 - program_transform_name=$ac_optarg ;;
1738 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
1739 - | -silent | --silent | --silen | --sile | --sil)
1742 - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
1743 - ac_prev=sbindir ;;
1744 - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
1745 - | --sbi=* | --sb=*)
1746 - sbindir=$ac_optarg ;;
1748 - -sharedstatedir | --sharedstatedir | --sharedstatedi \
1749 - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
1750 - | --sharedst | --shareds | --shared | --share | --shar \
1752 - ac_prev=sharedstatedir ;;
1753 - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
1754 - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
1755 - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
1756 - | --sha=* | --sh=*)
1757 - sharedstatedir=$ac_optarg ;;
1759 - -site | --site | --sit)
1761 - -site=* | --site=* | --sit=*)
1762 - site=$ac_optarg ;;
1764 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
1766 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
1767 - srcdir=$ac_optarg ;;
1769 - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
1770 - | --syscon | --sysco | --sysc | --sys | --sy)
1771 - ac_prev=sysconfdir ;;
1772 - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
1773 - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
1774 - sysconfdir=$ac_optarg ;;
1776 - -target | --target | --targe | --targ | --tar | --ta | --t)
1777 - ac_prev=target_alias ;;
1778 - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
1779 - target_alias=$ac_optarg ;;
1781 - -v | -verbose | --verbose | --verbos | --verbo | --verb)
1784 - -version | --version | --versio | --versi | --vers | -V)
1785 - ac_init_version=: ;;
1787 - -with-* | --with-*)
1788 - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1789 - # Reject names that are not valid shell variable names.
1790 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1791 - { echo "$as_me: error: invalid package name: $ac_package" >&2
1792 - { (exit 1); exit 1; }; }
1793 - ac_package=`echo $ac_package| sed 's/-/_/g'`
1794 - case $ac_option in
1795 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
1796 - *) ac_optarg=yes ;;
1798 - eval "with_$ac_package='$ac_optarg'" ;;
1800 - -without-* | --without-*)
1801 - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1802 - # Reject names that are not valid shell variable names.
1803 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
1804 - { echo "$as_me: error: invalid package name: $ac_package" >&2
1805 - { (exit 1); exit 1; }; }
1806 - ac_package=`echo $ac_package | sed 's/-/_/g'`
1807 - eval "with_$ac_package=no" ;;
1810 - # Obsolete; use --with-x.
1813 - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
1814 - | --x-incl | --x-inc | --x-in | --x-i)
1815 - ac_prev=x_includes ;;
1816 - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
1817 - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
1818 - x_includes=$ac_optarg ;;
1820 - -x-libraries | --x-libraries | --x-librarie | --x-librari \
1821 - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
1822 - ac_prev=x_libraries ;;
1823 - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
1824 - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1825 - x_libraries=$ac_optarg ;;
1827 - -*) { echo "$as_me: error: unrecognized option: $ac_option
1828 -Try \`$0 --help' for more information." >&2
1829 - { (exit 1); exit 1; }; }
1833 - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
1834 - # Reject names that are not valid shell variable names.
1835 - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
1836 - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
1837 - { (exit 1); exit 1; }; }
1838 - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
1839 - eval "$ac_envvar='$ac_optarg'"
1840 - export $ac_envvar ;;
1843 - # FIXME: should be removed in autoconf 3.0.
1844 - echo "$as_me: WARNING: you should use --build, --host, --target" >&2
1845 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
1846 - echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1847 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
1853 -if test -n "$ac_prev"; then
1854 - ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1855 - { echo "$as_me: error: missing argument to $ac_option" >&2
1856 - { (exit 1); exit 1; }; }
1859 -# Be sure to have absolute paths.
1860 -for ac_var in exec_prefix prefix
1862 - eval ac_val=$`echo $ac_var`
1864 - [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
1865 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
1866 - { (exit 1); exit 1; }; };;
1870 -# Be sure to have absolute paths.
1871 -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
1872 - localstatedir libdir includedir oldincludedir infodir mandir
1874 - eval ac_val=$`echo $ac_var`
1876 - [\\/$]* | ?:[\\/]* ) ;;
1877 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
1878 - { (exit 1); exit 1; }; };;
1882 -# There might be people who depend on the old broken behavior: `$host'
1883 -# used to hold the argument of --host etc.
1884 -# FIXME: To remove some day.
1887 -target=$target_alias
1889 -# FIXME: To remove some day.
1890 -if test "x$host_alias" != x; then
1891 - if test "x$build_alias" = x; then
1892 - cross_compiling=maybe
1893 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1894 - If a cross compiler is detected then cross compile mode will be used." >&2
1895 - elif test "x$build_alias" != "x$host_alias"; then
1896 - cross_compiling=yes
1901 -test -n "$host_alias" && ac_tool_prefix=$host_alias-
1903 -test "$silent" = yes && exec 6>/dev/null
1906 -# Find the source files, if location was not specified.
1907 -if test -z "$srcdir"; then
1908 - ac_srcdir_defaulted=yes
1909 - # Try the directory containing this script, then its parent.
1910 - ac_confdir=`(dirname "$0") 2>/dev/null ||
1911 -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
1912 - X"$0" : 'X\(//\)[^/]' \| \
1913 - X"$0" : 'X\(//\)$' \| \
1914 - X"$0" : 'X\(/\)' \| \
1915 - . : '\(.\)' 2>/dev/null ||
1917 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
1918 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
1919 - /^X\(\/\/\)$/{ s//\1/; q; }
1920 - /^X\(\/\).*/{ s//\1/; q; }
1922 - srcdir=$ac_confdir
1923 - if test ! -r $srcdir/$ac_unique_file; then
1927 - ac_srcdir_defaulted=no
1929 -if test ! -r $srcdir/$ac_unique_file; then
1930 - if test "$ac_srcdir_defaulted" = yes; then
1931 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
1932 - { (exit 1); exit 1; }; }
1934 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
1935 - { (exit 1); exit 1; }; }
1938 -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
1939 - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
1940 - { (exit 1); exit 1; }; }
1941 -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
1942 -ac_env_build_alias_set=${build_alias+set}
1943 -ac_env_build_alias_value=$build_alias
1944 -ac_cv_env_build_alias_set=${build_alias+set}
1945 -ac_cv_env_build_alias_value=$build_alias
1946 -ac_env_host_alias_set=${host_alias+set}
1947 -ac_env_host_alias_value=$host_alias
1948 -ac_cv_env_host_alias_set=${host_alias+set}
1949 -ac_cv_env_host_alias_value=$host_alias
1950 -ac_env_target_alias_set=${target_alias+set}
1951 -ac_env_target_alias_value=$target_alias
1952 -ac_cv_env_target_alias_set=${target_alias+set}
1953 -ac_cv_env_target_alias_value=$target_alias
1954 -ac_env_CXXCPP_set=${CXXCPP+set}
1955 -ac_env_CXXCPP_value=$CXXCPP
1956 -ac_cv_env_CXXCPP_set=${CXXCPP+set}
1957 -ac_cv_env_CXXCPP_value=$CXXCPP
1958 -ac_env_CPPFLAGS_set=${CPPFLAGS+set}
1959 -ac_env_CPPFLAGS_value=$CPPFLAGS
1960 -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
1961 -ac_cv_env_CPPFLAGS_value=$CPPFLAGS
1964 -# Report the --help message.
1966 -if test "$ac_init_help" = "long"; then
1967 - # Omit some internal or obsolete options to make the list less imposing.
1968 - # This message is too long to be a string in the A/UX 3.1 sh.
1970 -\`configure' configures this package to adapt to many kinds of systems.
1972 -Usage: $0 [OPTION]... [VAR=VALUE]...
1974 -To assign environment variables (e.g., CC, CFLAGS...), specify them as
1975 -VAR=VALUE. See below for descriptions of some of the useful variables.
1977 -Defaults for the options are specified in brackets.
1980 - -h, --help display this help and exit
1981 - --help=short display options specific to this package
1982 - --help=recursive display the short help of all the included packages
1983 - -V, --version display version information and exit
1984 - -q, --quiet, --silent do not print \`checking...' messages
1985 - --cache-file=FILE cache test results in FILE [disabled]
1986 - -C, --config-cache alias for \`--cache-file=config.cache'
1987 - -n, --no-create do not create output files
1988 - --srcdir=DIR find the sources in DIR [configure dir or \`..']
1993 -Installation directories:
1994 - --prefix=PREFIX install architecture-independent files in PREFIX
1995 - [$ac_default_prefix]
1996 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
1999 -By default, \`make install' will install all the files in
2000 -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
2001 -an installation prefix other than \`$ac_default_prefix' using \`--prefix',
2002 -for instance \`--prefix=\$HOME'.
2004 -For better control, use the options below.
2006 -Fine tuning of the installation directories:
2007 - --bindir=DIR user executables [EPREFIX/bin]
2008 - --sbindir=DIR system admin executables [EPREFIX/sbin]
2009 - --libexecdir=DIR program executables [EPREFIX/libexec]
2010 - --datadir=DIR read-only architecture-independent data [PREFIX/share]
2011 - --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
2012 - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
2013 - --localstatedir=DIR modifiable single-machine data [PREFIX/var]
2014 - --libdir=DIR object code libraries [EPREFIX/lib]
2015 - --includedir=DIR C header files [PREFIX/include]
2016 - --oldincludedir=DIR C header files for non-gcc [/usr/include]
2017 - --infodir=DIR info documentation [PREFIX/info]
2018 - --mandir=DIR man documentation [PREFIX/man]
2024 - --program-prefix=PREFIX prepend PREFIX to installed program names
2025 - --program-suffix=SUFFIX append SUFFIX to installed program names
2026 - --program-transform-name=PROGRAM run sed PROGRAM on installed program names
2029 - --build=BUILD configure for building on BUILD [guessed]
2030 - --host=HOST cross-compile to build programs to run on HOST [BUILD]
2031 - --target=TARGET configure for building compilers for TARGET [HOST]
2035 -if test -n "$ac_init_help"; then
2040 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
2041 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
2042 - --enable-multilib build many library versions (default)
2043 - --enable-maintainer-mode enable make rules and dependencies not useful
2044 - (and sometimes confusing) to the casual installer
2045 - --enable-shared=PKGS build shared libraries default=yes
2046 - --enable-static=PKGS build static libraries default=yes
2047 - --enable-fast-install=PKGS optimize for fast installation default=yes
2048 - --disable-libtool-lock avoid locking (might break parallel builds)
2049 - --enable-parallel-mark parallelize marking and free list construction
2050 - --enable-shared=PKGS build shared libraries default=no
2051 - --enable-full-debug include full support for pointer backtracing etc.
2054 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
2055 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2056 - --with-gnu-ld assume the C compiler uses GNU ld default=no
2057 - --with-pic try to use only PIC/non-PIC objects default=use both
2058 - --with-target-subdir=SUBDIR
2059 - configuring with a cross compiler
2060 - --with-cross-host=HOST configuring with a cross compiler
2061 - --with-ecos enable runtime eCos target support
2063 -Some influential environment variables:
2064 - CXXCPP C++ preprocessor
2065 - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
2066 - headers in a nonstandard directory <include dir>
2068 -Use these variables to override the choices made by `configure' or to help
2069 -it to find libraries and programs with nonstandard names/locations.
2074 -if test "$ac_init_help" = "recursive"; then
2075 - # If there are subdirs, report their specific --help.
2077 - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
2078 - test -d $ac_dir || continue
2081 -if test "$ac_dir" != .; then
2082 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
2083 - # A "../" for each directory in $ac_dir_suffix.
2084 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
2086 - ac_dir_suffix= ac_top_builddir=
2090 - .) # No --srcdir option. We are building in place.
2092 - if test -z "$ac_top_builddir"; then
2095 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
2097 - [\\/]* | ?:[\\/]* ) # Absolute path.
2098 - ac_srcdir=$srcdir$ac_dir_suffix;
2099 - ac_top_srcdir=$srcdir ;;
2100 - *) # Relative path.
2101 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
2102 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
2104 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
2106 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
2107 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
2108 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
2109 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
2112 - # Check for guested configure; otherwise get Cygnus style configure.
2113 - if test -f $ac_srcdir/configure.gnu; then
2115 - $SHELL $ac_srcdir/configure.gnu --help=recursive
2116 - elif test -f $ac_srcdir/configure; then
2118 - $SHELL $ac_srcdir/configure --help=recursive
2119 - elif test -f $ac_srcdir/configure.ac ||
2120 - test -f $ac_srcdir/configure.in; then
2122 - $ac_configure --help
2124 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
2130 -test -n "$ac_init_help" && exit 0
2131 -if $ac_init_version; then
2134 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
2135 -Free Software Foundation, Inc.
2136 -This configure script is free software; the Free Software Foundation
2137 -gives unlimited permission to copy, distribute and modify it.
2143 -This file contains any messages produced by compilers while
2144 -running configure, to aid debugging if configure makes a mistake.
2146 -It was created by $as_me, which was
2147 -generated by GNU Autoconf 2.57. Invocation command line was
2154 -@%:@@%:@ --------- @%:@@%:@
2155 -@%:@@%:@ Platform. @%:@@%:@
2156 -@%:@@%:@ --------- @%:@@%:@
2158 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
2159 -uname -m = `(uname -m) 2>/dev/null || echo unknown`
2160 -uname -r = `(uname -r) 2>/dev/null || echo unknown`
2161 -uname -s = `(uname -s) 2>/dev/null || echo unknown`
2162 -uname -v = `(uname -v) 2>/dev/null || echo unknown`
2164 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
2165 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
2167 -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
2168 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
2169 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
2170 -hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
2171 -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
2172 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
2173 -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
2177 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2178 -for as_dir in $PATH
2181 - test -z "$as_dir" && as_dir=.
2182 - echo "PATH: $as_dir"
2190 -@%:@@%:@ ----------- @%:@@%:@
2191 -@%:@@%:@ Core tests. @%:@@%:@
2192 -@%:@@%:@ ----------- @%:@@%:@
2197 -# Keep a trace of the command line.
2198 -# Strip out --no-create and --no-recursion so they do not pile up.
2199 -# Strip out --silent because we don't want to record it for future runs.
2200 -# Also quote any args containing shell meta-characters.
2201 -# Make two passes to allow for proper duplicate-argument suppression.
2203 -ac_configure_args0=
2204 -ac_configure_args1=
2206 -ac_must_keep_next=false
2212 - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
2213 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
2214 - | -silent | --silent | --silen | --sile | --sil)
2216 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
2217 - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2220 - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
2222 - ac_configure_args1="$ac_configure_args1 '$ac_arg'"
2223 - if test $ac_must_keep_next = true; then
2224 - ac_must_keep_next=false # Got value, back to normal.
2227 - *=* | --config-cache | -C | -disable-* | --disable-* \
2228 - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2229 - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2230 - | -with-* | --with-* | -without-* | --without-* | --x)
2231 - case "$ac_configure_args0 " in
2232 - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
2235 - -* ) ac_must_keep_next=true ;;
2238 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
2239 - # Get rid of the leading space.
2245 -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
2246 -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
2248 -# When interrupted or exit'd, cleanup temporary files, and complete
2249 -# config.log. We remove comments because anyway the quotes in there
2250 -# would cause problems or look ugly.
2251 -# WARNING: Be sure not to use single quotes in there, as some shells,
2252 -# such as our DU 5.0 friend, will then `close' the trap.
2253 -trap 'exit_status=$?
2254 - # Save into config.log some information that might help in debugging.
2259 -@%:@@%:@ ---------------- @%:@@%:@
2260 -@%:@@%:@ Cache variables. @%:@@%:@
2261 -@%:@@%:@ ---------------- @%:@@%:@
2264 - # The following way of writing the cache mishandles newlines in values,
2267 - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
2270 - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
2271 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
2275 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
2282 -@%:@@%:@ ----------------- @%:@@%:@
2283 -@%:@@%:@ Output variables. @%:@@%:@
2284 -@%:@@%:@ ----------------- @%:@@%:@
2287 - for ac_var in $ac_subst_vars
2289 - eval ac_val=$`echo $ac_var`
2290 - echo "$ac_var='"'"'$ac_val'"'"'"
2294 - if test -n "$ac_subst_files"; then
2296 -@%:@@%:@ ------------- @%:@@%:@
2297 -@%:@@%:@ Output files. @%:@@%:@
2298 -@%:@@%:@ ------------- @%:@@%:@
2301 - for ac_var in $ac_subst_files
2303 - eval ac_val=$`echo $ac_var`
2304 - echo "$ac_var='"'"'$ac_val'"'"'"
2309 - if test -s confdefs.h; then
2311 -@%:@@%:@ ----------- @%:@@%:@
2312 -@%:@@%:@ confdefs.h. @%:@@%:@
2313 -@%:@@%:@ ----------- @%:@@%:@
2316 - sed "/^$/d" confdefs.h | sort
2319 - test "$ac_signal" != 0 &&
2320 - echo "$as_me: caught signal $ac_signal"
2321 - echo "$as_me: exit $exit_status"
2323 - rm -f core core.* *.core &&
2324 - rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
2327 -for ac_signal in 1 2 13 15; do
2328 - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
2332 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
2333 -rm -rf conftest* confdefs.h
2334 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
2337 -# Predefined preprocessor variables.
2339 -cat >>confdefs.h <<_ACEOF
2340 -@%:@define PACKAGE_NAME "$PACKAGE_NAME"
2344 -cat >>confdefs.h <<_ACEOF
2345 -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
2349 -cat >>confdefs.h <<_ACEOF
2350 -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
2354 -cat >>confdefs.h <<_ACEOF
2355 -@%:@define PACKAGE_STRING "$PACKAGE_STRING"
2359 -cat >>confdefs.h <<_ACEOF
2360 -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
2364 -# Let the site file select an alternate cache file if it wants to.
2365 -# Prefer explicitly selected file to automatically selected ones.
2366 -if test -z "$CONFIG_SITE"; then
2367 - if test "x$prefix" != xNONE; then
2368 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
2370 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
2373 -for ac_site_file in $CONFIG_SITE; do
2374 - if test -r "$ac_site_file"; then
2375 - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
2376 -echo "$as_me: loading site script $ac_site_file" >&6;}
2377 - sed 's/^/| /' "$ac_site_file" >&5
2382 -if test -r "$cache_file"; then
2383 - # Some versions of bash will fail to source /dev/null (special
2384 - # files actually), so we avoid doing that.
2385 - if test -f "$cache_file"; then
2386 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
2387 -echo "$as_me: loading cache $cache_file" >&6;}
2388 - case $cache_file in
2389 - [\\/]* | ?:[\\/]* ) . $cache_file;;
2390 - *) . ./$cache_file;;
2394 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
2395 -echo "$as_me: creating cache $cache_file" >&6;}
2399 -# Check that the precious variables saved in the cache have kept the same
2401 -ac_cache_corrupted=false
2402 -for ac_var in `(set) 2>&1 |
2403 - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
2404 - eval ac_old_set=\$ac_cv_env_${ac_var}_set
2405 - eval ac_new_set=\$ac_env_${ac_var}_set
2406 - eval ac_old_val="\$ac_cv_env_${ac_var}_value"
2407 - eval ac_new_val="\$ac_env_${ac_var}_value"
2408 - case $ac_old_set,$ac_new_set in
2410 - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
2411 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
2412 - ac_cache_corrupted=: ;;
2414 - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
2415 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
2416 - ac_cache_corrupted=: ;;
2419 - if test "x$ac_old_val" != "x$ac_new_val"; then
2420 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
2421 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
2422 - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
2423 -echo "$as_me: former value: $ac_old_val" >&2;}
2424 - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
2425 -echo "$as_me: current value: $ac_new_val" >&2;}
2426 - ac_cache_corrupted=:
2429 - # Pass precious variables to config.status.
2430 - if test "$ac_new_set" = set; then
2431 - case $ac_new_val in
2432 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
2433 - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
2434 - *) ac_arg=$ac_var=$ac_new_val ;;
2436 - case " $ac_configure_args " in
2437 - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
2438 - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
2442 -if $ac_cache_corrupted; then
2443 - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
2444 -echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2445 - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
2446 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
2447 - { (exit 1); exit 1; }; }
2451 -ac_cpp='$CPP $CPPFLAGS'
2452 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2453 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2454 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
2475 -# This works around the fact that libtool configuration may change LD
2476 -# for this particular configuration, but some shells, instead of
2477 -# keeping the changes in LD private, export them just because LD is
2479 -ORIGINAL_LD_FOR_MULTILIBS=$LD
2482 -for ac_dir in . $srcdir/.; do
2483 - if test -f $ac_dir/install-sh; then
2484 - ac_aux_dir=$ac_dir
2485 - ac_install_sh="$ac_aux_dir/install-sh -c"
2487 - elif test -f $ac_dir/install.sh; then
2488 - ac_aux_dir=$ac_dir
2489 - ac_install_sh="$ac_aux_dir/install.sh -c"
2491 - elif test -f $ac_dir/shtool; then
2492 - ac_aux_dir=$ac_dir
2493 - ac_install_sh="$ac_aux_dir/shtool install -c"
2497 -if test -z "$ac_aux_dir"; then
2498 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . $srcdir/." >&5
2499 -echo "$as_me: error: cannot find install-sh or install.sh in . $srcdir/." >&2;}
2500 - { (exit 1); exit 1; }; }
2502 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2503 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2504 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2507 -# Make sure we can run config.sub.
2508 -$ac_config_sub sun4 >/dev/null 2>&1 ||
2509 - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
2510 -echo "$as_me: error: cannot run $ac_config_sub" >&2;}
2511 - { (exit 1); exit 1; }; }
2513 -echo "$as_me:$LINENO: checking build system type" >&5
2514 -echo $ECHO_N "checking build system type... $ECHO_C" >&6
2515 -if test "${ac_cv_build+set}" = set; then
2516 - echo $ECHO_N "(cached) $ECHO_C" >&6
2518 - ac_cv_build_alias=$build_alias
2519 -test -z "$ac_cv_build_alias" &&
2520 - ac_cv_build_alias=`$ac_config_guess`
2521 -test -z "$ac_cv_build_alias" &&
2522 - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
2523 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
2524 - { (exit 1); exit 1; }; }
2525 -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
2526 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
2527 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
2528 - { (exit 1); exit 1; }; }
2531 -echo "$as_me:$LINENO: result: $ac_cv_build" >&5
2532 -echo "${ECHO_T}$ac_cv_build" >&6
2534 -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2535 -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2536 -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2539 -echo "$as_me:$LINENO: checking host system type" >&5
2540 -echo $ECHO_N "checking host system type... $ECHO_C" >&6
2541 -if test "${ac_cv_host+set}" = set; then
2542 - echo $ECHO_N "(cached) $ECHO_C" >&6
2544 - ac_cv_host_alias=$host_alias
2545 -test -z "$ac_cv_host_alias" &&
2546 - ac_cv_host_alias=$ac_cv_build_alias
2547 -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
2548 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
2549 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
2550 - { (exit 1); exit 1; }; }
2553 -echo "$as_me:$LINENO: result: $ac_cv_host" >&5
2554 -echo "${ECHO_T}$ac_cv_host" >&6
2556 -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2557 -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2558 -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2561 -# Find a good install program. We prefer a C program (faster),
2562 -# so one script is as good as another. But avoid the broken or
2563 -# incompatible versions:
2564 -# SysV /etc/install, /usr/sbin/install
2565 -# SunOS /usr/etc/install
2566 -# IRIX /sbin/install
2568 -# AmigaOS /C/install, which installs bootblocks on floppy discs
2569 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
2570 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
2571 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
2572 -# ./install, which can be erroneously created by make from ./install.sh.
2573 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
2574 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
2575 -if test -z "$INSTALL"; then
2576 -if test "${ac_cv_path_install+set}" = set; then
2577 - echo $ECHO_N "(cached) $ECHO_C" >&6
2579 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2580 -for as_dir in $PATH
2583 - test -z "$as_dir" && as_dir=.
2584 - # Account for people who put trailing slashes in PATH elements.
2586 - ./ | .// | /cC/* | \
2587 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2590 - # OSF1 and SCO ODT 3.0 have their own names for install.
2591 - # Don't use installbsd from OSF since it installs stuff as root
2593 - for ac_prog in ginstall scoinst install; do
2594 - for ac_exec_ext in '' $ac_executable_extensions; do
2595 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2596 - if test $ac_prog = install &&
2597 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2598 - # AIX install. It has an incompatible calling convention.
2600 - elif test $ac_prog = install &&
2601 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2602 - # program-specific install script used by HP pwplus--don't use.
2605 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2617 - if test "${ac_cv_path_install+set}" = set; then
2618 - INSTALL=$ac_cv_path_install
2620 - # As a last resort, use the slow shell script. We don't cache a
2621 - # path for INSTALL within a source directory, because that will
2622 - # break other packages using the cache if that directory is
2623 - # removed, or if the path is relative.
2624 - INSTALL=$ac_install_sh
2627 -echo "$as_me:$LINENO: result: $INSTALL" >&5
2628 -echo "${ECHO_T}$INSTALL" >&6
2630 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
2631 -# It thinks the first close brace ends the variable substitution.
2632 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2634 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
2636 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
2638 -echo "$as_me:$LINENO: checking whether build environment is sane" >&5
2639 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
2642 -echo timestamp > conftestfile
2643 -# Do `set' in a subshell so we don't clobber the current shell's
2644 -# arguments. Must try -L first in case configure is actually a
2645 -# symlink; some systems play weird games with the mod time of symlinks
2646 -# (eg FreeBSD returns the mod time of the symlink's containing
2649 - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
2650 - if test "$*" = "X"; then
2652 - set X `ls -t $srcdir/configure conftestfile`
2654 - if test "$*" != "X $srcdir/configure conftestfile" \
2655 - && test "$*" != "X conftestfile $srcdir/configure"; then
2657 - # If neither matched, then we have a broken ls. This can happen
2658 - # if, for instance, CONFIG_SHELL is bash and it inherits a
2659 - # broken ls alias from the environment. This has actually
2660 - # happened. Such a system could not be considered "sane".
2661 - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
2662 -alias in your environment" >&5
2663 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
2664 -alias in your environment" >&2;}
2665 - { (exit 1); exit 1; }; }
2668 - test "$2" = conftestfile
2674 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
2675 -Check your system clock" >&5
2676 -echo "$as_me: error: newly created file is older than distributed files!
2677 -Check your system clock" >&2;}
2678 - { (exit 1); exit 1; }; }
2681 -echo "$as_me:$LINENO: result: yes" >&5
2682 -echo "${ECHO_T}yes" >&6
2683 -test "$program_prefix" != NONE &&
2684 - program_transform_name="s,^,$program_prefix,;$program_transform_name"
2685 -# Use a double $ so make ignores it.
2686 -test "$program_suffix" != NONE &&
2687 - program_transform_name="s,\$,$program_suffix,;$program_transform_name"
2688 -# Double any \ or $. echo might interpret backslashes.
2689 -# By default was `s,x,x', remove it if useless.
2690 -cat <<\_ACEOF >conftest.sed
2691 -s/[\\$]/&&/g;s/;s,x,x,$//
2693 -program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
2696 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
2697 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
2698 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
2699 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
2700 - echo $ECHO_N "(cached) $ECHO_C" >&6
2702 - cat >conftest.make <<\_ACEOF
2704 - @echo 'ac_maketemp="$(MAKE)"'
2706 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2707 -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
2708 -if test -n "$ac_maketemp"; then
2709 - eval ac_cv_prog_make_${ac_make}_set=yes
2711 - eval ac_cv_prog_make_${ac_make}_set=no
2713 -rm -f conftest.make
2715 -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
2716 - echo "$as_me:$LINENO: result: yes" >&5
2717 -echo "${ECHO_T}yes" >&6
2720 - echo "$as_me:$LINENO: result: no" >&5
2721 -echo "${ECHO_T}no" >&6
2722 - SET_MAKE="MAKE=${MAKE-make}"
2726 -# Check whether --enable-multilib or --disable-multilib was given.
2727 -if test "${enable_multilib+set}" = set; then
2728 - enableval="$enable_multilib"
2729 - case "${enableval}" in
2730 - yes) multilib=yes ;;
2731 - no) multilib=no ;;
2732 - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
2733 -echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
2734 - { (exit 1); exit 1; }; } ;;
2740 -if test "${srcdir}" = "."; then
2741 - if test "${with_target_subdir}" != "." -a -n "${with_target_subdir}"; then
2742 - gc_basedir="${srcdir}/${with_multisrctop}../."
2744 - gc_basedir="${srcdir}/${with_multisrctop}."
2747 - gc_basedir="${srcdir}/."
2751 -for ac_dir in $gc_basedir/.. $srcdir/$gc_basedir/..; do
2752 - if test -f $ac_dir/install-sh; then
2753 - ac_aux_dir=$ac_dir
2754 - ac_install_sh="$ac_aux_dir/install-sh -c"
2756 - elif test -f $ac_dir/install.sh; then
2757 - ac_aux_dir=$ac_dir
2758 - ac_install_sh="$ac_aux_dir/install.sh -c"
2760 - elif test -f $ac_dir/shtool; then
2761 - ac_aux_dir=$ac_dir
2762 - ac_install_sh="$ac_aux_dir/shtool install -c"
2766 -if test -z "$ac_aux_dir"; then
2767 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&5
2768 -echo "$as_me: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&2;}
2769 - { (exit 1); exit 1; }; }
2771 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2772 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2773 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2776 - # This overrides the previous occurrence for automake, but not for
2777 - # autoconf, which is exactly what we want.
2779 -for ac_dir in .. $srcdir/..; do
2780 - if test -f $ac_dir/install-sh; then
2781 - ac_aux_dir=$ac_dir
2782 - ac_install_sh="$ac_aux_dir/install-sh -c"
2784 - elif test -f $ac_dir/install.sh; then
2785 - ac_aux_dir=$ac_dir
2786 - ac_install_sh="$ac_aux_dir/install.sh -c"
2788 - elif test -f $ac_dir/shtool; then
2789 - ac_aux_dir=$ac_dir
2790 - ac_install_sh="$ac_aux_dir/shtool install -c"
2794 -if test -z "$ac_aux_dir"; then
2795 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in .. $srcdir/.." >&5
2796 -echo "$as_me: error: cannot find install-sh or install.sh in .. $srcdir/.." >&2;}
2797 - { (exit 1); exit 1; }; }
2799 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
2800 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
2801 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
2805 -echo "$as_me:$LINENO: checking target system type" >&5
2806 -echo $ECHO_N "checking target system type... $ECHO_C" >&6
2807 -if test "${ac_cv_target+set}" = set; then
2808 - echo $ECHO_N "(cached) $ECHO_C" >&6
2810 - ac_cv_target_alias=$target_alias
2811 -test "x$ac_cv_target_alias" = "x" &&
2812 - ac_cv_target_alias=$ac_cv_host_alias
2813 -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
2814 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
2815 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
2816 - { (exit 1); exit 1; }; }
2819 -echo "$as_me:$LINENO: result: $ac_cv_target" >&5
2820 -echo "${ECHO_T}$ac_cv_target" >&6
2821 -target=$ac_cv_target
2822 -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
2823 -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
2824 -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
2827 -# The aliases save the names the user supplied, while $host etc.
2828 -# will get canonicalized.
2829 -test -n "$target_alias" &&
2830 - test "$program_prefix$program_suffix$program_transform_name" = \
2832 - program_prefix=${target_alias}-
2834 -# This works around an automake problem.
2835 -mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
2843 -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
2844 - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
2845 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
2846 - { (exit 1); exit 1; }; }
2851 -missing_dir=`cd $ac_aux_dir && pwd`
2852 -echo "$as_me:$LINENO: checking for working aclocal" >&5
2853 -echo $ECHO_N "checking for working aclocal... $ECHO_C" >&6
2854 -# Run test in a subshell; some versions of sh will print an error if
2855 -# an executable is not found, even if stderr is redirected.
2856 -# Redirect stdin to placate older versions of autoconf. Sigh.
2857 -if (aclocal --version) < /dev/null > /dev/null 2>&1; then
2859 - echo "$as_me:$LINENO: result: found" >&5
2860 -echo "${ECHO_T}found" >&6
2862 - ACLOCAL="$missing_dir/missing aclocal"
2863 - echo "$as_me:$LINENO: result: missing" >&5
2864 -echo "${ECHO_T}missing" >&6
2867 -echo "$as_me:$LINENO: checking for working autoconf" >&5
2868 -echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6
2869 -# Run test in a subshell; some versions of sh will print an error if
2870 -# an executable is not found, even if stderr is redirected.
2871 -# Redirect stdin to placate older versions of autoconf. Sigh.
2872 -if (autoconf --version) < /dev/null > /dev/null 2>&1; then
2874 - echo "$as_me:$LINENO: result: found" >&5
2875 -echo "${ECHO_T}found" >&6
2877 - AUTOCONF="$missing_dir/missing autoconf"
2878 - echo "$as_me:$LINENO: result: missing" >&5
2879 -echo "${ECHO_T}missing" >&6
2882 -echo "$as_me:$LINENO: checking for working automake" >&5
2883 -echo $ECHO_N "checking for working automake... $ECHO_C" >&6
2884 -# Run test in a subshell; some versions of sh will print an error if
2885 -# an executable is not found, even if stderr is redirected.
2886 -# Redirect stdin to placate older versions of autoconf. Sigh.
2887 -if (automake --version) < /dev/null > /dev/null 2>&1; then
2889 - echo "$as_me:$LINENO: result: found" >&5
2890 -echo "${ECHO_T}found" >&6
2892 - AUTOMAKE="$missing_dir/missing automake"
2893 - echo "$as_me:$LINENO: result: missing" >&5
2894 -echo "${ECHO_T}missing" >&6
2897 -echo "$as_me:$LINENO: checking for working autoheader" >&5
2898 -echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6
2899 -# Run test in a subshell; some versions of sh will print an error if
2900 -# an executable is not found, even if stderr is redirected.
2901 -# Redirect stdin to placate older versions of autoconf. Sigh.
2902 -if (autoheader --version) < /dev/null > /dev/null 2>&1; then
2903 - AUTOHEADER=autoheader
2904 - echo "$as_me:$LINENO: result: found" >&5
2905 -echo "${ECHO_T}found" >&6
2907 - AUTOHEADER="$missing_dir/missing autoheader"
2908 - echo "$as_me:$LINENO: result: missing" >&5
2909 -echo "${ECHO_T}missing" >&6
2912 -echo "$as_me:$LINENO: checking for working makeinfo" >&5
2913 -echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6
2914 -# Run test in a subshell; some versions of sh will print an error if
2915 -# an executable is not found, even if stderr is redirected.
2916 -# Redirect stdin to placate older versions of autoconf. Sigh.
2917 -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
2919 - echo "$as_me:$LINENO: result: found" >&5
2920 -echo "${ECHO_T}found" >&6
2922 - MAKEINFO="$missing_dir/missing makeinfo"
2923 - echo "$as_me:$LINENO: result: missing" >&5
2924 -echo "${ECHO_T}missing" >&6
2929 -# FIXME: We temporarily define our own version of AC_PROG_CC. This is
2930 -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
2931 -# are probably using a cross compiler, which will not be able to fully
2932 -# link an executable. This should really be fixed in autoconf
2938 -# Extract the first word of "gcc", so it can be a program name with args.
2939 -set dummy gcc; ac_word=$2
2940 -echo "$as_me:$LINENO: checking for $ac_word" >&5
2941 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2942 -if test "${ac_cv_prog_CC+set}" = set; then
2943 - echo $ECHO_N "(cached) $ECHO_C" >&6
2945 - if test -n "$CC"; then
2946 - ac_cv_prog_CC="$CC" # Let the user override the test.
2948 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2949 -for as_dir in $PATH
2952 - test -z "$as_dir" && as_dir=.
2953 - for ac_exec_ext in '' $ac_executable_extensions; do
2954 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2955 - ac_cv_prog_CC="gcc"
2956 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
2965 -if test -n "$CC"; then
2966 - echo "$as_me:$LINENO: result: $CC" >&5
2967 -echo "${ECHO_T}$CC" >&6
2969 - echo "$as_me:$LINENO: result: no" >&5
2970 -echo "${ECHO_T}no" >&6
2973 -if test -z "$CC"; then
2974 - # Extract the first word of "cc", so it can be a program name with args.
2975 -set dummy cc; ac_word=$2
2976 -echo "$as_me:$LINENO: checking for $ac_word" >&5
2977 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
2978 -if test "${ac_cv_prog_CC+set}" = set; then
2979 - echo $ECHO_N "(cached) $ECHO_C" >&6
2981 - if test -n "$CC"; then
2982 - ac_cv_prog_CC="$CC" # Let the user override the test.
2984 - ac_prog_rejected=no
2985 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2986 -for as_dir in $PATH
2989 - test -z "$as_dir" && as_dir=.
2990 - for ac_exec_ext in '' $ac_executable_extensions; do
2991 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2992 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
2993 - ac_prog_rejected=yes
2996 - ac_cv_prog_CC="cc"
2997 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3003 -if test $ac_prog_rejected = yes; then
3004 - # We found a bogon in the path, so make sure we never use it.
3005 - set dummy $ac_cv_prog_CC
3007 - if test $@%:@ != 0; then
3008 - # We chose a different compiler from the bogus one.
3009 - # However, it has the same basename, so the bogon will be chosen
3010 - # first if we set CC to just the basename; use the full file name.
3012 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
3018 -if test -n "$CC"; then
3019 - echo "$as_me:$LINENO: result: $CC" >&5
3020 -echo "${ECHO_T}$CC" >&6
3022 - echo "$as_me:$LINENO: result: no" >&5
3023 -echo "${ECHO_T}no" >&6
3026 - test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
3027 -echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
3028 - { (exit 1); exit 1; }; }
3033 -if test $ac_cv_c_compiler_gnu = yes; then
3035 - ac_test_CFLAGS="${CFLAGS+set}"
3036 - ac_save_CFLAGS="$CFLAGS"
3039 - if test "$ac_test_CFLAGS" = set; then
3040 - CFLAGS="$ac_save_CFLAGS"
3041 - elif test $ac_cv_prog_cc_g = yes; then
3048 - test "${CFLAGS+set}" = set || CFLAGS="-g"
3052 -# Likewise for AC_PROG_CXX.
3056 -for ac_prog in $CCC c++ g++ gcc CC cxx cc++
3058 - # Extract the first word of "$ac_prog", so it can be a program name with args.
3059 -set dummy $ac_prog; ac_word=$2
3060 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3061 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3062 -if test "${ac_cv_prog_CXX+set}" = set; then
3063 - echo $ECHO_N "(cached) $ECHO_C" >&6
3065 - if test -n "$CXX"; then
3066 - ac_cv_prog_CXX="$CXX" # Let the user override the test.
3068 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3069 -for as_dir in $PATH
3072 - test -z "$as_dir" && as_dir=.
3073 - for ac_exec_ext in '' $ac_executable_extensions; do
3074 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3075 - ac_cv_prog_CXX="$ac_prog"
3076 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3084 -CXX=$ac_cv_prog_CXX
3085 -if test -n "$CXX"; then
3086 - echo "$as_me:$LINENO: result: $CXX" >&5
3087 -echo "${ECHO_T}$CXX" >&6
3089 - echo "$as_me:$LINENO: result: no" >&5
3090 -echo "${ECHO_T}no" >&6
3093 - test -n "$CXX" && break
3095 -test -n "$CXX" || CXX="gcc"
3097 -test -z "$CXX" && { { echo "$as_me:$LINENO: error: no acceptable c++ found in \$PATH" >&5
3098 -echo "$as_me: error: no acceptable c++ found in \$PATH" >&2;}
3099 - { (exit 1); exit 1; }; }
3103 -if test $ac_cv_cxx_compiler_gnu = yes; then
3105 - ac_test_CXXFLAGS="${CXXFLAGS+set}"
3106 - ac_save_CXXFLAGS="$CXXFLAGS"
3109 - if test "$ac_test_CXXFLAGS" = set; then
3110 - CXXFLAGS="$ac_save_CXXFLAGS"
3111 - elif test $ac_cv_prog_cxx_g = yes; then
3118 - test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
3122 -# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
3123 -# run it explicitly here, it will be run implicitly before
3124 -# NEWLIB_CONFIGURE, which doesn't work because that means that it will
3125 -# be run before AC_CANONICAL_HOST.
3128 -if test -n "$ac_tool_prefix"; then
3129 - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
3130 -set dummy ${ac_tool_prefix}as; ac_word=$2
3131 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3132 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3133 -if test "${ac_cv_prog_AS+set}" = set; then
3134 - echo $ECHO_N "(cached) $ECHO_C" >&6
3136 - if test -n "$AS"; then
3137 - ac_cv_prog_AS="$AS" # Let the user override the test.
3139 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3140 -for as_dir in $PATH
3143 - test -z "$as_dir" && as_dir=.
3144 - for ac_exec_ext in '' $ac_executable_extensions; do
3145 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3146 - ac_cv_prog_AS="${ac_tool_prefix}as"
3147 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3156 -if test -n "$AS"; then
3157 - echo "$as_me:$LINENO: result: $AS" >&5
3158 -echo "${ECHO_T}$AS" >&6
3160 - echo "$as_me:$LINENO: result: no" >&5
3161 -echo "${ECHO_T}no" >&6
3165 -if test -z "$ac_cv_prog_AS"; then
3167 - # Extract the first word of "as", so it can be a program name with args.
3168 -set dummy as; ac_word=$2
3169 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3170 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3171 -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
3172 - echo $ECHO_N "(cached) $ECHO_C" >&6
3174 - if test -n "$ac_ct_AS"; then
3175 - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
3177 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3178 -for as_dir in $PATH
3181 - test -z "$as_dir" && as_dir=.
3182 - for ac_exec_ext in '' $ac_executable_extensions; do
3183 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3184 - ac_cv_prog_ac_ct_AS="as"
3185 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3193 -ac_ct_AS=$ac_cv_prog_ac_ct_AS
3194 -if test -n "$ac_ct_AS"; then
3195 - echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
3196 -echo "${ECHO_T}$ac_ct_AS" >&6
3198 - echo "$as_me:$LINENO: result: no" >&5
3199 -echo "${ECHO_T}no" >&6
3204 - AS="$ac_cv_prog_AS"
3207 -if test -n "$ac_tool_prefix"; then
3208 - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
3209 -set dummy ${ac_tool_prefix}ar; ac_word=$2
3210 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3211 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3212 -if test "${ac_cv_prog_AR+set}" = set; then
3213 - echo $ECHO_N "(cached) $ECHO_C" >&6
3215 - if test -n "$AR"; then
3216 - ac_cv_prog_AR="$AR" # Let the user override the test.
3218 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3219 -for as_dir in $PATH
3222 - test -z "$as_dir" && as_dir=.
3223 - for ac_exec_ext in '' $ac_executable_extensions; do
3224 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3225 - ac_cv_prog_AR="${ac_tool_prefix}ar"
3226 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3235 -if test -n "$AR"; then
3236 - echo "$as_me:$LINENO: result: $AR" >&5
3237 -echo "${ECHO_T}$AR" >&6
3239 - echo "$as_me:$LINENO: result: no" >&5
3240 -echo "${ECHO_T}no" >&6
3244 -if test -z "$ac_cv_prog_AR"; then
3246 - # Extract the first word of "ar", so it can be a program name with args.
3247 -set dummy ar; ac_word=$2
3248 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3249 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3250 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
3251 - echo $ECHO_N "(cached) $ECHO_C" >&6
3253 - if test -n "$ac_ct_AR"; then
3254 - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
3256 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3257 -for as_dir in $PATH
3260 - test -z "$as_dir" && as_dir=.
3261 - for ac_exec_ext in '' $ac_executable_extensions; do
3262 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3263 - ac_cv_prog_ac_ct_AR="ar"
3264 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3272 -ac_ct_AR=$ac_cv_prog_ac_ct_AR
3273 -if test -n "$ac_ct_AR"; then
3274 - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
3275 -echo "${ECHO_T}$ac_ct_AR" >&6
3277 - echo "$as_me:$LINENO: result: no" >&5
3278 -echo "${ECHO_T}no" >&6
3283 - AR="$ac_cv_prog_AR"
3286 -if test -n "$ac_tool_prefix"; then
3287 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
3288 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
3289 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3290 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3291 -if test "${ac_cv_prog_RANLIB+set}" = set; then
3292 - echo $ECHO_N "(cached) $ECHO_C" >&6
3294 - if test -n "$RANLIB"; then
3295 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
3297 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3298 -for as_dir in $PATH
3301 - test -z "$as_dir" && as_dir=.
3302 - for ac_exec_ext in '' $ac_executable_extensions; do
3303 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3304 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
3305 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3313 -RANLIB=$ac_cv_prog_RANLIB
3314 -if test -n "$RANLIB"; then
3315 - echo "$as_me:$LINENO: result: $RANLIB" >&5
3316 -echo "${ECHO_T}$RANLIB" >&6
3318 - echo "$as_me:$LINENO: result: no" >&5
3319 -echo "${ECHO_T}no" >&6
3323 -if test -z "$ac_cv_prog_RANLIB"; then
3324 - ac_ct_RANLIB=$RANLIB
3325 - # Extract the first word of "ranlib", so it can be a program name with args.
3326 -set dummy ranlib; ac_word=$2
3327 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3328 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3329 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
3330 - echo $ECHO_N "(cached) $ECHO_C" >&6
3332 - if test -n "$ac_ct_RANLIB"; then
3333 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
3335 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3336 -for as_dir in $PATH
3339 - test -z "$as_dir" && as_dir=.
3340 - for ac_exec_ext in '' $ac_executable_extensions; do
3341 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3342 - ac_cv_prog_ac_ct_RANLIB="ranlib"
3343 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3349 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
3352 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
3353 -if test -n "$ac_ct_RANLIB"; then
3354 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
3355 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
3357 - echo "$as_me:$LINENO: result: no" >&5
3358 -echo "${ECHO_T}no" >&6
3361 - RANLIB=$ac_ct_RANLIB
3363 - RANLIB="$ac_cv_prog_RANLIB"
3367 -# Find a good install program. We prefer a C program (faster),
3368 -# so one script is as good as another. But avoid the broken or
3369 -# incompatible versions:
3370 -# SysV /etc/install, /usr/sbin/install
3371 -# SunOS /usr/etc/install
3372 -# IRIX /sbin/install
3374 -# AmigaOS /C/install, which installs bootblocks on floppy discs
3375 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
3376 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
3377 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
3378 -# ./install, which can be erroneously created by make from ./install.sh.
3379 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
3380 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
3381 -if test -z "$INSTALL"; then
3382 -if test "${ac_cv_path_install+set}" = set; then
3383 - echo $ECHO_N "(cached) $ECHO_C" >&6
3385 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3386 -for as_dir in $PATH
3389 - test -z "$as_dir" && as_dir=.
3390 - # Account for people who put trailing slashes in PATH elements.
3392 - ./ | .// | /cC/* | \
3393 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
3396 - # OSF1 and SCO ODT 3.0 have their own names for install.
3397 - # Don't use installbsd from OSF since it installs stuff as root
3399 - for ac_prog in ginstall scoinst install; do
3400 - for ac_exec_ext in '' $ac_executable_extensions; do
3401 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
3402 - if test $ac_prog = install &&
3403 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3404 - # AIX install. It has an incompatible calling convention.
3406 - elif test $ac_prog = install &&
3407 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3408 - # program-specific install script used by HP pwplus--don't use.
3411 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
3423 - if test "${ac_cv_path_install+set}" = set; then
3424 - INSTALL=$ac_cv_path_install
3426 - # As a last resort, use the slow shell script. We don't cache a
3427 - # path for INSTALL within a source directory, because that will
3428 - # break other packages using the cache if that directory is
3429 - # removed, or if the path is relative.
3430 - INSTALL=$ac_install_sh
3433 -echo "$as_me:$LINENO: result: $INSTALL" >&5
3434 -echo "${ECHO_T}$INSTALL" >&6
3436 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
3437 -# It thinks the first close brace ends the variable substitution.
3438 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
3440 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
3442 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
3445 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
3446 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
3447 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
3448 -if test "${enable_maintainer_mode+set}" = set; then
3449 - enableval="$enable_maintainer_mode"
3450 - USE_MAINTAINER_MODE=$enableval
3452 - USE_MAINTAINER_MODE=no
3454 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
3455 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
3458 -if test $USE_MAINTAINER_MODE = yes; then
3459 - MAINTAINER_MODE_TRUE=
3460 - MAINTAINER_MODE_FALSE='#'
3462 - MAINTAINER_MODE_TRUE='#'
3463 - MAINTAINER_MODE_FALSE=
3465 - MAINT=$MAINTAINER_MODE_TRUE
3469 -# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
3470 -# at least currently, we never actually build a program, so we never
3471 -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
3472 -# fails, because we are probably configuring with a cross compiler
3473 -# which can't create executables. So we include AC_EXEEXT to keep
3474 -# automake happy, but we don't execute it, since we don't care about
3477 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
3478 - # to nothing, so nothing would remain between `then' and `fi' if it
3479 - # were not for the `:' below.
3484 -. ${srcdir}/configure.host
3486 -case ${gc_basedir} in
3487 -/* | A-Za-z:/\\*) gc_flagbasedir=${gc_basedir} ;;
3488 -*) gc_flagbasedir='$(top_builddir)/'${gc_basedir} ;;
3491 -gc_cflags="${gc_cflags} -I"'$(top_builddir)'"/./targ-include -I${gc_flagbasedir}/libc/include"
3494 - gc_cflags="${gc_cflags} -I${gc_flagbasedir}/../winsup/include"
3499 -GC_CFLAGS=${gc_cflags}
3503 -# Check whether --enable-shared or --disable-shared was given.
3504 -if test "${enable_shared+set}" = set; then
3505 - enableval="$enable_shared"
3506 - p=${PACKAGE-default}
3508 -yes) enable_shared=yes ;;
3509 -no) enable_shared=no ;;
3512 - # Look at the argument we got. We use all the common list separators.
3513 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3514 - for pkg in $enableval; do
3515 - if test "X$pkg" = "X$p"; then
3519 - IFS="$ac_save_ifs"
3525 -# Check whether --enable-static or --disable-static was given.
3526 -if test "${enable_static+set}" = set; then
3527 - enableval="$enable_static"
3528 - p=${PACKAGE-default}
3530 -yes) enable_static=yes ;;
3531 -no) enable_static=no ;;
3534 - # Look at the argument we got. We use all the common list separators.
3535 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3536 - for pkg in $enableval; do
3537 - if test "X$pkg" = "X$p"; then
3541 - IFS="$ac_save_ifs"
3547 -# Check whether --enable-fast-install or --disable-fast-install was given.
3548 -if test "${enable_fast_install+set}" = set; then
3549 - enableval="$enable_fast_install"
3550 - p=${PACKAGE-default}
3552 -yes) enable_fast_install=yes ;;
3553 -no) enable_fast_install=no ;;
3555 - enable_fast_install=no
3556 - # Look at the argument we got. We use all the common list separators.
3557 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
3558 - for pkg in $enableval; do
3559 - if test "X$pkg" = "X$p"; then
3560 - enable_fast_install=yes
3563 - IFS="$ac_save_ifs"
3567 - enable_fast_install=yes
3570 -# Check whether --with-gnu-ld or --without-gnu-ld was given.
3571 -if test "${with_gnu_ld+set}" = set; then
3572 - withval="$with_gnu_ld"
3573 - test "$withval" = no || with_gnu_ld=yes
3578 -if test "$GCC" = yes; then
3579 - # Check if gcc -print-prog-name=ld gives a path.
3580 - echo "$as_me:$LINENO: checking for ld used by GCC" >&5
3581 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
3584 - # gcc leaves a trailing carriage return which upsets mingw
3585 - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
3587 - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
3590 - # Accept absolute paths.
3591 - [\\/]* | [A-Za-z]:[\\/]*)
3592 - re_direlt='/[^/][^/]*/\.\./'
3593 - # Canonicalize the path of ld
3594 - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
3595 - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
3596 - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
3598 - test -z "$LD" && LD="$ac_prog"
3601 - # If it fails, then pretend we aren't using GCC.
3605 - # If it is relative, then search for the first ld in PATH.
3606 - with_gnu_ld=unknown
3609 -elif test "$with_gnu_ld" = yes; then
3610 - echo "$as_me:$LINENO: checking for GNU ld" >&5
3611 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
3613 - echo "$as_me:$LINENO: checking for non-GNU ld" >&5
3614 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
3616 -if test "${lt_cv_path_LD+set}" = set; then
3617 - echo $ECHO_N "(cached) $ECHO_C" >&6
3619 - if test -z "$LD"; then
3620 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
3621 - for ac_dir in $PATH; do
3622 - test -z "$ac_dir" && ac_dir=.
3623 - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
3624 - lt_cv_path_LD="$ac_dir/$ac_prog"
3625 - # Check to see if the program is GNU ld. I'd rather use --version,
3626 - # but apparently some GNU ld's only accept -v.
3627 - # Break only if it was the GNU/non-GNU ld that we prefer.
3628 - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
3629 - test "$with_gnu_ld" != no && break
3631 - test "$with_gnu_ld" != yes && break
3635 - IFS="$ac_save_ifs"
3637 - lt_cv_path_LD="$LD" # Let the user override the test with a path.
3641 -LD="$lt_cv_path_LD"
3642 -if test -n "$LD"; then
3643 - echo "$as_me:$LINENO: result: $LD" >&5
3644 -echo "${ECHO_T}$LD" >&6
3646 - echo "$as_me:$LINENO: result: no" >&5
3647 -echo "${ECHO_T}no" >&6
3649 -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
3650 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
3651 - { (exit 1); exit 1; }; }
3652 -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
3653 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
3654 -if test "${lt_cv_prog_gnu_ld+set}" = set; then
3655 - echo $ECHO_N "(cached) $ECHO_C" >&6
3657 - # I'd rather use --version here, but apparently some GNU ld's only accept -v.
3658 -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
3659 - lt_cv_prog_gnu_ld=yes
3661 - lt_cv_prog_gnu_ld=no
3664 -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
3665 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
3666 -with_gnu_ld=$lt_cv_prog_gnu_ld
3669 -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
3670 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
3671 -if test "${lt_cv_ld_reload_flag+set}" = set; then
3672 - echo $ECHO_N "(cached) $ECHO_C" >&6
3674 - lt_cv_ld_reload_flag='-r'
3676 -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
3677 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
3678 -reload_flag=$lt_cv_ld_reload_flag
3679 -test -n "$reload_flag" && reload_flag=" $reload_flag"
3681 -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
3682 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
3683 -if test "${lt_cv_path_NM+set}" = set; then
3684 - echo $ECHO_N "(cached) $ECHO_C" >&6
3686 - if test -n "$NM"; then
3687 - # Let the user override the test.
3688 - lt_cv_path_NM="$NM"
3690 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
3691 - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
3692 - test -z "$ac_dir" && ac_dir=.
3693 - tmp_nm=$ac_dir/${ac_tool_prefix}nm
3694 - if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
3695 - # Check to see if the nm accepts a BSD-compat flag.
3696 - # Adding the `sed 1q' prevents false positives on HP-UX, which says:
3697 - # nm: unknown option "B" ignored
3698 - # Tru64's nm complains that /dev/null is an invalid object file
3699 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
3700 - lt_cv_path_NM="$tmp_nm -B"
3702 - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
3703 - lt_cv_path_NM="$tmp_nm -p"
3706 - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
3707 - continue # so that we can try to find one that supports BSD flags
3711 - IFS="$ac_save_ifs"
3712 - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
3716 -NM="$lt_cv_path_NM"
3717 -echo "$as_me:$LINENO: result: $NM" >&5
3718 -echo "${ECHO_T}$NM" >&6
3720 -echo "$as_me:$LINENO: checking whether ln -s works" >&5
3721 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
3723 -if test "$LN_S" = "ln -s"; then
3724 - echo "$as_me:$LINENO: result: yes" >&5
3725 -echo "${ECHO_T}yes" >&6
3727 - echo "$as_me:$LINENO: result: no, using $LN_S" >&5
3728 -echo "${ECHO_T}no, using $LN_S" >&6
3731 -echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5
3732 -echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
3733 -if test "${lt_cv_deplibs_check_method+set}" = set; then
3734 - echo $ECHO_N "(cached) $ECHO_C" >&6
3736 - lt_cv_file_magic_cmd='$MAGIC_CMD'
3737 -lt_cv_file_magic_test_file=
3738 -lt_cv_deplibs_check_method='unknown'
3739 -# Need to set the preceding variable on all platforms that support
3740 -# interlibrary dependencies.
3741 -# 'none' -- dependencies not supported.
3742 -# `unknown' -- same as none, but documents that we really don't know.
3743 -# 'pass_all' -- all dependencies passed with no checks.
3744 -# 'test_compile' -- check by making test program.
3745 -# 'file_magic [regex]' -- check by looking for files in library path
3746 -# which responds to the $file_magic_cmd with a given egrep regex.
3747 -# If you have `file' or equivalent on your system and you're not sure
3748 -# whether `pass_all' will *always* work, you probably want this one.
3752 - lt_cv_deplibs_check_method=pass_all
3756 - lt_cv_deplibs_check_method=pass_all
3760 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
3761 - lt_cv_file_magic_cmd='/usr/bin/file -L'
3762 - lt_cv_file_magic_test_file=/shlib/libc.so
3765 -cygwin* | mingw* |pw32*)
3766 - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
3767 - lt_cv_file_magic_cmd='$OBJDUMP -f'
3770 -darwin* | rhapsody*)
3771 - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
3772 - lt_cv_file_magic_cmd='/usr/bin/file -L'
3773 - case "$host_os" in
3774 - rhapsody* | darwin1.012)
3775 - lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
3777 - *) # Darwin 1.3 on
3778 - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
3784 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
3787 - # Not sure whether the presence of OpenBSD here was a mistake.
3788 - # Let's accept both of them until this is cleared up.
3789 - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
3790 - lt_cv_file_magic_cmd=/usr/bin/file
3791 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3795 - lt_cv_deplibs_check_method=pass_all
3800 - lt_cv_deplibs_check_method=pass_all
3803 -hpux10.20*|hpux11*)
3806 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
3807 - lt_cv_file_magic_cmd=/usr/bin/file
3808 - lt_cv_file_magic_test_file=/usr/lib/libc.sl
3811 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
3812 - lt_cv_file_magic_cmd=/usr/bin/file
3813 - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
3821 - # this will be overridden with pass_all, but let us keep it just in case
3822 - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
3826 - *-32|*"-32 ") libmagic=32-bit;;
3827 - *-n32|*"-n32 ") libmagic=N32;;
3828 - *-64|*"-64 ") libmagic=64-bit;;
3829 - *) libmagic=never-match;;
3831 - # this will be overridden with pass_all, but let us keep it just in case
3832 - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
3835 - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
3836 - lt_cv_deplibs_check_method=pass_all
3839 -# This must be Linux ELF.
3842 - alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
3843 - lt_cv_deplibs_check_method=pass_all ;;
3845 - # glibc up to 2.1.1 does not perform some relocations on ARM
3846 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
3848 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
3852 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
3853 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
3855 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
3860 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
3861 - lt_cv_file_magic_cmd=/usr/bin/file
3862 - lt_cv_file_magic_test_file=/usr/lib/libnls.so
3865 -osf3* | osf4* | osf5*)
3866 - # this will be overridden with pass_all, but let us keep it just in case
3867 - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
3868 - lt_cv_file_magic_test_file=/shlib/libc.so
3869 - lt_cv_deplibs_check_method=pass_all
3873 - lt_cv_deplibs_check_method=pass_all
3877 - lt_cv_deplibs_check_method=pass_all
3878 - lt_cv_file_magic_test_file=/lib/libc.so
3881 -sysv5uw[78]* | sysv4*uw2*)
3882 - lt_cv_deplibs_check_method=pass_all
3885 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
3886 - case $host_vendor in
3888 - lt_cv_deplibs_check_method=pass_all
3891 - 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]'
3892 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
3899 -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
3900 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
3901 -file_magic_cmd=$lt_cv_file_magic_cmd
3902 -deplibs_check_method=$lt_cv_deplibs_check_method
3907 -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
3909 -# Only perform the check for file, if the check method requires it
3910 -case $deplibs_check_method in
3912 - if test "$file_magic_cmd" = '$MAGIC_CMD'; then
3913 - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
3914 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
3915 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
3916 - echo $ECHO_N "(cached) $ECHO_C" >&6
3918 - case $MAGIC_CMD in
3920 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
3923 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
3926 - ac_save_MAGIC_CMD="$MAGIC_CMD"
3927 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
3928 - ac_dummy="/usr/bin:$PATH"
3929 - for ac_dir in $ac_dummy; do
3930 - test -z "$ac_dir" && ac_dir=.
3931 - if test -f $ac_dir/${ac_tool_prefix}file; then
3932 - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
3933 - if test -n "$file_magic_test_file"; then
3934 - case $deplibs_check_method in
3936 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
3937 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
3938 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
3939 - egrep "$file_magic_regex" > /dev/null; then
3944 -*** Warning: the command libtool uses to detect shared libraries,
3945 -*** $file_magic_cmd, produces output that libtool cannot recognize.
3946 -*** The result is that libtool may fail to recognize shared libraries
3947 -*** as such. This will affect the creation of libtool libraries that
3948 -*** depend on shared libraries, but programs linked with such libtool
3949 -*** libraries will work regardless of this problem. Nevertheless, you
3950 -*** may want to report the problem to your system manager and/or to
3951 -*** bug-libtool@gnu.org
3960 - IFS="$ac_save_ifs"
3961 - MAGIC_CMD="$ac_save_MAGIC_CMD"
3966 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
3967 -if test -n "$MAGIC_CMD"; then
3968 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
3969 -echo "${ECHO_T}$MAGIC_CMD" >&6
3971 - echo "$as_me:$LINENO: result: no" >&5
3972 -echo "${ECHO_T}no" >&6
3975 -if test -z "$lt_cv_path_MAGIC_CMD"; then
3976 - if test -n "$ac_tool_prefix"; then
3977 - echo "$as_me:$LINENO: checking for file" >&5
3978 -echo $ECHO_N "checking for file... $ECHO_C" >&6
3979 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
3980 - echo $ECHO_N "(cached) $ECHO_C" >&6
3982 - case $MAGIC_CMD in
3984 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
3987 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
3990 - ac_save_MAGIC_CMD="$MAGIC_CMD"
3991 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
3992 - ac_dummy="/usr/bin:$PATH"
3993 - for ac_dir in $ac_dummy; do
3994 - test -z "$ac_dir" && ac_dir=.
3995 - if test -f $ac_dir/file; then
3996 - lt_cv_path_MAGIC_CMD="$ac_dir/file"
3997 - if test -n "$file_magic_test_file"; then
3998 - case $deplibs_check_method in
4000 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
4001 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4002 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
4003 - egrep "$file_magic_regex" > /dev/null; then
4008 -*** Warning: the command libtool uses to detect shared libraries,
4009 -*** $file_magic_cmd, produces output that libtool cannot recognize.
4010 -*** The result is that libtool may fail to recognize shared libraries
4011 -*** as such. This will affect the creation of libtool libraries that
4012 -*** depend on shared libraries, but programs linked with such libtool
4013 -*** libraries will work regardless of this problem. Nevertheless, you
4014 -*** may want to report the problem to your system manager and/or to
4015 -*** bug-libtool@gnu.org
4024 - IFS="$ac_save_ifs"
4025 - MAGIC_CMD="$ac_save_MAGIC_CMD"
4030 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
4031 -if test -n "$MAGIC_CMD"; then
4032 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
4033 -echo "${ECHO_T}$MAGIC_CMD" >&6
4035 - echo "$as_me:$LINENO: result: no" >&5
4036 -echo "${ECHO_T}no" >&6
4048 -if test -n "$ac_tool_prefix"; then
4049 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
4050 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
4051 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4052 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4053 -if test "${ac_cv_prog_RANLIB+set}" = set; then
4054 - echo $ECHO_N "(cached) $ECHO_C" >&6
4056 - if test -n "$RANLIB"; then
4057 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
4059 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4060 -for as_dir in $PATH
4063 - test -z "$as_dir" && as_dir=.
4064 - for ac_exec_ext in '' $ac_executable_extensions; do
4065 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4066 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
4067 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4075 -RANLIB=$ac_cv_prog_RANLIB
4076 -if test -n "$RANLIB"; then
4077 - echo "$as_me:$LINENO: result: $RANLIB" >&5
4078 -echo "${ECHO_T}$RANLIB" >&6
4080 - echo "$as_me:$LINENO: result: no" >&5
4081 -echo "${ECHO_T}no" >&6
4085 -if test -z "$ac_cv_prog_RANLIB"; then
4086 - ac_ct_RANLIB=$RANLIB
4087 - # Extract the first word of "ranlib", so it can be a program name with args.
4088 -set dummy ranlib; ac_word=$2
4089 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4090 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4091 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
4092 - echo $ECHO_N "(cached) $ECHO_C" >&6
4094 - if test -n "$ac_ct_RANLIB"; then
4095 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
4097 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4098 -for as_dir in $PATH
4101 - test -z "$as_dir" && as_dir=.
4102 - for ac_exec_ext in '' $ac_executable_extensions; do
4103 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4104 - ac_cv_prog_ac_ct_RANLIB="ranlib"
4105 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4111 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
4114 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
4115 -if test -n "$ac_ct_RANLIB"; then
4116 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
4117 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
4119 - echo "$as_me:$LINENO: result: no" >&5
4120 -echo "${ECHO_T}no" >&6
4123 - RANLIB=$ac_ct_RANLIB
4125 - RANLIB="$ac_cv_prog_RANLIB"
4128 -if test -n "$ac_tool_prefix"; then
4129 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
4130 -set dummy ${ac_tool_prefix}strip; ac_word=$2
4131 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4132 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4133 -if test "${ac_cv_prog_STRIP+set}" = set; then
4134 - echo $ECHO_N "(cached) $ECHO_C" >&6
4136 - if test -n "$STRIP"; then
4137 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
4139 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4140 -for as_dir in $PATH
4143 - test -z "$as_dir" && as_dir=.
4144 - for ac_exec_ext in '' $ac_executable_extensions; do
4145 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4146 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
4147 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4155 -STRIP=$ac_cv_prog_STRIP
4156 -if test -n "$STRIP"; then
4157 - echo "$as_me:$LINENO: result: $STRIP" >&5
4158 -echo "${ECHO_T}$STRIP" >&6
4160 - echo "$as_me:$LINENO: result: no" >&5
4161 -echo "${ECHO_T}no" >&6
4165 -if test -z "$ac_cv_prog_STRIP"; then
4166 - ac_ct_STRIP=$STRIP
4167 - # Extract the first word of "strip", so it can be a program name with args.
4168 -set dummy strip; ac_word=$2
4169 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4170 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4171 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
4172 - echo $ECHO_N "(cached) $ECHO_C" >&6
4174 - if test -n "$ac_ct_STRIP"; then
4175 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
4177 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4178 -for as_dir in $PATH
4181 - test -z "$as_dir" && as_dir=.
4182 - for ac_exec_ext in '' $ac_executable_extensions; do
4183 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4184 - ac_cv_prog_ac_ct_STRIP="strip"
4185 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4191 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
4194 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
4195 -if test -n "$ac_ct_STRIP"; then
4196 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
4197 -echo "${ECHO_T}$ac_ct_STRIP" >&6
4199 - echo "$as_me:$LINENO: result: no" >&5
4200 -echo "${ECHO_T}no" >&6
4203 - STRIP=$ac_ct_STRIP
4205 - STRIP="$ac_cv_prog_STRIP"
4209 -# Check for any special flags to pass to ltconfig.
4210 -libtool_flags="--cache-file=$cache_file"
4211 -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
4212 -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
4213 -test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
4214 -test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
4215 -test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
4218 -# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
4219 -if test "${enable_libtool_lock+set}" = set; then
4220 - enableval="$enable_libtool_lock"
4223 -test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
4224 -test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
4227 -# Check whether --with-pic or --without-pic was given.
4228 -if test "${with_pic+set}" = set; then
4229 - withval="$with_pic"
4230 - pic_mode="$withval"
4234 -test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
4235 -test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
4237 -# Some flags need to be propagated to the compiler or linker for good
4241 - # Find out which ABI we are using.
4242 - echo '#line __oline__ "configure"' > conftest.$ac_ext
4243 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4244 - (eval $ac_compile) 2>&5
4246 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4247 - (exit $ac_status); }; then
4248 - case `/usr/bin/file conftest.$ac_objext` in
4253 - LD="${LD-ld} -n32"
4264 - # Find out which ABI we are using.
4265 - echo 'int i;' > conftest.$ac_ext
4266 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4267 - (eval $ac_compile) 2>&5
4269 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4270 - (exit $ac_status); }; then
4271 - case "`/usr/bin/file conftest.o`" in
4273 - HPUX_IA64_MODE="32"
4276 - HPUX_IA64_MODE="64"
4283 -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
4284 - # Find out which ABI we are using.
4285 - echo 'int i;' > conftest.$ac_ext
4286 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4287 - (eval $ac_compile) 2>&5
4289 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4290 - (exit $ac_status); }; then
4291 - case "`/usr/bin/file conftest.o`" in
4295 - LD="${LD-ld} -m elf_i386"
4298 - LD="${LD-ld} -m elf32ppclinux"
4301 - LD="${LD-ld} -m elf_s390"
4304 - LD="${LD-ld} -m elf32_sparc"
4311 - LD="${LD-ld} -m elf_x86_64"
4313 - ppc*-*linux*|powerpc*-*linux*)
4314 - LD="${LD-ld} -m elf64ppc"
4317 - LD="${LD-ld} -m elf64_s390"
4320 - LD="${LD-ld} -m elf64_sparc"
4330 - # On SCO OpenServer 5, we need -belf to get full-featured binaries.
4331 - SAVE_CFLAGS="$CFLAGS"
4332 - CFLAGS="$CFLAGS -belf"
4333 - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
4334 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
4335 -if test "${lt_cv_cc_needs_belf+set}" = set; then
4336 - echo $ECHO_N "(cached) $ECHO_C" >&6
4341 -ac_cpp='$CPP $CPPFLAGS'
4342 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4343 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4344 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4346 - cat >conftest.$ac_ext <<_ACEOF
4347 -#line $LINENO "configure"
4350 -cat confdefs.h >>conftest.$ac_ext
4351 -cat >>conftest.$ac_ext <<_ACEOF
4352 -/* end confdefs.h. */
4362 -rm -f conftest.$ac_objext conftest$ac_exeext
4363 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4364 - (eval $ac_link) 2>&5
4366 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4367 - (exit $ac_status); } &&
4368 - { ac_try='test -s conftest$ac_exeext'
4369 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4370 - (eval $ac_try) 2>&5
4372 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4373 - (exit $ac_status); }; }; then
4374 - lt_cv_cc_needs_belf=yes
4376 - echo "$as_me: failed program was:" >&5
4377 -sed 's/^/| /' conftest.$ac_ext >&5
4379 -lt_cv_cc_needs_belf=no
4381 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4383 -ac_cpp='$CPP $CPPFLAGS'
4384 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4385 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4386 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4389 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
4390 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
4391 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then
4392 - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
4393 - CFLAGS="$SAVE_CFLAGS"
4401 -# Save cache, so that ltconfig can load it
4402 -cat >confcache <<\_ACEOF
4403 -# This file is a shell script that caches the results of configure
4404 -# tests run on this system so they can be shared between configure
4405 -# scripts and configure runs, see configure's option --config-cache.
4406 -# It is not useful on other systems. If it contains results you don't
4407 -# want to keep, you may remove or edit it.
4409 -# config.status only pays attention to the cache file if you give it
4410 -# the --recheck option to rerun configure.
4412 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
4413 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
4414 -# following values.
4418 -# The following way of writing the cache mishandles newlines in values,
4419 -# but we know of no workaround that is simple, portable, and efficient.
4420 -# So, don't put newlines in cache variables' values.
4421 -# Ultrix sh set writes to stderr and can't be redirected directly,
4422 -# and sets the high bit in the cache file unless we assign to the vars.
4425 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
4427 - # `set' does not quote correctly, so add quotes (double-quote
4428 - # substitution turns \\\\ into \\, and sed turns \\ into \).
4431 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
4434 - # `set' quotes correctly as required by POSIX, so do not add quotes.
4436 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
4443 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
4445 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
4446 - : end' >>confcache
4447 -if diff $cache_file confcache >/dev/null 2>&1; then :; else
4448 - if test -w $cache_file; then
4449 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
4450 - cat confcache >$cache_file
4452 - echo "not updating unwritable cache $cache_file"
4457 -# Actually configure libtool. ac_aux_dir is where install-sh is found.
4458 -AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
4459 -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
4460 -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
4461 -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
4462 -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
4463 -deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
4464 -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
4465 -$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
4466 -|| { { echo "$as_me:$LINENO: error: libtool configure failed" >&5
4467 -echo "$as_me: error: libtool configure failed" >&2;}
4468 - { (exit 1); exit 1; }; }
4470 -# Reload cache, that may have been modified by ltconfig
4471 -if test -r "$cache_file"; then
4472 - # Some versions of bash will fail to source /dev/null (special
4473 - # files actually), so we avoid doing that.
4474 - if test -f "$cache_file"; then
4475 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
4476 -echo "$as_me: loading cache $cache_file" >&6;}
4477 - case $cache_file in
4478 - [\\/]* | ?:[\\/]* ) . $cache_file;;
4479 - *) . ./$cache_file;;
4483 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
4484 -echo "$as_me: creating cache $cache_file" >&6;}
4489 -# This can be used to rebuild libtool when needed
4490 -LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
4492 -# Always use our own libtool.
4493 -LIBTOOL='$(SHELL) $(top_builddir)/libtool'
4495 -# Redirect the config.log output again, so that the ltconfig log is not
4496 -# clobbered by the next message.
4497 -exec 5>>./config.log
4500 -ac_cpp='$CXXCPP $CPPFLAGS'
4501 -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4502 -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4503 -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
4504 -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
4505 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
4506 -if test -z "$CXXCPP"; then
4507 - if test "${ac_cv_prog_CXXCPP+set}" = set; then
4508 - echo $ECHO_N "(cached) $ECHO_C" >&6
4510 - # Double quotes because CXXCPP needs to be expanded
4511 - for CXXCPP in "$CXX -E" "/lib/cpp"
4513 - ac_preproc_ok=false
4514 -for ac_cxx_preproc_warn_flag in '' yes
4516 - # Use a header file that comes with gcc, so configuring glibc
4517 - # with a fresh cross-compiler works.
4518 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4519 - # <limits.h> exists even on freestanding compilers.
4520 - # On the NeXT, cc -E runs the code through the compiler's parser,
4521 - # not just through cpp. "Syntax error" is here to catch this case.
4522 - cat >conftest.$ac_ext <<_ACEOF
4523 -#line $LINENO "configure"
4526 -cat confdefs.h >>conftest.$ac_ext
4527 -cat >>conftest.$ac_ext <<_ACEOF
4528 -/* end confdefs.h. */
4530 -@%:@ include <limits.h>
4532 -@%:@ include <assert.h>
4536 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4537 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4539 - grep -v '^ *+' conftest.er1 >conftest.err
4540 - rm -f conftest.er1
4541 - cat conftest.err >&5
4542 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4543 - (exit $ac_status); } >/dev/null; then
4544 - if test -s conftest.err; then
4545 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4552 -if test -z "$ac_cpp_err"; then
4555 - echo "$as_me: failed program was:" >&5
4556 -sed 's/^/| /' conftest.$ac_ext >&5
4558 - # Broken: fails on valid input.
4561 -rm -f conftest.err conftest.$ac_ext
4563 - # OK, works on sane cases. Now check whether non-existent headers
4564 - # can be detected and how.
4565 - cat >conftest.$ac_ext <<_ACEOF
4566 -#line $LINENO "configure"
4569 -cat confdefs.h >>conftest.$ac_ext
4570 -cat >>conftest.$ac_ext <<_ACEOF
4571 -/* end confdefs.h. */
4572 -@%:@include <ac_nonexistent.h>
4574 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4575 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4577 - grep -v '^ *+' conftest.er1 >conftest.err
4578 - rm -f conftest.er1
4579 - cat conftest.err >&5
4580 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4581 - (exit $ac_status); } >/dev/null; then
4582 - if test -s conftest.err; then
4583 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4590 -if test -z "$ac_cpp_err"; then
4591 - # Broken: success on invalid input.
4594 - echo "$as_me: failed program was:" >&5
4595 -sed 's/^/| /' conftest.$ac_ext >&5
4597 - # Passes both tests.
4601 -rm -f conftest.err conftest.$ac_ext
4604 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4605 -rm -f conftest.err conftest.$ac_ext
4606 -if $ac_preproc_ok; then
4611 - ac_cv_prog_CXXCPP=$CXXCPP
4614 - CXXCPP=$ac_cv_prog_CXXCPP
4616 - ac_cv_prog_CXXCPP=$CXXCPP
4618 -echo "$as_me:$LINENO: result: $CXXCPP" >&5
4619 -echo "${ECHO_T}$CXXCPP" >&6
4620 -ac_preproc_ok=false
4621 -for ac_cxx_preproc_warn_flag in '' yes
4623 - # Use a header file that comes with gcc, so configuring glibc
4624 - # with a fresh cross-compiler works.
4625 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4626 - # <limits.h> exists even on freestanding compilers.
4627 - # On the NeXT, cc -E runs the code through the compiler's parser,
4628 - # not just through cpp. "Syntax error" is here to catch this case.
4629 - cat >conftest.$ac_ext <<_ACEOF
4630 -#line $LINENO "configure"
4633 -cat confdefs.h >>conftest.$ac_ext
4634 -cat >>conftest.$ac_ext <<_ACEOF
4635 -/* end confdefs.h. */
4637 -@%:@ include <limits.h>
4639 -@%:@ include <assert.h>
4643 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4644 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4646 - grep -v '^ *+' conftest.er1 >conftest.err
4647 - rm -f conftest.er1
4648 - cat conftest.err >&5
4649 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4650 - (exit $ac_status); } >/dev/null; then
4651 - if test -s conftest.err; then
4652 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4659 -if test -z "$ac_cpp_err"; then
4662 - echo "$as_me: failed program was:" >&5
4663 -sed 's/^/| /' conftest.$ac_ext >&5
4665 - # Broken: fails on valid input.
4668 -rm -f conftest.err conftest.$ac_ext
4670 - # OK, works on sane cases. Now check whether non-existent headers
4671 - # can be detected and how.
4672 - cat >conftest.$ac_ext <<_ACEOF
4673 -#line $LINENO "configure"
4676 -cat confdefs.h >>conftest.$ac_ext
4677 -cat >>conftest.$ac_ext <<_ACEOF
4678 -/* end confdefs.h. */
4679 -@%:@include <ac_nonexistent.h>
4681 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
4682 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
4684 - grep -v '^ *+' conftest.er1 >conftest.err
4685 - rm -f conftest.er1
4686 - cat conftest.err >&5
4687 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4688 - (exit $ac_status); } >/dev/null; then
4689 - if test -s conftest.err; then
4690 - ac_cpp_err=$ac_cxx_preproc_warn_flag
4697 -if test -z "$ac_cpp_err"; then
4698 - # Broken: success on invalid input.
4701 - echo "$as_me: failed program was:" >&5
4702 -sed 's/^/| /' conftest.$ac_ext >&5
4704 - # Passes both tests.
4708 -rm -f conftest.err conftest.$ac_ext
4711 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4712 -rm -f conftest.err conftest.$ac_ext
4713 -if $ac_preproc_ok; then
4716 - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
4717 -See \`config.log' for more details." >&5
4718 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
4719 -See \`config.log' for more details." >&2;}
4720 - { (exit 1); exit 1; }; }
4724 -ac_cpp='$CPP $CPPFLAGS'
4725 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4726 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4727 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4731 -LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh"
4733 -lt_save_CFLAGS="$CFLAGS"
4734 -AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \
4735 -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
4736 -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
4737 -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
4738 -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
4739 -deplibs_check_method="$deplibs_check_method" \
4740 -file_magic_cmd="$file_magic_cmd" \
4741 -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \
4742 ---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \
4743 -|| { { echo "$as_me:$LINENO: error: libtool tag configuration failed" >&5
4744 -echo "$as_me: error: libtool tag configuration failed" >&2;}
4745 - { (exit 1); exit 1; }; }
4747 -CFLAGS="$lt_save_CFLAGS"
4749 -# Redirect the config.log output again, so that the ltconfig log is not
4750 -# clobbered by the next message.
4751 -exec 5>>./config.log
4760 -# Check whether --with-target-subdir or --without-target-subdir was given.
4761 -if test "${with_target_subdir+set}" = set; then
4762 - withval="$with_target_subdir"
4766 -# Check whether --with-cross-host or --without-cross-host was given.
4767 -if test "${with_cross_host+set}" = set; then
4768 - withval="$with_cross_host"
4772 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
4773 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
4774 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
4775 -if test "${enable_maintainer_mode+set}" = set; then
4776 - enableval="$enable_maintainer_mode"
4777 - USE_MAINTAINER_MODE=$enableval
4779 - USE_MAINTAINER_MODE=no
4781 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
4782 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
4785 -if test $USE_MAINTAINER_MODE = yes; then
4786 - MAINTAINER_MODE_TRUE=
4787 - MAINTAINER_MODE_FALSE='#'
4789 - MAINTAINER_MODE_TRUE='#'
4790 - MAINTAINER_MODE_FALSE=
4792 - MAINT=$MAINTAINER_MODE_TRUE
4795 -# automake wants to see AC_EXEEXT. But we don't need it. And having
4796 -# it is actually a problem, because the compiler we're passed can't
4797 -# necessarily do a full link. So we fool automake here.
4799 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
4800 - # to nothing, so nothing would remain between `then' and `fi' if it
4801 - # were not for the `:' below.
4806 -echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
4807 -echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
4808 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
4809 -if test -z "$THREADS"; then
4812 -echo "$as_me:$LINENO: result: $THREADS" >&5
4813 -echo "${ECHO_T}$THREADS" >&6
4815 -# Check whether --enable-parallel-mark or --disable-parallel-mark was given.
4816 -if test "${enable_parallel_mark+set}" = set; then
4817 - enableval="$enable_parallel_mark"
4818 - case "$THREADS" in
4819 - no | none | single)
4820 - { { echo "$as_me:$LINENO: error: Parallel mark requires --enable-threads=x spec" >&5
4821 -echo "$as_me: error: Parallel mark requires --enable-threads=x spec" >&2;}
4822 - { (exit 1); exit 1; }; }
4828 -INCLUDES=-I${srcdir}/include
4831 - no | none | single)
4836 - THREADLIBS=-lpthread
4838 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
4839 - cat >>confdefs.h <<\_ACEOF
4840 -@%:@define GC_LINUX_THREADS 1
4843 - cat >>confdefs.h <<\_ACEOF
4844 -@%:@define _REENTRANT 1
4847 - if test "${enable_parallel_mark}"; then
4848 - cat >>confdefs.h <<\_ACEOF
4849 -@%:@define PARALLEL_MARK 1
4853 - cat >>confdefs.h <<\_ACEOF
4854 -@%:@define THREAD_LOCAL_ALLOC 1
4859 - cat >>confdefs.h <<\_ACEOF
4860 -@%:@define GC_LINUX_THREADS 1
4863 - cat >>confdefs.h <<\_ACEOF
4864 -@%:@define _REENTRANT 1
4869 - { echo "$as_me:$LINENO: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
4870 -echo "$as_me: WARNING: \"Only HP/UX 11 threads are supported.\"" >&2;}
4871 - cat >>confdefs.h <<\_ACEOF
4872 -@%:@define GC_HPUX_THREADS 1
4875 - cat >>confdefs.h <<\_ACEOF
4876 -@%:@define _POSIX_C_SOURCE 199506L
4879 - if test "${enable_parallel_mark}" = yes; then
4880 - cat >>confdefs.h <<\_ACEOF
4881 -@%:@define PARALLEL_MARK 1
4885 - cat >>confdefs.h <<\_ACEOF
4886 -@%:@define THREAD_LOCAL_ALLOC 1
4889 - THREADLIBS="-lpthread -lrt"
4892 - { echo "$as_me:$LINENO: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&5
4893 -echo "$as_me: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&2;}
4894 - cat >>confdefs.h <<\_ACEOF
4895 -@%:@define GC_FREEBSD_THREADS 1
4898 - INCLUDES="$INCLUDES -pthread"
4899 - THREADLIBS=-pthread
4902 - cat >>confdefs.h <<\_ACEOF
4903 -@%:@define GC_SOLARIS_THREADS 1
4906 - cat >>confdefs.h <<\_ACEOF
4907 -@%:@define GC_SOLARIS_PTHREADS 1
4912 - cat >>confdefs.h <<\_ACEOF
4913 -@%:@define GC_IRIX_THREADS 1
4923 - cat >>confdefs.h <<\_ACEOF
4924 -@%:@define GC_DARWIN_THREADS 1
4927 - cat >>confdefs.h <<\_ACEOF
4928 -@%:@define THREAD_LOCAL_ALLOC 1
4931 - if test "${enable_parallel_mark}" = yes; then
4932 - cat >>confdefs.h <<\_ACEOF
4933 -@%:@define PARALLEL_MARK 1
4939 - cat >>confdefs.h <<\_ACEOF
4940 -@%:@define GC_WIN32_THREADS 1
4943 - cat >>confdefs.h <<\_ACEOF
4944 -@%:@define NO_GETENV 1
4948 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
4949 - { { echo "$as_me:$LINENO: error: thread package $THREADS not yet supported" >&5
4950 -echo "$as_me: error: thread package $THREADS not yet supported" >&2;}
4951 - { (exit 1); exit 1; }; }
4954 - { { echo "$as_me:$LINENO: error: $THREADS is an unknown thread package" >&5
4955 -echo "$as_me: error: $THREADS is an unknown thread package" >&2;}
4956 - { (exit 1); exit 1; }; }
4962 - powerpc-*-darwin*)
4963 - powerpc_darwin=true
4968 -if test x$powerpc_darwin = xtrue; then
4969 - POWERPC_DARWIN_TRUE=
4970 - POWERPC_DARWIN_FALSE='#'
4972 - POWERPC_DARWIN_TRUE='#'
4973 - POWERPC_DARWIN_FALSE=
4976 -# We never want libdl on darwin. It is a fake libdl that just ends up making
4977 -# dyld calls anyway
4981 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
4982 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
4983 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
4984 - echo $ECHO_N "(cached) $ECHO_C" >&6
4986 - ac_check_lib_save_LIBS=$LIBS
4988 -cat >conftest.$ac_ext <<_ACEOF
4989 -#line $LINENO "configure"
4992 -cat confdefs.h >>conftest.$ac_ext
4993 -cat >>conftest.$ac_ext <<_ACEOF
4994 -/* end confdefs.h. */
4996 -/* Override any gcc2 internal prototype to avoid an error. */
5000 -/* We use char because int might match the return type of a gcc2
5001 - builtin and then its argument prototype would still apply. */
5011 -rm -f conftest.$ac_objext conftest$ac_exeext
5012 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5013 - (eval $ac_link) 2>&5
5015 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5016 - (exit $ac_status); } &&
5017 - { ac_try='test -s conftest$ac_exeext'
5018 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5019 - (eval $ac_try) 2>&5
5021 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5022 - (exit $ac_status); }; }; then
5023 - ac_cv_lib_dl_dlopen=yes
5025 - echo "$as_me: failed program was:" >&5
5026 -sed 's/^/| /' conftest.$ac_ext >&5
5028 -ac_cv_lib_dl_dlopen=no
5030 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5031 -LIBS=$ac_check_lib_save_LIBS
5033 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
5034 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
5035 -if test $ac_cv_lib_dl_dlopen = yes; then
5036 - EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
5044 -target_all=libgcjgc.la
5050 -# Check whether --with-ecos or --without-ecos was given.
5051 -if test "${with_ecos+set}" = set; then
5052 - withval="$with_ecos"
5053 - TARGET_ECOS="$with_ecos"
5059 -case "$TARGET_ECOS" in
5063 - cat >>confdefs.h <<\_ACEOF
5067 - CXXINCLUDES="-I${TARGET_ECOS}/include"
5068 - addobjs="$addobjs ecos.lo"
5078 - alpha*-*-openbsd*)
5079 - machdep="alpha_mach_dep.lo"
5080 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
5081 - { echo "$as_me:$LINENO: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
5082 -echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&2;}
5083 - # Check whether --enable-shared or --disable-shared was given.
5084 -if test "${enable_shared+set}" = set; then
5085 - enableval="$enable_shared"
5086 - p=${PACKAGE-default}
5088 -yes) enable_shared=yes ;;
5089 -no) enable_shared=no ;;
5092 - # Look at the argument we got. We use all the common list separators.
5093 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
5094 - for pkg in $enableval; do
5095 - if test "X$pkg" = "X$p"; then
5099 - IFS="$ac_save_ifs"
5108 - machdep="alpha_mach_dep.lo"
5110 - i?86-*-solaris2.[89]*)
5111 - cat >>confdefs.h <<\_ACEOF
5112 -@%:@define SOLARIS25_PROC_VDB_BUG_FIXED 1
5117 - machdep="mips_ultrix_mach_dep.lo"
5118 - cat >>confdefs.h <<\_ACEOF
5119 -@%:@define STACKBASE __stackbase
5122 - cat >>confdefs.h <<\_ACEOF
5123 -@%:@define DATASTART_IS_ETEXT 1
5128 - machdep="mips_ultrix_mach-dep.lo"
5133 - machdep="mips_sgi_mach_dep.lo"
5134 - cat >>confdefs.h <<\_ACEOF
5135 -@%:@define NO_EXECUTE_PERMISSION 1
5139 - sparc-sun-solaris2.3*)
5140 - machdep="sparc_mach_dep.lo"
5141 - cat >>confdefs.h <<\_ACEOF
5142 -@%:@define SUNOS53_SHARED_LIB 1
5146 - sparc-sun-solaris2.*)
5147 - machdep="sparc_mach_dep.lo"
5150 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
5153 -if test x"$machdep" = x; then
5154 - machdep="mach_dep.lo"
5156 -addobjs="$addobjs $machdep"
5160 - sparc-sun-solaris2*)
5161 - if test "$GCC" = yes; then
5163 - for i in $CFLAGS; do
5168 - new_CFLAGS="$new_CFLAGS $i"
5172 - CFLAGS="$new_CFLAGS"
5177 -MY_CFLAGS="$CFLAGS"
5180 -cat >>confdefs.h <<\_ACEOF
5181 -@%:@define SILENT 1
5184 -cat >>confdefs.h <<\_ACEOF
5185 -@%:@define NO_SIGNALS 1
5188 -cat >>confdefs.h <<\_ACEOF
5189 -@%:@define NO_EXECUTE_PERMISSION 1
5192 -cat >>confdefs.h <<\_ACEOF
5193 -@%:@define ALL_INTERIOR_POINTERS 1
5197 -cat >>confdefs.h <<\_ACEOF
5198 -@%:@define JAVA_FINALIZATION 1
5201 -cat >>confdefs.h <<\_ACEOF
5202 -@%:@define GC_GCJ_SUPPORT 1
5205 -cat >>confdefs.h <<\_ACEOF
5206 -@%:@define ATOMIC_UNCOLLECTABLE 1
5210 -if test -n "${with_cross_host}"; then
5211 - cat >>confdefs.h <<\_ACEOF
5212 -@%:@define NO_SIGSET 1
5215 - cat >>confdefs.h <<\_ACEOF
5216 -@%:@define NO_DEBUGGING 1
5221 -# Check whether --enable-full-debug or --disable-full-debug was given.
5222 -if test "${enable_full_debug+set}" = set; then
5223 - enableval="$enable_full_debug"
5224 - if test "$enable_full_debug" = "yes"; then
5225 - { echo "$as_me:$LINENO: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&5
5226 -echo "$as_me: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&2;}
5227 - cat >>confdefs.h <<\_ACEOF
5228 -@%:@define KEEP_BACK_PTRS 1
5231 - cat >>confdefs.h <<\_ACEOF
5232 -@%:@define DBG_HDRS_ALL 1
5237 - cat >>confdefs.h <<\_ACEOF
5238 -@%:@define MAKE_BACK_GRAPH 1
5242 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
5243 - cat >>confdefs.h <<\_ACEOF
5244 -@%:@define MAKE_BACK_GRAPH 1
5247 - { echo "$as_me:$LINENO: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
5248 -echo "$as_me: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&2;}
5249 - cat >>confdefs.h <<\_ACEOF
5250 -@%:@define SAVE_CALL_COUNT 8
5260 -if test -z "$with_cross_host"; then
5262 - USE_LIBDIR_FALSE='#'
5264 - USE_LIBDIR_TRUE='#'
5268 -if test "${multilib}" = "yes"; then
5269 - multilib_arg="--enable-multilib"
5274 - ac_config_files="$ac_config_files Makefile include/Makefile"
5275 - ac_config_commands="$ac_config_commands default"
5276 -cat >confcache <<\_ACEOF
5277 -# This file is a shell script that caches the results of configure
5278 -# tests run on this system so they can be shared between configure
5279 -# scripts and configure runs, see configure's option --config-cache.
5280 -# It is not useful on other systems. If it contains results you don't
5281 -# want to keep, you may remove or edit it.
5283 -# config.status only pays attention to the cache file if you give it
5284 -# the --recheck option to rerun configure.
5286 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
5287 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
5288 -# following values.
5292 -# The following way of writing the cache mishandles newlines in values,
5293 -# but we know of no workaround that is simple, portable, and efficient.
5294 -# So, don't put newlines in cache variables' values.
5295 -# Ultrix sh set writes to stderr and can't be redirected directly,
5296 -# and sets the high bit in the cache file unless we assign to the vars.
5299 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
5301 - # `set' does not quote correctly, so add quotes (double-quote
5302 - # substitution turns \\\\ into \\, and sed turns \\ into \).
5305 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
5308 - # `set' quotes correctly as required by POSIX, so do not add quotes.
5310 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
5317 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
5319 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
5320 - : end' >>confcache
5321 -if diff $cache_file confcache >/dev/null 2>&1; then :; else
5322 - if test -w $cache_file; then
5323 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
5324 - cat confcache >$cache_file
5326 - echo "not updating unwritable cache $cache_file"
5331 -test "x$prefix" = xNONE && prefix=$ac_default_prefix
5332 -# Let make expand exec_prefix.
5333 -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
5335 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
5336 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
5337 -# trailing colons and then remove the whole line if VPATH becomes empty
5338 -# (actually we leave an empty line to preserve line numbers).
5339 -if test "x$srcdir" = x.; then
5340 - ac_vpsub='/^[ ]*VPATH[ ]*=/{
5341 -s/:*\$(srcdir):*/:/;
5342 -s/:*\${srcdir}:*/:/;
5344 -s/^\([^=]*=[ ]*\):*/\1/;
5350 -# Transform confdefs.h into DEFS.
5351 -# Protect against shell expansion while executing Makefile rules.
5352 -# Protect against Makefile macro expansion.
5354 -# If the first sed substitution is executed (which looks for macros that
5355 -# take arguments), then we branch to the quote section. Otherwise,
5356 -# look for a macro that doesn't take arguments.
5357 -cat >confdef2opt.sed <<\_ACEOF
5360 -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
5362 -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
5366 -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
5372 -# We use echo to avoid assuming a particular line-breaking character.
5373 -# The extra dot is to prevent the shell from consuming trailing
5374 -# line-breaks from the sub-command output. A line-break within
5375 -# single-quotes doesn't work because, if this script is created in a
5376 -# platform that uses two characters for line-breaks (e.g., DOS), tr
5378 -ac_LF_and_DOT=`echo; echo .`
5379 -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
5380 -rm -f confdef2opt.sed
5385 -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
5386 - # 1. Remove the extension, and $U if already installed.
5387 - ac_i=`echo "$ac_i" |
5388 - sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
5390 - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
5391 - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
5393 -LIB@&t@OBJS=$ac_libobjs
5395 -LTLIBOBJS=$ac_ltlibobjs
5399 -: ${CONFIG_STATUS=./config.status}
5400 -ac_clean_files_save=$ac_clean_files
5401 -ac_clean_files="$ac_clean_files $CONFIG_STATUS"
5402 -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
5403 -echo "$as_me: creating $CONFIG_STATUS" >&6;}
5404 -cat >$CONFIG_STATUS <<_ACEOF
5406 -# Generated by $as_me.
5407 -# Run this file to recreate the current configuration.
5408 -# Compiler output produced by configure, useful for debugging
5409 -# configure, is in config.log if it exists.
5412 -ac_cs_recheck=false
5414 -SHELL=\${CONFIG_SHELL-$SHELL}
5417 -cat >>$CONFIG_STATUS <<\_ACEOF
5418 -## --------------------- ##
5419 -## M4sh Initialization. ##
5420 -## --------------------- ##
5422 -# Be Bourne compatible
5423 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
5426 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
5427 - # is contrary to our usage. Disable this feature.
5428 - alias -g '${1+"$@"}'='"$@"'
5429 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
5433 -# Support unset when possible.
5434 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
5441 -# Work around bugs in pre-3.0 UWIN ksh.
5442 -$as_unset ENV MAIL MAILPATH
5449 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
5450 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
5451 - LC_TELEPHONE LC_TIME
5453 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
5454 - eval $as_var=C; export $as_var
5460 -# Required to use basename.
5461 -if expr a : '\(a\)' >/dev/null 2>&1; then
5467 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
5468 - as_basename=basename
5474 -# Name of the executable.
5475 -as_me=`$as_basename "$0" ||
5476 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
5477 - X"$0" : 'X\(//\)$' \| \
5478 - X"$0" : 'X\(/\)$' \| \
5479 - . : '\(.\)' 2>/dev/null ||
5481 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
5482 - /^X\/\(\/\/\)$/{ s//\1/; q; }
5483 - /^X\/\(\/\).*/{ s//\1/; q; }
5487 -# PATH needs CR, and LINENO needs CR and PATH.
5488 -# Avoid depending upon Character Ranges.
5489 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
5490 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
5491 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
5492 -as_cr_digits='0123456789'
5493 -as_cr_alnum=$as_cr_Letters$as_cr_digits
5495 -# The user is always right.
5496 -if test "${PATH_SEPARATOR+set}" != set; then
5497 - echo "#! /bin/sh" >conf$$.sh
5498 - echo "exit 0" >>conf$$.sh
5499 - chmod +x conf$$.sh
5500 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
5501 - PATH_SEPARATOR=';'
5509 - as_lineno_1=$LINENO
5510 - as_lineno_2=$LINENO
5511 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
5512 - test "x$as_lineno_1" != "x$as_lineno_2" &&
5513 - test "x$as_lineno_3" = "x$as_lineno_2" || {
5514 - # Find who we are. Look in the path if we contain no path at all
5515 - # relative or not.
5517 - *[\\/]* ) as_myself=$0 ;;
5518 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5519 -for as_dir in $PATH
5522 - test -z "$as_dir" && as_dir=.
5523 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
5528 - # We did not find ourselves, most probably we were run as `sh COMMAND'
5529 - # in which case we are not to be found in the path.
5530 - if test "x$as_myself" = x; then
5533 - if test ! -f "$as_myself"; then
5534 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
5535 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
5536 - { (exit 1); exit 1; }; }
5538 - case $CONFIG_SHELL in
5540 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5541 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
5544 - test -z "$as_dir" && as_dir=.
5545 - for as_base in sh bash ksh sh5; do
5548 - if ("$as_dir/$as_base" -c '
5549 - as_lineno_1=$LINENO
5550 - as_lineno_2=$LINENO
5551 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
5552 - test "x$as_lineno_1" != "x$as_lineno_2" &&
5553 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
5554 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
5555 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
5556 - CONFIG_SHELL=$as_dir/$as_base
5557 - export CONFIG_SHELL
5558 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
5566 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
5567 - # uniformly replaced by the line number. The first 'sed' inserts a
5568 - # line-number line before each line; the second 'sed' does the real
5569 - # work. The second script uses 'N' to pair each line-number line
5570 - # with the numbered line, and appends trailing '-' during
5571 - # substitution so that $LINENO is not a special case at line end.
5572 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
5573 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
5574 - sed '=' <$as_myself |
5579 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
5582 - s,^['$as_cr_digits']*\n,,
5583 - ' >$as_me.lineno &&
5584 - chmod +x $as_me.lineno ||
5585 - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
5586 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
5587 - { (exit 1); exit 1; }; }
5589 - # Don't try to exec as it changes $[0], causing all sort of problems
5590 - # (the dirname of $[0] is not the place where we might find the
5591 - # original and so on. Autoconf is especially sensible to this).
5593 - # Exit status is that of the last command.
5598 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
5599 - *c*,-n*) ECHO_N= ECHO_C='
5601 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
5602 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
5605 -if expr a : '\(a\)' >/dev/null 2>&1; then
5611 -rm -f conf$$ conf$$.exe conf$$.file
5613 -if ln -s conf$$.file conf$$ 2>/dev/null; then
5614 - # We could just check for DJGPP; but this test a) works b) is more generic
5615 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
5616 - if test -f conf$$.exe; then
5617 - # Don't use ln at all; we don't have any links
5622 -elif ln conf$$.file conf$$ 2>/dev/null; then
5627 -rm -f conf$$ conf$$.exe conf$$.file
5629 -if mkdir -p . 2>/dev/null; then
5635 -as_executable_p="test -f"
5637 -# Sed expression to map a string onto a valid CPP name.
5638 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
5640 -# Sed expression to map a string onto a valid variable name.
5641 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
5645 -# We need space, tab and new line, in precisely that order.
5655 -# Open the log real soon, to keep \$[0] and so on meaningful, and to
5656 -# report actual input values of CONFIG_FILES etc. instead of their
5657 -# values after options handling. Logging --version etc. is OK.
5661 - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
5662 -@%:@@%:@ Running $as_me. @%:@@%:@
5667 -This file was extended by $as_me, which was
5668 -generated by GNU Autoconf 2.57. Invocation command line was
5670 - CONFIG_FILES = $CONFIG_FILES
5671 - CONFIG_HEADERS = $CONFIG_HEADERS
5672 - CONFIG_LINKS = $CONFIG_LINKS
5673 - CONFIG_COMMANDS = $CONFIG_COMMANDS
5677 -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
5681 -# Files that config.status was made for.
5682 -if test -n "$ac_config_files"; then
5683 - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
5686 -if test -n "$ac_config_headers"; then
5687 - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
5690 -if test -n "$ac_config_links"; then
5691 - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
5694 -if test -n "$ac_config_commands"; then
5695 - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
5698 -cat >>$CONFIG_STATUS <<\_ACEOF
5701 -\`$as_me' instantiates files from templates according to the
5702 -current configuration.
5704 -Usage: $0 [OPTIONS] [FILE]...
5706 - -h, --help print this help, then exit
5707 - -V, --version print version number, then exit
5708 - -q, --quiet do not print progress messages
5709 - -d, --debug don't remove temporary files
5710 - --recheck update $as_me by reconfiguring in the same conditions
5711 - --file=FILE[:TEMPLATE]
5712 - instantiate the configuration file FILE
5714 -Configuration files:
5717 -Configuration commands:
5720 -Report bugs to <bug-autoconf@gnu.org>."
5723 -cat >>$CONFIG_STATUS <<_ACEOF
5726 -configured by $0, generated by GNU Autoconf 2.57,
5727 - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
5729 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
5730 -Free Software Foundation, Inc.
5731 -This config.status script is free software; the Free Software Foundation
5732 -gives unlimited permission to copy, distribute and modify it."
5737 -cat >>$CONFIG_STATUS <<\_ACEOF
5738 -# If no file are specified by the user, then we need to provide default
5739 -# value. By we need to know if files were specified by the user.
5745 - ac_option=`expr "x$1" : 'x\([^=]*\)='`
5746 - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
5754 - *) # This is not an option, so the user has probably given explicit
5757 - ac_need_defaults=false;;
5760 - case $ac_option in
5761 - # Handling of the options.
5763 -cat >>$CONFIG_STATUS <<\_ACEOF
5764 - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
5765 - ac_cs_recheck=: ;;
5766 - --version | --vers* | -V )
5767 - echo "$ac_cs_version"; exit 0 ;;
5769 - # Conflict between --help and --header
5770 - { { echo "$as_me:$LINENO: error: ambiguous option: $1
5771 -Try \`$0 --help' for more information." >&5
5772 -echo "$as_me: error: ambiguous option: $1
5773 -Try \`$0 --help' for more information." >&2;}
5774 - { (exit 1); exit 1; }; };;
5775 - --help | --hel | -h )
5776 - echo "$ac_cs_usage"; exit 0 ;;
5777 - --debug | --d* | -d )
5779 - --file | --fil | --fi | --f )
5781 - CONFIG_FILES="$CONFIG_FILES $ac_optarg"
5782 - ac_need_defaults=false;;
5783 - --header | --heade | --head | --hea )
5785 - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
5786 - ac_need_defaults=false;;
5787 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
5788 - | -silent | --silent | --silen | --sile | --sil | --si | --s)
5791 - # This is an error.
5792 - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
5793 -Try \`$0 --help' for more information." >&5
5794 -echo "$as_me: error: unrecognized option: $1
5795 -Try \`$0 --help' for more information." >&2;}
5796 - { (exit 1); exit 1; }; } ;;
5798 - *) ac_config_targets="$ac_config_targets $1" ;;
5804 -ac_configure_extra_args=
5806 -if $ac_cs_silent; then
5808 - ac_configure_extra_args="$ac_configure_extra_args --silent"
5812 -cat >>$CONFIG_STATUS <<_ACEOF
5813 -if \$ac_cs_recheck; then
5814 - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
5815 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
5820 -cat >>$CONFIG_STATUS <<_ACEOF
5822 -# INIT-COMMANDS section.
5828 -with_multisubdir=${with_multisubdir}
5829 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
5830 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
5831 -gc_basedir=${gc_basedir}
5840 -cat >>$CONFIG_STATUS <<\_ACEOF
5841 -for ac_config_target in $ac_config_targets
5843 - case "$ac_config_target" in
5844 - # Handling of arguments.
5845 - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
5846 - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
5847 - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
5848 - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
5849 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
5850 - { (exit 1); exit 1; }; };;
5854 -# If the user did not use the arguments to specify the items to instantiate,
5855 -# then the envvar interface is used. Set only those that are not.
5856 -# We use the long form for the default assignment because of an extremely
5857 -# bizarre bug on SunOS 4.1.3.
5858 -if $ac_need_defaults; then
5859 - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
5860 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
5863 -# Have a temporary directory for convenience. Make it in the build tree
5864 -# simply because there is no reason to put it here, and in addition,
5865 -# creating and moving files from /tmp can sometimes cause problems.
5866 -# Create a temporary directory, and hook for its removal unless debugging.
5869 - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
5870 - trap '{ (exit 1); exit 1; }' 1 2 13 15
5873 -# Create a (secure) tmp directory for tmp files.
5876 - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
5877 - test -n "$tmp" && test -d "$tmp"
5880 - tmp=./confstat$$-$RANDOM
5881 - (umask 077 && mkdir $tmp)
5884 - echo "$me: cannot create a temporary directory in ." >&2
5885 - { (exit 1); exit 1; }
5890 -cat >>$CONFIG_STATUS <<_ACEOF
5893 -# CONFIG_FILES section.
5896 -# No need to generate the scripts if there are no CONFIG_FILES.
5897 -# This happens for instance when ./config.status config.h
5898 -if test -n "\$CONFIG_FILES"; then
5899 - # Protect against being on the right side of a sed subst in config.status.
5900 - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
5901 - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
5902 -s,@SHELL@,$SHELL,;t t
5903 -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
5904 -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
5905 -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
5906 -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
5907 -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
5908 -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
5909 -s,@exec_prefix@,$exec_prefix,;t t
5910 -s,@prefix@,$prefix,;t t
5911 -s,@program_transform_name@,$program_transform_name,;t t
5912 -s,@bindir@,$bindir,;t t
5913 -s,@sbindir@,$sbindir,;t t
5914 -s,@libexecdir@,$libexecdir,;t t
5915 -s,@datadir@,$datadir,;t t
5916 -s,@sysconfdir@,$sysconfdir,;t t
5917 -s,@sharedstatedir@,$sharedstatedir,;t t
5918 -s,@localstatedir@,$localstatedir,;t t
5919 -s,@libdir@,$libdir,;t t
5920 -s,@includedir@,$includedir,;t t
5921 -s,@oldincludedir@,$oldincludedir,;t t
5922 -s,@infodir@,$infodir,;t t
5923 -s,@mandir@,$mandir,;t t
5924 -s,@build_alias@,$build_alias,;t t
5925 -s,@host_alias@,$host_alias,;t t
5926 -s,@target_alias@,$target_alias,;t t
5927 -s,@DEFS@,$DEFS,;t t
5928 -s,@ECHO_C@,$ECHO_C,;t t
5929 -s,@ECHO_N@,$ECHO_N,;t t
5930 -s,@ECHO_T@,$ECHO_T,;t t
5931 -s,@LIBS@,$LIBS,;t t
5932 -s,@gc_basedir@,$gc_basedir,;t t
5933 -s,@build@,$build,;t t
5934 -s,@build_cpu@,$build_cpu,;t t
5935 -s,@build_vendor@,$build_vendor,;t t
5936 -s,@build_os@,$build_os,;t t
5937 -s,@host@,$host,;t t
5938 -s,@host_cpu@,$host_cpu,;t t
5939 -s,@host_vendor@,$host_vendor,;t t
5940 -s,@host_os@,$host_os,;t t
5941 -s,@target@,$target,;t t
5942 -s,@target_cpu@,$target_cpu,;t t
5943 -s,@target_vendor@,$target_vendor,;t t
5944 -s,@target_os@,$target_os,;t t
5945 -s,@mkinstalldirs@,$mkinstalldirs,;t t
5946 -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
5947 -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
5948 -s,@INSTALL_DATA@,$INSTALL_DATA,;t t
5949 -s,@PACKAGE@,$PACKAGE,;t t
5950 -s,@VERSION@,$VERSION,;t t
5951 -s,@ACLOCAL@,$ACLOCAL,;t t
5952 -s,@AUTOCONF@,$AUTOCONF,;t t
5953 -s,@AUTOMAKE@,$AUTOMAKE,;t t
5954 -s,@AUTOHEADER@,$AUTOHEADER,;t t
5955 -s,@MAKEINFO@,$MAKEINFO,;t t
5956 -s,@SET_MAKE@,$SET_MAKE,;t t
5960 -s,@ac_ct_AS@,$ac_ct_AS,;t t
5962 -s,@ac_ct_AR@,$ac_ct_AR,;t t
5963 -s,@RANLIB@,$RANLIB,;t t
5964 -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
5965 -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
5966 -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
5967 -s,@MAINT@,$MAINT,;t t
5968 -s,@GC_CFLAGS@,$GC_CFLAGS,;t t
5969 -s,@LN_S@,$LN_S,;t t
5970 -s,@STRIP@,$STRIP,;t t
5971 -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
5972 -s,@LIBTOOL@,$LIBTOOL,;t t
5973 -s,@CXXCPP@,$CXXCPP,;t t
5974 -s,@CPPFLAGS@,$CPPFLAGS,;t t
5975 -s,@THREADLIBS@,$THREADLIBS,;t t
5976 -s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t
5977 -s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t
5978 -s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t
5979 -s,@target_all@,$target_all,;t t
5980 -s,@INCLUDES@,$INCLUDES,;t t
5981 -s,@CXXINCLUDES@,$CXXINCLUDES,;t t
5982 -s,@addobjs@,$addobjs,;t t
5983 -s,@MY_CFLAGS@,$MY_CFLAGS,;t t
5984 -s,@USE_LIBDIR_TRUE@,$USE_LIBDIR_TRUE,;t t
5985 -s,@USE_LIBDIR_FALSE@,$USE_LIBDIR_FALSE,;t t
5986 -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
5987 -s,@LTLIBOBJS@,$LTLIBOBJS,;t t
5992 - cat >>$CONFIG_STATUS <<\_ACEOF
5993 - # Split the substitutions into bite-sized pieces for seds with
5994 - # small command number limits, like on Digital OSF/1 and HP-UX.
5995 - ac_max_sed_lines=48
5996 - ac_sed_frag=1 # Number of current file.
5997 - ac_beg=1 # First line for current file.
5998 - ac_end=$ac_max_sed_lines # Line after last line for current file.
6001 - while $ac_more_lines; do
6002 - if test $ac_beg -gt 1; then
6003 - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
6005 - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
6007 - if test ! -s $tmp/subs.frag; then
6008 - ac_more_lines=false
6010 - # The purpose of the label and of the branching condition is to
6011 - # speed up the sed processing (if there are no `@' at all, there
6012 - # is no need to browse any of the substitutions).
6013 - # These are the two extra sed commands mentioned above.
6015 - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
6016 - if test -z "$ac_sed_cmds"; then
6017 - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
6019 - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
6021 - ac_sed_frag=`expr $ac_sed_frag + 1`
6023 - ac_end=`expr $ac_end + $ac_max_sed_lines`
6026 - if test -z "$ac_sed_cmds"; then
6029 -fi # test -n "$CONFIG_FILES"
6032 -cat >>$CONFIG_STATUS <<\_ACEOF
6033 -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
6034 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
6036 - - | *:- | *:-:* ) # input from stdin
6038 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
6039 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
6040 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
6041 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
6042 - * ) ac_file_in=$ac_file.in ;;
6045 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
6046 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
6047 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6048 - X"$ac_file" : 'X\(//\)[^/]' \| \
6049 - X"$ac_file" : 'X\(//\)$' \| \
6050 - X"$ac_file" : 'X\(/\)' \| \
6051 - . : '\(.\)' 2>/dev/null ||
6053 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6054 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6055 - /^X\(\/\/\)$/{ s//\1/; q; }
6056 - /^X\(\/\).*/{ s//\1/; q; }
6058 - { if $as_mkdir_p; then
6059 - mkdir -p "$ac_dir"
6063 - while test ! -d "$as_dir"; do
6064 - as_dirs="$as_dir $as_dirs"
6065 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
6066 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6067 - X"$as_dir" : 'X\(//\)[^/]' \| \
6068 - X"$as_dir" : 'X\(//\)$' \| \
6069 - X"$as_dir" : 'X\(/\)' \| \
6070 - . : '\(.\)' 2>/dev/null ||
6072 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6073 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6074 - /^X\(\/\/\)$/{ s//\1/; q; }
6075 - /^X\(\/\).*/{ s//\1/; q; }
6078 - test ! -n "$as_dirs" || mkdir $as_dirs
6079 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
6080 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
6081 - { (exit 1); exit 1; }; }; }
6085 -if test "$ac_dir" != .; then
6086 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
6087 - # A "../" for each directory in $ac_dir_suffix.
6088 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
6090 - ac_dir_suffix= ac_top_builddir=
6094 - .) # No --srcdir option. We are building in place.
6096 - if test -z "$ac_top_builddir"; then
6099 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
6101 - [\\/]* | ?:[\\/]* ) # Absolute path.
6102 - ac_srcdir=$srcdir$ac_dir_suffix;
6103 - ac_top_srcdir=$srcdir ;;
6104 - *) # Relative path.
6105 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
6106 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
6108 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
6110 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
6111 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
6112 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
6113 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
6117 - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
6118 - *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
6121 - if test x"$ac_file" != x-; then
6122 - { echo "$as_me:$LINENO: creating $ac_file" >&5
6123 -echo "$as_me: creating $ac_file" >&6;}
6126 - # Let's still pretend it is `configure' which instantiates (i.e., don't
6127 - # use $as_me), people would be surprised to read:
6128 - # /* config.h. Generated by config.status. */
6129 - if test x"$ac_file" = x-; then
6132 - configure_input="$ac_file. "
6134 - configure_input=$configure_input"Generated from `echo $ac_file_in |
6135 - sed 's,.*/,,'` by configure."
6137 - # First look for the input files in the build tree, otherwise in the
6139 - ac_file_inputs=`IFS=:
6140 - for f in $ac_file_in; do
6142 - -) echo $tmp/stdin ;;
6144 - # Absolute (can't be DOS-style, as IFS=:)
6145 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
6146 -echo "$as_me: error: cannot find input file: $f" >&2;}
6147 - { (exit 1); exit 1; }; }
6150 - if test -f "$f"; then
6153 - elif test -f "$srcdir/$f"; then
6158 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
6159 -echo "$as_me: error: cannot find input file: $f" >&2;}
6160 - { (exit 1); exit 1; }; }
6163 - done` || { (exit 1); exit 1; }
6165 -cat >>$CONFIG_STATUS <<_ACEOF
6169 -cat >>$CONFIG_STATUS <<\_ACEOF
6171 -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
6172 -s,@configure_input@,$configure_input,;t t
6173 -s,@srcdir@,$ac_srcdir,;t t
6174 -s,@abs_srcdir@,$ac_abs_srcdir,;t t
6175 -s,@top_srcdir@,$ac_top_srcdir,;t t
6176 -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
6177 -s,@builddir@,$ac_builddir,;t t
6178 -s,@abs_builddir@,$ac_abs_builddir,;t t
6179 -s,@top_builddir@,$ac_top_builddir,;t t
6180 -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
6181 -s,@INSTALL@,$ac_INSTALL,;t t
6182 -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
6184 - if test x"$ac_file" != x-; then
6185 - mv $tmp/out $ac_file
6193 -cat >>$CONFIG_STATUS <<\_ACEOF
6196 -# CONFIG_COMMANDS section.
6198 -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
6199 - ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
6200 - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
6201 - ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
6202 -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
6203 - X"$ac_dest" : 'X\(//\)[^/]' \| \
6204 - X"$ac_dest" : 'X\(//\)$' \| \
6205 - X"$ac_dest" : 'X\(/\)' \| \
6206 - . : '\(.\)' 2>/dev/null ||
6208 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
6209 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
6210 - /^X\(\/\/\)$/{ s//\1/; q; }
6211 - /^X\(\/\).*/{ s//\1/; q; }
6215 -if test "$ac_dir" != .; then
6216 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
6217 - # A "../" for each directory in $ac_dir_suffix.
6218 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
6220 - ac_dir_suffix= ac_top_builddir=
6224 - .) # No --srcdir option. We are building in place.
6226 - if test -z "$ac_top_builddir"; then
6229 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
6231 - [\\/]* | ?:[\\/]* ) # Absolute path.
6232 - ac_srcdir=$srcdir$ac_dir_suffix;
6233 - ac_top_srcdir=$srcdir ;;
6234 - *) # Relative path.
6235 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
6236 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
6238 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
6240 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
6241 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
6242 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
6243 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
6246 - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
6247 -echo "$as_me: executing $ac_dest commands" >&6;}
6250 -echo "$DEFS" > boehm-cflags
6252 -if test -n "$CONFIG_FILES"; then
6253 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
6254 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
6260 -cat >>$CONFIG_STATUS <<\_ACEOF
6262 -{ (exit 0); exit 0; }
6264 -chmod +x $CONFIG_STATUS
6265 -ac_clean_files=$ac_clean_files_save
6268 -# configure is writing to config.log, and then calls config.status.
6269 -# config.status does its own redirection, appending to config.log.
6270 -# Unfortunately, on DOS this fails, as config.log is still kept open
6271 -# by configure, so config.status won't be able to write to it; its
6272 -# output is simply discarded. So we exec the FD to /dev/null,
6273 -# effectively closing config.log, so it can be properly (re)opened and
6274 -# appended to by config.status. When coming back to configure, we
6275 -# need to make the FD available again.
6276 -if test "$no_create" != yes; then
6278 - ac_config_status_args=
6279 - test "$silent" = yes &&
6280 - ac_config_status_args="$ac_config_status_args --quiet"
6282 - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
6283 - exec 5>>config.log
6284 - # Use ||, not &&, to avoid exiting from the if with $? = 1, which
6285 - # would make configure fail if this is the last instruction.
6286 - $ac_cs_success || { (exit 1); exit 1; }
6289 diff -Nur ../boehm-gc/autom4te.cache/output.1 boehm-gc/autom4te.cache/output.1
6290 --- ../boehm-gc/autom4te.cache/output.1 Sat May 31 15:09:31 2003
6291 +++ boehm-gc/autom4te.cache/output.1 Wed Dec 31 16:00:00 1969
6294 -@%:@ Guess values for system-dependent variables and create Makefiles.
6295 -@%:@ Generated by GNU Autoconf 2.54.
6297 -@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
6298 -@%:@ Free Software Foundation, Inc.
6299 -@%:@ This configure script is free software; the Free Software Foundation
6300 -@%:@ gives unlimited permission to copy, distribute and modify it.
6301 -## --------------------- ##
6302 -## M4sh Initialization. ##
6303 -## --------------------- ##
6305 -# Be Bourne compatible
6306 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
6309 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
6310 - # is contrary to our usage. Disable this feature.
6311 - alias -g '${1+"$@"}'='"$@"'
6312 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
6316 -# Support unset when possible.
6317 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
6324 -# Work around bugs in pre-3.0 UWIN ksh.
6325 -$as_unset ENV MAIL MAILPATH
6331 -for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME
6333 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
6334 - eval $as_var=C; export $as_var
6340 -# Required to use basename.
6341 -if expr a : '\(a\)' >/dev/null 2>&1; then
6347 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
6348 - as_basename=basename
6354 -# Name of the executable.
6355 -as_me=`$as_basename "$0" ||
6356 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
6357 - X"$0" : 'X\(//\)$' \| \
6358 - X"$0" : 'X\(/\)$' \| \
6359 - . : '\(.\)' 2>/dev/null ||
6361 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
6362 - /^X\/\(\/\/\)$/{ s//\1/; q; }
6363 - /^X\/\(\/\).*/{ s//\1/; q; }
6367 -# PATH needs CR, and LINENO needs CR and PATH.
6368 -# Avoid depending upon Character Ranges.
6369 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
6370 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
6371 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
6372 -as_cr_digits='0123456789'
6373 -as_cr_alnum=$as_cr_Letters$as_cr_digits
6375 -# The user is always right.
6376 -if test "${PATH_SEPARATOR+set}" != set; then
6377 - echo "#! /bin/sh" >conftest.sh
6378 - echo "exit 0" >>conftest.sh
6379 - chmod +x conftest.sh
6380 - if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then
6381 - PATH_SEPARATOR=';'
6389 - as_lineno_1=$LINENO
6390 - as_lineno_2=$LINENO
6391 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6392 - test "x$as_lineno_1" != "x$as_lineno_2" &&
6393 - test "x$as_lineno_3" = "x$as_lineno_2" || {
6394 - # Find who we are. Look in the path if we contain no path at all
6395 - # relative or not.
6397 - *[\\/]* ) as_myself=$0 ;;
6398 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6399 -for as_dir in $PATH
6402 - test -z "$as_dir" && as_dir=.
6403 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
6408 - # We did not find ourselves, most probably we were run as `sh COMMAND'
6409 - # in which case we are not to be found in the path.
6410 - if test "x$as_myself" = x; then
6413 - if test ! -f "$as_myself"; then
6414 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
6415 - { (exit 1); exit 1; }; }
6417 - case $CONFIG_SHELL in
6419 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6420 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
6423 - test -z "$as_dir" && as_dir=.
6424 - for as_base in sh bash ksh sh5; do
6427 - if ("$as_dir/$as_base" -c '
6428 - as_lineno_1=$LINENO
6429 - as_lineno_2=$LINENO
6430 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
6431 - test "x$as_lineno_1" != "x$as_lineno_2" &&
6432 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
6433 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
6434 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
6435 - CONFIG_SHELL=$as_dir/$as_base
6436 - export CONFIG_SHELL
6437 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
6445 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
6446 - # uniformly replaced by the line number. The first 'sed' inserts a
6447 - # line-number line before each line; the second 'sed' does the real
6448 - # work. The second script uses 'N' to pair each line-number line
6449 - # with the numbered line, and appends trailing '-' during
6450 - # substitution so that $LINENO is not a special case at line end.
6451 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
6452 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
6453 - sed '=' <$as_myself |
6458 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
6461 - s,^['$as_cr_digits']*\n,,
6462 - ' >$as_me.lineno &&
6463 - chmod +x $as_me.lineno ||
6464 - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
6465 - { (exit 1); exit 1; }; }
6467 - # Don't try to exec as it changes $[0], causing all sort of problems
6468 - # (the dirname of $[0] is not the place where we might find the
6469 - # original and so on. Autoconf is especially sensible to this).
6471 - # Exit status is that of the last command.
6476 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
6477 - *c*,-n*) ECHO_N= ECHO_C='
6479 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
6480 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
6483 -if expr a : '\(a\)' >/dev/null 2>&1; then
6489 -rm -f conf$$ conf$$.exe conf$$.file
6491 -if ln -s conf$$.file conf$$ 2>/dev/null; then
6492 - # We could just check for DJGPP; but this test a) works b) is more generic
6493 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
6494 - if test -f conf$$.exe; then
6495 - # Don't use ln at all; we don't have any links
6500 -elif ln conf$$.file conf$$ 2>/dev/null; then
6505 -rm -f conf$$ conf$$.exe conf$$.file
6507 -if mkdir -p . 2>/dev/null; then
6513 -as_executable_p="test -f"
6515 -# Sed expression to map a string onto a valid CPP name.
6516 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
6518 -# Sed expression to map a string onto a valid variable name.
6519 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
6523 -# We need space, tab and new line, in precisely that order.
6532 -# Find the correct PATH separator. Usually this is `:', but
6533 -# DJGPP uses `;' like DOS.
6534 -if test "X${PATH_SEPARATOR+set}" != Xset; then
6535 - UNAME=${UNAME-`uname 2>/dev/null`}
6537 - *-DOS) lt_cv_sys_path_separator=';' ;;
6538 - *) lt_cv_sys_path_separator=':' ;;
6540 - PATH_SEPARATOR=$lt_cv_sys_path_separator
6544 -# Check that we are running under the correct shell.
6545 -SHELL=${CONFIG_SHELL-/bin/sh}
6549 - # Remove one level of quotation (which was required for Make).
6550 - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
6555 -if test "X$1" = X--no-reexec; then
6556 - # Discard the --no-reexec flag, and continue.
6558 -elif test "X$1" = X--fallback-echo; then
6559 - # Avoid inline document here, it may be left over
6561 -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
6562 - # Yippee, $echo works!
6565 - # Restart under the correct shell.
6566 - exec $SHELL "$0" --no-reexec ${1+"$@"}
6569 -if test "X$1" = X--fallback-echo; then
6570 - # used as fallback echo
6578 -# The HP-UX ksh and POSIX shell print the target directory to stdout
6579 -# if CDPATH is set.
6580 -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
6582 -if test -z "$ECHO"; then
6583 -if test "X${echo_test_string+set}" != Xset; then
6584 -# find a string as large as possible, as long as the shell can cope with it
6585 - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
6586 - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
6587 - if (echo_test_string="`eval $cmd`") 2>/dev/null &&
6588 - echo_test_string="`eval $cmd`" &&
6589 - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
6596 -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
6597 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
6598 - test "X$echo_testing_string" = "X$echo_test_string"; then
6601 - # The Solaris, AIX, and Digital Unix default echo programs unquote
6602 - # backslashes. This makes it impossible to quote backslashes using
6603 - # echo "$something" | sed 's/\\/\\\\/g'
6605 - # So, first we look for a working echo in the user's PATH.
6607 - IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
6608 - for dir in $PATH /usr/ucb; do
6609 - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
6610 - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
6611 - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
6612 - test "X$echo_testing_string" = "X$echo_test_string"; then
6619 - if test "X$echo" = Xecho; then
6620 - # We didn't find a better echo, so look for alternatives.
6621 - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
6622 - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
6623 - test "X$echo_testing_string" = "X$echo_test_string"; then
6624 - # This shell has a builtin print -r that does the trick.
6626 - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
6627 - test "X$CONFIG_SHELL" != X/bin/ksh; then
6628 - # If we have ksh, try running configure again with it.
6629 - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
6630 - export ORIGINAL_CONFIG_SHELL
6631 - CONFIG_SHELL=/bin/ksh
6632 - export CONFIG_SHELL
6633 - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
6635 - # Try using printf.
6636 - echo='printf %s\n'
6637 - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
6638 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
6639 - test "X$echo_testing_string" = "X$echo_test_string"; then
6640 - # Cool, printf works
6642 - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
6643 - test "X$echo_testing_string" = 'X\t' &&
6644 - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
6645 - test "X$echo_testing_string" = "X$echo_test_string"; then
6646 - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
6647 - export CONFIG_SHELL
6648 - SHELL="$CONFIG_SHELL"
6650 - echo="$CONFIG_SHELL $0 --fallback-echo"
6651 - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
6652 - test "X$echo_testing_string" = 'X\t' &&
6653 - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
6654 - test "X$echo_testing_string" = "X$echo_test_string"; then
6655 - echo="$CONFIG_SHELL $0 --fallback-echo"
6657 - # maybe with a smaller string...
6660 - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
6661 - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
6668 - if test "$prev" != 'sed 50q "$0"'; then
6669 - echo_test_string=`eval $prev`
6670 - export echo_test_string
6671 - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
6673 - # Oops. We lost completely, so just stick with echo.
6682 -# Copy echo and quote the copy suitably for passing to libtool from
6683 -# the Makefile, instead of quoting the original, which is used later.
6685 -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
6686 - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
6691 -# Name of the host.
6692 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
6693 -# so uname gets run too.
6694 -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
6701 -ac_default_prefix=/usr/local
6702 -ac_config_libobj_dir=.
6707 -SHELL=${CONFIG_SHELL-/bin/sh}
6709 -# Maximum number of lines to put in a shell here document.
6710 -# This variable seems obsolete. It should probably be removed, and
6711 -# only ac_max_sed_lines should be used.
6712 -: ${ac_max_here_lines=38}
6714 -# Identity of this package.
6721 -ac_unique_file="gcj_mlc.c"
6722 -# Factoring default headers for most tests.
6723 -ac_includes_default="\
6725 -#if HAVE_SYS_TYPES_H
6726 -# include <sys/types.h>
6728 -#if HAVE_SYS_STAT_H
6729 -# include <sys/stat.h>
6732 -# include <stdlib.h>
6733 -# include <stddef.h>
6736 -# include <stdlib.h>
6740 -# if !STDC_HEADERS && HAVE_MEMORY_H
6741 -# include <memory.h>
6743 -# include <string.h>
6746 -# include <strings.h>
6748 -#if HAVE_INTTYPES_H
6749 -# include <inttypes.h>
6752 -# include <stdint.h>
6756 -# include <unistd.h>
6759 -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'
6762 -# Initialize some variables set by options.
6764 -ac_init_version=false
6765 -# The variables have the same names as the options, with
6766 -# dashes changed to underlines.
6767 -cache_file=/dev/null
6772 -program_prefix=NONE
6773 -program_suffix=NONE
6774 -program_transform_name=s,x,x,
6782 -# Installation directory options.
6783 -# These are left unexpanded so users can "make install exec_prefix=/foo"
6784 -# and all the variables that are supposed to be based on exec_prefix
6785 -# by default will actually change.
6786 -# Use braces instead of parens because sh, perl, etc. also accept them.
6787 -bindir='${exec_prefix}/bin'
6788 -sbindir='${exec_prefix}/sbin'
6789 -libexecdir='${exec_prefix}/libexec'
6790 -datadir='${prefix}/share'
6791 -sysconfdir='${prefix}/etc'
6792 -sharedstatedir='${prefix}/com'
6793 -localstatedir='${prefix}/var'
6794 -libdir='${exec_prefix}/lib'
6795 -includedir='${prefix}/include'
6796 -oldincludedir='/usr/include'
6797 -infodir='${prefix}/info'
6798 -mandir='${prefix}/man'
6803 - # If the previous option needs an argument, assign it.
6804 - if test -n "$ac_prev"; then
6805 - eval "$ac_prev=\$ac_option"
6810 - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
6812 - # Accept the important Cygnus configure options, so we can diagnose typos.
6814 - case $ac_option in
6816 - -bindir | --bindir | --bindi | --bind | --bin | --bi)
6818 - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
6819 - bindir=$ac_optarg ;;
6821 - -build | --build | --buil | --bui | --bu)
6822 - ac_prev=build_alias ;;
6823 - -build=* | --build=* | --buil=* | --bui=* | --bu=*)
6824 - build_alias=$ac_optarg ;;
6826 - -cache-file | --cache-file | --cache-fil | --cache-fi \
6827 - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
6828 - ac_prev=cache_file ;;
6829 - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
6830 - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
6831 - cache_file=$ac_optarg ;;
6833 - --config-cache | -C)
6834 - cache_file=config.cache ;;
6836 - -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
6837 - ac_prev=datadir ;;
6838 - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
6840 - datadir=$ac_optarg ;;
6842 - -disable-* | --disable-*)
6843 - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
6844 - # Reject names that are not valid shell variable names.
6845 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
6846 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
6847 - { (exit 1); exit 1; }; }
6848 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
6849 - eval "enable_$ac_feature=no" ;;
6851 - -enable-* | --enable-*)
6852 - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
6853 - # Reject names that are not valid shell variable names.
6854 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
6855 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
6856 - { (exit 1); exit 1; }; }
6857 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
6858 - case $ac_option in
6859 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
6860 - *) ac_optarg=yes ;;
6862 - eval "enable_$ac_feature='$ac_optarg'" ;;
6864 - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
6865 - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
6866 - | --exec | --exe | --ex)
6867 - ac_prev=exec_prefix ;;
6868 - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
6869 - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
6870 - | --exec=* | --exe=* | --ex=*)
6871 - exec_prefix=$ac_optarg ;;
6873 - -gas | --gas | --ga | --g)
6874 - # Obsolete; use --with-gas.
6877 - -help | --help | --hel | --he | -h)
6878 - ac_init_help=long ;;
6879 - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
6880 - ac_init_help=recursive ;;
6881 - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
6882 - ac_init_help=short ;;
6884 - -host | --host | --hos | --ho)
6885 - ac_prev=host_alias ;;
6886 - -host=* | --host=* | --hos=* | --ho=*)
6887 - host_alias=$ac_optarg ;;
6889 - -includedir | --includedir | --includedi | --included | --include \
6890 - | --includ | --inclu | --incl | --inc)
6891 - ac_prev=includedir ;;
6892 - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
6893 - | --includ=* | --inclu=* | --incl=* | --inc=*)
6894 - includedir=$ac_optarg ;;
6896 - -infodir | --infodir | --infodi | --infod | --info | --inf)
6897 - ac_prev=infodir ;;
6898 - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
6899 - infodir=$ac_optarg ;;
6901 - -libdir | --libdir | --libdi | --libd)
6903 - -libdir=* | --libdir=* | --libdi=* | --libd=*)
6904 - libdir=$ac_optarg ;;
6906 - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
6907 - | --libexe | --libex | --libe)
6908 - ac_prev=libexecdir ;;
6909 - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
6910 - | --libexe=* | --libex=* | --libe=*)
6911 - libexecdir=$ac_optarg ;;
6913 - -localstatedir | --localstatedir | --localstatedi | --localstated \
6914 - | --localstate | --localstat | --localsta | --localst \
6915 - | --locals | --local | --loca | --loc | --lo)
6916 - ac_prev=localstatedir ;;
6917 - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
6918 - | --localstate=* | --localstat=* | --localsta=* | --localst=* \
6919 - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
6920 - localstatedir=$ac_optarg ;;
6922 - -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
6924 - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
6925 - mandir=$ac_optarg ;;
6927 - -nfp | --nfp | --nf)
6928 - # Obsolete; use --without-fp.
6931 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
6932 - | --no-cr | --no-c | -n)
6935 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
6936 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
6937 - no_recursion=yes ;;
6939 - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
6940 - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
6941 - | --oldin | --oldi | --old | --ol | --o)
6942 - ac_prev=oldincludedir ;;
6943 - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
6944 - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
6945 - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
6946 - oldincludedir=$ac_optarg ;;
6948 - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
6950 - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
6951 - prefix=$ac_optarg ;;
6953 - -program-prefix | --program-prefix | --program-prefi | --program-pref \
6954 - | --program-pre | --program-pr | --program-p)
6955 - ac_prev=program_prefix ;;
6956 - -program-prefix=* | --program-prefix=* | --program-prefi=* \
6957 - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
6958 - program_prefix=$ac_optarg ;;
6960 - -program-suffix | --program-suffix | --program-suffi | --program-suff \
6961 - | --program-suf | --program-su | --program-s)
6962 - ac_prev=program_suffix ;;
6963 - -program-suffix=* | --program-suffix=* | --program-suffi=* \
6964 - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
6965 - program_suffix=$ac_optarg ;;
6967 - -program-transform-name | --program-transform-name \
6968 - | --program-transform-nam | --program-transform-na \
6969 - | --program-transform-n | --program-transform- \
6970 - | --program-transform | --program-transfor \
6971 - | --program-transfo | --program-transf \
6972 - | --program-trans | --program-tran \
6973 - | --progr-tra | --program-tr | --program-t)
6974 - ac_prev=program_transform_name ;;
6975 - -program-transform-name=* | --program-transform-name=* \
6976 - | --program-transform-nam=* | --program-transform-na=* \
6977 - | --program-transform-n=* | --program-transform-=* \
6978 - | --program-transform=* | --program-transfor=* \
6979 - | --program-transfo=* | --program-transf=* \
6980 - | --program-trans=* | --program-tran=* \
6981 - | --progr-tra=* | --program-tr=* | --program-t=*)
6982 - program_transform_name=$ac_optarg ;;
6984 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
6985 - | -silent | --silent | --silen | --sile | --sil)
6988 - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
6989 - ac_prev=sbindir ;;
6990 - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
6991 - | --sbi=* | --sb=*)
6992 - sbindir=$ac_optarg ;;
6994 - -sharedstatedir | --sharedstatedir | --sharedstatedi \
6995 - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
6996 - | --sharedst | --shareds | --shared | --share | --shar \
6998 - ac_prev=sharedstatedir ;;
6999 - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
7000 - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
7001 - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
7002 - | --sha=* | --sh=*)
7003 - sharedstatedir=$ac_optarg ;;
7005 - -site | --site | --sit)
7007 - -site=* | --site=* | --sit=*)
7008 - site=$ac_optarg ;;
7010 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
7012 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
7013 - srcdir=$ac_optarg ;;
7015 - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
7016 - | --syscon | --sysco | --sysc | --sys | --sy)
7017 - ac_prev=sysconfdir ;;
7018 - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
7019 - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
7020 - sysconfdir=$ac_optarg ;;
7022 - -target | --target | --targe | --targ | --tar | --ta | --t)
7023 - ac_prev=target_alias ;;
7024 - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
7025 - target_alias=$ac_optarg ;;
7027 - -v | -verbose | --verbose | --verbos | --verbo | --verb)
7030 - -version | --version | --versio | --versi | --vers | -V)
7031 - ac_init_version=: ;;
7033 - -with-* | --with-*)
7034 - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
7035 - # Reject names that are not valid shell variable names.
7036 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7037 - { echo "$as_me: error: invalid package name: $ac_package" >&2
7038 - { (exit 1); exit 1; }; }
7039 - ac_package=`echo $ac_package| sed 's/-/_/g'`
7040 - case $ac_option in
7041 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
7042 - *) ac_optarg=yes ;;
7044 - eval "with_$ac_package='$ac_optarg'" ;;
7046 - -without-* | --without-*)
7047 - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
7048 - # Reject names that are not valid shell variable names.
7049 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
7050 - { echo "$as_me: error: invalid package name: $ac_package" >&2
7051 - { (exit 1); exit 1; }; }
7052 - ac_package=`echo $ac_package | sed 's/-/_/g'`
7053 - eval "with_$ac_package=no" ;;
7056 - # Obsolete; use --with-x.
7059 - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
7060 - | --x-incl | --x-inc | --x-in | --x-i)
7061 - ac_prev=x_includes ;;
7062 - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
7063 - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
7064 - x_includes=$ac_optarg ;;
7066 - -x-libraries | --x-libraries | --x-librarie | --x-librari \
7067 - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
7068 - ac_prev=x_libraries ;;
7069 - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
7070 - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
7071 - x_libraries=$ac_optarg ;;
7073 - -*) { echo "$as_me: error: unrecognized option: $ac_option
7074 -Try \`$0 --help' for more information." >&2
7075 - { (exit 1); exit 1; }; }
7079 - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
7080 - # Reject names that are not valid shell variable names.
7081 - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
7082 - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
7083 - { (exit 1); exit 1; }; }
7084 - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
7085 - eval "$ac_envvar='$ac_optarg'"
7086 - export $ac_envvar ;;
7089 - # FIXME: should be removed in autoconf 3.0.
7090 - echo "$as_me: WARNING: you should use --build, --host, --target" >&2
7091 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
7092 - echo "$as_me: WARNING: invalid host type: $ac_option" >&2
7093 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
7099 -if test -n "$ac_prev"; then
7100 - ac_option=--`echo $ac_prev | sed 's/_/-/g'`
7101 - { echo "$as_me: error: missing argument to $ac_option" >&2
7102 - { (exit 1); exit 1; }; }
7105 -# Be sure to have absolute paths.
7106 -for ac_var in exec_prefix prefix
7108 - eval ac_val=$`echo $ac_var`
7110 - [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
7111 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
7112 - { (exit 1); exit 1; }; };;
7116 -# Be sure to have absolute paths.
7117 -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
7118 - localstatedir libdir includedir oldincludedir infodir mandir
7120 - eval ac_val=$`echo $ac_var`
7122 - [\\/$]* | ?:[\\/]* ) ;;
7123 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
7124 - { (exit 1); exit 1; }; };;
7128 -# There might be people who depend on the old broken behavior: `$host'
7129 -# used to hold the argument of --host etc.
7130 -# FIXME: To remove some day.
7133 -target=$target_alias
7135 -# FIXME: To remove some day.
7136 -if test "x$host_alias" != x; then
7137 - if test "x$build_alias" = x; then
7138 - cross_compiling=maybe
7139 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
7140 - If a cross compiler is detected then cross compile mode will be used." >&2
7141 - elif test "x$build_alias" != "x$host_alias"; then
7142 - cross_compiling=yes
7147 -test -n "$host_alias" && ac_tool_prefix=$host_alias-
7149 -test "$silent" = yes && exec 6>/dev/null
7152 -# Find the source files, if location was not specified.
7153 -if test -z "$srcdir"; then
7154 - ac_srcdir_defaulted=yes
7155 - # Try the directory containing this script, then its parent.
7156 - ac_confdir=`(dirname "$0") 2>/dev/null ||
7157 -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
7158 - X"$0" : 'X\(//\)[^/]' \| \
7159 - X"$0" : 'X\(//\)$' \| \
7160 - X"$0" : 'X\(/\)' \| \
7161 - . : '\(.\)' 2>/dev/null ||
7163 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
7164 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
7165 - /^X\(\/\/\)$/{ s//\1/; q; }
7166 - /^X\(\/\).*/{ s//\1/; q; }
7168 - srcdir=$ac_confdir
7169 - if test ! -r $srcdir/$ac_unique_file; then
7173 - ac_srcdir_defaulted=no
7175 -if test ! -r $srcdir/$ac_unique_file; then
7176 - if test "$ac_srcdir_defaulted" = yes; then
7177 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
7178 - { (exit 1); exit 1; }; }
7180 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
7181 - { (exit 1); exit 1; }; }
7184 -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
7185 - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
7186 - { (exit 1); exit 1; }; }
7187 -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
7188 -ac_env_build_alias_set=${build_alias+set}
7189 -ac_env_build_alias_value=$build_alias
7190 -ac_cv_env_build_alias_set=${build_alias+set}
7191 -ac_cv_env_build_alias_value=$build_alias
7192 -ac_env_host_alias_set=${host_alias+set}
7193 -ac_env_host_alias_value=$host_alias
7194 -ac_cv_env_host_alias_set=${host_alias+set}
7195 -ac_cv_env_host_alias_value=$host_alias
7196 -ac_env_target_alias_set=${target_alias+set}
7197 -ac_env_target_alias_value=$target_alias
7198 -ac_cv_env_target_alias_set=${target_alias+set}
7199 -ac_cv_env_target_alias_value=$target_alias
7200 -ac_env_CC_set=${CC+set}
7201 -ac_env_CC_value=$CC
7202 -ac_cv_env_CC_set=${CC+set}
7203 -ac_cv_env_CC_value=$CC
7204 -ac_env_CFLAGS_set=${CFLAGS+set}
7205 -ac_env_CFLAGS_value=$CFLAGS
7206 -ac_cv_env_CFLAGS_set=${CFLAGS+set}
7207 -ac_cv_env_CFLAGS_value=$CFLAGS
7208 -ac_env_LDFLAGS_set=${LDFLAGS+set}
7209 -ac_env_LDFLAGS_value=$LDFLAGS
7210 -ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
7211 -ac_cv_env_LDFLAGS_value=$LDFLAGS
7212 -ac_env_CPPFLAGS_set=${CPPFLAGS+set}
7213 -ac_env_CPPFLAGS_value=$CPPFLAGS
7214 -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
7215 -ac_cv_env_CPPFLAGS_value=$CPPFLAGS
7216 -ac_env_CPP_set=${CPP+set}
7217 -ac_env_CPP_value=$CPP
7218 -ac_cv_env_CPP_set=${CPP+set}
7219 -ac_cv_env_CPP_value=$CPP
7222 -# Report the --help message.
7224 -if test "$ac_init_help" = "long"; then
7225 - # Omit some internal or obsolete options to make the list less imposing.
7226 - # This message is too long to be a string in the A/UX 3.1 sh.
7228 -\`configure' configures this package to adapt to many kinds of systems.
7230 -Usage: $0 [OPTION]... [VAR=VALUE]...
7232 -To assign environment variables (e.g., CC, CFLAGS...), specify them as
7233 -VAR=VALUE. See below for descriptions of some of the useful variables.
7235 -Defaults for the options are specified in brackets.
7238 - -h, --help display this help and exit
7239 - --help=short display options specific to this package
7240 - --help=recursive display the short help of all the included packages
7241 - -V, --version display version information and exit
7242 - -q, --quiet, --silent do not print \`checking...' messages
7243 - --cache-file=FILE cache test results in FILE [disabled]
7244 - -C, --config-cache alias for \`--cache-file=config.cache'
7245 - -n, --no-create do not create output files
7246 - --srcdir=DIR find the sources in DIR [configure dir or \`..']
7251 -Installation directories:
7252 - --prefix=PREFIX install architecture-independent files in PREFIX
7253 - [$ac_default_prefix]
7254 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
7257 -By default, \`make install' will install all the files in
7258 -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
7259 -an installation prefix other than \`$ac_default_prefix' using \`--prefix',
7260 -for instance \`--prefix=\$HOME'.
7262 -For better control, use the options below.
7264 -Fine tuning of the installation directories:
7265 - --bindir=DIR user executables [EPREFIX/bin]
7266 - --sbindir=DIR system admin executables [EPREFIX/sbin]
7267 - --libexecdir=DIR program executables [EPREFIX/libexec]
7268 - --datadir=DIR read-only architecture-independent data [PREFIX/share]
7269 - --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
7270 - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
7271 - --localstatedir=DIR modifiable single-machine data [PREFIX/var]
7272 - --libdir=DIR object code libraries [EPREFIX/lib]
7273 - --includedir=DIR C header files [PREFIX/include]
7274 - --oldincludedir=DIR C header files for non-gcc [/usr/include]
7275 - --infodir=DIR info documentation [PREFIX/info]
7276 - --mandir=DIR man documentation [PREFIX/man]
7282 - --program-prefix=PREFIX prepend PREFIX to installed program names
7283 - --program-suffix=SUFFIX append SUFFIX to installed program names
7284 - --program-transform-name=PROGRAM run sed PROGRAM on installed program names
7287 - --build=BUILD configure for building on BUILD [guessed]
7288 - --host=HOST cross-compile to build programs to run on HOST [BUILD]
7289 - --target=TARGET configure for building compilers for TARGET [HOST]
7293 -if test -n "$ac_init_help"; then
7298 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
7299 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
7300 - --enable-multilib build many library versions (default)
7301 - --enable-maintainer-mode enable make rules and dependencies not useful
7302 - (and sometimes confusing) to the casual installer
7303 - --enable-shared=PKGS build shared libraries default=yes
7304 - --enable-static=PKGS build static libraries default=yes
7305 - --enable-fast-install=PKGS optimize for fast installation default=yes
7306 - --disable-dependency-tracking Speeds up one-time builds
7307 - --enable-dependency-tracking Do not reject slow dependency extractors
7308 - --disable-libtool-lock avoid locking (might break parallel builds)
7309 - --enable-parallel-mark parallelize marking and free list construction
7310 - --enable-shared=PKGS build shared libraries default=no
7311 - --enable-full-debug include full support for pointer backtracing etc.
7314 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
7315 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
7316 - --with-gnu-ld assume the C compiler uses GNU ld default=no
7317 - --with-pic try to use only PIC/non-PIC objects default=use both
7318 - --with-target-subdir=SUBDIR
7319 - configuring with a cross compiler
7320 - --with-cross-host=HOST configuring with a cross compiler
7321 - --with-ecos enable runtime eCos target support
7323 -Some influential environment variables:
7324 - CC C compiler command
7325 - CFLAGS C compiler flags
7326 - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
7327 - nonstandard directory <lib dir>
7328 - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
7329 - headers in a nonstandard directory <include dir>
7330 - CPP C preprocessor
7332 -Use these variables to override the choices made by `configure' or to help
7333 -it to find libraries and programs with nonstandard names/locations.
7338 -if test "$ac_init_help" = "recursive"; then
7339 - # If there are subdirs, report their specific --help.
7341 - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
7342 - test -d $ac_dir || continue
7345 -if test "$ac_dir" != .; then
7346 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
7347 - # A "../" for each directory in $ac_dir_suffix.
7348 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
7350 - ac_dir_suffix= ac_top_builddir=
7354 - .) # No --srcdir option. We are building in place.
7356 - if test -z "$ac_top_builddir"; then
7359 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
7361 - [\\/]* | ?:[\\/]* ) # Absolute path.
7362 - ac_srcdir=$srcdir$ac_dir_suffix;
7363 - ac_top_srcdir=$srcdir ;;
7364 - *) # Relative path.
7365 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
7366 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
7368 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
7370 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
7371 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
7372 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
7373 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
7376 - # Check for guested configure; otherwise get Cygnus style configure.
7377 - if test -f $ac_srcdir/configure.gnu; then
7379 - $SHELL $ac_srcdir/configure.gnu --help=recursive
7380 - elif test -f $ac_srcdir/configure; then
7382 - $SHELL $ac_srcdir/configure --help=recursive
7383 - elif test -f $ac_srcdir/configure.ac ||
7384 - test -f $ac_srcdir/configure.in; then
7386 - $ac_configure --help
7388 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
7394 -test -n "$ac_init_help" && exit 0
7395 -if $ac_init_version; then
7398 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
7399 -Free Software Foundation, Inc.
7400 -This configure script is free software; the Free Software Foundation
7401 -gives unlimited permission to copy, distribute and modify it.
7407 -This file contains any messages produced by compilers while
7408 -running configure, to aid debugging if configure makes a mistake.
7410 -It was created by $as_me, which was
7411 -generated by GNU Autoconf 2.54. Invocation command line was
7418 -@%:@@%:@ --------- @%:@@%:@
7419 -@%:@@%:@ Platform. @%:@@%:@
7420 -@%:@@%:@ --------- @%:@@%:@
7422 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
7423 -uname -m = `(uname -m) 2>/dev/null || echo unknown`
7424 -uname -r = `(uname -r) 2>/dev/null || echo unknown`
7425 -uname -s = `(uname -s) 2>/dev/null || echo unknown`
7426 -uname -v = `(uname -v) 2>/dev/null || echo unknown`
7428 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
7429 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
7431 -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
7432 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
7433 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
7434 -hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
7435 -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
7436 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
7437 -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
7441 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7442 -for as_dir in $PATH
7445 - test -z "$as_dir" && as_dir=.
7446 - echo "PATH: $as_dir"
7454 -@%:@@%:@ ----------- @%:@@%:@
7455 -@%:@@%:@ Core tests. @%:@@%:@
7456 -@%:@@%:@ ----------- @%:@@%:@
7461 -# Keep a trace of the command line.
7462 -# Strip out --no-create and --no-recursion so they do not pile up.
7463 -# Also quote any args containing shell meta-characters.
7469 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
7470 - | --no-cr | --no-c | -n ) continue ;;
7471 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
7472 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
7474 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
7475 - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
7477 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
7478 - # Get rid of the leading space.
7482 -# When interrupted or exit'd, cleanup temporary files, and complete
7483 -# config.log. We remove comments because anyway the quotes in there
7484 -# would cause problems or look ugly.
7485 -# WARNING: Be sure not to use single quotes in there, as some shells,
7486 -# such as our DU 5.0 friend, will then `close' the trap.
7487 -trap 'exit_status=$?
7488 - # Save into config.log some information that might help in debugging.
7493 -@%:@@%:@ ---------------- @%:@@%:@
7494 -@%:@@%:@ Cache variables. @%:@@%:@
7495 -@%:@@%:@ ---------------- @%:@@%:@
7498 - # The following way of writing the cache mishandles newlines in values,
7501 - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
7504 - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
7505 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
7509 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
7516 -@%:@@%:@ ----------------- @%:@@%:@
7517 -@%:@@%:@ Output variables. @%:@@%:@
7518 -@%:@@%:@ ----------------- @%:@@%:@
7521 - for ac_var in $ac_subst_vars
7523 - eval ac_val=$`echo $ac_var`
7524 - echo "$ac_var='"'"'$ac_val'"'"'"
7528 - if test -n "$ac_subst_files"; then
7530 -@%:@@%:@ ------------- @%:@@%:@
7531 -@%:@@%:@ Output files. @%:@@%:@
7532 -@%:@@%:@ ------------- @%:@@%:@
7535 - for ac_var in $ac_subst_files
7537 - eval ac_val=$`echo $ac_var`
7538 - echo "$ac_var='"'"'$ac_val'"'"'"
7543 - if test -s confdefs.h; then
7545 -@%:@@%:@ ----------- @%:@@%:@
7546 -@%:@@%:@ confdefs.h. @%:@@%:@
7547 -@%:@@%:@ ----------- @%:@@%:@
7550 - sed "/^$/d" confdefs.h | sort
7553 - test "$ac_signal" != 0 &&
7554 - echo "$as_me: caught signal $ac_signal"
7555 - echo "$as_me: exit $exit_status"
7557 - rm -f core core.* *.core &&
7558 - rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
7561 -for ac_signal in 1 2 13 15; do
7562 - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
7566 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
7567 -rm -rf conftest* confdefs.h
7568 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
7571 -# Predefined preprocessor variables.
7573 -cat >>confdefs.h <<_ACEOF
7574 -@%:@define PACKAGE_NAME "$PACKAGE_NAME"
7578 -cat >>confdefs.h <<_ACEOF
7579 -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
7583 -cat >>confdefs.h <<_ACEOF
7584 -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
7588 -cat >>confdefs.h <<_ACEOF
7589 -@%:@define PACKAGE_STRING "$PACKAGE_STRING"
7593 -cat >>confdefs.h <<_ACEOF
7594 -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
7598 -# Let the site file select an alternate cache file if it wants to.
7599 -# Prefer explicitly selected file to automatically selected ones.
7600 -if test -z "$CONFIG_SITE"; then
7601 - if test "x$prefix" != xNONE; then
7602 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
7604 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
7607 -for ac_site_file in $CONFIG_SITE; do
7608 - if test -r "$ac_site_file"; then
7609 - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
7610 -echo "$as_me: loading site script $ac_site_file" >&6;}
7611 - sed 's/^/| /' "$ac_site_file" >&5
7616 -if test -r "$cache_file"; then
7617 - # Some versions of bash will fail to source /dev/null (special
7618 - # files actually), so we avoid doing that.
7619 - if test -f "$cache_file"; then
7620 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
7621 -echo "$as_me: loading cache $cache_file" >&6;}
7622 - case $cache_file in
7623 - [\\/]* | ?:[\\/]* ) . $cache_file;;
7624 - *) . ./$cache_file;;
7628 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
7629 -echo "$as_me: creating cache $cache_file" >&6;}
7633 -# Check that the precious variables saved in the cache have kept the same
7635 -ac_cache_corrupted=false
7636 -for ac_var in `(set) 2>&1 |
7637 - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
7638 - eval ac_old_set=\$ac_cv_env_${ac_var}_set
7639 - eval ac_new_set=\$ac_env_${ac_var}_set
7640 - eval ac_old_val="\$ac_cv_env_${ac_var}_value"
7641 - eval ac_new_val="\$ac_env_${ac_var}_value"
7642 - case $ac_old_set,$ac_new_set in
7644 - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
7645 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
7646 - ac_cache_corrupted=: ;;
7648 - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
7649 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
7650 - ac_cache_corrupted=: ;;
7653 - if test "x$ac_old_val" != "x$ac_new_val"; then
7654 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
7655 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
7656 - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
7657 -echo "$as_me: former value: $ac_old_val" >&2;}
7658 - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
7659 -echo "$as_me: current value: $ac_new_val" >&2;}
7660 - ac_cache_corrupted=:
7663 - # Pass precious variables to config.status.
7664 - if test "$ac_new_set" = set; then
7665 - case $ac_new_val in
7666 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
7667 - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
7668 - *) ac_arg=$ac_var=$ac_new_val ;;
7670 - case " $ac_configure_args " in
7671 - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
7672 - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
7676 -if $ac_cache_corrupted; then
7677 - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
7678 -echo "$as_me: error: changes in the environment can compromise the build" >&2;}
7679 - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
7680 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
7681 - { (exit 1); exit 1; }; }
7685 -ac_cpp='$CPP $CPPFLAGS'
7686 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7687 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
7688 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
7709 -# This works around the fact that libtool configuration may change LD
7710 -# for this particular configuration, but some shells, instead of
7711 -# keeping the changes in LD private, export them just because LD is
7713 -ORIGINAL_LD_FOR_MULTILIBS=$LD
7716 -for ac_dir in . $srcdir/.; do
7717 - if test -f $ac_dir/install-sh; then
7718 - ac_aux_dir=$ac_dir
7719 - ac_install_sh="$ac_aux_dir/install-sh -c"
7721 - elif test -f $ac_dir/install.sh; then
7722 - ac_aux_dir=$ac_dir
7723 - ac_install_sh="$ac_aux_dir/install.sh -c"
7725 - elif test -f $ac_dir/shtool; then
7726 - ac_aux_dir=$ac_dir
7727 - ac_install_sh="$ac_aux_dir/shtool install -c"
7731 -if test -z "$ac_aux_dir"; then
7732 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . $srcdir/." >&5
7733 -echo "$as_me: error: cannot find install-sh or install.sh in . $srcdir/." >&2;}
7734 - { (exit 1); exit 1; }; }
7736 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
7737 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
7738 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
7741 -# Make sure we can run config.sub.
7742 -$ac_config_sub sun4 >/dev/null 2>&1 ||
7743 - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
7744 -echo "$as_me: error: cannot run $ac_config_sub" >&2;}
7745 - { (exit 1); exit 1; }; }
7747 -echo "$as_me:$LINENO: checking build system type" >&5
7748 -echo $ECHO_N "checking build system type... $ECHO_C" >&6
7749 -if test "${ac_cv_build+set}" = set; then
7750 - echo $ECHO_N "(cached) $ECHO_C" >&6
7752 - ac_cv_build_alias=$build_alias
7753 -test -z "$ac_cv_build_alias" &&
7754 - ac_cv_build_alias=`$ac_config_guess`
7755 -test -z "$ac_cv_build_alias" &&
7756 - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
7757 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
7758 - { (exit 1); exit 1; }; }
7759 -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
7760 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
7761 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
7762 - { (exit 1); exit 1; }; }
7765 -echo "$as_me:$LINENO: result: $ac_cv_build" >&5
7766 -echo "${ECHO_T}$ac_cv_build" >&6
7768 -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
7769 -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
7770 -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
7773 -echo "$as_me:$LINENO: checking host system type" >&5
7774 -echo $ECHO_N "checking host system type... $ECHO_C" >&6
7775 -if test "${ac_cv_host+set}" = set; then
7776 - echo $ECHO_N "(cached) $ECHO_C" >&6
7778 - ac_cv_host_alias=$host_alias
7779 -test -z "$ac_cv_host_alias" &&
7780 - ac_cv_host_alias=$ac_cv_build_alias
7781 -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
7782 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
7783 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
7784 - { (exit 1); exit 1; }; }
7787 -echo "$as_me:$LINENO: result: $ac_cv_host" >&5
7788 -echo "${ECHO_T}$ac_cv_host" >&6
7790 -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
7791 -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
7792 -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
7795 -am__api_version="1.6"
7796 -# Find a good install program. We prefer a C program (faster),
7797 -# so one script is as good as another. But avoid the broken or
7798 -# incompatible versions:
7799 -# SysV /etc/install, /usr/sbin/install
7800 -# SunOS /usr/etc/install
7801 -# IRIX /sbin/install
7803 -# AmigaOS /C/install, which installs bootblocks on floppy discs
7804 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
7805 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
7806 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
7807 -# ./install, which can be erroneously created by make from ./install.sh.
7808 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
7809 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
7810 -if test -z "$INSTALL"; then
7811 -if test "${ac_cv_path_install+set}" = set; then
7812 - echo $ECHO_N "(cached) $ECHO_C" >&6
7814 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7815 -for as_dir in $PATH
7818 - test -z "$as_dir" && as_dir=.
7819 - # Account for people who put trailing slashes in PATH elements.
7821 - ./ | .// | /cC/* | \
7822 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
7825 - # OSF1 and SCO ODT 3.0 have their own names for install.
7826 - # Don't use installbsd from OSF since it installs stuff as root
7828 - for ac_prog in ginstall scoinst install; do
7829 - for ac_exec_ext in '' $ac_executable_extensions; do
7830 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
7831 - if test $ac_prog = install &&
7832 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
7833 - # AIX install. It has an incompatible calling convention.
7835 - elif test $ac_prog = install &&
7836 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
7837 - # program-specific install script used by HP pwplus--don't use.
7840 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
7852 - if test "${ac_cv_path_install+set}" = set; then
7853 - INSTALL=$ac_cv_path_install
7855 - # As a last resort, use the slow shell script. We don't cache a
7856 - # path for INSTALL within a source directory, because that will
7857 - # break other packages using the cache if that directory is
7858 - # removed, or if the path is relative.
7859 - INSTALL=$ac_install_sh
7862 -echo "$as_me:$LINENO: result: $INSTALL" >&5
7863 -echo "${ECHO_T}$INSTALL" >&6
7865 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
7866 -# It thinks the first close brace ends the variable substitution.
7867 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
7869 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
7871 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
7873 -echo "$as_me:$LINENO: checking whether build environment is sane" >&5
7874 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
7877 -echo timestamp > conftest.file
7878 -# Do `set' in a subshell so we don't clobber the current shell's
7879 -# arguments. Must try -L first in case configure is actually a
7880 -# symlink; some systems play weird games with the mod time of symlinks
7881 -# (eg FreeBSD returns the mod time of the symlink's containing
7884 - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
7885 - if test "$*" = "X"; then
7887 - set X `ls -t $srcdir/configure conftest.file`
7889 - rm -f conftest.file
7890 - if test "$*" != "X $srcdir/configure conftest.file" \
7891 - && test "$*" != "X conftest.file $srcdir/configure"; then
7893 - # If neither matched, then we have a broken ls. This can happen
7894 - # if, for instance, CONFIG_SHELL is bash and it inherits a
7895 - # broken ls alias from the environment. This has actually
7896 - # happened. Such a system could not be considered "sane".
7897 - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
7898 -alias in your environment" >&5
7899 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
7900 -alias in your environment" >&2;}
7901 - { (exit 1); exit 1; }; }
7904 - test "$2" = conftest.file
7910 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
7911 -Check your system clock" >&5
7912 -echo "$as_me: error: newly created file is older than distributed files!
7913 -Check your system clock" >&2;}
7914 - { (exit 1); exit 1; }; }
7916 -echo "$as_me:$LINENO: result: yes" >&5
7917 -echo "${ECHO_T}yes" >&6
7918 -test "$program_prefix" != NONE &&
7919 - program_transform_name="s,^,$program_prefix,;$program_transform_name"
7920 -# Use a double $ so make ignores it.
7921 -test "$program_suffix" != NONE &&
7922 - program_transform_name="s,\$,$program_suffix,;$program_transform_name"
7923 -# Double any \ or $. echo might interpret backslashes.
7924 -# By default was `s,x,x', remove it if useless.
7925 -cat <<\_ACEOF >conftest.sed
7926 -s/[\\$]/&&/g;s/;s,x,x,$//
7928 -program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
7932 -# expand $ac_aux_dir to an absolute path
7933 -am_aux_dir=`cd $ac_aux_dir && pwd`
7935 -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
7936 -# Use eval to expand $SHELL
7937 -if eval "$MISSING --run true"; then
7938 - am_missing_run="$MISSING --run "
7941 - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
7942 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
7945 -for ac_prog in gawk mawk nawk awk
7947 - # Extract the first word of "$ac_prog", so it can be a program name with args.
7948 -set dummy $ac_prog; ac_word=$2
7949 -echo "$as_me:$LINENO: checking for $ac_word" >&5
7950 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
7951 -if test "${ac_cv_prog_AWK+set}" = set; then
7952 - echo $ECHO_N "(cached) $ECHO_C" >&6
7954 - if test -n "$AWK"; then
7955 - ac_cv_prog_AWK="$AWK" # Let the user override the test.
7957 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7958 -for as_dir in $PATH
7961 - test -z "$as_dir" && as_dir=.
7962 - for ac_exec_ext in '' $ac_executable_extensions; do
7963 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7964 - ac_cv_prog_AWK="$ac_prog"
7965 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
7973 -AWK=$ac_cv_prog_AWK
7974 -if test -n "$AWK"; then
7975 - echo "$as_me:$LINENO: result: $AWK" >&5
7976 -echo "${ECHO_T}$AWK" >&6
7978 - echo "$as_me:$LINENO: result: no" >&5
7979 -echo "${ECHO_T}no" >&6
7982 - test -n "$AWK" && break
7985 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
7986 -echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
7987 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
7988 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
7989 - echo $ECHO_N "(cached) $ECHO_C" >&6
7991 - cat >conftest.make <<\_ACEOF
7993 - @echo 'ac_maketemp="${MAKE}"'
7995 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
7996 -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
7997 -if test -n "$ac_maketemp"; then
7998 - eval ac_cv_prog_make_${ac_make}_set=yes
8000 - eval ac_cv_prog_make_${ac_make}_set=no
8002 -rm -f conftest.make
8004 -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
8005 - echo "$as_me:$LINENO: result: yes" >&5
8006 -echo "${ECHO_T}yes" >&6
8009 - echo "$as_me:$LINENO: result: no" >&5
8010 -echo "${ECHO_T}no" >&6
8011 - SET_MAKE="MAKE=${MAKE-make}"
8015 -# Check whether --enable-multilib or --disable-multilib was given.
8016 -if test "${enable_multilib+set}" = set; then
8017 - enableval="$enable_multilib"
8018 - case "${enableval}" in
8019 - yes) multilib=yes ;;
8020 - no) multilib=no ;;
8021 - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
8022 -echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
8023 - { (exit 1); exit 1; }; } ;;
8029 -if test "${srcdir}" = "."; then
8030 - if test "${with_target_subdir}" != "." -a -n "${with_target_subdir}"; then
8031 - gc_basedir="${srcdir}/${with_multisrctop}../."
8033 - gc_basedir="${srcdir}/${with_multisrctop}."
8036 - gc_basedir="${srcdir}/."
8040 -for ac_dir in $gc_basedir/.. $srcdir/$gc_basedir/..; do
8041 - if test -f $ac_dir/install-sh; then
8042 - ac_aux_dir=$ac_dir
8043 - ac_install_sh="$ac_aux_dir/install-sh -c"
8045 - elif test -f $ac_dir/install.sh; then
8046 - ac_aux_dir=$ac_dir
8047 - ac_install_sh="$ac_aux_dir/install.sh -c"
8049 - elif test -f $ac_dir/shtool; then
8050 - ac_aux_dir=$ac_dir
8051 - ac_install_sh="$ac_aux_dir/shtool install -c"
8055 -if test -z "$ac_aux_dir"; then
8056 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&5
8057 -echo "$as_me: error: cannot find install-sh or install.sh in $gc_basedir/.. $srcdir/$gc_basedir/.." >&2;}
8058 - { (exit 1); exit 1; }; }
8060 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
8061 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
8062 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
8065 - # This overrides the previous occurrence for automake, but not for
8066 - # autoconf, which is exactly what we want.
8068 -for ac_dir in .. $srcdir/..; do
8069 - if test -f $ac_dir/install-sh; then
8070 - ac_aux_dir=$ac_dir
8071 - ac_install_sh="$ac_aux_dir/install-sh -c"
8073 - elif test -f $ac_dir/install.sh; then
8074 - ac_aux_dir=$ac_dir
8075 - ac_install_sh="$ac_aux_dir/install.sh -c"
8077 - elif test -f $ac_dir/shtool; then
8078 - ac_aux_dir=$ac_dir
8079 - ac_install_sh="$ac_aux_dir/shtool install -c"
8083 -if test -z "$ac_aux_dir"; then
8084 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in .. $srcdir/.." >&5
8085 -echo "$as_me: error: cannot find install-sh or install.sh in .. $srcdir/.." >&2;}
8086 - { (exit 1); exit 1; }; }
8088 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
8089 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
8090 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
8094 -echo "$as_me:$LINENO: checking target system type" >&5
8095 -echo $ECHO_N "checking target system type... $ECHO_C" >&6
8096 -if test "${ac_cv_target+set}" = set; then
8097 - echo $ECHO_N "(cached) $ECHO_C" >&6
8099 - ac_cv_target_alias=$target_alias
8100 -test "x$ac_cv_target_alias" = "x" &&
8101 - ac_cv_target_alias=$ac_cv_host_alias
8102 -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
8103 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
8104 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
8105 - { (exit 1); exit 1; }; }
8108 -echo "$as_me:$LINENO: result: $ac_cv_target" >&5
8109 -echo "${ECHO_T}$ac_cv_target" >&6
8110 -target=$ac_cv_target
8111 -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
8112 -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
8113 -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
8116 -# The aliases save the names the user supplied, while $host etc.
8117 -# will get canonicalized.
8118 -test -n "$target_alias" &&
8119 - test "$program_prefix$program_suffix$program_transform_name" = \
8121 - program_prefix=${target_alias}-
8123 -# This works around an automake problem.
8124 -mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
8127 - # test to see if srcdir already configured
8128 -if test "`cd $srcdir && pwd`" != "`pwd`" &&
8129 - test -f $srcdir/config.status; then
8130 - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
8131 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
8132 - { (exit 1); exit 1; }; }
8135 -# Define the identity of the package.
8140 -# Some tools Automake needs.
8142 -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
8145 -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
8148 -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
8151 -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
8154 -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
8157 -AMTAR=${AMTAR-"${am_missing_run}tar"}
8159 -install_sh=${install_sh-"$am_aux_dir/install-sh"}
8161 -# Installed binaries are usually stripped using `strip' when the user
8162 -# run `make install-strip'. However `strip' might not be the right
8163 -# tool to use in cross-compilation environments, therefore Automake
8164 -# will honor the `STRIP' environment variable to overrule this program.
8165 -if test "$cross_compiling" != no; then
8166 - if test -n "$ac_tool_prefix"; then
8167 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
8168 -set dummy ${ac_tool_prefix}strip; ac_word=$2
8169 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8170 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8171 -if test "${ac_cv_prog_STRIP+set}" = set; then
8172 - echo $ECHO_N "(cached) $ECHO_C" >&6
8174 - if test -n "$STRIP"; then
8175 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
8177 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8178 -for as_dir in $PATH
8181 - test -z "$as_dir" && as_dir=.
8182 - for ac_exec_ext in '' $ac_executable_extensions; do
8183 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8184 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
8185 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8193 -STRIP=$ac_cv_prog_STRIP
8194 -if test -n "$STRIP"; then
8195 - echo "$as_me:$LINENO: result: $STRIP" >&5
8196 -echo "${ECHO_T}$STRIP" >&6
8198 - echo "$as_me:$LINENO: result: no" >&5
8199 -echo "${ECHO_T}no" >&6
8203 -if test -z "$ac_cv_prog_STRIP"; then
8204 - ac_ct_STRIP=$STRIP
8205 - # Extract the first word of "strip", so it can be a program name with args.
8206 -set dummy strip; ac_word=$2
8207 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8208 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8209 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
8210 - echo $ECHO_N "(cached) $ECHO_C" >&6
8212 - if test -n "$ac_ct_STRIP"; then
8213 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
8215 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8216 -for as_dir in $PATH
8219 - test -z "$as_dir" && as_dir=.
8220 - for ac_exec_ext in '' $ac_executable_extensions; do
8221 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8222 - ac_cv_prog_ac_ct_STRIP="strip"
8223 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8229 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
8232 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
8233 -if test -n "$ac_ct_STRIP"; then
8234 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
8235 -echo "${ECHO_T}$ac_ct_STRIP" >&6
8237 - echo "$as_me:$LINENO: result: no" >&5
8238 -echo "${ECHO_T}no" >&6
8241 - STRIP=$ac_ct_STRIP
8243 - STRIP="$ac_cv_prog_STRIP"
8247 -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
8249 -# We need awk for the "check" target. The system "awk" is bad on
8255 -# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't
8256 -# run it explicitly here, it will be run implicitly before
8257 -# NEWLIB_CONFIGURE, which doesn't work because that means that it will
8258 -# be run before AC_CANONICAL_HOST.
8261 -if test -n "$ac_tool_prefix"; then
8262 - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
8263 -set dummy ${ac_tool_prefix}as; ac_word=$2
8264 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8265 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8266 -if test "${ac_cv_prog_AS+set}" = set; then
8267 - echo $ECHO_N "(cached) $ECHO_C" >&6
8269 - if test -n "$AS"; then
8270 - ac_cv_prog_AS="$AS" # Let the user override the test.
8272 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8273 -for as_dir in $PATH
8276 - test -z "$as_dir" && as_dir=.
8277 - for ac_exec_ext in '' $ac_executable_extensions; do
8278 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8279 - ac_cv_prog_AS="${ac_tool_prefix}as"
8280 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8289 -if test -n "$AS"; then
8290 - echo "$as_me:$LINENO: result: $AS" >&5
8291 -echo "${ECHO_T}$AS" >&6
8293 - echo "$as_me:$LINENO: result: no" >&5
8294 -echo "${ECHO_T}no" >&6
8298 -if test -z "$ac_cv_prog_AS"; then
8300 - # Extract the first word of "as", so it can be a program name with args.
8301 -set dummy as; ac_word=$2
8302 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8303 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8304 -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
8305 - echo $ECHO_N "(cached) $ECHO_C" >&6
8307 - if test -n "$ac_ct_AS"; then
8308 - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
8310 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8311 -for as_dir in $PATH
8314 - test -z "$as_dir" && as_dir=.
8315 - for ac_exec_ext in '' $ac_executable_extensions; do
8316 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8317 - ac_cv_prog_ac_ct_AS="as"
8318 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8326 -ac_ct_AS=$ac_cv_prog_ac_ct_AS
8327 -if test -n "$ac_ct_AS"; then
8328 - echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
8329 -echo "${ECHO_T}$ac_ct_AS" >&6
8331 - echo "$as_me:$LINENO: result: no" >&5
8332 -echo "${ECHO_T}no" >&6
8337 - AS="$ac_cv_prog_AS"
8340 -if test -n "$ac_tool_prefix"; then
8341 - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
8342 -set dummy ${ac_tool_prefix}ar; ac_word=$2
8343 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8344 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8345 -if test "${ac_cv_prog_AR+set}" = set; then
8346 - echo $ECHO_N "(cached) $ECHO_C" >&6
8348 - if test -n "$AR"; then
8349 - ac_cv_prog_AR="$AR" # Let the user override the test.
8351 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8352 -for as_dir in $PATH
8355 - test -z "$as_dir" && as_dir=.
8356 - for ac_exec_ext in '' $ac_executable_extensions; do
8357 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8358 - ac_cv_prog_AR="${ac_tool_prefix}ar"
8359 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8368 -if test -n "$AR"; then
8369 - echo "$as_me:$LINENO: result: $AR" >&5
8370 -echo "${ECHO_T}$AR" >&6
8372 - echo "$as_me:$LINENO: result: no" >&5
8373 -echo "${ECHO_T}no" >&6
8377 -if test -z "$ac_cv_prog_AR"; then
8379 - # Extract the first word of "ar", so it can be a program name with args.
8380 -set dummy ar; ac_word=$2
8381 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8382 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8383 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
8384 - echo $ECHO_N "(cached) $ECHO_C" >&6
8386 - if test -n "$ac_ct_AR"; then
8387 - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
8389 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8390 -for as_dir in $PATH
8393 - test -z "$as_dir" && as_dir=.
8394 - for ac_exec_ext in '' $ac_executable_extensions; do
8395 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8396 - ac_cv_prog_ac_ct_AR="ar"
8397 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8405 -ac_ct_AR=$ac_cv_prog_ac_ct_AR
8406 -if test -n "$ac_ct_AR"; then
8407 - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
8408 -echo "${ECHO_T}$ac_ct_AR" >&6
8410 - echo "$as_me:$LINENO: result: no" >&5
8411 -echo "${ECHO_T}no" >&6
8416 - AR="$ac_cv_prog_AR"
8419 -if test -n "$ac_tool_prefix"; then
8420 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
8421 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
8422 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8423 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8424 -if test "${ac_cv_prog_RANLIB+set}" = set; then
8425 - echo $ECHO_N "(cached) $ECHO_C" >&6
8427 - if test -n "$RANLIB"; then
8428 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
8430 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8431 -for as_dir in $PATH
8434 - test -z "$as_dir" && as_dir=.
8435 - for ac_exec_ext in '' $ac_executable_extensions; do
8436 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8437 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
8438 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8446 -RANLIB=$ac_cv_prog_RANLIB
8447 -if test -n "$RANLIB"; then
8448 - echo "$as_me:$LINENO: result: $RANLIB" >&5
8449 -echo "${ECHO_T}$RANLIB" >&6
8451 - echo "$as_me:$LINENO: result: no" >&5
8452 -echo "${ECHO_T}no" >&6
8456 -if test -z "$ac_cv_prog_RANLIB"; then
8457 - ac_ct_RANLIB=$RANLIB
8458 - # Extract the first word of "ranlib", so it can be a program name with args.
8459 -set dummy ranlib; ac_word=$2
8460 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8461 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8462 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
8463 - echo $ECHO_N "(cached) $ECHO_C" >&6
8465 - if test -n "$ac_ct_RANLIB"; then
8466 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
8468 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8469 -for as_dir in $PATH
8472 - test -z "$as_dir" && as_dir=.
8473 - for ac_exec_ext in '' $ac_executable_extensions; do
8474 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8475 - ac_cv_prog_ac_ct_RANLIB="ranlib"
8476 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8482 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
8485 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
8486 -if test -n "$ac_ct_RANLIB"; then
8487 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
8488 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
8490 - echo "$as_me:$LINENO: result: no" >&5
8491 -echo "${ECHO_T}no" >&6
8494 - RANLIB=$ac_ct_RANLIB
8496 - RANLIB="$ac_cv_prog_RANLIB"
8500 -# Find a good install program. We prefer a C program (faster),
8501 -# so one script is as good as another. But avoid the broken or
8502 -# incompatible versions:
8503 -# SysV /etc/install, /usr/sbin/install
8504 -# SunOS /usr/etc/install
8505 -# IRIX /sbin/install
8507 -# AmigaOS /C/install, which installs bootblocks on floppy discs
8508 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
8509 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
8510 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
8511 -# ./install, which can be erroneously created by make from ./install.sh.
8512 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
8513 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
8514 -if test -z "$INSTALL"; then
8515 -if test "${ac_cv_path_install+set}" = set; then
8516 - echo $ECHO_N "(cached) $ECHO_C" >&6
8518 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8519 -for as_dir in $PATH
8522 - test -z "$as_dir" && as_dir=.
8523 - # Account for people who put trailing slashes in PATH elements.
8525 - ./ | .// | /cC/* | \
8526 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
8529 - # OSF1 and SCO ODT 3.0 have their own names for install.
8530 - # Don't use installbsd from OSF since it installs stuff as root
8532 - for ac_prog in ginstall scoinst install; do
8533 - for ac_exec_ext in '' $ac_executable_extensions; do
8534 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
8535 - if test $ac_prog = install &&
8536 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8537 - # AIX install. It has an incompatible calling convention.
8539 - elif test $ac_prog = install &&
8540 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
8541 - # program-specific install script used by HP pwplus--don't use.
8544 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
8556 - if test "${ac_cv_path_install+set}" = set; then
8557 - INSTALL=$ac_cv_path_install
8559 - # As a last resort, use the slow shell script. We don't cache a
8560 - # path for INSTALL within a source directory, because that will
8561 - # break other packages using the cache if that directory is
8562 - # removed, or if the path is relative.
8563 - INSTALL=$ac_install_sh
8566 -echo "$as_me:$LINENO: result: $INSTALL" >&5
8567 -echo "${ECHO_T}$INSTALL" >&6
8569 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
8570 -# It thinks the first close brace ends the variable substitution.
8571 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
8573 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
8575 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
8578 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
8579 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
8580 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
8581 -if test "${enable_maintainer_mode+set}" = set; then
8582 - enableval="$enable_maintainer_mode"
8583 - USE_MAINTAINER_MODE=$enableval
8585 - USE_MAINTAINER_MODE=no
8587 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
8588 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
8591 -if test $USE_MAINTAINER_MODE = yes; then
8592 - MAINTAINER_MODE_TRUE=
8593 - MAINTAINER_MODE_FALSE='#'
8595 - MAINTAINER_MODE_TRUE='#'
8596 - MAINTAINER_MODE_FALSE=
8599 - MAINT=$MAINTAINER_MODE_TRUE
8603 -# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
8604 -# at least currently, we never actually build a program, so we never
8605 -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
8606 -# fails, because we are probably configuring with a cross compiler
8607 -# which can't create executables. So we include AC_EXEEXT to keep
8608 -# automake happy, but we don't execute it, since we don't care about
8611 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
8612 - # to nothing, so nothing would remain between `then' and `fi' if it
8613 - # were not for the `:' below.
8618 -. ${srcdir}/configure.host
8620 -case ${gc_basedir} in
8621 -/* | A-Za-z:/\\*) gc_flagbasedir=${gc_basedir} ;;
8622 -*) gc_flagbasedir='$(top_builddir)/'${gc_basedir} ;;
8625 -gc_cflags="${gc_cflags} -I"'$(top_builddir)'"/./targ-include -I${gc_flagbasedir}/libc/include"
8628 - gc_cflags="${gc_cflags} -I${gc_flagbasedir}/../winsup/include"
8633 -GC_CFLAGS=${gc_cflags}
8637 -# Check whether --enable-shared or --disable-shared was given.
8638 -if test "${enable_shared+set}" = set; then
8639 - enableval="$enable_shared"
8640 - p=${PACKAGE-default}
8642 -yes) enable_shared=yes ;;
8643 -no) enable_shared=no ;;
8646 - # Look at the argument we got. We use all the common list separators.
8647 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8648 - for pkg in $enableval; do
8649 - if test "X$pkg" = "X$p"; then
8653 - IFS="$ac_save_ifs"
8659 -# Check whether --enable-static or --disable-static was given.
8660 -if test "${enable_static+set}" = set; then
8661 - enableval="$enable_static"
8662 - p=${PACKAGE-default}
8664 -yes) enable_static=yes ;;
8665 -no) enable_static=no ;;
8668 - # Look at the argument we got. We use all the common list separators.
8669 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8670 - for pkg in $enableval; do
8671 - if test "X$pkg" = "X$p"; then
8675 - IFS="$ac_save_ifs"
8681 -# Check whether --enable-fast-install or --disable-fast-install was given.
8682 -if test "${enable_fast_install+set}" = set; then
8683 - enableval="$enable_fast_install"
8684 - p=${PACKAGE-default}
8686 -yes) enable_fast_install=yes ;;
8687 -no) enable_fast_install=no ;;
8689 - enable_fast_install=no
8690 - # Look at the argument we got. We use all the common list separators.
8691 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
8692 - for pkg in $enableval; do
8693 - if test "X$pkg" = "X$p"; then
8694 - enable_fast_install=yes
8697 - IFS="$ac_save_ifs"
8701 - enable_fast_install=yes
8703 -rm -f .deps 2>/dev/null
8704 -mkdir .deps 2>/dev/null
8705 -if test -d .deps; then
8708 - # MS-DOS does not allow filenames that begin with a dot.
8711 -rmdir .deps 2>/dev/null
8714 - ac_config_commands="$ac_config_commands depfiles"
8717 -am_make=${MAKE-make}
8718 -cat > confinc << 'END'
8722 -# If we don't find an include directive, just comment out the code.
8723 -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
8724 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
8728 -# First try GNU make style include.
8729 -echo "include confinc" > confmf
8730 -# We grep out `Entering directory' and `Leaving directory'
8731 -# messages which can occur if `w' ends up in MAKEFLAGS.
8732 -# In particular we don't look at `^make:' because GNU make might
8733 -# be invoked under some other name (usually "gmake"), in which
8734 -# case it prints its new name instead of `make'.
8735 -if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
8736 - am__include=include
8740 -# Now try BSD make style include.
8741 -if test "$am__include" = "#"; then
8742 - echo '.include "confinc"' > confmf
8743 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
8744 - am__include=.include
8751 -echo "$as_me:$LINENO: result: $_am_result" >&5
8752 -echo "${ECHO_T}$_am_result" >&6
8753 -rm -f confinc confmf
8755 -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
8756 -if test "${enable_dependency_tracking+set}" = set; then
8757 - enableval="$enable_dependency_tracking"
8760 -if test "x$enable_dependency_tracking" != xno; then
8761 - am_depcomp="$ac_aux_dir/depcomp"
8762 - AMDEPBACKSLASH='\'
8766 -if test "x$enable_dependency_tracking" != xno; then
8777 -ac_cpp='$CPP $CPPFLAGS'
8778 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
8779 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
8780 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
8781 -if test -n "$ac_tool_prefix"; then
8782 - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
8783 -set dummy ${ac_tool_prefix}gcc; ac_word=$2
8784 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8785 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8786 -if test "${ac_cv_prog_CC+set}" = set; then
8787 - echo $ECHO_N "(cached) $ECHO_C" >&6
8789 - if test -n "$CC"; then
8790 - ac_cv_prog_CC="$CC" # Let the user override the test.
8792 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8793 -for as_dir in $PATH
8796 - test -z "$as_dir" && as_dir=.
8797 - for ac_exec_ext in '' $ac_executable_extensions; do
8798 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8799 - ac_cv_prog_CC="${ac_tool_prefix}gcc"
8800 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8809 -if test -n "$CC"; then
8810 - echo "$as_me:$LINENO: result: $CC" >&5
8811 -echo "${ECHO_T}$CC" >&6
8813 - echo "$as_me:$LINENO: result: no" >&5
8814 -echo "${ECHO_T}no" >&6
8818 -if test -z "$ac_cv_prog_CC"; then
8820 - # Extract the first word of "gcc", so it can be a program name with args.
8821 -set dummy gcc; ac_word=$2
8822 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8823 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8824 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
8825 - echo $ECHO_N "(cached) $ECHO_C" >&6
8827 - if test -n "$ac_ct_CC"; then
8828 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
8830 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8831 -for as_dir in $PATH
8834 - test -z "$as_dir" && as_dir=.
8835 - for ac_exec_ext in '' $ac_executable_extensions; do
8836 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8837 - ac_cv_prog_ac_ct_CC="gcc"
8838 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8846 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
8847 -if test -n "$ac_ct_CC"; then
8848 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
8849 -echo "${ECHO_T}$ac_ct_CC" >&6
8851 - echo "$as_me:$LINENO: result: no" >&5
8852 -echo "${ECHO_T}no" >&6
8857 - CC="$ac_cv_prog_CC"
8860 -if test -z "$CC"; then
8861 - if test -n "$ac_tool_prefix"; then
8862 - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
8863 -set dummy ${ac_tool_prefix}cc; ac_word=$2
8864 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8865 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8866 -if test "${ac_cv_prog_CC+set}" = set; then
8867 - echo $ECHO_N "(cached) $ECHO_C" >&6
8869 - if test -n "$CC"; then
8870 - ac_cv_prog_CC="$CC" # Let the user override the test.
8872 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8873 -for as_dir in $PATH
8876 - test -z "$as_dir" && as_dir=.
8877 - for ac_exec_ext in '' $ac_executable_extensions; do
8878 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8879 - ac_cv_prog_CC="${ac_tool_prefix}cc"
8880 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8889 -if test -n "$CC"; then
8890 - echo "$as_me:$LINENO: result: $CC" >&5
8891 -echo "${ECHO_T}$CC" >&6
8893 - echo "$as_me:$LINENO: result: no" >&5
8894 -echo "${ECHO_T}no" >&6
8898 -if test -z "$ac_cv_prog_CC"; then
8900 - # Extract the first word of "cc", so it can be a program name with args.
8901 -set dummy cc; ac_word=$2
8902 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8903 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8904 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
8905 - echo $ECHO_N "(cached) $ECHO_C" >&6
8907 - if test -n "$ac_ct_CC"; then
8908 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
8910 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8911 -for as_dir in $PATH
8914 - test -z "$as_dir" && as_dir=.
8915 - for ac_exec_ext in '' $ac_executable_extensions; do
8916 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8917 - ac_cv_prog_ac_ct_CC="cc"
8918 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8926 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
8927 -if test -n "$ac_ct_CC"; then
8928 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
8929 -echo "${ECHO_T}$ac_ct_CC" >&6
8931 - echo "$as_me:$LINENO: result: no" >&5
8932 -echo "${ECHO_T}no" >&6
8937 - CC="$ac_cv_prog_CC"
8941 -if test -z "$CC"; then
8942 - # Extract the first word of "cc", so it can be a program name with args.
8943 -set dummy cc; ac_word=$2
8944 -echo "$as_me:$LINENO: checking for $ac_word" >&5
8945 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
8946 -if test "${ac_cv_prog_CC+set}" = set; then
8947 - echo $ECHO_N "(cached) $ECHO_C" >&6
8949 - if test -n "$CC"; then
8950 - ac_cv_prog_CC="$CC" # Let the user override the test.
8952 - ac_prog_rejected=no
8953 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8954 -for as_dir in $PATH
8957 - test -z "$as_dir" && as_dir=.
8958 - for ac_exec_ext in '' $ac_executable_extensions; do
8959 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8960 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
8961 - ac_prog_rejected=yes
8964 - ac_cv_prog_CC="cc"
8965 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
8971 -if test $ac_prog_rejected = yes; then
8972 - # We found a bogon in the path, so make sure we never use it.
8973 - set dummy $ac_cv_prog_CC
8975 - if test $@%:@ != 0; then
8976 - # We chose a different compiler from the bogus one.
8977 - # However, it has the same basename, so the bogon will be chosen
8978 - # first if we set CC to just the basename; use the full file name.
8980 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
8986 -if test -n "$CC"; then
8987 - echo "$as_me:$LINENO: result: $CC" >&5
8988 -echo "${ECHO_T}$CC" >&6
8990 - echo "$as_me:$LINENO: result: no" >&5
8991 -echo "${ECHO_T}no" >&6
8995 -if test -z "$CC"; then
8996 - if test -n "$ac_tool_prefix"; then
8999 - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
9000 -set dummy $ac_tool_prefix$ac_prog; ac_word=$2
9001 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9002 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9003 -if test "${ac_cv_prog_CC+set}" = set; then
9004 - echo $ECHO_N "(cached) $ECHO_C" >&6
9006 - if test -n "$CC"; then
9007 - ac_cv_prog_CC="$CC" # Let the user override the test.
9009 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9010 -for as_dir in $PATH
9013 - test -z "$as_dir" && as_dir=.
9014 - for ac_exec_ext in '' $ac_executable_extensions; do
9015 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9016 - ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
9017 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9026 -if test -n "$CC"; then
9027 - echo "$as_me:$LINENO: result: $CC" >&5
9028 -echo "${ECHO_T}$CC" >&6
9030 - echo "$as_me:$LINENO: result: no" >&5
9031 -echo "${ECHO_T}no" >&6
9034 - test -n "$CC" && break
9037 -if test -z "$CC"; then
9041 - # Extract the first word of "$ac_prog", so it can be a program name with args.
9042 -set dummy $ac_prog; ac_word=$2
9043 -echo "$as_me:$LINENO: checking for $ac_word" >&5
9044 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
9045 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
9046 - echo $ECHO_N "(cached) $ECHO_C" >&6
9048 - if test -n "$ac_ct_CC"; then
9049 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
9051 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9052 -for as_dir in $PATH
9055 - test -z "$as_dir" && as_dir=.
9056 - for ac_exec_ext in '' $ac_executable_extensions; do
9057 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9058 - ac_cv_prog_ac_ct_CC="$ac_prog"
9059 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
9067 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
9068 -if test -n "$ac_ct_CC"; then
9069 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
9070 -echo "${ECHO_T}$ac_ct_CC" >&6
9072 - echo "$as_me:$LINENO: result: no" >&5
9073 -echo "${ECHO_T}no" >&6
9076 - test -n "$ac_ct_CC" && break
9085 -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
9086 -echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
9087 - { (exit 1); exit 1; }; }
9089 -# Provide some information about the compiler.
9090 -echo "$as_me:$LINENO:" \
9091 - "checking for C compiler version" >&5
9092 -ac_compiler=`set X $ac_compile; echo $2`
9093 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
9094 - (eval $ac_compiler --version </dev/null >&5) 2>&5
9096 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9097 - (exit $ac_status); }
9098 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
9099 - (eval $ac_compiler -v </dev/null >&5) 2>&5
9101 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9102 - (exit $ac_status); }
9103 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
9104 - (eval $ac_compiler -V </dev/null >&5) 2>&5
9106 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9107 - (exit $ac_status); }
9109 -cat >conftest.$ac_ext <<_ACEOF
9110 -#line $LINENO "configure"
9111 -#include "confdefs.h"
9121 -ac_clean_files_save=$ac_clean_files
9122 -ac_clean_files="$ac_clean_files a.out a.exe"
9123 -# Try to create an executable without -o first, disregard a.out.
9124 -# It will help us diagnose broken compilers, and finding out an intuition
9126 -echo "$as_me:$LINENO: checking for C compiler default output" >&5
9127 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
9128 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
9129 -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
9130 - (eval $ac_link_default) 2>&5
9132 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9133 - (exit $ac_status); }; then
9134 - # Find the output, starting from the most likely. This scheme is
9135 -# not robust to junk in `.', hence go to wildcards (a.*) only as a last
9138 -# Be careful to initialize this variable, since it used to be cached.
9139 -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
9141 -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.*; do
9142 - test -f "$ac_file" || continue
9144 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
9145 - a.out ) # We found the default executable, but exeext='' is most
9146 - # certainly right.
9148 - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
9149 - # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
9150 - export ac_cv_exeext
9156 - echo "$as_me: failed program was:" >&5
9157 -cat conftest.$ac_ext >&5
9158 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
9159 -check \`config.log' for details." >&5
9160 -echo "$as_me: error: C compiler cannot create executables
9161 -check \`config.log' for details." >&2;}
9162 - { (exit 77); exit 77; }; }
9165 -ac_exeext=$ac_cv_exeext
9166 -echo "$as_me:$LINENO: result: $ac_file" >&5
9167 -echo "${ECHO_T}$ac_file" >&6
9169 -# Check the compiler produces executables we can run. If not, either
9170 -# the compiler is broken, or we cross compile.
9171 -echo "$as_me:$LINENO: checking whether the C compiler works" >&5
9172 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
9173 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
9174 -# If not cross compiling, check that we can run a simple program.
9175 -if test "$cross_compiling" != yes; then
9176 - if { ac_try='./$ac_file'
9177 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9178 - (eval $ac_try) 2>&5
9180 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9181 - (exit $ac_status); }; }; then
9182 - cross_compiling=no
9184 - if test "$cross_compiling" = maybe; then
9185 - cross_compiling=yes
9187 - { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
9188 -If you meant to cross compile, use \`--host'." >&5
9189 -echo "$as_me: error: cannot run C compiled programs.
9190 -If you meant to cross compile, use \`--host'." >&2;}
9191 - { (exit 1); exit 1; }; }
9195 -echo "$as_me:$LINENO: result: yes" >&5
9196 -echo "${ECHO_T}yes" >&6
9198 -rm -f a.out a.exe conftest$ac_cv_exeext
9199 -ac_clean_files=$ac_clean_files_save
9200 -# Check the compiler produces executables we can run. If not, either
9201 -# the compiler is broken, or we cross compile.
9202 -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
9203 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
9204 -echo "$as_me:$LINENO: result: $cross_compiling" >&5
9205 -echo "${ECHO_T}$cross_compiling" >&6
9207 -echo "$as_me:$LINENO: checking for suffix of executables" >&5
9208 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
9209 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9210 - (eval $ac_link) 2>&5
9212 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9213 - (exit $ac_status); }; then
9214 - # If both `conftest.exe' and `conftest' are `present' (well, observable)
9215 -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
9216 -# work properly (i.e., refer to `conftest.exe'), while it won't with
9218 -for ac_file in conftest.exe conftest conftest.*; do
9219 - test -f "$ac_file" || continue
9221 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
9222 - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
9223 - export ac_cv_exeext
9229 - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
9230 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
9231 - { (exit 1); exit 1; }; }
9234 -rm -f conftest$ac_cv_exeext
9235 -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
9236 -echo "${ECHO_T}$ac_cv_exeext" >&6
9238 -rm -f conftest.$ac_ext
9239 -EXEEXT=$ac_cv_exeext
9241 -echo "$as_me:$LINENO: checking for suffix of object files" >&5
9242 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
9243 -if test "${ac_cv_objext+set}" = set; then
9244 - echo $ECHO_N "(cached) $ECHO_C" >&6
9246 - cat >conftest.$ac_ext <<_ACEOF
9247 -#line $LINENO "configure"
9248 -#include "confdefs.h"
9258 -rm -f conftest.o conftest.obj
9259 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9260 - (eval $ac_compile) 2>&5
9262 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9263 - (exit $ac_status); }; then
9264 - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
9266 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
9267 - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
9272 - echo "$as_me: failed program was:" >&5
9273 -cat conftest.$ac_ext >&5
9274 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
9275 -echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
9276 - { (exit 1); exit 1; }; }
9279 -rm -f conftest.$ac_cv_objext conftest.$ac_ext
9281 -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
9282 -echo "${ECHO_T}$ac_cv_objext" >&6
9283 -OBJEXT=$ac_cv_objext
9285 -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
9286 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
9287 -if test "${ac_cv_c_compiler_gnu+set}" = set; then
9288 - echo $ECHO_N "(cached) $ECHO_C" >&6
9290 - cat >conftest.$ac_ext <<_ACEOF
9291 -#line $LINENO "configure"
9292 -#include "confdefs.h"
9305 -rm -f conftest.$ac_objext
9306 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9307 - (eval $ac_compile) 2>&5
9309 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9310 - (exit $ac_status); } &&
9311 - { ac_try='test -s conftest.$ac_objext'
9312 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9313 - (eval $ac_try) 2>&5
9315 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9316 - (exit $ac_status); }; }; then
9317 - ac_compiler_gnu=yes
9319 - echo "$as_me: failed program was:" >&5
9320 -cat conftest.$ac_ext >&5
9323 -rm -f conftest.$ac_objext conftest.$ac_ext
9324 -ac_cv_c_compiler_gnu=$ac_compiler_gnu
9327 -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
9328 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
9329 -GCC=`test $ac_compiler_gnu = yes && echo yes`
9330 -ac_test_CFLAGS=${CFLAGS+set}
9331 -ac_save_CFLAGS=$CFLAGS
9333 -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
9334 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
9335 -if test "${ac_cv_prog_cc_g+set}" = set; then
9336 - echo $ECHO_N "(cached) $ECHO_C" >&6
9338 - cat >conftest.$ac_ext <<_ACEOF
9339 -#line $LINENO "configure"
9340 -#include "confdefs.h"
9350 -rm -f conftest.$ac_objext
9351 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9352 - (eval $ac_compile) 2>&5
9354 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9355 - (exit $ac_status); } &&
9356 - { ac_try='test -s conftest.$ac_objext'
9357 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9358 - (eval $ac_try) 2>&5
9360 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9361 - (exit $ac_status); }; }; then
9362 - ac_cv_prog_cc_g=yes
9364 - echo "$as_me: failed program was:" >&5
9365 -cat conftest.$ac_ext >&5
9368 -rm -f conftest.$ac_objext conftest.$ac_ext
9370 -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
9371 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
9372 -if test "$ac_test_CFLAGS" = set; then
9373 - CFLAGS=$ac_save_CFLAGS
9374 -elif test $ac_cv_prog_cc_g = yes; then
9375 - if test "$GCC" = yes; then
9381 - if test "$GCC" = yes; then
9387 -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
9388 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
9389 -if test "${ac_cv_prog_cc_stdc+set}" = set; then
9390 - echo $ECHO_N "(cached) $ECHO_C" >&6
9392 - ac_cv_prog_cc_stdc=no
9394 -cat >conftest.$ac_ext <<_ACEOF
9395 -#line $LINENO "configure"
9396 -#include "confdefs.h"
9397 -#include <stdarg.h>
9399 -#include <sys/types.h>
9400 -#include <sys/stat.h>
9401 -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
9402 -struct buf { int x; };
9403 -FILE * (*rcsopen) (struct buf *, struct stat *, int);
9404 -static char *e (p, i)
9410 -static char *f (char * (*g) (char **, int), char **p, ...)
9415 - s = g (p, va_arg (v,int));
9419 -int test (int i, double x);
9420 -struct s1 {int (*f) (int a);};
9421 -struct s2 {int (*f) (double a);};
9422 -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
9428 -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
9433 -# Don't try gcc -ansi; that turns off useful extensions and
9434 -# breaks some systems' header files.
9435 -# AIX -qlanglvl=ansi
9436 -# Ultrix and OSF/1 -std1
9437 -# HP-UX 10.20 and later -Ae
9438 -# HP-UX older versions -Aa -D_HPUX_SOURCE
9439 -# SVR4 -Xc -D__EXTENSIONS__
9440 -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
9442 - CC="$ac_save_CC $ac_arg"
9443 - rm -f conftest.$ac_objext
9444 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9445 - (eval $ac_compile) 2>&5
9447 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9448 - (exit $ac_status); } &&
9449 - { ac_try='test -s conftest.$ac_objext'
9450 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9451 - (eval $ac_try) 2>&5
9453 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9454 - (exit $ac_status); }; }; then
9455 - ac_cv_prog_cc_stdc=$ac_arg
9458 - echo "$as_me: failed program was:" >&5
9459 -cat conftest.$ac_ext >&5
9461 -rm -f conftest.$ac_objext
9463 -rm -f conftest.$ac_ext conftest.$ac_objext
9468 -case "x$ac_cv_prog_cc_stdc" in
9470 - echo "$as_me:$LINENO: result: none needed" >&5
9471 -echo "${ECHO_T}none needed" >&6 ;;
9473 - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
9474 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
9475 - CC="$CC $ac_cv_prog_cc_stdc" ;;
9478 -# Some people use a C++ compiler to compile C. Since we use `exit',
9479 -# in C++ we need to declare it. In case someone uses the same compiler
9480 -# for both compiling C and C++ we need to have the C++ compiler decide
9481 -# the declaration of exit, since it's the most demanding environment.
9482 -cat >conftest.$ac_ext <<_ACEOF
9483 -@%:@ifndef __cplusplus
9487 -rm -f conftest.$ac_objext
9488 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9489 - (eval $ac_compile) 2>&5
9491 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9492 - (exit $ac_status); } &&
9493 - { ac_try='test -s conftest.$ac_objext'
9494 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9495 - (eval $ac_try) 2>&5
9497 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9498 - (exit $ac_status); }; }; then
9499 - for ac_declaration in \
9501 - '#include <stdlib.h>' \
9502 - 'extern "C" void std::exit (int) throw (); using std::exit;' \
9503 - 'extern "C" void std::exit (int); using std::exit;' \
9504 - 'extern "C" void exit (int) throw ();' \
9505 - 'extern "C" void exit (int);' \
9506 - 'void exit (int);'
9508 - cat >conftest.$ac_ext <<_ACEOF
9509 -#line $LINENO "configure"
9510 -#include "confdefs.h"
9511 -@%:@include <stdlib.h>
9521 -rm -f conftest.$ac_objext
9522 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9523 - (eval $ac_compile) 2>&5
9525 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9526 - (exit $ac_status); } &&
9527 - { ac_try='test -s conftest.$ac_objext'
9528 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9529 - (eval $ac_try) 2>&5
9531 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9532 - (exit $ac_status); }; }; then
9535 - echo "$as_me: failed program was:" >&5
9536 -cat conftest.$ac_ext >&5
9539 -rm -f conftest.$ac_objext conftest.$ac_ext
9540 - cat >conftest.$ac_ext <<_ACEOF
9541 -#line $LINENO "configure"
9542 -#include "confdefs.h"
9552 -rm -f conftest.$ac_objext
9553 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
9554 - (eval $ac_compile) 2>&5
9556 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9557 - (exit $ac_status); } &&
9558 - { ac_try='test -s conftest.$ac_objext'
9559 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9560 - (eval $ac_try) 2>&5
9562 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
9563 - (exit $ac_status); }; }; then
9566 - echo "$as_me: failed program was:" >&5
9567 -cat conftest.$ac_ext >&5
9569 -rm -f conftest.$ac_objext conftest.$ac_ext
9572 -if test -n "$ac_declaration"; then
9573 - echo '#ifdef __cplusplus' >>confdefs.h
9574 - echo $ac_declaration >>confdefs.h
9575 - echo '#endif' >>confdefs.h
9579 - echo "$as_me: failed program was:" >&5
9580 -cat conftest.$ac_ext >&5
9582 -rm -f conftest.$ac_objext conftest.$ac_ext
9584 -ac_cpp='$CPP $CPPFLAGS'
9585 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
9586 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
9587 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
9589 -depcc="$CC" am_compiler_list=
9591 -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
9592 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
9593 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
9594 - echo $ECHO_N "(cached) $ECHO_C" >&6
9596 - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
9597 - # We make a subdir and do the tests there. Otherwise we can end up
9598 - # making bogus files that we don't know about and never remove. For
9599 - # instance it was reported that on HP-UX the gcc test will end up
9600 - # making a dummy file named `D' -- because `-MD' means `put the output
9602 - mkdir conftest.dir
9603 - # Copy depcomp to subdir because otherwise we won't find it if we're
9604 - # using a relative directory.
9605 - cp "$am_depcomp" conftest.dir
9608 - am_cv_CC_dependencies_compiler_type=none
9609 - if test "$am_compiler_list" = ""; then
9610 - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
9612 - for depmode in $am_compiler_list; do
9613 - # We need to recreate these files for each test, as the compiler may
9614 - # overwrite some of them when testing with obscure command lines.
9615 - # This happens at least with the AIX C compiler.
9616 - echo '#include "conftest.h"' > conftest.c
9617 - echo 'int i;' > conftest.h
9618 - echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
9622 - # after this tag, mechanisms are not by side-effect, so they'll
9623 - # only be used when explicitly requested
9624 - if test "x$enable_dependency_tracking" = xyes; then
9632 - # We check with `-c' and `-o' for the sake of the "dashmstdout"
9633 - # mode. It turns out that the SunPro C++ compiler does not properly
9634 - # handle `-M -o', and we need to detect this.
9635 - if depmode=$depmode \
9636 - source=conftest.c object=conftest.o \
9637 - depfile=conftest.Po tmpdepfile=conftest.TPo \
9638 - $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
9639 - grep conftest.h conftest.Po > /dev/null 2>&1 &&
9640 - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
9641 - am_cv_CC_dependencies_compiler_type=$depmode
9647 - rm -rf conftest.dir
9649 - am_cv_CC_dependencies_compiler_type=none
9653 -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
9654 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
9655 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
9658 -# Find the correct PATH separator. Usually this is `:', but
9659 -# DJGPP uses `;' like DOS.
9660 -if test "X${PATH_SEPARATOR+set}" != Xset; then
9661 - UNAME=${UNAME-`uname 2>/dev/null`}
9663 - *-DOS) lt_cv_sys_path_separator=';' ;;
9664 - *) lt_cv_sys_path_separator=':' ;;
9666 - PATH_SEPARATOR=$lt_cv_sys_path_separator
9670 -# Check whether --with-gnu-ld or --without-gnu-ld was given.
9671 -if test "${with_gnu_ld+set}" = set; then
9672 - withval="$with_gnu_ld"
9673 - test "$withval" = no || with_gnu_ld=yes
9678 -if test "$GCC" = yes; then
9679 - # Check if gcc -print-prog-name=ld gives a path.
9680 - echo "$as_me:$LINENO: checking for ld used by GCC" >&5
9681 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
9684 - # gcc leaves a trailing carriage return which upsets mingw
9685 - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
9687 - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
9690 - # Accept absolute paths.
9691 - [\\/]* | [A-Za-z]:[\\/]*)
9692 - re_direlt='/[^/][^/]*/\.\./'
9693 - # Canonicalize the path of ld
9694 - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
9695 - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
9696 - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
9698 - test -z "$LD" && LD="$ac_prog"
9701 - # If it fails, then pretend we aren't using GCC.
9705 - # If it is relative, then search for the first ld in PATH.
9706 - with_gnu_ld=unknown
9709 -elif test "$with_gnu_ld" = yes; then
9710 - echo "$as_me:$LINENO: checking for GNU ld" >&5
9711 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
9713 - echo "$as_me:$LINENO: checking for non-GNU ld" >&5
9714 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
9716 -if test "${lt_cv_path_LD+set}" = set; then
9717 - echo $ECHO_N "(cached) $ECHO_C" >&6
9719 - if test -z "$LD"; then
9720 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
9721 - for ac_dir in $PATH; do
9722 - test -z "$ac_dir" && ac_dir=.
9723 - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
9724 - lt_cv_path_LD="$ac_dir/$ac_prog"
9725 - # Check to see if the program is GNU ld. I'd rather use --version,
9726 - # but apparently some GNU ld's only accept -v.
9727 - # Break only if it was the GNU/non-GNU ld that we prefer.
9728 - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
9729 - test "$with_gnu_ld" != no && break
9731 - test "$with_gnu_ld" != yes && break
9735 - IFS="$ac_save_ifs"
9737 - lt_cv_path_LD="$LD" # Let the user override the test with a path.
9741 -LD="$lt_cv_path_LD"
9742 -if test -n "$LD"; then
9743 - echo "$as_me:$LINENO: result: $LD" >&5
9744 -echo "${ECHO_T}$LD" >&6
9746 - echo "$as_me:$LINENO: result: no" >&5
9747 -echo "${ECHO_T}no" >&6
9749 -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
9750 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
9751 - { (exit 1); exit 1; }; }
9752 -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
9753 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
9754 -if test "${lt_cv_prog_gnu_ld+set}" = set; then
9755 - echo $ECHO_N "(cached) $ECHO_C" >&6
9757 - # I'd rather use --version here, but apparently some GNU ld's only accept -v.
9758 -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
9759 - lt_cv_prog_gnu_ld=yes
9761 - lt_cv_prog_gnu_ld=no
9764 -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
9765 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
9766 -with_gnu_ld=$lt_cv_prog_gnu_ld
9769 -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
9770 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
9771 -if test "${lt_cv_ld_reload_flag+set}" = set; then
9772 - echo $ECHO_N "(cached) $ECHO_C" >&6
9774 - lt_cv_ld_reload_flag='-r'
9776 -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
9777 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
9778 -reload_flag=$lt_cv_ld_reload_flag
9779 -test -n "$reload_flag" && reload_flag=" $reload_flag"
9781 -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
9782 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
9783 -if test "${lt_cv_path_NM+set}" = set; then
9784 - echo $ECHO_N "(cached) $ECHO_C" >&6
9786 - if test -n "$NM"; then
9787 - # Let the user override the test.
9788 - lt_cv_path_NM="$NM"
9790 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
9791 - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
9792 - test -z "$ac_dir" && ac_dir=.
9793 - tmp_nm=$ac_dir/${ac_tool_prefix}nm
9794 - if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
9795 - # Check to see if the nm accepts a BSD-compat flag.
9796 - # Adding the `sed 1q' prevents false positives on HP-UX, which says:
9797 - # nm: unknown option "B" ignored
9798 - # Tru64's nm complains that /dev/null is an invalid object file
9799 - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
9800 - lt_cv_path_NM="$tmp_nm -B"
9802 - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
9803 - lt_cv_path_NM="$tmp_nm -p"
9806 - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
9807 - continue # so that we can try to find one that supports BSD flags
9811 - IFS="$ac_save_ifs"
9812 - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
9816 -NM="$lt_cv_path_NM"
9817 -echo "$as_me:$LINENO: result: $NM" >&5
9818 -echo "${ECHO_T}$NM" >&6
9820 -echo "$as_me:$LINENO: checking whether ln -s works" >&5
9821 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
9823 -if test "$LN_S" = "ln -s"; then
9824 - echo "$as_me:$LINENO: result: yes" >&5
9825 -echo "${ECHO_T}yes" >&6
9827 - echo "$as_me:$LINENO: result: no, using $LN_S" >&5
9828 -echo "${ECHO_T}no, using $LN_S" >&6
9831 -echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5
9832 -echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
9833 -if test "${lt_cv_deplibs_check_method+set}" = set; then
9834 - echo $ECHO_N "(cached) $ECHO_C" >&6
9836 - lt_cv_file_magic_cmd='$MAGIC_CMD'
9837 -lt_cv_file_magic_test_file=
9838 -lt_cv_deplibs_check_method='unknown'
9839 -# Need to set the preceding variable on all platforms that support
9840 -# interlibrary dependencies.
9841 -# 'none' -- dependencies not supported.
9842 -# `unknown' -- same as none, but documents that we really don't know.
9843 -# 'pass_all' -- all dependencies passed with no checks.
9844 -# 'test_compile' -- check by making test program.
9845 -# 'file_magic [[regex]]' -- check by looking for files in library path
9846 -# which responds to the $file_magic_cmd with a given egrep regex.
9847 -# If you have `file' or equivalent on your system and you're not sure
9848 -# whether `pass_all' will *always* work, you probably want this one.
9852 - lt_cv_deplibs_check_method=pass_all
9856 - lt_cv_deplibs_check_method=pass_all
9860 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
9861 - lt_cv_file_magic_cmd='/usr/bin/file -L'
9862 - lt_cv_file_magic_test_file=/shlib/libc.so
9865 -cygwin* | mingw* | pw32*)
9866 - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
9867 - lt_cv_file_magic_cmd='$OBJDUMP -f'
9870 -darwin* | rhapsody*)
9871 - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
9872 - lt_cv_file_magic_cmd='/usr/bin/file -L'
9873 - case "$host_os" in
9874 - rhapsody* | darwin1.[012])
9875 - lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
9877 - *) # Darwin 1.3 on
9878 - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
9884 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
9887 - # Not sure whether the presence of OpenBSD here was a mistake.
9888 - # Let's accept both of them until this is cleared up.
9889 - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
9890 - lt_cv_file_magic_cmd=/usr/bin/file
9891 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
9895 - lt_cv_deplibs_check_method=pass_all
9900 - lt_cv_deplibs_check_method=pass_all
9903 -hpux10.20*|hpux11*)
9904 - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
9905 - lt_cv_file_magic_cmd=/usr/bin/file
9906 - lt_cv_file_magic_test_file=/usr/lib/libc.sl
9912 - # this will be overridden with pass_all, but let us keep it just in case
9913 - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
9917 - *-32|*"-32 ") libmagic=32-bit;;
9918 - *-n32|*"-n32 ") libmagic=N32;;
9919 - *-64|*"-64 ") libmagic=64-bit;;
9920 - *) libmagic=never-match;;
9922 - # this will be overridden with pass_all, but let us keep it just in case
9923 - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
9926 - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
9927 - lt_cv_deplibs_check_method=pass_all
9930 -# This must be Linux ELF.
9933 - alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
9934 - lt_cv_deplibs_check_method=pass_all ;;
9936 - # glibc up to 2.1.1 does not perform some relocations on ARM
9937 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
9939 - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
9943 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
9944 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
9946 - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
9951 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
9952 - lt_cv_file_magic_cmd=/usr/bin/file
9953 - lt_cv_file_magic_test_file=/usr/lib/libnls.so
9957 - lt_cv_file_magic_cmd=/usr/bin/file
9958 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
9959 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
9960 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
9962 - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
9966 -osf3* | osf4* | osf5*)
9967 - # this will be overridden with pass_all, but let us keep it just in case
9968 - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
9969 - lt_cv_file_magic_test_file=/shlib/libc.so
9970 - lt_cv_deplibs_check_method=pass_all
9974 - lt_cv_deplibs_check_method=pass_all
9978 - lt_cv_deplibs_check_method=pass_all
9979 - lt_cv_file_magic_test_file=/lib/libc.so
9982 -sysv5uw[78]* | sysv4*uw2*)
9983 - lt_cv_deplibs_check_method=pass_all
9986 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
9987 - case $host_vendor in
9989 - 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]'
9990 - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
9993 - lt_cv_deplibs_check_method=pass_all
9996 - lt_cv_file_magic_cmd='/bin/file'
9997 - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
10000 - lt_cv_file_magic_cmd='/bin/file'
10001 - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
10002 - lt_cv_file_magic_test_file=/lib/libc.so
10009 -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
10010 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
10011 -file_magic_cmd=$lt_cv_file_magic_cmd
10012 -deplibs_check_method=$lt_cv_deplibs_check_method
10020 -# Check for command to grab the raw symbol name followed by C symbol from nm.
10021 -echo "$as_me:$LINENO: checking command to parse $NM output" >&5
10022 -echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6
10023 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
10024 - echo $ECHO_N "(cached) $ECHO_C" >&6
10027 -# These are sane defaults that work on at least a few old systems.
10028 -# [They come from Ultrix. What could be older than Ultrix?!! ;)]
10030 -# Character class describing NM global symbol codes.
10031 -symcode='[BCDEGRST]'
10033 -# Regexp to match symbols that can be accessed directly from C.
10034 -sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
10036 -# Transform the above into a raw symbol and a C symbol.
10037 -symxfrm='\1 \2\3 \3'
10039 -# Transform an extracted symbol line into a proper C declaration
10040 -lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
10042 -# Transform an extracted symbol line into symbol name and symbol address
10043 -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'"
10045 -# Define system-specific variables.
10050 -cygwin* | mingw* | pw32*)
10051 - symcode='[ABCDGISTW]'
10053 -hpux*) # Its linker distinguishes data from code symbols
10054 - lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
10055 - 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'"
10058 - symcode='[BCDEGRST]'
10060 -solaris* | sysv5*)
10064 - symcode='[DFNSTU]'
10068 -# Handle CRLF in mingw tool chain
10072 - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
10076 -# If we're using GNU nm, then use its standard symbol codes.
10077 -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
10078 - symcode='[ABCDGISTW]'
10081 -# Try without a prefix undercore, then with it.
10082 -for ac_symprfx in "" "_"; do
10084 - # Write the raw and C identifiers.
10085 -lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
10087 - # Check to see that the pipe works correctly.
10090 - cat > conftest.$ac_ext <<EOF
10091 -#ifdef __cplusplus
10095 -void nm_test_func(){}
10096 -#ifdef __cplusplus
10099 -int main(){nm_test_var='a';nm_test_func();return(0);}
10102 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10103 - (eval $ac_compile) 2>&5
10105 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10106 - (exit $ac_status); }; then
10107 - # Now try to grab the symbols.
10108 - nlist=conftest.nm
10109 - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
10110 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
10112 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10113 - (exit $ac_status); } && test -s "$nlist"; then
10114 - # Try sorting and uniquifying the output.
10115 - if sort "$nlist" | uniq > "$nlist"T; then
10116 - mv -f "$nlist"T "$nlist"
10121 - # Make sure that we snagged all the symbols we need.
10122 - if egrep ' nm_test_var$' "$nlist" >/dev/null; then
10123 - if egrep ' nm_test_func$' "$nlist" >/dev/null; then
10124 - cat <<EOF > conftest.$ac_ext
10125 -#ifdef __cplusplus
10130 - # Now generate the symbol file.
10131 - eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
10133 - cat <<EOF >> conftest.$ac_ext
10134 -#if defined (__STDC__) && __STDC__
10135 -# define lt_ptr void *
10137 -# define lt_ptr char *
10141 -/* The mapping between symbol names and symbols. */
10143 - const char *name;
10146 -lt_preloaded_symbols[] =
10149 - sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
10150 - cat <<\EOF >> conftest.$ac_ext
10154 -#ifdef __cplusplus
10158 - # Now try linking the two files.
10159 - mv conftest.$ac_objext conftstm.$ac_objext
10160 - save_LIBS="$LIBS"
10161 - save_CFLAGS="$CFLAGS"
10162 - LIBS="conftstm.$ac_objext"
10163 - CFLAGS="$CFLAGS$no_builtin_flag"
10164 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10165 - (eval $ac_link) 2>&5
10167 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10168 - (exit $ac_status); } && test -s conftest; then
10171 - LIBS="$save_LIBS"
10172 - CFLAGS="$save_CFLAGS"
10174 - echo "cannot find nm_test_func in $nlist" >&5
10177 - echo "cannot find nm_test_var in $nlist" >&5
10180 - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
10183 - echo "$progname: failed program was:" >&5
10184 - cat conftest.$ac_ext >&5
10186 - rm -f conftest* conftst*
10188 - # Do not use the global_symbol_pipe unless it works.
10189 - if test "$pipe_works" = yes; then
10192 - lt_cv_sys_global_symbol_pipe=
10198 -global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
10199 -if test -z "$lt_cv_sys_global_symbol_pipe"; then
10200 - global_symbol_to_cdecl=
10201 - global_symbol_to_c_name_address=
10203 - global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
10204 - global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
10206 -if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
10208 - echo "$as_me:$LINENO: result: failed" >&5
10209 -echo "${ECHO_T}failed" >&6
10211 - echo "$as_me:$LINENO: result: ok" >&5
10212 -echo "${ECHO_T}ok" >&6
10216 -ac_cpp='$CPP $CPPFLAGS'
10217 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10218 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10219 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
10220 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
10221 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
10222 -# On Suns, sometimes $CPP names a directory.
10223 -if test -n "$CPP" && test -d "$CPP"; then
10226 -if test -z "$CPP"; then
10227 - if test "${ac_cv_prog_CPP+set}" = set; then
10228 - echo $ECHO_N "(cached) $ECHO_C" >&6
10230 - # Double quotes because CPP needs to be expanded
10231 - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
10233 - ac_preproc_ok=false
10234 -for ac_c_preproc_warn_flag in '' yes
10236 - # Use a header file that comes with gcc, so configuring glibc
10237 - # with a fresh cross-compiler works.
10238 - # On the NeXT, cc -E runs the code through the compiler's parser,
10239 - # not just through cpp. "Syntax error" is here to catch this case.
10240 - cat >conftest.$ac_ext <<_ACEOF
10241 -#line $LINENO "configure"
10242 -#include "confdefs.h"
10243 -@%:@include <assert.h>
10246 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10247 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10249 - grep -v '^ *+' conftest.er1 >conftest.err
10250 - rm -f conftest.er1
10251 - cat conftest.err >&5
10252 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10253 - (exit $ac_status); } >/dev/null; then
10254 - if test -s conftest.err; then
10255 - ac_cpp_err=$ac_c_preproc_warn_flag
10262 -if test -z "$ac_cpp_err"; then
10265 - echo "$as_me: failed program was:" >&5
10266 - cat conftest.$ac_ext >&5
10267 - # Broken: fails on valid input.
10270 -rm -f conftest.err conftest.$ac_ext
10272 - # OK, works on sane cases. Now check whether non-existent headers
10273 - # can be detected and how.
10274 - cat >conftest.$ac_ext <<_ACEOF
10275 -#line $LINENO "configure"
10276 -#include "confdefs.h"
10277 -@%:@include <ac_nonexistent.h>
10279 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10280 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10282 - grep -v '^ *+' conftest.er1 >conftest.err
10283 - rm -f conftest.er1
10284 - cat conftest.err >&5
10285 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10286 - (exit $ac_status); } >/dev/null; then
10287 - if test -s conftest.err; then
10288 - ac_cpp_err=$ac_c_preproc_warn_flag
10295 -if test -z "$ac_cpp_err"; then
10296 - # Broken: success on invalid input.
10299 - echo "$as_me: failed program was:" >&5
10300 - cat conftest.$ac_ext >&5
10301 - # Passes both tests.
10305 -rm -f conftest.err conftest.$ac_ext
10308 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
10309 -rm -f conftest.err conftest.$ac_ext
10310 -if $ac_preproc_ok; then
10315 - ac_cv_prog_CPP=$CPP
10318 - CPP=$ac_cv_prog_CPP
10320 - ac_cv_prog_CPP=$CPP
10322 -echo "$as_me:$LINENO: result: $CPP" >&5
10323 -echo "${ECHO_T}$CPP" >&6
10324 -ac_preproc_ok=false
10325 -for ac_c_preproc_warn_flag in '' yes
10327 - # Use a header file that comes with gcc, so configuring glibc
10328 - # with a fresh cross-compiler works.
10329 - # On the NeXT, cc -E runs the code through the compiler's parser,
10330 - # not just through cpp. "Syntax error" is here to catch this case.
10331 - cat >conftest.$ac_ext <<_ACEOF
10332 -#line $LINENO "configure"
10333 -#include "confdefs.h"
10334 -@%:@include <assert.h>
10337 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10338 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10340 - grep -v '^ *+' conftest.er1 >conftest.err
10341 - rm -f conftest.er1
10342 - cat conftest.err >&5
10343 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10344 - (exit $ac_status); } >/dev/null; then
10345 - if test -s conftest.err; then
10346 - ac_cpp_err=$ac_c_preproc_warn_flag
10353 -if test -z "$ac_cpp_err"; then
10356 - echo "$as_me: failed program was:" >&5
10357 - cat conftest.$ac_ext >&5
10358 - # Broken: fails on valid input.
10361 -rm -f conftest.err conftest.$ac_ext
10363 - # OK, works on sane cases. Now check whether non-existent headers
10364 - # can be detected and how.
10365 - cat >conftest.$ac_ext <<_ACEOF
10366 -#line $LINENO "configure"
10367 -#include "confdefs.h"
10368 -@%:@include <ac_nonexistent.h>
10370 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10371 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10373 - grep -v '^ *+' conftest.er1 >conftest.err
10374 - rm -f conftest.er1
10375 - cat conftest.err >&5
10376 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10377 - (exit $ac_status); } >/dev/null; then
10378 - if test -s conftest.err; then
10379 - ac_cpp_err=$ac_c_preproc_warn_flag
10386 -if test -z "$ac_cpp_err"; then
10387 - # Broken: success on invalid input.
10390 - echo "$as_me: failed program was:" >&5
10391 - cat conftest.$ac_ext >&5
10392 - # Passes both tests.
10396 -rm -f conftest.err conftest.$ac_ext
10399 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
10400 -rm -f conftest.err conftest.$ac_ext
10401 -if $ac_preproc_ok; then
10404 - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
10405 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
10406 - { (exit 1); exit 1; }; }
10410 -ac_cpp='$CPP $CPPFLAGS'
10411 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10412 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10413 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
10416 -echo "$as_me:$LINENO: checking for egrep" >&5
10417 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6
10418 -if test "${ac_cv_prog_egrep+set}" = set; then
10419 - echo $ECHO_N "(cached) $ECHO_C" >&6
10421 - if echo a | (grep -E '(a|b)') >/dev/null 2>&1
10422 - then ac_cv_prog_egrep='grep -E'
10423 - else ac_cv_prog_egrep='egrep'
10426 -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
10427 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6
10428 - EGREP=$ac_cv_prog_egrep
10431 -echo "$as_me:$LINENO: checking for ANSI C header files" >&5
10432 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
10433 -if test "${ac_cv_header_stdc+set}" = set; then
10434 - echo $ECHO_N "(cached) $ECHO_C" >&6
10436 - cat >conftest.$ac_ext <<_ACEOF
10437 -#line $LINENO "configure"
10438 -#include "confdefs.h"
10439 -#include <stdlib.h>
10440 -#include <stdarg.h>
10441 -#include <string.h>
10442 -#include <float.h>
10445 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10446 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10448 - grep -v '^ *+' conftest.er1 >conftest.err
10449 - rm -f conftest.er1
10450 - cat conftest.err >&5
10451 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10452 - (exit $ac_status); } >/dev/null; then
10453 - if test -s conftest.err; then
10454 - ac_cpp_err=$ac_c_preproc_warn_flag
10461 -if test -z "$ac_cpp_err"; then
10462 - ac_cv_header_stdc=yes
10464 - echo "$as_me: failed program was:" >&5
10465 - cat conftest.$ac_ext >&5
10466 - ac_cv_header_stdc=no
10468 -rm -f conftest.err conftest.$ac_ext
10470 -if test $ac_cv_header_stdc = yes; then
10471 - # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
10472 - cat >conftest.$ac_ext <<_ACEOF
10473 -#line $LINENO "configure"
10474 -#include "confdefs.h"
10475 -#include <string.h>
10478 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
10479 - $EGREP "memchr" >/dev/null 2>&1; then
10482 - ac_cv_header_stdc=no
10488 -if test $ac_cv_header_stdc = yes; then
10489 - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
10490 - cat >conftest.$ac_ext <<_ACEOF
10491 -#line $LINENO "configure"
10492 -#include "confdefs.h"
10493 -#include <stdlib.h>
10496 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
10497 - $EGREP "free" >/dev/null 2>&1; then
10500 - ac_cv_header_stdc=no
10506 -if test $ac_cv_header_stdc = yes; then
10507 - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
10508 - if test "$cross_compiling" = yes; then
10511 - cat >conftest.$ac_ext <<_ACEOF
10512 -#line $LINENO "configure"
10513 -#include "confdefs.h"
10514 -#include <ctype.h>
10515 -#if ((' ' & 0x0FF) == 0x020)
10516 -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
10517 -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
10519 -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
10520 - || ('j' <= (c) && (c) <= 'r') \
10521 - || ('s' <= (c) && (c) <= 'z'))
10522 -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
10525 -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
10530 - for (i = 0; i < 256; i++)
10531 - if (XOR (islower (i), ISLOWER (i))
10532 - || toupper (i) != TOUPPER (i))
10537 -rm -f conftest$ac_exeext
10538 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10539 - (eval $ac_link) 2>&5
10541 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10542 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
10543 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10544 - (eval $ac_try) 2>&5
10546 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10547 - (exit $ac_status); }; }; then
10550 - echo "$as_me: program exited with status $ac_status" >&5
10551 -echo "$as_me: failed program was:" >&5
10552 -cat conftest.$ac_ext >&5
10553 -( exit $ac_status )
10554 -ac_cv_header_stdc=no
10556 -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
10560 -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
10561 -echo "${ECHO_T}$ac_cv_header_stdc" >&6
10562 -if test $ac_cv_header_stdc = yes; then
10564 -cat >>confdefs.h <<\_ACEOF
10565 -@%:@define STDC_HEADERS 1
10570 -# On IRIX 5.3, sys/types and inttypes.h are conflicting.
10580 -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
10581 - inttypes.h stdint.h unistd.h
10583 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
10584 -echo "$as_me:$LINENO: checking for $ac_header" >&5
10585 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10586 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10587 - echo $ECHO_N "(cached) $ECHO_C" >&6
10589 - cat >conftest.$ac_ext <<_ACEOF
10590 -#line $LINENO "configure"
10591 -#include "confdefs.h"
10592 -$ac_includes_default
10594 -@%:@include <$ac_header>
10596 -rm -f conftest.$ac_objext
10597 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10598 - (eval $ac_compile) 2>&5
10600 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10601 - (exit $ac_status); } &&
10602 - { ac_try='test -s conftest.$ac_objext'
10603 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10604 - (eval $ac_try) 2>&5
10606 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10607 - (exit $ac_status); }; }; then
10608 - eval "$as_ac_Header=yes"
10610 - echo "$as_me: failed program was:" >&5
10611 -cat conftest.$ac_ext >&5
10612 -eval "$as_ac_Header=no"
10614 -rm -f conftest.$ac_objext conftest.$ac_ext
10616 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10617 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10618 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
10619 - cat >>confdefs.h <<_ACEOF
10620 -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
10629 -for ac_header in dlfcn.h
10631 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
10632 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10633 - echo "$as_me:$LINENO: checking for $ac_header" >&5
10634 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10635 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10636 - echo $ECHO_N "(cached) $ECHO_C" >&6
10638 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10639 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10641 - # Is the header compilable?
10642 -echo "$as_me:$LINENO: checking $ac_header usability" >&5
10643 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
10644 -cat >conftest.$ac_ext <<_ACEOF
10645 -#line $LINENO "configure"
10646 -#include "confdefs.h"
10647 -$ac_includes_default
10648 -@%:@include <$ac_header>
10650 -rm -f conftest.$ac_objext
10651 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10652 - (eval $ac_compile) 2>&5
10654 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10655 - (exit $ac_status); } &&
10656 - { ac_try='test -s conftest.$ac_objext'
10657 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10658 - (eval $ac_try) 2>&5
10660 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10661 - (exit $ac_status); }; }; then
10662 - ac_header_compiler=yes
10664 - echo "$as_me: failed program was:" >&5
10665 -cat conftest.$ac_ext >&5
10666 -ac_header_compiler=no
10668 -rm -f conftest.$ac_objext conftest.$ac_ext
10669 -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
10670 -echo "${ECHO_T}$ac_header_compiler" >&6
10672 -# Is the header present?
10673 -echo "$as_me:$LINENO: checking $ac_header presence" >&5
10674 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
10675 -cat >conftest.$ac_ext <<_ACEOF
10676 -#line $LINENO "configure"
10677 -#include "confdefs.h"
10678 -@%:@include <$ac_header>
10680 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
10681 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
10683 - grep -v '^ *+' conftest.er1 >conftest.err
10684 - rm -f conftest.er1
10685 - cat conftest.err >&5
10686 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
10687 - (exit $ac_status); } >/dev/null; then
10688 - if test -s conftest.err; then
10689 - ac_cpp_err=$ac_c_preproc_warn_flag
10696 -if test -z "$ac_cpp_err"; then
10697 - ac_header_preproc=yes
10699 - echo "$as_me: failed program was:" >&5
10700 - cat conftest.$ac_ext >&5
10701 - ac_header_preproc=no
10703 -rm -f conftest.err conftest.$ac_ext
10704 -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
10705 -echo "${ECHO_T}$ac_header_preproc" >&6
10707 -# So? What about this header?
10708 -case $ac_header_compiler:$ac_header_preproc in
10710 - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
10711 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
10712 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
10713 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
10715 - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
10716 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
10717 - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
10718 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
10719 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
10720 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
10722 -echo "$as_me:$LINENO: checking for $ac_header" >&5
10723 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
10724 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
10725 - echo $ECHO_N "(cached) $ECHO_C" >&6
10727 - eval "$as_ac_Header=$ac_header_preproc"
10729 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
10730 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
10733 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
10734 - cat >>confdefs.h <<_ACEOF
10735 -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
10746 -# Only perform the check for file, if the check method requires it
10747 -case $deplibs_check_method in
10749 - if test "$file_magic_cmd" = '$MAGIC_CMD'; then
10750 - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
10751 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
10752 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
10753 - echo $ECHO_N "(cached) $ECHO_C" >&6
10755 - case $MAGIC_CMD in
10757 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
10760 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
10763 - ac_save_MAGIC_CMD="$MAGIC_CMD"
10764 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
10765 - ac_dummy="/usr/bin:$PATH"
10766 - for ac_dir in $ac_dummy; do
10767 - test -z "$ac_dir" && ac_dir=.
10768 - if test -f $ac_dir/${ac_tool_prefix}file; then
10769 - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
10770 - if test -n "$file_magic_test_file"; then
10771 - case $deplibs_check_method in
10773 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
10774 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10775 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
10776 - egrep "$file_magic_regex" > /dev/null; then
10781 -*** Warning: the command libtool uses to detect shared libraries,
10782 -*** $file_magic_cmd, produces output that libtool cannot recognize.
10783 -*** The result is that libtool may fail to recognize shared libraries
10784 -*** as such. This will affect the creation of libtool libraries that
10785 -*** depend on shared libraries, but programs linked with such libtool
10786 -*** libraries will work regardless of this problem. Nevertheless, you
10787 -*** may want to report the problem to your system manager and/or to
10788 -*** bug-libtool@gnu.org
10797 - IFS="$ac_save_ifs"
10798 - MAGIC_CMD="$ac_save_MAGIC_CMD"
10803 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10804 -if test -n "$MAGIC_CMD"; then
10805 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
10806 -echo "${ECHO_T}$MAGIC_CMD" >&6
10808 - echo "$as_me:$LINENO: result: no" >&5
10809 -echo "${ECHO_T}no" >&6
10812 -if test -z "$lt_cv_path_MAGIC_CMD"; then
10813 - if test -n "$ac_tool_prefix"; then
10814 - echo "$as_me:$LINENO: checking for file" >&5
10815 -echo $ECHO_N "checking for file... $ECHO_C" >&6
10816 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
10817 - echo $ECHO_N "(cached) $ECHO_C" >&6
10819 - case $MAGIC_CMD in
10821 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
10824 - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
10827 - ac_save_MAGIC_CMD="$MAGIC_CMD"
10828 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
10829 - ac_dummy="/usr/bin:$PATH"
10830 - for ac_dir in $ac_dummy; do
10831 - test -z "$ac_dir" && ac_dir=.
10832 - if test -f $ac_dir/file; then
10833 - lt_cv_path_MAGIC_CMD="$ac_dir/file"
10834 - if test -n "$file_magic_test_file"; then
10835 - case $deplibs_check_method in
10837 - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
10838 - MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10839 - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
10840 - egrep "$file_magic_regex" > /dev/null; then
10845 -*** Warning: the command libtool uses to detect shared libraries,
10846 -*** $file_magic_cmd, produces output that libtool cannot recognize.
10847 -*** The result is that libtool may fail to recognize shared libraries
10848 -*** as such. This will affect the creation of libtool libraries that
10849 -*** depend on shared libraries, but programs linked with such libtool
10850 -*** libraries will work regardless of this problem. Nevertheless, you
10851 -*** may want to report the problem to your system manager and/or to
10852 -*** bug-libtool@gnu.org
10861 - IFS="$ac_save_ifs"
10862 - MAGIC_CMD="$ac_save_MAGIC_CMD"
10867 -MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10868 -if test -n "$MAGIC_CMD"; then
10869 - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
10870 -echo "${ECHO_T}$MAGIC_CMD" >&6
10872 - echo "$as_me:$LINENO: result: no" >&5
10873 -echo "${ECHO_T}no" >&6
10885 -if test -n "$ac_tool_prefix"; then
10886 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
10887 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
10888 -echo "$as_me:$LINENO: checking for $ac_word" >&5
10889 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10890 -if test "${ac_cv_prog_RANLIB+set}" = set; then
10891 - echo $ECHO_N "(cached) $ECHO_C" >&6
10893 - if test -n "$RANLIB"; then
10894 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
10896 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10897 -for as_dir in $PATH
10900 - test -z "$as_dir" && as_dir=.
10901 - for ac_exec_ext in '' $ac_executable_extensions; do
10902 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10903 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
10904 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10912 -RANLIB=$ac_cv_prog_RANLIB
10913 -if test -n "$RANLIB"; then
10914 - echo "$as_me:$LINENO: result: $RANLIB" >&5
10915 -echo "${ECHO_T}$RANLIB" >&6
10917 - echo "$as_me:$LINENO: result: no" >&5
10918 -echo "${ECHO_T}no" >&6
10922 -if test -z "$ac_cv_prog_RANLIB"; then
10923 - ac_ct_RANLIB=$RANLIB
10924 - # Extract the first word of "ranlib", so it can be a program name with args.
10925 -set dummy ranlib; ac_word=$2
10926 -echo "$as_me:$LINENO: checking for $ac_word" >&5
10927 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10928 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
10929 - echo $ECHO_N "(cached) $ECHO_C" >&6
10931 - if test -n "$ac_ct_RANLIB"; then
10932 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
10934 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10935 -for as_dir in $PATH
10938 - test -z "$as_dir" && as_dir=.
10939 - for ac_exec_ext in '' $ac_executable_extensions; do
10940 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10941 - ac_cv_prog_ac_ct_RANLIB="ranlib"
10942 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10948 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
10951 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
10952 -if test -n "$ac_ct_RANLIB"; then
10953 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
10954 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
10956 - echo "$as_me:$LINENO: result: no" >&5
10957 -echo "${ECHO_T}no" >&6
10960 - RANLIB=$ac_ct_RANLIB
10962 - RANLIB="$ac_cv_prog_RANLIB"
10965 -if test -n "$ac_tool_prefix"; then
10966 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
10967 -set dummy ${ac_tool_prefix}strip; ac_word=$2
10968 -echo "$as_me:$LINENO: checking for $ac_word" >&5
10969 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
10970 -if test "${ac_cv_prog_STRIP+set}" = set; then
10971 - echo $ECHO_N "(cached) $ECHO_C" >&6
10973 - if test -n "$STRIP"; then
10974 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
10976 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10977 -for as_dir in $PATH
10980 - test -z "$as_dir" && as_dir=.
10981 - for ac_exec_ext in '' $ac_executable_extensions; do
10982 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10983 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
10984 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
10992 -STRIP=$ac_cv_prog_STRIP
10993 -if test -n "$STRIP"; then
10994 - echo "$as_me:$LINENO: result: $STRIP" >&5
10995 -echo "${ECHO_T}$STRIP" >&6
10997 - echo "$as_me:$LINENO: result: no" >&5
10998 -echo "${ECHO_T}no" >&6
11002 -if test -z "$ac_cv_prog_STRIP"; then
11003 - ac_ct_STRIP=$STRIP
11004 - # Extract the first word of "strip", so it can be a program name with args.
11005 -set dummy strip; ac_word=$2
11006 -echo "$as_me:$LINENO: checking for $ac_word" >&5
11007 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
11008 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
11009 - echo $ECHO_N "(cached) $ECHO_C" >&6
11011 - if test -n "$ac_ct_STRIP"; then
11012 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
11014 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11015 -for as_dir in $PATH
11018 - test -z "$as_dir" && as_dir=.
11019 - for ac_exec_ext in '' $ac_executable_extensions; do
11020 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11021 - ac_cv_prog_ac_ct_STRIP="strip"
11022 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
11028 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
11031 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
11032 -if test -n "$ac_ct_STRIP"; then
11033 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
11034 -echo "${ECHO_T}$ac_ct_STRIP" >&6
11036 - echo "$as_me:$LINENO: result: no" >&5
11037 -echo "${ECHO_T}no" >&6
11040 - STRIP=$ac_ct_STRIP
11042 - STRIP="$ac_cv_prog_STRIP"
11047 -enable_win32_dll=no
11049 -# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
11050 -if test "${enable_libtool_lock+set}" = set; then
11051 - enableval="$enable_libtool_lock"
11054 -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
11056 -# Some flags need to be propagated to the compiler or linker for good
11057 -# libtool support.
11060 - # Find out which ABI we are using.
11061 - echo '#line __oline__ "configure"' > conftest.$ac_ext
11062 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11063 - (eval $ac_compile) 2>&5
11065 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11066 - (exit $ac_status); }; then
11067 - case `/usr/bin/file conftest.$ac_objext` in
11069 - LD="${LD-ld} -32"
11072 - LD="${LD-ld} -n32"
11075 - LD="${LD-ld} -64"
11083 - # On SCO OpenServer 5, we need -belf to get full-featured binaries.
11084 - SAVE_CFLAGS="$CFLAGS"
11085 - CFLAGS="$CFLAGS -belf"
11086 - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
11087 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
11088 -if test "${lt_cv_cc_needs_belf+set}" = set; then
11089 - echo $ECHO_N "(cached) $ECHO_C" >&6
11094 -ac_cpp='$CPP $CPPFLAGS'
11095 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11096 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11097 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
11099 - cat >conftest.$ac_ext <<_ACEOF
11100 -#line $LINENO "configure"
11101 -#include "confdefs.h"
11111 -rm -f conftest.$ac_objext conftest$ac_exeext
11112 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11113 - (eval $ac_link) 2>&5
11115 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11116 - (exit $ac_status); } &&
11117 - { ac_try='test -s conftest$ac_exeext'
11118 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11119 - (eval $ac_try) 2>&5
11121 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11122 - (exit $ac_status); }; }; then
11123 - lt_cv_cc_needs_belf=yes
11125 - echo "$as_me: failed program was:" >&5
11126 -cat conftest.$ac_ext >&5
11127 -lt_cv_cc_needs_belf=no
11129 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
11131 -ac_cpp='$CPP $CPPFLAGS'
11132 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11133 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11134 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
11137 -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
11138 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
11139 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then
11140 - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
11141 - CFLAGS="$SAVE_CFLAGS"
11148 -# Sed substitution that helps us do robust quoting. It backslashifies
11149 -# metacharacters that are still active within double-quoted strings.
11150 -Xsed='sed -e s/^X//'
11151 -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
11153 -# Same as above, but do not quote variable references.
11154 -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
11156 -# Sed substitution to delay expansion of an escaped shell variable in a
11157 -# double_quote_subst'ed string.
11158 -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
11163 -# Global variables:
11164 -default_ofile=libtool
11165 -can_build_shared=yes
11167 -# All known linkers require a `.a' archive for static linking (except M$VC,
11168 -# which needs '.lib').
11170 -ltmain="$ac_aux_dir/ltmain.sh"
11171 -ofile="$default_ofile"
11172 -with_gnu_ld="$lt_cv_prog_gnu_ld"
11173 -need_locks="$enable_libtool_lock"
11176 -old_CFLAGS="$CFLAGS"
11178 -# Set sane defaults for various variables
11179 -test -z "$AR" && AR=ar
11180 -test -z "$AR_FLAGS" && AR_FLAGS=cru
11181 -test -z "$AS" && AS=as
11182 -test -z "$CC" && CC=cc
11183 -test -z "$DLLTOOL" && DLLTOOL=dlltool
11184 -test -z "$LD" && LD=ld
11185 -test -z "$LN_S" && LN_S="ln -s"
11186 -test -z "$MAGIC_CMD" && MAGIC_CMD=file
11187 -test -z "$NM" && NM=nm
11188 -test -z "$OBJDUMP" && OBJDUMP=objdump
11189 -test -z "$RANLIB" && RANLIB=:
11190 -test -z "$STRIP" && STRIP=:
11191 -test -z "$ac_objext" && ac_objext=o
11193 -if test x"$host" != x"$build"; then
11194 - ac_tool_prefix=${host_alias}-
11199 -# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
11202 -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
11207 - # AIX sometimes has problems with the GCC collect2 program. For some
11208 - # reason, if we set the COLLECT_NAMES environment variable, the problems
11209 - # vanish in a puff of smoke.
11210 - if test "X${COLLECT_NAMES+set}" != Xset; then
11212 - export COLLECT_NAMES
11217 -# Determine commands to create old-style static archives.
11218 -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
11219 -old_postinstall_cmds='chmod 644 $oldlib'
11220 -old_postuninstall_cmds=
11222 -if test -n "$RANLIB"; then
11225 - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
11228 - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
11231 - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
11234 -# Allow CC to be a program name with arguments.
11238 -echo "$as_me:$LINENO: checking for objdir" >&5
11239 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6
11240 -rm -f .libs 2>/dev/null
11241 -mkdir .libs 2>/dev/null
11242 -if test -d .libs; then
11245 - # MS-DOS does not allow filenames that begin with a dot.
11248 -rmdir .libs 2>/dev/null
11249 -echo "$as_me:$LINENO: result: $objdir" >&5
11250 -echo "${ECHO_T}$objdir" >&6
11254 -# Check whether --with-pic or --without-pic was given.
11255 -if test "${with_pic+set}" = set; then
11256 - withval="$with_pic"
11257 - pic_mode="$withval"
11261 -test -z "$pic_mode" && pic_mode=default
11263 -# We assume here that the value for lt_cv_prog_cc_pic will not be cached
11264 -# in isolation, and that seeing it set (from the cache) indicates that
11265 -# the associated values are set (in the cache) correctly too.
11266 -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
11267 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
11268 -if test "${lt_cv_prog_cc_pic+set}" = set; then
11269 - echo $ECHO_N "(cached) $ECHO_C" >&6
11271 - lt_cv_prog_cc_pic=
11272 - lt_cv_prog_cc_shlib=
11273 - lt_cv_prog_cc_wl=
11274 - lt_cv_prog_cc_static=
11275 - lt_cv_prog_cc_no_builtin=
11276 - lt_cv_prog_cc_can_build_shared=$can_build_shared
11278 - if test "$GCC" = yes; then
11279 - lt_cv_prog_cc_wl='-Wl,'
11280 - lt_cv_prog_cc_static='-static'
11284 - # Below there is a dirty hack to force normal static linking with -ldl
11285 - # The problem is because libdl dynamically linked with both libc and
11286 - # libC (AIX C++ library), which obviously doesn't included in libraries
11287 - # list by gcc. This cause undefined symbols with -static flags.
11288 - # This hack allows C programs to be linked with "-static -ldl", but
11289 - # not sure about C++ programs.
11290 - lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
11293 - # FIXME: we need at least 68020 code to build shared libraries, but
11294 - # adding the `-m68020' flag to GCC prevents building anything better,
11295 - # like `-m68040'.
11296 - lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
11298 - beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
11299 - # PIC is the default for these OSes.
11301 - darwin* | rhapsody*)
11302 - # PIC is the default on this platform
11303 - # Common symbols not allowed in MH_DYLIB files
11304 - lt_cv_prog_cc_pic='-fno-common'
11306 - cygwin* | mingw* | pw32* | os2*)
11307 - # This hack is so that the source file can tell whether it is being
11308 - # built for inclusion in a dll (and should export symbols for example).
11309 - lt_cv_prog_cc_pic='-DDLL_EXPORT'
11312 - if test -d /usr/nec; then
11313 - lt_cv_prog_cc_pic=-Kconform_pic
11317 - lt_cv_prog_cc_pic='-fPIC'
11321 - # PORTME Check for PIC flags for the system compiler.
11323 - aix3* | aix4* | aix5*)
11324 - lt_cv_prog_cc_wl='-Wl,'
11325 - # All AIX code is PIC.
11326 - if test "$host_cpu" = ia64; then
11327 - # AIX 5 now supports IA64 processor
11328 - lt_cv_prog_cc_static='-Bstatic'
11330 - lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
11334 - hpux9* | hpux10* | hpux11*)
11335 - # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
11336 - lt_cv_prog_cc_wl='-Wl,'
11337 - lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
11338 - lt_cv_prog_cc_pic='+Z'
11342 - lt_cv_prog_cc_wl='-Wl,'
11343 - lt_cv_prog_cc_static='-non_shared'
11344 - # PIC (with -KPIC) is the default.
11347 - cygwin* | mingw* | pw32* | os2*)
11348 - # This hack is so that the source file can tell whether it is being
11349 - # built for inclusion in a dll (and should export symbols for example).
11350 - lt_cv_prog_cc_pic='-DDLL_EXPORT'
11354 - lt_cv_prog_cc_pic='-KPIC'
11355 - lt_cv_prog_cc_static='-Bstatic'
11358 - osf3* | osf4* | osf5*)
11359 - # All OSF/1 code is PIC.
11360 - lt_cv_prog_cc_wl='-Wl,'
11361 - lt_cv_prog_cc_static='-non_shared'
11365 - lt_cv_prog_cc_pic='-Kpic'
11366 - lt_cv_prog_cc_static='-dn'
11367 - lt_cv_prog_cc_shlib='-belf'
11371 - lt_cv_prog_cc_pic='-KPIC'
11372 - lt_cv_prog_cc_static='-Bstatic'
11373 - lt_cv_prog_cc_wl='-Wl,'
11377 - lt_cv_prog_cc_pic='-PIC'
11378 - lt_cv_prog_cc_static='-Bstatic'
11379 - lt_cv_prog_cc_wl='-Qoption ld '
11382 - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
11383 - lt_cv_prog_cc_pic='-KPIC'
11384 - lt_cv_prog_cc_static='-Bstatic'
11385 - if test "x$host_vendor" = xsni; then
11386 - lt_cv_prog_cc_wl='-LD'
11388 - lt_cv_prog_cc_wl='-Wl,'
11393 - lt_cv_prog_cc_pic='-pic'
11394 - lt_cv_prog_cc_static='-Bstatic'
11398 - if test -d /usr/nec ;then
11399 - lt_cv_prog_cc_pic='-Kconform_pic'
11400 - lt_cv_prog_cc_static='-Bstatic'
11405 - lt_cv_prog_cc_can_build_shared=no
11412 -if test -z "$lt_cv_prog_cc_pic"; then
11413 - echo "$as_me:$LINENO: result: none" >&5
11414 -echo "${ECHO_T}none" >&6
11416 - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5
11417 -echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6
11419 - # Check to make sure the pic_flag actually works.
11420 - echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
11421 -echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6
11422 - if test "${lt_cv_prog_cc_pic_works+set}" = set; then
11423 - echo $ECHO_N "(cached) $ECHO_C" >&6
11425 - save_CFLAGS="$CFLAGS"
11426 - CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
11427 - cat >conftest.$ac_ext <<_ACEOF
11428 -#line $LINENO "configure"
11429 -#include "confdefs.h"
11439 -rm -f conftest.$ac_objext
11440 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11441 - (eval $ac_compile) 2>&5
11443 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11444 - (exit $ac_status); } &&
11445 - { ac_try='test -s conftest.$ac_objext'
11446 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11447 - (eval $ac_try) 2>&5
11449 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11450 - (exit $ac_status); }; }; then
11452 - hpux9* | hpux10* | hpux11*)
11453 - # On HP-UX, both CC and GCC only warn that PIC is supported... then
11454 - # they create non-PIC objects. So, if there were any warnings, we
11455 - # assume that PIC is not supported.
11456 - if test -s conftest.err; then
11457 - lt_cv_prog_cc_pic_works=no
11459 - lt_cv_prog_cc_pic_works=yes
11463 - lt_cv_prog_cc_pic_works=yes
11468 - echo "$as_me: failed program was:" >&5
11469 -cat conftest.$ac_ext >&5
11470 - lt_cv_prog_cc_pic_works=no
11473 -rm -f conftest.$ac_objext conftest.$ac_ext
11474 - CFLAGS="$save_CFLAGS"
11479 - if test "X$lt_cv_prog_cc_pic_works" = Xno; then
11480 - lt_cv_prog_cc_pic=
11481 - lt_cv_prog_cc_can_build_shared=no
11483 - lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
11486 - echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5
11487 -echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6
11490 -# Check for any special shared library compilation flags.
11491 -if test -n "$lt_cv_prog_cc_shlib"; then
11492 - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5
11493 -echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;}
11494 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then :
11496 - { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
11497 -echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
11498 - lt_cv_prog_cc_can_build_shared=no
11502 -echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
11503 -echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6
11504 -if test "${lt_cv_prog_cc_static_works+set}" = set; then
11505 - echo $ECHO_N "(cached) $ECHO_C" >&6
11507 - lt_cv_prog_cc_static_works=no
11508 - save_LDFLAGS="$LDFLAGS"
11509 - LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
11510 - cat >conftest.$ac_ext <<_ACEOF
11511 -#line $LINENO "configure"
11512 -#include "confdefs.h"
11522 -rm -f conftest.$ac_objext conftest$ac_exeext
11523 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11524 - (eval $ac_link) 2>&5
11526 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11527 - (exit $ac_status); } &&
11528 - { ac_try='test -s conftest$ac_exeext'
11529 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11530 - (eval $ac_try) 2>&5
11532 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11533 - (exit $ac_status); }; }; then
11534 - lt_cv_prog_cc_static_works=yes
11536 - echo "$as_me: failed program was:" >&5
11537 -cat conftest.$ac_ext >&5
11539 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
11540 - LDFLAGS="$save_LDFLAGS"
11545 -# Belt *and* braces to stop my trousers falling down:
11546 -test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
11547 -echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5
11548 -echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6
11550 -pic_flag="$lt_cv_prog_cc_pic"
11551 -special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
11552 -wl="$lt_cv_prog_cc_wl"
11553 -link_static_flag="$lt_cv_prog_cc_static"
11554 -no_builtin_flag="$lt_cv_prog_cc_no_builtin"
11555 -can_build_shared="$lt_cv_prog_cc_can_build_shared"
11558 -# Check to see if options -o and -c are simultaneously supported by compiler
11559 -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
11560 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
11561 -if test "${lt_cv_compiler_c_o+set}" = set; then
11562 - echo $ECHO_N "(cached) $ECHO_C" >&6
11565 -$rm -r conftest 2>/dev/null
11568 -echo "int some_variable = 0;" > conftest.$ac_ext
11570 -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
11571 -# that will create temporary files in the current directory regardless of
11572 -# the output directory. Thus, making CWD read-only will cause this test
11573 -# to fail, enabling locking or at least warning the user not to do parallel
11576 -save_CFLAGS="$CFLAGS"
11577 -CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
11579 -if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
11580 - # The compiler can only warn and ignore the option if not recognized
11581 - # So say no if there are warnings
11582 - if test -s out/conftest.err; then
11583 - lt_cv_compiler_c_o=no
11585 - lt_cv_compiler_c_o=yes
11588 - # Append any errors to the config.log.
11589 - cat out/conftest.err 1>&5
11590 - lt_cv_compiler_c_o=no
11592 -CFLAGS="$save_CFLAGS"
11594 -$rm conftest* out/*
11598 -$rm -r conftest 2>/dev/null
11602 -compiler_c_o=$lt_cv_compiler_c_o
11603 -echo "$as_me:$LINENO: result: $compiler_c_o" >&5
11604 -echo "${ECHO_T}$compiler_c_o" >&6
11606 -if test x"$compiler_c_o" = x"yes"; then
11607 - # Check to see if we can write to a .lo
11608 - echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5
11609 -echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6
11610 - if test "${lt_cv_compiler_o_lo+set}" = set; then
11611 - echo $ECHO_N "(cached) $ECHO_C" >&6
11614 - lt_cv_compiler_o_lo=no
11615 - save_CFLAGS="$CFLAGS"
11616 - CFLAGS="$CFLAGS -c -o conftest.lo"
11617 - save_objext="$ac_objext"
11619 - cat >conftest.$ac_ext <<_ACEOF
11620 -#line $LINENO "configure"
11621 -#include "confdefs.h"
11626 -int some_variable = 0;
11631 -rm -f conftest.$ac_objext
11632 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11633 - (eval $ac_compile) 2>&5
11635 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11636 - (exit $ac_status); } &&
11637 - { ac_try='test -s conftest.$ac_objext'
11638 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11639 - (eval $ac_try) 2>&5
11641 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11642 - (exit $ac_status); }; }; then
11643 - # The compiler can only warn and ignore the option if not recognized
11644 - # So say no if there are warnings
11645 - if test -s conftest.err; then
11646 - lt_cv_compiler_o_lo=no
11648 - lt_cv_compiler_o_lo=yes
11652 - echo "$as_me: failed program was:" >&5
11653 -cat conftest.$ac_ext >&5
11655 -rm -f conftest.$ac_objext conftest.$ac_ext
11656 - ac_objext="$save_objext"
11657 - CFLAGS="$save_CFLAGS"
11661 - compiler_o_lo=$lt_cv_compiler_o_lo
11662 - echo "$as_me:$LINENO: result: $compiler_o_lo" >&5
11663 -echo "${ECHO_T}$compiler_o_lo" >&6
11668 -# Check to see if we can do hard links to lock some files if needed
11669 -hard_links="nottested"
11670 -if test "$compiler_c_o" = no && test "$need_locks" != no; then
11671 - # do not overwrite the value of need_locks provided by the user
11672 - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
11673 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
11676 - ln conftest.a conftest.b 2>/dev/null && hard_links=no
11678 - ln conftest.a conftest.b 2>&5 || hard_links=no
11679 - ln conftest.a conftest.b 2>/dev/null && hard_links=no
11680 - echo "$as_me:$LINENO: result: $hard_links" >&5
11681 -echo "${ECHO_T}$hard_links" >&6
11682 - if test "$hard_links" = no; then
11683 - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
11684 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
11691 -if test "$GCC" = yes; then
11692 - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
11693 - echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
11694 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
11695 - echo "int some_variable = 0;" > conftest.$ac_ext
11696 - save_CFLAGS="$CFLAGS"
11697 - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
11698 - compiler_rtti_exceptions=no
11699 - cat >conftest.$ac_ext <<_ACEOF
11700 -#line $LINENO "configure"
11701 -#include "confdefs.h"
11706 -int some_variable = 0;
11711 -rm -f conftest.$ac_objext
11712 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11713 - (eval $ac_compile) 2>&5
11715 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11716 - (exit $ac_status); } &&
11717 - { ac_try='test -s conftest.$ac_objext'
11718 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11719 - (eval $ac_try) 2>&5
11721 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
11722 - (exit $ac_status); }; }; then
11723 - # The compiler can only warn and ignore the option if not recognized
11724 - # So say no if there are warnings
11725 - if test -s conftest.err; then
11726 - compiler_rtti_exceptions=no
11728 - compiler_rtti_exceptions=yes
11732 - echo "$as_me: failed program was:" >&5
11733 -cat conftest.$ac_ext >&5
11735 -rm -f conftest.$ac_objext conftest.$ac_ext
11736 - CFLAGS="$save_CFLAGS"
11737 - echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5
11738 -echo "${ECHO_T}$compiler_rtti_exceptions" >&6
11740 - if test "$compiler_rtti_exceptions" = "yes"; then
11741 - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
11743 - no_builtin_flag=' -fno-builtin'
11747 -# See if the linker supports building shared libraries.
11748 -echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5
11749 -echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6
11751 -allow_undefined_flag=
11752 -no_undefined_flag=
11753 -need_lib_prefix=unknown
11754 -need_version=unknown
11755 -# when you set need_version to no, make sure it does not cause -set_version
11756 -# flags to be left without arguments
11758 -archive_expsym_cmds=
11759 -old_archive_from_new_cmds=
11760 -old_archive_from_expsyms_cmds=
11761 -export_dynamic_flag_spec=
11762 -whole_archive_flag_spec=
11763 -thread_safe_flag_spec=
11764 -hardcode_into_libs=no
11765 -hardcode_libdir_flag_spec=
11766 -hardcode_libdir_separator=
11767 -hardcode_direct=no
11768 -hardcode_minus_L=no
11769 -hardcode_shlibpath_var=unsupported
11771 -link_all_deplibs=unknown
11772 -always_export_symbols=no
11773 -export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
11774 -# include_expsyms should be a list of space-separated symbols to be *always*
11775 -# included in the symbol list
11777 -# exclude_expsyms can be an egrep regular expression of symbols to exclude
11778 -# it will be wrapped by ` (' and `)$', so one must not match beginning or
11779 -# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
11780 -# as well as any symbol that contains `d'.
11781 -exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
11782 -# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
11783 -# platforms (ab)use it in PIC code, but their linkers get confused if
11784 -# the symbol is explicitly referenced. Since portable code cannot
11785 -# rely on this symbol name, it's probably fine to never include it in
11786 -# preloaded symbol tables.
11787 -extract_expsyms_cmds=
11790 -cygwin* | mingw* | pw32*)
11791 - # FIXME: the MSVC++ port hasn't been tested in a loooong time
11792 - # When not using gcc, we currently assume that we are using
11793 - # Microsoft Visual C++.
11794 - if test "$GCC" != yes; then
11804 -if test "$with_gnu_ld" = yes; then
11805 - # If archive_cmds runs LD, not CC, wlarc should be empty
11808 - # See if GNU ld supports shared libraries.
11810 - aix3* | aix4* | aix5*)
11811 - # On AIX, the GNU linker is very broken
11812 - # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
11816 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported
11817 -*** to be unable to reliably create shared libraries on AIX.
11818 -*** Therefore, libtool is disabling shared libraries support. If you
11819 -*** really care for shared libraries, you may want to modify your PATH
11820 -*** so that a non-GNU linker is found, and then restart.
11826 - 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)'
11827 - hardcode_libdir_flag_spec='-L$libdir'
11828 - hardcode_minus_L=yes
11830 - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
11831 - # that the semantics of dynamic libraries on AmigaOS, at least up
11832 - # to version 4, is to share data among multiple programs linked
11833 - # with the same dynamic library. Since this doesn't match the
11834 - # behavior of shared libraries on other platforms, we can use
11840 - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
11841 - allow_undefined_flag=unsupported
11842 - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
11843 - # support --undefined. This deserves some investigation. FIXME
11844 - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11850 - cygwin* | mingw* | pw32*)
11851 - # hardcode_libdir_flag_spec is actually meaningless, as there is
11852 - # no search path for DLLs.
11853 - hardcode_libdir_flag_spec='-L$libdir'
11854 - allow_undefined_flag=unsupported
11855 - always_export_symbols=yes
11857 - extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
11858 - sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
11859 - test -f $output_objdir/impgen.exe || (cd $output_objdir && \
11860 - if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
11861 - else $CC -o impgen impgen.c ; fi)~
11862 - $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
11864 - old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
11866 - # cygwin and mingw dlls have different entry points and sets of symbols
11868 - # FIXME: what about values for MSVC?
11869 - dll_entry=__cygwin_dll_entry@12
11870 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
11874 - dll_entry=_DllMainCRTStartup@12
11875 - dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
11879 - # mingw and cygwin differ, and it's simplest to just exclude the union
11880 - # of the two symbol sets.
11881 - dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
11883 - # recent cygwin and mingw systems supply a stub DllMain which the user
11884 - # can override, but on older systems we have to supply one (in ltdll.c)
11885 - if test "x$lt_cv_need_dllmain" = "xyes"; then
11886 - ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
11887 - 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~
11888 - test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
11894 - # Extract the symbol export list from an `--export-all' def file,
11895 - # then regenerate the def file from the symbol export list, so that
11896 - # the compiled dll only exports the symbol export list.
11897 - # Be careful not to strip the DATA tag left be newer dlltools.
11898 - export_symbols_cmds="$ltdll_cmds"'
11899 - $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
11900 - sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
11902 - # If the export-symbols file already is a .def file (1st line
11903 - # is EXPORTS), use it as is.
11904 - # If DATA tags from a recent dlltool are present, honour them!
11905 - archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
11906 - cp $export_symbols $output_objdir/$soname-def;
11908 - echo EXPORTS > $output_objdir/$soname-def;
11910 - cat $export_symbols | while read symbol; do
11911 - set dummy \$symbol;
11913 - 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
11914 - *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
11916 - _lt_hint=`expr 1 + \$_lt_hint`;
11920 - $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~
11921 - $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~
11922 - $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~
11923 - $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~
11924 - $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
11928 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
11929 - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
11932 - archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11933 - archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
11937 - solaris* | sysv5*)
11938 - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
11942 -*** Warning: The releases 2.8.* of the GNU linker cannot reliably
11943 -*** create shared libraries on Solaris systems. Therefore, libtool
11944 -*** is disabling shared libraries support. We urge you to upgrade GNU
11945 -*** binutils to release 2.9.1 or newer. Another option is to modify
11946 -*** your PATH or compiler configuration so that the native linker is
11947 -*** used, and then restart.
11950 - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
11951 - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11952 - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
11959 - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
11961 - hardcode_direct=yes
11962 - hardcode_shlibpath_var=no
11966 - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
11967 - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11968 - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
11975 - if test "$ld_shlibs" = yes; then
11976 - runpath_var=LD_RUN_PATH
11977 - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
11978 - export_dynamic_flag_spec='${wl}--export-dynamic'
11980 - cygwin* | mingw* | pw32*)
11981 - # dlltool doesn't understand --whole-archive et. al.
11982 - whole_archive_flag_spec=
11985 - # ancient GNU ld didn't support --whole-archive et. al.
11986 - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
11987 - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
11989 - whole_archive_flag_spec=
11995 - # PORTME fill in a description of your system's linker (not GNU ld)
11998 - allow_undefined_flag=unsupported
11999 - always_export_symbols=yes
12000 - 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'
12001 - # Note: this linker hardcodes the directories in LIBPATH if there
12002 - # are no directories specified by -L.
12003 - hardcode_minus_L=yes
12004 - if test "$GCC" = yes && test -z "$link_static_flag"; then
12005 - # Neither direct hardcoding nor static linking is supported with a
12006 - # broken collect2.
12007 - hardcode_direct=unsupported
12012 - if test "$host_cpu" = ia64; then
12013 - # On IA64, the linker does run time linking by default, so we don't
12014 - # have to do anything special.
12015 - aix_use_runtimelinking=no
12016 - exp_sym_flag='-Bexport'
12019 - aix_use_runtimelinking=no
12021 - # Test if we are trying to use run time linking or normal
12022 - # AIX style linking. If -brtl is somewhere in LDFLAGS, we
12023 - # need to do runtime linking.
12024 - case $host_os in aix4.[23]|aix4.[23].*|aix5*)
12025 - for ld_flag in $LDFLAGS; do
12026 - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
12027 - aix_use_runtimelinking=yes
12033 - exp_sym_flag='-bexport'
12034 - no_entry_flag='-bnoentry'
12037 - # When large executables or shared objects are built, AIX ld can
12038 - # have problems creating the table of contents. If linking a library
12039 - # or program results in "error TOC overflow" add -mminimal-toc to
12040 - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
12041 - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
12043 - hardcode_direct=yes
12045 - hardcode_libdir_separator=':'
12046 - if test "$GCC" = yes; then
12047 - case $host_os in aix4.[012]|aix4.[012].*)
12048 - collect2name=`${CC} -print-prog-name=collect2`
12049 - if test -f "$collect2name" && \
12050 - strings "$collect2name" | grep resolve_lib_name >/dev/null
12052 - # We have reworked collect2
12053 - hardcode_direct=yes
12055 - # We have old collect2
12056 - hardcode_direct=unsupported
12057 - # It fails to find uninstalled libraries when the uninstalled
12058 - # path is not listed in the libpath. Setting hardcode_minus_L
12059 - # to unsupported forces relinking
12060 - hardcode_minus_L=yes
12061 - hardcode_libdir_flag_spec='-L$libdir'
12062 - hardcode_libdir_separator=
12066 - shared_flag='-shared'
12069 - if test "$host_cpu" = ia64; then
12070 - shared_flag='${wl}-G'
12072 - if test "$aix_use_runtimelinking" = yes; then
12073 - shared_flag='${wl}-G'
12075 - shared_flag='${wl}-bM:SRE'
12080 - # It seems that -bexpall can do strange things, so it is better to
12081 - # generate a list of symbols to export.
12082 - always_export_symbols=yes
12083 - if test "$aix_use_runtimelinking" = yes; then
12084 - # Warning - without using the other runtime loading flags (-brtl),
12085 - # -berok will link without error, but may produce a broken library.
12086 - allow_undefined_flag='-berok'
12087 - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
12088 - 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"
12090 - if test "$host_cpu" = ia64; then
12091 - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
12092 - allow_undefined_flag="-z nodefs"
12093 - 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"
12095 - hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
12096 - # Warning - without using the other run time loading flags,
12097 - # -berok will link without error, but may produce a broken library.
12098 - allow_undefined_flag='${wl}-berok'
12099 - # This is a bit strange, but is similar to how AIX traditionally builds
12100 - # it's shared libraries.
12101 - 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'
12107 - 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)'
12108 - hardcode_libdir_flag_spec='-L$libdir'
12109 - hardcode_minus_L=yes
12110 - # see comment about different semantics on the GNU ld section
12114 - cygwin* | mingw* | pw32*)
12115 - # When not using gcc, we currently assume that we are using
12116 - # Microsoft Visual C++.
12117 - # hardcode_libdir_flag_spec is actually meaningless, as there is
12118 - # no search path for DLLs.
12119 - hardcode_libdir_flag_spec=' '
12120 - allow_undefined_flag=unsupported
12121 - # Tell ltmain to make .lib files, not .a files.
12123 - # FIXME: Setting linknames here is a bad hack.
12124 - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
12125 - # The linker will automatically build a .lib file if we build a DLL.
12126 - old_archive_from_new_cmds='true'
12127 - # FIXME: Should let the user specify the lib program.
12128 - old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
12129 - fix_srcfile_path='`cygpath -w "$srcfile"`'
12132 - darwin* | rhapsody*)
12133 - case "$host_os" in
12134 - rhapsody* | darwin1.[012])
12135 - allow_undefined_flag='-undefined suppress'
12137 - *) # Darwin 1.3 on
12138 - allow_undefined_flag='-flat_namespace -undefined suppress'
12141 - # FIXME: Relying on posixy $() will cause problems for
12142 - # cross-compilation, but unfortunately the echo tests do not
12143 - # yet detect zsh echo's removal of \ escapes.
12144 - 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'
12145 - # We need to add '_' to the symbols in $export_symbols first
12146 - #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
12147 - hardcode_direct=yes
12148 - hardcode_shlibpath_var=no
12149 - whole_archive_flag_spec='-all_load $convenience'
12156 - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
12157 - # support. Future versions do this automatically, but an explicit c++rt0.o
12158 - # does not break anything, and helps significantly (at the cost of a little
12161 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
12162 - hardcode_libdir_flag_spec='-R$libdir'
12163 - hardcode_direct=yes
12164 - hardcode_shlibpath_var=no
12167 - # Unfortunately, older versions of FreeBSD 2 do not have this feature.
12169 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12170 - hardcode_direct=yes
12171 - hardcode_minus_L=yes
12172 - hardcode_shlibpath_var=no
12175 - # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
12177 - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
12178 - hardcode_libdir_flag_spec='-R$libdir'
12179 - hardcode_direct=yes
12180 - hardcode_shlibpath_var=no
12183 - hpux9* | hpux10* | hpux11*)
12185 - 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' ;;
12186 - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
12188 - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
12189 - hardcode_libdir_separator=:
12190 - hardcode_direct=yes
12191 - hardcode_minus_L=yes # Not in the search PATH, but as the default
12192 - # location of the library.
12193 - export_dynamic_flag_spec='${wl}-E'
12197 - if test "$GCC" = yes; then
12198 - 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'
12200 - 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'
12202 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12203 - hardcode_libdir_separator=:
12204 - link_all_deplibs=yes
12208 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
12209 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
12211 - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
12213 - hardcode_libdir_flag_spec='-R$libdir'
12214 - hardcode_direct=yes
12215 - hardcode_shlibpath_var=no
12219 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12220 - hardcode_direct=yes
12221 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12222 - hardcode_libdir_separator=:
12223 - hardcode_shlibpath_var=no
12227 - hardcode_direct=yes
12228 - hardcode_shlibpath_var=no
12229 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
12230 - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
12231 - hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12232 - export_dynamic_flag_spec='${wl}-E'
12234 - case "$host_os" in
12235 - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
12236 - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12237 - hardcode_libdir_flag_spec='-R$libdir'
12240 - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
12241 - hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12248 - hardcode_libdir_flag_spec='-L$libdir'
12249 - hardcode_minus_L=yes
12250 - allow_undefined_flag=unsupported
12251 - 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'
12252 - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
12256 - if test "$GCC" = yes; then
12257 - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12258 - 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'
12260 - allow_undefined_flag=' -expect_unresolved \*'
12261 - 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'
12263 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12264 - hardcode_libdir_separator=:
12267 - osf4* | osf5*) # as osf3* with the addition of -msym flag
12268 - if test "$GCC" = yes; then
12269 - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12270 - 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'
12271 - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12273 - allow_undefined_flag=' -expect_unresolved \*'
12274 - 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'
12275 - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
12276 - $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'
12278 - #Both c and cxx compiler support -rpath directly
12279 - hardcode_libdir_flag_spec='-rpath $libdir'
12281 - hardcode_libdir_separator=:
12285 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12286 - hardcode_shlibpath_var=no
12287 - runpath_var=LD_RUN_PATH
12288 - hardcode_runpath_var=yes
12289 - export_dynamic_flag_spec='${wl}-Bexport'
12293 - # gcc --version < 3.0 without binutils cannot create self contained
12294 - # shared libraries reliably, requiring libgcc.a to resolve some of
12295 - # the object symbols generated in some cases. Libraries that use
12296 - # assert need libgcc.a to resolve __eprintf, for example. Linking
12297 - # a copy of libgcc.a into every shared library to guarantee resolving
12298 - # such symbols causes other problems: According to Tim Van Holder
12299 - # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
12300 - # (to the application) exception stack for one thing.
12301 - no_undefined_flag=' -z defs'
12302 - if test "$GCC" = yes; then
12303 - case `$CC --version 2>/dev/null` in
12307 -*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
12308 -*** create self contained shared libraries on Solaris systems, without
12309 -*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
12310 -*** -no-undefined support, which will at least allow you to build shared
12311 -*** libraries. However, you may find that when you link such libraries
12312 -*** into an application without using GCC, you have to manually add
12313 -*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
12314 -*** upgrade to a newer version of GCC. Another option is to rebuild your
12315 -*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
12318 - no_undefined_flag=
12322 - # $CC -shared without GNU ld will not create a library from C++
12323 - # object files and a static libstdc++, better avoid it by now
12324 - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
12325 - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
12326 - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
12327 - hardcode_libdir_flag_spec='-R$libdir'
12328 - hardcode_shlibpath_var=no
12330 - solaris2.[0-5] | solaris2.[0-5].*) ;;
12331 - *) # Supported since Solaris 2.6 (maybe 2.5.1?)
12332 - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
12334 - link_all_deplibs=yes
12338 - if test "x$host_vendor" = xsequent; then
12339 - # Use $CC to link under sequent, because it throws in some extra .o
12340 - # files that make .init and .fini sections work.
12341 - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
12343 - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
12345 - hardcode_libdir_flag_spec='-L$libdir'
12346 - hardcode_direct=yes
12347 - hardcode_minus_L=yes
12348 - hardcode_shlibpath_var=no
12352 - if test "x$host_vendor" = xsno; then
12353 - archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linker_flags'
12354 - hardcode_direct=yes # is this really true???
12356 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12357 - hardcode_direct=no #Motorola manual says yes, but my tests say they lie
12359 - runpath_var='LD_RUN_PATH'
12360 - hardcode_shlibpath_var=no
12364 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12365 - hardcode_shlibpath_var=no
12366 - export_dynamic_flag_spec='-Bexport'
12370 - no_undefined_flag=' -z text'
12371 - # $CC -shared without GNU ld will not create a library from C++
12372 - # object files and a static libstdc++, better avoid it by now
12373 - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
12374 - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
12375 - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
12376 - hardcode_libdir_flag_spec=
12377 - hardcode_shlibpath_var=no
12378 - runpath_var='LD_RUN_PATH'
12382 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12383 - hardcode_libdir_flag_spec='-L$libdir'
12384 - hardcode_shlibpath_var=no
12388 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12389 - hardcode_libdir_flag_spec='-L$libdir'
12390 - hardcode_shlibpath_var=no
12394 - if test -d /usr/nec; then
12395 - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12396 - hardcode_shlibpath_var=no
12397 - runpath_var=LD_RUN_PATH
12398 - hardcode_runpath_var=yes
12404 - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
12405 - hardcode_direct=yes
12406 - hardcode_minus_L=no
12407 - hardcode_shlibpath_var=no
12408 - hardcode_runpath_var=yes
12409 - runpath_var=LD_RUN_PATH
12412 - sysv5uw7* | unixware7*)
12413 - no_undefined_flag='${wl}-z ${wl}text'
12414 - if test "$GCC" = yes; then
12415 - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
12417 - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
12419 - runpath_var='LD_RUN_PATH'
12420 - hardcode_shlibpath_var=no
12428 -echo "$as_me:$LINENO: result: $ld_shlibs" >&5
12429 -echo "${ECHO_T}$ld_shlibs" >&6
12430 -test "$ld_shlibs" = no && can_build_shared=no
12432 -# Check hardcoding attributes.
12433 -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
12434 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
12436 -if test -n "$hardcode_libdir_flag_spec" || \
12437 - test -n "$runpath_var"; then
12439 - # We can hardcode non-existant directories.
12440 - if test "$hardcode_direct" != no &&
12441 - # If the only mechanism to avoid hardcoding is shlibpath_var, we
12442 - # have to relink, otherwise we might link with an installed library
12443 - # when we should be linking with a yet-to-be-installed one
12444 - ## test "$hardcode_shlibpath_var" != no &&
12445 - test "$hardcode_minus_L" != no; then
12446 - # Linking always hardcodes the temporary library directory.
12447 - hardcode_action=relink
12449 - # We can link without hardcoding, and we can hardcode nonexisting dirs.
12450 - hardcode_action=immediate
12453 - # We cannot hardcode anything, or else we can only hardcode existing
12455 - hardcode_action=unsupported
12457 -echo "$as_me:$LINENO: result: $hardcode_action" >&5
12458 -echo "${ECHO_T}$hardcode_action" >&6
12462 -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
12463 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
12464 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
12465 - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
12466 - test -z "$striplib" && striplib="$STRIP --strip-unneeded"
12467 - echo "$as_me:$LINENO: result: yes" >&5
12468 -echo "${ECHO_T}yes" >&6
12470 - echo "$as_me:$LINENO: result: no" >&5
12471 -echo "${ECHO_T}no" >&6
12474 -reload_cmds='$LD$reload_flag -o $output$reload_objs'
12475 -test -z "$deplibs_check_method" && deplibs_check_method=unknown
12477 -# PORTME Fill in your ld.so characteristics
12478 -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
12479 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
12480 -library_names_spec=
12481 -libname_spec='lib$name'
12484 -postuninstall_cmds=
12488 -shlibpath_overrides_runpath=unknown
12490 -dynamic_linker="$host_os ld.so"
12491 -sys_lib_dlsearch_path_spec="/lib /usr/lib"
12492 -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
12496 - version_type=linux
12497 - library_names_spec='${libname}${release}.so$versuffix $libname.a'
12498 - shlibpath_var=LIBPATH
12500 - # AIX has no versioning support, so we append a major version to the name.
12501 - soname_spec='${libname}${release}.so$major'
12505 - version_type=linux
12506 - if test "$host_cpu" = ia64; then
12507 - # AIX 5 supports IA64
12508 - library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
12509 - shlibpath_var=LD_LIBRARY_PATH
12511 - # With GCC up to 2.95.x, collect2 would create an import file
12512 - # for dependence libraries. The import file would start with
12513 - # the line `#! .'. This would cause the generated library to
12514 - # depend on `.', always an invalid library. This was fixed in
12515 - # development snapshots of GCC prior to 3.0.
12517 - aix4 | aix4.[01] | aix4.[01].*)
12518 - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
12520 - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
12523 - can_build_shared=no
12527 - # AIX (on Power*) has no versioning support, so currently we can
12528 - # not hardcode correct soname into executable. Probably we can
12529 - # add versioning support to collect2, so additional links can
12530 - # be useful in future.
12531 - if test "$aix_use_runtimelinking" = yes; then
12532 - # If using run time linking (on AIX 4.2 or later) use lib<name>.so
12533 - # instead of lib<name>.a to let people know that these are not
12534 - # typical AIX shared libraries.
12535 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12537 - # We preserve .a as extension for shared libraries through AIX4.2
12538 - # and later when we are not doing run time linking.
12539 - library_names_spec='${libname}${release}.a $libname.a'
12540 - soname_spec='${libname}${release}.so$major'
12542 - shlibpath_var=LIBPATH
12547 - library_names_spec='$libname.ixlibrary $libname.a'
12548 - # Create ${libname}_ixlibrary.a entries in /sys/libs.
12549 - 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'
12553 - library_names_spec='${libname}.so'
12554 - dynamic_linker="$host_os ld.so"
12555 - shlibpath_var=LIBRARY_PATH
12559 - version_type=linux
12561 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12562 - soname_spec='${libname}${release}.so$major'
12563 - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
12564 - shlibpath_var=LD_LIBRARY_PATH
12565 - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
12566 - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
12567 - export_dynamic_flag_spec=-rdynamic
12568 - # the default ld.so.conf also contains /usr/contrib/lib and
12569 - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
12570 - # libtool to hard-code these into programs
12573 -cygwin* | mingw* | pw32*)
12574 - version_type=windows
12576 - need_lib_prefix=no
12577 - case $GCC,$host_os in
12579 - library_names_spec='$libname.dll.a'
12580 - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
12581 - postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
12582 - dldir=$destdir/`dirname \$dlpath`~
12583 - test -d \$dldir || mkdir -p \$dldir~
12584 - $install_prog .libs/$dlname \$dldir/$dlname'
12585 - postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
12586 - dlpath=$dir/\$dldll~
12590 - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
12591 - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
12594 - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
12597 - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
12600 - dynamic_linker='Win32 ld.exe'
12601 - # FIXME: first we should search . and the directory the executable is in
12602 - shlibpath_var=PATH
12605 -darwin* | rhapsody*)
12606 - dynamic_linker="$host_os dyld"
12607 - version_type=darwin
12608 - need_lib_prefix=no
12610 - # FIXME: Relying on posixy $() will cause problems for
12611 - # cross-compilation, but unfortunately the echo tests do not
12612 - # yet detect zsh echo's removal of \ escapes.
12613 - 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)'
12614 - soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
12615 - shlibpath_overrides_runpath=yes
12616 - shlibpath_var=DYLD_LIBRARY_PATH
12620 - dynamic_linker=no
12624 - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
12625 - version_type=freebsd-$objformat
12626 - case $version_type in
12628 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
12630 - need_lib_prefix=no
12633 - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
12637 - shlibpath_var=LD_LIBRARY_PATH
12640 - shlibpath_overrides_runpath=yes
12643 - shlibpath_overrides_runpath=no
12644 - hardcode_into_libs=yes
12650 - version_type=linux
12651 - need_lib_prefix=no
12653 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
12654 - soname_spec='${libname}${release}.so$major'
12655 - shlibpath_var=LD_LIBRARY_PATH
12656 - hardcode_into_libs=yes
12659 -hpux9* | hpux10* | hpux11*)
12660 - # Give a soname corresponding to the major version so that dld.sl refuses to
12661 - # link against other versions.
12662 - dynamic_linker="$host_os dld.sl"
12663 - version_type=sunos
12664 - need_lib_prefix=no
12666 - shlibpath_var=SHLIB_PATH
12667 - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
12668 - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
12669 - soname_spec='${libname}${release}.sl$major'
12670 - # HP-UX runs *really* slowly unless shared libraries are mode 555.
12671 - postinstall_cmds='chmod 555 $lib'
12675 - version_type=irix
12676 - need_lib_prefix=no
12678 - soname_spec='${libname}${release}.so$major'
12679 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
12682 - libsuff= shlibsuff=
12685 - case $LD in # libtool.m4 will add one of these switches to LD
12686 - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
12687 - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
12688 - *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
12689 - *) libsuff= shlibsuff= libmagic=never-match;;
12693 - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
12694 - shlibpath_overrides_runpath=no
12695 - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
12696 - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
12699 -# No shared lib support for Linux oldld, aout, or coff.
12700 -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
12701 - dynamic_linker=no
12704 -# This must be Linux ELF.
12706 - version_type=linux
12707 - need_lib_prefix=no
12709 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12710 - soname_spec='${libname}${release}.so$major'
12711 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
12712 - shlibpath_var=LD_LIBRARY_PATH
12713 - shlibpath_overrides_runpath=no
12714 - # This implies no fast_install, which is unacceptable.
12715 - # Some rework will be needed to allow for fast_install
12716 - # before this can be enabled.
12717 - hardcode_into_libs=yes
12719 - # We used to test for /lib/ld.so.1 and disable shared libraries on
12720 - # powerpc, because MkLinux only supported shared libraries with the
12721 - # GNU dynamic linker. Since this was broken with cross compilers,
12722 - # most powerpc-linux boxes support dynamic linking these days and
12723 - # people can always --disable-shared, the test was removed, and we
12724 - # assume the GNU/Linux dynamic linker is in use.
12725 - dynamic_linker='GNU/Linux ld.so'
12729 - version_type=sunos
12730 - need_lib_prefix=no
12732 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
12733 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
12734 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
12735 - dynamic_linker='NetBSD (a.out) ld.so'
12737 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
12738 - soname_spec='${libname}${release}.so$major'
12739 - dynamic_linker='NetBSD ld.elf_so'
12741 - shlibpath_var=LD_LIBRARY_PATH
12742 - shlibpath_overrides_runpath=yes
12743 - hardcode_into_libs=yes
12747 - version_type=linux
12748 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12749 - shlibpath_var=LD_LIBRARY_PATH
12750 - shlibpath_overrides_runpath=yes
12754 - version_type=sunos
12755 - need_lib_prefix=no
12757 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
12758 - case "$host_os" in
12759 - openbsd2.[89] | openbsd2.[89].*)
12760 - shlibpath_overrides_runpath=no
12763 - shlibpath_overrides_runpath=yes
12767 - shlibpath_overrides_runpath=yes
12769 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
12770 - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
12771 - shlibpath_var=LD_LIBRARY_PATH
12775 - libname_spec='$name'
12776 - need_lib_prefix=no
12777 - library_names_spec='$libname.dll $libname.a'
12778 - dynamic_linker='OS/2 ld.exe'
12779 - shlibpath_var=LIBPATH
12782 -osf3* | osf4* | osf5*)
12785 - soname_spec='${libname}${release}.so'
12786 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
12787 - shlibpath_var=LD_LIBRARY_PATH
12788 - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
12789 - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
12794 - soname_spec='${libname}${release}.so$major'
12795 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12796 - shlibpath_var=LD_LIBRARY_PATH
12800 - version_type=linux
12801 - need_lib_prefix=no
12803 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12804 - soname_spec='${libname}${release}.so$major'
12805 - shlibpath_var=LD_LIBRARY_PATH
12806 - shlibpath_overrides_runpath=yes
12807 - hardcode_into_libs=yes
12808 - # ldd complains unless libraries are executable
12809 - postinstall_cmds='chmod +x $lib'
12813 - version_type=sunos
12814 - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
12815 - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
12816 - shlibpath_var=LD_LIBRARY_PATH
12817 - shlibpath_overrides_runpath=yes
12818 - if test "$with_gnu_ld" = yes; then
12819 - need_lib_prefix=no
12824 -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
12825 - version_type=linux
12826 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12827 - soname_spec='${libname}${release}.so$major'
12828 - shlibpath_var=LD_LIBRARY_PATH
12829 - case $host_vendor in
12831 - shlibpath_overrides_runpath=no
12834 - need_lib_prefix=no
12836 - shlibpath_overrides_runpath=no
12837 - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
12843 - version_type=linux
12844 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12845 - soname_spec='${libname}${release}.so$major'
12846 - shlibpath_var=LD_LIBRARY_PATH
12850 - version_type=linux
12851 - need_lib_prefix=no
12853 - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
12854 - soname_spec='${libname}${release}.so$major'
12855 - shlibpath_var=LD_LIBRARY_PATH
12859 - if test -d /usr/nec ;then
12860 - version_type=linux
12861 - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
12862 - soname_spec='$libname.so.$major'
12863 - shlibpath_var=LD_LIBRARY_PATH
12868 - dynamic_linker=no
12871 -echo "$as_me:$LINENO: result: $dynamic_linker" >&5
12872 -echo "${ECHO_T}$dynamic_linker" >&6
12873 -test "$dynamic_linker" = no && can_build_shared=no
12875 -# Report the final consequences.
12876 -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
12877 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
12878 -echo "$as_me:$LINENO: result: $can_build_shared" >&5
12879 -echo "${ECHO_T}$can_build_shared" >&6
12881 -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
12882 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
12883 -test "$can_build_shared" = "no" && enable_shared=no
12885 -# On AIX, shared libraries and static libraries use the same namespace, and
12886 -# are all built from PIC.
12887 -case "$host_os" in
12889 - test "$enable_shared" = yes && enable_static=no
12890 - if test -n "$RANLIB"; then
12891 - archive_cmds="$archive_cmds~\$RANLIB \$lib"
12892 - postinstall_cmds='$RANLIB $lib'
12897 - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
12898 - test "$enable_shared" = yes && enable_static=no
12902 -echo "$as_me:$LINENO: result: $enable_shared" >&5
12903 -echo "${ECHO_T}$enable_shared" >&6
12905 -echo "$as_me:$LINENO: checking whether to build static libraries" >&5
12906 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
12907 -# Make sure either enable_shared or enable_static is yes.
12908 -test "$enable_shared" = yes || enable_static=yes
12909 -echo "$as_me:$LINENO: result: $enable_static" >&5
12910 -echo "${ECHO_T}$enable_static" >&6
12912 -if test "$hardcode_action" = relink; then
12913 - # Fast installation is not supported
12914 - enable_fast_install=no
12915 -elif test "$shlibpath_overrides_runpath" = yes ||
12916 - test "$enable_shared" = no; then
12917 - # Fast installation is not necessary
12918 - enable_fast_install=needless
12921 -variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
12922 -if test "$GCC" = yes; then
12923 - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
12926 -if test "x$enable_dlopen" != xyes; then
12927 - enable_dlopen=unknown
12928 - enable_dlopen_self=unknown
12929 - enable_dlopen_self_static=unknown
12932 - lt_cv_dlopen_libs=
12936 - lt_cv_dlopen="load_add_on"
12937 - lt_cv_dlopen_libs=
12938 - lt_cv_dlopen_self=yes
12941 - cygwin* | mingw* | pw32*)
12942 - lt_cv_dlopen="LoadLibrary"
12943 - lt_cv_dlopen_libs=
12947 - echo "$as_me:$LINENO: checking for shl_load" >&5
12948 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
12949 -if test "${ac_cv_func_shl_load+set}" = set; then
12950 - echo $ECHO_N "(cached) $ECHO_C" >&6
12952 - cat >conftest.$ac_ext <<_ACEOF
12953 -#line $LINENO "configure"
12954 -#include "confdefs.h"
12955 -/* System header to define __stub macros and hopefully few prototypes,
12956 - which can conflict with char shl_load (); below. */
12957 -#include <assert.h>
12958 -/* Override any gcc2 internal prototype to avoid an error. */
12959 -#ifdef __cplusplus
12962 -/* We use char because int might match the return type of a gcc2
12963 - builtin and then its argument prototype would still apply. */
12970 -/* The GNU C library defines this for functions which it implements
12971 - to always fail with ENOSYS. Some functions are actually named
12972 - something starting with __ and the normal name is an alias. */
12973 -#if defined (__stub_shl_load) || defined (__stub___shl_load)
12983 -rm -f conftest.$ac_objext conftest$ac_exeext
12984 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12985 - (eval $ac_link) 2>&5
12987 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
12988 - (exit $ac_status); } &&
12989 - { ac_try='test -s conftest$ac_exeext'
12990 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12991 - (eval $ac_try) 2>&5
12993 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
12994 - (exit $ac_status); }; }; then
12995 - ac_cv_func_shl_load=yes
12997 - echo "$as_me: failed program was:" >&5
12998 -cat conftest.$ac_ext >&5
12999 -ac_cv_func_shl_load=no
13001 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13003 -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
13004 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6
13005 -if test $ac_cv_func_shl_load = yes; then
13006 - lt_cv_dlopen="shl_load"
13008 - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
13009 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
13010 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then
13011 - echo $ECHO_N "(cached) $ECHO_C" >&6
13013 - ac_check_lib_save_LIBS=$LIBS
13014 -LIBS="-ldld $LIBS"
13015 -cat >conftest.$ac_ext <<_ACEOF
13016 -#line $LINENO "configure"
13017 -#include "confdefs.h"
13019 -/* Override any gcc2 internal prototype to avoid an error. */
13020 -#ifdef __cplusplus
13023 -/* We use char because int might match the return type of a gcc2
13024 - builtin and then its argument prototype would still apply. */
13034 -rm -f conftest.$ac_objext conftest$ac_exeext
13035 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13036 - (eval $ac_link) 2>&5
13038 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13039 - (exit $ac_status); } &&
13040 - { ac_try='test -s conftest$ac_exeext'
13041 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13042 - (eval $ac_try) 2>&5
13044 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13045 - (exit $ac_status); }; }; then
13046 - ac_cv_lib_dld_shl_load=yes
13048 - echo "$as_me: failed program was:" >&5
13049 -cat conftest.$ac_ext >&5
13050 -ac_cv_lib_dld_shl_load=no
13052 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13053 -LIBS=$ac_check_lib_save_LIBS
13055 -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
13056 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
13057 -if test $ac_cv_lib_dld_shl_load = yes; then
13058 - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
13060 - echo "$as_me:$LINENO: checking for dlopen" >&5
13061 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
13062 -if test "${ac_cv_func_dlopen+set}" = set; then
13063 - echo $ECHO_N "(cached) $ECHO_C" >&6
13065 - cat >conftest.$ac_ext <<_ACEOF
13066 -#line $LINENO "configure"
13067 -#include "confdefs.h"
13068 -/* System header to define __stub macros and hopefully few prototypes,
13069 - which can conflict with char dlopen (); below. */
13070 -#include <assert.h>
13071 -/* Override any gcc2 internal prototype to avoid an error. */
13072 -#ifdef __cplusplus
13075 -/* We use char because int might match the return type of a gcc2
13076 - builtin and then its argument prototype would still apply. */
13083 -/* The GNU C library defines this for functions which it implements
13084 - to always fail with ENOSYS. Some functions are actually named
13085 - something starting with __ and the normal name is an alias. */
13086 -#if defined (__stub_dlopen) || defined (__stub___dlopen)
13096 -rm -f conftest.$ac_objext conftest$ac_exeext
13097 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13098 - (eval $ac_link) 2>&5
13100 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13101 - (exit $ac_status); } &&
13102 - { ac_try='test -s conftest$ac_exeext'
13103 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13104 - (eval $ac_try) 2>&5
13106 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13107 - (exit $ac_status); }; }; then
13108 - ac_cv_func_dlopen=yes
13110 - echo "$as_me: failed program was:" >&5
13111 -cat conftest.$ac_ext >&5
13112 -ac_cv_func_dlopen=no
13114 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13116 -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
13117 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6
13118 -if test $ac_cv_func_dlopen = yes; then
13119 - lt_cv_dlopen="dlopen"
13121 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
13122 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
13123 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
13124 - echo $ECHO_N "(cached) $ECHO_C" >&6
13126 - ac_check_lib_save_LIBS=$LIBS
13128 -cat >conftest.$ac_ext <<_ACEOF
13129 -#line $LINENO "configure"
13130 -#include "confdefs.h"
13132 -/* Override any gcc2 internal prototype to avoid an error. */
13133 -#ifdef __cplusplus
13136 -/* We use char because int might match the return type of a gcc2
13137 - builtin and then its argument prototype would still apply. */
13147 -rm -f conftest.$ac_objext conftest$ac_exeext
13148 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13149 - (eval $ac_link) 2>&5
13151 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13152 - (exit $ac_status); } &&
13153 - { ac_try='test -s conftest$ac_exeext'
13154 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13155 - (eval $ac_try) 2>&5
13157 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13158 - (exit $ac_status); }; }; then
13159 - ac_cv_lib_dl_dlopen=yes
13161 - echo "$as_me: failed program was:" >&5
13162 -cat conftest.$ac_ext >&5
13163 -ac_cv_lib_dl_dlopen=no
13165 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13166 -LIBS=$ac_check_lib_save_LIBS
13168 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
13169 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
13170 -if test $ac_cv_lib_dl_dlopen = yes; then
13171 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
13173 - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
13174 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
13175 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then
13176 - echo $ECHO_N "(cached) $ECHO_C" >&6
13178 - ac_check_lib_save_LIBS=$LIBS
13179 -LIBS="-lsvld $LIBS"
13180 -cat >conftest.$ac_ext <<_ACEOF
13181 -#line $LINENO "configure"
13182 -#include "confdefs.h"
13184 -/* Override any gcc2 internal prototype to avoid an error. */
13185 -#ifdef __cplusplus
13188 -/* We use char because int might match the return type of a gcc2
13189 - builtin and then its argument prototype would still apply. */
13199 -rm -f conftest.$ac_objext conftest$ac_exeext
13200 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13201 - (eval $ac_link) 2>&5
13203 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13204 - (exit $ac_status); } &&
13205 - { ac_try='test -s conftest$ac_exeext'
13206 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13207 - (eval $ac_try) 2>&5
13209 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13210 - (exit $ac_status); }; }; then
13211 - ac_cv_lib_svld_dlopen=yes
13213 - echo "$as_me: failed program was:" >&5
13214 -cat conftest.$ac_ext >&5
13215 -ac_cv_lib_svld_dlopen=no
13217 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13218 -LIBS=$ac_check_lib_save_LIBS
13220 -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
13221 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
13222 -if test $ac_cv_lib_svld_dlopen = yes; then
13223 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
13225 - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
13226 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
13227 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then
13228 - echo $ECHO_N "(cached) $ECHO_C" >&6
13230 - ac_check_lib_save_LIBS=$LIBS
13231 -LIBS="-ldld $LIBS"
13232 -cat >conftest.$ac_ext <<_ACEOF
13233 -#line $LINENO "configure"
13234 -#include "confdefs.h"
13236 -/* Override any gcc2 internal prototype to avoid an error. */
13237 -#ifdef __cplusplus
13240 -/* We use char because int might match the return type of a gcc2
13241 - builtin and then its argument prototype would still apply. */
13251 -rm -f conftest.$ac_objext conftest$ac_exeext
13252 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13253 - (eval $ac_link) 2>&5
13255 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13256 - (exit $ac_status); } &&
13257 - { ac_try='test -s conftest$ac_exeext'
13258 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13259 - (eval $ac_try) 2>&5
13261 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13262 - (exit $ac_status); }; }; then
13263 - ac_cv_lib_dld_dld_link=yes
13265 - echo "$as_me: failed program was:" >&5
13266 -cat conftest.$ac_ext >&5
13267 -ac_cv_lib_dld_dld_link=no
13269 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
13270 -LIBS=$ac_check_lib_save_LIBS
13272 -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
13273 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
13274 -if test $ac_cv_lib_dld_dld_link = yes; then
13275 - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
13296 - if test "x$lt_cv_dlopen" != xno; then
13297 - enable_dlopen=yes
13302 - case $lt_cv_dlopen in
13304 - save_CPPFLAGS="$CPPFLAGS"
13305 - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
13307 - save_LDFLAGS="$LDFLAGS"
13308 - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
13310 - save_LIBS="$LIBS"
13311 - LIBS="$lt_cv_dlopen_libs $LIBS"
13313 - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
13314 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
13315 -if test "${lt_cv_dlopen_self+set}" = set; then
13316 - echo $ECHO_N "(cached) $ECHO_C" >&6
13318 - if test "$cross_compiling" = yes; then :
13319 - lt_cv_dlopen_self=cross
13321 - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13322 - lt_status=$lt_dlunknown
13323 - cat > conftest.$ac_ext <<EOF
13324 -#line __oline__ "configure"
13325 -#include "confdefs.h"
13328 -#include <dlfcn.h>
13331 -#include <stdio.h>
13333 -#ifdef RTLD_GLOBAL
13334 -# define LT_DLGLOBAL RTLD_GLOBAL
13337 -# define LT_DLGLOBAL DL_GLOBAL
13339 -# define LT_DLGLOBAL 0
13343 -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13344 - find out it does not work in some platform. */
13345 -#ifndef LT_DLLAZY_OR_NOW
13347 -# define LT_DLLAZY_OR_NOW RTLD_LAZY
13350 -# define LT_DLLAZY_OR_NOW DL_LAZY
13353 -# define LT_DLLAZY_OR_NOW RTLD_NOW
13356 -# define LT_DLLAZY_OR_NOW DL_NOW
13358 -# define LT_DLLAZY_OR_NOW 0
13365 -#ifdef __cplusplus
13366 -extern "C" void exit (int);
13369 -void fnord() { int i=42;}
13372 - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13373 - int status = $lt_dlunknown;
13377 - if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13378 - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13379 - /* dlclose (self); */
13385 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13386 - (eval $ac_link) 2>&5
13388 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13389 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
13390 - (./conftest; exit; ) 2>/dev/null
13392 - case x$lt_status in
13393 - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
13394 - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
13395 - x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
13398 - # compilation failed
13399 - lt_cv_dlopen_self=no
13406 -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
13407 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6
13409 - if test "x$lt_cv_dlopen_self" = xyes; then
13410 - LDFLAGS="$LDFLAGS $link_static_flag"
13411 - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
13412 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
13413 -if test "${lt_cv_dlopen_self_static+set}" = set; then
13414 - echo $ECHO_N "(cached) $ECHO_C" >&6
13416 - if test "$cross_compiling" = yes; then :
13417 - lt_cv_dlopen_self_static=cross
13419 - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13420 - lt_status=$lt_dlunknown
13421 - cat > conftest.$ac_ext <<EOF
13422 -#line __oline__ "configure"
13423 -#include "confdefs.h"
13426 -#include <dlfcn.h>
13429 -#include <stdio.h>
13431 -#ifdef RTLD_GLOBAL
13432 -# define LT_DLGLOBAL RTLD_GLOBAL
13435 -# define LT_DLGLOBAL DL_GLOBAL
13437 -# define LT_DLGLOBAL 0
13441 -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13442 - find out it does not work in some platform. */
13443 -#ifndef LT_DLLAZY_OR_NOW
13445 -# define LT_DLLAZY_OR_NOW RTLD_LAZY
13448 -# define LT_DLLAZY_OR_NOW DL_LAZY
13451 -# define LT_DLLAZY_OR_NOW RTLD_NOW
13454 -# define LT_DLLAZY_OR_NOW DL_NOW
13456 -# define LT_DLLAZY_OR_NOW 0
13463 -#ifdef __cplusplus
13464 -extern "C" void exit (int);
13467 -void fnord() { int i=42;}
13470 - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13471 - int status = $lt_dlunknown;
13475 - if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13476 - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13477 - /* dlclose (self); */
13483 - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13484 - (eval $ac_link) 2>&5
13486 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13487 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
13488 - (./conftest; exit; ) 2>/dev/null
13490 - case x$lt_status in
13491 - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
13492 - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
13493 - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
13496 - # compilation failed
13497 - lt_cv_dlopen_self_static=no
13504 -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
13505 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
13508 - CPPFLAGS="$save_CPPFLAGS"
13509 - LDFLAGS="$save_LDFLAGS"
13510 - LIBS="$save_LIBS"
13514 - case $lt_cv_dlopen_self in
13515 - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
13516 - *) enable_dlopen_self=unknown ;;
13519 - case $lt_cv_dlopen_self_static in
13520 - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
13521 - *) enable_dlopen_self_static=unknown ;;
13526 -if test "$enable_shared" = yes && test "$GCC" = yes; then
13527 - case $archive_cmds in
13529 - # FIXME: we may have to deal with multi-command sequences.
13532 - # Test whether the compiler implicitly links with -lc since on some
13533 - # systems, -lgcc has to come before -lc. If gcc already passes -lc
13534 - # to ld, don't add -lc before -lgcc.
13535 - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
13536 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
13537 - if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
13538 - echo $ECHO_N "(cached) $ECHO_C" >&6
13541 - echo 'static int dummy;' > conftest.$ac_ext
13543 - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13544 - (eval $ac_compile) 2>&5
13546 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13547 - (exit $ac_status); }; then
13550 - libobjs=conftest.$ac_objext
13552 - wl=$lt_cv_prog_cc_wl
13553 - compiler_flags=-v
13558 - save_allow_undefined_flag=$allow_undefined_flag
13559 - allow_undefined_flag=
13560 - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
13561 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
13563 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
13564 - (exit $ac_status); }
13566 - lt_cv_archive_cmds_need_lc=no
13568 - lt_cv_archive_cmds_need_lc=yes
13570 - allow_undefined_flag=$save_allow_undefined_flag
13572 - cat conftest.err 1>&5
13576 - echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
13577 -echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
13581 -need_lc=${lt_cv_archive_cmds_need_lc-yes}
13583 -# The second clause should only fire when bootstrapping the
13584 -# libtool distribution, otherwise you forgot to ship ltmain.sh
13585 -# with your package, and you will get complaints that there are
13586 -# no rules to generate ltmain.sh.
13587 -if test -f "$ltmain"; then
13590 - # If there is no Makefile yet, we rely on a make rule to execute
13591 - # `config.status --recheck' to rerun these tests and create the
13592 - # libtool script then.
13593 - test -f Makefile && make "$ltmain"
13596 -if test -f "$ltmain"; then
13597 - trap "$rm \"${ofile}T\"; exit 1" 1 2 15
13598 - $rm -f "${ofile}T"
13600 - echo creating $ofile
13602 - # Now quote all the things that may contain metacharacters while being
13603 - # careful not to overquote the AC_SUBSTed values. We take copies of the
13604 - # variables and quote the copies for generation of the libtool script.
13605 - for var in echo old_CC old_CFLAGS \
13606 - AR AR_FLAGS CC LD LN_S NM SHELL \
13607 - reload_flag reload_cmds wl \
13608 - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
13609 - thread_safe_flag_spec whole_archive_flag_spec libname_spec \
13610 - library_names_spec soname_spec \
13611 - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
13612 - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
13613 - postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
13614 - old_striplib striplib file_magic_cmd export_symbols_cmds \
13615 - deplibs_check_method allow_undefined_flag no_undefined_flag \
13616 - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
13617 - global_symbol_to_c_name_address \
13618 - hardcode_libdir_flag_spec hardcode_libdir_separator \
13619 - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
13620 - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
13623 - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
13624 - old_postinstall_cmds | old_postuninstall_cmds | \
13625 - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
13626 - extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
13627 - postinstall_cmds | postuninstall_cmds | \
13628 - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
13629 - # Double-quote double-evaled strings.
13630 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
13633 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
13638 - cat <<__EOF__ > "${ofile}T"
13641 -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
13642 -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
13643 -# NOTE: Changes made to this file will be lost: look at ltmain.sh.
13645 -# Copyright (C) 1996-2000 Free Software Foundation, Inc.
13646 -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
13648 -# This program is free software; you can redistribute it and/or modify
13649 -# it under the terms of the GNU General Public License as published by
13650 -# the Free Software Foundation; either version 2 of the License, or
13651 -# (at your option) any later version.
13653 -# This program is distributed in the hope that it will be useful, but
13654 -# WITHOUT ANY WARRANTY; without even the implied warranty of
13655 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13656 -# General Public License for more details.
13658 -# You should have received a copy of the GNU General Public License
13659 -# along with this program; if not, write to the Free Software
13660 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
13662 -# As a special exception to the GNU General Public License, if you
13663 -# distribute this file as part of a program that contains a
13664 -# configuration script generated by Autoconf, you may include it under
13665 -# the same distribution terms that you use for the rest of that program.
13667 -# Sed that helps us avoid accidentally triggering echo(1) options like -n.
13668 -Xsed="sed -e s/^X//"
13670 -# The HP-UX ksh and POSIX shell print the target directory to stdout
13671 -# if CDPATH is set.
13672 -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
13674 -# ### BEGIN LIBTOOL CONFIG
13676 -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
13678 -# Shell to use when invoking shell scripts.
13681 -# Whether or not to build shared libraries.
13682 -build_libtool_libs=$enable_shared
13684 -# Whether or not to build static libraries.
13685 -build_old_libs=$enable_static
13687 -# Whether or not to add -lc for building shared libraries.
13688 -build_libtool_need_lc=$need_lc
13690 -# Whether or not to optimize for fast installation.
13691 -fast_install=$enable_fast_install
13693 -# The host system.
13694 -host_alias=$host_alias
13697 -# An echo program that does not interpret backslashes.
13702 -AR_FLAGS=$lt_AR_FLAGS
13704 -# The default C compiler.
13707 -# Is the compiler the GNU C compiler?
13710 -# The linker used to build libraries.
13713 -# Whether we need hard or soft links.
13716 -# A BSD-compatible nm program.
13719 -# A symbol stripping program
13722 -# Used to examine libraries when file_magic_cmd begins "file"
13723 -MAGIC_CMD=$MAGIC_CMD
13725 -# Used on cygwin: DLL creation program.
13726 -DLLTOOL="$DLLTOOL"
13728 -# Used on cygwin: object dumper.
13729 -OBJDUMP="$OBJDUMP"
13731 -# Used on cygwin: assembler.
13734 -# The name of the directory that contains temporary libtool files.
13737 -# How to create reloadable object files.
13738 -reload_flag=$lt_reload_flag
13739 -reload_cmds=$lt_reload_cmds
13741 -# How to pass a linker flag through the compiler.
13744 -# Object file suffix (normally "o").
13745 -objext="$ac_objext"
13747 -# Old archive suffix (normally "a").
13750 -# Executable file suffix (normally "").
13753 -# Additional compiler flags for building library objects.
13754 -pic_flag=$lt_pic_flag
13755 -pic_mode=$pic_mode
13757 -# Does compiler simultaneously support -c and -o options?
13758 -compiler_c_o=$lt_compiler_c_o
13760 -# Can we write directly to a .lo ?
13761 -compiler_o_lo=$lt_compiler_o_lo
13763 -# Must we lock files when doing compilation ?
13764 -need_locks=$lt_need_locks
13766 -# Do we need the lib prefix for modules?
13767 -need_lib_prefix=$need_lib_prefix
13769 -# Do we need a version for libraries?
13770 -need_version=$need_version
13772 -# Whether dlopen is supported.
13773 -dlopen_support=$enable_dlopen
13775 -# Whether dlopen of programs is supported.
13776 -dlopen_self=$enable_dlopen_self
13778 -# Whether dlopen of statically linked programs is supported.
13779 -dlopen_self_static=$enable_dlopen_self_static
13781 -# Compiler flag to prevent dynamic linking.
13782 -link_static_flag=$lt_link_static_flag
13784 -# Compiler flag to turn off builtin functions.
13785 -no_builtin_flag=$lt_no_builtin_flag
13787 -# Compiler flag to allow reflexive dlopens.
13788 -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
13790 -# Compiler flag to generate shared objects directly from archives.
13791 -whole_archive_flag_spec=$lt_whole_archive_flag_spec
13793 -# Compiler flag to generate thread-safe objects.
13794 -thread_safe_flag_spec=$lt_thread_safe_flag_spec
13796 -# Library versioning type.
13797 -version_type=$version_type
13799 -# Format of library name prefix.
13800 -libname_spec=$lt_libname_spec
13802 -# List of archive names. First name is the real one, the rest are links.
13803 -# The last name is the one that the linker finds with -lNAME.
13804 -library_names_spec=$lt_library_names_spec
13806 -# The coded name of the library, if different from the real name.
13807 -soname_spec=$lt_soname_spec
13809 -# Commands used to build and install an old-style archive.
13811 -old_archive_cmds=$lt_old_archive_cmds
13812 -old_postinstall_cmds=$lt_old_postinstall_cmds
13813 -old_postuninstall_cmds=$lt_old_postuninstall_cmds
13815 -# Create an old-style archive from a shared archive.
13816 -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
13818 -# Create a temporary old-style archive to link instead of a shared archive.
13819 -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
13821 -# Commands used to build and install a shared archive.
13822 -archive_cmds=$lt_archive_cmds
13823 -archive_expsym_cmds=$lt_archive_expsym_cmds
13824 -postinstall_cmds=$lt_postinstall_cmds
13825 -postuninstall_cmds=$lt_postuninstall_cmds
13827 -# Commands to strip libraries.
13828 -old_striplib=$lt_old_striplib
13829 -striplib=$lt_striplib
13831 -# Method to check whether dependent libraries are shared objects.
13832 -deplibs_check_method=$lt_deplibs_check_method
13834 -# Command to use when deplibs_check_method == file_magic.
13835 -file_magic_cmd=$lt_file_magic_cmd
13837 -# Flag that allows shared libraries with undefined symbols to be built.
13838 -allow_undefined_flag=$lt_allow_undefined_flag
13840 -# Flag that forces no undefined symbols.
13841 -no_undefined_flag=$lt_no_undefined_flag
13843 -# Commands used to finish a libtool library installation in a directory.
13844 -finish_cmds=$lt_finish_cmds
13846 -# Same as above, but a single script fragment to be evaled but not shown.
13847 -finish_eval=$lt_finish_eval
13849 -# Take the output of nm and produce a listing of raw symbols and C names.
13850 -global_symbol_pipe=$lt_global_symbol_pipe
13852 -# Transform the output of nm in a proper C declaration
13853 -global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
13855 -# Transform the output of nm in a C name address pair
13856 -global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
13858 -# This is the shared library runtime path variable.
13859 -runpath_var=$runpath_var
13861 -# This is the shared library path variable.
13862 -shlibpath_var=$shlibpath_var
13864 -# Is shlibpath searched before the hard-coded library search path?
13865 -shlibpath_overrides_runpath=$shlibpath_overrides_runpath
13867 -# How to hardcode a shared library path into an executable.
13868 -hardcode_action=$hardcode_action
13870 -# Whether we should hardcode library paths into libraries.
13871 -hardcode_into_libs=$hardcode_into_libs
13873 -# Flag to hardcode \$libdir into a binary during linking.
13874 -# This must work even if \$libdir does not exist.
13875 -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
13877 -# Whether we need a single -rpath flag with a separated argument.
13878 -hardcode_libdir_separator=$lt_hardcode_libdir_separator
13880 -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
13881 -# resulting binary.
13882 -hardcode_direct=$hardcode_direct
13884 -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
13885 -# resulting binary.
13886 -hardcode_minus_L=$hardcode_minus_L
13888 -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
13889 -# the resulting binary.
13890 -hardcode_shlibpath_var=$hardcode_shlibpath_var
13892 -# Variables whose values should be saved in libtool wrapper scripts and
13893 -# restored at relink time.
13894 -variables_saved_for_relink="$variables_saved_for_relink"
13896 -# Whether libtool must link a program against all its dependency libraries.
13897 -link_all_deplibs=$link_all_deplibs
13899 -# Compile-time system search path for libraries
13900 -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
13902 -# Run-time system search path for libraries
13903 -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
13905 -# Fix the shell variable \$srcfile for the compiler.
13906 -fix_srcfile_path="$fix_srcfile_path"
13908 -# Set to yes if exported symbols are required.
13909 -always_export_symbols=$always_export_symbols
13911 -# The commands to list exported symbols.
13912 -export_symbols_cmds=$lt_export_symbols_cmds
13914 -# The commands to extract the exported symbol list from a shared archive.
13915 -extract_expsyms_cmds=$lt_extract_expsyms_cmds
13917 -# Symbols that should not be listed in the preloaded symbols.
13918 -exclude_expsyms=$lt_exclude_expsyms
13920 -# Symbols that must always be exported.
13921 -include_expsyms=$lt_include_expsyms
13923 -# ### END LIBTOOL CONFIG
13929 - cat <<\EOF >> "${ofile}T"
13931 -# AIX sometimes has problems with the GCC collect2 program. For some
13932 -# reason, if we set the COLLECT_NAMES environment variable, the problems
13933 -# vanish in a puff of smoke.
13934 -if test "X${COLLECT_NAMES+set}" != Xset; then
13936 - export COLLECT_NAMES
13943 - cygwin* | mingw* | pw32* | os2*)
13944 - cat <<'EOF' >> "${ofile}T"
13945 - # This is a source program that is used to create dlls on Windows
13946 - # Don't remove nor modify the starting and closing comments
13947 -# /* ltdll.c starts here */
13948 -# #define WIN32_LEAN_AND_MEAN
13949 -# #include <windows.h>
13950 -# #undef WIN32_LEAN_AND_MEAN
13951 -# #include <stdio.h>
13953 -# #ifndef __CYGWIN__
13954 -# # ifdef __CYGWIN32__
13955 -# # define __CYGWIN__ __CYGWIN32__
13959 -# #ifdef __cplusplus
13962 -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
13963 -# #ifdef __cplusplus
13967 -# #ifdef __CYGWIN__
13968 -# #include <cygwin/cygwin_dll.h>
13969 -# DECLARE_CYGWIN_DLL( DllMain );
13971 -# HINSTANCE __hDllInstance_base;
13974 -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
13976 -# __hDllInstance_base = hInst;
13979 -# /* ltdll.c ends here */
13980 - # This is a source program that is used to create import libraries
13981 - # on Windows for dlls which lack them. Don't remove nor modify the
13982 - # starting and closing comments
13983 -# /* impgen.c starts here */
13984 -# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
13986 -# This file is part of GNU libtool.
13988 -# This program is free software; you can redistribute it and/or modify
13989 -# it under the terms of the GNU General Public License as published by
13990 -# the Free Software Foundation; either version 2 of the License, or
13991 -# (at your option) any later version.
13993 -# This program is distributed in the hope that it will be useful,
13994 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
13995 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13996 -# GNU General Public License for more details.
13998 -# You should have received a copy of the GNU General Public License
13999 -# along with this program; if not, write to the Free Software
14000 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
14003 -# #include <stdio.h> /* for printf() */
14004 -# #include <unistd.h> /* for open(), lseek(), read() */
14005 -# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
14006 -# #include <string.h> /* for strdup() */
14008 -# /* O_BINARY isn't required (or even defined sometimes) under Unix */
14009 -# #ifndef O_BINARY
14010 -# #define O_BINARY 0
14013 -# static unsigned int
14014 -# pe_get16 (fd, offset)
14018 -# unsigned char b[2];
14019 -# lseek (fd, offset, SEEK_SET);
14020 -# read (fd, b, 2);
14021 -# return b[0] + (b[1]<<8);
14024 -# static unsigned int
14025 -# pe_get32 (fd, offset)
14029 -# unsigned char b[4];
14030 -# lseek (fd, offset, SEEK_SET);
14031 -# read (fd, b, 4);
14032 -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
14035 -# static unsigned int
14039 -# unsigned char *b = ptr;
14040 -# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
14044 -# main (argc, argv)
14049 -# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
14050 -# unsigned long export_rva, export_size, nsections, secptr, expptr;
14051 -# unsigned long name_rvas, nexp;
14052 -# unsigned char *expdata, *erva;
14053 -# char *filename, *dll_name;
14055 -# filename = argv[1];
14057 -# dll = open(filename, O_RDONLY|O_BINARY);
14061 -# dll_name = filename;
14063 -# for (i=0; filename[i]; i++)
14064 -# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
14065 -# dll_name = filename + i +1;
14067 -# pe_header_offset = pe_get32 (dll, 0x3c);
14068 -# opthdr_ofs = pe_header_offset + 4 + 20;
14069 -# num_entries = pe_get32 (dll, opthdr_ofs + 92);
14071 -# if (num_entries < 1) /* no exports */
14074 -# export_rva = pe_get32 (dll, opthdr_ofs + 96);
14075 -# export_size = pe_get32 (dll, opthdr_ofs + 100);
14076 -# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
14077 -# secptr = (pe_header_offset + 4 + 20 +
14078 -# pe_get16 (dll, pe_header_offset + 4 + 16));
14081 -# for (i = 0; i < nsections; i++)
14084 -# unsigned long secptr1 = secptr + 40 * i;
14085 -# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
14086 -# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
14087 -# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
14088 -# lseek(dll, secptr1, SEEK_SET);
14089 -# read(dll, sname, 8);
14090 -# if (vaddr <= export_rva && vaddr+vsize > export_rva)
14092 -# expptr = fptr + (export_rva - vaddr);
14093 -# if (export_rva + export_size > vaddr + vsize)
14094 -# export_size = vsize - (export_rva - vaddr);
14099 -# expdata = (unsigned char*)malloc(export_size);
14100 -# lseek (dll, expptr, SEEK_SET);
14101 -# read (dll, expdata, export_size);
14102 -# erva = expdata - export_rva;
14104 -# nexp = pe_as32 (expdata+24);
14105 -# name_rvas = pe_as32 (expdata+32);
14107 -# printf ("EXPORTS\n");
14108 -# for (i = 0; i<nexp; i++)
14110 -# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
14111 -# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
14116 -# /* impgen.c ends here */
14122 - # We use sed instead of cat because bash on DJGPP gets confused if
14123 - # if finds mixed CR/LF and LF-only lines. Since sed operates in
14124 - # text mode, it properly converts lines to CR/LF. This bash problem
14125 - # is reportedly fixed, but why not run on old versions too?
14126 - sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
14128 - mv -f "${ofile}T" "$ofile" || \
14129 - (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
14130 - chmod +x "$ofile"
14137 -# This can be used to rebuild libtool when needed
14138 -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
14140 -# Always use our own libtool.
14141 -LIBTOOL='$(SHELL) $(top_builddir)/libtool'
14143 -# Prevent multiple expansion
14148 -# Check whether --with-target-subdir or --without-target-subdir was given.
14149 -if test "${with_target_subdir+set}" = set; then
14150 - withval="$with_target_subdir"
14154 -# Check whether --with-cross-host or --without-cross-host was given.
14155 -if test "${with_cross_host+set}" = set; then
14156 - withval="$with_cross_host"
14160 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
14161 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
14162 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
14163 -if test "${enable_maintainer_mode+set}" = set; then
14164 - enableval="$enable_maintainer_mode"
14165 - USE_MAINTAINER_MODE=$enableval
14167 - USE_MAINTAINER_MODE=no
14169 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
14170 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
14173 -if test $USE_MAINTAINER_MODE = yes; then
14174 - MAINTAINER_MODE_TRUE=
14175 - MAINTAINER_MODE_FALSE='#'
14177 - MAINTAINER_MODE_TRUE='#'
14178 - MAINTAINER_MODE_FALSE=
14181 - MAINT=$MAINTAINER_MODE_TRUE
14184 -# automake wants to see AC_EXEEXT. But we don't need it. And having
14185 -# it is actually a problem, because the compiler we're passed can't
14186 -# necessarily do a full link. So we fool automake here.
14188 - # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
14189 - # to nothing, so nothing would remain between `then' and `fi' if it
14190 - # were not for the `:' below.
14195 -echo "$as_me:$LINENO: checking for thread model used by GCC" >&5
14196 -echo $ECHO_N "checking for thread model used by GCC... $ECHO_C" >&6
14197 -THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
14198 -if test -z "$THREADS"; then
14201 -echo "$as_me:$LINENO: result: $THREADS" >&5
14202 -echo "${ECHO_T}$THREADS" >&6
14204 -# Check whether --enable-parallel-mark or --disable-parallel-mark was given.
14205 -if test "${enable_parallel_mark+set}" = set; then
14206 - enableval="$enable_parallel_mark"
14207 - case "$THREADS" in
14208 - no | none | single)
14209 - { { echo "$as_me:$LINENO: error: Parallel mark requires --enable-threads=x spec" >&5
14210 -echo "$as_me: error: Parallel mark requires --enable-threads=x spec" >&2;}
14211 - { (exit 1); exit 1; }; }
14217 -INCLUDES=-I${srcdir}/include
14219 -case "$THREADS" in
14220 - no | none | single)
14223 - posix | pthreads)
14225 - THREADLIBS=-lpthread
14227 - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
14228 - cat >>confdefs.h <<\_ACEOF
14229 -@%:@define GC_LINUX_THREADS 1
14232 - cat >>confdefs.h <<\_ACEOF
14233 -@%:@define _REENTRANT 1
14236 - if test "${enable_parallel_mark}"; then
14237 - cat >>confdefs.h <<\_ACEOF
14238 -@%:@define PARALLEL_MARK 1
14242 - cat >>confdefs.h <<\_ACEOF
14243 -@%:@define THREAD_LOCAL_ALLOC 1
14248 - cat >>confdefs.h <<\_ACEOF
14249 -@%:@define GC_LINUX_THREADS 1
14252 - cat >>confdefs.h <<\_ACEOF
14253 -@%:@define _REENTRANT 1
14258 - { echo "$as_me:$LINENO: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
14259 -echo "$as_me: WARNING: \"Only HP/UX 11 threads are supported.\"" >&2;}
14260 - cat >>confdefs.h <<\_ACEOF
14261 -@%:@define GC_HPUX_THREADS 1
14264 - cat >>confdefs.h <<\_ACEOF
14265 -@%:@define _POSIX_C_SOURCE 199506L
14268 - if test "${enable_parallel_mark}" = yes; then
14269 - cat >>confdefs.h <<\_ACEOF
14270 -@%:@define PARALLEL_MARK 1
14274 - cat >>confdefs.h <<\_ACEOF
14275 -@%:@define THREAD_LOCAL_ALLOC 1
14278 - THREADLIBS="-lpthread -lrt"
14281 - { echo "$as_me:$LINENO: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&5
14282 -echo "$as_me: WARNING: \"FreeBSD does not yet fully support threads with Boehm GC.\"" >&2;}
14283 - cat >>confdefs.h <<\_ACEOF
14284 -@%:@define GC_FREEBSD_THREADS 1
14287 - INCLUDES="$INCLUDES -pthread"
14288 - THREADLIBS=-pthread
14291 - cat >>confdefs.h <<\_ACEOF
14292 -@%:@define GC_SOLARIS_THREADS 1
14295 - cat >>confdefs.h <<\_ACEOF
14296 -@%:@define GC_SOLARIS_PTHREADS 1
14301 - cat >>confdefs.h <<\_ACEOF
14302 -@%:@define GC_IRIX_THREADS 1
14310 - cat >>confdefs.h <<\_ACEOF
14311 -@%:@define GC_DARWIN_THREADS 1
14314 - cat >>confdefs.h <<\_ACEOF
14315 -@%:@define THREAD_LOCAL_ALLOC 1
14318 - if test "${enable_parallel_mark}" = yes; then
14319 - cat >>confdefs.h <<\_ACEOF
14320 -@%:@define PARALLEL_MARK 1
14328 - cat >>confdefs.h <<\_ACEOF
14329 -@%:@define GC_WIN32_THREADS 1
14332 - cat >>confdefs.h <<\_ACEOF
14333 -@%:@define NO_GETENV 1
14337 - decosf1 | irix | mach | os2 | solaris | dce | vxworks)
14338 - { { echo "$as_me:$LINENO: error: thread package $THREADS not yet supported" >&5
14339 -echo "$as_me: error: thread package $THREADS not yet supported" >&2;}
14340 - { (exit 1); exit 1; }; }
14343 - { { echo "$as_me:$LINENO: error: $THREADS is an unknown thread package" >&5
14344 -echo "$as_me: error: $THREADS is an unknown thread package" >&2;}
14345 - { (exit 1); exit 1; }; }
14351 - powerpc-*-darwin*)
14352 - powerpc_darwin=true
14357 -if test x$powerpc_darwin = xtrue; then
14358 - POWERPC_DARWIN_TRUE=
14359 - POWERPC_DARWIN_FALSE='#'
14361 - POWERPC_DARWIN_TRUE='#'
14362 - POWERPC_DARWIN_FALSE=
14366 -# We never want libdl on darwin. It is a fake libdl that just ends up making
14367 -# dyld calls anyway
14371 - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
14372 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
14373 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then
14374 - echo $ECHO_N "(cached) $ECHO_C" >&6
14376 - ac_check_lib_save_LIBS=$LIBS
14378 -cat >conftest.$ac_ext <<_ACEOF
14379 -#line $LINENO "configure"
14380 -#include "confdefs.h"
14382 -/* Override any gcc2 internal prototype to avoid an error. */
14383 -#ifdef __cplusplus
14386 -/* We use char because int might match the return type of a gcc2
14387 - builtin and then its argument prototype would still apply. */
14397 -rm -f conftest.$ac_objext conftest$ac_exeext
14398 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14399 - (eval $ac_link) 2>&5
14401 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
14402 - (exit $ac_status); } &&
14403 - { ac_try='test -s conftest$ac_exeext'
14404 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14405 - (eval $ac_try) 2>&5
14407 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
14408 - (exit $ac_status); }; }; then
14409 - ac_cv_lib_dl_dlopen=yes
14411 - echo "$as_me: failed program was:" >&5
14412 -cat conftest.$ac_ext >&5
14413 -ac_cv_lib_dl_dlopen=no
14415 -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
14416 -LIBS=$ac_check_lib_save_LIBS
14418 -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
14419 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
14420 -if test $ac_cv_lib_dl_dlopen = yes; then
14421 - EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
14429 -target_all=libgcjgc.la
14435 -# Check whether --with-ecos or --without-ecos was given.
14436 -if test "${with_ecos+set}" = set; then
14437 - withval="$with_ecos"
14438 - TARGET_ECOS="$with_ecos"
14444 -case "$TARGET_ECOS" in
14448 - cat >>confdefs.h <<\_ACEOF
14452 - CXXINCLUDES="-I${TARGET_ECOS}/include"
14453 - addobjs="$addobjs ecos.lo"
14463 - alpha*-*-openbsd*)
14464 - machdep="alpha_mach_dep.lo"
14465 - if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
14466 - { echo "$as_me:$LINENO: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
14467 -echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&2;}
14468 - # Check whether --enable-shared or --disable-shared was given.
14469 -if test "${enable_shared+set}" = set; then
14470 - enableval="$enable_shared"
14471 - p=${PACKAGE-default}
14472 -case $enableval in
14473 -yes) enable_shared=yes ;;
14474 -no) enable_shared=no ;;
14477 - # Look at the argument we got. We use all the common list separators.
14478 - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
14479 - for pkg in $enableval; do
14480 - if test "X$pkg" = "X$p"; then
14481 - enable_shared=yes
14484 - IFS="$ac_save_ifs"
14493 - machdep="alpha_mach_dep.lo"
14495 - i?86-*-solaris2.[89]*)
14496 - cat >>confdefs.h <<\_ACEOF
14497 -@%:@define SOLARIS25_PROC_VDB_BUG_FIXED 1
14502 - machdep="mips_ultrix_mach_dep.lo"
14503 - cat >>confdefs.h <<\_ACEOF
14504 -@%:@define STACKBASE __stackbase
14507 - cat >>confdefs.h <<\_ACEOF
14508 -@%:@define DATASTART_IS_ETEXT 1
14512 - mips-dec-ultrix*)
14513 - machdep="mips_ultrix_mach-dep.lo"
14518 - machdep="mips_sgi_mach_dep.lo"
14519 - cat >>confdefs.h <<\_ACEOF
14520 -@%:@define NO_EXECUTE_PERMISSION 1
14524 - sparc-sun-solaris2.3*)
14525 - machdep="sparc_mach_dep.lo"
14526 - cat >>confdefs.h <<\_ACEOF
14527 -@%:@define SUNOS53_SHARED_LIB 1
14531 - sparc-sun-solaris2.*)
14532 - machdep="sparc_mach_dep.lo"
14535 - machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
14538 -if test x"$machdep" = x; then
14539 - machdep="mach_dep.lo"
14541 -addobjs="$addobjs $machdep"
14545 - sparc-sun-solaris2*)
14546 - if test "$GCC" = yes; then
14548 - for i in $CFLAGS; do
14553 - new_CFLAGS="$new_CFLAGS $i"
14557 - CFLAGS="$new_CFLAGS"
14562 -MY_CFLAGS="$CFLAGS"
14565 -cat >>confdefs.h <<\_ACEOF
14566 -@%:@define SILENT 1
14569 -cat >>confdefs.h <<\_ACEOF
14570 -@%:@define NO_SIGNALS 1
14573 -cat >>confdefs.h <<\_ACEOF
14574 -@%:@define NO_EXECUTE_PERMISSION 1
14577 -cat >>confdefs.h <<\_ACEOF
14578 -@%:@define ALL_INTERIOR_POINTERS 1
14582 -cat >>confdefs.h <<\_ACEOF
14583 -@%:@define JAVA_FINALIZATION 1
14586 -cat >>confdefs.h <<\_ACEOF
14587 -@%:@define GC_GCJ_SUPPORT 1
14590 -cat >>confdefs.h <<\_ACEOF
14591 -@%:@define ATOMIC_UNCOLLECTABLE 1
14595 -if test -n "${with_cross_host}"; then
14596 - cat >>confdefs.h <<\_ACEOF
14597 -@%:@define NO_SIGSET 1
14600 - cat >>confdefs.h <<\_ACEOF
14601 -@%:@define NO_DEBUGGING 1
14606 -# Check whether --enable-full-debug or --disable-full-debug was given.
14607 -if test "${enable_full_debug+set}" = set; then
14608 - enableval="$enable_full_debug"
14609 - if test "$enable_full_debug" = "yes"; then
14610 - { echo "$as_me:$LINENO: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&5
14611 -echo "$as_me: WARNING: \"Must define GC_DEBUG and use debug alloc. in clients.\"" >&2;}
14612 - cat >>confdefs.h <<\_ACEOF
14613 -@%:@define KEEP_BACK_PTRS 1
14616 - cat >>confdefs.h <<\_ACEOF
14617 -@%:@define DBG_HDRS_ALL 1
14622 - cat >>confdefs.h <<\_ACEOF
14623 -@%:@define MAKE_BACK_GRAPH 1
14627 - x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
14628 - cat >>confdefs.h <<\_ACEOF
14629 -@%:@define MAKE_BACK_GRAPH 1
14632 - { echo "$as_me:$LINENO: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
14633 -echo "$as_me: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&2;}
14634 - cat >>confdefs.h <<\_ACEOF
14635 -@%:@define SAVE_CALL_COUNT 8
14645 -if test -z "$with_cross_host"; then
14647 - USE_LIBDIR_FALSE='#'
14649 - USE_LIBDIR_TRUE='#'
14650 - USE_LIBDIR_FALSE=
14654 -if test "${multilib}" = "yes"; then
14655 - multilib_arg="--enable-multilib"
14660 - ac_config_files="$ac_config_files Makefile include/Makefile"
14661 - ac_config_commands="$ac_config_commands default"
14662 -cat >confcache <<\_ACEOF
14663 -# This file is a shell script that caches the results of configure
14664 -# tests run on this system so they can be shared between configure
14665 -# scripts and configure runs, see configure's option --config-cache.
14666 -# It is not useful on other systems. If it contains results you don't
14667 -# want to keep, you may remove or edit it.
14669 -# config.status only pays attention to the cache file if you give it
14670 -# the --recheck option to rerun configure.
14672 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
14673 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
14674 -# following values.
14678 -# The following way of writing the cache mishandles newlines in values,
14679 -# but we know of no workaround that is simple, portable, and efficient.
14680 -# So, don't put newlines in cache variables' values.
14681 -# Ultrix sh set writes to stderr and can't be redirected directly,
14682 -# and sets the high bit in the cache file unless we assign to the vars.
14685 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
14687 - # `set' does not quote correctly, so add quotes (double-quote
14688 - # substitution turns \\\\ into \\, and sed turns \\ into \).
14691 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
14694 - # `set' quotes correctly as required by POSIX, so do not add quotes.
14696 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
14703 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
14705 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
14706 - : end' >>confcache
14707 -if cmp -s $cache_file confcache; then :; else
14708 - if test -w $cache_file; then
14709 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
14710 - cat confcache >$cache_file
14712 - echo "not updating unwritable cache $cache_file"
14717 -test "x$prefix" = xNONE && prefix=$ac_default_prefix
14718 -# Let make expand exec_prefix.
14719 -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
14721 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
14722 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
14723 -# trailing colons and then remove the whole line if VPATH becomes empty
14724 -# (actually we leave an empty line to preserve line numbers).
14725 -if test "x$srcdir" = x.; then
14726 - ac_vpsub='/^[ ]*VPATH[ ]*=/{
14727 -s/:*\$(srcdir):*/:/;
14728 -s/:*\${srcdir}:*/:/;
14729 -s/:*@srcdir@:*/:/;
14730 -s/^\([^=]*=[ ]*\):*/\1/;
14736 -# Transform confdefs.h into DEFS.
14737 -# Protect against shell expansion while executing Makefile rules.
14738 -# Protect against Makefile macro expansion.
14740 -# If the first sed substitution is executed (which looks for macros that
14741 -# take arguments), then we branch to the quote section. Otherwise,
14742 -# look for a macro that doesn't take arguments.
14743 -cat >confdef2opt.sed <<\_ACEOF
14746 -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
14748 -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
14752 -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
14758 -# We use echo to avoid assuming a particular line-breaking character.
14759 -# The extra dot is to prevent the shell from consuming trailing
14760 -# line-breaks from the sub-command output. A line-break within
14761 -# single-quotes doesn't work because, if this script is created in a
14762 -# platform that uses two characters for line-breaks (e.g., DOS), tr
14764 -ac_LF_and_DOT=`echo; echo .`
14765 -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
14766 -rm -f confdef2opt.sed
14771 -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
14772 - # 1. Remove the extension, and $U if already installed.
14773 - ac_i=`echo "$ac_i" |
14774 - sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
14776 - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
14777 - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
14779 -LIB@&t@OBJS=$ac_libobjs
14781 -LTLIBOBJS=$ac_ltlibobjs
14784 -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
14785 - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
14786 -Usually this means the macro was only invoked conditionally." >&5
14787 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
14788 -Usually this means the macro was only invoked conditionally." >&2;}
14789 - { (exit 1); exit 1; }; }
14791 -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
14792 - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
14793 -Usually this means the macro was only invoked conditionally." >&5
14794 -echo "$as_me: error: conditional \"AMDEP\" was never defined.
14795 -Usually this means the macro was only invoked conditionally." >&2;}
14796 - { (exit 1); exit 1; }; }
14798 -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
14799 - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
14800 -Usually this means the macro was only invoked conditionally." >&5
14801 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
14802 -Usually this means the macro was only invoked conditionally." >&2;}
14803 - { (exit 1); exit 1; }; }
14805 -if test -z "${POWERPC_DARWIN_TRUE}" && test -z "${POWERPC_DARWIN_FALSE}"; then
14806 - { { echo "$as_me:$LINENO: error: conditional \"POWERPC_DARWIN\" was never defined.
14807 -Usually this means the macro was only invoked conditionally." >&5
14808 -echo "$as_me: error: conditional \"POWERPC_DARWIN\" was never defined.
14809 -Usually this means the macro was only invoked conditionally." >&2;}
14810 - { (exit 1); exit 1; }; }
14812 -if test -z "${USE_LIBDIR_TRUE}" && test -z "${USE_LIBDIR_FALSE}"; then
14813 - { { echo "$as_me:$LINENO: error: conditional \"USE_LIBDIR\" was never defined.
14814 -Usually this means the macro was only invoked conditionally." >&5
14815 -echo "$as_me: error: conditional \"USE_LIBDIR\" was never defined.
14816 -Usually this means the macro was only invoked conditionally." >&2;}
14817 - { (exit 1); exit 1; }; }
14820 -: ${CONFIG_STATUS=./config.status}
14821 -ac_clean_files_save=$ac_clean_files
14822 -ac_clean_files="$ac_clean_files $CONFIG_STATUS"
14823 -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
14824 -echo "$as_me: creating $CONFIG_STATUS" >&6;}
14825 -cat >$CONFIG_STATUS <<_ACEOF
14827 -# Generated by $as_me.
14828 -# Run this file to recreate the current configuration.
14829 -# Compiler output produced by configure, useful for debugging
14830 -# configure, is in config.log if it exists.
14833 -SHELL=\${CONFIG_SHELL-$SHELL}
14836 -cat >>$CONFIG_STATUS <<\_ACEOF
14837 -## --------------------- ##
14838 -## M4sh Initialization. ##
14839 -## --------------------- ##
14841 -# Be Bourne compatible
14842 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
14845 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
14846 - # is contrary to our usage. Disable this feature.
14847 - alias -g '${1+"$@"}'='"$@"'
14848 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
14852 -# Support unset when possible.
14853 -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
14860 -# Work around bugs in pre-3.0 UWIN ksh.
14861 -$as_unset ENV MAIL MAILPATH
14867 -for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME
14869 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
14870 - eval $as_var=C; export $as_var
14872 - $as_unset $as_var
14876 -# Required to use basename.
14877 -if expr a : '\(a\)' >/dev/null 2>&1; then
14883 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
14884 - as_basename=basename
14886 - as_basename=false
14890 -# Name of the executable.
14891 -as_me=`$as_basename "$0" ||
14892 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
14893 - X"$0" : 'X\(//\)$' \| \
14894 - X"$0" : 'X\(/\)$' \| \
14895 - . : '\(.\)' 2>/dev/null ||
14897 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
14898 - /^X\/\(\/\/\)$/{ s//\1/; q; }
14899 - /^X\/\(\/\).*/{ s//\1/; q; }
14903 -# PATH needs CR, and LINENO needs CR and PATH.
14904 -# Avoid depending upon Character Ranges.
14905 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
14906 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
14907 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
14908 -as_cr_digits='0123456789'
14909 -as_cr_alnum=$as_cr_Letters$as_cr_digits
14911 -# The user is always right.
14912 -if test "${PATH_SEPARATOR+set}" != set; then
14913 - echo "#! /bin/sh" >conftest.sh
14914 - echo "exit 0" >>conftest.sh
14915 - chmod +x conftest.sh
14916 - if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then
14917 - PATH_SEPARATOR=';'
14921 - rm -f conftest.sh
14925 - as_lineno_1=$LINENO
14926 - as_lineno_2=$LINENO
14927 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
14928 - test "x$as_lineno_1" != "x$as_lineno_2" &&
14929 - test "x$as_lineno_3" = "x$as_lineno_2" || {
14930 - # Find who we are. Look in the path if we contain no path at all
14931 - # relative or not.
14933 - *[\\/]* ) as_myself=$0 ;;
14934 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
14935 -for as_dir in $PATH
14938 - test -z "$as_dir" && as_dir=.
14939 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
14944 - # We did not find ourselves, most probably we were run as `sh COMMAND'
14945 - # in which case we are not to be found in the path.
14946 - if test "x$as_myself" = x; then
14949 - if test ! -f "$as_myself"; then
14950 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
14951 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
14952 - { (exit 1); exit 1; }; }
14954 - case $CONFIG_SHELL in
14956 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
14957 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
14960 - test -z "$as_dir" && as_dir=.
14961 - for as_base in sh bash ksh sh5; do
14964 - if ("$as_dir/$as_base" -c '
14965 - as_lineno_1=$LINENO
14966 - as_lineno_2=$LINENO
14967 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
14968 - test "x$as_lineno_1" != "x$as_lineno_2" &&
14969 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
14970 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
14971 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
14972 - CONFIG_SHELL=$as_dir/$as_base
14973 - export CONFIG_SHELL
14974 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
14982 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
14983 - # uniformly replaced by the line number. The first 'sed' inserts a
14984 - # line-number line before each line; the second 'sed' does the real
14985 - # work. The second script uses 'N' to pair each line-number line
14986 - # with the numbered line, and appends trailing '-' during
14987 - # substitution so that $LINENO is not a special case at line end.
14988 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
14989 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
14990 - sed '=' <$as_myself |
14995 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
14998 - s,^['$as_cr_digits']*\n,,
14999 - ' >$as_me.lineno &&
15000 - chmod +x $as_me.lineno ||
15001 - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
15002 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
15003 - { (exit 1); exit 1; }; }
15005 - # Don't try to exec as it changes $[0], causing all sort of problems
15006 - # (the dirname of $[0] is not the place where we might find the
15007 - # original and so on. Autoconf is especially sensible to this).
15008 - . ./$as_me.lineno
15009 - # Exit status is that of the last command.
15014 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
15015 - *c*,-n*) ECHO_N= ECHO_C='
15017 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
15018 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
15021 -if expr a : '\(a\)' >/dev/null 2>&1; then
15027 -rm -f conf$$ conf$$.exe conf$$.file
15029 -if ln -s conf$$.file conf$$ 2>/dev/null; then
15030 - # We could just check for DJGPP; but this test a) works b) is more generic
15031 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
15032 - if test -f conf$$.exe; then
15033 - # Don't use ln at all; we don't have any links
15038 -elif ln conf$$.file conf$$ 2>/dev/null; then
15043 -rm -f conf$$ conf$$.exe conf$$.file
15045 -if mkdir -p . 2>/dev/null; then
15051 -as_executable_p="test -f"
15053 -# Sed expression to map a string onto a valid CPP name.
15054 -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
15056 -# Sed expression to map a string onto a valid variable name.
15057 -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
15061 -# We need space, tab and new line, in precisely that order.
15071 -# Open the log real soon, to keep \$[0] and so on meaningful, and to
15072 -# report actual input values of CONFIG_FILES etc. instead of their
15073 -# values after options handling. Logging --version etc. is OK.
15074 -exec 5>>config.log
15077 - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
15078 -@%:@@%:@ Running $as_me. @%:@@%:@
15083 -This file was extended by $as_me, which was
15084 -generated by GNU Autoconf 2.54. Invocation command line was
15086 - CONFIG_FILES = $CONFIG_FILES
15087 - CONFIG_HEADERS = $CONFIG_HEADERS
15088 - CONFIG_LINKS = $CONFIG_LINKS
15089 - CONFIG_COMMANDS = $CONFIG_COMMANDS
15093 -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
15097 -# Files that config.status was made for.
15098 -if test -n "$ac_config_files"; then
15099 - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
15102 -if test -n "$ac_config_headers"; then
15103 - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
15106 -if test -n "$ac_config_links"; then
15107 - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
15110 -if test -n "$ac_config_commands"; then
15111 - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
15114 -cat >>$CONFIG_STATUS <<\_ACEOF
15117 -\`$as_me' instantiates files from templates according to the
15118 -current configuration.
15120 -Usage: $0 [OPTIONS] [FILE]...
15122 - -h, --help print this help, then exit
15123 - -V, --version print version number, then exit
15124 - -d, --debug don't remove temporary files
15125 - --recheck update $as_me by reconfiguring in the same conditions
15126 - --file=FILE[:TEMPLATE]
15127 - instantiate the configuration file FILE
15129 -Configuration files:
15132 -Configuration commands:
15135 -Report bugs to <bug-autoconf@gnu.org>."
15138 -cat >>$CONFIG_STATUS <<_ACEOF
15141 -configured by $0, generated by GNU Autoconf 2.54,
15142 - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
15144 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
15145 -Free Software Foundation, Inc.
15146 -This config.status script is free software; the Free Software Foundation
15147 -gives unlimited permission to copy, distribute and modify it."
15149 -INSTALL="$INSTALL"
15152 -cat >>$CONFIG_STATUS <<\_ACEOF
15153 -# If no file are specified by the user, then we need to provide default
15154 -# value. By we need to know if files were specified by the user.
15155 -ac_need_defaults=:
15156 -while test $# != 0
15160 - ac_option=`expr "x$1" : 'x\([^=]*\)='`
15161 - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
15169 - *) # This is not an option, so the user has probably given explicit
15172 - ac_need_defaults=false;;
15175 - case $ac_option in
15176 - # Handling of the options.
15178 -cat >>$CONFIG_STATUS <<_ACEOF
15179 - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
15180 - echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
15181 - exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
15183 -cat >>$CONFIG_STATUS <<\_ACEOF
15184 - --version | --vers* | -V )
15185 - echo "$ac_cs_version"; exit 0 ;;
15187 - # Conflict between --help and --header
15188 - { { echo "$as_me:$LINENO: error: ambiguous option: $1
15189 -Try \`$0 --help' for more information." >&5
15190 -echo "$as_me: error: ambiguous option: $1
15191 -Try \`$0 --help' for more information." >&2;}
15192 - { (exit 1); exit 1; }; };;
15193 - --help | --hel | -h )
15194 - echo "$ac_cs_usage"; exit 0 ;;
15195 - --debug | --d* | -d )
15197 - --file | --fil | --fi | --f )
15199 - CONFIG_FILES="$CONFIG_FILES $ac_optarg"
15200 - ac_need_defaults=false;;
15201 - --header | --heade | --head | --hea )
15203 - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
15204 - ac_need_defaults=false;;
15206 - # This is an error.
15207 - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
15208 -Try \`$0 --help' for more information." >&5
15209 -echo "$as_me: error: unrecognized option: $1
15210 -Try \`$0 --help' for more information." >&2;}
15211 - { (exit 1); exit 1; }; } ;;
15213 - *) ac_config_targets="$ac_config_targets $1" ;;
15221 -cat >>$CONFIG_STATUS <<_ACEOF
15223 -# INIT-COMMANDS section.
15226 -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
15230 -with_multisubdir=${with_multisubdir}
15231 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
15232 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
15233 -gc_basedir=${gc_basedir}
15242 -cat >>$CONFIG_STATUS <<\_ACEOF
15243 -for ac_config_target in $ac_config_targets
15245 - case "$ac_config_target" in
15246 - # Handling of arguments.
15247 - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
15248 - "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
15249 - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
15250 - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
15251 - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
15252 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
15253 - { (exit 1); exit 1; }; };;
15257 -# If the user did not use the arguments to specify the items to instantiate,
15258 -# then the envvar interface is used. Set only those that are not.
15259 -# We use the long form for the default assignment because of an extremely
15260 -# bizarre bug on SunOS 4.1.3.
15261 -if $ac_need_defaults; then
15262 - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
15263 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
15266 -# Create a temporary directory, and hook for its removal unless debugging.
15269 - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
15270 - trap '{ (exit 1); exit 1; }' 1 2 13 15
15273 -# Create a (secure) tmp directory for tmp files.
15276 - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
15277 - test -n "$tmp" && test -d "$tmp"
15280 - tmp=$TMPDIR/cs$$-$RANDOM
15281 - (umask 077 && mkdir $tmp)
15284 - echo "$me: cannot create a temporary directory in $TMPDIR" >&2
15285 - { (exit 1); exit 1; }
15290 -cat >>$CONFIG_STATUS <<_ACEOF
15293 -# CONFIG_FILES section.
15296 -# No need to generate the scripts if there are no CONFIG_FILES.
15297 -# This happens for instance when ./config.status config.h
15298 -if test -n "\$CONFIG_FILES"; then
15299 - # Protect against being on the right side of a sed subst in config.status.
15300 - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
15301 - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
15302 -s,@SHELL@,$SHELL,;t t
15303 -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
15304 -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
15305 -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
15306 -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
15307 -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
15308 -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
15309 -s,@exec_prefix@,$exec_prefix,;t t
15310 -s,@prefix@,$prefix,;t t
15311 -s,@program_transform_name@,$program_transform_name,;t t
15312 -s,@bindir@,$bindir,;t t
15313 -s,@sbindir@,$sbindir,;t t
15314 -s,@libexecdir@,$libexecdir,;t t
15315 -s,@datadir@,$datadir,;t t
15316 -s,@sysconfdir@,$sysconfdir,;t t
15317 -s,@sharedstatedir@,$sharedstatedir,;t t
15318 -s,@localstatedir@,$localstatedir,;t t
15319 -s,@libdir@,$libdir,;t t
15320 -s,@includedir@,$includedir,;t t
15321 -s,@oldincludedir@,$oldincludedir,;t t
15322 -s,@infodir@,$infodir,;t t
15323 -s,@mandir@,$mandir,;t t
15324 -s,@build_alias@,$build_alias,;t t
15325 -s,@host_alias@,$host_alias,;t t
15326 -s,@target_alias@,$target_alias,;t t
15327 -s,@DEFS@,$DEFS,;t t
15328 -s,@ECHO_C@,$ECHO_C,;t t
15329 -s,@ECHO_N@,$ECHO_N,;t t
15330 -s,@ECHO_T@,$ECHO_T,;t t
15331 -s,@LIBS@,$LIBS,;t t
15332 -s,@gc_basedir@,$gc_basedir,;t t
15333 -s,@build@,$build,;t t
15334 -s,@build_cpu@,$build_cpu,;t t
15335 -s,@build_vendor@,$build_vendor,;t t
15336 -s,@build_os@,$build_os,;t t
15337 -s,@host@,$host,;t t
15338 -s,@host_cpu@,$host_cpu,;t t
15339 -s,@host_vendor@,$host_vendor,;t t
15340 -s,@host_os@,$host_os,;t t
15341 -s,@target@,$target,;t t
15342 -s,@target_cpu@,$target_cpu,;t t
15343 -s,@target_vendor@,$target_vendor,;t t
15344 -s,@target_os@,$target_os,;t t
15345 -s,@mkinstalldirs@,$mkinstalldirs,;t t
15346 -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
15347 -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
15348 -s,@INSTALL_DATA@,$INSTALL_DATA,;t t
15349 -s,@PACKAGE@,$PACKAGE,;t t
15350 -s,@VERSION@,$VERSION,;t t
15351 -s,@ACLOCAL@,$ACLOCAL,;t t
15352 -s,@AUTOCONF@,$AUTOCONF,;t t
15353 -s,@AUTOMAKE@,$AUTOMAKE,;t t
15354 -s,@AUTOHEADER@,$AUTOHEADER,;t t
15355 -s,@MAKEINFO@,$MAKEINFO,;t t
15356 -s,@AMTAR@,$AMTAR,;t t
15357 -s,@install_sh@,$install_sh,;t t
15358 -s,@STRIP@,$STRIP,;t t
15359 -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
15360 -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
15362 -s,@SET_MAKE@,$SET_MAKE,;t t
15364 -s,@ac_ct_AS@,$ac_ct_AS,;t t
15366 -s,@ac_ct_AR@,$ac_ct_AR,;t t
15367 -s,@RANLIB@,$RANLIB,;t t
15368 -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
15369 -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
15370 -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
15371 -s,@MAINT@,$MAINT,;t t
15372 -s,@GC_CFLAGS@,$GC_CFLAGS,;t t
15374 -s,@CFLAGS@,$CFLAGS,;t t
15375 -s,@LDFLAGS@,$LDFLAGS,;t t
15376 -s,@CPPFLAGS@,$CPPFLAGS,;t t
15377 -s,@ac_ct_CC@,$ac_ct_CC,;t t
15378 -s,@EXEEXT@,$EXEEXT,;t t
15379 -s,@OBJEXT@,$OBJEXT,;t t
15380 -s,@DEPDIR@,$DEPDIR,;t t
15381 -s,@am__include@,$am__include,;t t
15382 -s,@am__quote@,$am__quote,;t t
15383 -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
15384 -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
15385 -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
15386 -s,@CCDEPMODE@,$CCDEPMODE,;t t
15387 -s,@LN_S@,$LN_S,;t t
15388 -s,@ECHO@,$ECHO,;t t
15390 -s,@EGREP@,$EGREP,;t t
15391 -s,@LIBTOOL@,$LIBTOOL,;t t
15392 -s,@THREADLIBS@,$THREADLIBS,;t t
15393 -s,@POWERPC_DARWIN_TRUE@,$POWERPC_DARWIN_TRUE,;t t
15394 -s,@POWERPC_DARWIN_FALSE@,$POWERPC_DARWIN_FALSE,;t t
15395 -s,@EXTRA_TEST_LIBS@,$EXTRA_TEST_LIBS,;t t
15396 -s,@target_all@,$target_all,;t t
15398 -s,@INCLUDES@,$INCLUDES,;t t
15399 -s,@CXXINCLUDES@,$CXXINCLUDES,;t t
15400 -s,@addobjs@,$addobjs,;t t
15401 -s,@MY_CFLAGS@,$MY_CFLAGS,;t t
15402 -s,@USE_LIBDIR_TRUE@,$USE_LIBDIR_TRUE,;t t
15403 -s,@USE_LIBDIR_FALSE@,$USE_LIBDIR_FALSE,;t t
15404 -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t
15405 -s,@LTLIBOBJS@,$LTLIBOBJS,;t t
15410 - cat >>$CONFIG_STATUS <<\_ACEOF
15411 - # Split the substitutions into bite-sized pieces for seds with
15412 - # small command number limits, like on Digital OSF/1 and HP-UX.
15413 - ac_max_sed_lines=48
15414 - ac_sed_frag=1 # Number of current file.
15415 - ac_beg=1 # First line for current file.
15416 - ac_end=$ac_max_sed_lines # Line after last line for current file.
15419 - while $ac_more_lines; do
15420 - if test $ac_beg -gt 1; then
15421 - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
15423 - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
15425 - if test ! -s $tmp/subs.frag; then
15426 - ac_more_lines=false
15428 - # The purpose of the label and of the branching condition is to
15429 - # speed up the sed processing (if there are no `@' at all, there
15430 - # is no need to browse any of the substitutions).
15431 - # These are the two extra sed commands mentioned above.
15433 - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
15434 - if test -z "$ac_sed_cmds"; then
15435 - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
15437 - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
15439 - ac_sed_frag=`expr $ac_sed_frag + 1`
15441 - ac_end=`expr $ac_end + $ac_max_sed_lines`
15444 - if test -z "$ac_sed_cmds"; then
15447 -fi # test -n "$CONFIG_FILES"
15450 -cat >>$CONFIG_STATUS <<\_ACEOF
15451 -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
15452 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
15454 - - | *:- | *:-:* ) # input from stdin
15456 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
15457 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
15458 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
15459 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
15460 - * ) ac_file_in=$ac_file.in ;;
15463 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
15464 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
15465 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15466 - X"$ac_file" : 'X\(//\)[^/]' \| \
15467 - X"$ac_file" : 'X\(//\)$' \| \
15468 - X"$ac_file" : 'X\(/\)' \| \
15469 - . : '\(.\)' 2>/dev/null ||
15470 -echo X"$ac_file" |
15471 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15472 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15473 - /^X\(\/\/\)$/{ s//\1/; q; }
15474 - /^X\(\/\).*/{ s//\1/; q; }
15476 - { if $as_mkdir_p; then
15477 - mkdir -p "$ac_dir"
15481 - while test ! -d "$as_dir"; do
15482 - as_dirs="$as_dir $as_dirs"
15483 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
15484 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15485 - X"$as_dir" : 'X\(//\)[^/]' \| \
15486 - X"$as_dir" : 'X\(//\)$' \| \
15487 - X"$as_dir" : 'X\(/\)' \| \
15488 - . : '\(.\)' 2>/dev/null ||
15490 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15491 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15492 - /^X\(\/\/\)$/{ s//\1/; q; }
15493 - /^X\(\/\).*/{ s//\1/; q; }
15496 - test ! -n "$as_dirs" || mkdir $as_dirs
15497 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
15498 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
15499 - { (exit 1); exit 1; }; }; }
15503 -if test "$ac_dir" != .; then
15504 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
15505 - # A "../" for each directory in $ac_dir_suffix.
15506 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
15508 - ac_dir_suffix= ac_top_builddir=
15512 - .) # No --srcdir option. We are building in place.
15514 - if test -z "$ac_top_builddir"; then
15517 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
15519 - [\\/]* | ?:[\\/]* ) # Absolute path.
15520 - ac_srcdir=$srcdir$ac_dir_suffix;
15521 - ac_top_srcdir=$srcdir ;;
15522 - *) # Relative path.
15523 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
15524 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
15526 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
15528 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
15529 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
15530 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
15531 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
15535 - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
15536 - *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
15539 - if test x"$ac_file" != x-; then
15540 - { echo "$as_me:$LINENO: creating $ac_file" >&5
15541 -echo "$as_me: creating $ac_file" >&6;}
15544 - # Let's still pretend it is `configure' which instantiates (i.e., don't
15545 - # use $as_me), people would be surprised to read:
15546 - # /* config.h. Generated by config.status. */
15547 - if test x"$ac_file" = x-; then
15550 - configure_input="$ac_file. "
15552 - configure_input=$configure_input"Generated from `echo $ac_file_in |
15553 - sed 's,.*/,,'` by configure."
15555 - # First look for the input files in the build tree, otherwise in the
15557 - ac_file_inputs=`IFS=:
15558 - for f in $ac_file_in; do
15560 - -) echo $tmp/stdin ;;
15562 - # Absolute (can't be DOS-style, as IFS=:)
15563 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
15564 -echo "$as_me: error: cannot find input file: $f" >&2;}
15565 - { (exit 1); exit 1; }; }
15568 - if test -f "$f"; then
15571 - elif test -f "$srcdir/$f"; then
15576 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
15577 -echo "$as_me: error: cannot find input file: $f" >&2;}
15578 - { (exit 1); exit 1; }; }
15581 - done` || { (exit 1); exit 1; }
15583 -cat >>$CONFIG_STATUS <<_ACEOF
15587 -cat >>$CONFIG_STATUS <<\_ACEOF
15589 -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
15590 -s,@configure_input@,$configure_input,;t t
15591 -s,@srcdir@,$ac_srcdir,;t t
15592 -s,@abs_srcdir@,$ac_abs_srcdir,;t t
15593 -s,@top_srcdir@,$ac_top_srcdir,;t t
15594 -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
15595 -s,@builddir@,$ac_builddir,;t t
15596 -s,@abs_builddir@,$ac_abs_builddir,;t t
15597 -s,@top_builddir@,$ac_top_builddir,;t t
15598 -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
15599 -s,@INSTALL@,$ac_INSTALL,;t t
15600 -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
15602 - if test x"$ac_file" != x-; then
15603 - mv $tmp/out $ac_file
15611 -cat >>$CONFIG_STATUS <<\_ACEOF
15614 -# CONFIG_COMMANDS section.
15616 -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
15617 - ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
15618 - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
15619 - ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
15620 -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15621 - X"$ac_dest" : 'X\(//\)[^/]' \| \
15622 - X"$ac_dest" : 'X\(//\)$' \| \
15623 - X"$ac_dest" : 'X\(/\)' \| \
15624 - . : '\(.\)' 2>/dev/null ||
15625 -echo X"$ac_dest" |
15626 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15627 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15628 - /^X\(\/\/\)$/{ s//\1/; q; }
15629 - /^X\(\/\).*/{ s//\1/; q; }
15633 -if test "$ac_dir" != .; then
15634 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
15635 - # A "../" for each directory in $ac_dir_suffix.
15636 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
15638 - ac_dir_suffix= ac_top_builddir=
15642 - .) # No --srcdir option. We are building in place.
15644 - if test -z "$ac_top_builddir"; then
15647 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
15649 - [\\/]* | ?:[\\/]* ) # Absolute path.
15650 - ac_srcdir=$srcdir$ac_dir_suffix;
15651 - ac_top_srcdir=$srcdir ;;
15652 - *) # Relative path.
15653 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
15654 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
15656 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
15658 -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
15659 -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
15660 -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
15661 -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
15664 - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
15665 -echo "$as_me: executing $ac_dest commands" >&6;}
15667 - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
15668 - # Strip MF so we end up with the name of the file.
15669 - mf=`echo "$mf" | sed -e 's/:.*$//'`
15670 - if (sed 1q $mf | fgrep 'generated by automake') > /dev/null 2>&1; then
15671 - dirpart=`(dirname "$mf") 2>/dev/null ||
15672 -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15673 - X"$mf" : 'X\(//\)[^/]' \| \
15674 - X"$mf" : 'X\(//\)$' \| \
15675 - X"$mf" : 'X\(/\)' \| \
15676 - . : '\(.\)' 2>/dev/null ||
15678 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15679 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15680 - /^X\(\/\/\)$/{ s//\1/; q; }
15681 - /^X\(\/\).*/{ s//\1/; q; }
15686 - grep '^DEP_FILES *= *[^ @%:@]' < "$mf" > /dev/null || continue
15687 - # Extract the definition of DEP_FILES from the Makefile without
15688 - # running `make'.
15689 - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
15690 - test -z "$DEPDIR" && continue
15691 - # When using ansi2knr, U may be empty or an underscore; expand it
15692 - U=`sed -n -e '/^U = / s///p' < "$mf"`
15693 - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
15694 - # We invoke sed twice because it is the simplest approach to
15695 - # changing $(DEPDIR) to its actual value in the expansion.
15696 - for file in `sed -n -e '
15697 - /^DEP_FILES = .*\\\\$/ {
15698 - s/^DEP_FILES = //
15706 - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
15707 - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
15708 - # Make sure the directory exists.
15709 - test -f "$dirpart/$file" && continue
15710 - fdir=`(dirname "$file") 2>/dev/null ||
15711 -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15712 - X"$file" : 'X\(//\)[^/]' \| \
15713 - X"$file" : 'X\(//\)$' \| \
15714 - X"$file" : 'X\(/\)' \| \
15715 - . : '\(.\)' 2>/dev/null ||
15717 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15718 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15719 - /^X\(\/\/\)$/{ s//\1/; q; }
15720 - /^X\(\/\).*/{ s//\1/; q; }
15722 - { if $as_mkdir_p; then
15723 - mkdir -p $dirpart/$fdir
15725 - as_dir=$dirpart/$fdir
15727 - while test ! -d "$as_dir"; do
15728 - as_dirs="$as_dir $as_dirs"
15729 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
15730 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
15731 - X"$as_dir" : 'X\(//\)[^/]' \| \
15732 - X"$as_dir" : 'X\(//\)$' \| \
15733 - X"$as_dir" : 'X\(/\)' \| \
15734 - . : '\(.\)' 2>/dev/null ||
15736 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
15737 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
15738 - /^X\(\/\/\)$/{ s//\1/; q; }
15739 - /^X\(\/\).*/{ s//\1/; q; }
15742 - test ! -n "$as_dirs" || mkdir $as_dirs
15743 - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
15744 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
15745 - { (exit 1); exit 1; }; }; }
15747 - # echo "creating $dirpart/$file"
15748 - echo '# dummy' > "$dirpart/$file"
15753 -echo "$DEFS" > boehm-cflags
15755 -if test -n "$CONFIG_FILES"; then
15756 - LD="${ORIGINAL_LD_FOR_MULTILIBS}"
15757 - ac_file=Makefile . ${gc_basedir}/../config-ml.in
15763 -cat >>$CONFIG_STATUS <<\_ACEOF
15765 -{ (exit 0); exit 0; }
15767 -chmod +x $CONFIG_STATUS
15768 -ac_clean_files=$ac_clean_files_save
15771 -# configure is writing to config.log, and then calls config.status.
15772 -# config.status does its own redirection, appending to config.log.
15773 -# Unfortunately, on DOS this fails, as config.log is still kept open
15774 -# by configure, so config.status won't be able to write to it; its
15775 -# output is simply discarded. So we exec the FD to /dev/null,
15776 -# effectively closing config.log, so it can be properly (re)opened and
15777 -# appended to by config.status. When coming back to configure, we
15778 -# need to make the FD available again.
15779 -if test "$no_create" != yes; then
15782 - $SHELL $CONFIG_STATUS || ac_cs_success=false
15783 - exec 5>>config.log
15784 - # Use ||, not &&, to avoid exiting from the if with $? = 1, which
15785 - # would make configure fail if this is the last instruction.
15786 - $ac_cs_success || { (exit 1); exit 1; }
15789 diff -Nur ../boehm-gc/autom4te.cache/requests boehm-gc/autom4te.cache/requests
15790 --- ../boehm-gc/autom4te.cache/requests Sat May 31 15:09:32 2003
15791 +++ boehm-gc/autom4te.cache/requests Wed Dec 31 16:00:00 1969
15793 -# This file was created by autom4te-2.54.
15794 -# It contains the lists of macros which have been traced.
15795 -# It can be safely removed.
15802 - '/sw/share/autoconf'
15805 - '/sw/share/autoconf/autoconf/autoconf.m4f',
15810 - 'm4_pattern_forbid' => 1,
15811 - 'AC_C_VOLATILE' => 1,
15812 - 'AC_TYPE_OFF_T' => 1,
15813 - 'AC_FUNC_CLOSEDIR_VOID' => 1,
15814 - 'AC_REPLACE_FNMATCH' => 1,
15815 - 'AC_PROG_LIBTOOL' => 1,
15816 - 'AC_FUNC_STAT' => 1,
15817 - 'AC_FUNC_WAIT3' => 1,
15818 - 'AC_HEADER_TIME' => 1,
15819 - 'AC_FUNC_LSTAT' => 1,
15820 - 'AC_STRUCT_TM' => 1,
15821 - 'AM_AUTOMAKE_VERSION' => 1,
15822 - 'AC_FUNC_GETMNTENT' => 1,
15823 - 'AC_TYPE_MODE_T' => 1,
15824 - 'AC_FUNC_STRTOD' => 1,
15825 - 'AC_CHECK_HEADERS' => 1,
15826 - 'AC_FUNC_STRNLEN' => 1,
15827 - 'AC_PROG_CXX' => 1,
15828 - 'AC_PATH_X' => 1,
15829 - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
15830 - 'AC_PROG_AWK' => 1,
15831 - 'AC_HEADER_STDC' => 1,
15832 - 'AC_HEADER_MAJOR' => 1,
15833 - 'AC_FUNC_ERROR_AT_LINE' => 1,
15834 - 'AC_PROG_GCC_TRADITIONAL' => 1,
15835 - 'AC_LIBSOURCE' => 1,
15836 - 'AC_FUNC_MBRTOWC' => 1,
15837 - 'AC_STRUCT_ST_BLOCKS' => 1,
15838 - 'AC_TYPE_SIGNAL' => 1,
15839 - 'AC_TYPE_UID_T' => 1,
15840 - 'AC_CONFIG_AUX_DIR' => 1,
15841 - 'AC_PROG_MAKE_SET' => 1,
15842 - 'm4_pattern_allow' => 1,
15843 - 'AC_DEFINE_TRACE_LITERAL' => 1,
15844 - 'AC_FUNC_STRERROR_R' => 1,
15845 - 'AC_PROG_CC' => 1,
15846 - 'AC_FUNC_FORK' => 1,
15847 - 'AC_DECL_SYS_SIGLIST' => 1,
15848 - 'AC_FUNC_STRCOLL' => 1,
15849 - 'AC_FUNC_VPRINTF' => 1,
15850 - 'AC_PROG_YACC' => 1,
15852 - 'AC_STRUCT_TIMEZONE' => 1,
15853 - 'AC_FUNC_CHOWN' => 1,
15855 - 'AC_FUNC_ALLOCA' => 1,
15856 - 'AC_CANONICAL_HOST' => 1,
15857 - 'AC_FUNC_GETPGRP' => 1,
15858 - 'AC_PROG_RANLIB' => 1,
15859 - 'AM_INIT_AUTOMAKE' => 1,
15860 - 'AC_FUNC_SETPGRP' => 1,
15861 - 'AC_CONFIG_SUBDIRS' => 1,
15862 - 'AC_FUNC_MMAP' => 1,
15863 - 'AC_FUNC_REALLOC' => 1,
15864 - 'AC_TYPE_SIZE_T' => 1,
15865 - 'AC_CHECK_TYPES' => 1,
15866 - 'AC_CHECK_MEMBERS' => 1,
15867 - 'AM_MAINTAINER_MODE' => 1,
15868 - 'AC_FUNC_UTIME_NULL' => 1,
15869 - 'AC_FUNC_SELECT_ARGTYPES' => 1,
15870 - 'AC_FUNC_STRFTIME' => 1,
15871 - 'AC_HEADER_STAT' => 1,
15872 - 'AC_C_INLINE' => 1,
15873 - 'AC_PROG_CPP' => 1,
15874 - 'AC_TYPE_PID_T' => 1,
15875 - 'AC_PROG_LEX' => 1,
15876 - 'AC_C_CONST' => 1,
15877 - 'AC_CONFIG_FILES' => 1,
15879 - 'AC_FUNC_SETVBUF_REVERSED' => 1,
15880 - 'AC_PROG_INSTALL' => 1,
15881 - 'AM_GNU_GETTEXT' => 1,
15882 - 'AC_CHECK_LIB' => 1,
15883 - 'AC_FUNC_OBSTACK' => 1,
15884 - 'AC_FUNC_MALLOC' => 1,
15885 - 'AC_FUNC_GETGROUPS' => 1,
15886 - 'AC_FUNC_GETLOADAVG' => 1,
15887 - 'AH_OUTPUT' => 1,
15888 - 'AC_FUNC_FSEEKO' => 1,
15889 - 'AM_PROG_CC_C_O' => 1,
15890 - 'AC_FUNC_MKTIME' => 1,
15891 - 'AC_CANONICAL_SYSTEM' => 1,
15892 - 'AM_CONDITIONAL' => 1,
15893 - 'AC_CONFIG_HEADERS' => 1,
15894 - 'AC_HEADER_SYS_WAIT' => 1,
15895 - 'AC_PROG_LN_S' => 1,
15896 - 'AC_FUNC_MEMCMP' => 1,
15897 - 'm4_include' => 1,
15898 - 'AC_HEADER_DIRENT' => 1,
15899 - 'AC_CHECK_FUNCS' => 1
15906 - '/sw/share/autoconf-2.54'
15909 - '--reload-state=/sw/share/autoconf-2.54/autoconf/autoconf.m4f',
15914 - 'm4_pattern_forbid' => 1,
15915 - 'AC_TYPE_OFF_T' => 1,
15916 - 'AC_PROG_LIBTOOL' => 1,
15917 - 'AC_FUNC_STAT' => 1,
15918 - 'AC_HEADER_TIME' => 1,
15919 - 'AC_FUNC_WAIT3' => 1,
15920 - 'AC_STRUCT_TM' => 1,
15921 - 'AC_FUNC_LSTAT' => 1,
15922 - 'AC_TYPE_MODE_T' => 1,
15923 - 'AC_FUNC_STRTOD' => 1,
15924 - 'AC_CHECK_HEADERS' => 1,
15925 - 'AC_PROG_CXX' => 1,
15926 - 'AC_PATH_X' => 1,
15927 - 'AC_PROG_AWK' => 1,
15928 - 'AC_HEADER_STDC' => 1,
15929 - 'AC_HEADER_MAJOR' => 1,
15930 - 'AC_FUNC_ERROR_AT_LINE' => 1,
15931 - 'AC_PROG_GCC_TRADITIONAL' => 1,
15932 - 'AC_LIBSOURCE' => 1,
15933 - 'AC_STRUCT_ST_BLOCKS' => 1,
15934 - 'AC_TYPE_SIGNAL' => 1,
15935 - 'AC_TYPE_UID_T' => 1,
15936 - 'AC_PROG_MAKE_SET' => 1,
15937 - 'm4_pattern_allow' => 1,
15938 - 'AC_DEFINE_TRACE_LITERAL' => 1,
15939 - 'AM_PROG_LIBTOOL' => 1,
15940 - 'AC_FUNC_STRERROR_R' => 1,
15941 - 'AC_PROG_CC' => 1,
15942 - 'AC_FUNC_FORK' => 1,
15943 - 'AC_DECL_SYS_SIGLIST' => 1,
15944 - 'AC_FUNC_STRCOLL' => 1,
15945 - 'AC_FUNC_VPRINTF' => 1,
15946 - 'AC_PROG_YACC' => 1,
15947 - 'AC_STRUCT_TIMEZONE' => 1,
15948 - 'AC_FUNC_CHOWN' => 1,
15950 - 'AC_FUNC_ALLOCA' => 1,
15951 - 'AC_FUNC_GETPGRP' => 1,
15952 - 'AC_PROG_RANLIB' => 1,
15953 - 'AC_FUNC_SETPGRP' => 1,
15954 - 'AC_FUNC_MMAP' => 1,
15955 - 'AC_TYPE_SIZE_T' => 1,
15956 - 'AC_CHECK_TYPES' => 1,
15957 - 'AC_FUNC_UTIME_NULL' => 1,
15958 - 'AC_FUNC_STRFTIME' => 1,
15959 - 'AC_HEADER_STAT' => 1,
15960 - 'AC_C_INLINE' => 1,
15961 - 'AC_PROG_CPP' => 1,
15962 - 'AC_C_CONST' => 1,
15963 - 'AC_PROG_LEX' => 1,
15964 - 'AC_TYPE_PID_T' => 1,
15965 - 'AC_CONFIG_FILES' => 1,
15967 - 'AC_FUNC_SETVBUF_REVERSED' => 1,
15968 - 'AC_FUNC_FNMATCH' => 1,
15969 - 'AC_PROG_INSTALL' => 1,
15970 - 'AM_GNU_GETTEXT' => 1,
15971 - 'AC_FUNC_OBSTACK' => 1,
15972 - 'AC_CHECK_LIB' => 1,
15973 - 'AC_FUNC_MALLOC' => 1,
15974 - 'AC_FUNC_GETGROUPS' => 1,
15975 - 'AC_FUNC_GETLOADAVG' => 1,
15976 - 'AH_OUTPUT' => 1,
15977 - 'AC_FUNC_FSEEKO' => 1,
15978 - 'AC_FUNC_MKTIME' => 1,
15979 - 'AM_CONDITIONAL' => 1,
15980 - 'AC_CONFIG_HEADERS' => 1,
15981 - 'AC_HEADER_SYS_WAIT' => 1,
15982 - 'AC_PROG_LN_S' => 1,
15983 - 'AC_FUNC_MEMCMP' => 1,
15984 - 'm4_include' => 1,
15985 - 'AC_HEADER_DIRENT' => 1,
15986 - 'AC_CHECK_FUNCS' => 1
15991 diff -Nur ../boehm-gc/autom4te.cache/traces.0 boehm-gc/autom4te.cache/traces.0
15992 --- ../boehm-gc/autom4te.cache/traces.0 Mon May 26 13:14:22 2003
15993 +++ boehm-gc/autom4te.cache/traces.0 Wed Dec 31 16:00:00 1969
15995 -m4trace:configure.in:16: -1- AC_INIT([gcj_mlc.c])
15996 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?A[CHUM]_])
15997 -m4trace:configure.in:16: -1- m4_pattern_forbid([_AC_])
15998 -m4trace:configure.in:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
15999 -m4trace:configure.in:16: -1- m4_pattern_allow([^AS_FLAGS$])
16000 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?m4_])
16001 -m4trace:configure.in:16: -1- m4_pattern_forbid([^dnl$])
16002 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?AS_])
16003 -m4trace:configure.in:16: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
16004 -m4trace:configure.in:16: -1- AC_SUBST([PATH_SEPARATOR])
16005 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
16006 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
16007 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
16008 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
16009 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16010 -m4trace:configure.in:16: -1- AC_SUBST([exec_prefix], [NONE])
16011 -m4trace:configure.in:16: -1- AC_SUBST([prefix], [NONE])
16012 -m4trace:configure.in:16: -1- AC_SUBST([program_transform_name], [s,x,x,])
16013 -m4trace:configure.in:16: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
16014 -m4trace:configure.in:16: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
16015 -m4trace:configure.in:16: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
16016 -m4trace:configure.in:16: -1- AC_SUBST([datadir], ['${prefix}/share'])
16017 -m4trace:configure.in:16: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
16018 -m4trace:configure.in:16: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
16019 -m4trace:configure.in:16: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
16020 -m4trace:configure.in:16: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
16021 -m4trace:configure.in:16: -1- AC_SUBST([includedir], ['${prefix}/include'])
16022 -m4trace:configure.in:16: -1- AC_SUBST([oldincludedir], ['/usr/include'])
16023 -m4trace:configure.in:16: -1- AC_SUBST([infodir], ['${prefix}/info'])
16024 -m4trace:configure.in:16: -1- AC_SUBST([mandir], ['${prefix}/man'])
16025 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
16026 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
16027 -#undef PACKAGE_NAME])
16028 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
16029 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
16030 -#undef PACKAGE_TARNAME])
16031 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
16032 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
16033 -#undef PACKAGE_VERSION])
16034 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
16035 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
16036 -#undef PACKAGE_STRING])
16037 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
16038 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
16039 -#undef PACKAGE_BUGREPORT])
16040 -m4trace:configure.in:16: -1- AC_SUBST([build_alias])
16041 -m4trace:configure.in:16: -1- AC_SUBST([host_alias])
16042 -m4trace:configure.in:16: -1- AC_SUBST([target_alias])
16043 -m4trace:configure.in:16: -1- AC_SUBST([DEFS])
16044 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_C])
16045 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_N])
16046 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_T])
16047 -m4trace:configure.in:16: -1- AC_SUBST([LIBS])
16048 -m4trace:configure.in:25: -1- AC_CONFIG_AUX_DIR([.])
16049 -m4trace:configure.in:27: -1- AC_SUBST([gc_basedir])
16050 -m4trace:configure.in:27: -1- AC_CONFIG_AUX_DIR([$gc_basedir/..])
16051 -m4trace:configure.in:27: -1- AC_CONFIG_AUX_DIR([..])
16052 -m4trace:configure.in:27: -1- AC_CANONICAL_SYSTEM
16053 -m4trace:configure.in:27: -1- AC_CANONICAL_HOST
16054 -m4trace:configure.in:27: -1- AC_SUBST([build], [$ac_cv_build])
16055 -m4trace:configure.in:27: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16056 -m4trace:configure.in:27: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16057 -m4trace:configure.in:27: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16058 -m4trace:configure.in:27: -1- AC_SUBST([host], [$ac_cv_host])
16059 -m4trace:configure.in:27: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16060 -m4trace:configure.in:27: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16061 -m4trace:configure.in:27: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16062 -m4trace:configure.in:27: -1- AC_SUBST([target], [$ac_cv_target])
16063 -m4trace:configure.in:27: -1- AC_SUBST([target_cpu], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16064 -m4trace:configure.in:27: -1- AC_SUBST([target_vendor], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16065 -m4trace:configure.in:27: -1- AC_SUBST([target_os], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16066 -m4trace:configure.in:27: -1- AC_SUBST([mkinstalldirs])
16067 -m4trace:configure.in:27: -1- AM_INIT_AUTOMAKE([gc], [6.0], [no-define])
16068 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16069 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16070 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16071 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16072 -m4trace:configure.in:27: -1- AC_SUBST([PACKAGE])
16073 -m4trace:configure.in:27: -1- AC_SUBST([VERSION])
16074 -m4trace:configure.in:27: -2- AC_DEFINE_TRACE_LITERAL([PACKAGE])
16075 -m4trace:configure.in:27: -2- AH_OUTPUT([PACKAGE], [/* Name of package */
16077 -m4trace:configure.in:27: -2- AC_DEFINE_TRACE_LITERAL([VERSION])
16078 -m4trace:configure.in:27: -2- AH_OUTPUT([VERSION], [/* Version number of package */
16080 -m4trace:configure.in:27: -1- AC_SUBST([ACLOCAL])
16081 -m4trace:configure.in:27: -1- AC_SUBST([AUTOCONF])
16082 -m4trace:configure.in:27: -1- AC_SUBST([AUTOMAKE])
16083 -m4trace:configure.in:27: -1- AC_SUBST([AUTOHEADER])
16084 -m4trace:configure.in:27: -1- AC_SUBST([MAKEINFO])
16085 -m4trace:configure.in:27: -1- AC_PROG_MAKE_SET
16086 -m4trace:configure.in:27: -1- AC_SUBST([SET_MAKE])
16087 -m4trace:configure.in:27: -1- AC_SUBST([CC])
16088 -m4trace:configure.in:27: -1- AC_SUBST([CC])
16089 -m4trace:configure.in:27: -1- AC_SUBST([CXX])
16090 -m4trace:configure.in:27: -1- AC_SUBST([AS])
16091 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AS])
16092 -m4trace:configure.in:27: -1- AC_SUBST([AR])
16093 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AR])
16094 -m4trace:configure.in:27: -1- AC_SUBST([RANLIB])
16095 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_RANLIB])
16096 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16097 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16098 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16099 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16100 -m4trace:configure.in:27: -1- AM_MAINTAINER_MODE
16101 -m4trace:configure.in:27: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16102 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16103 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16104 -m4trace:configure.in:27: -1- AC_SUBST([MAINT])
16105 -m4trace:configure.in:27: -1- AC_SUBST([GC_CFLAGS])
16106 -m4trace:configure.in:29: -1- AC_PROG_LIBTOOL
16107 -m4trace:configure.in:29: -1- AC_PROG_LN_S
16108 -m4trace:configure.in:29: -1- AC_SUBST([LN_S], [$as_ln_s])
16109 -m4trace:configure.in:29: -1- AC_SUBST([RANLIB])
16110 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_RANLIB])
16111 -m4trace:configure.in:29: -1- AC_SUBST([STRIP])
16112 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_STRIP])
16113 -m4trace:configure.in:29: -1- AC_SUBST([LIBTOOL])
16114 -m4trace:configure.in:29: -1- AC_SUBST([CXXCPP])
16115 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16116 -m4trace:configure.in:29: -1- AC_SUBST([CXXCPP])
16117 -m4trace:configure.in:38: -1- AM_MAINTAINER_MODE
16118 -m4trace:configure.in:38: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16119 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16120 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16121 -m4trace:configure.in:38: -1- AC_SUBST([MAINT])
16122 -m4trace:configure.in:77: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16123 -m4trace:configure.in:78: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16124 -m4trace:configure.in:80: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16125 -m4trace:configure.in:82: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16126 -m4trace:configure.in:85: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16127 -m4trace:configure.in:86: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16128 -m4trace:configure.in:90: -1- AC_DEFINE_TRACE_LITERAL([GC_HPUX_THREADS])
16129 -m4trace:configure.in:91: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_C_SOURCE])
16130 -m4trace:configure.in:93: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16131 -m4trace:configure.in:95: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16132 -m4trace:configure.in:100: -1- AC_DEFINE_TRACE_LITERAL([GC_FREEBSD_THREADS])
16133 -m4trace:configure.in:105: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_THREADS])
16134 -m4trace:configure.in:106: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_PTHREADS])
16135 -m4trace:configure.in:109: -1- AC_DEFINE_TRACE_LITERAL([GC_IRIX_THREADS])
16136 -m4trace:configure.in:117: -1- AC_DEFINE_TRACE_LITERAL([GC_DARWIN_THREADS])
16137 -m4trace:configure.in:118: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16138 -m4trace:configure.in:120: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16139 -m4trace:configure.in:124: -1- AC_DEFINE_TRACE_LITERAL([GC_WIN32_THREADS])
16140 -m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([NO_GETENV])
16141 -m4trace:configure.in:134: -1- AC_SUBST([THREADLIBS])
16142 -m4trace:configure.in:141: -1- AM_CONDITIONAL([POWERPC_DARWIN], [test x$powerpc_darwin = xtrue])
16143 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_TRUE])
16144 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_FALSE])
16145 -m4trace:configure.in:148: -1- AC_CHECK_LIB([dl], [dlopen], [EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"])
16146 -m4trace:configure.in:152: -1- AC_SUBST([EXTRA_TEST_LIBS])
16147 -m4trace:configure.in:155: -1- AC_SUBST([target_all])
16148 -m4trace:configure.in:156: -1- AC_SUBST([target_alias])
16149 -m4trace:configure.in:174: -1- AC_DEFINE_TRACE_LITERAL([ECOS])
16150 -m4trace:configure.in:179: -1- AC_SUBST([CXX])
16151 -m4trace:configure.in:181: -1- AC_SUBST([INCLUDES])
16152 -m4trace:configure.in:182: -1- AC_SUBST([CXXINCLUDES])
16153 -m4trace:configure.in:197: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS25_PROC_VDB_BUG_FIXED])
16154 -m4trace:configure.in:201: -1- AC_DEFINE_TRACE_LITERAL([STACKBASE])
16155 -m4trace:configure.in:202: -1- AC_DEFINE_TRACE_LITERAL([DATASTART_IS_ETEXT])
16156 -m4trace:configure.in:211: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16157 -m4trace:configure.in:215: -1- AC_DEFINE_TRACE_LITERAL([SUNOS53_SHARED_LIB])
16158 -m4trace:configure.in:228: -1- AC_SUBST([addobjs])
16159 -m4trace:configure.in:252: -1- AC_SUBST([MY_CFLAGS])
16160 -m4trace:configure.in:256: -1- AC_DEFINE_TRACE_LITERAL([SILENT])
16161 -m4trace:configure.in:257: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGNALS])
16162 -m4trace:configure.in:258: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16163 -m4trace:configure.in:259: -1- AC_DEFINE_TRACE_LITERAL([ALL_INTERIOR_POINTERS])
16164 -m4trace:configure.in:262: -1- AC_DEFINE_TRACE_LITERAL([JAVA_FINALIZATION])
16165 -m4trace:configure.in:263: -1- AC_DEFINE_TRACE_LITERAL([GC_GCJ_SUPPORT])
16166 -m4trace:configure.in:264: -1- AC_DEFINE_TRACE_LITERAL([ATOMIC_UNCOLLECTABLE])
16167 -m4trace:configure.in:270: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGSET])
16168 -m4trace:configure.in:271: -1- AC_DEFINE_TRACE_LITERAL([NO_DEBUGGING])
16169 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([KEEP_BACK_PTRS])
16170 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([DBG_HDRS_ALL])
16171 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16172 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16173 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([SAVE_CALL_COUNT])
16174 -m4trace:configure.in:292: -1- AM_CONDITIONAL([USE_LIBDIR], [test -z "$with_cross_host"])
16175 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_TRUE])
16176 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_FALSE])
16177 -m4trace:configure.in:317: -1- AC_CONFIG_FILES([Makefile include/Makefile])
16178 -m4trace:configure.in:317: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
16179 -m4trace:configure.in:317: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
16180 diff -Nur ../boehm-gc/autom4te.cache/traces.1 boehm-gc/autom4te.cache/traces.1
16181 --- ../boehm-gc/autom4te.cache/traces.1 Sat May 31 15:09:31 2003
16182 +++ boehm-gc/autom4te.cache/traces.1 Wed Dec 31 16:00:00 1969
16184 -m4trace:aclocal.m4:166: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
16185 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?A[CHUM]_])
16186 -m4trace:configure.in:16: -1- m4_pattern_forbid([_AC_])
16187 -m4trace:configure.in:16: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
16188 -m4trace:configure.in:16: -1- m4_pattern_allow([^AS_FLAGS$])
16189 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?m4_])
16190 -m4trace:configure.in:16: -1- m4_pattern_forbid([^dnl$])
16191 -m4trace:configure.in:16: -1- m4_pattern_forbid([^_?AS_])
16192 -m4trace:configure.in:16: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
16193 -m4trace:configure.in:16: -1- AC_SUBST([PATH_SEPARATOR])
16194 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
16195 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
16196 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
16197 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
16198 -m4trace:configure.in:16: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
16199 -m4trace:configure.in:16: -1- AC_SUBST([exec_prefix], [NONE])
16200 -m4trace:configure.in:16: -1- AC_SUBST([prefix], [NONE])
16201 -m4trace:configure.in:16: -1- AC_SUBST([program_transform_name], [s,x,x,])
16202 -m4trace:configure.in:16: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
16203 -m4trace:configure.in:16: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
16204 -m4trace:configure.in:16: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
16205 -m4trace:configure.in:16: -1- AC_SUBST([datadir], ['${prefix}/share'])
16206 -m4trace:configure.in:16: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
16207 -m4trace:configure.in:16: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
16208 -m4trace:configure.in:16: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
16209 -m4trace:configure.in:16: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
16210 -m4trace:configure.in:16: -1- AC_SUBST([includedir], ['${prefix}/include'])
16211 -m4trace:configure.in:16: -1- AC_SUBST([oldincludedir], ['/usr/include'])
16212 -m4trace:configure.in:16: -1- AC_SUBST([infodir], ['${prefix}/info'])
16213 -m4trace:configure.in:16: -1- AC_SUBST([mandir], ['${prefix}/man'])
16214 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
16215 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
16216 -#undef PACKAGE_NAME])
16217 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
16218 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
16219 -#undef PACKAGE_TARNAME])
16220 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
16221 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
16222 -#undef PACKAGE_VERSION])
16223 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
16224 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
16225 -#undef PACKAGE_STRING])
16226 -m4trace:configure.in:16: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
16227 -m4trace:configure.in:16: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
16228 -#undef PACKAGE_BUGREPORT])
16229 -m4trace:configure.in:16: -1- AC_SUBST([build_alias])
16230 -m4trace:configure.in:16: -1- AC_SUBST([host_alias])
16231 -m4trace:configure.in:16: -1- AC_SUBST([target_alias])
16232 -m4trace:configure.in:16: -1- AC_SUBST([DEFS])
16233 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_C])
16234 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_N])
16235 -m4trace:configure.in:16: -1- AC_SUBST([ECHO_T])
16236 -m4trace:configure.in:16: -1- AC_SUBST([LIBS])
16237 -m4trace:configure.in:27: -1- AC_SUBST([gc_basedir])
16238 -m4trace:configure.in:27: -1- AC_SUBST([build], [$ac_cv_build])
16239 -m4trace:configure.in:27: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16240 -m4trace:configure.in:27: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16241 -m4trace:configure.in:27: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16242 -m4trace:configure.in:27: -1- AC_SUBST([host], [$ac_cv_host])
16243 -m4trace:configure.in:27: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16244 -m4trace:configure.in:27: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16245 -m4trace:configure.in:27: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16246 -m4trace:configure.in:27: -1- AC_SUBST([target], [$ac_cv_target])
16247 -m4trace:configure.in:27: -1- AC_SUBST([target_cpu], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
16248 -m4trace:configure.in:27: -1- AC_SUBST([target_vendor], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
16249 -m4trace:configure.in:27: -1- AC_SUBST([target_os], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
16250 -m4trace:configure.in:27: -1- AC_SUBST([mkinstalldirs])
16251 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16252 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16253 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16254 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16255 -m4trace:configure.in:27: -1- AC_SUBST([PACKAGE], [gc])
16256 -m4trace:configure.in:27: -1- AC_SUBST([VERSION], [6.1a1])
16257 -m4trace:configure.in:27: -1- AC_SUBST([ACLOCAL])
16258 -m4trace:configure.in:27: -1- AC_SUBST([AUTOCONF])
16259 -m4trace:configure.in:27: -1- AC_SUBST([AUTOMAKE])
16260 -m4trace:configure.in:27: -1- AC_SUBST([AUTOHEADER])
16261 -m4trace:configure.in:27: -1- AC_SUBST([MAKEINFO])
16262 -m4trace:configure.in:27: -1- AC_SUBST([AMTAR])
16263 -m4trace:configure.in:27: -1- AC_SUBST([install_sh])
16264 -m4trace:configure.in:27: -1- AC_SUBST([STRIP])
16265 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_STRIP])
16266 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
16267 -m4trace:configure.in:27: -1- AC_PROG_AWK
16268 -m4trace:configure.in:27: -1- AC_SUBST([AWK])
16269 -m4trace:configure.in:27: -1- AC_PROG_MAKE_SET
16270 -m4trace:configure.in:27: -1- AC_SUBST([SET_MAKE])
16271 -m4trace:configure.in:27: -1- AC_SUBST([AS])
16272 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AS])
16273 -m4trace:configure.in:27: -1- AC_SUBST([AR])
16274 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_AR])
16275 -m4trace:configure.in:27: -1- AC_SUBST([RANLIB])
16276 -m4trace:configure.in:27: -1- AC_SUBST([ac_ct_RANLIB])
16277 -m4trace:configure.in:27: -1- AC_PROG_INSTALL
16278 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_PROGRAM])
16279 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_SCRIPT])
16280 -m4trace:configure.in:27: -1- AC_SUBST([INSTALL_DATA])
16281 -m4trace:configure.in:27: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16282 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16283 -m4trace:configure.in:27: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16284 -m4trace:configure.in:27: -1- AC_SUBST([MAINT])
16285 -m4trace:configure.in:27: -1- AC_SUBST([GC_CFLAGS])
16286 -m4trace:configure.in:29: -1- AM_PROG_LIBTOOL
16287 -m4trace:configure.in:29: -1- AC_PROG_LIBTOOL
16288 -m4trace:configure.in:29: -1- AC_PROG_CC
16289 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16290 -m4trace:configure.in:29: -1- AC_SUBST([CFLAGS])
16291 -m4trace:configure.in:29: -1- AC_SUBST([LDFLAGS])
16292 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16293 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16294 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16295 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16296 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16297 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16298 -m4trace:configure.in:29: -1- AC_SUBST([CC])
16299 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CC])
16300 -m4trace:configure.in:29: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
16301 -m4trace:configure.in:29: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
16302 -m4trace:configure.in:29: -1- AC_SUBST([DEPDIR])
16303 -m4trace:configure.in:29: -1- AC_SUBST([am__include])
16304 -m4trace:configure.in:29: -1- AC_SUBST([am__quote])
16305 -m4trace:configure.in:29: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
16306 -m4trace:configure.in:29: -1- AC_SUBST([AMDEP_TRUE])
16307 -m4trace:configure.in:29: -1- AC_SUBST([AMDEP_FALSE])
16308 -m4trace:configure.in:29: -1- AC_SUBST([AMDEPBACKSLASH])
16309 -m4trace:configure.in:29: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
16310 -m4trace:configure.in:29: -1- AC_PROG_LN_S
16311 -m4trace:configure.in:29: -1- AC_SUBST([LN_S], [$as_ln_s])
16312 -m4trace:configure.in:29: -1- AC_SUBST([ECHO])
16313 -m4trace:configure.in:29: -1- AC_SUBST([RANLIB])
16314 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_RANLIB])
16315 -m4trace:configure.in:29: -1- AC_SUBST([STRIP])
16316 -m4trace:configure.in:29: -1- AC_SUBST([ac_ct_STRIP])
16317 -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],
16318 - [lt_cv_dlopen="dlopen"],
16319 - [AC_CHECK_LIB([dl], [dlopen],
16320 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
16321 - [AC_CHECK_LIB([svld], [dlopen],
16322 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
16323 - [AC_CHECK_LIB([dld], [dld_link],
16324 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16329 -m4trace:configure.in:29: -1- AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen],
16330 - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
16331 - [AC_CHECK_LIB([dld], [dld_link],
16332 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16335 -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],
16336 - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16338 -m4trace:configure.in:29: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
16339 -m4trace:configure.in:29: -1- AC_CHECK_HEADERS([dlfcn.h])
16340 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
16341 -#undef HAVE_DLFCN_H])
16342 -m4trace:configure.in:29: -1- AC_HEADER_STDC
16343 -m4trace:configure.in:29: -1- AC_PROG_CPP
16344 -m4trace:configure.in:29: -1- AC_SUBST([CPP])
16345 -m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
16346 -m4trace:configure.in:29: -1- AC_SUBST([CPP])
16347 -m4trace:configure.in:29: -1- AC_SUBST([EGREP])
16348 -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
16349 -m4trace:configure.in:29: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
16350 -#undef STDC_HEADERS])
16351 -m4trace:configure.in:29: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
16352 - inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
16353 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
16354 -#undef HAVE_SYS_TYPES_H])
16355 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
16356 -#undef HAVE_SYS_STAT_H])
16357 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
16358 -#undef HAVE_STDLIB_H])
16359 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
16360 -#undef HAVE_STRING_H])
16361 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
16362 -#undef HAVE_MEMORY_H])
16363 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
16364 -#undef HAVE_STRINGS_H])
16365 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
16366 -#undef HAVE_INTTYPES_H])
16367 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
16368 -#undef HAVE_STDINT_H])
16369 -m4trace:configure.in:29: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
16370 -#undef HAVE_UNISTD_H])
16371 -m4trace:configure.in:29: -1- AC_SUBST([LIBTOOL])
16372 -m4trace:configure.in:38: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
16373 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
16374 -m4trace:configure.in:38: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
16375 -m4trace:configure.in:38: -1- AC_SUBST([MAINT])
16376 -m4trace:configure.in:77: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16377 -m4trace:configure.in:78: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16378 -m4trace:configure.in:80: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16379 -m4trace:configure.in:82: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16380 -m4trace:configure.in:85: -1- AC_DEFINE_TRACE_LITERAL([GC_LINUX_THREADS])
16381 -m4trace:configure.in:86: -1- AC_DEFINE_TRACE_LITERAL([_REENTRANT])
16382 -m4trace:configure.in:90: -1- AC_DEFINE_TRACE_LITERAL([GC_HPUX_THREADS])
16383 -m4trace:configure.in:91: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_C_SOURCE])
16384 -m4trace:configure.in:93: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16385 -m4trace:configure.in:95: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16386 -m4trace:configure.in:100: -1- AC_DEFINE_TRACE_LITERAL([GC_FREEBSD_THREADS])
16387 -m4trace:configure.in:105: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_THREADS])
16388 -m4trace:configure.in:106: -1- AC_DEFINE_TRACE_LITERAL([GC_SOLARIS_PTHREADS])
16389 -m4trace:configure.in:109: -1- AC_DEFINE_TRACE_LITERAL([GC_IRIX_THREADS])
16390 -m4trace:configure.in:115: -1- AC_DEFINE_TRACE_LITERAL([GC_DARWIN_THREADS])
16391 -m4trace:configure.in:116: -1- AC_DEFINE_TRACE_LITERAL([THREAD_LOCAL_ALLOC])
16392 -m4trace:configure.in:118: -1- AC_DEFINE_TRACE_LITERAL([PARALLEL_MARK])
16393 -m4trace:configure.in:124: -1- AC_DEFINE_TRACE_LITERAL([GC_WIN32_THREADS])
16394 -m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([NO_GETENV])
16395 -m4trace:configure.in:134: -1- AC_SUBST([THREADLIBS])
16396 -m4trace:configure.in:141: -1- AM_CONDITIONAL([POWERPC_DARWIN], [test x$powerpc_darwin = xtrue])
16397 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_TRUE])
16398 -m4trace:configure.in:141: -1- AC_SUBST([POWERPC_DARWIN_FALSE])
16399 -m4trace:configure.in:148: -1- AC_CHECK_LIB([dl], [dlopen], [EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"])
16400 -m4trace:configure.in:152: -1- AC_SUBST([EXTRA_TEST_LIBS])
16401 -m4trace:configure.in:155: -1- AC_SUBST([target_all])
16402 -m4trace:configure.in:156: -1- AC_SUBST([target_alias])
16403 -m4trace:configure.in:174: -1- AC_DEFINE_TRACE_LITERAL([ECOS])
16404 -m4trace:configure.in:179: -1- AC_SUBST([CXX])
16405 -m4trace:configure.in:181: -1- AC_SUBST([INCLUDES])
16406 -m4trace:configure.in:182: -1- AC_SUBST([CXXINCLUDES])
16407 -m4trace:configure.in:197: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS25_PROC_VDB_BUG_FIXED])
16408 -m4trace:configure.in:201: -1- AC_DEFINE_TRACE_LITERAL([STACKBASE])
16409 -m4trace:configure.in:202: -1- AC_DEFINE_TRACE_LITERAL([DATASTART_IS_ETEXT])
16410 -m4trace:configure.in:211: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16411 -m4trace:configure.in:215: -1- AC_DEFINE_TRACE_LITERAL([SUNOS53_SHARED_LIB])
16412 -m4trace:configure.in:228: -1- AC_SUBST([addobjs])
16413 -m4trace:configure.in:252: -1- AC_SUBST([MY_CFLAGS])
16414 -m4trace:configure.in:256: -1- AC_DEFINE_TRACE_LITERAL([SILENT])
16415 -m4trace:configure.in:257: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGNALS])
16416 -m4trace:configure.in:258: -1- AC_DEFINE_TRACE_LITERAL([NO_EXECUTE_PERMISSION])
16417 -m4trace:configure.in:259: -1- AC_DEFINE_TRACE_LITERAL([ALL_INTERIOR_POINTERS])
16418 -m4trace:configure.in:262: -1- AC_DEFINE_TRACE_LITERAL([JAVA_FINALIZATION])
16419 -m4trace:configure.in:263: -1- AC_DEFINE_TRACE_LITERAL([GC_GCJ_SUPPORT])
16420 -m4trace:configure.in:264: -1- AC_DEFINE_TRACE_LITERAL([ATOMIC_UNCOLLECTABLE])
16421 -m4trace:configure.in:270: -1- AC_DEFINE_TRACE_LITERAL([NO_SIGSET])
16422 -m4trace:configure.in:271: -1- AC_DEFINE_TRACE_LITERAL([NO_DEBUGGING])
16423 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([KEEP_BACK_PTRS])
16424 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([DBG_HDRS_ALL])
16425 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16426 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([MAKE_BACK_GRAPH])
16427 -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([SAVE_CALL_COUNT])
16428 -m4trace:configure.in:292: -1- AM_CONDITIONAL([USE_LIBDIR], [test -z "$with_cross_host"])
16429 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_TRUE])
16430 -m4trace:configure.in:292: -1- AC_SUBST([USE_LIBDIR_FALSE])
16431 -m4trace:configure.in:317: -1- AC_CONFIG_FILES([Makefile include/Makefile])
16432 -m4trace:configure.in:317: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
16433 -m4trace:configure.in:317: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
16434 diff -Nur ../boehm-gc/backgraph.c boehm-gc/backgraph.c
16435 --- ../boehm-gc/backgraph.c Mon May 26 12:48:52 2003
16436 +++ boehm-gc/backgraph.c Wed Jan 30 18:48:45 2002
16437 @@ -307,7 +307,6 @@
16439 while (currentp < (word *)(p + gc_descr)) {
16440 word current = *currentp++;
16441 - FIXUP_POINTER(current);
16442 if (current >= (word)GC_least_plausible_heap_addr &&
16443 current <= (word)GC_greatest_plausible_heap_addr) {
16444 ptr_t target = GC_base((GC_PTR)current);
16445 diff -Nur ../boehm-gc/configure boehm-gc/configure
16446 --- ../boehm-gc/configure Sat May 31 21:21:37 2003
16447 +++ boehm-gc/configure Tue May 13 17:18:14 2003
16449 program_transform_name=s,x,x,
16456 @@ -175,6 +176,7 @@
16457 --help print this message
16458 --no-create do not create output files
16459 --quiet, --silent do not print \`checking...' messages
16460 + --site-file=FILE use FILE as the site file
16461 --version print the version of autoconf that created configure
16462 Directory and file names:
16463 --prefix=PREFIX install architecture-independent files in PREFIX
16464 @@ -345,6 +347,11 @@
16465 -site=* | --site=* | --sit=*)
16466 site="$ac_optarg" ;;
16468 + -site-file | --site-file | --site-fil | --site-fi | --site-f)
16469 + ac_prev=sitefile ;;
16470 + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
16471 + sitefile="$ac_optarg" ;;
16473 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
16475 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
16476 @@ -510,12 +517,16 @@
16477 srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
16479 # Prefer explicitly selected file to automatically selected ones.
16480 -if test -z "$CONFIG_SITE"; then
16481 - if test "x$prefix" != xNONE; then
16482 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
16484 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
16485 +if test -z "$sitefile"; then
16486 + if test -z "$CONFIG_SITE"; then
16487 + if test "x$prefix" != xNONE; then
16488 + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
16490 + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
16494 + CONFIG_SITE="$sitefile"
16496 for ac_site_file in $CONFIG_SITE; do
16497 if test -r "$ac_site_file"; then
16498 @@ -593,7 +604,7 @@
16499 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
16500 # ./install, which can be erroneously created by make from ./install.sh.
16501 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
16502 -echo "configure:597: checking for a BSD compatible install" >&5
16503 +echo "configure:608: checking for a BSD compatible install" >&5
16504 if test -z "$INSTALL"; then
16505 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
16506 echo $ac_n "(cached) $ac_c" 1>&6
16507 @@ -646,7 +657,7 @@
16508 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
16510 echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
16511 -echo "configure:650: checking whether build environment is sane" >&5
16512 +echo "configure:661: checking whether build environment is sane" >&5
16515 echo timestamp > conftestfile
16516 @@ -703,7 +714,7 @@
16517 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
16519 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
16520 -echo "configure:707: checking whether ${MAKE-make} sets \${MAKE}" >&5
16521 +echo "configure:718: checking whether ${MAKE-make} sets \${MAKE}" >&5
16522 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
16523 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
16524 echo $ac_n "(cached) $ac_c" 1>&6
16525 @@ -736,12 +747,12 @@
16528 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
16529 -echo "configure:740: checking for Cygwin environment" >&5
16530 +echo "configure:751: checking for Cygwin environment" >&5
16531 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
16532 echo $ac_n "(cached) $ac_c" 1>&6
16534 cat > conftest.$ac_ext <<EOF
16535 -#line 745 "configure"
16536 +#line 756 "configure"
16537 #include "confdefs.h"
16540 @@ -752,7 +763,7 @@
16544 -if { (eval echo configure:756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16545 +if { (eval echo configure:767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16549 @@ -769,19 +780,19 @@
16551 test "$ac_cv_cygwin" = yes && CYGWIN=yes
16552 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
16553 -echo "configure:773: checking for mingw32 environment" >&5
16554 +echo "configure:784: checking for mingw32 environment" >&5
16555 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
16556 echo $ac_n "(cached) $ac_c" 1>&6
16558 cat > conftest.$ac_ext <<EOF
16559 -#line 778 "configure"
16560 +#line 789 "configure"
16561 #include "confdefs.h"
16564 return __MINGW32__;
16567 -if { (eval echo configure:785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16568 +if { (eval echo configure:796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16572 @@ -892,7 +903,7 @@
16575 echo $ac_n "checking host system type""... $ac_c" 1>&6
16576 -echo "configure:896: checking host system type" >&5
16577 +echo "configure:907: checking host system type" >&5
16580 case "$host_alias" in
16581 @@ -913,7 +924,7 @@
16582 echo "$ac_t""$host" 1>&6
16584 echo $ac_n "checking target system type""... $ac_c" 1>&6
16585 -echo "configure:917: checking target system type" >&5
16586 +echo "configure:928: checking target system type" >&5
16588 target_alias=$target
16589 case "$target_alias" in
16590 @@ -931,7 +942,7 @@
16591 echo "$ac_t""$target" 1>&6
16593 echo $ac_n "checking build system type""... $ac_c" 1>&6
16594 -echo "configure:935: checking build system type" >&5
16595 +echo "configure:946: checking build system type" >&5
16598 case "$build_alias" in
16599 @@ -971,7 +982,7 @@
16601 missing_dir=`cd $ac_aux_dir && pwd`
16602 echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
16603 -echo "configure:975: checking for working aclocal" >&5
16604 +echo "configure:986: checking for working aclocal" >&5
16605 # Run test in a subshell; some versions of sh will print an error if
16606 # an executable is not found, even if stderr is redirected.
16607 # Redirect stdin to placate older versions of autoconf. Sigh.
16608 @@ -984,7 +995,7 @@
16611 echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
16612 -echo "configure:988: checking for working autoconf" >&5
16613 +echo "configure:999: checking for working autoconf" >&5
16614 # Run test in a subshell; some versions of sh will print an error if
16615 # an executable is not found, even if stderr is redirected.
16616 # Redirect stdin to placate older versions of autoconf. Sigh.
16617 @@ -997,7 +1008,7 @@
16620 echo $ac_n "checking for working automake""... $ac_c" 1>&6
16621 -echo "configure:1001: checking for working automake" >&5
16622 +echo "configure:1012: checking for working automake" >&5
16623 # Run test in a subshell; some versions of sh will print an error if
16624 # an executable is not found, even if stderr is redirected.
16625 # Redirect stdin to placate older versions of autoconf. Sigh.
16626 @@ -1010,7 +1021,7 @@
16629 echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
16630 -echo "configure:1014: checking for working autoheader" >&5
16631 +echo "configure:1025: checking for working autoheader" >&5
16632 # Run test in a subshell; some versions of sh will print an error if
16633 # an executable is not found, even if stderr is redirected.
16634 # Redirect stdin to placate older versions of autoconf. Sigh.
16635 @@ -1023,7 +1034,7 @@
16638 echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
16639 -echo "configure:1027: checking for working makeinfo" >&5
16640 +echo "configure:1038: checking for working makeinfo" >&5
16641 # Run test in a subshell; some versions of sh will print an error if
16642 # an executable is not found, even if stderr is redirected.
16643 # Redirect stdin to placate older versions of autoconf. Sigh.
16644 @@ -1049,7 +1060,7 @@
16645 # Extract the first word of "gcc", so it can be a program name with args.
16646 set dummy gcc; ac_word=$2
16647 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16648 -echo "configure:1053: checking for $ac_word" >&5
16649 +echo "configure:1064: checking for $ac_word" >&5
16650 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
16651 echo $ac_n "(cached) $ac_c" 1>&6
16653 @@ -1079,7 +1090,7 @@
16654 # Extract the first word of "cc", so it can be a program name with args.
16655 set dummy cc; ac_word=$2
16656 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16657 -echo "configure:1083: checking for $ac_word" >&5
16658 +echo "configure:1094: checking for $ac_word" >&5
16659 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
16660 echo $ac_n "(cached) $ac_c" 1>&6
16662 @@ -1128,7 +1139,7 @@
16665 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
16666 -echo "configure:1132: checking whether we are using GNU C" >&5
16667 +echo "configure:1143: checking whether we are using GNU C" >&5
16668 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
16669 echo $ac_n "(cached) $ac_c" 1>&6
16671 @@ -1137,7 +1148,7 @@
16675 -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
16676 +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
16680 @@ -1152,7 +1163,7 @@
16681 ac_save_CFLAGS="$CFLAGS"
16683 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
16684 -echo "configure:1156: checking whether ${CC-cc} accepts -g" >&5
16685 +echo "configure:1167: checking whether ${CC-cc} accepts -g" >&5
16686 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
16687 echo $ac_n "(cached) $ac_c" 1>&6
16689 @@ -1189,7 +1200,7 @@
16690 # Extract the first word of "$ac_prog", so it can be a program name with args.
16691 set dummy $ac_prog; ac_word=$2
16692 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16693 -echo "configure:1193: checking for $ac_word" >&5
16694 +echo "configure:1204: checking for $ac_word" >&5
16695 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
16696 echo $ac_n "(cached) $ac_c" 1>&6
16698 @@ -1222,7 +1233,7 @@
16699 test -z "$CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; }
16701 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
16702 -echo "configure:1226: checking whether we are using GNU C++" >&5
16703 +echo "configure:1237: checking whether we are using GNU C++" >&5
16704 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
16705 echo $ac_n "(cached) $ac_c" 1>&6
16707 @@ -1231,7 +1242,7 @@
16711 -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
16712 +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
16716 @@ -1246,7 +1257,7 @@
16717 ac_save_CXXFLAGS="$CXXFLAGS"
16719 echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
16720 -echo "configure:1250: checking whether ${CXX-g++} accepts -g" >&5
16721 +echo "configure:1261: checking whether ${CXX-g++} accepts -g" >&5
16722 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
16723 echo $ac_n "(cached) $ac_c" 1>&6
16725 @@ -1279,7 +1290,7 @@
16726 # NEWLIB_CONFIGURE, which doesn't work because that means that it will
16727 # be run before AC_CANONICAL_HOST.
16728 echo $ac_n "checking build system type""... $ac_c" 1>&6
16729 -echo "configure:1283: checking build system type" >&5
16730 +echo "configure:1294: checking build system type" >&5
16733 case "$build_alias" in
16734 @@ -1300,7 +1311,7 @@
16735 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
16736 set dummy ${ac_tool_prefix}as; ac_word=$2
16737 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16738 -echo "configure:1304: checking for $ac_word" >&5
16739 +echo "configure:1315: checking for $ac_word" >&5
16740 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
16741 echo $ac_n "(cached) $ac_c" 1>&6
16743 @@ -1332,7 +1343,7 @@
16744 # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
16745 set dummy ${ac_tool_prefix}ar; ac_word=$2
16746 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16747 -echo "configure:1336: checking for $ac_word" >&5
16748 +echo "configure:1347: checking for $ac_word" >&5
16749 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
16750 echo $ac_n "(cached) $ac_c" 1>&6
16752 @@ -1364,7 +1375,7 @@
16753 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
16754 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
16755 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16756 -echo "configure:1368: checking for $ac_word" >&5
16757 +echo "configure:1379: checking for $ac_word" >&5
16758 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
16759 echo $ac_n "(cached) $ac_c" 1>&6
16761 @@ -1396,7 +1407,7 @@
16762 # Extract the first word of "ranlib", so it can be a program name with args.
16763 set dummy ranlib; ac_word=$2
16764 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16765 -echo "configure:1400: checking for $ac_word" >&5
16766 +echo "configure:1411: checking for $ac_word" >&5
16767 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
16768 echo $ac_n "(cached) $ac_c" 1>&6
16770 @@ -1441,7 +1452,7 @@
16771 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
16772 # ./install, which can be erroneously created by make from ./install.sh.
16773 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
16774 -echo "configure:1445: checking for a BSD compatible install" >&5
16775 +echo "configure:1456: checking for a BSD compatible install" >&5
16776 if test -z "$INSTALL"; then
16777 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
16778 echo $ac_n "(cached) $ac_c" 1>&6
16779 @@ -1495,7 +1506,7 @@
16782 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
16783 -echo "configure:1499: checking whether to enable maintainer-specific portions of Makefiles" >&5
16784 +echo "configure:1510: checking whether to enable maintainer-specific portions of Makefiles" >&5
16785 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
16786 if test "${enable_maintainer_mode+set}" = set; then
16787 enableval="$enable_maintainer_mode"
16788 @@ -1533,7 +1544,7 @@
16791 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
16792 -echo "configure:1537: checking for executable suffix" >&5
16793 +echo "configure:1548: checking for executable suffix" >&5
16794 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
16795 echo $ac_n "(cached) $ac_c" 1>&6
16797 @@ -1543,10 +1554,10 @@
16799 echo 'int main () { return 0; }' > conftest.$ac_ext
16801 - if { (eval echo configure:1547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
16802 + if { (eval echo configure:1558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
16803 for file in conftest.*; do
16805 - *.c | *.o | *.obj) ;;
16806 + *.c | *.o | *.obj | *.ilk | *.pdb) ;;
16807 *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
16810 @@ -1665,7 +1676,7 @@
16811 if test "$GCC" = yes; then
16812 # Check if gcc -print-prog-name=ld gives a path.
16813 echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
16814 -echo "configure:1669: checking for ld used by GCC" >&5
16815 +echo "configure:1680: checking for ld used by GCC" >&5
16818 # gcc leaves a trailing carriage return which upsets mingw
16819 @@ -1695,10 +1706,10 @@
16821 elif test "$with_gnu_ld" = yes; then
16822 echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
16823 -echo "configure:1699: checking for GNU ld" >&5
16824 +echo "configure:1710: checking for GNU ld" >&5
16826 echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
16827 -echo "configure:1702: checking for non-GNU ld" >&5
16828 +echo "configure:1713: checking for non-GNU ld" >&5
16830 if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
16831 echo $ac_n "(cached) $ac_c" 1>&6
16832 @@ -1733,7 +1744,7 @@
16834 test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
16835 echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
16836 -echo "configure:1737: checking if the linker ($LD) is GNU ld" >&5
16837 +echo "configure:1748: checking if the linker ($LD) is GNU ld" >&5
16838 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
16839 echo $ac_n "(cached) $ac_c" 1>&6
16841 @@ -1750,7 +1761,7 @@
16844 echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
16845 -echo "configure:1754: checking for $LD option to reload object files" >&5
16846 +echo "configure:1765: checking for $LD option to reload object files" >&5
16847 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
16848 echo $ac_n "(cached) $ac_c" 1>&6
16850 @@ -1762,7 +1773,7 @@
16851 test -n "$reload_flag" && reload_flag=" $reload_flag"
16853 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
16854 -echo "configure:1766: checking for BSD-compatible nm" >&5
16855 +echo "configure:1777: checking for BSD-compatible nm" >&5
16856 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
16857 echo $ac_n "(cached) $ac_c" 1>&6
16859 @@ -1800,7 +1811,7 @@
16860 echo "$ac_t""$NM" 1>&6
16862 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
16863 -echo "configure:1804: checking whether ln -s works" >&5
16864 +echo "configure:1815: checking whether ln -s works" >&5
16865 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
16866 echo $ac_n "(cached) $ac_c" 1>&6
16868 @@ -1821,7 +1832,7 @@
16871 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
16872 -echo "configure:1825: checking how to recognise dependant libraries" >&5
16873 +echo "configure:1836: checking how to recognise dependant libraries" >&5
16874 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
16875 echo $ac_n "(cached) $ac_c" 1>&6
16877 @@ -1994,13 +2005,13 @@
16878 deplibs_check_method=$lt_cv_deplibs_check_method
16880 echo $ac_n "checking for object suffix""... $ac_c" 1>&6
16881 -echo "configure:1998: checking for object suffix" >&5
16882 +echo "configure:2009: checking for object suffix" >&5
16883 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
16884 echo $ac_n "(cached) $ac_c" 1>&6
16887 echo 'int i = 1;' > conftest.$ac_ext
16888 -if { (eval echo configure:2004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16889 +if { (eval echo configure:2015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16890 for ac_file in conftest.*; do
16893 @@ -2024,7 +2035,7 @@
16895 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
16896 echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
16897 -echo "configure:2028: checking for ${ac_tool_prefix}file" >&5
16898 +echo "configure:2039: checking for ${ac_tool_prefix}file" >&5
16899 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
16900 echo $ac_n "(cached) $ac_c" 1>&6
16902 @@ -2086,7 +2097,7 @@
16903 if test -z "$lt_cv_path_MAGIC_CMD"; then
16904 if test -n "$ac_tool_prefix"; then
16905 echo $ac_n "checking for file""... $ac_c" 1>&6
16906 -echo "configure:2090: checking for file" >&5
16907 +echo "configure:2101: checking for file" >&5
16908 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
16909 echo $ac_n "(cached) $ac_c" 1>&6
16911 @@ -2157,7 +2168,7 @@
16912 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
16913 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
16914 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16915 -echo "configure:2161: checking for $ac_word" >&5
16916 +echo "configure:2172: checking for $ac_word" >&5
16917 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
16918 echo $ac_n "(cached) $ac_c" 1>&6
16920 @@ -2189,7 +2200,7 @@
16921 # Extract the first word of "ranlib", so it can be a program name with args.
16922 set dummy ranlib; ac_word=$2
16923 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16924 -echo "configure:2193: checking for $ac_word" >&5
16925 +echo "configure:2204: checking for $ac_word" >&5
16926 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
16927 echo $ac_n "(cached) $ac_c" 1>&6
16929 @@ -2224,7 +2235,7 @@
16930 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
16931 set dummy ${ac_tool_prefix}strip; ac_word=$2
16932 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16933 -echo "configure:2228: checking for $ac_word" >&5
16934 +echo "configure:2239: checking for $ac_word" >&5
16935 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
16936 echo $ac_n "(cached) $ac_c" 1>&6
16938 @@ -2256,7 +2267,7 @@
16939 # Extract the first word of "strip", so it can be a program name with args.
16940 set dummy strip; ac_word=$2
16941 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
16942 -echo "configure:2260: checking for $ac_word" >&5
16943 +echo "configure:2271: checking for $ac_word" >&5
16944 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
16945 echo $ac_n "(cached) $ac_c" 1>&6
16947 @@ -2323,8 +2334,21 @@
16950 # Find out which ABI we are using.
16951 - echo '#line 2327 "configure"' > conftest.$ac_ext
16952 - if { (eval echo configure:2328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16953 + echo '#line 2338 "configure"' > conftest.$ac_ext
16954 + if { (eval echo configure:2339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16955 + if test "$lt_cv_prog_gnu_ld" = yes; then
16956 + case `/usr/bin/file conftest.$ac_objext` in
16958 + LD="${LD-ld} -melf32bsmip"
16961 + LD="${LD-ld} -melf32bmipn32"
16964 + LD="${LD-ld} -melf64bmip"
16968 case `/usr/bin/file conftest.$ac_objext` in
16971 @@ -2336,6 +2360,7 @@
16979 @@ -2343,7 +2368,7 @@
16981 # Find out which ABI we are using.
16982 echo 'int i;' > conftest.$ac_ext
16983 - if { (eval echo configure:2347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16984 + if { (eval echo configure:2372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16985 case "`/usr/bin/file conftest.o`" in
16987 HPUX_IA64_MODE="32"
16988 @@ -2359,7 +2384,7 @@
16989 x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
16990 # Find out which ABI we are using.
16991 echo 'int i;' > conftest.$ac_ext
16992 - if { (eval echo configure:2363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16993 + if { (eval echo configure:2388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
16994 case "`/usr/bin/file conftest.o`" in
16997 @@ -2403,7 +2428,7 @@
16998 SAVE_CFLAGS="$CFLAGS"
16999 CFLAGS="$CFLAGS -belf"
17000 echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
17001 -echo "configure:2407: checking whether the C compiler needs -belf" >&5
17002 +echo "configure:2432: checking whether the C compiler needs -belf" >&5
17003 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
17004 echo $ac_n "(cached) $ac_c" 1>&6
17006 @@ -2416,14 +2441,14 @@
17007 cross_compiling=$ac_cv_prog_cc_cross
17009 cat > conftest.$ac_ext <<EOF
17010 -#line 2420 "configure"
17011 +#line 2445 "configure"
17012 #include "confdefs.h"
17018 -if { (eval echo configure:2427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17019 +if { (eval echo configure:2452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17021 lt_cv_cc_needs_belf=yes
17023 @@ -2453,7 +2478,7 @@
17026 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
17027 -echo "configure:2457: checking how to run the C++ preprocessor" >&5
17028 +echo "configure:2482: checking how to run the C++ preprocessor" >&5
17029 if test -z "$CXXCPP"; then
17030 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
17031 echo $ac_n "(cached) $ac_c" 1>&6
17032 @@ -2466,12 +2491,12 @@
17033 cross_compiling=$ac_cv_prog_cxx_cross
17034 CXXCPP="${CXX-g++} -E"
17035 cat > conftest.$ac_ext <<EOF
17036 -#line 2470 "configure"
17037 +#line 2495 "configure"
17038 #include "confdefs.h"
17039 #include <stdlib.h>
17041 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
17042 -{ (eval echo configure:2475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
17043 +{ (eval echo configure:2500: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
17044 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
17045 if test -z "$ac_err"; then
17047 @@ -2618,7 +2643,7 @@
17050 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
17051 -echo "configure:2622: checking whether to enable maintainer-specific portions of Makefiles" >&5
17052 +echo "configure:2647: checking whether to enable maintainer-specific portions of Makefiles" >&5
17053 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
17054 if test "${enable_maintainer_mode+set}" = set; then
17055 enableval="$enable_maintainer_mode"
17056 @@ -2651,7 +2676,7 @@
17059 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
17060 -echo "configure:2655: checking for executable suffix" >&5
17061 +echo "configure:2680: checking for executable suffix" >&5
17062 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
17063 echo $ac_n "(cached) $ac_c" 1>&6
17065 @@ -2661,10 +2686,10 @@
17067 echo 'int main () { return 0; }' > conftest.$ac_ext
17069 - if { (eval echo configure:2665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17070 + if { (eval echo configure:2690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
17071 for file in conftest.*; do
17073 - *.c | *.o | *.obj) ;;
17074 + *.c | *.o | *.obj | *.ilk | *.pdb) ;;
17075 *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
17078 @@ -2684,7 +2709,7 @@
17081 echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
17082 -echo "configure:2688: checking for thread model used by GCC" >&5
17083 +echo "configure:2713: checking for thread model used by GCC" >&5
17084 THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
17085 if test -z "$THREADS"; then
17087 @@ -2793,22 +2818,6 @@
17092 - cat >> confdefs.h <<\EOF
17093 -#define GC_DARWIN_THREADS 1
17096 - cat >> confdefs.h <<\EOF
17097 -#define THREAD_LOCAL_ALLOC 1
17100 - if test "${enable_parallel_mark}" = yes; then
17101 - cat >> confdefs.h <<\EOF
17102 -#define PARALLEL_MARK 1
17110 @@ -2820,6 +2829,12 @@
17111 #define NO_GETENV 1
17114 + if test $enable_shared = yes; then
17115 + cat >> confdefs.h <<\EOF
17121 decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17122 { echo "configure: error: thread package $THREADS not yet supported" 1>&2; exit 1; }
17123 @@ -2830,28 +2845,8 @@
17128 - powerpc-*-darwin*)
17129 - powerpc_darwin=true
17134 -if test x$powerpc_darwin = xtrue; then
17135 - POWERPC_DARWIN_TRUE=
17136 - POWERPC_DARWIN_FALSE='#'
17138 - POWERPC_DARWIN_TRUE='#'
17139 - POWERPC_DARWIN_FALSE=
17142 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17143 -# dyld calls anyway
17147 - echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
17148 -echo "configure:2855: checking for dlopen in -ldl" >&5
17149 +echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
17150 +echo "configure:2850: checking for dlopen in -ldl" >&5
17151 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
17152 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
17153 echo $ac_n "(cached) $ac_c" 1>&6
17154 @@ -2859,7 +2854,7 @@
17155 ac_save_LIBS="$LIBS"
17157 cat > conftest.$ac_ext <<EOF
17158 -#line 2863 "configure"
17159 +#line 2858 "configure"
17160 #include "confdefs.h"
17161 /* Override any gcc2 internal prototype to avoid an error. */
17162 /* We use char because int might match the return type of a gcc2
17163 @@ -2870,7 +2865,7 @@
17167 -if { (eval echo configure:2874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17168 +if { (eval echo configure:2869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
17170 eval "ac_cv_lib_$ac_lib_var=yes"
17172 @@ -2890,9 +2885,6 @@
17173 echo "$ac_t""no" 1>&6
17181 target_all=libgcjgc.la
17182 @@ -3108,15 +3100,17 @@
17188 -if test -z "$with_cross_host"; then
17190 - USE_LIBDIR_FALSE='#'
17191 +if test -n "$with_cross_host" &&
17192 + test x"$with_cross_host" != x"no"; then
17193 + toolexecdir='$(exec_prefix)/$(target_alias)'
17194 + toolexeclibdir='$(toolexecdir)/lib'
17196 - USE_LIBDIR_TRUE='#'
17197 - USE_LIBDIR_FALSE=
17198 + toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
17199 + toolexeclibdir='$(libdir)'
17201 +toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
17205 if test "${multilib}" = "yes"; then
17206 multilib_arg="--enable-multilib"
17207 @@ -3313,16 +3307,14 @@
17208 s%@LIBTOOL@%$LIBTOOL%g
17209 s%@CXXCPP@%$CXXCPP%g
17210 s%@THREADLIBS@%$THREADLIBS%g
17211 -s%@POWERPC_DARWIN_TRUE@%$POWERPC_DARWIN_TRUE%g
17212 -s%@POWERPC_DARWIN_FALSE@%$POWERPC_DARWIN_FALSE%g
17213 s%@EXTRA_TEST_LIBS@%$EXTRA_TEST_LIBS%g
17214 s%@target_all@%$target_all%g
17215 s%@INCLUDES@%$INCLUDES%g
17216 s%@CXXINCLUDES@%$CXXINCLUDES%g
17217 s%@addobjs@%$addobjs%g
17218 s%@MY_CFLAGS@%$MY_CFLAGS%g
17219 -s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
17220 -s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
17221 +s%@toolexecdir@%$toolexecdir%g
17222 +s%@toolexeclibdir@%$toolexeclibdir%g
17226 @@ -3331,7 +3323,7 @@
17228 # Split the substitutions into bite-sized pieces for seds with
17229 # small command number limits, like on Digital OSF/1 and HP-UX.
17230 -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
17231 +ac_max_sed_cmds=60 # Maximum number of lines to put in a sed script.
17232 ac_file=1 # Number of current file.
17233 ac_beg=1 # First line for current file.
17234 ac_end=$ac_max_sed_cmds # Line after last line for current file.
17235 @@ -3433,6 +3425,7 @@
17236 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17237 gc_basedir=${gc_basedir}
17239 +ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
17243 diff -Nur ../boehm-gc/configure.in boehm-gc/configure.in
17244 --- ../boehm-gc/configure.in Mon May 26 13:33:22 2003
17245 +++ boehm-gc/configure.in Mon Apr 28 13:55:07 2003
17247 -# Copyright (c) 1999, 2000, 2001, 2002 by Red Hat, Inc. All rights reserved.
17248 +# Copyright (c) 1999, 2000, 2001, 2002, 2003 by Red Hat, Inc. All rights reserved.
17250 # THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
17251 # OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
17252 @@ -111,18 +111,14 @@
17257 - AC_DEFINE(GC_DARWIN_THREADS)
17258 - AC_DEFINE(THREAD_LOCAL_ALLOC)
17259 - if test "${enable_parallel_mark}" = yes; then
17260 - AC_DEFINE(PARALLEL_MARK)
17266 AC_DEFINE(GC_WIN32_THREADS)
17267 AC_DEFINE(NO_GETENV)
17268 + if test $enable_shared = yes; then
17269 + AC_DEFINE(GC_DLL)
17272 decosf1 | irix | mach | os2 | solaris | dce | vxworks)
17273 AC_MSG_ERROR(thread package $THREADS not yet supported)
17274 @@ -133,22 +129,7 @@
17276 AC_SUBST(THREADLIBS)
17279 - powerpc-*-darwin*)
17280 - powerpc_darwin=true
17283 -AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue)
17285 -# We never want libdl on darwin. It is a fake libdl that just ends up making
17286 -# dyld calls anyway
17290 - AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17294 +AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
17295 AC_SUBST(EXTRA_TEST_LIBS)
17297 target_all=libgcjgc.la
17298 @@ -289,7 +270,17 @@
17302 -AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
17303 +if test -n "$with_cross_host" &&
17304 + test x"$with_cross_host" != x"no"; then
17305 + toolexecdir='$(exec_prefix)/$(target_alias)'
17306 + toolexeclibdir='$(toolexecdir)/lib'
17308 + toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
17309 + toolexeclibdir='$(libdir)'
17311 +toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
17312 +AC_SUBST(toolexecdir)
17313 +AC_SUBST(toolexeclibdir)
17315 if test "${multilib}" = "yes"; then
17316 multilib_arg="--enable-multilib"
17317 @@ -313,5 +304,6 @@
17318 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
17319 gc_basedir=${gc_basedir}
17321 +ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
17324 diff -Nur ../boehm-gc/darwin_stop_world.c boehm-gc/darwin_stop_world.c
17325 --- ../boehm-gc/darwin_stop_world.c Sun Jun 1 14:17:58 2003
17326 +++ boehm-gc/darwin_stop_world.c Wed Dec 31 16:00:00 1969
17328 -#include "private/pthread_support.h"
17330 -# if defined(GC_DARWIN_THREADS)
17332 -#define DEBUG_THREADS 0
17334 -/* From "Inside Mac OS X - Mach-O Runtime Architecture" published by Apple
17336 - "The space beneath the stack pointer, where a new stack frame would normally
17337 - be allocated, is called the red zone. This area as shown in Figure 3-2 may
17338 - be used for any purpose as long as a new stack frame does not need to be
17339 - added to the stack."
17341 - Page 50: "If a leaf procedure's red zone usage would exceed 224 bytes, then
17342 - it must set up a stack frame just like routines that call other routines."
17344 -#define PPC_RED_ZONE_SIZE 224
17346 -void GC_push_all_stacks() {
17352 -# if defined(POWERPC)
17353 - ppc_thread_state_t state;
17355 -# error FIXME for non-ppc OS X
17357 - mach_msg_type_number_t thread_state_count = MACHINE_THREAD_STATE_COUNT;
17359 - me = pthread_self();
17360 - if (!GC_thr_initialized) GC_thr_init();
17362 - for(i=0;i<THREAD_TABLE_SZ;i++) {
17363 - for(p=GC_threads[i];p!=0;p=p->next) {
17364 - if(p -> flags & FINISHED) continue;
17365 - if(pthread_equal(p->id,me)) {
17366 - lo = GC_approx_sp();
17368 - /* Get the thread state (registers, etc) */
17369 - r = thread_get_state(
17370 - p->stop_info.mach_thread,
17371 - MACHINE_THREAD_STATE,
17372 - (natural_t*)&state,
17373 - &thread_state_count);
17374 - if(r != KERN_SUCCESS) ABORT("thread_get_state failed");
17377 - lo = (void*)(state.r1 - PPC_RED_ZONE_SIZE);
17379 - GC_push_one(state.r0);
17380 - GC_push_one(state.r2);
17381 - GC_push_one(state.r3);
17382 - GC_push_one(state.r4);
17383 - GC_push_one(state.r5);
17384 - GC_push_one(state.r6);
17385 - GC_push_one(state.r7);
17386 - GC_push_one(state.r8);
17387 - GC_push_one(state.r9);
17388 - GC_push_one(state.r10);
17389 - GC_push_one(state.r11);
17390 - GC_push_one(state.r12);
17391 - GC_push_one(state.r13);
17392 - GC_push_one(state.r14);
17393 - GC_push_one(state.r15);
17394 - GC_push_one(state.r16);
17395 - GC_push_one(state.r17);
17396 - GC_push_one(state.r18);
17397 - GC_push_one(state.r19);
17398 - GC_push_one(state.r20);
17399 - GC_push_one(state.r21);
17400 - GC_push_one(state.r22);
17401 - GC_push_one(state.r23);
17402 - GC_push_one(state.r24);
17403 - GC_push_one(state.r25);
17404 - GC_push_one(state.r26);
17405 - GC_push_one(state.r27);
17406 - GC_push_one(state.r28);
17407 - GC_push_one(state.r29);
17408 - GC_push_one(state.r30);
17409 - GC_push_one(state.r31);
17411 - # error FIXME for non-PPC darwin
17412 - #endif /* !POWERPC */
17414 - if(p->flags & MAIN_THREAD)
17415 - hi = GC_stackbottom;
17417 - hi = p->stack_end;
17418 - #if DEBUG_THREADS
17419 - GC_printf3("Darwin: Stack for thread 0x%lx = [%lx,%lx)\n",
17420 - (unsigned long) p -> id,
17421 - (unsigned long) lo,
17422 - (unsigned long) hi
17425 - GC_push_all_stack(lo,hi);
17426 - } /* for(p=GC_threads[i]...) */
17427 - } /* for(i=0;i<THREAD_TABLE_SZ...) */
17430 -/* Caller holds allocation lock. */
17431 -void GC_stop_world()
17435 - pthread_t my_thread = pthread_self();
17436 - kern_return_t kern_result;
17438 - #if DEBUG_THREADS
17439 - GC_printf1("Stopping the world from 0x%lx\n", pthread_self());
17442 - /* Make sure all free list construction has stopped before we start. */
17443 - /* No new construction can start, since free list construction is */
17444 - /* required to acquire and release the GC lock before it starts, */
17445 - /* and we have the lock. */
17446 -# ifdef PARALLEL_MARK
17447 - GC_acquire_mark_lock();
17448 - GC_ASSERT(GC_fl_builder_count == 0);
17449 - /* We should have previously waited for it to become zero. */
17450 -# endif /* PARALLEL_MARK */
17452 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
17453 - for (p = GC_threads[i]; p != 0; p = p -> next) {
17454 - if (p -> id == my_thread) continue;
17455 - if (p -> flags & FINISHED) continue;
17456 - if (p -> thread_blocked) /* Will wait */ continue;
17458 - #if DEBUG_THREADS
17459 - GC_printf1("Suspending thread 0x%lx\n", p -> id);
17462 - /* Suspend the thread */
17463 - kern_result = thread_suspend(p->stop_info.mach_thread);
17464 - if(kern_result != KERN_SUCCESS) ABORT("thread_suspend failed");
17468 -# ifdef MPROTECT_VDB
17469 - if(GC_incremental) {
17470 - extern void GC_mprotect_stop();
17471 - GC_mprotect_stop();
17475 -# ifdef PARALLEL_MARK
17476 - GC_release_mark_lock();
17478 - #if DEBUG_THREADS
17479 - GC_printf1("World stopped from 0x%lx\n", pthread_self());
17483 -/* Caller holds allocation lock, and has held it continuously since */
17484 -/* the world stopped. */
17485 -void GC_start_world()
17487 - pthread_t my_thread = pthread_self();
17490 - kern_return_t kern_result;
17492 -# if DEBUG_THREADS
17493 - GC_printf0("World starting\n");
17496 -# ifdef MPROTECT_VDB
17497 - if(GC_incremental) {
17498 - extern void GC_mprotect_resume();
17499 - GC_mprotect_resume();
17503 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
17504 - for (p = GC_threads[i]; p != 0; p = p -> next) {
17505 - if (p -> id == my_thread) continue;
17506 - if (p -> flags & FINISHED) continue;
17507 - if (p -> thread_blocked) continue;
17509 - #if DEBUG_THREADS
17510 - GC_printf1("Resuming 0x%lx\n", p -> id);
17513 - /* Resume the thread */
17514 - kern_result = thread_resume(p->stop_info.mach_thread);
17515 - if(kern_result != KERN_SUCCESS) ABORT("thread_resume failed");
17518 - #if DEBUG_THREADS
17519 - GC_printf0("World started\n");
17523 -void GC_stop_init() {
17528 diff -Nur ../boehm-gc/dbg_mlc.c boehm-gc/dbg_mlc.c
17529 --- ../boehm-gc/dbg_mlc.c Mon May 26 12:48:52 2003
17530 +++ boehm-gc/dbg_mlc.c Tue Feb 12 21:38:39 2002
17532 # include <stdlib.h>
17534 # if defined(LINUX) || defined(SUNOS4) || defined(SUNOS5) \
17535 - || defined(HPUX) || defined(IRIX5) || defined(OSF1)
17536 + || defined(HPUX) || defined(IRIX) || defined(OSF1)
17537 # define RANDOM() random()
17539 # define RANDOM() (long)rand()
17540 @@ -228,8 +228,6 @@
17542 #endif /* KEEP_BACK_PTRS */
17544 -# define CROSSES_HBLK(p, sz) \
17545 - (((word)(p + sizeof(oh) + sz - 1) ^ (word)p) >= HBLKSIZE)
17546 /* Store debugging info into p. Return displaced pointer. */
17547 /* Assumes we don't hold allocation lock. */
17548 ptr_t GC_store_debug_info(p, sz, string, integer)
17549 @@ -245,8 +243,6 @@
17550 /* But that's expensive. And this way things should only appear */
17551 /* inconsistent while we're in the handler. */
17553 - GC_ASSERT(GC_size(p) >= sizeof(oh) + sz);
17554 - GC_ASSERT(!(SMALL_OBJ(sz) && CROSSES_HBLK(p, sz)));
17555 # ifdef KEEP_BACK_PTRS
17556 ((oh *)p) -> oh_back_ptr = HIDE_BACK_PTR(NOT_MARKED);
17558 @@ -279,8 +275,6 @@
17559 /* There is some argument that we should disable signals here. */
17560 /* But that's expensive. And this way things should only appear */
17561 /* inconsistent while we're in the handler. */
17562 - GC_ASSERT(GC_size(p) >= sizeof(oh) + sz);
17563 - GC_ASSERT(!(SMALL_OBJ(sz) && CROSSES_HBLK(p, sz)));
17564 # ifdef KEEP_BACK_PTRS
17565 ((oh *)p) -> oh_back_ptr = HIDE_BACK_PTR(NOT_MARKED);
17567 @@ -330,11 +324,10 @@
17569 register oh * ohdr = (oh *)GC_base(p);
17571 - GC_ASSERT(!I_HOLD_LOCK());
17572 GC_err_printf1("0x%lx (", ((unsigned long)ohdr + sizeof(oh)));
17573 GC_err_puts(ohdr -> oh_string);
17574 # ifdef SHORT_DBG_HDRS
17575 - GC_err_printf1(":%ld)\n", (unsigned long)(ohdr -> oh_int));
17576 + GC_err_printf1(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int));
17578 GC_err_printf2(":%ld, sz=%ld)\n", (unsigned long)(ohdr -> oh_int),
17579 (unsigned long)(ohdr -> oh_sz));
17580 @@ -349,7 +342,6 @@
17584 - GC_ASSERT(!I_HOLD_LOCK());
17585 if (GC_HAS_DEBUG_INFO(p)) {
17588 @@ -363,7 +355,6 @@
17590 register oh * ohdr = (oh *)GC_base(p);
17592 - GC_ASSERT(!I_HOLD_LOCK());
17593 GC_err_printf2("0x%lx in object at 0x%lx(", (unsigned long)clobbered_addr,
17595 if (clobbered_addr <= (ptr_t)(&(ohdr -> oh_sz))
17596 @@ -385,18 +376,14 @@
17598 void GC_check_heap_proc GC_PROTO((void));
17600 -void GC_print_all_smashed_proc GC_PROTO((void));
17602 void GC_do_nothing() {}
17604 void GC_start_debugging()
17606 # ifndef SHORT_DBG_HDRS
17607 GC_check_heap = GC_check_heap_proc;
17608 - GC_print_all_smashed = GC_print_all_smashed_proc;
17610 GC_check_heap = GC_do_nothing;
17611 - GC_print_all_smashed = GC_do_nothing;
17613 GC_print_heap_obj = GC_debug_print_heap_obj_proc;
17614 GC_debugging_started = TRUE;
17615 @@ -442,62 +429,6 @@
17616 return (GC_store_debug_info(result, (word)lb, s, (word)i));
17620 - GC_PTR GC_debug_malloc_ignore_off_page(size_t lb, GC_EXTRA_PARAMS)
17622 - GC_PTR GC_debug_malloc_ignore_off_page(lb, s, i)
17626 -# ifdef GC_ADD_CALLER
17627 - --> GC_ADD_CALLER not implemented for K&R C
17631 - GC_PTR result = GC_malloc_ignore_off_page(lb + DEBUG_BYTES);
17633 - if (result == 0) {
17634 - GC_err_printf1("GC_debug_malloc_ignore_off_page(%ld) returning NIL (",
17635 - (unsigned long) lb);
17637 - GC_err_printf1(":%ld)\n", (unsigned long)i);
17640 - if (!GC_debugging_started) {
17641 - GC_start_debugging();
17643 - ADD_CALL_CHAIN(result, ra);
17644 - return (GC_store_debug_info(result, (word)lb, s, (word)i));
17648 - GC_PTR GC_debug_malloc_atomic_ignore_off_page(size_t lb, GC_EXTRA_PARAMS)
17650 - GC_PTR GC_debug_malloc_atomic_ignore_off_page(lb, s, i)
17654 -# ifdef GC_ADD_CALLER
17655 - --> GC_ADD_CALLER not implemented for K&R C
17659 - GC_PTR result = GC_malloc_atomic_ignore_off_page(lb + DEBUG_BYTES);
17661 - if (result == 0) {
17662 - GC_err_printf1("GC_debug_malloc_atomic_ignore_off_page(%ld)"
17663 - " returning NIL (", (unsigned long) lb);
17665 - GC_err_printf1(":%ld)\n", (unsigned long)i);
17668 - if (!GC_debugging_started) {
17669 - GC_start_debugging();
17671 - ADD_CALL_CHAIN(result, ra);
17672 - return (GC_store_debug_info(result, (word)lb, s, (word)i));
17675 # ifdef DBG_HDRS_ALL
17677 * An allocation function for internal use.
17678 @@ -516,7 +447,7 @@
17679 (unsigned long) lb);
17682 - ADD_CALL_CHAIN(result, GC_RETURN_ADDR);
17683 + ADD_CALL_CHAIN(result, ra);
17684 return (GC_store_debug_info_inner(result, (word)lb, "INTERNAL", (word)0));
17687 @@ -530,7 +461,7 @@
17688 (unsigned long) lb);
17691 - ADD_CALL_CHAIN(result, GC_RETURN_ADDR);
17692 + ADD_CALL_CHAIN(result, ra);
17693 return (GC_store_debug_info_inner(result, (word)lb, "INTERNAL", (word)0));
17696 @@ -661,7 +592,7 @@
17700 - GC_PTR result = GC_malloc_uncollectable(lb + UNCOLLECTABLE_DEBUG_BYTES);
17701 + GC_PTR result = GC_malloc_uncollectable(lb + DEBUG_BYTES);
17704 GC_err_printf1("GC_debug_malloc_uncollectable(%ld) returning NIL (",
17705 @@ -687,8 +618,7 @@
17710 - GC_malloc_atomic_uncollectable(lb + UNCOLLECTABLE_DEBUG_BYTES);
17711 + GC_PTR result = GC_malloc_atomic_uncollectable(lb + DEBUG_BYTES);
17715 @@ -844,45 +774,6 @@
17718 #ifndef SHORT_DBG_HDRS
17720 -/* List of smashed objects. We defer printing these, since we can't */
17721 -/* always print them nicely with the allocation lock held. */
17722 -/* We put them here instead of in GC_arrays, since it may be useful to */
17723 -/* be able to look at them with the debugger. */
17724 -#define MAX_SMASHED 20
17725 -ptr_t GC_smashed[MAX_SMASHED];
17726 -unsigned GC_n_smashed = 0;
17728 -# if defined(__STDC__) || defined(__cplusplus)
17729 - void GC_add_smashed(ptr_t smashed)
17731 - void GC_add_smashed(smashed)
17735 - GC_ASSERT(GC_is_marked(GC_base(smashed)));
17736 - GC_smashed[GC_n_smashed] = smashed;
17737 - if (GC_n_smashed < MAX_SMASHED - 1) ++GC_n_smashed;
17738 - /* In case of overflow, we keep the first MAX_SMASHED-1 */
17739 - /* entries plus the last one. */
17740 - GC_have_errors = TRUE;
17743 -/* Print all objects on the list. Clear the list. */
17744 -void GC_print_all_smashed_proc ()
17748 - GC_ASSERT(!I_HOLD_LOCK());
17749 - if (GC_n_smashed == 0) return;
17750 - GC_err_printf0("GC_check_heap_block: found smashed heap objects:\n");
17751 - for (i = 0; i < GC_n_smashed; ++i) {
17752 - GC_print_smashed_obj(GC_base(GC_smashed[i]), GC_smashed[i]);
17753 - GC_smashed[i] = 0;
17755 - GC_n_smashed = 0;
17758 /* Check all marked objects in the given block for validity */
17760 # if defined(__STDC__) || defined(__cplusplus)
17761 @@ -911,7 +802,11 @@
17762 && GC_HAS_DEBUG_INFO((ptr_t)p)) {
17763 ptr_t clobbered = GC_check_annotated_obj((oh *)p);
17765 - if (clobbered != 0) GC_add_smashed(clobbered);
17766 + if (clobbered != 0) {
17768 + "GC_check_heap_block: found smashed location at ");
17769 + GC_print_smashed_obj((ptr_t)p, clobbered);
17774 @@ -924,11 +819,9 @@
17775 void GC_check_heap_proc()
17777 # ifndef SMALL_CONFIG
17778 -# ifdef ALIGN_DOUBLE
17779 - GC_STATIC_ASSERT((sizeof(oh) & (2 * sizeof(word) - 1)) == 0);
17781 - GC_STATIC_ASSERT((sizeof(oh) & (sizeof(word) - 1)) == 0);
17783 + if (sizeof(oh) & (2 * sizeof(word) - 1) != 0) {
17784 + ABORT("Alignment problem: object header has inappropriate size\n");
17787 GC_apply_to_all_blocks(GC_check_heap_block, (word)0);
17789 @@ -949,12 +842,12 @@
17792 struct closure * result =
17793 -# ifdef DBG_HDRS_ALL
17794 - (struct closure *) GC_debug_malloc(sizeof (struct closure),
17797 - (struct closure *) GC_malloc(sizeof (struct closure));
17799 +# ifdef DBG_HDRS_ALL
17800 + (struct closure *) GC_debug_malloc(sizeof (struct closure),
17803 + (struct closure *) GC_malloc(sizeof (struct closure));
17806 result -> cl_fn = fn;
17807 result -> cl_data = data;
17808 @@ -1015,7 +908,7 @@
17809 ptr_t base = GC_base(obj);
17810 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
17812 - "GC_debug_register_finalizer called with non-base-pointer 0x%lx\n",
17813 + "GC_register_finalizer called with non-base-pointer 0x%lx\n",
17817 @@ -1047,7 +940,7 @@
17818 ptr_t base = GC_base(obj);
17819 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
17821 - "GC_debug_register_finalizer_no_order called with non-base-pointer 0x%lx\n",
17822 + "GC_register_finalizer_no_order called with non-base-pointer 0x%lx\n",
17826 @@ -1080,7 +973,7 @@
17827 ptr_t base = GC_base(obj);
17828 if (0 == base || (ptr_t)obj - base != sizeof(oh)) {
17830 - "GC_debug_register_finalizer_ignore_self called with non-base-pointer 0x%lx\n",
17831 + "GC_register_finalizer_ignore_self called with non-base-pointer 0x%lx\n",
17835 diff -Nur ../boehm-gc/dyn_load.c boehm-gc/dyn_load.c
17836 --- ../boehm-gc/dyn_load.c Mon May 26 12:48:52 2003
17837 +++ boehm-gc/dyn_load.c Mon Mar 3 22:38:30 2003
17839 !defined(MSWIN32) && !defined(MSWINCE) && \
17840 !(defined(ALPHA) && defined(OSF1)) && \
17841 !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
17842 - !defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \
17843 + !defined(RS6000) && !defined(SCO_ELF) && \
17844 !(defined(FREEBSD) && defined(__ELF__)) && \
17845 - !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \
17847 + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD)
17848 --> We only know how to find data segments of dynamic libraries for the
17849 --> above. Additional SVR4 variants might not be too
17854 #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
17855 - (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
17856 + (defined(FREEBSD) && defined(__ELF__)) || \
17857 (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
17858 # include <stddef.h>
17860 @@ -265,7 +264,7 @@
17861 # endif /* SUNOS */
17863 #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
17864 - (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
17865 + (defined(FREEBSD) && defined(__ELF__)) || \
17866 (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
17869 @@ -283,23 +282,56 @@
17870 /* Repeatedly read until buffer is filled, or EOF is encountered */
17871 /* Defined in os_dep.c. */
17873 -char *GC_parse_map_entry(char *buf_ptr, word *start, word *end,
17874 - char *prot_buf, unsigned int *maj_dev);
17875 -word GC_apply_to_maps(word (*fn)(char *));
17876 - /* From os_dep.c */
17877 +static char *parse_map_entry(char *buf_ptr, word *start, word *end,
17878 + char *prot_buf, unsigned int *maj_dev);
17880 -word GC_register_map_entries(char *maps)
17881 +void GC_register_dynamic_libraries()
17886 - char *buf_ptr = maps;
17888 + char maps_temp[32768];
17893 - unsigned int maj_dev;
17894 + unsigned int maj_dev, min_dev;
17895 word least_ha, greatest_ha;
17897 word datastart = (word)(DATASTART);
17899 - /* Compute heap bounds. FIXME: Should be done by add_to_heap? */
17900 + /* Read /proc/self/maps */
17901 + /* Note that we may not allocate, and thus can't use stdio. */
17902 + f = open("/proc/self/maps", O_RDONLY);
17903 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
17904 + /* stat() doesn't work for /proc/self/maps, so we have to
17905 + read it to find out how large it is... */
17908 + result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
17909 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
17910 + maps_size += result;
17911 + } while (result == sizeof(maps_temp));
17913 + if (maps_size > sizeof(maps_temp)) {
17914 + /* If larger than our buffer, close and re-read it. */
17916 + f = open("/proc/self/maps", O_RDONLY);
17917 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
17918 + maps_buf = alloca(maps_size);
17919 + if (NULL == maps_buf) ABORT("/proc/self/maps alloca failed");
17920 + result = GC_repeat_read(f, maps_buf, maps_size);
17921 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
17923 + /* Otherwise use the fixed size buffer */
17924 + maps_buf = maps_temp;
17928 + maps_buf[result] = '\0';
17929 + buf_ptr = maps_buf;
17930 + /* Compute heap bounds. Should be done by add_to_heap? */
17931 least_ha = (word)(-1);
17933 for (i = 0; i < GC_n_heap_sects; ++i) {
17934 @@ -310,10 +342,11 @@
17936 if (greatest_ha < (word)GC_scratch_last_end_ptr)
17937 greatest_ha = (word)GC_scratch_last_end_ptr;
17940 - buf_ptr = GC_parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
17941 - if (buf_ptr == NULL) return 1;
17943 + buf_ptr = parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
17944 + if (buf_ptr == NULL) return;
17946 if (prot_buf[1] == 'w') {
17947 /* This is a writable mapping. Add it to */
17948 /* the root set unless it is already otherwise */
17949 @@ -325,7 +358,16 @@
17951 if (GC_segment_is_thread_stack(start, end)) continue;
17953 - /* We no longer exclude the main data segment. */
17954 + /* The rest of this assumes that there is no mapping */
17955 + /* spanning the beginning of the data segment, or extending */
17956 + /* beyond the entire heap at both ends. */
17957 + /* Empirically these assumptions hold. */
17959 + if (start < (word)DATAEND && end > (word)DATAEND) {
17960 + /* Rld may use space at the end of the main data */
17961 + /* segment. Thus we add that in. */
17962 + start = (word)DATAEND;
17964 if (start < least_ha && end > least_ha) {
17967 @@ -335,14 +377,7 @@
17968 if (start >= least_ha && end <= greatest_ha) continue;
17969 GC_add_roots_inner((char *)start, (char *)end, TRUE);
17975 -void GC_register_dynamic_libraries()
17977 - if (!GC_apply_to_maps(GC_register_map_entries))
17978 - ABORT("Failed to read /proc for library registration.");
17982 /* We now take care of the main data segment ourselves: */
17983 @@ -352,6 +387,60 @@
17986 # define HAVE_REGISTER_MAIN_STATIC_DATA
17988 +// parse_map_entry parses an entry from /proc/self/maps so we can
17989 +// locate all writable data segments that belong to shared libraries.
17990 +// The format of one of these entries and the fields we care about
17992 +// XXXXXXXX-XXXXXXXX r-xp 00000000 30:05 260537 name of mapping...\n
17993 +// ^^^^^^^^ ^^^^^^^^ ^^^^ ^^
17994 +// start end prot maj_dev
17997 +// The parser is called with a pointer to the entry and the return value
17998 +// is either NULL or is advanced to the next entry(the byte after the
17999 +// trailing '\n'.)
18001 +#define OFFSET_MAP_START 0
18002 +#define OFFSET_MAP_END 9
18003 +#define OFFSET_MAP_PROT 18
18004 +#define OFFSET_MAP_MAJDEV 32
18006 +static char *parse_map_entry(char *buf_ptr, word *start, word *end,
18007 + char *prot_buf, unsigned int *maj_dev)
18010 + unsigned int val;
18013 + if (buf_ptr == NULL || *buf_ptr == '\0') {
18017 + memcpy(prot_buf, buf_ptr+OFFSET_MAP_PROT, 4); // do the protections first
18018 + prot_buf[4] = '\0';
18020 + if (prot_buf[1] == 'w') { // we can skip all of this if it's not writable
18023 + buf_ptr[OFFSET_MAP_START+8] = '\0';
18024 + *start = strtoul(tok, NULL, 16);
18026 + tok = buf_ptr+OFFSET_MAP_END;
18027 + buf_ptr[OFFSET_MAP_END+8] = '\0';
18028 + *end = strtoul(tok, NULL, 16);
18030 + buf_ptr += OFFSET_MAP_MAJDEV;
18032 + while (*buf_ptr != ':') buf_ptr++;
18033 + *buf_ptr++ = '\0';
18034 + *maj_dev = strtoul(tok, NULL, 16);
18037 + while (*buf_ptr && *buf_ptr++ != '\n');
18042 #endif /* USE_PROC_FOR_LIBRARIES */
18044 @@ -419,7 +508,6 @@
18045 GC_add_roots_inner(DATASTART2, (char *)(DATAEND2), TRUE);
18052 @@ -542,7 +630,6 @@
18053 /* The type is a lie, since the real type doesn't make sense here, */
18054 /* and we only test for NULL. */
18057 /* We use /proc to track down all parts of the address space that are */
18058 /* mapped by the process, and throw out regions we know we shouldn't */
18059 /* worry about. This may also work under other SVR4 variants. */
18060 @@ -969,122 +1056,7 @@
18062 #endif /* RS6000 */
18066 -#include <mach-o/dyld.h>
18067 -#include <mach-o/getsect.h>
18069 -/*#define DARWIN_DEBUG*/
18071 -const static struct {
18073 - const char *sect;
18074 -} GC_dyld_sections[] = {
18075 - { SEG_DATA, SECT_DATA },
18076 - { SEG_DATA, SECT_BSS },
18077 - { SEG_DATA, SECT_COMMON }
18080 -#ifdef DARWIN_DEBUG
18081 -static const char *GC_dyld_name_for_hdr(struct mach_header *hdr) {
18082 - unsigned long i,c;
18083 - c = _dyld_image_count();
18084 - for(i=0;i<c;i++) if(_dyld_get_image_header(i) == hdr)
18085 - return _dyld_get_image_name(i);
18090 -/* This should never be called by a thread holding the lock */
18091 -static void GC_dyld_image_add(struct mach_header* hdr, unsigned long slide) {
18092 - unsigned long start,end,i;
18093 - const struct section *sec;
18094 - for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
18095 - sec = getsectbynamefromheader(
18096 - hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
18097 - if(sec == NULL || sec->size == 0) continue;
18098 - start = slide + sec->addr;
18099 - end = start + sec->size;
18100 -# ifdef DARWIN_DEBUG
18101 - GC_printf4("Adding section at %p-%p (%lu bytes) from image %s\n",
18102 - start,end,sec->size,GC_dyld_name_for_hdr(hdr));
18104 - GC_add_roots((char*)start,(char*)end);
18106 -# ifdef DARWIN_DEBUG
18107 - GC_print_static_roots();
18111 -/* This should never be called by a thread holding the lock */
18112 -static void GC_dyld_image_remove(struct mach_header* hdr, unsigned long slide) {
18113 - unsigned long start,end,i;
18114 - const struct section *sec;
18115 - for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
18116 - sec = getsectbynamefromheader(
18117 - hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
18118 - if(sec == NULL || sec->size == 0) continue;
18119 - start = slide + sec->addr;
18120 - end = start + sec->size;
18121 -# ifdef DARWIN_DEBUG
18122 - GC_printf4("Removing section at %p-%p (%lu bytes) from image %s\n",
18123 - start,end,sec->size,GC_dyld_name_for_hdr(hdr));
18125 - GC_remove_roots((char*)start,(char*)end);
18127 -# ifdef DARWIN_DEBUG
18128 - GC_print_static_roots();
18132 -void GC_register_dynamic_libraries() {
18133 - /* Currently does nothing. The callbacks are setup by GC_init_dyld()
18134 - The dyld library takes it from there. */
18137 -/* The _dyld_* functions have an internal lock so no _dyld functions
18138 - can be called while the world is stopped without the risk of a deadlock.
18139 - Because of this we MUST setup callbacks BEFORE we ever stop the world.
18140 - This should be called BEFORE any thread in created and WITHOUT the
18141 - allocation lock held. */
18143 -void GC_init_dyld() {
18144 - static GC_bool initialized = FALSE;
18146 - if(initialized) return;
18148 -# ifdef DARWIN_DEBUG
18149 - GC_printf0("Forcing full bind of GC code...\n");
18151 - if(!_dyld_bind_fully_image_containing_address((unsigned long*)GC_malloc))
18152 - GC_abort("_dyld_bind_fully_image_containing_addres failed");
18154 -# ifdef DARWIN_DEBUG
18155 - GC_printf0("Registering dyld callbacks...\n");
18158 - /* Apple's Documentation:
18159 - When you call _dyld_register_func_for_add_image, the dynamic linker runtime
18160 - calls the specified callback (func) once for each of the images that is
18161 - currently loaded into the program. When a new image is added to the program,
18162 - your callback is called again with the mach_header for the new image, and the virtual memory slide amount of the new image.
18164 - This WILL properly register existing and all future libraries
18167 - _dyld_register_func_for_add_image(GC_dyld_image_add);
18168 - _dyld_register_func_for_remove_image(GC_dyld_image_remove);
18169 - initialized = TRUE;
18172 -#define HAVE_REGISTER_MAIN_STATIC_DATA
18173 -GC_bool GC_register_main_static_data()
18175 - /* Already done through dyld callbacks */
18179 -#endif /* DARWIN */
18181 #else /* !DYNAMIC_LOADING */
18183 diff -Nur ../boehm-gc/finalize.c boehm-gc/finalize.c
18184 --- ../boehm-gc/finalize.c Mon May 26 12:48:52 2003
18185 +++ boehm-gc/finalize.c Mon Feb 11 20:37:53 2002
18186 @@ -207,8 +207,7 @@
18190 - new_dl = (struct disappearing_link *)
18191 - GC_oom_fn(sizeof(struct disappearing_link));
18192 + new_dl = GC_oom_fn(sizeof(struct disappearing_link));
18194 GC_finalization_failures++;
18196 @@ -434,8 +433,7 @@
18200 - new_fo = (struct finalizable_object *)
18201 - GC_oom_fn(sizeof(struct finalizable_object));
18202 + new_fo = GC_oom_fn(sizeof(struct finalizable_object));
18204 GC_finalization_failures++;
18206 @@ -761,9 +759,8 @@
18207 /* Should be called without allocation lock. */
18208 int GC_invoke_finalizers()
18210 - struct finalizable_object * curr_fo;
18212 - word mem_freed_before;
18213 + register struct finalizable_object * curr_fo;
18214 + register int count = 0;
18217 while (GC_finalize_now != 0) {
18218 @@ -771,9 +768,6 @@
18222 - if (count == 0) {
18223 - mem_freed_before = GC_mem_freed;
18225 curr_fo = GC_finalize_now;
18227 if (curr_fo != 0) GC_finalize_now = fo_next(curr_fo);
18228 @@ -795,11 +789,6 @@
18229 GC_free((GC_PTR)curr_fo);
18232 - if (count != 0 && mem_freed_before != GC_mem_freed) {
18234 - GC_finalizer_mem_freed += (GC_mem_freed - mem_freed_before);
18240 @@ -812,9 +801,7 @@
18241 if (GC_finalize_now == 0) return;
18242 if (!GC_finalize_on_demand) {
18243 (void) GC_invoke_finalizers();
18245 - GC_ASSERT(GC_finalize_now == 0);
18246 -# endif /* Otherwise GC can run concurrently and add more */
18247 + GC_ASSERT(GC_finalize_now == 0);
18250 if (GC_finalizer_notifier != (void (*) GC_PROTO((void)))0
18251 @@ -852,17 +839,3 @@
18255 -#if !defined(NO_DEBUGGING)
18257 -void GC_print_finalization_stats()
18259 - struct finalizable_object *fo = GC_finalize_now;
18260 - size_t ready = 0;
18262 - GC_printf2("%lu finalization table entries; %lu disappearing links\n",
18263 - GC_fo_entries, GC_dl_entries);
18264 - for (; 0 != fo; fo = fo_next(fo)) ++ready;
18265 - GC_printf1("%lu objects are eligible for immediate finalization\n", ready);
18268 -#endif /* NO_DEBUGGING */
18269 diff -Nur ../boehm-gc/gc_dlopen.c boehm-gc/gc_dlopen.c
18270 --- ../boehm-gc/gc_dlopen.c Mon May 26 12:48:52 2003
18271 +++ boehm-gc/gc_dlopen.c Tue Oct 16 02:01:35 2001
18272 @@ -19,14 +19,12 @@
18274 * This used to be in dyn_load.c. It was extracted into a separate file
18275 * to avoid having to link against libdl.{a,so} if the client doesn't call
18276 - * dlopen. Of course this fails if the collector is in a dynamic
18281 #include "private/gc_priv.h"
18283 -# if (defined(GC_PTHREADS) && !defined(GC_DARWIN_THREADS)) \
18284 - || defined(GC_SOLARIS_THREADS)
18285 +# if defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS)
18287 # if defined(dlopen) && !defined(GC_USE_LD_WRAP)
18288 /* To support various threads pkgs, gc.h interposes on dlopen by */
18289 @@ -46,14 +44,19 @@
18290 /* calls in either a multithreaded environment, or if the library */
18291 /* initialization code allocates substantial amounts of GC'ed memory. */
18292 /* But I don't know of a better solution. */
18293 - static void disable_gc_for_dlopen()
18294 + /* This can still deadlock if the client explicitly starts a GC */
18295 + /* during the dlopen. He shouldn't do that. */
18296 + static GC_bool disable_gc_for_dlopen()
18300 + result = GC_dont_gc;
18301 while (GC_incremental && GC_collection_in_progress()) {
18302 GC_collect_a_little_inner(1000);
18305 + GC_dont_gc = TRUE;
18310 /* Redefine dlopen to guarantee mutual exclusion with */
18315 + GC_bool dont_gc_save;
18317 # ifndef USE_PROC_FOR_LIBRARIES
18318 - disable_gc_for_dlopen();
18319 + dont_gc_save = disable_gc_for_dlopen();
18321 # ifdef GC_USE_LD_WRAP
18322 result = (void *)__real_dlopen(path, mode);
18324 result = dlopen(path, mode);
18326 # ifndef USE_PROC_FOR_LIBRARIES
18327 - GC_enable(); /* undoes disable_gc_for_dlopen */
18328 + GC_dont_gc = dont_gc_save;
18332 diff -Nur ../boehm-gc/gcj_mlc.c boehm-gc/gcj_mlc.c
18333 --- ../boehm-gc/gcj_mlc.c Mon May 26 12:48:52 2003
18334 +++ boehm-gc/gcj_mlc.c Mon Feb 11 20:37:53 2002
18335 @@ -157,7 +157,6 @@
18336 GC_words_allocd += lw;
18338 *(void **)op = ptr_to_struct_containing_descr;
18339 - GC_ASSERT(((void **)op)[1] == 0);
18343 diff -Nur ../boehm-gc/if_mach.c boehm-gc/if_mach.c
18344 --- ../boehm-gc/if_mach.c Mon May 26 12:48:52 2003
18345 +++ boehm-gc/if_mach.c Fri Aug 17 11:30:45 2001
18347 if (strcmp(MACH_TYPE, argv[1]) != 0) return(0);
18348 if (strcmp(OS_TYPE, "") != 0 && strcmp(argv[2], "") != 0
18349 && strcmp(OS_TYPE, argv[2]) != 0) return(0);
18350 - fprintf(stderr, "^^^^Starting command^^^^\n");
18351 + printf("^^^^Starting command^^^^\n");
18353 execvp(argv[3], argv+3);
18354 perror("Couldn't execute");
18355 diff -Nur ../boehm-gc/include/Makefile.in boehm-gc/include/Makefile.in
18356 --- ../boehm-gc/include/Makefile.in Mon May 26 13:08:48 2003
18357 +++ boehm-gc/include/Makefile.in Tue Dec 31 09:52:45 2002
18359 -# Makefile.in generated by automake 1.6.3 from Makefile.am.
18360 -# @configure_input@
18361 +# Makefile.in generated automatically by automake 1.4 from Makefile.am
18363 -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
18364 -# Free Software Foundation, Inc.
18365 +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
18366 # This Makefile.in is free software; the Free Software Foundation
18367 # gives unlimited permission to copy and/or distribute it,
18368 # with or without modifications, as long as this notice is preserved.
18370 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
18371 # PARTICULAR PURPOSE.
18380 includedir = @includedir@
18381 oldincludedir = /usr/include
18385 pkgdatadir = $(datadir)/@PACKAGE@
18386 pkglibdir = $(libdir)/@PACKAGE@
18387 pkgincludedir = $(includedir)/@PACKAGE@
18391 ACLOCAL = @ACLOCAL@
18392 @@ -43,16 +45,12 @@
18393 AUTOMAKE = @AUTOMAKE@
18394 AUTOHEADER = @AUTOHEADER@
18396 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
18397 INSTALL = @INSTALL@
18398 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
18399 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
18400 INSTALL_DATA = @INSTALL_DATA@
18401 -install_sh_DATA = $(install_sh) -c -m 644
18402 -install_sh_PROGRAM = $(install_sh) -c
18403 -install_sh_SCRIPT = $(install_sh) -c
18404 INSTALL_SCRIPT = @INSTALL_SCRIPT@
18405 -INSTALL_HEADER = $(INSTALL_DATA)
18406 transform = @program_transform_name@
18411 @@ -65,190 +63,171 @@
18412 host_triplet = @host@
18413 target_alias = @target_alias@
18414 target_triplet = @target@
18418 -PATH_SEPARATOR = @PATH_SEPARATOR@
18427 CXXINCLUDES = @CXXINCLUDES@
18429 DLLTOOL = @DLLTOOL@
18433 EXTRA_TEST_LIBS = @EXTRA_TEST_LIBS@
18436 GCJFLAGS = @GCJFLAGS@
18437 GC_CFLAGS = @GC_CFLAGS@
18438 INCLUDES = @INCLUDES@
18439 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
18440 LIBTOOL = @LIBTOOL@
18443 +MAKEINFO = @MAKEINFO@
18444 MY_CFLAGS = @MY_CFLAGS@
18445 OBJDUMP = @OBJDUMP@
18447 PACKAGE = @PACKAGE@
18451 THREADLIBS = @THREADLIBS@
18452 VERSION = @VERSION@
18453 addobjs = @addobjs@
18454 -am__include = @am__include@
18455 -am__quote = @am__quote@
18456 gc_basedir = @gc_basedir@
18457 -install_sh = @install_sh@
18458 mkinstalldirs = @mkinstalldirs@
18459 target_all = @target_all@
18461 AUTOMAKE_OPTIONS = foreign
18463 noinst_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
18464 gc_pthread_redirects.h gc_cpp.h
18467 -CONFIG_CLEAN_FILES =
18469 -am__depfiles_maybe =
18471 -HEADERS = $(noinst_HEADERS)
18472 +CONFIG_CLEAN_FILES =
18473 +HEADERS = $(noinst_HEADERS)
18476 +DIST_COMMON = Makefile.am Makefile.in
18479 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
18480 - cd $(top_srcdir) && \
18481 - $(AUTOMAKE) --cygnus include/Makefile
18482 -Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
18483 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
18485 -mostlyclean-libtool:
18487 +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
18490 - -rm -rf .libs _libs
18495 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
18496 + cd $(top_srcdir) && $(AUTOMAKE) --cygnus include/Makefile
18498 -distclean-libtool:
18500 -uninstall-info-am:
18501 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
18502 + cd $(top_builddir) \
18503 + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
18510 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
18511 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
18512 - unique=`for i in $$list; do \
18513 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
18515 - $(AWK) ' { files[$$0] = 1; } \
18516 +ID: $(HEADERS) $(SOURCES) $(LISP)
18517 + list='$(SOURCES) $(HEADERS)'; \
18518 + unique=`for i in $$list; do echo $$i; done | \
18519 + awk ' { files[$$0] = 1; } \
18520 END { for (i in files) print i; }'`; \
18521 - mkid -fID $$unique
18522 + here=`pwd` && cd $(srcdir) \
18523 + && mkid -f$$here/ID $$unique $(LISP)
18525 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
18526 - $(TAGS_FILES) $(LISP)
18527 +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
18530 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
18531 - unique=`for i in $$list; do \
18532 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
18534 - $(AWK) ' { files[$$0] = 1; } \
18535 + list='$(SOURCES) $(HEADERS)'; \
18536 + unique=`for i in $$list; do echo $$i; done | \
18537 + awk ' { files[$$0] = 1; } \
18538 END { for (i in files) print i; }'`; \
18539 - test -z "$(ETAGS_ARGS)$$tags$$unique" \
18540 - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
18544 - here=`$(am__cd) $(top_builddir) && pwd` \
18545 - && cd $(top_srcdir) \
18546 - && gtags -i $(GTAGS_ARGS) $$here
18547 + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
18548 + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
18555 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
18558 -all-am: Makefile $(HEADERS)
18562 +maintainer-clean-tags:
18564 -install: install-am
18565 +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
18569 +distdir: $(DISTFILES)
18570 + @for file in $(DISTFILES); do \
18571 + if test -f $$file; then d=.; else d=$(srcdir); fi; \
18572 + if test -d $$d/$$file; then \
18573 + cp -pr $$d/$$file $(distdir)/$$file; \
18575 + test -f $(distdir)/$$file \
18576 + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
18577 + || cp -p $$d/$$file $(distdir)/$$file || :; \
18587 +installcheck: installcheck-am
18589 +install-info: install-info-am
18591 install-exec: install-exec-am
18594 install-data: install-data-am
18595 -uninstall: uninstall-am
18598 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
18600 -installcheck: installcheck-am
18601 +install: install-am
18603 +uninstall: uninstall-am
18604 +all-am: Makefile $(HEADERS)
18605 +all-redirect: all-am
18607 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
18608 - INSTALL_STRIP_FLAG=-s \
18609 - `test -z '$(STRIP)' || \
18610 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
18611 + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
18615 mostlyclean-generic:
18620 -rm -f Makefile $(CONFIG_CLEAN_FILES)
18621 + -rm -f config.cache config.log stamp-h stamp-h[0-9]*
18623 maintainer-clean-generic:
18624 - @echo "This command is intended for maintainers to use"
18625 - @echo "it deletes files that may require special tools to rebuild."
18628 -clean-am: clean-generic clean-libtool mostlyclean-am
18630 -distclean: distclean-am
18632 -distclean-am: clean-am distclean-generic distclean-libtool \
18636 +mostlyclean-am: mostlyclean-tags mostlyclean-generic
18643 +mostlyclean: mostlyclean-am
18646 +clean-am: clean-tags clean-generic mostlyclean-am
18652 +distclean-am: distclean-tags distclean-generic clean-am
18656 +distclean: distclean-am
18659 +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
18661 + @echo "This command is intended for maintainers to use;"
18662 + @echo "it deletes files that may require special tools to rebuild."
18664 maintainer-clean: maintainer-clean-am
18666 -maintainer-clean-am: distclean-am maintainer-clean-generic
18668 -mostlyclean: mostlyclean-am
18670 -mostlyclean-am: mostlyclean-generic mostlyclean-libtool
18673 +.PHONY: tags mostlyclean-tags distclean-tags clean-tags \
18674 +maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
18675 +installcheck-am installcheck install-info-am install-info \
18676 +install-exec-am install-exec install-data-am install-data install-am \
18677 +install uninstall-am uninstall all-redirect all-am all installdirs \
18678 +mostlyclean-generic distclean-generic clean-generic \
18679 +maintainer-clean-generic clean mostlyclean distclean maintainer-clean
18681 -.PHONY: GTAGS all all-am check check-am clean clean-generic \
18682 - clean-libtool distclean distclean-generic distclean-libtool \
18683 - distclean-tags dvi dvi-am info info-am install install-am \
18684 - install-data install-data-am install-exec install-exec-am \
18685 - install-info install-info-am install-man install-strip \
18686 - installcheck installcheck-am installdirs maintainer-clean \
18687 - maintainer-clean-generic mostlyclean mostlyclean-generic \
18688 - mostlyclean-libtool tags uninstall uninstall-am \
18689 - uninstall-info-am
18691 # Tell versions [3.59,3.63) of GNU make to not export all variables.
18692 # Otherwise a system limit (for SysV at least) may be exceeded.
18693 diff -Nur ../boehm-gc/include/gc.h boehm-gc/include/gc.h
18694 --- ../boehm-gc/include/gc.h Mon May 26 13:28:19 2003
18695 +++ boehm-gc/include/gc.h Mon Feb 11 20:37:56 2002
18700 -# include "gc_config_macros.h"
18702 + * Some tests for old macros. These violate our namespace rules and will
18703 + * disappear shortly. Use the GC_ names.
18705 +#if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS)
18706 +# define GC_SOLARIS_THREADS
18708 +#if defined(_SOLARIS_PTHREADS)
18709 +# define GC_SOLARIS_PTHREADS
18711 +#if defined(IRIX_THREADS)
18712 +# define GC_IRIX_THREADS
18714 +#if defined(HPUX_THREADS)
18715 +# define GC_HPUX_THREADS
18717 +#if defined(OSF1_THREADS)
18718 +# define GC_OSF1_THREADS
18720 +#if defined(LINUX_THREADS)
18721 +# define GC_LINUX_THREADS
18723 +#if defined(WIN32_THREADS)
18724 +# define GC_WIN32_THREADS
18726 +#if defined(USE_LD_WRAP)
18727 +# define GC_USE_LD_WRAP
18730 +#if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \
18731 + || defined(GC_SOLARIS_PTHREADS) \
18732 + || defined(GC_HPUX_THREADS) \
18733 + || defined(GC_LINUX_THREADS))
18734 +# define _REENTRANT
18735 + /* Better late than never. This fails if system headers that */
18736 + /* depend on this were previously included. */
18739 +#if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
18740 +# define GC_SOLARIS_THREADS
18743 +# if defined(GC_SOLARIS_PTHREADS) || defined(GC_FREEBSD_THREADS) || \
18744 + defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \
18745 + defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
18746 +# define GC_PTHREADS
18750 +# include <stddef.h>
18751 +# ifdef _WIN32_WCE
18752 +/* Yet more kluges for WinCE */
18753 +# include <stdlib.h> /* size_t is defined here */
18754 + typedef long ptrdiff_t; /* ptrdiff_t is not defined */
18757 +#if defined(__MINGW32__) &&defined(_DLL) && !defined(GC_NOT_DLL)
18759 +# define GC_API __declspec(dllexport)
18761 +# define GC_API __declspec(dllimport)
18765 +#if (defined(__DMC__) || defined(_MSC_VER)) \
18766 + && (defined(_DLL) && !defined(GC_NOT_DLL) \
18767 + || defined(GC_DLL))
18769 +# define GC_API extern __declspec(dllexport)
18771 +# define GC_API __declspec(dllimport)
18775 +#if defined(__WATCOMC__) && defined(GC_DLL)
18777 +# define GC_API extern __declspec(dllexport)
18779 +# define GC_API extern __declspec(dllimport)
18784 +#define GC_API extern
18787 # if defined(__STDC__) || defined(__cplusplus)
18788 # define GC_PROTO(args) args
18790 /* Env variable GC_NPROC is set to > 1, or */
18791 /* GC_NPROC is not set and this is an MP. */
18792 /* If GC_parallel is set, incremental */
18793 - /* collection is only partially functional, */
18794 + /* collection is aonly partially functional, */
18795 /* and may not be desirable. */
18798 @@ -131,14 +215,8 @@
18799 /* thread, which will call GC_invoke_finalizers */
18802 -GC_API int GC_dont_gc; /* != 0 ==> Dont collect. In versions 7.2a1+, */
18803 - /* this overrides explicit GC_gcollect() calls. */
18804 - /* Used as a counter, so that nested enabling */
18805 - /* and disabling work correctly. Should */
18806 - /* normally be updated with GC_enable() and */
18807 - /* GC_disable() calls. */
18808 - /* Direct assignment to GC_dont_gc is */
18809 - /* deprecated. */
18810 +GC_API int GC_dont_gc; /* Dont collect unless explicitly requested, e.g. */
18811 + /* because it's not safe. */
18813 GC_API int GC_dont_expand;
18814 /* Dont expand heap unless explicitly requested */
18815 @@ -218,6 +296,15 @@
18816 /* Interferes with blacklisting. */
18817 /* Wizards only. */
18819 +/* Public procedures */
18821 +/* Initialize the collector. This is only required when using thread-local
18822 + * allocation, since unlike the regular allocation routines, GC_local_malloc
18823 + * is not self-initializing. If you use GC_local_malloc you should arrange
18824 + * to call this somehow (e.g. from a constructor) before doing any allocation.
18826 +GC_API void GC_init GC_PROTO((void));
18828 GC_API unsigned long GC_time_limit;
18829 /* If incremental collection is enabled, */
18830 /* We try to terminate collections */
18831 @@ -229,18 +316,9 @@
18833 # define GC_TIME_UNLIMITED 999999
18834 /* Setting GC_time_limit to this value */
18835 - /* will disable the "pause time exceeded"*/
18836 + /* will disable the "pause time exceeded */
18839 -/* Public procedures */
18841 -/* Initialize the collector. This is only required when using thread-local
18842 - * allocation, since unlike the regular allocation routines, GC_local_malloc
18843 - * is not self-initializing. If you use GC_local_malloc you should arrange
18844 - * to call this somehow (e.g. from a constructor) before doing any allocation.
18846 -GC_API void GC_init GC_PROTO((void));
18849 * general purpose allocation routines, with roughly malloc calling conv.
18850 * The atomic versions promise that no relevant pointers are contained
18851 @@ -341,21 +419,17 @@
18852 GC_API void GC_add_roots GC_PROTO((char * low_address,
18853 char * high_address_plus_1));
18855 -/* Remove a root segment. Wizards only. */
18856 -GC_API void GC_remove_roots GC_PROTO((char * low_address,
18857 - char * high_address_plus_1));
18859 /* Add a displacement to the set of those considered valid by the */
18860 /* collector. GC_register_displacement(n) means that if p was returned */
18861 /* by GC_malloc, then (char *)p + n will be considered to be a valid */
18862 -/* pointer to p. N must be small and less than the size of p. */
18863 +/* pointer to n. N must be small and less than the size of p. */
18864 /* (All pointers to the interior of objects from the stack are */
18865 /* considered valid in any case. This applies to heap objects and */
18866 /* static data.) */
18867 /* Preferably, this should be called before any other GC procedures. */
18868 /* Calling it later adds to the probability of excess memory */
18870 -/* This is a no-op if the collector has recognition of */
18871 +/* This is a no-op if the collector was compiled with recognition of */
18872 /* arbitrary interior pointers enabled, which is now the default. */
18873 GC_API void GC_register_displacement GC_PROTO((GC_word n));
18875 @@ -390,18 +464,9 @@
18876 GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
18878 /* Return the total number of bytes allocated in this process. */
18879 -/* Never decreases, except due to wrapping. */
18880 +/* Never decreases. */
18881 GC_API size_t GC_get_total_bytes GC_PROTO((void));
18883 -/* Disable garbage collection. Even GC_gcollect calls will be */
18884 -/* ineffective. */
18885 -GC_API void GC_disable GC_PROTO((void));
18887 -/* Reenable garbage collection. GC_diable() and GC_enable() calls */
18888 -/* nest. Garbage collection is enabled if the number of calls to both */
18889 -/* both functions is equal. */
18890 -GC_API void GC_enable GC_PROTO((void));
18892 /* Enable incremental/generational collection. */
18893 /* Not advisable unless dirty bits are */
18894 /* available or most heap objects are */
18895 @@ -409,11 +474,7 @@
18896 /* Don't use in leak finding mode. */
18897 /* Ignored if GC_dont_gc is true. */
18898 /* Only the generational piece of this is */
18899 -/* functional if GC_parallel is TRUE */
18900 -/* or if GC_time_limit is GC_TIME_UNLIMITED. */
18901 -/* Causes GC_local_gcj_malloc() to revert to */
18902 -/* locked allocation. Must be called */
18903 -/* before any GC_local_gcj_malloc() calls. */
18904 +/* functional if GC_parallel is TRUE. */
18905 GC_API void GC_enable_incremental GC_PROTO((void));
18907 /* Does incremental mode write-protect pages? Returns zero or */
18908 @@ -457,42 +518,6 @@
18909 # define GC_RETURN_ADDR (GC_word)__return_address
18913 -# include <features.h>
18914 -# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
18915 - && !defined(__ia64__)
18916 -# define GC_HAVE_BUILTIN_BACKTRACE
18917 -# define GC_CAN_SAVE_CALL_STACKS
18919 -# if defined(__i386__) || defined(__x86_64__)
18920 -# define GC_CAN_SAVE_CALL_STACKS
18924 -#if defined(__sparc__)
18925 -# define GC_CAN_SAVE_CALL_STACKS
18928 -/* If we're on an a platform on which we can't save call stacks, but */
18929 -/* gcc is normally used, we go ahead and define GC_ADD_CALLER. */
18930 -/* We make this decision independent of whether gcc is actually being */
18931 -/* used, in order to keep the interface consistent, and allow mixing */
18932 -/* of compilers. */
18933 -/* This may also be desirable if it is possible but expensive to */
18934 -/* retrieve the call chain. */
18935 -#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \
18936 - || defined(__FreeBSD__)) & !defined(GC_CAN_SAVE_CALL_STACKS)
18937 -# define GC_ADD_CALLER
18938 -# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
18939 - /* gcc knows how to retrieve return address, but we don't know */
18940 - /* how to generate call stacks. */
18941 -# define GC_RETURN_ADDR (GC_word)__builtin_return_address(0)
18943 - /* Just pass 0 for gcc compatibility. */
18944 -# define GC_RETURN_ADDR 0
18948 #ifdef GC_ADD_CALLER
18949 # define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
18950 # define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
18951 @@ -511,42 +536,18 @@
18952 GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
18953 GC_API GC_PTR GC_debug_malloc_stubborn
18954 GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
18955 -GC_API GC_PTR GC_debug_malloc_ignore_off_page
18956 - GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
18957 -GC_API GC_PTR GC_debug_malloc_atomic_ignore_off_page
18958 - GC_PROTO((size_t size_in_bytes, GC_EXTRA_PARAMS));
18959 GC_API void GC_debug_free GC_PROTO((GC_PTR object_addr));
18960 GC_API GC_PTR GC_debug_realloc
18961 GC_PROTO((GC_PTR old_object, size_t new_size_in_bytes,
18964 GC_API void GC_debug_change_stubborn GC_PROTO((GC_PTR));
18965 GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
18967 -/* Routines that allocate objects with debug information (like the */
18968 -/* above), but just fill in dummy file and line number information. */
18969 -/* Thus they can serve as drop-in malloc/realloc replacements. This */
18970 -/* can be useful for two reasons: */
18971 -/* 1) It allows the collector to be built with DBG_HDRS_ALL defined */
18972 -/* even if some allocation calls come from 3rd party libraries */
18973 -/* that can't be recompiled. */
18974 -/* 2) On some platforms, the file and line information is redundant, */
18975 -/* since it can be reconstructed from a stack trace. On such */
18976 -/* platforms it may be more convenient not to recompile, e.g. for */
18977 -/* leak detection. This can be accomplished by instructing the */
18978 -/* linker to replace malloc/realloc with these. */
18979 -GC_API GC_PTR GC_debug_malloc_replacement GC_PROTO((size_t size_in_bytes));
18980 -GC_API GC_PTR GC_debug_realloc_replacement
18981 - GC_PROTO((GC_PTR object_addr, size_t size_in_bytes));
18984 # define GC_MALLOC(sz) GC_debug_malloc(sz, GC_EXTRAS)
18985 # define GC_MALLOC_ATOMIC(sz) GC_debug_malloc_atomic(sz, GC_EXTRAS)
18986 -# define GC_MALLOC_UNCOLLECTABLE(sz) \
18987 - GC_debug_malloc_uncollectable(sz, GC_EXTRAS)
18988 -# define GC_MALLOC_IGNORE_OFF_PAGE(sz) \
18989 - GC_debug_malloc_ignore_off_page(sz, GC_EXTRAS)
18990 -# define GC_MALLOC_ATOMIC_IGNORE_OFF_PAGE(sz) \
18991 - GC_debug_malloc_atomic_ignore_off_page(sz, GC_EXTRAS)
18992 +# define GC_MALLOC_UNCOLLECTABLE(sz) GC_debug_malloc_uncollectable(sz, \
18994 # define GC_REALLOC(old, sz) GC_debug_realloc(old, sz, GC_EXTRAS)
18995 # define GC_FREE(p) GC_debug_free(p)
18996 # define GC_REGISTER_FINALIZER(p, f, d, of, od) \
18997 @@ -565,10 +566,6 @@
18998 # define GC_MALLOC(sz) GC_malloc(sz)
18999 # define GC_MALLOC_ATOMIC(sz) GC_malloc_atomic(sz)
19000 # define GC_MALLOC_UNCOLLECTABLE(sz) GC_malloc_uncollectable(sz)
19001 -# define GC_MALLOC_IGNORE_OFF_PAGE(sz) \
19002 - GC_malloc_ignore_off_page(sz)
19003 -# define GC_MALLOC_ATOMIC_IGNORE_OFF_PAGE(sz) \
19004 - GC_malloc_atomic_ignore_off_page(sz)
19005 # define GC_REALLOC(old, sz) GC_realloc(old, sz)
19006 # define GC_FREE(p) GC_free(p)
19007 # define GC_REGISTER_FINALIZER(p, f, d, of, od) \
19008 @@ -647,8 +644,7 @@
19009 /* itself. There is a stylistic argument that this is wrong, */
19010 /* but it's unavoidable for C++, since the compiler may */
19011 /* silently introduce these. It's also benign in that specific */
19012 -/* case. And it helps if finalizable objects are split to */
19013 -/* avoid cycles. */
19015 /* Note that cd will still be viewed as accessible, even if it */
19016 /* refers to the object itself. */
19017 GC_API void GC_register_finalizer_ignore_self
19018 @@ -721,6 +717,11 @@
19019 /* Undoes a registration by either of the above two */
19022 +/* Auxiliary fns to make finalization work correctly with displaced */
19023 +/* pointers introduced by the debugging allocators. */
19024 +GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
19025 +GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
19027 /* Returns !=0 if GC_invoke_finalizers has something to do. */
19028 GC_API int GC_should_invoke_finalizers GC_PROTO((void));
19030 @@ -737,10 +738,6 @@
19031 typedef void (*GC_warn_proc) GC_PROTO((char *msg, GC_word arg));
19032 GC_API GC_warn_proc GC_set_warn_proc GC_PROTO((GC_warn_proc p));
19033 /* Returns old warning procedure. */
19035 -GC_API GC_word GC_set_free_space_divisor GC_PROTO((GC_word value));
19036 - /* Set free_space_divisor. See above for definition. */
19037 - /* Returns old value. */
19039 /* The following is intended to be used by a higher level */
19040 /* (e.g. Java-like) finalization facility. It is expected */
19041 @@ -878,16 +875,12 @@
19043 #if defined(GC_WIN32_THREADS)
19044 # include <windows.h>
19045 -# include <winbase.h>
19048 * All threads must be created using GC_CreateThread, so that they will be
19049 - * recorded in the thread table. For backwards compatibility, this is not
19050 - * technically true if the GC is built as a dynamic library, since it can
19051 - * and does then use DllMain to keep track of thread creations. But new code
19052 - * should be built to call GC_CreateThread.
19053 + * recorded in the thread table.
19055 - GC_API HANDLE GC_CreateThread(
19056 + HANDLE WINAPI GC_CreateThread(
19057 LPSECURITY_ATTRIBUTES lpThreadAttributes,
19058 DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
19059 LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );
19060 @@ -921,18 +914,13 @@
19061 # define GC_INIT() { extern end, etext; \
19062 GC_noop(&end, &etext); }
19064 -# if defined(__CYGWIN32__) && defined(GC_DLL) || defined (_AIX)
19065 +# if (defined(__CYGWIN32__) && defined(GC_USE_DLL)) || defined (_AIX)
19067 - * Similarly gnu-win32 DLLs need explicit initialization from
19068 - * the main program, as does AIX.
19069 + * Similarly gnu-win32 DLLs need explicit initialization
19071 # define GC_INIT() { GC_add_roots(DATASTART, DATAEND); }
19073 -# if defined(__APPLE__) && defined(__MACH__)
19074 -# define GC_INIT() { GC_init(); }
19076 -# define GC_INIT()
19078 +# define GC_INIT()
19082 diff -Nur ../boehm-gc/include/gc_allocator.h boehm-gc/include/gc_allocator.h
19083 --- ../boehm-gc/include/gc_allocator.h Mon May 26 13:28:19 2003
19084 +++ boehm-gc/include/gc_allocator.h Wed Dec 31 16:00:00 1969
19087 - * Copyright (c) 1996-1997
19088 - * Silicon Graphics Computer Systems, Inc.
19090 - * Permission to use, copy, modify, distribute and sell this software
19091 - * and its documentation for any purpose is hereby granted without fee,
19092 - * provided that the above copyright notice appear in all copies and
19093 - * that both that copyright notice and this permission notice appear
19094 - * in supporting documentation. Silicon Graphics makes no
19095 - * representations about the suitability of this software for any
19096 - * purpose. It is provided "as is" without express or implied warranty.
19098 - * Copyright (c) 2002
19099 - * Hewlett-Packard Company
19101 - * Permission to use, copy, modify, distribute and sell this software
19102 - * and its documentation for any purpose is hereby granted without fee,
19103 - * provided that the above copyright notice appear in all copies and
19104 - * that both that copyright notice and this permission notice appear
19105 - * in supporting documentation. Hewlett-Packard Company makes no
19106 - * representations about the suitability of this software for any
19107 - * purpose. It is provided "as is" without express or implied warranty.
19111 - * This implements standard-conforming allocators that interact with
19112 - * the garbage collector. Gc_alloctor<T> allocates garbage-collectable
19113 - * objects of type T. Traceable_allocator<T> allocates objects that
19114 - * are not temselves garbage collected, but are scanned by the
19115 - * collector for pointers to collectable objects. Traceable_alloc
19116 - * should be used for explicitly managed STL containers that may
19117 - * point to collectable objects.
19119 - * This code was derived from an earlier version of the GNU C++ standard
19120 - * library, which itself was derived from the SGI STL implementation.
19123 -#include "gc.h" // For size_t
19125 -/* First some helpers to allow us to dispatch on whether or not a type
19126 - * is known to be pointerfree.
19127 - * These are private, except that the client may invoke the
19128 - * GC_DECLARE_PTRFREE macro.
19131 -struct GC_true_type {};
19132 -struct GC_false_type {};
19134 -template <class GC_tp>
19135 -struct GC_type_traits {
19136 - GC_false_type GC_is_ptr_free;
19139 -# define GC_DECLARE_PTRFREE(T) \
19140 -template<> struct GC_type_traits<T> { GC_true_type GC_is_ptr_free; }
19142 -GC_DECLARE_PTRFREE(signed char);
19143 -GC_DECLARE_PTRFREE(unsigned char);
19144 -GC_DECLARE_PTRFREE(signed short);
19145 -GC_DECLARE_PTRFREE(unsigned short);
19146 -GC_DECLARE_PTRFREE(signed int);
19147 -GC_DECLARE_PTRFREE(unsigned int);
19148 -GC_DECLARE_PTRFREE(signed long);
19149 -GC_DECLARE_PTRFREE(unsigned long);
19150 -GC_DECLARE_PTRFREE(float);
19151 -GC_DECLARE_PTRFREE(double);
19152 -/* The client may want to add others. */
19154 -// In the following GC_Tp is GC_true_type iff we are allocating a
19155 -// pointerfree object.
19156 -template <class GC_Tp>
19157 -inline void * GC_selective_alloc(size_t n, GC_Tp) {
19158 - return GC_MALLOC(n);
19162 -inline void * GC_selective_alloc<GC_true_type>(size_t n, GC_true_type) {
19163 - return GC_MALLOC_ATOMIC(n);
19166 -/* Now the public gc_allocator<T> class:
19168 -template <class GC_Tp>
19169 -class gc_allocator {
19171 - typedef size_t size_type;
19172 - typedef ptrdiff_t difference_type;
19173 - typedef GC_Tp* pointer;
19174 - typedef const GC_Tp* const_pointer;
19175 - typedef GC_Tp& reference;
19176 - typedef const GC_Tp& const_reference;
19177 - typedef GC_Tp value_type;
19179 - template <class GC_Tp1> struct rebind {
19180 - typedef gc_allocator<GC_Tp1> other;
19183 - gc_allocator() {}
19185 - // I'm not sure why this is needed here in addition to the following.
19186 - // The standard specifies it for the standard allocator, but VC++ rejects
19188 - gc_allocator(const gc_allocator&) throw() {}
19190 - template <class GC_Tp1> gc_allocator(const gc_allocator<GC_Tp1>&) throw() {}
19191 - ~gc_allocator() throw() {}
19193 - pointer address(reference GC_x) const { return &GC_x; }
19194 - const_pointer address(const_reference GC_x) const { return &GC_x; }
19196 - // GC_n is permitted to be 0. The C++ standard says nothing about what
19197 - // the return value is when GC_n == 0.
19198 - GC_Tp* allocate(size_type GC_n, const void* = 0) {
19199 - GC_type_traits<GC_Tp> traits;
19200 - return static_cast<GC_Tp *>
19201 - (GC_selective_alloc(GC_n * sizeof(GC_Tp),
19202 - traits.GC_is_ptr_free));
19205 - // __p is not permitted to be a null pointer.
19206 - void deallocate(pointer __p, size_type GC_n)
19207 - { GC_FREE(__p); }
19209 - size_type max_size() const throw()
19210 - { return size_t(-1) / sizeof(GC_Tp); }
19212 - void construct(pointer __p, const GC_Tp& __val) { new(__p) GC_Tp(__val); }
19213 - void destroy(pointer __p) { __p->~GC_Tp(); }
19217 -class gc_allocator<void> {
19218 - typedef size_t size_type;
19219 - typedef ptrdiff_t difference_type;
19220 - typedef void* pointer;
19221 - typedef const void* const_pointer;
19222 - typedef void value_type;
19224 - template <class GC_Tp1> struct rebind {
19225 - typedef gc_allocator<GC_Tp1> other;
19230 -template <class GC_T1, class GC_T2>
19231 -inline bool operator==(const gc_allocator<GC_T1>&, const gc_allocator<GC_T2>&)
19236 -template <class GC_T1, class GC_T2>
19237 -inline bool operator!=(const gc_allocator<GC_T1>&, const gc_allocator<GC_T2>&)
19243 - * And the public traceable_allocator class.
19246 -// Note that we currently don't specialize the pointer-free case, since a
19247 -// pointer-free traceable container doesn't make that much sense,
19248 -// though it could become an issue due to abstraction boundaries.
19249 -template <class GC_Tp>
19250 -class traceable_allocator {
19252 - typedef size_t size_type;
19253 - typedef ptrdiff_t difference_type;
19254 - typedef GC_Tp* pointer;
19255 - typedef const GC_Tp* const_pointer;
19256 - typedef GC_Tp& reference;
19257 - typedef const GC_Tp& const_reference;
19258 - typedef GC_Tp value_type;
19260 - template <class GC_Tp1> struct rebind {
19261 - typedef traceable_allocator<GC_Tp1> other;
19264 - traceable_allocator() throw() {}
19266 - traceable_allocator(const traceable_allocator&) throw() {}
19268 - template <class GC_Tp1> traceable_allocator
19269 - (const traceable_allocator<GC_Tp1>&) throw() {}
19270 - ~traceable_allocator() throw() {}
19272 - pointer address(reference GC_x) const { return &GC_x; }
19273 - const_pointer address(const_reference GC_x) const { return &GC_x; }
19275 - // GC_n is permitted to be 0. The C++ standard says nothing about what
19276 - // the return value is when GC_n == 0.
19277 - GC_Tp* allocate(size_type GC_n, const void* = 0) {
19278 - return static_cast<GC_Tp*>(GC_MALLOC_UNCOLLECTABLE(GC_n * sizeof(GC_Tp)));
19281 - // __p is not permitted to be a null pointer.
19282 - void deallocate(pointer __p, size_type GC_n)
19283 - { GC_FREE(__p); }
19285 - size_type max_size() const throw()
19286 - { return size_t(-1) / sizeof(GC_Tp); }
19288 - void construct(pointer __p, const GC_Tp& __val) { new(__p) GC_Tp(__val); }
19289 - void destroy(pointer __p) { __p->~GC_Tp(); }
19293 -class traceable_allocator<void> {
19294 - typedef size_t size_type;
19295 - typedef ptrdiff_t difference_type;
19296 - typedef void* pointer;
19297 - typedef const void* const_pointer;
19298 - typedef void value_type;
19300 - template <class GC_Tp1> struct rebind {
19301 - typedef traceable_allocator<GC_Tp1> other;
19306 -template <class GC_T1, class GC_T2>
19307 -inline bool operator==(const traceable_allocator<GC_T1>&, const traceable_allocator<GC_T2>&)
19312 -template <class GC_T1, class GC_T2>
19313 -inline bool operator!=(const traceable_allocator<GC_T1>&, const traceable_allocator<GC_T2>&)
19318 diff -Nur ../boehm-gc/include/gc_config_macros.h boehm-gc/include/gc_config_macros.h
19319 --- ../boehm-gc/include/gc_config_macros.h Mon May 26 13:28:19 2003
19320 +++ boehm-gc/include/gc_config_macros.h Wed Dec 31 16:00:00 1969
19323 - * This should never be included directly. It is included only from gc.h.
19324 - * We separate it only to make gc.h more suitable as documentation.
19326 - * Some tests for old macros. These violate our namespace rules and will
19327 - * disappear shortly. Use the GC_ names.
19329 -#if defined(SOLARIS_THREADS) || defined(_SOLARIS_THREADS)
19330 -# define GC_SOLARIS_THREADS
19332 -#if defined(_SOLARIS_PTHREADS)
19333 -# define GC_SOLARIS_PTHREADS
19335 -#if defined(IRIX_THREADS)
19336 -# define GC_IRIX_THREADS
19338 -#if defined(DGUX_THREADS)
19339 -# if !defined(GC_DGUX386_THREADS)
19340 -# define GC_DGUX386_THREADS
19343 -#if defined(HPUX_THREADS)
19344 -# define GC_HPUX_THREADS
19346 -#if defined(OSF1_THREADS)
19347 -# define GC_OSF1_THREADS
19349 -#if defined(LINUX_THREADS)
19350 -# define GC_LINUX_THREADS
19352 -#if defined(WIN32_THREADS)
19353 -# define GC_WIN32_THREADS
19355 -#if defined(USE_LD_WRAP)
19356 -# define GC_USE_LD_WRAP
19359 -#if !defined(_REENTRANT) && (defined(GC_SOLARIS_THREADS) \
19360 - || defined(GC_SOLARIS_PTHREADS) \
19361 - || defined(GC_HPUX_THREADS) \
19362 - || defined(GC_LINUX_THREADS))
19363 -# define _REENTRANT
19364 - /* Better late than never. This fails if system headers that */
19365 - /* depend on this were previously included. */
19368 -#if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE)
19369 -# define _POSIX4A_DRAFT10_SOURCE 1
19372 -# if defined(GC_SOLARIS_PTHREADS) || defined(GC_FREEBSD_THREADS) || \
19373 - defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \
19374 - defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \
19375 - defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \
19376 - (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__))
19377 -# define GC_PTHREADS
19380 -#if defined(GC_THREADS) && !defined(GC_PTHREADS)
19381 -# if defined(__linux__)
19382 -# define GC_LINUX_THREADS
19383 -# define GC_PTHREADS
19385 -# if !defined(LINUX) && (defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
19386 - || defined(hppa) || defined(__HPPA))
19387 -# define GC_HPUX_THREADS
19388 -# define GC_PTHREADS
19390 -# if !defined(__linux__) && (defined(__alpha) || defined(__alpha__))
19391 -# define GC_OSF1_THREADS
19392 -# define GC_PTHREADS
19394 -# if defined(__mips) && !defined(__linux__)
19395 -# define GC_IRIX_THREADS
19396 -# define GC_PTHREADS
19398 -# if defined(__sparc) && !defined(__linux__)
19399 -# define GC_SOLARIS_PTHREADS
19400 -# define GC_PTHREADS
19402 -# if defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)
19403 -# define GC_DARWIN_THREADS
19404 -# define GC_PTHREADS
19406 -# if !defined(GC_PTHREADS) && defined(__FreeBSD__)
19407 -# define GC_FREEBSD_THREADS
19408 -# define GC_PTHREADS
19410 -# if defined(DGUX) && (defined(i386) || defined(__i386__))
19411 -# define GC_DGUX386_THREADS
19412 -# define GC_PTHREADS
19414 -#endif /* GC_THREADS */
19416 -#if defined(GC_THREADS) && !defined(GC_PTHREADS) && defined(MSWIN32)
19417 -# define GC_WIN32_THREADS
19420 -#if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
19421 -# define GC_SOLARIS_THREADS
19425 -# include <stddef.h>
19426 -# ifdef _WIN32_WCE
19427 -/* Yet more kluges for WinCE */
19428 -# include <stdlib.h> /* size_t is defined here */
19429 - typedef long ptrdiff_t; /* ptrdiff_t is not defined */
19432 -#if defined(_DLL) && !defined(GC_NOT_DLL) && !defined(GC_DLL)
19436 -#if defined(__MINGW32__) && defined(GC_DLL)
19438 -# define GC_API __declspec(dllexport)
19440 -# define GC_API __declspec(dllimport)
19444 -#if (defined(__DMC__) || defined(_MSC_VER)) && defined(GC_DLL)
19446 -# define GC_API extern __declspec(dllexport)
19448 -# define GC_API __declspec(dllimport)
19452 -#if defined(__WATCOMC__) && defined(GC_DLL)
19454 -# define GC_API extern __declspec(dllexport)
19456 -# define GC_API extern __declspec(dllimport)
19461 -#define GC_API extern
19464 diff -Nur ../boehm-gc/include/gc_cpp.h boehm-gc/include/gc_cpp.h
19465 --- ../boehm-gc/include/gc_cpp.h Mon May 26 13:28:19 2003
19466 +++ boehm-gc/include/gc_cpp.h Fri Aug 17 18:04:43 2001
19467 @@ -134,9 +134,7 @@
19470 #ifndef THINK_CPLUS
19473 -# define GC_cdecl _cdecl
19477 #if ! defined( GC_NO_OPERATOR_NEW_ARRAY ) \
19478 @@ -161,22 +159,12 @@
19480 inline void* operator new( size_t size );
19481 inline void* operator new( size_t size, GCPlacement gcp );
19482 - inline void* operator new( size_t size, void *p );
19483 - /* Must be redefined here, since the other overloadings */
19484 - /* hide the global definition. */
19485 inline void operator delete( void* obj );
19486 -# ifndef __BORLANDC__ /* Confuses the Borland compiler. */
19487 - inline void operator delete( void*, void* );
19490 #ifdef GC_OPERATOR_NEW_ARRAY
19491 inline void* operator new[]( size_t size );
19492 inline void* operator new[]( size_t size, GCPlacement gcp );
19493 - inline void* operator new[]( size_t size, void *p );
19494 inline void operator delete[]( void* obj );
19495 -# ifndef __BORLANDC__
19496 - inline void gc::operator delete[]( void*, void* );
19498 #endif /* GC_OPERATOR_NEW_ARRAY */
19501 @@ -188,7 +176,7 @@
19502 inline gc_cleanup();
19503 inline virtual ~gc_cleanup();
19505 - inline static void GC_cdecl cleanup( void* obj, void* clientData );};
19506 + inline static void _cdecl cleanup( void* obj, void* clientData );};
19508 Instances of classes derived from "gc_cleanup" will be allocated
19509 in the collected heap by default. When the collector discovers an
19510 @@ -223,6 +211,7 @@
19511 classes derived from "gc_cleanup" or containing members derived
19512 from "gc_cleanup". */
19514 +#ifdef GC_OPERATOR_NEW_ARRAY
19517 /** This ensures that the system default operator new[] doesn't get
19518 @@ -231,23 +220,41 @@
19519 * There seems to be really redirect new in this environment without
19520 * including this everywhere.
19522 - void *operator new[]( size_t size );
19524 - void operator delete[](void* obj);
19526 - void* operator new( size_t size);
19527 + inline void *operator new[]( size_t size )
19529 + return GC_MALLOC_UNCOLLECTABLE( size );
19532 + inline void operator delete[](void* obj)
19537 + inline void* operator new( size_t size)
19539 + return GC_MALLOC_UNCOLLECTABLE( size);
19542 + inline void operator delete(void* obj)
19547 - void operator delete(void* obj);
19549 - // This new operator is used by VC++ in case of Debug builds !
19550 - void* operator new( size_t size,
19551 +// This new operator is used by VC++ in case of Debug builds !
19552 + inline void* operator new( size_t size,
19554 const char * szFileName,
19556 -#endif /* _MSC_VER */
19560 + return GC_malloc_uncollectable( size );
19562 + return GC_debug_malloc_uncollectable(size, szFileName, nLine);
19567 -#ifdef GC_OPERATOR_NEW_ARRAY
19568 +#endif /* _MSC_VER */
19570 inline void* operator new[](
19572 @@ -276,15 +283,9 @@
19574 return GC_MALLOC_UNCOLLECTABLE( size );}
19576 -inline void* gc::operator new( size_t size, void *p ) {
19579 inline void gc::operator delete( void* obj ) {
19582 -#ifndef __BORLANDC__
19583 - inline void gc::operator delete( void*, void* ) {}
19586 #ifdef GC_OPERATOR_NEW_ARRAY
19588 @@ -294,21 +295,14 @@
19589 inline void* gc::operator new[]( size_t size, GCPlacement gcp ) {
19590 return gc::operator new( size, gcp );}
19592 -inline void* gc::operator new[]( size_t size, void *p ) {
19595 inline void gc::operator delete[]( void* obj ) {
19596 gc::operator delete( obj );}
19598 -#ifndef __BORLANDC__
19599 - inline void gc::operator delete[]( void*, void* ) {}
19602 #endif /* GC_OPERATOR_NEW_ARRAY */
19605 inline gc_cleanup::~gc_cleanup() {
19606 - GC_register_finalizer_ignore_self( GC_base(this), 0, 0, 0, 0 );}
19607 + GC_REGISTER_FINALIZER_IGNORE_SELF( GC_base(this), 0, 0, 0, 0 );}
19609 inline void gc_cleanup::cleanup( void* obj, void* displ ) {
19610 ((gc_cleanup*) ((char*) obj + (ptrdiff_t) displ))->~gc_cleanup();}
19611 diff -Nur ../boehm-gc/include/gc_local_alloc.h boehm-gc/include/gc_local_alloc.h
19612 --- ../boehm-gc/include/gc_local_alloc.h Mon May 26 13:28:19 2003
19613 +++ boehm-gc/include/gc_local_alloc.h Fri Aug 17 11:30:50 2001
19615 * -DTHREAD_LOCAL_ALLOC, which is currently supported only on Linux.
19617 * The debugging allocators use standard, not thread-local allocation.
19619 - * These routines normally require an explicit call to GC_init(), though
19620 - * that may be done from a constructor function.
19623 #ifndef GC_LOCAL_ALLOC_H
19624 diff -Nur ../boehm-gc/include/gc_mark.h boehm-gc/include/gc_mark.h
19625 --- ../boehm-gc/include/gc_mark.h Mon May 26 13:28:19 2003
19626 +++ boehm-gc/include/gc_mark.h Fri Aug 17 11:30:50 2001
19627 @@ -129,9 +129,7 @@
19628 /* be reserved for exceptional cases. That will ensure that */
19629 /* performance of this call is not extremely performance critical. */
19630 /* (Otherwise we would need to inline GC_mark_and_push completely, */
19631 -/* which would tie the client code to a fixed collector version.) */
19632 -/* Note that mark procedures should explicitly call FIXUP_POINTER() */
19633 -/* if required. */
19634 +/* which would tie the client code to a fixed colllector version.) */
19635 struct GC_ms_entry *GC_mark_and_push
19636 GC_PROTO((GC_PTR obj,
19637 struct GC_ms_entry * mark_stack_ptr,
19638 diff -Nur ../boehm-gc/include/gc_pthread_redirects.h boehm-gc/include/gc_pthread_redirects.h
19639 --- ../boehm-gc/include/gc_pthread_redirects.h Mon May 26 13:28:19 2003
19640 +++ boehm-gc/include/gc_pthread_redirects.h Tue Oct 16 21:55:28 2001
19641 @@ -52,21 +52,15 @@
19642 int GC_pthread_create(pthread_t *new_thread,
19643 const pthread_attr_t *attr,
19644 void *(*start_routine)(void *), void *arg);
19645 -#ifndef GC_DARWIN_THREADS
19646 int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
19648 int GC_pthread_join(pthread_t thread, void **retval);
19649 int GC_pthread_detach(pthread_t thread);
19651 # define pthread_create GC_pthread_create
19652 -#ifndef GC_DARWIN_THREADS
19653 # define pthread_sigmask GC_pthread_sigmask
19655 # define pthread_join GC_pthread_join
19656 # define pthread_detach GC_pthread_detach
19657 -#ifndef GC_DARWIN_THREADS
19658 # define dlopen GC_dlopen
19661 #endif /* GC_xxxxx_THREADS */
19663 diff -Nur ../boehm-gc/include/gc_typed.h boehm-gc/include/gc_typed.h
19664 --- ../boehm-gc/include/gc_typed.h Mon May 26 13:28:19 2003
19665 +++ boehm-gc/include/gc_typed.h Fri Aug 17 11:30:50 2001
19666 @@ -29,21 +29,14 @@
19670 -#ifdef __cplusplus
19673 typedef GC_word * GC_bitmap;
19674 /* The least significant bit of the first word is one if */
19675 /* the first word in the object may be a pointer. */
19677 -# define GC_WORDSZ (8*sizeof(GC_word))
19678 # define GC_get_bit(bm, index) \
19679 - (((bm)[index/GC_WORDSZ] >> (index%GC_WORDSZ)) & 1)
19680 + (((bm)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
19681 # define GC_set_bit(bm, index) \
19682 - (bm)[index/GC_WORDSZ] |= ((GC_word)1 << (index%GC_WORDSZ))
19683 -# define GC_WORD_OFFSET(t, f) (offsetof(t,f)/sizeof(GC_word))
19684 -# define GC_WORD_LEN(t) (sizeof(t)/ sizeof(GC_word))
19685 -# define GC_BITMAP_SIZE(t) ((GC_WORD_LEN(t) + GC_WORDSZ-1)/GC_WORDSZ)
19686 + (bm)[divWORDSZ(index)] |= (word)1 << modWORDSZ(index)
19688 typedef GC_word GC_descr;
19691 /* is intended to be called once per type, not once */
19692 /* per allocation. */
19694 -/* It is possible to generate a descriptor for a C type T with */
19695 -/* word aligned pointer fields f1, f2, ... as follows: */
19697 -/* GC_descr T_descr;
19698 -/* GC_word T_bitmap[GC_BITMAP_SIZE(T)] = {0}; */
19699 -/* GC_set_bit(T_bitmap, GC_WORD_OFFSET(T,f1)); */
19700 -/* GC_set_bit(T_bitmap, GC_WORD_OFFSET(T,f2)); */
19702 -/* T_descr = GC_make_descriptor(T_bitmap, GC_WORD_LEN(T)); */
19704 GC_API GC_PTR GC_malloc_explicitly_typed
19705 GC_PROTO((size_t size_in_bytes, GC_descr d));
19706 /* Allocate an object whose layout is described by d. */
19707 @@ -96,18 +79,15 @@
19708 /* Returned object is cleared. */
19711 -# define GC_MALLOC_EXPLICITLY_TYPED(bytes, d) GC_MALLOC(bytes)
19712 -# define GC_CALLOC_EXPLICITLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
19713 +# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) GC_MALLOC(bytes)
19714 +# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) GC_MALLOC(n*bytes)
19716 -# define GC_MALLOC_EXPLICITLY_TYPED(bytes, d) \
19717 +# define GC_MALLOC_EXPLICTLY_TYPED(bytes, d) \
19718 GC_malloc_explicitly_typed(bytes, d)
19719 -# define GC_CALLOC_EXPLICITLY_TYPED(n, bytes, d) \
19720 +# define GC_CALLOC_EXPLICTLY_TYPED(n, bytes, d) \
19721 GC_calloc_explicitly_typed(n, bytes, d)
19722 #endif /* !GC_DEBUG */
19724 -#ifdef __cplusplus
19725 - } /* matches extern "C" */
19728 #endif /* _GC_TYPED_H */
19730 diff -Nur ../boehm-gc/include/new_gc_alloc.h boehm-gc/include/new_gc_alloc.h
19731 --- ../boehm-gc/include/new_gc_alloc.h Mon May 26 13:28:19 2003
19732 +++ boehm-gc/include/new_gc_alloc.h Tue Oct 16 02:01:38 2001
19737 -/* A hack to deal with gcc 3.1. If you are using gcc3.1 and later, */
19738 -/* you should probably really use gc_allocator.h instead. */
19739 -#if defined (__GNUC__) && \
19740 - (__GNUC > 3 || (__GNUC__ == 3 && (__GNUC_MINOR__ >= 1)))
19741 -# define simple_alloc __simple_alloc
19748 diff -Nur ../boehm-gc/include/private/darwin_semaphore.h boehm-gc/include/private/darwin_semaphore.h
19749 --- ../boehm-gc/include/private/darwin_semaphore.h Mon May 26 13:28:24 2003
19750 +++ boehm-gc/include/private/darwin_semaphore.h Wed Dec 31 16:00:00 1969
19752 -#ifndef GC_DARWIN_SEMAPHORE_H
19753 -#define GC_DARWIN_SEMAPHORE_H
19755 -#if !defined(GC_DARWIN_THREADS)
19756 -#error darwin_semaphore.h included with GC_DARWIN_THREADS not defined
19760 - This is a very simple semaphore implementation for darwin. It
19761 - is implemented in terms of pthreads calls so it isn't async signal
19762 - safe. This isn't a problem because signals aren't used to
19763 - suspend threads on darwin.
19767 - pthread_mutex_t mutex;
19768 - pthread_cond_t cond;
19772 -static int sem_init(sem_t *sem, int pshared, int value) {
19775 - GC_abort("sem_init with pshared set");
19776 - sem->value = value;
19778 - ret = pthread_mutex_init(&sem->mutex,NULL);
19779 - if(ret < 0) return -1;
19780 - ret = pthread_cond_init(&sem->cond,NULL);
19781 - if(ret < 0) return -1;
19785 -static int sem_post(sem_t *sem) {
19786 - if(pthread_mutex_lock(&sem->mutex) < 0)
19789 - if(pthread_cond_signal(&sem->cond) < 0) {
19790 - pthread_mutex_unlock(&sem->mutex);
19793 - if(pthread_mutex_unlock(&sem->mutex) < 0)
19798 -static int sem_wait(sem_t *sem) {
19799 - if(pthread_mutex_lock(&sem->mutex) < 0)
19801 - while(sem->value == 0) {
19802 - pthread_cond_wait(&sem->cond,&sem->mutex);
19805 - if(pthread_mutex_unlock(&sem->mutex) < 0)
19810 -static int sem_destroy(sem_t *sem) {
19812 - ret = pthread_cond_destroy(&sem->cond);
19813 - if(ret < 0) return -1;
19814 - ret = pthread_mutex_destroy(&sem->mutex);
19815 - if(ret < 0) return -1;
19820 diff -Nur ../boehm-gc/include/private/darwin_stop_world.h boehm-gc/include/private/darwin_stop_world.h
19821 --- ../boehm-gc/include/private/darwin_stop_world.h Mon May 26 13:28:24 2003
19822 +++ boehm-gc/include/private/darwin_stop_world.h Wed Dec 31 16:00:00 1969
19824 -#ifndef GC_DARWIN_STOP_WORLD_H
19825 -#define GC_DARWIN_STOP_WORLD_H
19827 -#if !defined(GC_DARWIN_THREADS)
19828 -#error darwin_stop_world.h included without GC_DARWIN_THREADS defined
19831 -#include <mach/mach.h>
19832 -#include <mach/thread_act.h>
19834 -struct thread_stop_info {
19835 - mach_port_t mach_thread;
19839 diff -Nur ../boehm-gc/include/private/dbg_mlc.h boehm-gc/include/private/dbg_mlc.h
19840 --- ../boehm-gc/include/private/dbg_mlc.h Mon May 26 13:28:24 2003
19841 +++ boehm-gc/include/private/dbg_mlc.h Mon Feb 11 20:37:57 2002
19842 @@ -115,24 +115,16 @@
19844 #ifdef SHORT_DBG_HDRS
19845 # define DEBUG_BYTES (sizeof (oh))
19846 -# define UNCOLLECTABLE_DEBUG_BYTES DEBUG_BYTES
19848 /* Add space for END_FLAG, but use any extra space that was already */
19849 /* added to catch off-the-end pointers. */
19850 - /* For uncollectable objects, the extra byte is not added. */
19851 -# define UNCOLLECTABLE_DEBUG_BYTES (sizeof (oh) + sizeof (word))
19852 -# define DEBUG_BYTES (UNCOLLECTABLE_DEBUG_BYTES - EXTRA_BYTES)
19853 +# define DEBUG_BYTES (sizeof (oh) + sizeof (word) - EXTRA_BYTES)
19855 #define USR_PTR_FROM_BASE(p) ((ptr_t)(p) + sizeof(oh))
19857 /* Round bytes to words without adding extra byte at end. */
19858 #define SIMPLE_ROUNDED_UP_WORDS(n) BYTES_TO_WORDS((n) + WORDS_TO_BYTES(1) - 1)
19860 -/* ADD_CALL_CHAIN stores a (partial) call chain into an object */
19861 -/* header. It may be called with or without the allocation */
19863 -/* PRINT_CALL_CHAIN prints the call chain stored in an object */
19864 -/* to stderr. It requires that we do not hold the lock. */
19865 #ifdef SAVE_CALL_CHAIN
19866 # define ADD_CALL_CHAIN(base, ra) GC_save_callers(((oh *)(base)) -> oh_ci)
19867 # define PRINT_CALL_CHAIN(base) GC_print_callers(((oh *)(base)) -> oh_ci)
19868 diff -Nur ../boehm-gc/include/private/gc_hdrs.h boehm-gc/include/private/gc_hdrs.h
19869 --- ../boehm-gc/include/private/gc_hdrs.h Mon May 26 13:28:24 2003
19870 +++ boehm-gc/include/private/gc_hdrs.h Fri Aug 17 18:04:43 2001
19872 #define ADVANCE(p, hhdr, source) \
19874 hdr * new_hdr = GC_invalid_header; \
19875 - p = GC_find_start(p, hhdr, &new_hdr); \
19876 + p = GC_FIND_START(p, hhdr, &new_hdr, (word)source); \
19880 diff -Nur ../boehm-gc/include/private/gc_locks.h boehm-gc/include/private/gc_locks.h
19881 --- ../boehm-gc/include/private/gc_locks.h Mon May 26 13:28:24 2003
19882 +++ boehm-gc/include/private/gc_locks.h Fri Sep 27 13:40:06 2002
19883 @@ -145,24 +145,23 @@
19884 # if defined(POWERPC)
19885 inline static int GC_test_and_set(volatile unsigned int *addr) {
19887 - int temp = 1; /* locked value */
19888 + int temp = 1; // locked value
19890 __asm__ __volatile__(
19891 - "1:\tlwarx %0,0,%3\n" /* load and reserve */
19892 - "\tcmpwi %0, 0\n" /* if load is */
19893 - "\tbne 2f\n" /* non-zero, return already set */
19894 - "\tstwcx. %2,0,%1\n" /* else store conditional */
19895 - "\tbne- 1b\n" /* retry if lost reservation */
19896 - "\tsync\n" /* import barrier */
19897 - "2:\t\n" /* oldval is zero if we set */
19898 + "1:\tlwarx %0,0,%3\n" // load and reserve
19899 + "\tcmpwi %0, 0\n" // if load is
19900 + "\tbne 2f\n" // non-zero, return already set
19901 + "\tstwcx. %2,0,%1\n" // else store conditional
19902 + "\tbne- 1b\n" // retry if lost reservation
19903 + "2:\t\n" // oldval is zero if we set
19904 : "=&r"(oldval), "=p"(addr)
19905 : "r"(temp), "1"(addr)
19906 - : "cr0","memory");
19909 + return (int)oldval;
19911 # define GC_TEST_AND_SET_DEFINED
19912 inline static void GC_clear(volatile unsigned int *addr) {
19913 - __asm__ __volatile__("eieio" : : : "memory");
19914 + __asm__ __volatile__("eieio" ::: "memory");
19917 # define GC_CLEAR_DEFINED
19918 @@ -192,11 +191,8 @@
19921 # define GC_TEST_AND_SET_DEFINED
19922 - inline static void GC_clear(volatile unsigned int *addr) {
19923 - __asm__ __volatile__("mb" : : : "memory");
19926 -# define GC_CLEAR_DEFINED
19927 + /* Should probably also define GC_clear, since it needs */
19928 + /* a memory barrier ?? */
19929 # endif /* ALPHA */
19931 inline static int GC_test_and_set(volatile unsigned int *addr) {
19932 @@ -214,30 +210,22 @@
19933 # define GC_TEST_AND_SET_DEFINED
19934 # endif /* ARM32 */
19936 - inline static int GC_test_and_set(volatile unsigned int *addr) {
19938 - __asm__ __volatile__ (
19940 - "0: cs %0,%1,0(%2)\n"
19943 - : "d" (1), "a" (addr)
19944 - : "cc", "memory");
19947 + inline static int GC_test_and_set(volatile unsigned int *addr) {
19949 + __asm__ __volatile__ (
19951 + "0: cs %0,%1,0(%2)\n"
19954 + : "d" (1), "a" (addr)
19955 + : "cc", "memory");
19959 # endif /* __GNUC__ */
19960 # if (defined(ALPHA) && !defined(__GNUC__))
19962 - --> We currently assume that if gcc is not used, we are
19963 - --> running under Tru64.
19965 -# include <machine/builtins.h>
19966 -# include <c_asm.h>
19967 -# define GC_test_and_set(addr) __ATOMIC_EXCH_LONG(addr, 1)
19968 +# define GC_test_and_set(addr) __cxx_test_and_set_atomic(addr, 1)
19969 # define GC_TEST_AND_SET_DEFINED
19970 -# define GC_clear(addr) { asm("mb"); *(volatile unsigned *)addr = 0; }
19971 -# define GC_CLEAR_DEFINED
19973 # if defined(MSWIN32)
19974 # define GC_test_and_set(addr) InterlockedExchange((LPLONG)addr,1)
19975 @@ -250,11 +238,7 @@
19976 # define GC_TEST_AND_SET_DEFINED
19977 # elif __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \
19978 || !defined(_COMPILER_VERSION) || _COMPILER_VERSION < 700
19980 -# define GC_test_and_set(addr) _test_and_set(addr,1)
19982 -# define GC_test_and_set(addr) test_and_set(addr,1)
19984 +# define GC_test_and_set(addr) test_and_set(addr, 1)
19986 # define GC_test_and_set(addr) __test_and_set(addr,1)
19987 # define GC_clear(addr) __lock_release(addr);
19988 @@ -295,7 +279,7 @@
19991 # if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
19992 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
19993 + && !defined(GC_IRIX_THREADS)
19994 # define NO_THREAD (pthread_t)(-1)
19995 # include <pthread.h>
19996 # if defined(PARALLEL_MARK)
19997 @@ -326,12 +310,12 @@
20000 __asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
20001 - : "+m"(*(addr)), "=r"(result)
20002 - : "r" (new_val), "a"(old) : "memory");
20003 + : "=m"(*(addr)), "=r"(result)
20004 + : "r" (new_val), "0"(*(addr)), "a"(old) : "memory");
20005 return (GC_bool) result;
20007 # endif /* !GENERIC_COMPARE_AND_SWAP */
20008 - inline static void GC_memory_barrier()
20009 + inline static void GC_memory_write_barrier()
20011 /* We believe the processor ensures at least processor */
20012 /* consistent ordering. Thus a compiler barrier */
20013 @@ -339,37 +323,6 @@
20014 __asm__ __volatile__("" : : : "memory");
20018 -# if defined(POWERPC)
20019 -# if !defined(GENERIC_COMPARE_AND_SWAP)
20020 - /* Returns TRUE if the comparison succeeded. */
20021 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20022 - GC_word old, GC_word new_val)
20024 - int result, dummy;
20025 - __asm__ __volatile__(
20026 - "1:\tlwarx %0,0,%5\n"
20029 - "\tstwcx. %3,0,%2\n"
20036 - : "=&r" (dummy), "=r" (result), "=p" (addr)
20037 - : "r" (new_val), "r" (old), "2"(addr)
20038 - : "cr0","memory");
20039 - return (GC_bool) result;
20041 -# endif /* !GENERIC_COMPARE_AND_SWAP */
20042 - inline static void GC_memory_barrier()
20044 - __asm__ __volatile__("sync" : : : "memory");
20046 -# endif /* POWERPC */
20049 # if !defined(GENERIC_COMPARE_AND_SWAP)
20050 inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20051 @@ -384,71 +337,31 @@
20052 # endif /* !GENERIC_COMPARE_AND_SWAP */
20054 /* Shouldn't be needed; we use volatile stores instead. */
20055 - inline static void GC_memory_barrier()
20056 + inline static void GC_memory_write_barrier()
20058 __asm__ __volatile__("mf" : : : "memory");
20062 -# if defined(ALPHA)
20063 -# if !defined(GENERIC_COMPARE_AND_SWAP)
20064 -# if defined(__GNUC__)
20065 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20066 - GC_word old, GC_word new_val)
20068 - unsigned long was_equal;
20069 - unsigned long temp;
20071 - __asm__ __volatile__(
20072 - "1: ldq_l %0,%1\n"
20073 - " cmpeq %0,%4,%2\n"
20080 - :"=&r" (temp), "=m" (*addr), "=&r" (was_equal)
20081 - : "r" (new_val), "Ir" (old)
20083 - return was_equal;
20085 -# else /* !__GNUC__ */
20086 - inline static GC_bool GC_compare_and_exchange(volatile GC_word *addr,
20087 - GC_word old, GC_word new_val)
20089 - return __CMP_STORE_QUAD(addr, old, new_val, addr);
20091 -# endif /* !__GNUC__ */
20092 -# endif /* !GENERIC_COMPARE_AND_SWAP */
20094 - inline static void GC_memory_barrier()
20096 - __asm__ __volatile__("mb" : : : "memory");
20099 -# define GC_memory_barrier() asm("mb")
20100 -# endif /* !__GNUC__ */
20101 -# endif /* ALPHA */
20103 # if !defined(GENERIC_COMPARE_AND_SWAP)
20104 - inline static GC_bool GC_compare_and_exchange(volatile C_word *addr,
20105 - GC_word old, GC_word new_val)
20108 - __asm__ __volatile__ (
20109 -# ifndef __s390x__
20110 - " cs %1,%2,0(%3)\n"
20112 - " csg %1,%2,0(%3)\n"
20116 - : "=&d" (retval), "+d" (old)
20117 - : "d" (new_val), "a" (addr)
20118 - : "cc", "memory");
20119 - return retval == 0;
20121 + inline static GC_bool GC_compare_and_exchange(volatile C_word *addr,
20122 + GC_word old, GC_word new_val)
20125 + __asm__ __volatile__ (
20126 +# ifndef __s390x__
20127 + " cs %1,%2,0(%3)\n"
20129 + " csg %1,%2,0(%3)\n"
20133 + : "=&d" (retval), "+d" (old)
20134 + : "d" (new_val), "a" (addr)
20135 + : "cc", "memory");
20136 + return retval == 0;
20140 # if !defined(GENERIC_COMPARE_AND_SWAP)
20141 @@ -480,7 +393,7 @@
20142 extern void GC_lock(void);
20143 /* Allocation lock holder. Only set if acquired by client through */
20144 /* GC_call_with_alloc_lock. */
20145 -# ifdef GC_ASSERTIONS
20146 +# ifdef GC_ASSERTIONS
20148 { if (GC_test_and_set(&GC_allocate_lock)) GC_lock(); \
20149 SET_LOCK_HOLDER(); }
20150 @@ -521,12 +434,8 @@
20151 { GC_ASSERT(I_HOLD_LOCK()); UNSET_LOCK_HOLDER(); \
20152 pthread_mutex_unlock(&GC_allocate_ml); }
20153 # else /* !GC_ASSERTIONS */
20154 -# if defined(NO_PTHREAD_TRYLOCK)
20155 -# define LOCK() GC_lock();
20156 -# else /* !defined(NO_PTHREAD_TRYLOCK) */
20159 { if (0 != pthread_mutex_trylock(&GC_allocate_ml)) GC_lock(); }
20161 # define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
20162 # endif /* !GC_ASSERTIONS */
20163 # endif /* USE_PTHREAD_LOCKS */
20164 @@ -569,18 +478,11 @@
20166 # define EXIT_GC() GC_collecting = 0;
20167 # endif /* GC_IRIX_THREADS */
20168 -# if defined(GC_WIN32_THREADS)
20169 -# if defined(GC_PTHREADS)
20170 -# include <pthread.h>
20171 - extern pthread_mutex_t GC_allocate_ml;
20172 -# define LOCK() pthread_mutex_lock(&GC_allocate_ml)
20173 -# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml)
20175 -# include <windows.h>
20176 - GC_API CRITICAL_SECTION GC_allocate_ml;
20177 -# define LOCK() EnterCriticalSection(&GC_allocate_ml);
20178 -# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
20180 +# ifdef GC_WIN32_THREADS
20181 +# include <windows.h>
20182 + GC_API CRITICAL_SECTION GC_allocate_ml;
20183 +# define LOCK() EnterCriticalSection(&GC_allocate_ml);
20184 +# define UNLOCK() LeaveCriticalSection(&GC_allocate_ml);
20186 # ifndef SET_LOCK_HOLDER
20187 # define SET_LOCK_HOLDER()
20188 diff -Nur ../boehm-gc/include/private/gc_pmark.h boehm-gc/include/private/gc_pmark.h
20189 --- ../boehm-gc/include/private/gc_pmark.h Mon May 26 13:28:24 2003
20190 +++ boehm-gc/include/private/gc_pmark.h Mon Feb 11 20:37:57 2002
20191 @@ -137,7 +137,7 @@
20193 # ifdef PRINT_BLACK_LIST
20194 ptr_t GC_find_start(ptr_t current, hdr *hhdr, hdr **new_hdr_p,
20198 ptr_t GC_find_start(ptr_t current, hdr *hhdr, hdr **new_hdr_p);
20200 @@ -145,7 +145,7 @@
20201 ptr_t GC_find_start();
20204 -mse * GC_signal_mark_stack_overflow GC_PROTO((mse *msp));
20205 +mse *GC_signal_mark_stack_overflow(mse *msp);
20207 # ifdef GATHERSTATS
20208 # define ADD_TO_ATOMIC(sz) GC_atomic_in_use += (sz)
20209 @@ -174,6 +174,14 @@
20213 +#ifdef PRINT_BLACK_LIST
20214 +# define GC_FIND_START(current, hhdr, new_hdr_p, source) \
20215 + GC_find_start(current, hhdr, new_hdr_p, source)
20217 +# define GC_FIND_START(current, hhdr, new_hdr_p, source) \
20218 + GC_find_start(current, hhdr, new_hdr_p)
20221 /* Push the contents of current onto the mark stack if it is a valid */
20222 /* ptr to a currently unmarked object. Mark it. */
20223 /* If we assumed a standard-conforming compiler, we could probably */
20224 @@ -187,7 +195,8 @@
20225 GET_HDR(my_current, my_hhdr); \
20226 if (IS_FORWARDING_ADDR_OR_NIL(my_hhdr)) { \
20227 hdr * new_hdr = GC_invalid_header; \
20228 - my_current = GC_find_start(my_current, my_hhdr, &new_hdr); \
20229 + my_current = GC_FIND_START(my_current, my_hhdr, \
20230 + &new_hdr, (word)source); \
20231 my_hhdr = new_hdr; \
20233 PUSH_CONTENTS_HDR(my_current, mark_stack_top, mark_stack_limit, \
20234 @@ -281,39 +290,21 @@
20237 * Push a single value onto mark stack. Mark from the object pointed to by p.
20238 - * Invoke FIXUP_POINTER(p) before any further processing.
20239 * P is considered valid even if it is an interior pointer.
20240 * Previously marked objects are not pushed. Hence we make progress even
20241 * if the mark stack overflows.
20244 -# if NEED_FIXUP_POINTER
20245 - /* Try both the raw version and the fixed up one. */
20246 -# define GC_PUSH_ONE_STACK(p, source) \
20247 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20248 - && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20249 - PUSH_ONE_CHECKED_STACK(p, source); \
20251 - FIXUP_POINTER(p); \
20252 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20253 - && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20254 - PUSH_ONE_CHECKED_STACK(p, source); \
20256 -# else /* !NEED_FIXUP_POINTER */
20257 -# define GC_PUSH_ONE_STACK(p, source) \
20258 - if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20259 +# define GC_PUSH_ONE_STACK(p, source) \
20260 + if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20261 && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20262 PUSH_ONE_CHECKED_STACK(p, source); \
20269 * As above, but interior pointer recognition as for
20270 * normal for heap pointers.
20272 # define GC_PUSH_ONE_HEAP(p,source) \
20273 - FIXUP_POINTER(p); \
20274 if ((ptr_t)(p) >= (ptr_t)GC_least_plausible_heap_addr \
20275 && (ptr_t)(p) < (ptr_t)GC_greatest_plausible_heap_addr) { \
20276 GC_mark_stack_top = GC_mark_and_push( \
20277 diff -Nur ../boehm-gc/include/private/gc_priv.h boehm-gc/include/private/gc_priv.h
20278 --- ../boehm-gc/include/private/gc_priv.h Mon May 26 13:28:24 2003
20279 +++ boehm-gc/include/private/gc_priv.h Tue Mar 4 09:56:49 2003
20285 -# include <sys/types.h>
20286 -# include <sys/time.h>
20287 -# include <sys/resource.h>
20291 # include <sys/types.h>
20292 # include <sys/time.h>
20293 @@ -212,10 +206,11 @@
20296 #if defined(GC_GCJ_SUPPORT) && ALIGNMENT < 8 && !defined(ALIGN_DOUBLE)
20297 - /* GCJ's Hashtable synchronization code requires 64-bit alignment. */
20298 + /* GCJ's Hashtable synchronization code requires 64-bit alignment. */
20299 # define ALIGN_DOUBLE
20303 /* ALIGN_DOUBLE requires MERGE_SIZES at present. */
20304 # if defined(ALIGN_DOUBLE) && !defined(MERGE_SIZES)
20305 # define MERGE_SIZES
20306 @@ -352,8 +347,7 @@
20307 # include <string.h>
20308 # define BCOPY_EXISTS
20310 -# if defined(DARWIN)
20311 -# include <string.h>
20312 +# if defined(MACOSX)
20313 # define BCOPY_EXISTS
20316 @@ -366,6 +360,68 @@
20317 # define BZERO(x,n) bzero((char *)(x),(int)(n))
20320 +/* HBLKSIZE aligned allocation. 0 is taken to mean failure */
20321 +/* space is assumed to be cleared. */
20322 +/* In the case os USE_MMAP, the argument must also be a */
20323 +/* physical page size. */
20324 +/* GET_MEM is currently not assumed to retrieve 0 filled space, */
20325 +/* though we should perhaps take advantage of the case in which */
20327 +struct hblk; /* See below. */
20329 + char * real_malloc();
20330 +# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
20331 + + GC_page_size-1)
20334 + void * os2_alloc(size_t bytes);
20335 +# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
20336 + + GC_page_size) \
20337 + + GC_page_size-1)
20339 +# if defined(NEXT) || defined(MACOSX) || defined(DOS4GW) || \
20340 + (defined(AMIGA) && !defined(GC_AMIGA_FASTALLOC)) || \
20341 + (defined(SUNOS5) && !defined(USE_MMAP))
20342 +# define GET_MEM(bytes) HBLKPTR((size_t) \
20343 + calloc(1, (size_t)bytes + GC_page_size) \
20344 + + GC_page_size-1)
20347 + extern ptr_t GC_win32_get_mem();
20348 +# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
20351 +# if defined(USE_TEMPORARY_MEMORY)
20352 + extern Ptr GC_MacTemporaryNewPtr(size_t size,
20353 + Boolean clearMemory);
20354 +# define GET_MEM(bytes) HBLKPTR( \
20355 + GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
20356 + + GC_page_size-1)
20358 +# define GET_MEM(bytes) HBLKPTR( \
20359 + NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
20363 + extern ptr_t GC_wince_get_mem();
20364 +# define GET_MEM(bytes) (struct hblk *)GC_wince_get_mem(bytes)
20366 +# if defined(AMIGA) && defined(GC_AMIGA_FASTALLOC)
20367 + extern void *GC_amiga_get_mem(size_t size);
20368 + define GET_MEM(bytes) HBLKPTR((size_t) \
20369 + GC_amiga_get_mem((size_t)bytes + GC_page_size) \
20370 + + GC_page_size-1)
20372 + extern ptr_t GC_unix_get_mem();
20373 +# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
20382 /* Delay any interrupts or signals that may abort this thread. Data */
20383 /* structures are in a consistent state outside this pair of calls. */
20384 /* ANSI C allows both to be empty (though the standard isn't very */
20385 @@ -430,7 +486,7 @@
20386 # ifdef SMALL_CONFIG
20387 # define ABORT(msg) abort();
20389 - GC_API void GC_abort GC_PROTO((GC_CONST char * msg));
20390 + GC_API void GC_abort();
20391 # define ABORT(msg) GC_abort(msg);
20394 @@ -590,10 +646,9 @@
20397 # ifdef LARGE_CONFIG
20398 -# define LOG_PHT_ENTRIES 20 /* Collisions likely at 1M blocks, */
20399 - /* which is >= 4GB. Each table takes */
20400 - /* 128KB, some of which may never be */
20402 +# define LOG_PHT_ENTRIES 19 /* Collisions likely at 512K blocks, */
20403 + /* which is >= 2GB. Each table takes */
20406 # ifdef SMALL_CONFIG
20407 # define LOG_PHT_ENTRIES 14 /* Collisions are likely if heap grows */
20408 @@ -601,7 +656,7 @@
20409 /* Each hash table occupies 2K bytes. */
20410 # else /* default "medium" configuration */
20411 # define LOG_PHT_ENTRIES 16 /* Collisions are likely if heap grows */
20412 - /* to more than 64K hblks >= 256MB. */
20413 + /* to more than 16K hblks >= 256MB. */
20414 /* Each hash table occupies 8K bytes. */
20417 @@ -842,10 +897,6 @@
20419 /* Number of explicitly deallocated words of memory */
20420 /* since last collection. */
20421 - word _finalizer_mem_freed;
20422 - /* Words of memory explicitly deallocated while */
20423 - /* finalizers were running. Used to approximate mem. */
20424 - /* explicitly deallocated by finalizers. */
20425 ptr_t _scratch_end_ptr;
20426 ptr_t _scratch_last_end_ptr;
20427 /* Used by headers.c, and can easily appear to point to */
20428 @@ -906,7 +957,7 @@
20429 /* OFFSET_TOO_BIG if the value j would be too */
20430 /* large to fit in the entry. (Note that the */
20431 /* size of these entries matters, both for */
20432 - /* space consumption and for cache utilization.) */
20433 + /* space consumption and for cache utilization. */
20434 # define OFFSET_TOO_BIG 0xfe
20435 # define OBJ_INVALID 0xff
20436 # define MAP_ENTRY(map, bytes) (map)[bytes]
20437 @@ -1016,7 +1067,6 @@
20438 # define GC_words_finalized GC_arrays._words_finalized
20439 # define GC_non_gc_bytes_at_gc GC_arrays._non_gc_bytes_at_gc
20440 # define GC_mem_freed GC_arrays._mem_freed
20441 -# define GC_finalizer_mem_freed GC_arrays._finalizer_mem_freed
20442 # define GC_scratch_end_ptr GC_arrays._scratch_end_ptr
20443 # define GC_scratch_last_end_ptr GC_arrays._scratch_last_end_ptr
20444 # define GC_mark_procs GC_arrays._mark_procs
20445 @@ -1151,19 +1201,17 @@
20446 /* header structure associated with */
20449 +extern GC_bool GC_is_initialized; /* GC_init() has been run. */
20451 extern GC_bool GC_objects_are_marked; /* There are marked objects in */
20454 #ifndef SMALL_CONFIG
20455 extern GC_bool GC_incremental;
20456 /* Using incremental/generational collection. */
20457 -# define TRUE_INCREMENTAL \
20458 - (GC_incremental && GC_time_limit != GC_TIME_UNLIMITED)
20459 - /* True incremental, not just generational, mode */
20461 # define GC_incremental FALSE
20462 /* Hopefully allow optimizer to remove some code. */
20463 -# define TRUE_INCREMENTAL FALSE
20466 extern GC_bool GC_dirty_maintained;
20467 @@ -1181,10 +1229,6 @@
20468 extern long GC_large_alloc_warn_suppressed;
20469 /* Number of warnings suppressed so far. */
20472 - extern GC_bool GC_world_stopped;
20477 # define abs(x) ((x) < 0? (-(x)) : (x))
20478 @@ -1408,7 +1452,6 @@
20479 /* Set all mark bits associated with */
20481 void GC_add_roots_inner GC_PROTO((char * b, char * e, GC_bool tmp));
20482 -void GC_remove_roots_inner GC_PROTO((char * b, char * e));
20483 GC_bool GC_is_static_root GC_PROTO((ptr_t p));
20484 /* Is the address p in one of the registered static */
20485 /* root sections? */
20486 @@ -1421,9 +1464,9 @@
20487 /* Add dynamic library data sections to the root set. */
20489 GC_bool GC_register_main_static_data GC_PROTO((void));
20490 - /* We need to register the main data segment. Returns */
20491 - /* TRUE unless this is done implicitly as part of */
20492 - /* dynamic library registration. */
20493 + /* We need to register the main data segment. Returns */
20494 + /* TRUE unless this is done implicitly as part of */
20495 + /* dynamic library registration. */
20497 /* Machine dependent startup routines */
20498 ptr_t GC_get_stack_base GC_PROTO((void)); /* Cold end of stack */
20499 @@ -1581,8 +1624,6 @@
20500 /* until the blocks are available or */
20501 /* until it fails by returning FALSE. */
20503 -extern GC_bool GC_is_initialized; /* GC_init() has been run. */
20505 #if defined(MSWIN32) || defined(MSWINCE)
20506 void GC_deinit GC_PROTO((void));
20507 /* Free any resources allocated by */
20508 @@ -1624,8 +1665,6 @@
20509 /* Make the indicated */
20510 /* free list nonempty, and return its */
20513 -void GC_free_inner(GC_PTR p);
20515 void GC_init_headers GC_PROTO((void));
20516 struct hblkhdr * GC_install_header GC_PROTO((struct hblk *h));
20517 @@ -1655,12 +1694,6 @@
20518 /* Call *GC_finalizer_notifier if there are */
20519 /* finalizers to be run, and we haven't called */
20520 /* this procedure yet this GC cycle. */
20522 -GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
20523 -GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
20524 - /* Auxiliary fns to make finalization work */
20525 - /* correctly with displaced pointers introduced */
20526 - /* by the debugging allocators. */
20528 void GC_add_to_heap GC_PROTO((struct hblk *p, word bytes));
20529 /* Add a HBLKSIZE aligned chunk to the heap. */
20530 @@ -1671,36 +1704,16 @@
20531 /* description of the object to stderr. */
20532 extern void (*GC_check_heap) GC_PROTO((void));
20533 /* Check that all objects in the heap with */
20534 - /* debugging info are intact. */
20535 - /* Add any that are not to GC_smashed list. */
20536 -extern void (*GC_print_all_smashed) GC_PROTO((void));
20537 - /* Print GC_smashed if it's not empty. */
20538 - /* Clear GC_smashed list. */
20539 -extern void GC_print_all_errors GC_PROTO((void));
20540 - /* Print smashed and leaked objects, if any. */
20541 - /* Clear the lists of such objects. */
20542 + /* debugging info are intact. Print */
20543 + /* descriptions of any that are not. */
20544 extern void (*GC_print_heap_obj) GC_PROTO((ptr_t p));
20545 /* If possible print s followed by a more */
20546 /* detailed description of the object */
20547 /* referred to by p. */
20548 -#if defined(LINUX) && defined(__ELF__) && !defined(SMALL_CONFIG)
20549 - void GC_print_address_map GC_PROTO((void));
20550 - /* Print an address map of the process. */
20553 -extern GC_bool GC_have_errors; /* We saw a smashed or leaked object. */
20554 - /* Call error printing routine */
20555 - /* occasionally. */
20556 extern GC_bool GC_print_stats; /* Produce at least some logging output */
20557 /* Set from environment variable. */
20559 -#ifndef NO_DEBUGGING
20560 - extern GC_bool GC_dump_regularly; /* Generate regular debugging dumps. */
20561 -# define COND_DUMP if (GC_dump_regularly) GC_dump();
20563 -# define COND_DUMP
20566 /* Macros used for collector internal allocation. */
20567 /* These assume the collector lock is held. */
20568 #ifdef DBG_HDRS_ALL
20569 @@ -1772,7 +1785,6 @@
20570 void GC_print_hblkfreelist GC_PROTO((void));
20571 void GC_print_heap_sects GC_PROTO((void));
20572 void GC_print_static_roots GC_PROTO((void));
20573 -void GC_print_finalization_stats GC_PROTO((void));
20574 void GC_dump GC_PROTO((void));
20576 #ifdef KEEP_BACK_PTRS
20577 @@ -1854,10 +1866,6 @@
20578 # define GC_ASSERT(expr)
20581 -/* Check a compile time assertion at compile time. The error */
20582 -/* message for failure is a bit baroque, but ... */
20583 -# define GC_STATIC_ASSERT(expr) sizeof(char[(expr)? 1 : -1])
20585 # if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
20586 /* We need additional synchronization facilities from the thread */
20587 /* support. We believe these are less performance critical */
20588 @@ -1903,7 +1911,7 @@
20589 /* in Linux glibc, but it's not exported.) Thus we continue to use */
20590 /* the same hard-coded signals we've always used. */
20591 # if !defined(SIG_SUSPEND)
20592 -# if defined(GC_LINUX_THREADS) || defined(GC_DGUX386_THREADS)
20593 +# if defined(GC_LINUX_THREADS)
20594 # if defined(SPARC) && !defined(SIGPWR)
20595 /* SPARC/Linux doesn't properly define SIGPWR in <signal.h>.
20596 * It is aliased to SIGLOST in asm/signal.h, though. */
20597 diff -Nur ../boehm-gc/include/private/gcconfig.h boehm-gc/include/private/gcconfig.h
20598 --- ../boehm-gc/include/private/gcconfig.h Mon May 26 13:28:24 2003
20599 +++ boehm-gc/include/private/gcconfig.h Wed Apr 9 17:08:01 2003
20600 @@ -13,25 +13,11 @@
20601 * provided the above notices are retained, and a notice that the code was
20602 * modified is included with the above copyright notice.
20606 - * This header is private to the gc. It is almost always included from
20607 - * gc_priv.h. However it is possible to include it by itself if just the
20608 - * configuration macros are needed. In that
20609 - * case, a few declarations relying on types declared in gc_priv.h will be
20615 # define GCCONFIG_H
20617 -# ifndef GC_PRIVATE_H
20618 - /* Fake ptr_t declaration, just to avoid compilation errors. */
20619 - /* This avoids many instances if "ifndef GC_PRIVATE_H" below. */
20620 - typedef struct GC_undefined_struct * ptr_t;
20623 /* Machine dependent parameters. Some tuning parameters can be found */
20624 /* near the top of gc_private.h. */
20629 /* Determine the machine type: */
20630 -# if defined(__XSCALE__)
20631 +# if defined(__arm__) || defined(__thumb__)
20633 # if !defined(LINUX)
20636 # if defined(nec_ews) || defined(_nec_ews)
20639 -# if !defined(LINUX) && !defined(EWS4800)
20640 -# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
20641 +# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD)
20642 +# if defined(ultrix) || defined(__ultrix)
20645 # if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) \
20646 @@ -121,16 +107,6 @@
20649 # endif /* !LINUX */
20650 -# if defined(__NetBSD__) && defined(__MIPSEL__)
20653 -# define mach_type_known
20655 -# if defined(DGUX) && (defined(i386) || defined(__i386__))
20657 -# ifndef _USING_DGUX
20658 -# define _USING_DGUX
20660 # define mach_type_known
20662 # if defined(sequent) && (defined(i386) || defined(__i386__))
20663 @@ -222,10 +198,6 @@
20665 # define mach_type_known
20667 -# if defined(LINUX) && defined(__arm__)
20669 -# define mach_type_known
20671 # if defined(LINUX) && (defined(powerpc) || defined(__powerpc__))
20673 # define mach_type_known
20674 @@ -265,19 +237,19 @@
20676 # define mach_type_known
20678 -# if defined(__MWERKS__) && defined(__powerc) && !defined(__MACH__)
20679 +# if defined(__MWERKS__) && defined(__powerc)
20682 # define mach_type_known
20684 # if defined(macosx) || \
20685 defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)
20689 # define mach_type_known
20691 # if defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
20695 --> Not really supported, but at least we recognize it.
20697 @@ -319,7 +291,7 @@
20699 # define mach_type_known
20701 -# if defined(DGUX) && defined(m88k)
20702 +# if defined(DGUX)
20705 # define mach_type_known
20706 @@ -447,12 +419,14 @@
20707 /* (CX_UX and DGUX) */
20708 /* S370 ==> 370-like machine */
20709 /* running Amdahl UTS4 */
20710 - /* S390 ==> 390-like machine */
20711 - /* running LINUX */
20712 + /* S390 ==> 390-like machine */
20713 + /* running LINUX */
20714 /* ARM32 ==> Intel StrongARM */
20715 /* IA64 ==> Intel IPF */
20716 /* (e.g. Itanium) */
20717 /* (LINUX and HPUX) */
20718 + /* IA64_32 ==> IA64 w/32 bit ABI */
20720 /* SH ==> Hitachi SuperH */
20721 /* (LINUX & MSWINCE) */
20722 /* X86_64 ==> AMD x86-64 */
20723 @@ -476,17 +450,15 @@
20724 * defining it to be 1 will always work, but perform poorly.
20726 * DATASTART is the beginning of the data segment.
20727 - * On some platforms SEARCH_FOR_DATA_START is defined.
20728 - * SEARCH_FOR_DATASTART will cause GC_data_start to
20729 - * be set to an address determined by accessing data backwards from _end
20730 - * until an unmapped page is found. DATASTART will be defined to be
20732 - * On UNIX-like systems, the collector will scan the area between DATASTART
20733 + * On UNIX systems, the collector will scan the area between DATASTART
20734 * and DATAEND for root pointers.
20736 * DATAEND, if not `end' where `end' is defined as ``extern int end[];''.
20737 * RTH suggests gaining access to linker script synth'd values with
20738 * this idiom instead of `&end' where `end' is defined as ``extern int end;'' .
20739 + * Otherwise, ``GCC will assume these are in .sdata/.sbss'' and it will, e.g.,
20740 + * cause failures on alpha*-*-* with ``-msmall-data or -fpic'' or mips-*-*
20741 + * without any special options.
20743 * ALIGN_DOUBLE of GC_malloc should return blocks aligned to twice
20744 * the pointer size.
20745 @@ -498,13 +470,8 @@
20746 * 1) define STACK_GROWS_UP if the stack grows toward higher addresses, and
20747 * 2) define exactly one of
20748 * STACKBOTTOM (should be defined to be an expression)
20749 - * LINUX_STACKBOTTOM
20752 - * If STACKBOTTOM is defined, then it's value will be used directly as the
20753 - * stack base. If LINUX_STACKBOTTOM is defined, then it will be determined
20754 - * with a method appropriate for most Linux systems. Currently we look
20755 - * first for __libc_stack_end, and if that fails read it from /proc.
20756 * If either of the last two macros are defined, then STACKBOTTOM is computed
20757 * during collector startup using one of the following two heuristics:
20758 * HEURISTIC1: Take an address inside GC_init's frame, and round it up to
20759 @@ -569,9 +536,6 @@
20760 * An architecture may also define CLEAR_DOUBLE(x) to be a fast way to
20761 * clear the two words at GC_malloc-aligned address x. By default,
20762 * word stores of 0 are used instead.
20764 - * HEAP_START may be defined as the initial address hint for mmap-based
20768 /* If we are using a recent version of gcc, we can use __builtin_unwind_init()
20769 @@ -607,7 +571,7 @@
20770 # define DYNAMIC_LOADING
20771 # include <features.h>
20772 # if defined(__GLIBC__)&& __GLIBC__>=2
20773 -# define SEARCH_FOR_DATA_START
20774 +# define LINUX_DATA_START
20775 # else /* !GLIBC2 */
20776 extern char **__environ;
20777 # define DATASTART ((ptr_t)(&__environ))
20778 @@ -705,42 +669,23 @@
20779 # define ALIGNMENT 4 /* Guess. Can someone verify? */
20780 /* This was 2, but that didn't sound right. */
20781 # define OS_TYPE "LINUX"
20782 - /* HEURISTIC1 has been reliably reported to fail for a 32-bit */
20783 - /* executable on a 64 bit kernel. */
20784 -# define LINUX_STACKBOTTOM
20785 # define DYNAMIC_LOADING
20786 -# define SEARCH_FOR_DATA_START
20787 +# define LINUX_STACKBOTTOM
20788 + /* Stack usually starts at 0x80000000 */
20789 +# define LINUX_DATA_START
20791 # define DATAEND (_end)
20795 /* There are reasons to suspect this may not be reliable. */
20796 # define ALIGNMENT 4
20797 -# define OS_TYPE "DARWIN"
20798 -# define DYNAMIC_LOADING
20799 - /* XXX: see get_end(3), get_etext() and get_end() should not be used.
20800 - These aren't used when dyld support is enabled (it is by default) */
20801 +# define OS_TYPE "MACOSX"
20802 # define DATASTART ((ptr_t) get_etext())
20803 -# define DATAEND ((ptr_t) get_end())
20804 # define STACKBOTTOM ((ptr_t) 0xc0000000)
20806 -# define USE_MMAP_ANON
20807 -# define USE_ASM_PUSH_REGS
20808 - /* This is potentially buggy. It needs more testing. See the comments in
20810 -# define MPROTECT_VDB
20811 +# define DATAEND /* not needed */
20812 +# undef MPROTECT_VDB
20813 # include <unistd.h>
20814 # define GETPAGESIZE() getpagesize()
20815 -# if defined(USE_PPC_PREFETCH) && defined(__GNUC__)
20816 - /* The performance impact of prefetches is untested */
20817 -# define PREFETCH(x) \
20818 - __asm__ __volatile__ ("dcbt 0,%0" : : "r" ((const void *) (x)))
20819 -# define PREFETCH_FOR_WRITE(x) \
20820 - __asm__ __volatile__ ("dcbtst 0,%0" : : "r" ((const void *) (x)))
20822 - /* There seems to be some issues with trylock hanging on darwin. This
20823 - should be looked into some more */
20824 -# define NO_PTHREAD_TRYLOCK
20827 # define ALIGNMENT 4
20828 @@ -801,8 +746,8 @@
20829 # define OS_TYPE "SUNOS5"
20830 extern int _etext[];
20832 - extern ptr_t GC_SysVGetDataStart();
20833 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
20834 + extern char * GC_SysVGetDataStart();
20835 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
20836 # define DATAEND (_end)
20837 # if !defined(USE_MMAP) && defined(REDIRECT_MALLOC)
20839 @@ -856,9 +801,9 @@
20842 # define OS_TYPE "DRSNX"
20843 - extern ptr_t GC_SysVGetDataStart();
20844 + extern char * GC_SysVGetDataStart();
20845 extern int etext[];
20846 -# define DATASTART GC_SysVGetDataStart(0x10000, etext)
20847 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, etext)
20848 # define MPROTECT_VDB
20849 # define STACKBOTTOM ((ptr_t) 0xdfff0000)
20850 # define DYNAMIC_LOADING
20851 @@ -874,14 +819,13 @@
20852 extern int _etext[];
20853 # define DATAEND (_end)
20855 - extern ptr_t GC_SysVGetDataStart();
20857 -# define DATASTART GC_SysVGetDataStart(0x100000, _etext)
20858 /* libc_stack_end is not set reliably for sparc64 */
20859 -# define STACKBOTTOM ((ptr_t) 0x80000000000ULL)
20860 +# define STACKBOTTOM ((ptr_t) 0x80000000000)
20861 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x100000, _etext)
20863 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
20864 -# define LINUX_STACKBOTTOM
20865 +# define LINUX_STACKBOTTOM
20866 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
20870 @@ -932,7 +876,7 @@
20872 # define OS_TYPE "SUNOS5"
20873 extern int _etext[], _end[];
20874 - extern ptr_t GC_SysVGetDataStart();
20875 + extern char * GC_SysVGetDataStart();
20876 # define DATASTART GC_SysVGetDataStart(0x1000, _etext)
20877 # define DATAEND (_end)
20878 /* # define STACKBOTTOM ((ptr_t)(_start)) worked through 2.7, */
20879 @@ -977,28 +921,6 @@
20880 # define DYNAMIC_LOADING
20881 # define ELF_CLASS ELFCLASS32
20884 -# define OS_TYPE "DGUX"
20885 - extern int _etext, _end;
20886 - extern ptr_t GC_SysVGetDataStart();
20887 -# define DATASTART GC_SysVGetDataStart(0x1000, &_etext)
20888 -# define DATAEND (&_end)
20889 -# define STACK_GROWS_DOWN
20890 -# define HEURISTIC2
20891 -# include <unistd.h>
20892 -# define GETPAGESIZE() sysconf(_SC_PAGESIZE)
20893 -# define DYNAMIC_LOADING
20896 -# endif /* USE_MMAP */
20897 -# define MAP_FAILED (void *) -1
20899 -# define HEAP_START (ptr_t)0x40000000
20900 -# else /* USE_MMAP */
20901 -# define HEAP_START DATAEND
20902 -# endif /* USE_MMAP */
20903 -# endif /* DGUX */
20907 /* The Intel compiler doesn't like inline assembly */
20908 @@ -1022,9 +944,6 @@
20909 /* possibly because Linux threads is itself a malloc client */
20910 /* and can't deal with the signals. */
20912 -# define HEAP_START 0x1000
20913 - /* This encourages mmap to give us low addresses, */
20914 - /* thus allowing the heap to grow to ~3GB */
20916 # define DYNAMIC_LOADING
20917 # ifdef UNDEFINED /* includes ro data */
20918 @@ -1033,7 +952,7 @@
20920 # include <features.h>
20921 # if defined(__GLIBC__) && __GLIBC__ >= 2
20922 -# define SEARCH_FOR_DATA_START
20923 +# define LINUX_DATA_START
20925 extern char **__environ;
20926 # define DATASTART ((ptr_t)(&__environ))
20927 @@ -1142,9 +1061,16 @@
20929 # define DYNAMIC_LOADING
20931 +/* Handle unmapped hole i386*-*-freebsd[45]* may put between etext and edata. */
20932 extern char etext[];
20933 - extern char * GC_FreeBSDGetDataStart();
20934 -# define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
20935 + extern char edata[];
20936 + extern char end[];
20937 +# define NEED_FIND_LIMIT
20938 +# define DATASTART ((ptr_t)(etext))
20939 +# define MIN(x,y) ((x) < (y) ? (x) : (y))
20940 +# define DATAEND (MIN (GC_find_limit (DATASTART, TRUE), DATASTART2))
20941 +# define DATASTART2 ((ptr_t)(edata))
20942 +# define DATAEND2 ((ptr_t)(end))
20945 # define OS_TYPE "NETBSD"
20946 @@ -1223,11 +1149,7 @@
20947 # define DATASTART ((ptr_t)(__data_start))
20948 # define ALIGNMENT 4
20949 # define USE_GENERIC_PUSH_REGS
20950 -# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2
20951 -# define LINUX_STACKBOTTOM
20953 -# define STACKBOTTOM 0x80000000
20955 +# define LINUX_STACKBOTTOM
20956 # endif /* Linux */
20958 # define HEURISTIC2
20959 @@ -1300,21 +1222,15 @@
20960 # define DATAEND /* not needed */
20962 # if defined(NETBSD)
20963 - /* This also checked for __MIPSEL__ . Why? NETBSD recognition */
20964 - /* should be handled at the top of the file. */
20965 -# define ALIGNMENT 4
20966 # define OS_TYPE "NETBSD"
20967 +# define ALIGNMENT 4
20968 # define HEURISTIC2
20969 # define USE_GENERIC_PUSH_REGS
20971 - extern int etext[];
20972 -# define DATASTART GC_data_start
20973 -# define NEED_FIND_LIMIT
20974 -# define DYNAMIC_LOADING
20976 -# define DATASTART ((ptr_t) 0x10000000)
20977 -# define STACKBOTTOM ((ptr_t) 0x7ffff000)
20978 -# endif /* _ELF_ */
20979 + extern int _fdata[];
20980 +# define DATASTART ((ptr_t)(_fdata))
20981 + extern int _end[];
20982 +# define DATAEND ((ptr_t)(_end))
20983 +# define DYNAMIC_LOADING
20987 @@ -1323,16 +1239,15 @@
20989 # define ALIGNMENT 8
20990 # define CPP_WORDSZ 64
20991 -# define STACKBOTTOM 0x1000000000000000
20993 # define ALIGNMENT 4
20994 # define CPP_WORDSZ 32
20995 -# define STACKBOTTOM ((ptr_t)((ulong)&errno))
20997 extern int _data[], _end[];
20998 # define DATASTART ((ptr_t)((ulong)_data))
20999 # define DATAEND ((ptr_t)((ulong)_end))
21001 +# define STACKBOTTOM ((ptr_t)((ulong)&errno))
21002 # define USE_GENERIC_PUSH_REGS
21003 # define DYNAMIC_LOADING
21004 /* For really old versions of AIX, this may have to be removed. */
21005 @@ -1396,23 +1311,15 @@
21006 # define OS_TYPE "LINUX"
21007 # define LINUX_STACKBOTTOM
21008 # define DYNAMIC_LOADING
21009 -# define SEARCH_FOR_DATA_START
21010 +# define LINUX_DATA_START
21012 -# define DATAEND (&_end)
21013 +# define DATAEND (_end)
21014 # endif /* LINUX */
21015 # endif /* HP_PA */
21018 # define MACH_TYPE "ALPHA"
21019 # define ALIGNMENT 8
21020 -# define CPP_WORDSZ 64
21022 -# define USE_GENERIC_PUSH_REGS
21023 - /* Gcc and probably the DEC/Compaq compiler spill pointers to preserved */
21024 - /* fp registers in some cases when the target is a 21264. The assembly */
21025 - /* code doesn't handle that yet, and version dependencies make that a */
21026 - /* bit tricky. Do the easy thing for now. */
21029 # define OS_TYPE "NETBSD"
21030 # define HEURISTIC2
21031 @@ -1420,11 +1327,13 @@
21032 # define ELFCLASS32 32
21033 # define ELFCLASS64 64
21034 # define ELF_CLASS ELFCLASS64
21035 +# define CPP_WORDSZ 64
21036 # define DYNAMIC_LOADING
21039 # define OS_TYPE "OPENBSD"
21040 # define HEURISTIC2
21041 +# define CPP_WORDSZ 64
21042 # ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
21043 # define DATASTART GC_data_start
21044 # define ELFCLASS32 32
21045 @@ -1448,16 +1357,17 @@
21046 extern char edata[];
21048 # define NEED_FIND_LIMIT
21049 -# define DATASTART ((ptr_t)(&etext))
21050 +# define DATASTART ((ptr_t)(etext))
21051 # define DATAEND (GC_find_limit (DATASTART, TRUE))
21052 -# define DATASTART2 ((ptr_t)(&edata))
21053 -# define DATAEND2 ((ptr_t)(&end))
21054 +# define DATASTART2 ((ptr_t)(edata))
21055 +# define DATAEND2 ((ptr_t)(end))
21056 +# define CPP_WORDSZ 64
21059 # define OS_TYPE "OSF1"
21060 # define DATASTART ((ptr_t) 0x140000000)
21062 -# define DATAEND ((ptr_t) &_end)
21063 +# define DATAEND ((ptr_t) _end)
21064 extern char ** environ;
21065 /* round up from the value of environ to the nearest page boundary */
21066 /* Probably breaks if putenv is called before collector */
21067 @@ -1470,17 +1380,17 @@
21068 /* This is currently unused, since we disabled HEURISTIC2 */
21069 extern int __start[];
21070 # define HEURISTIC2_LIMIT ((ptr_t)((word)(__start) & ~(getpagesize()-1)))
21071 -# ifndef GC_OSF1_THREADS
21072 - /* Unresolved signal issues with threads. */
21073 -# define MPROTECT_VDB
21075 +# define CPP_WORDSZ 64
21076 +# define MPROTECT_VDB
21077 # define DYNAMIC_LOADING
21080 # define OS_TYPE "LINUX"
21081 +# define CPP_WORDSZ 64
21082 # define STACKBOTTOM ((ptr_t) 0x120000000)
21084 # define SEARCH_FOR_DATA_START
21085 +# define DATASTART GC_data_start
21086 # define DYNAMIC_LOADING
21088 # define DATASTART ((ptr_t) 0x140000000)
21089 @@ -1558,6 +1468,7 @@
21090 extern char * GC_register_stackbottom;
21091 # define BACKING_STORE_BASE ((ptr_t)GC_register_stackbottom)
21092 # define SEARCH_FOR_DATA_START
21093 +# define DATASTART GC_data_start
21095 # define DYNAMIC_LOADING
21097 @@ -1591,15 +1502,13 @@
21100 # define OS_TYPE "DGUX"
21101 - extern ptr_t GC_SysVGetDataStart();
21102 -# define DATASTART GC_SysVGetDataStart(0x10000, etext)
21103 + extern char * GC_SysVGetDataStart();
21104 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, etext)
21106 # define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
21110 - /* If this still works, and if anyone cares, this should probably */
21111 - /* be moved to the S390 category. */
21112 # define MACH_TYPE "S370"
21113 # define ALIGNMENT 4 /* Required by hardware */
21114 # define USE_GENERIC_PUSH_REGS
21115 @@ -1608,8 +1517,8 @@
21116 extern int etext[];
21117 extern int _etext[];
21119 - extern ptr_t GC_SysVGetDataStart();
21120 -# define DATASTART GC_SysVGetDataStart(0x10000, _etext)
21121 + extern char * GC_SysVGetDataStart();
21122 +# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
21123 # define DATAEND (_end)
21124 # define HEURISTIC2
21126 @@ -1619,12 +1528,12 @@
21127 # define MACH_TYPE "S390"
21128 # define USE_GENERIC_PUSH_REGS
21130 -# define ALIGNMENT 4
21131 -# define CPP_WORDSZ 32
21132 +# define ALIGNMENT 4
21133 +# define CPP_WORDSZ 32
21135 -# define ALIGNMENT 8
21136 -# define CPP_WORDSZ 64
21137 -# define HBLKSIZE 4096
21138 +# define ALIGNMENT 8
21139 +# define CPP_WORDSZ 64
21140 +# define HBLKSIZE 4096
21143 # define OS_TYPE "LINUX"
21144 @@ -1632,10 +1541,10 @@
21145 # define DYNAMIC_LOADING
21146 extern int __data_start[];
21147 # define DATASTART ((ptr_t)(__data_start))
21148 - extern int _end[];
21149 -# define DATAEND (_end)
21150 -# define CACHE_LINE_SIZE 256
21151 -# define GETPAGESIZE() 4096
21152 + extern int _end[];
21153 +# define DATAEND (_end)
21154 +# define CACHE_LINE_SIZE 256
21155 +# define GETPAGESIZE() 4096
21159 @@ -1667,7 +1576,7 @@
21160 # define DYNAMIC_LOADING
21161 # include <features.h>
21162 # if defined(__GLIBC__) && __GLIBC__ >= 2
21163 -# define SEARCH_FOR_DATA_START
21164 +# define LINUX_DATA_START
21166 extern char **__environ;
21167 # define DATASTART ((ptr_t)(&__environ))
21168 @@ -1714,7 +1623,7 @@
21169 # define STACKBOTTOM ((ptr_t) 0x7c000000)
21170 # define USE_GENERIC_PUSH_REGS
21171 # define DYNAMIC_LOADING
21172 -# define SEARCH_FOR_DATA_START
21173 +# define LINUX_DATA_START
21175 # define DATAEND (_end)
21177 @@ -1731,9 +1640,7 @@
21178 # define MACH_TYPE "X86_64"
21179 # define ALIGNMENT 8
21180 # define CPP_WORDSZ 64
21182 -# define HBLKSIZE 4096
21184 +# define HBLKSIZE 4096
21185 # define CACHE_LINE_SIZE 64
21186 # define USE_GENERIC_PUSH_REGS
21188 @@ -1753,7 +1660,7 @@
21189 # define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff))
21191 # include <features.h>
21192 -# define SEARCH_FOR_DATA_START
21193 +# define LINUX_DATA_START
21195 # define DATAEND (_end)
21197 @@ -1767,6 +1674,19 @@
21201 +#ifdef LINUX_DATA_START
21202 + /* Some Linux distributions arrange to define __data_start. Some */
21203 + /* define data_start as a weak symbol. The latter is technically */
21204 + /* broken, since the user program may define data_start, in which */
21205 + /* case we lose. Nonetheless, we try both, prefering __data_start. */
21206 + /* We assume gcc. */
21207 +# pragma weak __data_start
21208 + extern int __data_start[];
21209 +# pragma weak data_start
21210 + extern int data_start[];
21211 +# define DATASTART ((ptr_t)(__data_start != 0? __data_start : data_start))
21214 #if defined(LINUX) && defined(REDIRECT_MALLOC)
21215 /* Rld appears to allocate some memory with its own allocator, and */
21216 /* some through malloc, which might be redirected. To make this */
21217 @@ -1805,15 +1725,15 @@
21220 # if defined(SUNOS5) || defined(DRSNX) || defined(UTS4)
21221 - /* OS has SVR4 generic features. Probably others also qualify. */
21222 + /* OS has SVR4 generic features. Probably others also qualify. */
21226 # if defined(SUNOS5) || defined(DRSNX)
21227 - /* OS has SUNOS5 style semi-undocumented interface to dynamic */
21229 + /* OS has SUNOS5 style semi-undocumented interface to dynamic */
21232 - /* OS has SUNOS5 style signal handlers. */
21233 + /* OS has SUNOS5 style signal handlers. */
21234 # define SUNOS5SIGS
21237 @@ -1822,13 +1742,13 @@
21240 # if defined(SVR4) || defined(LINUX) || defined(IRIX) || defined(HPUX) \
21241 - || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) || defined(DGUX) \
21242 - || defined(BSD) || defined(AIX) || defined(DARWIN) || defined(OSF1)
21243 + || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
21244 + || defined(BSD) || defined(_AIX) || defined(MACOSX) || defined(OSF1)
21245 # define UNIX_LIKE /* Basic Unix-like system calls work. */
21248 # if CPP_WORDSZ != 32 && CPP_WORDSZ != 64
21254 @@ -1842,13 +1762,13 @@
21258 - /* Postponed for now. */
21259 +/* Postponed for now. */
21261 # undef MPROTECT_VDB
21264 # ifdef SMALL_CONFIG
21265 - /* Presumably not worth the space it takes. */
21266 +/* Presumably not worth the space it takes. */
21268 # undef MPROTECT_VDB
21270 @@ -1888,47 +1808,49 @@
21271 /* platforms as well, though it should be avoided in win32. */
21272 # endif /* LINUX */
21274 -# if defined(SEARCH_FOR_DATA_START)
21275 +# if defined(SEARCH_FOR_DATA_START) && defined(GC_PRIVATE_H)
21276 extern ptr_t GC_data_start;
21277 -# define DATASTART GC_data_start
21280 # ifndef CLEAR_DOUBLE
21281 # define CLEAR_DOUBLE(x) \
21282 - ((word*)x)[0] = 0; \
21283 - ((word*)x)[1] = 0;
21284 + ((word*)x)[0] = 0; \
21285 + ((word*)x)[1] = 0;
21286 # endif /* CLEAR_DOUBLE */
21288 - /* Internally we use GC_SOLARIS_THREADS to test for either old or pthreads. */
21289 +/* Internally we use GC_SOLARIS_THREADS to test for either old or pthreads. */
21290 # if defined(GC_SOLARIS_PTHREADS) && !defined(GC_SOLARIS_THREADS)
21291 # define GC_SOLARIS_THREADS
21294 # if defined(GC_IRIX_THREADS) && !defined(IRIX5)
21295 - --> inconsistent configuration
21296 +--> inconsistent configuration
21298 # if defined(GC_LINUX_THREADS) && !defined(LINUX)
21299 - --> inconsistent configuration
21300 +--> inconsistent configuration
21302 # if defined(GC_SOLARIS_THREADS) && !defined(SUNOS5)
21303 - --> inconsistent configuration
21304 +--> inconsistent configuration
21306 # if defined(GC_HPUX_THREADS) && !defined(HPUX)
21307 - --> inconsistent configuration
21308 +--> inconsistent configuration
21310 -# if defined(GC_WIN32_THREADS) && !defined(MSWIN32) && !defined(CYGWIN32)
21311 - --> inconsistent configuration
21312 +# if defined(GC_WIN32_THREADS) && !defined(MSWIN32)
21313 + /* Ideally CYGWIN32 should work, in addition to MSWIN32. I suspect */
21314 + /* the necessary code is mostly there, but nobody has actually made */
21315 + /* sure the right combination of pieces is compiled in, etc. */
21316 +--> inconsistent configuration
21319 # if defined(PCR) || defined(SRC_M3) || \
21320 - defined(GC_SOLARIS_THREADS) || defined(GC_WIN32_THREADS) || \
21321 - defined(GC_PTHREADS)
21322 + defined(GC_SOLARIS_THREADS) || defined(GC_WIN32_THREADS) || \
21323 + defined(GC_PTHREADS)
21327 -# if defined(HP_PA) || defined(M88K) || defined(POWERPC) && !defined(DARWIN) \
21328 - || defined(LINT) || defined(MSWINCE) || defined(ARM32) \
21329 - || (defined(I386) && defined(__LCC__))
21330 +# if defined(HP_PA) || defined(M88K) || defined(POWERPC) && !defined(MACOSX) \
21331 + || defined(LINT) || defined(MSWINCE) \
21332 + || (defined(I386) && defined(__LCC__))
21333 /* Use setjmp based hack to mark from callee-save registers. */
21334 /* The define should move to the individual platform */
21335 /* descriptions. */
21336 @@ -1940,26 +1862,36 @@
21337 /* include assembly code to do it well. */
21340 - /* Can we save call chain in objects for debugging? */
21341 - /* SET NFRAMES (# of saved frames) and NARGS (#of args for each */
21342 - /* frame) to reasonable values for the platform. */
21343 - /* Set SAVE_CALL_CHAIN if we can. SAVE_CALL_COUNT can be specified */
21344 - /* at build time, though we feel free to adjust it slightly. */
21345 - /* Define NEED_CALLINFO if we either save the call stack or */
21346 - /* GC_ADD_CALLER is defined. */
21347 - /* GC_CAN_SAVE_CALL_STACKS is set in gc.h. */
21348 +/* Can we save call chain in objects for debugging? */
21349 +/* SET NFRAMES (# of saved frames) and NARGS (#of args for each frame) */
21350 +/* to reasonable values for the platform. */
21351 +/* Set SAVE_CALL_CHAIN if we can. SAVE_CALL_COUNT can be specified at */
21352 +/* build time, though we feel free to adjust it slightly. */
21353 +/* Define NEED_CALLINFO if we either save the call stack or */
21354 +/* GC_ADD_CALLER is defined. */
21356 +# include <features.h>
21357 +# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2
21358 +# define HAVE_BUILTIN_BACKTRACE
21363 +# define CAN_SAVE_CALL_STACKS
21364 # define CAN_SAVE_CALL_ARGS
21366 #if (defined(I386) || defined(X86_64)) && defined(LINUX)
21367 - /* SAVE_CALL_CHAIN is supported if the code is compiled to save */
21368 - /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */
21369 + /* SAVE_CALL_CHAIN is supported if the code is compiled to save */
21370 + /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */
21371 +# define CAN_SAVE_CALL_STACKS
21372 # define CAN_SAVE_CALL_ARGS
21374 +#if defined(HAVE_BUILTIN_BACKTRACE) && !defined(CAN_SAVE_CALL_STACKS)
21375 +# define CAN_SAVE_CALL_STACKS
21378 # if defined(SAVE_CALL_COUNT) && !defined(GC_ADD_CALLER) \
21379 - && defined(GC_CAN_SAVE_CALL_STACKS)
21380 + && defined(CAN_SAVE_CALL_STACKS)
21381 # define SAVE_CALL_CHAIN
21383 # ifdef SAVE_CALL_CHAIN
21384 @@ -1972,7 +1904,7 @@
21385 # ifdef SAVE_CALL_CHAIN
21386 # ifndef SAVE_CALL_COUNT
21387 # define NFRAMES 6 /* Number of frames to save. Even for */
21388 - /* alignment reasons. */
21389 + /* alignment reasons. */
21391 # define NFRAMES ((SAVE_CALL_COUNT + 1) & ~1)
21393 @@ -1987,97 +1919,5 @@
21394 # if defined(MAKE_BACK_GRAPH) && !defined(DBG_HDRS_ALL)
21395 # define DBG_HDRS_ALL
21398 -# if defined(POINTER_MASK) && !defined(POINTER_SHIFT)
21399 -# define POINTER_SHIFT 0
21402 -# if defined(POINTER_SHIFT) && !defined(POINTER_MASK)
21403 -# define POINTER_MASK ((GC_word)(-1))
21406 -# if !defined(FIXUP_POINTER) && defined(POINTER_MASK)
21407 -# define FIXUP_POINTER(p) (p) = ((p) & (POINTER_MASK) << POINTER_SHIFT)
21410 -# if defined(FIXUP_POINTER)
21411 -# define NEED_FIXUP_POINTER 1
21413 -# define NEED_FIXUP_POINTER 0
21414 -# define FIXUP_POINTER(p)
21417 -#ifdef GC_PRIVATE_H
21418 - /* This relies on some type definitions from gc_priv.h, from */
21419 - /* where it's normally included. */
21421 - /* How to get heap memory from the OS: */
21422 - /* Note that sbrk()-like allocation is preferred, since it */
21423 - /* usually makes it possible to merge consecutively allocated */
21424 - /* chunks. It also avoids unintented recursion with */
21425 - /* -DREDIRECT_MALLOC. */
21426 - /* GET_MEM() returns a HLKSIZE aligned chunk. */
21427 - /* 0 is taken to mean failure. */
21428 - /* In the case os USE_MMAP, the argument must also be a */
21429 - /* physical page size. */
21430 - /* GET_MEM is currently not assumed to retrieve 0 filled space, */
21431 - /* though we should perhaps take advantage of the case in which */
21433 - struct hblk; /* See gc_priv.h. */
21435 - char * real_malloc();
21436 -# define GET_MEM(bytes) HBLKPTR(real_malloc((size_t)bytes + GC_page_size) \
21437 - + GC_page_size-1)
21440 - void * os2_alloc(size_t bytes);
21441 -# define GET_MEM(bytes) HBLKPTR((ptr_t)os2_alloc((size_t)bytes \
21442 - + GC_page_size) \
21443 - + GC_page_size-1)
21445 -# if defined(NEXT) || defined(DOS4GW) || \
21446 - (defined(AMIGA) && !defined(GC_AMIGA_FASTALLOC)) || \
21447 - (defined(SUNOS5) && !defined(USE_MMAP))
21448 -# define GET_MEM(bytes) HBLKPTR((size_t) \
21449 - calloc(1, (size_t)bytes + GC_page_size) \
21450 - + GC_page_size-1)
21453 - extern ptr_t GC_win32_get_mem();
21454 -# define GET_MEM(bytes) (struct hblk *)GC_win32_get_mem(bytes)
21457 -# if defined(USE_TEMPORARY_MEMORY)
21458 - extern Ptr GC_MacTemporaryNewPtr(size_t size,
21459 - Boolean clearMemory);
21460 -# define GET_MEM(bytes) HBLKPTR( \
21461 - GC_MacTemporaryNewPtr(bytes + GC_page_size, true) \
21462 - + GC_page_size-1)
21464 -# define GET_MEM(bytes) HBLKPTR( \
21465 - NewPtrClear(bytes + GC_page_size) + GC_page_size-1)
21469 - extern ptr_t GC_wince_get_mem();
21470 -# define GET_MEM(bytes) (struct hblk *)GC_wince_get_mem(bytes)
21472 -# if defined(AMIGA) && defined(GC_AMIGA_FASTALLOC)
21473 - extern void *GC_amiga_get_mem(size_t size);
21474 - define GET_MEM(bytes) HBLKPTR((size_t) \
21475 - GC_amiga_get_mem((size_t)bytes + GC_page_size) \
21476 - + GC_page_size-1)
21478 - extern ptr_t GC_unix_get_mem();
21479 -# define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes)
21488 -#endif /* GC_PRIVATE_H */
21490 # endif /* GCCONFIG_H */
21491 diff -Nur ../boehm-gc/include/private/pthread_stop_world.h boehm-gc/include/private/pthread_stop_world.h
21492 --- ../boehm-gc/include/private/pthread_stop_world.h Mon May 26 13:28:24 2003
21493 +++ boehm-gc/include/private/pthread_stop_world.h Wed Dec 31 16:00:00 1969
21495 -#ifndef GC_PTHREAD_STOP_WORLD_H
21496 -#define GC_PTHREAD_STOP_WORLD_H
21498 -struct thread_stop_info {
21500 - word last_stop_count; /* GC_last_stop_count value when thread */
21501 - /* last successfully handled a suspend */
21503 - ptr_t stack_ptr; /* Valid only when stopped. */
21507 diff -Nur ../boehm-gc/include/private/pthread_support.h boehm-gc/include/private/pthread_support.h
21508 --- ../boehm-gc/include/private/pthread_support.h Mon May 26 13:28:24 2003
21509 +++ boehm-gc/include/private/pthread_support.h Wed Dec 31 16:00:00 1969
21511 -#ifndef GC_PTHREAD_SUPPORT_H
21512 -#define GC_PTHREAD_SUPPORT_H
21514 -# include "private/gc_priv.h"
21516 -# if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
21517 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
21519 -#if defined(GC_DARWIN_THREADS)
21520 -# include "private/darwin_stop_world.h"
21522 -# include "private/pthread_stop_world.h"
21525 -/* We use the allocation lock to protect thread-related data structures. */
21527 -/* The set of all known threads. We intercept thread creation and */
21529 -/* Protected by allocation/GC lock. */
21530 -/* Some of this should be declared volatile, but that's inconsistent */
21531 -/* with some library routine declarations. */
21532 -typedef struct GC_Thread_Rep {
21533 - struct GC_Thread_Rep * next; /* More recently allocated threads */
21534 - /* with a given pthread id come */
21535 - /* first. (All but the first are */
21536 - /* guaranteed to be dead, but we may */
21537 - /* not yet have registered the join.) */
21539 - /* Extra bookkeeping information the stopping code uses */
21540 - struct thread_stop_info stop_info;
21543 -# define FINISHED 1 /* Thread has exited. */
21544 -# define DETACHED 2 /* Thread is intended to be detached. */
21545 -# define MAIN_THREAD 4 /* True for the original thread only. */
21546 - short thread_blocked; /* Protected by GC lock. */
21547 - /* Treated as a boolean value. If set, */
21548 - /* thread will acquire GC lock before */
21549 - /* doing any pointer manipulations, and */
21550 - /* has set its sp value. Thus it does */
21551 - /* not need to be sent a signal to stop */
21553 - ptr_t stack_end; /* Cold end of the stack. */
21555 - ptr_t backing_store_end;
21556 - ptr_t backing_store_ptr;
21558 - void * status; /* The value returned from the thread. */
21559 - /* Used only to avoid premature */
21560 - /* reclamation of any data it might */
21562 -# ifdef THREAD_LOCAL_ALLOC
21563 -# if CPP_WORDSZ == 64 && defined(ALIGN_DOUBLE)
21564 -# define GRANULARITY 16
21565 -# define NFREELISTS 49
21567 -# define GRANULARITY 8
21568 -# define NFREELISTS 65
21570 - /* The ith free list corresponds to size i*GRANULARITY */
21571 -# define INDEX_FROM_BYTES(n) ((ADD_SLOP(n) + GRANULARITY - 1)/GRANULARITY)
21572 -# define BYTES_FROM_INDEX(i) ((i) * GRANULARITY - EXTRA_BYTES)
21573 -# define SMALL_ENOUGH(bytes) (ADD_SLOP(bytes) <= \
21574 - (NFREELISTS-1)*GRANULARITY)
21575 - ptr_t ptrfree_freelists[NFREELISTS];
21576 - ptr_t normal_freelists[NFREELISTS];
21577 -# ifdef GC_GCJ_SUPPORT
21578 - ptr_t gcj_freelists[NFREELISTS];
21580 - /* Free lists contain either a pointer or a small count */
21581 - /* reflecting the number of granules allocated at that */
21583 - /* 0 ==> thread-local allocation in use, free list */
21585 - /* > 0, <= DIRECT_GRANULES ==> Using global allocation, */
21586 - /* too few objects of this size have been */
21587 - /* allocated by this thread. */
21588 - /* >= HBLKSIZE => pointer to nonempty free list. */
21589 - /* > DIRECT_GRANULES, < HBLKSIZE ==> transition to */
21590 - /* local alloc, equivalent to 0. */
21591 -# define DIRECT_GRANULES (HBLKSIZE/GRANULARITY)
21592 - /* Don't use local free lists for up to this much */
21593 - /* allocation. */
21597 -# define THREAD_TABLE_SZ 128 /* Must be power of 2 */
21598 -extern volatile GC_thread GC_threads[THREAD_TABLE_SZ];
21600 -extern GC_bool GC_thr_initialized;
21602 -GC_thread GC_lookup_thread(pthread_t id);
21604 -void GC_stop_init();
21606 -#endif /* GC_PTHREADS && !GC_SOLARIS_THREADS.... etc */
21607 -#endif /* GC_PTHREAD_SUPPORT_H */
21608 diff -Nur ../boehm-gc/include/private/solaris_threads.h boehm-gc/include/private/solaris_threads.h
21609 --- ../boehm-gc/include/private/solaris_threads.h Mon May 26 13:28:24 2003
21610 +++ boehm-gc/include/private/solaris_threads.h Tue Oct 23 16:21:39 2001
21612 # define DETACHED 2 /* Thread is intended to be detached. */
21613 # define CLIENT_OWNS_STACK 4
21614 /* Stack was supplied by client. */
21615 -# define SUSPNDED 8 /* Currently suspended. */
21616 - /* SUSPENDED is used insystem header. */
21617 +# define SUSPENDED 8 /* Currently suspended. */
21621 diff -Nur ../boehm-gc/include/private/specific.h boehm-gc/include/private/specific.h
21622 --- ../boehm-gc/include/private/specific.h Mon May 26 13:28:24 2003
21623 +++ boehm-gc/include/private/specific.h Fri Mar 29 14:52:13 2002
21625 unsigned hash_val = CACHE_HASH(qtid);
21626 tse * volatile * entry_ptr = key -> cache + hash_val;
21627 tse * entry = *entry_ptr; /* Must be loaded only once. */
21628 - if (EXPECT(entry -> qtid == qtid, 1)) {
21629 + if (entry -> qtid == qtid) {
21630 GC_ASSERT(entry -> thread == pthread_self());
21631 return entry -> value;
21633 diff -Nur ../boehm-gc/irix_threads.c boehm-gc/irix_threads.c
21634 --- ../boehm-gc/irix_threads.c Mon May 26 12:48:52 2003
21635 +++ boehm-gc/irix_threads.c Sun May 19 10:36:14 2002
21637 #undef pthread_join
21638 #undef pthread_detach
21640 -#ifdef HANDLE_FORK
21641 - --> Not yet supported. Try porting the code from linux_threads.c.
21644 void GC_thr_init();
21647 diff -Nur ../boehm-gc/mach_dep.c boehm-gc/mach_dep.c
21648 --- ../boehm-gc/mach_dep.c Mon May 26 12:48:52 2003
21649 +++ boehm-gc/mach_dep.c Thu Jul 18 13:06:00 2002
21651 /* on your architecture. Run the test_setjmp program to see whether */
21652 /* there is any chance it will work. */
21654 -#if !defined(USE_GENERIC_PUSH_REGS) && !defined(USE_ASM_PUSH_REGS)
21655 +#ifndef USE_GENERIC_PUSH_REGS
21656 void GC_push_regs()
21659 @@ -228,8 +228,7 @@
21660 || ( defined(I386) && defined(FREEBSD) && defined(__ELF__) ) \
21661 || ( defined(I386) && defined(NETBSD) && defined(__ELF__) ) \
21662 || ( defined(I386) && defined(OPENBSD) && defined(__ELF__) ) \
21663 - || ( defined(I386) && defined(HURD) && defined(__ELF__) ) \
21664 - || ( defined(I386) && defined(DGUX) )
21665 + || ( defined(I386) && defined(HURD) && defined(__ELF__) )
21667 /* This is modified for Linux with ELF (Note: _ELF_ only) */
21668 /* This section handles FreeBSD with ELF. */
21669 @@ -378,7 +377,7 @@
21670 /* other machines... */
21671 # if !defined(M68K) && !defined(VAX) && !defined(RT)
21672 # if !defined(SPARC) && !defined(I386) && !defined(NS32K)
21673 -# if !(defined(POWERPC) && defined(LINUX)) && !defined(UTS4)
21674 +# if !defined(POWERPC) && !defined(UTS4)
21675 # if !defined(PJ) && !(defined(MIPS) && defined(LINUX))
21678 @@ -386,7 +385,7 @@
21682 -#endif /* !USE_GENERIC_PUSH_REGS && !USE_ASM_PUSH_REGS */
21683 +#endif /* !USE_GENERIC_PUSH_REGS */
21685 #if defined(USE_GENERIC_PUSH_REGS)
21686 void GC_generic_push_regs(cold_gc_frame)
21687 diff -Nur ../boehm-gc/malloc.c boehm-gc/malloc.c
21688 --- ../boehm-gc/malloc.c Mon May 26 12:48:52 2003
21689 +++ boehm-gc/malloc.c Mon Feb 11 20:37:53 2002
21690 @@ -182,7 +182,6 @@
21694 - if (GC_have_errors) GC_print_all_errors();
21695 GC_INVOKE_FINALIZERS();
21696 if (SMALL_OBJ(lb)) {
21698 @@ -295,11 +294,6 @@
21699 return(GENERAL_MALLOC((word)lb, NORMAL));
21701 /* See above comment on signals. */
21702 - GC_ASSERT(0 == obj_link(op)
21703 - || (word)obj_link(op)
21704 - <= (word)GC_greatest_plausible_heap_addr
21705 - && (word)obj_link(op)
21706 - >= (word)GC_least_plausible_heap_addr);
21707 *opp = obj_link(op);
21709 GC_words_allocd += lw;
21710 @@ -344,7 +338,6 @@
21711 return((GC_PTR)REDIRECT_MALLOC(n*lb));
21715 # include <string.h>
21717 char *strdup(const char *s)
21718 @@ -353,16 +346,11 @@
21722 - size_t len = strlen(s) + 1;
21723 + size_t len = strlen + 1;
21724 char * result = ((char *)REDIRECT_MALLOC(len+1));
21725 BCOPY(s, result, len+1);
21728 -#endif /* !defined(strdup) */
21729 - /* If strdup is macro defined, we assume that it actually calls malloc, */
21730 - /* and thus the right thing will happen even without overriding it. */
21731 - /* This seems to be true on most Linux systems. */
21733 # endif /* REDIRECT_MALLOC */
21735 /* Explicitly deallocate an object p. */
21736 @@ -385,7 +373,6 @@
21737 /* Required by ANSI. It's not my fault ... */
21740 - GC_ASSERT(GC_base(p) == p);
21741 # if defined(REDIRECT_MALLOC) && \
21742 (defined(GC_SOLARIS_THREADS) || defined(GC_LINUX_THREADS) \
21743 || defined(__MINGW32__)) /* Should this be MSWIN32 in general? */
21744 @@ -467,10 +454,7 @@
21746 #endif /* THREADS */
21748 -# if defined(REDIRECT_MALLOC) && !defined(REDIRECT_FREE)
21749 -# define REDIRECT_FREE GC_free
21751 -# ifdef REDIRECT_FREE
21752 +# ifdef REDIRECT_MALLOC
21754 void free(GC_PTR p)
21756 @@ -479,7 +463,7 @@
21759 # ifndef IGNORE_FREE
21760 - REDIRECT_FREE(p);
21764 # endif /* REDIRECT_MALLOC */
21765 diff -Nur ../boehm-gc/mallocx.c boehm-gc/mallocx.c
21766 --- ../boehm-gc/mallocx.c Mon May 26 12:48:52 2003
21767 +++ boehm-gc/mallocx.c Fri Aug 17 18:04:43 2001
21768 @@ -142,11 +142,7 @@
21772 -# if defined(REDIRECT_MALLOC) && !defined(REDIRECT_REALLOC)
21773 -# define REDIRECT_REALLOC GC_realloc
21776 -# ifdef REDIRECT_REALLOC
21777 +# if defined(REDIRECT_MALLOC) || defined(REDIRECT_REALLOC)
21779 GC_PTR realloc(GC_PTR p, size_t lb)
21781 @@ -155,9 +151,13 @@
21785 - return(REDIRECT_REALLOC(p, lb));
21786 +# ifdef REDIRECT_REALLOC
21787 + return(REDIRECT_REALLOC(p, lb));
21789 + return(GC_realloc(p, lb));
21792 -# endif /* REDIRECT_REALLOC */
21793 +# endif /* REDIRECT_MALLOC */
21796 /* The same thing, except caller does not hold allocation lock. */
21797 @@ -177,7 +177,6 @@
21798 lw = ROUNDED_UP_WORDS(lb);
21799 n_blocks = OBJ_SZ_TO_BLOCKS(lw);
21800 init = GC_obj_kinds[k].ok_init;
21801 - if (GC_have_errors) GC_print_all_errors();
21802 GC_INVOKE_FINALIZERS();
21805 @@ -287,7 +286,6 @@
21809 - if (GC_have_errors) GC_print_all_errors();
21810 GC_INVOKE_FINALIZERS();
21813 @@ -356,7 +354,6 @@
21816 lw = ALIGNED_WORDS(lb);
21817 - if (GC_have_errors) GC_print_all_errors();
21818 GC_INVOKE_FINALIZERS();
21821 @@ -378,7 +375,6 @@
21822 while ((hbp = *rlh) != 0) {
21824 *rlh = hhdr -> hb_next;
21825 - hhdr -> hb_last_reclaimed = (unsigned short) GC_gc_no;
21826 # ifdef PARALLEL_MARK
21828 signed_word my_words_allocd_tmp = GC_words_allocd_tmp;
21829 @@ -578,44 +574,6 @@
21830 return((GC_PTR) op);
21835 -/* Not well tested nor integrated. */
21836 -/* Debug version is tricky and currently missing. */
21837 -#include <limits.h>
21839 -GC_PTR GC_memalign(size_t align, size_t lb)
21845 -# ifdef ALIGN_DOUBLE
21846 - if (align <= WORDS_TO_BYTES(2) && lb > align) return GC_malloc(lb);
21848 - if (align <= WORDS_TO_BYTES(1)) return GC_malloc(lb);
21849 - if (align >= HBLKSIZE/2 || lb >= HBLKSIZE/2) {
21850 - if (align > HBLKSIZE) return GC_oom_fn(LONG_MAX-1024) /* Fail */;
21851 - return GC_malloc(lb <= HBLKSIZE? HBLKSIZE : lb);
21852 - /* Will be HBLKSIZE aligned. */
21854 - /* We could also try to make sure that the real rounded-up object size */
21855 - /* is a multiple of align. That would be correct up to HBLKSIZE. */
21856 - new_lb = lb + align - 1;
21857 - result = GC_malloc(new_lb);
21858 - offset = (word)result % align;
21859 - if (offset != 0) {
21860 - offset = align - offset;
21861 - if (!GC_all_interior_pointers) {
21862 - if (offset >= VALID_OFFSET_SZ) return GC_malloc(HBLKSIZE);
21863 - GC_register_displacement(offset);
21866 - result = (GC_PTR) ((ptr_t)result + offset);
21867 - GC_ASSERT((word)result % align == 0);
21872 # ifdef ATOMIC_UNCOLLECTABLE
21873 /* Allocate lb bytes of pointerfree, untraced, uncollectable data */
21874 diff -Nur ../boehm-gc/mark.c boehm-gc/mark.c
21875 --- ../boehm-gc/mark.c Mon May 26 12:48:52 2003
21876 +++ boehm-gc/mark.c Fri Mar 29 14:52:12 2002
21878 # include <stdio.h>
21879 # include "private/gc_pmark.h"
21881 -#if defined(MSWIN32) && defined(__GNUC__)
21882 -# include <excpt.h>
21885 /* We put this here to minimize the risk of inlining. */
21888 @@ -265,20 +261,20 @@
21889 /* remains valid until all marking is complete. */
21890 /* A zero value indicates that it's OK to miss some */
21891 /* register values. */
21892 -/* We hold the allocation lock. In the case of */
21893 -/* incremental collection, the world may not be stopped.*/
21895 - /* For win32, this is called after we establish a structured */
21896 - /* exception handler, in case Windows unmaps one of our root */
21897 - /* segments. See below. In either case, we acquire the */
21898 - /* allocator lock long before we get here. */
21899 - GC_bool GC_mark_some_inner(cold_gc_frame)
21900 - ptr_t cold_gc_frame;
21902 - GC_bool GC_mark_some(cold_gc_frame)
21903 - ptr_t cold_gc_frame;
21905 +GC_bool GC_mark_some(cold_gc_frame)
21906 +ptr_t cold_gc_frame;
21908 +#if defined(MSWIN32) && !defined(__GNUC__)
21909 + /* Windows 98 appears to asynchronously create and remove writable */
21910 + /* memory mappings, for reasons we haven't yet understood. Since */
21911 + /* we look for writable regions to determine the root set, we may */
21912 + /* try to mark from an address range that disappeared since we */
21913 + /* started the collection. Thus we have to recover from faults here. */
21914 + /* This code does not appear to be necessary for Windows 95/NT/2000. */
21915 + /* Note that this code should never generate an incremental GC write */
21918 +#endif /* defined(MSWIN32) && !defined(__GNUC__) */
21919 switch(GC_mark_state) {
21922 @@ -399,130 +395,23 @@
21923 ABORT("GC_mark_some: bad state");
21934 - EXCEPTION_REGISTRATION ex_reg;
21939 - static EXCEPTION_DISPOSITION mark_ex_handler(
21940 - struct _EXCEPTION_RECORD *ex_rec,
21942 - struct _CONTEXT *context,
21945 - if (ex_rec->ExceptionCode == STATUS_ACCESS_VIOLATION) {
21946 - ext_ex_regn *xer = (ext_ex_regn *)est_frame;
21948 - /* Unwind from the inner function assuming the standard */
21949 - /* function prologue. */
21950 - /* Assumes code has not been compiled with */
21951 - /* -fomit-frame-pointer. */
21952 - context->Esp = context->Ebp;
21953 - context->Ebp = *((DWORD *)context->Esp);
21954 - context->Esp = context->Esp - 8;
21956 - /* Resume execution at the "real" handler within the */
21957 - /* wrapper function. */
21958 - context->Eip = (DWORD )(xer->alt_path);
21960 - return ExceptionContinueExecution;
21963 - return ExceptionContinueSearch;
21966 -# endif /* __GNUC__ */
21969 - GC_bool GC_mark_some(cold_gc_frame)
21970 - ptr_t cold_gc_frame;
21975 - /* Windows 98 appears to asynchronously create and remove */
21976 - /* writable memory mappings, for reasons we haven't yet */
21977 - /* understood. Since we look for writable regions to */
21978 - /* determine the root set, we may try to mark from an */
21979 - /* address range that disappeared since we started the */
21980 - /* collection. Thus we have to recover from faults here. */
21981 - /* This code does not appear to be necessary for Windows */
21982 - /* 95/NT/2000. Note that this code should never generate */
21983 - /* an incremental GC write fault. */
21987 -# else /* __GNUC__ */
21989 - /* Manually install an exception handler since GCC does */
21990 - /* not yet support Structured Exception Handling (SEH) on */
21995 - er.alt_path = &&handle_ex;
21996 - er.ex_reg.handler = mark_ex_handler;
21997 - asm volatile ("movl %%fs:0, %0" : "=r" (er.ex_reg.prev));
21998 - asm volatile ("movl %0, %%fs:0" : : "r" (&er));
22000 -# endif /* __GNUC__ */
22002 - ret_val = GC_mark_some_inner(cold_gc_frame);
22006 - } __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
22007 - EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
22009 -# else /* __GNUC__ */
22011 - /* Prevent GCC from considering the following code unreachable */
22012 - /* and thus eliminating it. */
22013 - if (er.alt_path != 0)
22017 - /* Execution resumes from here on an access violation. */
22019 -# endif /* __GNUC__ */
22022 - if (GC_print_stats) {
22023 - GC_printf0("Caught ACCESS_VIOLATION in marker. "
22024 - "Memory mapping disappeared.\n");
22026 -# endif /* CONDPRINT */
22028 - /* We have bad roots on the stack. Discard mark stack. */
22029 - /* Rescan from marked objects. Redetermine roots. */
22030 - GC_invalidate_mark_state();
22037 +#if defined(MSWIN32) && !defined(__GNUC__)
22038 + } __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
22039 + EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
22041 + if (GC_print_stats) {
22042 + GC_printf0("Caught ACCESS_VIOLATION in marker. "
22043 + "Memory mapping disappeared.\n");
22046 -# else /* __GNUC__ */
22049 - /* Uninstall the exception handler */
22050 - asm volatile ("mov %0, %%fs:0" : : "r" (er.ex_reg.prev));
22052 -# endif /* __GNUC__ */
22055 +# endif /* CONDPRINT */
22056 + /* We have bad roots on the stack. Discard mark stack. */
22057 + /* Rescan from marked objects. Redetermine roots. */
22058 + GC_invalidate_mark_state();
22062 -#endif /* MSWIN32 */
22063 +#endif /* defined(MSWIN32) && !defined(__GNUC__) */
22067 GC_bool GC_mark_stack_empty()
22068 @@ -545,7 +434,13 @@
22069 /* for the large object. */
22070 /* - just return current if it does not point to a large object. */
22072 -ptr_t GC_find_start(current, hhdr, new_hdr_p)
22073 +# ifdef PRINT_BLACK_LIST
22074 + ptr_t GC_find_start(current, hhdr, new_hdr_p, source)
22077 + ptr_t GC_find_start(current, hhdr, new_hdr_p)
22080 register ptr_t current;
22081 register hdr *hhdr, **new_hdr_p;
22083 @@ -573,6 +468,7 @@
22090 void GC_invalidate_mark_state()
22091 @@ -650,8 +546,8 @@
22092 /* Large length. */
22093 /* Process part of the range to avoid pushing too much on the */
22095 - GC_ASSERT(descr < (word)GC_greatest_plausible_heap_addr
22096 - - (word)GC_least_plausible_heap_addr);
22097 + GC_ASSERT(descr < GC_greatest_plausible_heap_addr
22098 + - GC_least_plausible_heap_addr);
22099 # ifdef PARALLEL_MARK
22100 # define SHARE_BYTES 2048
22101 if (descr > SHARE_BYTES && GC_parallel
22102 @@ -682,7 +578,6 @@
22103 while (descr != 0) {
22104 if ((signed_word)descr < 0) {
22105 current = *current_p;
22106 - FIXUP_POINTER(current);
22107 if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
22109 HC_PUSH_CONTENTS((ptr_t)current, mark_stack_top,
22110 @@ -757,7 +652,6 @@
22111 PREFETCH((ptr_t)limit - PREF_DIST*CACHE_LINE_SIZE);
22112 GC_ASSERT(limit >= current_p);
22114 - FIXUP_POINTER(deferred);
22115 limit = (word *)((char *)limit - ALIGNMENT);
22116 if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
22117 PREFETCH(deferred);
22118 @@ -767,7 +661,6 @@
22119 /* Unroll once, so we don't do too many of the prefetches */
22120 /* based on limit. */
22122 - FIXUP_POINTER(deferred);
22123 limit = (word *)((char *)limit - ALIGNMENT);
22124 if ((ptr_t)deferred >= least_ha && (ptr_t)deferred < greatest_ha) {
22125 PREFETCH(deferred);
22126 @@ -782,7 +675,6 @@
22127 /* Since HC_PUSH_CONTENTS expands to a lot of code, */
22129 current = *current_p;
22130 - FIXUP_POINTER(current);
22131 PREFETCH((ptr_t)current_p + PREF_DIST*CACHE_LINE_SIZE);
22132 if ((ptr_t)current >= least_ha && (ptr_t)current < greatest_ha) {
22133 /* Prefetch the contents of the object we just pushed. It's */
22134 @@ -834,33 +726,22 @@
22135 mse *top = local - 1;
22138 - /* Make sure that prior writes to the mark stack are visible. */
22139 - /* On some architectures, the fact that the reads are */
22140 - /* volatile should suffice. */
22141 -# if !defined(IA64) && !defined(HP_PA) && !defined(I386)
22142 - GC_memory_barrier();
22144 GC_ASSERT(high >= low-1 && high - low + 1 <= GC_mark_stack_size);
22145 for (p = low; p <= high && i <= max; ++p) {
22146 word descr = *(volatile word *) &(p -> mse_descr);
22147 - /* In the IA64 memory model, the following volatile store is */
22148 - /* ordered after this read of descr. Thus a thread must read */
22149 - /* the original nonzero value. HP_PA appears to be similar, */
22150 - /* and if I'm reading the P4 spec correctly, X86 is probably */
22151 - /* also OK. In some other cases we need a barrier. */
22152 -# if !defined(IA64) && !defined(HP_PA) && !defined(I386)
22153 - GC_memory_barrier();
22156 *(volatile word *) &(p -> mse_descr) = 0;
22157 - /* More than one thread may get this entry, but that's only */
22158 - /* a minor performance problem. */
22160 top -> mse_descr = descr;
22161 top -> mse_start = p -> mse_start;
22162 GC_ASSERT( top -> mse_descr & GC_DS_TAGS != GC_DS_LENGTH ||
22163 top -> mse_descr < GC_greatest_plausible_heap_addr
22164 - GC_least_plausible_heap_addr);
22165 + /* There is no synchronization here. We assume that at */
22166 + /* least one thread will see the original descriptor. */
22167 + /* Otherwise we need a barrier. */
22168 + /* More than one thread may get this entry, but that's only */
22169 + /* a minor performance problem. */
22170 /* If this is a big object, count it as */
22171 /* size/256 + 1 objects. */
22173 @@ -897,7 +778,7 @@
22174 BCOPY(low, my_start, stack_size * sizeof(mse));
22175 GC_ASSERT(GC_mark_stack_top = my_top);
22176 # if !defined(IA64) && !defined(HP_PA)
22177 - GC_memory_barrier();
22178 + GC_memory_write_barrier();
22180 /* On IA64, the volatile write acts as a release barrier. */
22181 GC_mark_stack_top = my_top + stack_size;
22182 @@ -1461,8 +1342,8 @@
22183 # define GC_least_plausible_heap_addr least_ha
22185 if (top == 0) return;
22186 - /* check all pointers in range and push if they appear */
22187 - /* to be valid. */
22188 + /* check all pointers in range and put in push if they appear */
22189 + /* to be valid. */
22190 lim = t - 1 /* longword */;
22191 for (p = b; p <= lim; p = (word *)(((char *)p) + ALIGNMENT)) {
22193 @@ -1485,7 +1366,7 @@
22195 ptr_t cold_gc_frame;
22197 - if (!NEED_FIXUP_POINTER && GC_all_interior_pointers) {
22198 + if (GC_all_interior_pointers) {
22199 # define EAGER_BYTES 1024
22200 /* Push the hot end of the stack eagerly, so that register values */
22201 /* saved inside GC frames are marked before they disappear. */
22202 @@ -1494,7 +1375,6 @@
22203 GC_push_all_stack(bottom, top);
22206 - GC_ASSERT(bottom <= cold_gc_frame && cold_gc_frame <= top);
22207 # ifdef STACK_GROWS_DOWN
22208 GC_push_all(cold_gc_frame - sizeof(ptr_t), top);
22209 GC_push_all_eager(bottom, cold_gc_frame);
22210 @@ -1515,7 +1395,7 @@
22214 - if (!NEED_FIXUP_POINTER && GC_all_interior_pointers) {
22215 + if (GC_all_interior_pointers) {
22216 GC_push_all(bottom, top);
22218 GC_push_all_eager(bottom, top);
22219 diff -Nur ../boehm-gc/mark_rts.c boehm-gc/mark_rts.c
22220 --- ../boehm-gc/mark_rts.c Mon May 26 12:48:52 2003
22221 +++ boehm-gc/mark_rts.c Mon Mar 3 22:38:29 2003
22222 @@ -275,72 +275,33 @@
22225 /* Internal use only; lock held. */
22226 -static void GC_remove_root_at_pos(i)
22229 - GC_root_size -= (GC_static_roots[i].r_end - GC_static_roots[i].r_start);
22230 - GC_static_roots[i].r_start = GC_static_roots[n_root_sets-1].r_start;
22231 - GC_static_roots[i].r_end = GC_static_roots[n_root_sets-1].r_end;
22232 - GC_static_roots[i].r_tmp = GC_static_roots[n_root_sets-1].r_tmp;
22236 -#if !defined(MSWIN32) && !defined(MSWINCE)
22237 -static void GC_rebuild_root_index()
22241 - for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
22242 - for (i = 0; i < n_root_sets; i++)
22243 - add_roots_to_index(GC_static_roots + i);
22247 -/* Internal use only; lock held. */
22248 void GC_remove_tmp_roots()
22252 for (i = 0; i < n_root_sets; ) {
22253 if (GC_static_roots[i].r_tmp) {
22254 - GC_remove_root_at_pos(i);
22256 + (GC_static_roots[i].r_end - GC_static_roots[i].r_start);
22257 + GC_static_roots[i].r_start = GC_static_roots[n_root_sets-1].r_start;
22258 + GC_static_roots[i].r_end = GC_static_roots[n_root_sets-1].r_end;
22259 + GC_static_roots[i].r_tmp = GC_static_roots[n_root_sets-1].r_tmp;
22265 - #if !defined(MSWIN32) && !defined(MSWINCE)
22266 - GC_rebuild_root_index();
22270 -#if !defined(MSWIN32) && !defined(MSWINCE)
22271 -void GC_remove_roots(b, e)
22272 -char * b; char * e;
22276 - DISABLE_SIGNALS();
22278 - GC_remove_roots_inner(b, e);
22280 - ENABLE_SIGNALS();
22283 -/* Should only be called when the lock is held */
22284 -void GC_remove_roots_inner(b,e)
22285 -char * b; char * e;
22288 - for (i = 0; i < n_root_sets; ) {
22289 - if (GC_static_roots[i].r_start >= (ptr_t)b && GC_static_roots[i].r_end <= (ptr_t)e) {
22290 - GC_remove_root_at_pos(i);
22294 +# if !defined(MSWIN32) && !defined(MSWINCE)
22298 + for (i = 0; i < RT_SIZE; i++) GC_root_index[i] = 0;
22299 + for (i = 0; i < n_root_sets; i++)
22300 + add_roots_to_index(GC_static_roots + i);
22302 - GC_rebuild_root_index();
22306 -#endif /* !defined(MSWIN32) && !defined(MSWINCE) */
22308 #if defined(MSWIN32) || defined(_WIN32_WCE_EMULATION)
22309 /* Workaround for the OS mapping and unmapping behind our back: */
22310 @@ -612,11 +573,8 @@
22312 /* Mark thread local free lists, even if their mark */
22313 /* descriptor excludes the link field. */
22314 - /* If the world is not stopped, this is unsafe. It is */
22315 - /* also unnecessary, since we will do this again with the */
22316 - /* world stopped. */
22317 # ifdef THREAD_LOCAL_ALLOC
22318 - if (GC_world_stopped) GC_mark_thread_local_free_lists();
22319 + GC_mark_thread_local_free_lists();
22323 diff -Nur ../boehm-gc/misc.c boehm-gc/misc.c
22324 --- ../boehm-gc/misc.c Mon May 26 12:48:52 2003
22325 +++ boehm-gc/misc.c Mon Mar 3 22:38:30 2003
22327 # ifdef GC_SOLARIS_THREADS
22328 mutex_t GC_allocate_ml; /* Implicitly initialized. */
22330 -# if defined(GC_WIN32_THREADS)
22331 -# if defined(GC_PTHREADS)
22332 - pthread_mutex_t GC_allocate_ml = PTHREAD_MUTEX_INITIALIZER;
22333 -# elif defined(GC_DLL)
22334 +# ifdef GC_WIN32_THREADS
22335 +# if !defined(GC_NOT_DLL) && (defined(_DLL) || defined(GC_DLL))
22336 __declspec(dllexport) CRITICAL_SECTION GC_allocate_ml;
22338 CRITICAL_SECTION GC_allocate_ml;
22343 -/* Dont unnecessarily call GC_register_main_static_data() in case */
22344 -/* dyn_load.c isn't linked in. */
22345 +/* Dont unnecessarily call GC_register_main_static_data() in case */
22346 +/* dyn_load.c isn't linked in. */
22347 #ifdef DYNAMIC_LOADING
22348 # define GC_REGISTER_MAIN_STATIC_DATA() GC_register_main_static_data()
22351 /* defined here so we don't have to load debug_malloc.o */
22353 void (*GC_check_heap) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
22354 -void (*GC_print_all_smashed) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
22356 void (*GC_start_call_back) GC_PROTO((void)) = (void (*) GC_PROTO((void)))0;
22358 @@ -112,10 +109,6 @@
22360 GC_bool GC_print_back_height = 0;
22362 -#ifndef NO_DEBUGGING
22363 - GC_bool GC_dump_regularly = 0; /* Generate regular debugging dumps. */
22367 int GC_find_leak = 1;
22369 @@ -144,13 +137,6 @@
22371 extern signed_word GC_mem_found;
22373 -void * GC_project2(arg1, arg2)
22380 # ifdef MERGE_SIZES
22381 /* Set things up so that GC_size_map[i] >= words(i), */
22382 /* but not too much bigger */
22383 @@ -469,7 +455,7 @@
22387 -#if defined(GC_WIN32_THREADS) && !defined(GC_PTHREADS)
22389 if (!GC_is_initialized) InitializeCriticalSection(&GC_allocate_ml);
22390 #endif /* MSWIN32 */
22392 @@ -487,15 +473,6 @@
22393 GC_init_parallel();
22395 # endif /* PARALLEL_MARK || THREAD_LOCAL_ALLOC */
22397 -# if defined(DYNAMIC_LOADING) && defined(DARWIN)
22399 - /* This must be called WITHOUT the allocation lock held
22400 - and before any threads are created */
22401 - extern void GC_init_dyld();
22407 #if defined(MSWIN32) || defined(MSWINCE)
22408 @@ -508,22 +485,6 @@
22410 extern void GC_setpagesize();
22414 -extern GC_bool GC_no_win32_dlls;
22416 -# define GC_no_win32_dlls FALSE
22419 -void GC_exit_check GC_PROTO((void))
22424 -#ifdef SEARCH_FOR_DATA_START
22425 - extern void GC_init_linux_data_start GC_PROTO((void));
22430 extern void GC_set_and_save_fault_handler GC_PROTO((void (*handler)(int)));
22431 @@ -534,23 +495,12 @@
22432 GC_err_printf1("Caught signal %d: looping in handler\n", sig);
22437 -static GC_bool installed_looping_handler = FALSE;
22439 -void maybe_install_looping_handler()
22441 - /* Install looping handler before the write fault handler, so we */
22442 - /* handle write faults correctly. */
22443 - if (!installed_looping_handler && 0 != GETENV("GC_LOOP_ON_ABORT")) {
22444 - GC_set_and_save_fault_handler(looping_handler);
22445 - installed_looping_handler = TRUE;
22449 -#else /* !UNIX_LIKE */
22451 -# define maybe_install_looping_handler()
22454 +extern GC_bool GC_no_win32_dlls;
22456 +# define GC_no_win32_dlls FALSE
22459 void GC_init_inner()
22460 @@ -565,21 +515,14 @@
22461 GC_print_stats = 1;
22463 # if defined(MSWIN32) || defined(MSWINCE)
22464 - InitializeCriticalSection(&GC_write_cs);
22465 + InitializeCriticalSection(&GC_write_cs);
22468 if (0 != GETENV("GC_PRINT_STATS")) {
22469 GC_print_stats = 1;
22471 -# ifndef NO_DEBUGGING
22472 - if (0 != GETENV("GC_DUMP_REGULARLY")) {
22473 - GC_dump_regularly = 1;
22476 if (0 != GETENV("GC_FIND_LEAK")) {
22479 - atexit(GC_exit_check);
22482 if (0 != GETENV("GC_ALL_INTERIOR_POINTERS")) {
22483 GC_all_interior_pointers = 1;
22484 @@ -617,7 +560,11 @@
22488 - maybe_install_looping_handler();
22490 + if (0 != GETENV("GC_LOOP_ON_ABORT")) {
22491 + GC_set_and_save_fault_handler(looping_handler);
22494 /* Adjust normal object descriptor for extra allocation. */
22495 if (ALIGNMENT > GC_DS_TAGS && EXTRA_BYTES != 0) {
22496 GC_obj_kinds[NORMAL].ok_descriptor = ((word)(-ALIGNMENT) | GC_DS_LENGTH);
22497 @@ -652,21 +599,11 @@
22498 # if defined(LINUX) && defined(IA64)
22499 GC_register_stackbottom = GC_get_register_stack_base();
22502 -# if defined(LINUX) && defined(IA64)
22503 - if (GC_register_stackbottom == 0) {
22504 - WARN("GC_register_stackbottom should be set with GC_stackbottom", 0);
22505 - /* The following is likely to fail, since we rely on */
22506 - /* alignment properties that may not hold with a user set */
22507 - /* GC_stackbottom. */
22508 - GC_register_stackbottom = GC_get_register_stack_base();
22513 - GC_STATIC_ASSERT(sizeof (ptr_t) == sizeof(word));
22514 - GC_STATIC_ASSERT(sizeof (signed_word) == sizeof(word));
22515 - GC_STATIC_ASSERT(sizeof (struct hblk) == HBLKSIZE);
22516 + GC_ASSERT(sizeof (ptr_t) == sizeof(word));
22517 + GC_ASSERT(sizeof (signed_word) == sizeof(word));
22518 + GC_ASSERT(sizeof (struct hblk) == HBLKSIZE);
22520 # if defined(STACK_GROWS_UP) && defined(STACK_GROWS_DOWN)
22522 @@ -705,18 +642,6 @@
22523 initial_heap_sz = divHBLKSZ(initial_heap_sz);
22527 - char * sz_str = GETENV("GC_MAXIMUM_HEAP_SIZE");
22528 - if (sz_str != NULL) {
22529 - word max_heap_sz = (word)atol(sz_str);
22530 - if (max_heap_sz < initial_heap_sz * HBLKSIZE) {
22531 - WARN("Bad maximum heap size %s - ignoring it.\n",
22534 - if (0 == GC_max_retries) GC_max_retries = 2;
22535 - GC_set_max_heap_size(max_heap_sz);
22538 if (!GC_expand_hp_inner(initial_heap_sz)) {
22539 GC_err_printf0("Can't start up: not enough memory\n");
22541 @@ -752,7 +677,6 @@
22542 GC_incremental = TRUE;
22544 # endif /* !SMALL_CONFIG */
22546 /* Get black list set up and/or incrmental GC started */
22547 if (!GC_dont_precollect || GC_incremental) GC_gcollect_inner();
22548 GC_is_initialized = TRUE;
22549 @@ -788,9 +712,8 @@
22550 if (GC_incremental) goto out;
22552 if (GC_no_win32_dlls) goto out;
22553 -# ifndef GC_SOLARIS_THREADS
22554 - maybe_install_looping_handler(); /* Before write fault handler! */
22556 +# ifndef GC_SOLARIS_THREADS
22559 if (!GC_is_initialized) {
22561 @@ -1009,17 +932,6 @@
22565 -# if defined(__STDC__) || defined(__cplusplus)
22566 - GC_word GC_set_free_space_divisor (GC_word value)
22568 - GC_word GC_set_free_space_divisor (value)
22572 - GC_word old = GC_free_space_divisor;
22573 - GC_free_space_divisor = value;
22579 @@ -1046,18 +958,122 @@
22583 +#ifdef NEED_CALLINFO
22585 +#ifdef HAVE_BUILTIN_BACKTRACE
22586 +# include <execinfo.h>
22588 +# include <unistd.h>
22592 +void GC_print_callers (info)
22593 +struct callinfo info[NFRAMES];
22598 + GC_err_printf0("\tCaller at allocation:\n");
22600 + GC_err_printf0("\tCall chain at allocation:\n");
22602 + for (i = 0; i < NFRAMES; i++) {
22603 + if (info[i].ci_pc == 0) break;
22608 + GC_err_printf0("\t\targs: ");
22609 + for (j = 0; j < NARGS; j++) {
22610 + if (j != 0) GC_err_printf0(", ");
22611 + GC_err_printf2("%d (0x%X)", ~(info[i].ci_arg[j]),
22612 + ~(info[i].ci_arg[j]));
22614 + GC_err_printf0("\n");
22617 +# if defined(HAVE_BUILTIN_BACKTRACE) && !defined(REDIRECT_MALLOC)
22618 + /* Unfortunately backtrace_symbols calls malloc, which makes */
22619 + /* it dangersous if that has been redirected. */
22621 + char **sym_name =
22622 + backtrace_symbols((void **)(&(info[i].ci_pc)), 1);
22623 + char *name = sym_name[0];
22624 + GC_bool found_it = (strchr(name, '(') != 0);
22628 +# define EXE_SZ 100
22629 + static char exe_name[EXE_SZ];
22630 +# define CMD_SZ 200
22631 + char cmd_buf[CMD_SZ];
22632 +# define RESULT_SZ 200
22633 + static char result_buf[RESULT_SZ];
22634 + size_t result_len;
22635 + static GC_bool found_exe_name = FALSE;
22636 + static GC_bool will_fail = FALSE;
22638 + /* Unfortunately, this is the common case for the */
22639 + /* main executable. */
22640 + /* Try to get it via a hairy and expensive scheme. */
22641 + /* First we get the name of the executable: */
22642 + if (will_fail) goto out;
22643 + if (!found_exe_name) {
22644 + ret_code = readlink("/proc/self/exe", exe_name, EXE_SZ);
22645 + if (ret_code < 0 || ret_code >= EXE_SZ || exe_name[0] != '/') {
22646 + will_fail = TRUE; /* Dont try again. */
22649 + exe_name[ret_code] = '\0';
22650 + found_exe_name = TRUE;
22652 + /* Then we use popen to start addr2line -e <exe> <addr> */
22653 + /* There are faster ways to do this, but hopefully this */
22654 + /* isn't time critical. */
22655 + sprintf(cmd_buf, "/usr/bin/addr2line -e %s 0x%lx", exe_name,
22656 + (unsigned long)info[i].ci_pc);
22657 + pipe = popen(cmd_buf, "r");
22658 + if (pipe < 0 || fgets(result_buf, RESULT_SZ, pipe) == 0) {
22659 + will_fail = TRUE;
22662 + result_len = strlen(result_buf);
22663 + if (result_buf[result_len - 1] == '\n') --result_len;
22664 + if (result_buf[0] == '?'
22665 + || result_buf[result_len-2] == ':'
22666 + && result_buf[result_len-1] == '0')
22668 + if (result_len < RESULT_SZ - 25) {
22669 + /* Add in hex address */
22670 + sprintf(result_buf + result_len, " [0x%lx]",
22671 + (unsigned long)info[i].ci_pc);
22673 + name = result_buf;
22678 + GC_err_printf1("\t\t%s\n", name);
22682 + GC_err_printf1("\t\t##PC##= 0x%lx\n", info[i].ci_pc);
22687 +#endif /* SAVE_CALL_CHAIN */
22689 +/* Needed by SRC_M3, gcj, and should perhaps be the official interface */
22690 +/* to GC_dont_gc. */
22705 #if !defined(NO_DEBUGGING)
22706 @@ -1072,8 +1088,6 @@
22707 GC_print_hblkfreelist();
22708 GC_printf0("\n***Blocks in use:\n");
22709 GC_print_block_list();
22710 - GC_printf0("\n***Finalization statistics:\n");
22711 - GC_print_finalization_stats();
22714 #endif /* NO_DEBUGGING */
22715 diff -Nur ../boehm-gc/os_dep.c boehm-gc/os_dep.c
22716 --- ../boehm-gc/os_dep.c Sat May 31 14:46:38 2003
22717 +++ boehm-gc/os_dep.c Fri Jul 19 01:54:43 2002
22718 @@ -80,17 +80,14 @@
22719 # define NEED_FIND_LIMIT
22722 -#if defined(FREEBSD) && defined(I386)
22723 -# include <machine/trap.h>
22724 -# if !defined(PCR)
22725 -# define NEED_FIND_LIMIT
22729 #ifdef NEED_FIND_LIMIT
22730 # include <setjmp.h>
22733 +#if defined(FREEBSD) && defined(I386)
22734 +# include <machine/trap.h>
22738 # define GC_AMIGA_DEF
22739 # include "AmigaOS.c"
22740 @@ -132,11 +129,6 @@
22741 # define jmp_buf sigjmp_buf
22745 -/* for get_etext and friends */
22746 -#include <mach-o/getsect.h>
22750 /* Apparently necessary for djgpp 2.01. May cause problems with */
22751 /* other versions. */
22752 @@ -155,155 +147,6 @@
22753 # define OPT_PROT_EXEC 0
22756 -#if defined(LINUX) && \
22757 - (defined(USE_PROC_FOR_LIBRARIES) || defined(IA64) || !defined(SMALL_CONFIG))
22759 -/* We need to parse /proc/self/maps, either to find dynamic libraries, */
22760 -/* and/or to find the register backing store base (IA64). Do it once */
22765 -/* Repeatedly perform a read call until the buffer is filled or */
22766 -/* we encounter EOF. */
22767 -ssize_t GC_repeat_read(int fd, char *buf, size_t count)
22769 - ssize_t num_read = 0;
22772 - while (num_read < count) {
22773 - result = READ(fd, buf + num_read, count - num_read);
22774 - if (result < 0) return result;
22775 - if (result == 0) break;
22776 - num_read += result;
22782 - * Apply fn to a buffer containing the contents of /proc/self/maps.
22783 - * Return the result of fn or, if we failed, 0.
22786 -word GC_apply_to_maps(word (*fn)(char *))
22791 - char maps_temp[32768];
22794 - /* Read /proc/self/maps */
22795 - /* Note that we may not allocate, and thus can't use stdio. */
22796 - f = open("/proc/self/maps", O_RDONLY);
22797 - if (-1 == f) return 0;
22798 - /* stat() doesn't work for /proc/self/maps, so we have to
22799 - read it to find out how large it is... */
22802 - result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
22803 - if (result <= 0) return 0;
22804 - maps_size += result;
22805 - } while (result == sizeof(maps_temp));
22807 - if (maps_size > sizeof(maps_temp)) {
22808 - /* If larger than our buffer, close and re-read it. */
22810 - f = open("/proc/self/maps", O_RDONLY);
22811 - if (-1 == f) return 0;
22812 - maps_buf = alloca(maps_size);
22813 - if (NULL == maps_buf) return 0;
22814 - result = GC_repeat_read(f, maps_buf, maps_size);
22815 - if (result <= 0) return 0;
22817 - /* Otherwise use the fixed size buffer */
22818 - maps_buf = maps_temp;
22822 - maps_buf[result] = '\0';
22824 - /* Apply fn to result. */
22825 - return fn(maps_buf);
22828 -#endif /* Need GC_apply_to_maps */
22830 -#if defined(LINUX) && (defined(USE_PROC_FOR_LIBRARIES) || defined(IA64))
22832 -// GC_parse_map_entry parses an entry from /proc/self/maps so we can
22833 -// locate all writable data segments that belong to shared libraries.
22834 -// The format of one of these entries and the fields we care about
22836 -// XXXXXXXX-XXXXXXXX r-xp 00000000 30:05 260537 name of mapping...\n
22837 -// ^^^^^^^^ ^^^^^^^^ ^^^^ ^^
22838 -// start end prot maj_dev
22841 -// For 64 bit ABIs:
22844 -// The parser is called with a pointer to the entry and the return value
22845 -// is either NULL or is advanced to the next entry(the byte after the
22846 -// trailing '\n'.)
22848 -#if CPP_WORDSZ == 32
22849 -# define OFFSET_MAP_START 0
22850 -# define OFFSET_MAP_END 9
22851 -# define OFFSET_MAP_PROT 18
22852 -# define OFFSET_MAP_MAJDEV 32
22853 -# define ADDR_WIDTH 8
22856 -#if CPP_WORDSZ == 64
22857 -# define OFFSET_MAP_START 0
22858 -# define OFFSET_MAP_END 17
22859 -# define OFFSET_MAP_PROT 34
22860 -# define OFFSET_MAP_MAJDEV 56
22861 -# define ADDR_WIDTH 16
22865 - * Assign various fields of the first line in buf_ptr to *start, *end,
22866 - * *prot_buf and *maj_dev. Only *prot_buf may be set for unwritable maps.
22868 -char *GC_parse_map_entry(char *buf_ptr, word *start, word *end,
22869 - char *prot_buf, unsigned int *maj_dev)
22874 - if (buf_ptr == NULL || *buf_ptr == '\0') {
22878 - memcpy(prot_buf, buf_ptr+OFFSET_MAP_PROT, 4); // do the protections first
22879 - prot_buf[4] = '\0';
22881 - if (prot_buf[1] == 'w') { // we can skip all of this if it's not writable
22884 - buf_ptr[OFFSET_MAP_START+ADDR_WIDTH] = '\0';
22885 - *start = strtoul(tok, NULL, 16);
22887 - tok = buf_ptr+OFFSET_MAP_END;
22888 - buf_ptr[OFFSET_MAP_END+ADDR_WIDTH] = '\0';
22889 - *end = strtoul(tok, NULL, 16);
22891 - buf_ptr += OFFSET_MAP_MAJDEV;
22893 - while (*buf_ptr != ':') buf_ptr++;
22894 - *buf_ptr++ = '\0';
22895 - *maj_dev = strtoul(tok, NULL, 16);
22898 - while (*buf_ptr && *buf_ptr++ != '\n');
22903 -#endif /* Need to parse /proc/self/maps. */
22905 #if defined(SEARCH_FOR_DATA_START)
22906 /* The I386 case can be handled without a search. The Alpha case */
22907 /* used to be handled differently as well, but the rules changed */
22908 @@ -311,11 +154,6 @@
22909 /* cover all versions. */
22912 - /* Some Linux distributions arrange to define __data_start. Some */
22913 - /* define data_start as a weak symbol. The latter is technically */
22914 - /* broken, since the user program may define data_start, in which */
22915 - /* case we lose. Nonetheless, we try both, prefering __data_start. */
22916 - /* We assume gcc-compatible pragmas. */
22917 # pragma weak __data_start
22918 extern int __data_start[];
22919 # pragma weak data_start
22920 @@ -331,16 +169,16 @@
22923 /* Try the easy approaches first: */
22924 - if ((ptr_t)__data_start != 0) {
22925 - GC_data_start = (ptr_t)(__data_start);
22926 + if (__data_start != 0) {
22927 + GC_data_start = (ptr_t)__data_start;
22930 - if ((ptr_t)data_start != 0) {
22931 - GC_data_start = (ptr_t)(data_start);
22932 + if (data_start != 0) {
22933 + GC_data_start = (ptr_t)data_start;
22936 # endif /* LINUX */
22937 - GC_data_start = GC_find_limit((ptr_t)(_end), FALSE);
22938 + GC_data_start = GC_find_limit((ptr_t)_end, FALSE);
22942 @@ -703,7 +541,7 @@
22946 -# if defined(SUNOS5SIGS) || defined(IRIX5) \
22947 +# if defined(SUNOS5SIGS) || defined(IRIX5) \
22948 || defined(OSF1) || defined(HURD)
22949 struct sigaction act;
22951 @@ -763,68 +601,67 @@
22953 void GC_reset_fault_handler()
22955 -# if defined(SUNOS5SIGS) || defined(IRIX5) \
22956 - || defined(OSF1) || defined(HURD)
22957 - (void) sigaction(SIGSEGV, &old_segv_act, 0);
22958 -# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
22959 - || defined(HPUX) || defined(HURD)
22960 - (void) sigaction(SIGBUS, &old_bus_act, 0);
22963 - (void) signal(SIGSEGV, old_segv_handler);
22965 - (void) signal(SIGBUS, old_bus_handler);
22968 +# if defined(SUNOS5SIGS) || defined(IRIX5) \
22969 + || defined(OSF1) || defined(HURD)
22970 + (void) sigaction(SIGSEGV, &old_segv_act, 0);
22971 +# if defined(IRIX5) && defined(_sigargs) /* Irix 5.x, not 6.x */ \
22972 + || defined(HPUX) || defined(HURD)
22973 + (void) sigaction(SIGBUS, &old_bus_act, 0);
22976 + (void) signal(SIGSEGV, old_segv_handler);
22978 + (void) signal(SIGBUS, old_bus_handler);
22983 /* Return the first nonaddressible location > p (up) or */
22984 - /* the smallest location q s.t. [q,p) is addressable (!up). */
22985 - /* We assume that p (up) or p-1 (!up) is addressable. */
22986 + /* the smallest location q s.t. [q,p] is addressible (!up). */
22987 ptr_t GC_find_limit(p, up)
22991 - static VOLATILE ptr_t result;
22992 - /* Needs to be static, since otherwise it may not be */
22993 - /* preserved across the longjmp. Can safely be */
22994 - /* static since it's only called once, with the */
22995 - /* allocation lock held. */
22998 - GC_setup_temporary_fault_handler();
22999 - if (setjmp(GC_jmp_buf) == 0) {
23000 - result = (ptr_t)(((word)(p))
23001 - & ~(MIN_PAGE_SIZE-1));
23004 - result += MIN_PAGE_SIZE;
23006 - result -= MIN_PAGE_SIZE;
23008 - GC_noop1((word)(*result));
23011 - GC_reset_fault_handler();
23013 + static VOLATILE ptr_t result;
23014 + /* Needs to be static, since otherwise it may not be */
23015 + /* preserved across the longjmp. Can safely be */
23016 + /* static since it's only called once, with the */
23017 + /* allocation lock held. */
23020 + GC_setup_temporary_fault_handler();
23021 + if (setjmp(GC_jmp_buf) == 0) {
23022 + result = (ptr_t)(((word)(p))
23023 + & ~(MIN_PAGE_SIZE-1));
23026 result += MIN_PAGE_SIZE;
23030 + result -= MIN_PAGE_SIZE;
23032 + GC_noop1((word)(*result));
23035 + GC_reset_fault_handler();
23037 + result += MIN_PAGE_SIZE;
23043 -#if defined(ECOS) || defined(NOSYS)
23044 - ptr_t GC_get_stack_base()
23046 - return STACKBOTTOM;
23049 +# if defined(ECOS) || defined(NOSYS)
23050 +ptr_t GC_get_stack_base()
23052 + return STACKBOTTOM;
23057 #ifdef LINUX_STACKBOTTOM
23059 #include <sys/types.h>
23060 #include <sys/stat.h>
23061 -#include <ctype.h>
23063 # define STAT_SKIP 27 /* Number of fields preceding startstack */
23064 /* field in /proc/self/stat */
23065 @@ -833,33 +670,6 @@
23066 extern ptr_t __libc_stack_end;
23069 - /* Try to read the backing store base from /proc/self/maps. */
23070 - /* We look for the writable mapping with a 0 major device, */
23071 - /* which is as close to our frame as possible, but below it.*/
23072 - static word backing_store_base_from_maps(char *maps)
23074 - char prot_buf[5];
23075 - char *buf_ptr = maps;
23077 - unsigned int maj_dev;
23078 - word current_best = 0;
23082 - buf_ptr = GC_parse_map_entry(buf_ptr, &start, &end, prot_buf, &maj_dev);
23083 - if (buf_ptr == NULL) return current_best;
23084 - if (prot_buf[1] == 'w' && maj_dev == 0) {
23085 - if (end < (word)(&dummy) && start > current_best) current_best = start;
23088 - return current_best;
23091 - static word backing_store_base_from_proc(void)
23093 - return GC_apply_to_maps(backing_store_base_from_maps);
23096 # pragma weak __libc_ia64_register_backing_store_base
23097 extern ptr_t __libc_ia64_register_backing_store_base;
23099 @@ -873,15 +683,9 @@
23100 /* Hence we check for both nonzero address and value. */
23101 return __libc_ia64_register_backing_store_base;
23103 - word result = backing_store_base_from_proc();
23104 - if (0 == result) {
23105 - /* Use dumb heuristics. Works only for default configuration. */
23106 - result = (word)GC_stackbottom - BACKING_STORE_DISPLACEMENT;
23107 - result += BACKING_STORE_ALIGNMENT - 1;
23108 - result &= ~(BACKING_STORE_ALIGNMENT - 1);
23109 - /* Verify that it's at least readable. If not, we goofed. */
23110 - GC_noop1(*(word *)result);
23112 + word result = (word)GC_stackbottom - BACKING_STORE_DISPLACEMENT;
23113 + result += BACKING_STORE_ALIGNMENT - 1;
23114 + result &= ~(BACKING_STORE_ALIGNMENT - 1);
23115 return (ptr_t)result;
23118 @@ -893,8 +697,11 @@
23119 /* using direct I/O system calls in order to avoid calling malloc */
23120 /* in case REDIRECT_MALLOC is defined. */
23121 # define STAT_BUF_SIZE 4096
23122 -# define STAT_READ read
23123 - /* Should probably call the real read, if read is wrapped. */
23124 +# if defined(GC_USE_LD_WRAP)
23125 +# define STAT_READ __real_read
23127 +# define STAT_READ read
23129 char stat_buf[STAT_BUF_SIZE];
23132 @@ -903,16 +710,7 @@
23134 /* First try the easy way. This should work for glibc 2.2 */
23135 if (0 != &__libc_stack_end) {
23137 - /* Some versions of glibc set the address 16 bytes too */
23138 - /* low while the initialization code is running. */
23139 - if (((word)__libc_stack_end & 0xfff) + 0x10 < 0x1000) {
23140 - return __libc_stack_end + 0x10;
23141 - } /* Otherwise it's not safe to add 16 bytes and we fall */
23142 - /* back to using /proc. */
23144 - return __libc_stack_end;
23146 + return __libc_stack_end;
23148 f = open("/proc/self/stat", O_RDONLY);
23149 if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) {
23150 @@ -966,11 +764,8 @@
23152 ptr_t GC_get_stack_base()
23154 -# if defined(HEURISTIC1) || defined(HEURISTIC2) || \
23155 - defined(LINUX_STACKBOTTOM) || defined(FREEBSD_STACKBOTTOM)
23162 # define STACKBOTTOM_ALIGNMENT_M1 ((word)STACK_GRAN - 1)
23164 @@ -1019,6 +814,7 @@
23166 # endif /* STACKBOTTOM */
23168 +# endif /* NOSYS ECOS */
23170 # endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS */
23172 @@ -1128,14 +924,15 @@
23173 /* Unfortunately, we have to handle win32s very differently from NT, */
23174 /* Since VirtualQuery has very different semantics. In particular, */
23175 /* under win32s a VirtualQuery call on an unmapped page returns an */
23176 - /* invalid result. Under NT, GC_register_data_segments is a noop and */
23177 + /* invalid result. Under GC_register_data_segments is a noop and */
23178 /* all real work is done by GC_register_dynamic_libraries. Under */
23179 /* win32s, we cannot find the data segments associated with dll's. */
23180 - /* We register the main data segment here. */
23181 + /* We rgister the main data segment here. */
23183 + GC_bool GC_no_win32_dlls = TRUE; /* GCC can't do SEH, so we can't use VirtualQuery */
23185 GC_bool GC_no_win32_dlls = FALSE;
23186 - /* This used to be set for gcc, to avoid dealing with */
23187 - /* the structured exception handling issues. But we now have */
23188 - /* assembly code to do that right. */
23191 void GC_init_win32()
23193 @@ -1167,102 +964,36 @@
23198 -# ifndef REDIRECT_MALLOC
23199 - /* We maintain a linked list of AllocationBase values that we know */
23200 - /* correspond to malloc heap sections. Currently this is only called */
23201 - /* during a GC. But there is some hope that for long running */
23202 - /* programs we will eventually see most heap sections. */
23204 - /* In the long run, it would be more reliable to occasionally walk */
23205 - /* the malloc heap with HeapWalk on the default heap. But that */
23206 - /* apparently works only for NT-based Windows. */
23208 - /* In the long run, a better data structure would also be nice ... */
23209 - struct GC_malloc_heap_list {
23210 - void * allocation_base;
23211 - struct GC_malloc_heap_list *next;
23212 - } *GC_malloc_heap_l = 0;
23214 - /* Is p the base of one of the malloc heap sections we already know */
23216 - GC_bool GC_is_malloc_heap_base(ptr_t p)
23218 - struct GC_malloc_heap_list *q = GC_malloc_heap_l;
23221 - if (q -> allocation_base == p) return TRUE;
23227 - void *GC_get_allocation_base(void *p)
23229 - MEMORY_BASIC_INFORMATION buf;
23230 - DWORD result = VirtualQuery(p, &buf, sizeof(buf));
23231 - if (result != sizeof(buf)) {
23232 - ABORT("Weird VirtualQuery result");
23234 - return buf.AllocationBase;
23237 - size_t GC_max_root_size = 100000; /* Appr. largest root size. */
23239 - void GC_add_current_malloc_heap()
23241 - struct GC_malloc_heap_list *new_l =
23242 - malloc(sizeof(struct GC_malloc_heap_list));
23243 - void * candidate = GC_get_allocation_base(new_l);
23245 - if (new_l == 0) return;
23246 - if (GC_is_malloc_heap_base(candidate)) {
23247 - /* Try a little harder to find malloc heap. */
23248 - size_t req_size = 10000;
23250 - void *p = malloc(req_size);
23251 - if (0 == p) { free(new_l); return; }
23252 - candidate = GC_get_allocation_base(p);
23255 - } while (GC_is_malloc_heap_base(candidate)
23256 - && req_size < GC_max_root_size/10 && req_size < 500000);
23257 - if (GC_is_malloc_heap_base(candidate)) {
23258 - free(new_l); return;
23262 - if (GC_print_stats)
23263 - GC_printf1("Found new system malloc AllocationBase at 0x%lx\n",
23266 - new_l -> allocation_base = candidate;
23267 - new_l -> next = GC_malloc_heap_l;
23268 - GC_malloc_heap_l = new_l;
23270 -# endif /* REDIRECT_MALLOC */
23272 /* Is p the start of either the malloc heap, or of one of our */
23273 /* heap sections? */
23274 GC_bool GC_is_heap_base (ptr_t p)
23278 + register unsigned i;
23280 # ifndef REDIRECT_MALLOC
23281 - static word last_gc_no = -1;
23282 + static ptr_t malloc_heap_pointer = 0;
23284 - if (last_gc_no != GC_gc_no) {
23285 - GC_add_current_malloc_heap();
23286 - last_gc_no = GC_gc_no;
23287 + if (0 == malloc_heap_pointer) {
23288 + MEMORY_BASIC_INFORMATION buf;
23289 + void *pTemp = malloc( 1 );
23290 + register DWORD result = VirtualQuery(pTemp, &buf, sizeof(buf));
23295 + if (result != sizeof(buf)) {
23296 + ABORT("Weird VirtualQuery result");
23298 + malloc_heap_pointer = (ptr_t)(buf.AllocationBase);
23300 - if (GC_root_size > GC_max_root_size) GC_max_root_size = GC_root_size;
23301 - if (GC_is_malloc_heap_base(p)) return TRUE;
23302 + if (p == malloc_heap_pointer) return(TRUE);
23304 for (i = 0; i < GC_n_heap_bases; i++) {
23305 - if (GC_heap_bases[i] == p) return TRUE;
23306 + if (GC_heap_bases[i] == p) return(TRUE);
23313 @@ -1312,7 +1043,7 @@
23315 # if (defined(SVR4) || defined(AUX) || defined(DGUX) \
23316 || (defined(LINUX) && defined(SPARC))) && !defined(PCR)
23317 -ptr_t GC_SysVGetDataStart(max_page_size, etext_addr)
23318 +char * GC_SysVGetDataStart(max_page_size, etext_addr)
23322 @@ -1338,43 +1069,10 @@
23323 /* string constants in the text segment, but after etext. */
23324 /* Use plan B. Note that we now know there is a gap between */
23325 /* text and data segments, so plan A bought us something. */
23326 - result = (char *)GC_find_limit((ptr_t)(DATAEND), FALSE);
23327 + result = (char *)GC_find_limit((ptr_t)(DATAEND) - MIN_PAGE_SIZE, FALSE);
23329 - return((ptr_t)result);
23333 -# if defined(FREEBSD) && defined(I386) && !defined(PCR)
23334 -/* Its unclear whether this should be identical to the above, or */
23335 -/* whether it should apply to non-X86 architectures. */
23336 -/* For now we don't assume that there is always an empty page after */
23337 -/* etext. But in some cases there actually seems to be slightly more. */
23338 -/* This also deals with holes between read-only data and writable data. */
23339 -ptr_t GC_FreeBSDGetDataStart(max_page_size, etext_addr)
23340 -int max_page_size;
23343 - word text_end = ((word)(etext_addr) + sizeof(word) - 1)
23344 - & ~(sizeof(word) - 1);
23345 - /* etext rounded to word boundary */
23346 - VOLATILE word next_page = (text_end + (word)max_page_size - 1)
23347 - & ~((word)max_page_size - 1);
23348 - VOLATILE ptr_t result = (ptr_t)text_end;
23349 - GC_setup_temporary_fault_handler();
23350 - if (setjmp(GC_jmp_buf) == 0) {
23351 - /* Try reading at the address. */
23352 - /* This should happen before there is another thread. */
23353 - for (; next_page < (word)(DATAEND); next_page += (word)max_page_size)
23354 - *(VOLATILE char *)next_page;
23355 - GC_reset_fault_handler();
23357 - GC_reset_fault_handler();
23358 - /* As above, we go to plan B */
23359 - result = GC_find_limit((ptr_t)(DATAEND), FALSE);
23362 + return((char *)result);
23368 @@ -1388,7 +1086,8 @@
23370 void GC_register_data_segments()
23372 -# if !defined(PCR) && !defined(SRC_M3) && !defined(MACOS)
23373 +# if !defined(PCR) && !defined(SRC_M3) && !defined(NEXT) && !defined(MACOS) \
23374 + && !defined(MACOSX)
23375 # if defined(REDIRECT_MALLOC) && defined(GC_SOLARIS_THREADS)
23376 /* As of Solaris 2.3, the Solaris threads implementation */
23377 /* allocates the data structure for the initial thread with */
23378 @@ -1405,6 +1104,9 @@
23382 +# if !defined(PCR) && (defined(NEXT) || defined(MACOSX))
23383 + GC_add_roots_inner(DATASTART, (char *) get_end(), FALSE);
23385 # if defined(MACOS)
23387 # if defined(THINK_C)
23388 @@ -1514,28 +1216,18 @@
23389 ptr_t GC_unix_get_mem(bytes)
23392 + static GC_bool initialized = FALSE;
23395 static ptr_t last_addr = HEAP_START;
23397 -# ifndef USE_MMAP_ANON
23398 - static GC_bool initialized = FALSE;
23401 - if (!initialized) {
23402 - fd = open("/dev/zero", O_RDONLY);
23403 - fcntl(fd, F_SETFD, FD_CLOEXEC);
23404 - initialized = TRUE;
23408 + if (!initialized) {
23409 + fd = open("/dev/zero", O_RDONLY);
23410 + initialized = TRUE;
23412 if (bytes & (GC_page_size -1)) ABORT("Bad GET_MEM arg");
23413 -# ifdef USE_MMAP_ANON
23414 - result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23415 - GC_MMAP_FLAGS | MAP_ANON, -1, 0/* offset */);
23417 - result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23418 - GC_MMAP_FLAGS, fd, 0/* offset */);
23420 + result = mmap(last_addr, bytes, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23421 + GC_MMAP_FLAGS, fd, 0/* offset */);
23422 if (result == MAP_FAILED) return(0);
23423 last_addr = (ptr_t)result + bytes + GC_page_size - 1;
23424 last_addr = (ptr_t)((word)last_addr & ~(GC_page_size - 1));
23425 @@ -1630,15 +1322,7 @@
23426 result = (ptr_t) GlobalAlloc(0, bytes + HBLKSIZE);
23427 result = (ptr_t)(((word)result + HBLKSIZE) & ~(HBLKSIZE-1));
23429 - /* VirtualProtect only works on regions returned by a */
23430 - /* single VirtualAlloc call. Thus we allocate one */
23431 - /* extra page, which will prevent merging of blocks */
23432 - /* in separate regions, and eliminate any temptation */
23433 - /* to call VirtualProtect on a range spanning regions. */
23434 - /* This wastes a small amount of memory, and risks */
23435 - /* increased fragmentation. But better alternatives */
23436 - /* would require effort. */
23437 - result = (ptr_t) VirtualAlloc(NULL, bytes + 1,
23438 + result = (ptr_t) VirtualAlloc(NULL, bytes,
23439 MEM_COMMIT | MEM_RESERVE,
23440 PAGE_EXECUTE_READWRITE);
23442 @@ -1694,10 +1378,6 @@
23443 /* Reserve more pages */
23444 word res_bytes = (bytes + GC_sysinfo.dwAllocationGranularity-1)
23445 & ~(GC_sysinfo.dwAllocationGranularity-1);
23446 - /* If we ever support MPROTECT_VDB here, we will probably need to */
23447 - /* ensure that res_bytes is strictly > bytes, so that VirtualProtect */
23448 - /* never spans regions. It seems to be OK for a VirtualFree argument */
23449 - /* to span regions, so we should be OK for now. */
23450 result = (ptr_t) VirtualAlloc(NULL, res_bytes,
23451 MEM_RESERVE | MEM_TOP_DOWN,
23452 PAGE_EXECUTE_READWRITE);
23453 @@ -1828,7 +1508,6 @@
23456 if (-1 == zero_descr) zero_descr = open("/dev/zero", O_RDWR);
23457 - fcntl(zero_descr, F_SETFD, FD_CLOEXEC);
23458 if (0 == start_addr) return;
23459 result = mmap(start_addr, len, PROT_READ | PROT_WRITE | OPT_PROT_EXEC,
23460 MAP_FIXED | MAP_PRIVATE, zero_descr, 0);
23461 @@ -2015,6 +1694,7 @@
23462 * make sure that other system calls are similarly protected
23463 * or write only to the stack.
23466 GC_bool GC_dirty_maintained = FALSE;
23468 # ifdef DEFAULT_VDB
23469 @@ -2028,9 +1708,6 @@
23470 /* Initialize virtual dirty bit implementation. */
23471 void GC_dirty_init()
23474 - GC_printf0("Initializing DEFAULT_VDB...\n");
23476 GC_dirty_maintained = TRUE;
23479 @@ -2099,21 +1776,17 @@
23481 * This implementation maintains dirty bits itself by catching write
23482 * faults and keeping track of them. We assume nobody else catches
23483 - * SIGBUS or SIGSEGV. We assume no write faults occur in system calls.
23484 - * This means that clients must ensure that system calls don't write
23485 - * to the write-protected heap. Probably the best way to do this is to
23486 - * ensure that system calls write at most to POINTERFREE objects in the
23487 - * heap, and do even that only if we are on a platform on which those
23488 - * are not protected. Another alternative is to wrap system calls
23489 - * (see example for read below), but the current implementation holds
23490 - * a lock across blocking calls, making it problematic for multithreaded
23492 + * SIGBUS or SIGSEGV. We assume no write faults occur in system calls
23493 + * except as a result of a read system call. This means clients must
23494 + * either ensure that system calls do not touch the heap, or must
23495 + * provide their own wrappers analogous to the one for read.
23496 * We assume the page size is a multiple of HBLKSIZE.
23497 - * We prefer them to be the same. We avoid protecting POINTERFREE
23498 - * objects only if they are the same.
23499 + * This implementation is currently SunOS 4.X and IRIX 5.X specific, though we
23500 + * tried to use portable code where easily possible. It is known
23501 + * not to work under a number of other systems.
23504 -# if !defined(MSWIN32) && !defined(MSWINCE) && !defined(DARWIN)
23505 +# if !defined(MSWIN32) && !defined(MSWINCE)
23507 # include <sys/mman.h>
23508 # include <signal.h>
23509 @@ -2132,23 +1805,6 @@
23514 - /* Using vm_protect (mach syscall) over mprotect (BSD syscall) seems to
23515 - decrease the likelihood of some of the problems described below. */
23516 - #include <mach/vm_map.h>
23517 - extern mach_port_t GC_task_self;
23518 - #define PROTECT(addr,len) \
23519 - if(vm_protect(GC_task_self,(vm_address_t)(addr),(vm_size_t)(len), \
23520 - FALSE,VM_PROT_READ) != KERN_SUCCESS) { \
23521 - ABORT("vm_portect failed"); \
23523 - #define UNPROTECT(addr,len) \
23524 - if(vm_protect(GC_task_self,(vm_address_t)(addr),(vm_size_t)(len), \
23525 - FALSE,VM_PROT_READ|VM_PROT_WRITE) != KERN_SUCCESS) { \
23526 - ABORT("vm_portect failed"); \
23531 # include <signal.h>
23533 @@ -2166,22 +1822,20 @@
23534 &protect_junk)) { \
23535 ABORT("un-VirtualProtect failed"); \
23537 -# endif /* !DARWIN */
23538 -# endif /* MSWIN32 || MSWINCE || DARWIN */
23542 #if defined(SUNOS4) || defined(FREEBSD)
23543 typedef void (* SIG_PF)();
23544 -#endif /* SUNOS4 || FREEBSD */
23547 #if defined(SUNOS5SIGS) || defined(OSF1) || defined(LINUX) \
23549 + || defined(MACOSX) || defined(HURD)
23551 typedef void (* SIG_PF)(int);
23553 typedef void (* SIG_PF)();
23555 -#endif /* SUNOS5SIGS || OSF1 || LINUX || HURD */
23558 #if defined(MSWIN32)
23559 typedef LPTOP_LEVEL_EXCEPTION_FILTER SIG_PF;
23561 @@ -2195,8 +1849,7 @@
23563 #if defined(IRIX5) || defined(OSF1) || defined(HURD)
23564 typedef void (* REAL_SIG_PF)(int, int, struct sigcontext *);
23565 -#endif /* IRIX5 || OSF1 || HURD */
23568 #if defined(SUNOS5SIGS)
23570 # define SIGINFO __siginfo
23571 @@ -2208,14 +1861,13 @@
23573 typedef void (* REAL_SIG_PF)();
23575 -#endif /* SUNOS5SIGS */
23579 # if __GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2
23580 typedef struct sigcontext s_c;
23581 # else /* glibc < 2.2 */
23582 # include <linux/version.h>
23583 -# if (LINUX_VERSION_CODE >= 0x20100) && !defined(M68K) || defined(ALPHA) || defined(ARM32)
23584 +# if (LINUX_VERSION_CODE >= 0x20100) && !defined(M68K) || defined(ALPHA)
23585 typedef struct sigcontext s_c;
23587 typedef struct sigcontext_struct s_c;
23588 @@ -2243,14 +1895,139 @@
23589 return (char *)faultaddr;
23591 # endif /* !ALPHA */
23592 -# endif /* LINUX */
23595 +# if defined(MACOSX) /* Should also test for PowerPC? */
23596 + typedef void (* REAL_SIG_PF)(int, int, struct sigcontext *);
23598 +/* Decodes the machine instruction which was responsible for the sending of the
23599 + SIGBUS signal. Sadly this is the only way to find the faulting address because
23600 + the signal handler doesn't get it directly from the kernel (although it is
23601 + available on the Mach level, but droppped by the BSD personality before it
23602 + calls our signal handler...)
23603 + This code should be able to deal correctly with all PPCs starting from the
23604 + 601 up to and including the G4s (including Velocity Engine). */
23605 +#define EXTRACT_OP1(iw) (((iw) & 0xFC000000) >> 26)
23606 +#define EXTRACT_OP2(iw) (((iw) & 0x000007FE) >> 1)
23607 +#define EXTRACT_REGA(iw) (((iw) & 0x001F0000) >> 16)
23608 +#define EXTRACT_REGB(iw) (((iw) & 0x03E00000) >> 21)
23609 +#define EXTRACT_REGC(iw) (((iw) & 0x0000F800) >> 11)
23610 +#define EXTRACT_DISP(iw) ((short *) &(iw))[1]
23612 +static char *get_fault_addr(struct sigcontext *scp)
23614 + unsigned int instr = *((unsigned int *) scp->sc_ir);
23615 + unsigned int * regs = &((unsigned int *) scp->sc_regs)[2];
23616 + int disp = 0, tmp;
23617 + unsigned int baseA = 0, baseB = 0;
23618 + unsigned int addr, alignmask = 0xFFFFFFFF;
23620 +#ifdef GC_DEBUG_DECODER
23621 + GC_err_printf1("Instruction: 0x%lx\n", instr);
23622 + GC_err_printf1("Opcode 1: d\n", (int)EXTRACT_OP1(instr));
23624 + switch(EXTRACT_OP1(instr)) {
23625 + case 38: /* stb */
23626 + case 39: /* stbu */
23627 + case 54: /* stfd */
23628 + case 55: /* stfdu */
23629 + case 52: /* stfs */
23630 + case 53: /* stfsu */
23631 + case 44: /* sth */
23632 + case 45: /* sthu */
23633 + case 47: /* stmw */
23634 + case 36: /* stw */
23635 + case 37: /* stwu */
23636 + tmp = EXTRACT_REGA(instr);
23638 + baseA = regs[tmp];
23639 + disp = EXTRACT_DISP(instr);
23642 +#ifdef GC_DEBUG_DECODER
23643 + GC_err_printf1("Opcode 2: %d\n", (int)EXTRACT_OP2(instr));
23645 + switch(EXTRACT_OP2(instr)) {
23646 + case 86: /* dcbf */
23647 + case 54: /* dcbst */
23648 + case 1014: /* dcbz */
23649 + case 247: /* stbux */
23650 + case 215: /* stbx */
23651 + case 759: /* stfdux */
23652 + case 727: /* stfdx */
23653 + case 983: /* stfiwx */
23654 + case 695: /* stfsux */
23655 + case 663: /* stfsx */
23656 + case 918: /* sthbrx */
23657 + case 439: /* sthux */
23658 + case 407: /* sthx */
23659 + case 661: /* stswx */
23660 + case 662: /* stwbrx */
23661 + case 150: /* stwcx. */
23662 + case 183: /* stwux */
23663 + case 151: /* stwx */
23664 + case 135: /* stvebx */
23665 + case 167: /* stvehx */
23666 + case 199: /* stvewx */
23667 + case 231: /* stvx */
23668 + case 487: /* stvxl */
23669 + tmp = EXTRACT_REGA(instr);
23671 + baseA = regs[tmp];
23672 + baseB = regs[EXTRACT_REGC(instr)];
23673 + /* determine Altivec alignment mask */
23674 + switch(EXTRACT_OP2(instr)) {
23675 + case 167: /* stvehx */
23676 + alignmask = 0xFFFFFFFE;
23678 + case 199: /* stvewx */
23679 + alignmask = 0xFFFFFFFC;
23681 + case 231: /* stvx */
23682 + alignmask = 0xFFFFFFF0;
23684 + case 487: /* stvxl */
23685 + alignmask = 0xFFFFFFF0;
23689 + case 725: /* stswi */
23690 + tmp = EXTRACT_REGA(instr);
23692 + baseA = regs[tmp];
23694 + default: /* ignore instruction */
23695 +#ifdef GC_DEBUG_DECODER
23696 + GC_err_printf("Ignored by inner handler\n");
23702 + default: /* ignore instruction */
23703 +#ifdef GC_DEBUG_DECODER
23704 + GC_err_printf("Ignored by main handler\n");
23710 + addr = (baseA + baseB) + disp;
23711 + addr &= alignmask;
23712 +#ifdef GC_DEBUG_DECODER
23713 + GC_err_printf1("BaseA: %d\n", baseA);
23714 + GC_err_printf1("BaseB: %d\n", baseB);
23715 + GC_err_printf1("Disp: %d\n", disp);
23716 + GC_err_printf1("Address: %d\n", addr);
23718 + return (char *)addr;
23720 +#endif /* MACOSX */
23723 SIG_PF GC_old_bus_handler;
23724 SIG_PF GC_old_segv_handler; /* Also old MSWIN32 ACCESS_VIOLATION filter */
23725 -#endif /* !DARWIN */
23727 -#if defined(THREADS)
23729 /* We need to lock around the bitmap update in the write fault handler */
23730 /* in order to avoid the risk of losing a bit. We do this with a */
23731 /* test-and-set spin lock if we know how to do that. Otherwise we */
23732 @@ -2299,7 +2076,6 @@
23733 #endif /* !THREADS */
23736 -#if !defined(DARWIN)
23737 # if defined (SUNOS4) || defined(FREEBSD)
23738 void GC_write_fault_handler(sig, code, scp, addr)
23740 @@ -2315,8 +2091,7 @@
23741 # define SIG_OK (sig == SIGBUS)
23742 # define CODE_OK (code == BUS_PAGE_FAULT)
23744 -# endif /* SUNOS4 || FREEBSD */
23747 # if defined(IRIX5) || defined(OSF1) || defined(HURD)
23748 # include <errno.h>
23749 void GC_write_fault_handler(int sig, int code, struct sigcontext *scp)
23750 @@ -2332,8 +2107,7 @@
23751 # define SIG_OK (sig == SIGBUS || sig == SIGSEGV)
23752 # define CODE_OK TRUE
23754 -# endif /* IRIX5 || OSF1 || HURD */
23757 # if defined(LINUX)
23758 # if defined(ALPHA) || defined(M68K)
23759 void GC_write_fault_handler(int sig, int code, s_c * sc)
23760 @@ -2341,11 +2115,7 @@
23761 # if defined(IA64) || defined(HP_PA)
23762 void GC_write_fault_handler(int sig, siginfo_t * si, s_c * scp)
23764 -# if defined(ARM32)
23765 - void GC_write_fault_handler(int sig, int a2, int a3, int a4, s_c sc)
23767 - void GC_write_fault_handler(int sig, s_c sc)
23769 + void GC_write_fault_handler(int sig, s_c sc)
23772 # define SIG_OK (sig == SIGSEGV)
23773 @@ -2353,8 +2123,7 @@
23774 /* Empirically c.trapno == 14, on IA32, but is that useful? */
23775 /* Should probably consider alignment issues on other */
23776 /* architectures. */
23777 -# endif /* LINUX */
23780 # if defined(SUNOS5SIGS)
23782 void GC_write_fault_handler(int sig, struct SIGINFO *scp, void * context)
23783 @@ -2375,7 +2144,13 @@
23784 # define SIG_OK (sig == SIGSEGV)
23785 # define CODE_OK (scp -> si_code == SEGV_ACCERR)
23787 -# endif /* SUNOS5SIGS */
23790 +# if defined(MACOSX)
23791 + void GC_write_fault_handler(int sig, int code, struct sigcontext *scp)
23792 +# define SIG_OK (sig == SIGBUS)
23793 +# define CODE_OK (code == 0 /* experimentally determined */)
23796 # if defined(MSWIN32) || defined(MSWINCE)
23797 LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info)
23798 @@ -2383,7 +2158,7 @@
23799 STATUS_ACCESS_VIOLATION)
23800 # define CODE_OK (exc_info -> ExceptionRecord -> ExceptionInformation[0] == 1)
23802 -# endif /* MSWIN32 || MSWINCE */
23805 register unsigned i;
23807 @@ -2443,17 +2218,16 @@
23808 # if defined(POWERPC)
23809 char * addr = (char *) (sc.regs->dar);
23811 -# if defined(ARM32)
23812 - char * addr = (char *)sc.fault_address;
23814 - --> architecture not supported
23816 + --> architecture not supported
23823 +# if defined(MACOSX)
23824 + char * addr = get_fault_addr(scp);
23826 # if defined(MSWIN32) || defined(MSWINCE)
23827 char * addr = (char *) (exc_info -> ExceptionRecord
23828 -> ExceptionInformation[1]);
23829 @@ -2517,6 +2291,9 @@
23830 (*(REAL_SIG_PF)old_handler) (sig, code, scp);
23834 + (*(REAL_SIG_PF)old_handler) (sig, code, scp);
23837 return((*old_handler)(exc_info));
23839 @@ -2558,11 +2335,10 @@
23840 ABORT("Unexpected bus error or segmentation fault");
23843 -#endif /* !DARWIN */
23846 * We hold the allocation lock. We expect block h to be written
23847 - * shortly. Ensure that all pages containing any part of the n hblks
23848 + * shortly. Ensure that all pages cvontaining any part of the n hblks
23849 * starting at h are no longer protected. If is_ptrfree is false,
23850 * also ensure that they will subsequently appear to be dirty.
23852 @@ -2591,7 +2367,6 @@
23853 UNPROTECT(h_trunc, (ptr_t)h_end - (ptr_t)h_trunc);
23856 -#if !defined(DARWIN)
23857 void GC_dirty_init()
23859 # if defined(SUNOS5SIGS) || defined(IRIX5) || defined(LINUX) || \
23860 @@ -2614,6 +2389,13 @@
23861 (void)sigaddset(&act.sa_mask, SIG_SUSPEND);
23862 # endif /* SIG_SUSPEND */
23864 +# if defined(MACOSX)
23865 + struct sigaction act, oldact;
23867 + act.sa_flags = SA_RESTART;
23868 + act.sa_handler = GC_write_fault_handler;
23869 + sigemptyset(&act.sa_mask);
23872 GC_printf0("Inititalizing mprotect virtual dirty bit implementation\n");
23874 @@ -2653,12 +2435,9 @@
23875 sigaction(SIGSEGV, 0, &oldact);
23876 sigaction(SIGSEGV, &act, 0);
23879 - int res = sigaction(SIGSEGV, &act, &oldact);
23880 - if (res != 0) ABORT("Sigaction failed");
23882 + sigaction(SIGSEGV, &act, &oldact);
23884 -# if defined(_sigargs) || defined(HURD) || !defined(SA_SIGINFO)
23885 +# if defined(_sigargs) || defined(HURD)
23886 /* This is Irix 5.x, not 6.x. Irix 5.x does not have */
23887 /* sa_sigaction. */
23888 GC_old_segv_handler = oldact.sa_handler;
23889 @@ -2679,7 +2458,7 @@
23893 -# if defined(HPUX) || defined(LINUX) || defined(HURD)
23894 +# if defined(MACOSX) || defined(HPUX) || defined(LINUX) || defined(HURD)
23895 sigaction(SIGBUS, &act, &oldact);
23896 GC_old_bus_handler = oldact.sa_handler;
23897 if (GC_old_bus_handler == SIG_IGN) {
23898 @@ -2691,7 +2470,7 @@
23899 GC_err_printf0("Replaced other SIGBUS handler\n");
23902 -# endif /* HPUX || LINUX || HURD */
23903 +# endif /* MACOS || HPUX || LINUX */
23904 # if defined(MSWIN32)
23905 GC_old_segv_handler = SetUnhandledExceptionFilter(GC_write_fault_handler);
23906 if (GC_old_segv_handler != NULL) {
23907 @@ -2703,7 +2482,6 @@
23911 -#endif /* !DARWIN */
23913 int GC_incremental_protection_needs()
23915 @@ -2850,23 +2628,15 @@
23916 ((ptr_t)end_block - (ptr_t)start_block) + HBLKSIZE);
23921 -/* We no longer wrap read by default, since that was causing too many */
23922 -/* problems. It is preferred that the client instead avoids writing */
23923 -/* to the write-protected heap with a system call. */
23924 -/* This still serves as sample code if you do want to wrap system calls.*/
23926 -#if !defined(MSWIN32) && !defined(MSWINCE) && !defined(GC_USE_LD_WRAP)
23927 -/* Replacement for UNIX system call. */
23928 -/* Other calls that write to the heap should be handled similarly. */
23929 -/* Note that this doesn't work well for blocking reads: It will hold */
23930 -/* the allocation lock for the entire duration of the call. Multithreaded */
23931 -/* clients should really ensure that it won't block, either by setting */
23932 -/* the descriptor nonblocking, or by calling select or poll first, to */
23933 -/* make sure that input is available. */
23934 -/* Another, preferred alternative is to ensure that system calls never */
23935 -/* write to the protected heap (see above). */
23936 +#if !defined(MSWIN32) && !defined(MSWINCE) && !defined(THREADS) \
23937 + && !defined(GC_USE_LD_WRAP)
23938 +/* Replacement for UNIX system call. */
23939 +/* Other calls that write to the heap should be handled similarly. */
23940 +/* Note that this doesn't work well for blocking reads: It will hold */
23941 +/* tha allocation lock for the entur duration of the call. Multithreaded */
23942 +/* clients should really ensure that it won't block, either by setting */
23943 +/* the descriptor nonblocking, or by calling select or poll first, to */
23944 +/* make sure that input is available. */
23945 # if defined(__STDC__) && !defined(SUNOS4)
23946 # include <unistd.h>
23947 # include <sys/uio.h>
23948 @@ -2936,8 +2706,6 @@
23949 /* actually calls. */
23955 GC_bool GC_page_was_ever_dirty(h)
23957 @@ -2953,6 +2721,13 @@
23961 +# else /* !MPROTECT_VDB */
23963 +# ifdef GC_USE_LD_WRAP
23964 + ssize_t __wrap_read(int fd, void *buf, size_t nbyte)
23965 + { return __real_read(fd, buf, nbyte); }
23968 # endif /* MPROTECT_VDB */
23971 @@ -3031,7 +2806,6 @@
23973 GC_proc_fd = syscall(SYS_ioctl, fd, PIOCOPENPD, 0);
23975 - syscall(SYS_fcntl, GC_proc_fd, F_SETFD, FD_CLOEXEC);
23976 if (GC_proc_fd < 0) {
23977 ABORT("/proc ioctl failed");
23979 @@ -3271,553 +3045,6 @@
23981 # endif /* PCR_VDB */
23983 -#if defined(MPROTECT_VDB) && defined(DARWIN)
23984 -/* The following sources were used as a *reference* for this exception handling
23986 - 1. Apple's mach/xnu documentation
23987 - 2. Timothy J. Wood's "Mach Exception Handlers 101" post to the
23988 - omnigroup's macosx-dev list.
23989 - www.omnigroup.com/mailman/archive/macosx-dev/2000-June/002030.html
23990 - 3. macosx-nat.c from Apple's GDB source code.
23993 -/* There seem to be numerous problems with darwin's mach exception handling.
23994 - I'm pretty sure they are not problems in my code. Search for
23995 - BROKEN_EXCEPTION_HANDLING for more information. */
23996 -#define BROKEN_EXCEPTION_HANDLING
23998 -#include <mach/mach.h>
23999 -#include <mach/mach_error.h>
24000 -#include <mach/thread_status.h>
24001 -#include <mach/exception.h>
24002 -#include <mach/task.h>
24003 -#include <pthread.h>
24005 -/* These are not defined in any header, although they are documented */
24006 -extern boolean_t exc_server(mach_msg_header_t *,mach_msg_header_t *);
24007 -extern kern_return_t exception_raise(
24008 - mach_port_t,mach_port_t,mach_port_t,
24009 - exception_type_t,exception_data_t,mach_msg_type_number_t);
24010 -extern kern_return_t exception_raise_state(
24011 - mach_port_t,mach_port_t,mach_port_t,
24012 - exception_type_t,exception_data_t,mach_msg_type_number_t,
24013 - thread_state_flavor_t*,thread_state_t,mach_msg_type_number_t,
24014 - thread_state_t,mach_msg_type_number_t*);
24015 -extern kern_return_t exception_raise_state_identity(
24016 - mach_port_t,mach_port_t,mach_port_t,
24017 - exception_type_t,exception_data_t,mach_msg_type_number_t,
24018 - thread_state_flavor_t*,thread_state_t,mach_msg_type_number_t,
24019 - thread_state_t,mach_msg_type_number_t*);
24022 -#define MAX_EXCEPTION_PORTS 16
24024 -static mach_port_t GC_task_self;
24027 - mach_msg_type_number_t count;
24028 - exception_mask_t masks[MAX_EXCEPTION_PORTS];
24029 - exception_handler_t ports[MAX_EXCEPTION_PORTS];
24030 - exception_behavior_t behaviors[MAX_EXCEPTION_PORTS];
24031 - thread_state_flavor_t flavors[MAX_EXCEPTION_PORTS];
24032 -} GC_old_exc_ports;
24035 - mach_port_t exception;
24036 -#if defined(THREADS)
24037 - mach_port_t reply;
24042 - mach_msg_header_t head;
24046 - GC_MP_NORMAL, GC_MP_DISCARDING, GC_MP_STOPPED
24047 -} GC_mprotect_state_t;
24049 -/* FIXME: 1 and 2 seem to be safe to use in the msgh_id field,
24050 - but it isn't documented. Use the source and see if they
24053 -#define ID_RESUME 2
24055 -/* These values are only used on the reply port */
24058 -#if defined(THREADS)
24060 -GC_mprotect_state_t GC_mprotect_state;
24062 -/* The following should ONLY be called when the world is stopped */
24063 -static void GC_mprotect_thread_notify(mach_msg_id_t id) {
24066 - mach_msg_trailer_t trailer;
24068 - mach_msg_return_t r;
24069 - /* remote, local */
24070 - buf.msg.head.msgh_bits =
24071 - MACH_MSGH_BITS(MACH_MSG_TYPE_MAKE_SEND,0);
24072 - buf.msg.head.msgh_size = sizeof(buf.msg);
24073 - buf.msg.head.msgh_remote_port = GC_ports.exception;
24074 - buf.msg.head.msgh_local_port = MACH_PORT_NULL;
24075 - buf.msg.head.msgh_id = id;
24079 - MACH_SEND_MSG|MACH_RCV_MSG|MACH_RCV_LARGE,
24083 - MACH_MSG_TIMEOUT_NONE,
24085 - if(r != MACH_MSG_SUCCESS)
24086 - ABORT("mach_msg failed in GC_mprotect_thread_notify");
24087 - if(buf.msg.head.msgh_id != ID_ACK)
24088 - ABORT("invalid ack in GC_mprotect_thread_notify");
24091 -/* Should only be called by the mprotect thread */
24092 -static void GC_mprotect_thread_reply() {
24094 - mach_msg_return_t r;
24095 - /* remote, local */
24096 - msg.head.msgh_bits =
24097 - MACH_MSGH_BITS(MACH_MSG_TYPE_MAKE_SEND,0);
24098 - msg.head.msgh_size = sizeof(msg);
24099 - msg.head.msgh_remote_port = GC_ports.reply;
24100 - msg.head.msgh_local_port = MACH_PORT_NULL;
24101 - msg.head.msgh_id = ID_ACK;
24109 - MACH_MSG_TIMEOUT_NONE,
24111 - if(r != MACH_MSG_SUCCESS)
24112 - ABORT("mach_msg failed in GC_mprotect_thread_reply");
24115 -void GC_mprotect_stop() {
24116 - GC_mprotect_thread_notify(ID_STOP);
24118 -void GC_mprotect_resume() {
24119 - GC_mprotect_thread_notify(ID_RESUME);
24122 -#else /* !THREADS */
24123 -/* The compiler should optimize away any GC_mprotect_state computations */
24124 -#define GC_mprotect_state GC_MP_NORMAL
24127 -static void *GC_mprotect_thread(void *arg) {
24128 - mach_msg_return_t r;
24129 - /* These two structures contain some private kernel data. We don't need to
24130 - access any of it so we don't bother defining a proper struct. The
24131 - correct definitions are in the xnu source code. */
24133 - mach_msg_header_t head;
24137 - mach_msg_header_t head;
24138 - mach_msg_body_t msgh_body;
24142 - mach_msg_id_t id;
24147 - MACH_RCV_MSG|MACH_RCV_LARGE|
24148 - (GC_mprotect_state == GC_MP_DISCARDING ? MACH_RCV_TIMEOUT : 0),
24151 - GC_ports.exception,
24152 - GC_mprotect_state == GC_MP_DISCARDING ? 0 : MACH_MSG_TIMEOUT_NONE,
24155 - id = r == MACH_MSG_SUCCESS ? msg.head.msgh_id : -1;
24157 -#if defined(THREADS)
24158 - if(GC_mprotect_state == GC_MP_DISCARDING) {
24159 - if(r == MACH_RCV_TIMED_OUT) {
24160 - GC_mprotect_state = GC_MP_STOPPED;
24161 - GC_mprotect_thread_reply();
24164 - if(r == MACH_MSG_SUCCESS && (id == ID_STOP || id == ID_RESUME))
24165 - ABORT("out of order mprotect thread request");
24169 - if(r != MACH_MSG_SUCCESS) {
24170 - GC_err_printf2("mach_msg failed with %d %s\n",
24171 - (int)r,mach_error_string(r));
24172 - ABORT("mach_msg failed");
24176 -#if defined(THREADS)
24178 - if(GC_mprotect_state != GC_MP_NORMAL)
24179 - ABORT("Called mprotect_stop when state wasn't normal");
24180 - GC_mprotect_state = GC_MP_DISCARDING;
24183 - if(GC_mprotect_state != GC_MP_STOPPED)
24184 - ABORT("Called mprotect_resume when state wasn't stopped");
24185 - GC_mprotect_state = GC_MP_NORMAL;
24186 - GC_mprotect_thread_reply();
24188 -#endif /* THREADS */
24190 - /* Handle the message (calls catch_exception_raise) */
24191 - if(!exc_server(&msg.head,&reply.head))
24192 - ABORT("exc_server failed");
24193 - /* Send the reply */
24197 - reply.head.msgh_size,
24200 - MACH_MSG_TIMEOUT_NONE,
24202 - if(r != MACH_MSG_SUCCESS) {
24203 - /* This will fail if the thread dies, but the thread shouldn't
24205 - #ifdef BROKEN_EXCEPTION_HANDLING
24207 - "mach_msg failed with %d %s while sending exc reply\n",
24208 - (int)r,mach_error_string(r));
24210 - ABORT("mach_msg failed while sending exception reply");
24215 - /* NOT REACHED */
24219 -/* All this SIGBUS code shouldn't be necessary. All protection faults should
24220 - be going throught the mach exception handler. However, it seems a SIGBUS is
24221 - occasionally sent for some unknown reason. Even more odd, it seems to be
24222 - meaningless and safe to ignore. */
24223 -#ifdef BROKEN_EXCEPTION_HANDLING
24225 -typedef void (* SIG_PF)();
24226 -static SIG_PF GC_old_bus_handler;
24228 -/* Updates to this aren't atomic, but the SIGBUSs seem pretty rare.
24229 - Even if this doesn't get updated property, it isn't really a problem */
24230 -static int GC_sigbus_count;
24232 -static void GC_darwin_sigbus(int num,siginfo_t *sip,void *context) {
24233 - if(num != SIGBUS) ABORT("Got a non-sigbus signal in the sigbus handler");
24235 - /* Ugh... some seem safe to ignore, but too many in a row probably means
24236 - trouble. GC_sigbus_count is reset for each mach exception that is
24238 - if(GC_sigbus_count >= 8) {
24239 - ABORT("Got more than 8 SIGBUSs in a row!");
24241 - GC_sigbus_count++;
24242 - GC_err_printf0("GC: WARNING: Ignoring SIGBUS.\n");
24245 -#endif /* BROKEN_EXCEPTION_HANDLING */
24247 -void GC_dirty_init() {
24250 - pthread_t thread;
24251 - pthread_attr_t attr;
24252 - exception_mask_t mask;
24254 -# ifdef PRINTSTATS
24255 - GC_printf0("Inititalizing mach/darwin mprotect virtual dirty bit "
24256 - "implementation\n");
24258 -# ifdef BROKEN_EXCEPTION_HANDLING
24259 - GC_err_printf0("GC: WARNING: Enabling workarounds for various darwin "
24260 - "exception handling bugs.\n");
24262 - GC_dirty_maintained = TRUE;
24263 - if (GC_page_size % HBLKSIZE != 0) {
24264 - GC_err_printf0("Page size not multiple of HBLKSIZE\n");
24265 - ABORT("Page size not multiple of HBLKSIZE");
24268 - GC_task_self = me = mach_task_self();
24270 - r = mach_port_allocate(me,MACH_PORT_RIGHT_RECEIVE,&GC_ports.exception);
24271 - if(r != KERN_SUCCESS) ABORT("mach_port_allocate failed (exception port)");
24273 - r = mach_port_insert_right(me,GC_ports.exception,GC_ports.exception,
24274 - MACH_MSG_TYPE_MAKE_SEND);
24275 - if(r != KERN_SUCCESS)
24276 - ABORT("mach_port_insert_right failed (exception port)");
24278 - #if defined(THREADS)
24279 - r = mach_port_allocate(me,MACH_PORT_RIGHT_RECEIVE,&GC_ports.reply);
24280 - if(r != KERN_SUCCESS) ABORT("mach_port_allocate failed (reply port)");
24283 - /* The exceptions we want to catch */
24284 - mask = EXC_MASK_BAD_ACCESS;
24286 - r = task_get_exception_ports(
24289 - GC_old_exc_ports.masks,
24290 - &GC_old_exc_ports.count,
24291 - GC_old_exc_ports.ports,
24292 - GC_old_exc_ports.behaviors,
24293 - GC_old_exc_ports.flavors
24295 - if(r != KERN_SUCCESS) ABORT("task_get_exception_ports failed");
24297 - r = task_set_exception_ports(
24300 - GC_ports.exception,
24301 - EXCEPTION_DEFAULT,
24302 - MACHINE_THREAD_STATE
24304 - if(r != KERN_SUCCESS) ABORT("task_set_exception_ports failed");
24306 - if(pthread_attr_init(&attr) != 0) ABORT("pthread_attr_init failed");
24307 - if(pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED) != 0)
24308 - ABORT("pthread_attr_setdetachedstate failed");
24310 -# undef pthread_create
24311 - /* This will call the real pthread function, not our wrapper */
24312 - if(pthread_create(&thread,&attr,GC_mprotect_thread,NULL) != 0)
24313 - ABORT("pthread_create failed");
24314 - pthread_attr_destroy(&attr);
24316 - /* Setup the sigbus handler for ignoring the meaningless SIGBUSs */
24317 - #ifdef BROKEN_EXCEPTION_HANDLING
24319 - struct sigaction sa, oldsa;
24320 - sa.sa_handler = (SIG_PF)GC_darwin_sigbus;
24321 - sigemptyset(&sa.sa_mask);
24322 - sa.sa_flags = SA_RESTART|SA_SIGINFO;
24323 - if(sigaction(SIGBUS,&sa,&oldsa) < 0) ABORT("sigaction");
24324 - GC_old_bus_handler = (SIG_PF)oldsa.sa_handler;
24325 - if (GC_old_bus_handler != SIG_DFL) {
24326 -# ifdef PRINTSTATS
24327 - GC_err_printf0("Replaced other SIGBUS handler\n");
24331 - #endif /* BROKEN_EXCEPTION_HANDLING */
24334 -/* The source code for Apple's GDB was used as a reference for the exception
24335 - forwarding code. This code is similar to be GDB code only because there is
24336 - only one way to do it. */
24337 -static kern_return_t GC_forward_exception(
24338 - mach_port_t thread,
24339 - mach_port_t task,
24340 - exception_type_t exception,
24341 - exception_data_t data,
24342 - mach_msg_type_number_t data_count
24346 - mach_port_t port;
24347 - exception_behavior_t behavior;
24348 - thread_state_flavor_t flavor;
24350 - thread_state_data_t thread_state;
24351 - mach_msg_type_number_t thread_state_count = THREAD_STATE_MAX;
24353 - for(i=0;i<GC_old_exc_ports.count;i++)
24354 - if(GC_old_exc_ports.masks[i] & (1 << exception))
24356 - if(i==GC_old_exc_ports.count) ABORT("No handler for exception!");
24358 - port = GC_old_exc_ports.ports[i];
24359 - behavior = GC_old_exc_ports.behaviors[i];
24360 - flavor = GC_old_exc_ports.flavors[i];
24362 - if(behavior != EXCEPTION_DEFAULT) {
24363 - r = thread_get_state(thread,flavor,thread_state,&thread_state_count);
24364 - if(r != KERN_SUCCESS)
24365 - ABORT("thread_get_state failed in forward_exception");
24368 - switch(behavior) {
24369 - case EXCEPTION_DEFAULT:
24370 - r = exception_raise(port,thread,task,exception,data,data_count);
24372 - case EXCEPTION_STATE:
24373 - r = exception_raise_state(port,thread,task,exception,data,
24374 - data_count,&flavor,thread_state,thread_state_count,
24375 - thread_state,&thread_state_count);
24377 - case EXCEPTION_STATE_IDENTITY:
24378 - r = exception_raise_state_identity(port,thread,task,exception,data,
24379 - data_count,&flavor,thread_state,thread_state_count,
24380 - thread_state,&thread_state_count);
24383 - r = KERN_FAILURE; /* make gcc happy */
24384 - ABORT("forward_exception: unknown behavior");
24388 - if(behavior != EXCEPTION_DEFAULT) {
24389 - r = thread_set_state(thread,flavor,thread_state,thread_state_count);
24390 - if(r != KERN_SUCCESS)
24391 - ABORT("thread_set_state failed in forward_exception");
24397 -#define FWD() GC_forward_exception(thread,task,exception,code,code_count)
24399 -/* This violates the namespace rules but there isn't anything that can be done
24400 - about it. The exception handling stuff is hard coded to call this */
24402 -catch_exception_raise(
24403 - mach_port_t exception_port,mach_port_t thread,mach_port_t task,
24404 - exception_type_t exception,exception_data_t code,
24405 - mach_msg_type_number_t code_count
24412 - thread_state_flavor_t flavor = PPC_EXCEPTION_STATE;
24413 - mach_msg_type_number_t exc_state_count = PPC_EXCEPTION_STATE_COUNT;
24414 - ppc_exception_state_t exc_state;
24416 -# error FIXME for non-ppc darwin
24420 - if(exception != EXC_BAD_ACCESS || code[0] != KERN_PROTECTION_FAILURE) {
24421 - #ifdef DEBUG_EXCEPTION_HANDLING
24422 - /* We aren't interested, pass it on to the old handler */
24423 - GC_printf3("Exception: 0x%x Code: 0x%x 0x%x in catch....\n",
24425 - code_count > 0 ? code[0] : -1,
24426 - code_count > 1 ? code[1] : -1);
24431 - r = thread_get_state(thread,flavor,
24432 - (natural_t*)&exc_state,&exc_state_count);
24433 - if(r != KERN_SUCCESS) {
24434 - /* The thread is supposed to be suspended while the exception handler
24435 - is called. This shouldn't fail. */
24436 - #ifdef BROKEN_EXCEPTION_HANDLING
24437 - GC_err_printf0("thread_get_state failed in "
24438 - "catch_exception_raise\n");
24439 - return KERN_SUCCESS;
24441 - ABORT("thread_get_state failed in catch_exception_raise");
24445 - /* This is the address that caused the fault */
24446 - addr = (char*) exc_state.dar;
24448 - if((HDR(addr)) == 0) {
24449 - /* Ugh... just like the SIGBUS problem above, it seems we get a bogus
24450 - KERN_PROTECTION_FAILURE every once and a while. We wait till we get
24451 - a bunch in a row before doing anything about it. If a "real" fault
24452 - ever occurres it'll just keep faulting over and over and we'll hit
24453 - the limit pretty quickly. */
24454 - #ifdef BROKEN_EXCEPTION_HANDLING
24455 - static char *last_fault;
24456 - static int last_fault_count;
24458 - if(addr != last_fault) {
24459 - last_fault = addr;
24460 - last_fault_count = 0;
24462 - if(++last_fault_count < 32) {
24463 - if(last_fault_count == 1)
24465 - "GC: WARNING: Ignoring KERN_PROTECTION_FAILURE at %p\n",
24467 - return KERN_SUCCESS;
24470 - GC_err_printf1("Unexpected KERN_PROTECTION_FAILURE at %p\n",addr);
24471 - /* Can't pass it along to the signal handler because that is
24472 - ignoring SIGBUS signals. We also shouldn't call ABORT here as
24473 - signals don't always work too well from the exception handler. */
24474 - GC_err_printf0("Aborting\n");
24475 - exit(EXIT_FAILURE);
24476 - #else /* BROKEN_EXCEPTION_HANDLING */
24477 - /* Pass it along to the next exception handler
24478 - (which should call SIGBUS/SIGSEGV) */
24480 - #endif /* !BROKEN_EXCEPTION_HANDLING */
24483 - #ifdef BROKEN_EXCEPTION_HANDLING
24484 - /* Reset the number of consecutive SIGBUSs */
24485 - GC_sigbus_count = 0;
24488 - if(GC_mprotect_state == GC_MP_NORMAL) { /* common case */
24489 - h = (struct hblk*)((word)addr & ~(GC_page_size-1));
24490 - UNPROTECT(h, GC_page_size);
24491 - for (i = 0; i < divHBLKSZ(GC_page_size); i++) {
24492 - register int index = PHT_HASH(h+i);
24493 - async_set_pht_entry_from_index(GC_dirty_pages, index);
24495 - } else if(GC_mprotect_state == GC_MP_DISCARDING) {
24496 - /* Lie to the thread for now. No sense UNPROTECT()ing the memory
24497 - when we're just going to PROTECT() it again later. The thread
24498 - will just fault again once it resumes */
24500 - /* Shouldn't happen, i don't think */
24501 - GC_printf0("KERN_PROTECTION_FAILURE while world is stopped\n");
24504 - return KERN_SUCCESS;
24508 -/* These should never be called, but just in case... */
24509 -kern_return_t catch_exception_raise_state(mach_port_name_t exception_port,
24510 - int exception, exception_data_t code, mach_msg_type_number_t codeCnt,
24511 - int flavor, thread_state_t old_state, int old_stateCnt,
24512 - thread_state_t new_state, int new_stateCnt)
24514 - ABORT("catch_exception_raise_state");
24515 - return(KERN_INVALID_ARGUMENT);
24517 -kern_return_t catch_exception_raise_state_identity(
24518 - mach_port_name_t exception_port, mach_port_t thread, mach_port_t task,
24519 - int exception, exception_data_t code, mach_msg_type_number_t codeCnt,
24520 - int flavor, thread_state_t old_state, int old_stateCnt,
24521 - thread_state_t new_state, int new_stateCnt)
24523 - ABORT("catch_exception_raise_state_identity");
24524 - return(KERN_INVALID_ARGUMENT);
24528 -#endif /* DARWIN && MPROTECT_VDB */
24530 # ifndef HAVE_INCREMENTAL_PROTECTION_NEEDS
24531 int GC_incremental_protection_needs()
24533 @@ -3878,20 +3105,19 @@
24537 -#ifdef NEED_CALLINFO
24538 +#ifdef SAVE_CALL_CHAIN
24539 /* Fill in the pc and argument information for up to NFRAMES of my */
24540 /* callers. Ignore my frame and my callers frame. */
24543 -# include <unistd.h>
24544 +# include <features.h>
24545 +# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2
24546 +# define HAVE_BUILTIN_BACKTRACE
24550 -#endif /* NEED_CALLINFO */
24552 -#ifdef SAVE_CALL_CHAIN
24554 #if NARGS == 0 && NFRAMES % 2 == 0 /* No padding */ \
24555 - && defined(GC_HAVE_BUILTIN_BACKTRACE)
24556 + && defined(HAVE_BUILTIN_BACKTRACE)
24558 #include <execinfo.h>
24560 @@ -3962,139 +3188,31 @@
24562 #endif /* SAVE_CALL_CHAIN */
24564 -#ifdef NEED_CALLINFO
24565 +#if defined(LINUX) && defined(__ELF__) && \
24566 + (!defined(SMALL_CONFIG) || defined(USE_PROC_FOR_LIBRARIES))
24567 +#ifdef GC_USE_LD_WRAP
24568 +# define READ __real_read
24570 +# define READ read
24573 -/* Print info to stderr. We do NOT hold the allocation lock */
24574 -void GC_print_callers (info)
24575 -struct callinfo info[NFRAMES];
24578 - static int reentry_count = 0;
24579 - GC_bool stop = FALSE;
24584 +/* Repeatedly perform a read call until the buffer is filled or */
24585 +/* we encounter EOF. */
24586 +ssize_t GC_repeat_read(int fd, char *buf, size_t count)
24588 + ssize_t num_read = 0;
24592 - GC_err_printf0("\tCaller at allocation:\n");
24594 - GC_err_printf0("\tCall chain at allocation:\n");
24596 - for (i = 0; i < NFRAMES && !stop ; i++) {
24597 - if (info[i].ci_pc == 0) break;
24602 - GC_err_printf0("\t\targs: ");
24603 - for (j = 0; j < NARGS; j++) {
24604 - if (j != 0) GC_err_printf0(", ");
24605 - GC_err_printf2("%d (0x%X)", ~(info[i].ci_arg[j]),
24606 - ~(info[i].ci_arg[j]));
24608 - GC_err_printf0("\n");
24611 - if (reentry_count > 1) {
24612 - /* We were called during an allocation during */
24613 - /* a previous GC_print_callers call; punt. */
24614 - GC_err_printf1("\t\t##PC##= 0x%lx\n", info[i].ci_pc);
24621 -# if defined(GC_HAVE_BUILTIN_BACKTRACE)
24622 - char **sym_name =
24623 - backtrace_symbols((void **)(&(info[i].ci_pc)), 1);
24624 - char *name = sym_name[0];
24627 - char *name = buf;
24628 - sprintf(buf, "##PC##= 0x%lx", info[i].ci_pc);
24630 -# if defined(LINUX) && !defined(SMALL_CONFIG)
24631 - /* Try for a line number. */
24633 -# define EXE_SZ 100
24634 - static char exe_name[EXE_SZ];
24635 -# define CMD_SZ 200
24636 - char cmd_buf[CMD_SZ];
24637 -# define RESULT_SZ 200
24638 - static char result_buf[RESULT_SZ];
24639 - size_t result_len;
24640 - static GC_bool found_exe_name = FALSE;
24641 - static GC_bool will_fail = FALSE;
24643 - /* Try to get it via a hairy and expensive scheme. */
24644 - /* First we get the name of the executable: */
24645 - if (will_fail) goto out;
24646 - if (!found_exe_name) {
24647 - ret_code = readlink("/proc/self/exe", exe_name, EXE_SZ);
24648 - if (ret_code < 0 || ret_code >= EXE_SZ
24649 - || exe_name[0] != '/') {
24650 - will_fail = TRUE; /* Dont try again. */
24653 - exe_name[ret_code] = '\0';
24654 - found_exe_name = TRUE;
24656 - /* Then we use popen to start addr2line -e <exe> <addr> */
24657 - /* There are faster ways to do this, but hopefully this */
24658 - /* isn't time critical. */
24659 - sprintf(cmd_buf, "/usr/bin/addr2line -f -e %s 0x%lx", exe_name,
24660 - (unsigned long)info[i].ci_pc);
24661 - pipe = popen(cmd_buf, "r");
24663 - || (result_len = fread(result_buf, 1, RESULT_SZ - 1, pipe))
24665 - if (pipe != NULL) pclose(pipe);
24666 - will_fail = TRUE;
24669 - if (result_buf[result_len - 1] == '\n') --result_len;
24670 - result_buf[result_len] = 0;
24671 - if (result_buf[0] == '?'
24672 - || result_buf[result_len-2] == ':'
24673 - && result_buf[result_len-1] == '0') {
24677 - /* Get rid of embedded newline, if any. Test for "main" */
24679 - char * nl = strchr(result_buf, '\n');
24680 - if (nl != NULL && nl < result_buf + result_len) {
24683 - if (strncmp(result_buf, "main", nl - result_buf) == 0) {
24687 - if (result_len < RESULT_SZ - 25) {
24688 - /* Add in hex address */
24689 - sprintf(result_buf + result_len, " [0x%lx]",
24690 - (unsigned long)info[i].ci_pc);
24692 - name = result_buf;
24696 -# endif /* LINUX */
24697 - GC_err_printf1("\t\t%s\n", name);
24698 -# if defined(GC_HAVE_BUILTIN_BACKTRACE)
24699 - free(sym_name); /* May call GC_free; that's OK */
24702 + while (num_read < count) {
24703 + result = READ(fd, buf + num_read, count - num_read);
24704 + if (result < 0) return result;
24705 + if (result == 0) break;
24706 + num_read += result;
24714 -#endif /* NEED_CALLINFO */
24716 +#endif /* LINUX && ... */
24719 #if defined(LINUX) && defined(__ELF__) && !defined(SMALL_CONFIG)
24720 @@ -4102,16 +3220,20 @@
24721 /* Dump /proc/self/maps to GC_stderr, to enable looking up names for
24722 addresses in FIND_LEAK output. */
24724 -static word dump_maps(char *maps)
24726 - GC_err_write(maps, strlen(maps));
24730 void GC_print_address_map()
24734 + char maps_temp[32768];
24735 GC_err_printf0("---------- Begin address map ----------\n");
24736 - GC_apply_to_maps(dump_maps);
24737 + f = open("/proc/self/maps", O_RDONLY);
24738 + if (-1 == f) ABORT("Couldn't open /proc/self/maps");
24740 + result = GC_repeat_read(f, maps_temp, sizeof(maps_temp));
24741 + if (result <= 0) ABORT("Couldn't read /proc/self/maps");
24742 + GC_err_write(maps_temp, result);
24743 + } while (result == sizeof(maps_temp));
24745 GC_err_printf0("---------- End address map ----------\n");
24748 diff -Nur ../boehm-gc/powerpc_darwin_mach_dep.s boehm-gc/powerpc_darwin_mach_dep.s
24749 --- ../boehm-gc/powerpc_darwin_mach_dep.s Mon May 26 12:48:52 2003
24750 +++ boehm-gc/powerpc_darwin_mach_dep.s Wed Dec 31 16:00:00 1969
24753 -; GC_push_regs function. Under some optimization levels GCC will clobber
24754 -; some of the non-volatile registers before we get a chance to save them
24755 -; therefore, this can't be inline asm.
24759 - .globl _GC_push_regs
24769 - bl L_GC_push_one$stub
24771 - bl L_GC_push_one$stub
24773 - bl L_GC_push_one$stub
24775 - bl L_GC_push_one$stub
24777 - bl L_GC_push_one$stub
24779 - bl L_GC_push_one$stub
24781 - bl L_GC_push_one$stub
24783 - bl L_GC_push_one$stub
24785 - bl L_GC_push_one$stub
24787 - bl L_GC_push_one$stub
24789 - bl L_GC_push_one$stub
24791 - bl L_GC_push_one$stub
24793 - bl L_GC_push_one$stub
24795 - bl L_GC_push_one$stub
24797 - bl L_GC_push_one$stub
24799 - bl L_GC_push_one$stub
24801 - bl L_GC_push_one$stub
24803 - bl L_GC_push_one$stub
24805 - bl L_GC_push_one$stub
24815 -; PIC stuff, generated by GCC
24819 -L_GC_push_one$stub:
24820 - .indirect_symbol _GC_push_one
24822 - bcl 20,31,L0$_GC_push_one
24825 - addis r11,r11,ha16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
24827 - lwz r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11)
24829 - addi r11,r11,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
24832 -.lazy_symbol_pointer
24833 -L_GC_push_one$lazy_ptr:
24834 - .indirect_symbol _GC_push_one
24835 - .long dyld_stub_binding_helper
24836 diff -Nur ../boehm-gc/pthread_stop_world.c boehm-gc/pthread_stop_world.c
24837 --- ../boehm-gc/pthread_stop_world.c Mon May 26 12:48:52 2003
24838 +++ boehm-gc/pthread_stop_world.c Wed Dec 31 16:00:00 1969
24840 -#include "private/pthread_support.h"
24842 -#if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
24843 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS) \
24844 - && !defined(GC_DARWIN_THREADS)
24846 -#include <signal.h>
24847 -#include <semaphore.h>
24848 -#include <errno.h>
24849 -#include <unistd.h>
24854 -# if defined(MAXSIG)
24855 -# define NSIG (MAXSIG+1)
24856 -# elif defined(_NSIG)
24857 -# define NSIG _NSIG
24858 -# elif defined(__SIGRTMAX)
24859 -# define NSIG (__SIGRTMAX+1)
24861 - --> please fix it
24865 -void GC_print_sig_mask()
24867 - sigset_t blocked;
24870 - if (pthread_sigmask(SIG_BLOCK, NULL, &blocked) != 0)
24871 - ABORT("pthread_sigmask");
24872 - GC_printf0("Blocked: ");
24873 - for (i = 1; i < NSIG; i++) {
24874 - if (sigismember(&blocked, i)) { GC_printf1("%ld ",(long) i); }
24876 - GC_printf0("\n");
24881 -word GC_stop_count; /* Incremented at the beginning of GC_stop_world. */
24883 -#ifdef GC_OSF1_THREADS
24884 - GC_bool GC_retry_signals = TRUE;
24886 - GC_bool GC_retry_signals = FALSE;
24890 - * We use signals to stop threads during GC.
24892 - * Suspended threads wait in signal handler for SIG_THR_RESTART.
24893 - * That's more portable than semaphores or condition variables.
24894 - * (We do use sem_post from a signal handler, but that should be portable.)
24896 - * The thread suspension signal SIG_SUSPEND is now defined in gc_priv.h.
24897 - * Note that we can't just stop a thread; we need it to save its stack
24898 - * pointer(s) and acknowledge.
24901 -#ifndef SIG_THR_RESTART
24902 -# if defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
24904 -# define SIG_THR_RESTART _SIGRTMIN + 5
24906 -# define SIG_THR_RESTART SIGRTMIN + 5
24909 -# define SIG_THR_RESTART SIGXCPU
24913 -sem_t GC_suspend_ack_sem;
24915 -void GC_suspend_handler(int sig)
24918 - pthread_t my_thread = pthread_self();
24921 -# ifdef PARALLEL_MARK
24922 - word my_mark_no = GC_mark_no;
24923 - /* Marker can't proceed until we acknowledge. Thus this is */
24924 - /* guaranteed to be the mark_no correspending to our */
24925 - /* suspension, i.e. the marker can't have incremented it yet. */
24927 - word my_stop_count = GC_stop_count;
24929 - if (sig != SIG_SUSPEND) ABORT("Bad signal in suspend_handler");
24932 - GC_printf1("Suspending 0x%lx\n", my_thread);
24935 - me = GC_lookup_thread(my_thread);
24936 - /* The lookup here is safe, since I'm doing this on behalf */
24937 - /* of a thread which holds the allocation lock in order */
24938 - /* to stop the world. Thus concurrent modification of the */
24939 - /* data structure is impossible. */
24940 - if (me -> stop_info.last_stop_count == my_stop_count) {
24941 - /* Duplicate signal. OK if we are retrying. */
24942 - if (!GC_retry_signals) {
24943 - WARN("Duplicate suspend signal in thread %lx\n",
24949 - me -> stop_info.stack_ptr = (ptr_t)GC_save_regs_in_stack();
24951 - me -> stop_info.stack_ptr = (ptr_t)(&dummy);
24954 - me -> backing_store_ptr = (ptr_t)GC_save_regs_in_stack();
24957 - /* Tell the thread that wants to stop the world that this */
24958 - /* thread has been stopped. Note that sem_post() is */
24959 - /* the only async-signal-safe primitive in LinuxThreads. */
24960 - sem_post(&GC_suspend_ack_sem);
24961 - me -> stop_info.last_stop_count = my_stop_count;
24963 - /* Wait until that thread tells us to restart by sending */
24964 - /* this thread a SIG_THR_RESTART signal. */
24965 - /* SIG_THR_RESTART should be masked at this point. Thus there */
24966 - /* is no race. */
24967 - if (sigfillset(&mask) != 0) ABORT("sigfillset() failed");
24968 - if (sigdelset(&mask, SIG_THR_RESTART) != 0) ABORT("sigdelset() failed");
24969 -# ifdef NO_SIGNALS
24970 - if (sigdelset(&mask, SIGINT) != 0) ABORT("sigdelset() failed");
24971 - if (sigdelset(&mask, SIGQUIT) != 0) ABORT("sigdelset() failed");
24972 - if (sigdelset(&mask, SIGTERM) != 0) ABORT("sigdelset() failed");
24973 - if (sigdelset(&mask, SIGABRT) != 0) ABORT("sigdelset() failed");
24976 - me->stop_info.signal = 0;
24977 - sigsuspend(&mask); /* Wait for signal */
24978 - } while (me->stop_info.signal != SIG_THR_RESTART);
24979 - /* If the RESTART signal gets lost, we can still lose. That should be */
24980 - /* less likely than losing the SUSPEND signal, since we don't do much */
24981 - /* between the sem_post and sigsuspend. */
24982 - /* We'd need more handshaking to work around that, since we don't want */
24983 - /* to accidentally leave a RESTART signal pending, thus causing us to */
24984 - /* continue prematurely in a future round. */
24987 - GC_printf1("Continuing 0x%lx\n", my_thread);
24991 -void GC_restart_handler(int sig)
24993 - pthread_t my_thread = pthread_self();
24996 - if (sig != SIG_THR_RESTART) ABORT("Bad signal in suspend_handler");
24998 - /* Let the GC_suspend_handler() know that we got a SIG_THR_RESTART. */
24999 - /* The lookup here is safe, since I'm doing this on behalf */
25000 - /* of a thread which holds the allocation lock in order */
25001 - /* to stop the world. Thus concurrent modification of the */
25002 - /* data structure is impossible. */
25003 - me = GC_lookup_thread(my_thread);
25004 - me->stop_info.signal = SIG_THR_RESTART;
25007 - ** Note: even if we didn't do anything useful here,
25008 - ** it would still be necessary to have a signal handler,
25009 - ** rather than ignoring the signals, otherwise
25010 - ** the signals will not be delivered at all, and
25011 - ** will thus not interrupt the sigsuspend() above.
25015 - GC_printf1("In GC_restart_handler for 0x%lx\n", pthread_self());
25020 -# define IF_IA64(x) x
25022 -# define IF_IA64(x)
25024 -/* We hold allocation lock. Should do exactly the right thing if the */
25025 -/* world is stopped. Should not fail if it isn't. */
25026 -void GC_push_all_stacks()
25031 - /* On IA64, we also need to scan the register backing store. */
25032 - IF_IA64(ptr_t bs_lo; ptr_t bs_hi;)
25033 - pthread_t me = pthread_self();
25035 - if (!GC_thr_initialized) GC_thr_init();
25036 - #if DEBUG_THREADS
25037 - GC_printf1("Pushing stacks from thread 0x%lx\n", (unsigned long) me);
25039 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25040 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25041 - if (p -> flags & FINISHED) continue;
25042 - if (pthread_equal(p -> id, me)) {
25044 - lo = (ptr_t)GC_save_regs_in_stack();
25046 - lo = GC_approx_sp();
25048 - IF_IA64(bs_hi = (ptr_t)GC_save_regs_in_stack();)
25050 - lo = p -> stop_info.stack_ptr;
25051 - IF_IA64(bs_hi = p -> backing_store_ptr;)
25053 - if ((p -> flags & MAIN_THREAD) == 0) {
25054 - hi = p -> stack_end;
25055 - IF_IA64(bs_lo = p -> backing_store_end);
25057 - /* The original stack. */
25058 - hi = GC_stackbottom;
25059 - IF_IA64(bs_lo = BACKING_STORE_BASE;)
25061 - #if DEBUG_THREADS
25062 - GC_printf3("Stack for thread 0x%lx = [%lx,%lx)\n",
25063 - (unsigned long) p -> id,
25064 - (unsigned long) lo, (unsigned long) hi);
25066 - if (0 == lo) ABORT("GC_push_all_stacks: sp not set!\n");
25067 -# ifdef STACK_GROWS_UP
25068 - /* We got them backwards! */
25069 - GC_push_all_stack(hi, lo);
25071 - GC_push_all_stack(lo, hi);
25074 - if (pthread_equal(p -> id, me)) {
25075 - GC_push_all_eager(bs_lo, bs_hi);
25077 - GC_push_all_stack(bs_lo, bs_hi);
25084 -/* There seems to be a very rare thread stopping problem. To help us */
25085 -/* debug that, we save the ids of the stopping thread. */
25086 -pthread_t GC_stopping_thread;
25087 -int GC_stopping_pid;
25089 -/* We hold the allocation lock. Suspend all threads that might */
25090 -/* still be running. Return the number of suspend signals that */
25092 -int GC_suspend_all()
25094 - int n_live_threads = 0;
25098 - pthread_t my_thread = pthread_self();
25100 - GC_stopping_thread = my_thread; /* debugging only. */
25101 - GC_stopping_pid = getpid(); /* debugging only. */
25102 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25103 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25104 - if (p -> id != my_thread) {
25105 - if (p -> flags & FINISHED) continue;
25106 - if (p -> stop_info.last_stop_count == GC_stop_count) continue;
25107 - if (p -> thread_blocked) /* Will wait */ continue;
25108 - n_live_threads++;
25109 - #if DEBUG_THREADS
25110 - GC_printf1("Sending suspend signal to 0x%lx\n", p -> id);
25113 - result = pthread_kill(p -> id, SIG_SUSPEND);
25116 - /* Not really there anymore. Possible? */
25117 - n_live_threads--;
25122 - ABORT("pthread_kill failed");
25127 - return n_live_threads;
25130 -/* Caller holds allocation lock. */
25131 -void GC_stop_world()
25134 - int n_live_threads;
25137 - #if DEBUG_THREADS
25138 - GC_printf1("Stopping the world from 0x%lx\n", pthread_self());
25141 - /* Make sure all free list construction has stopped before we start. */
25142 - /* No new construction can start, since free list construction is */
25143 - /* required to acquire and release the GC lock before it starts, */
25144 - /* and we have the lock. */
25145 -# ifdef PARALLEL_MARK
25146 - GC_acquire_mark_lock();
25147 - GC_ASSERT(GC_fl_builder_count == 0);
25148 - /* We should have previously waited for it to become zero. */
25149 -# endif /* PARALLEL_MARK */
25151 - n_live_threads = GC_suspend_all();
25153 - if (GC_retry_signals) {
25154 - unsigned long wait_usecs = 0; /* Total wait since retry. */
25155 -# define WAIT_UNIT 3000
25156 -# define RETRY_INTERVAL 100000
25160 - sem_getvalue(&GC_suspend_ack_sem, &ack_count);
25161 - if (ack_count == n_live_threads) break;
25162 - if (wait_usecs > RETRY_INTERVAL) {
25163 - int newly_sent = GC_suspend_all();
25166 - if (GC_print_stats) {
25167 - GC_printf1("Resent %ld signals after timeout\n",
25171 - sem_getvalue(&GC_suspend_ack_sem, &ack_count);
25172 - if (newly_sent < n_live_threads - ack_count) {
25173 - WARN("Lost some threads during GC_stop_world?!\n",0);
25174 - n_live_threads = ack_count + newly_sent;
25178 - usleep(WAIT_UNIT);
25179 - wait_usecs += WAIT_UNIT;
25182 - for (i = 0; i < n_live_threads; i++) {
25183 - if (0 != (code = sem_wait(&GC_suspend_ack_sem))) {
25184 - GC_err_printf1("Sem_wait returned %ld\n", (unsigned long)code);
25185 - ABORT("sem_wait for handler failed");
25188 -# ifdef PARALLEL_MARK
25189 - GC_release_mark_lock();
25191 - #if DEBUG_THREADS
25192 - GC_printf1("World stopped from 0x%lx\n", pthread_self());
25194 - GC_stopping_thread = 0; /* debugging only */
25197 -/* Caller holds allocation lock, and has held it continuously since */
25198 -/* the world stopped. */
25199 -void GC_start_world()
25201 - pthread_t my_thread = pthread_self();
25203 - register GC_thread p;
25204 - register int n_live_threads = 0;
25205 - register int result;
25207 -# if DEBUG_THREADS
25208 - GC_printf0("World starting\n");
25211 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25212 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25213 - if (p -> id != my_thread) {
25214 - if (p -> flags & FINISHED) continue;
25215 - if (p -> thread_blocked) continue;
25216 - n_live_threads++;
25217 - #if DEBUG_THREADS
25218 - GC_printf1("Sending restart signal to 0x%lx\n", p -> id);
25221 - result = pthread_kill(p -> id, SIG_THR_RESTART);
25224 - /* Not really there anymore. Possible? */
25225 - n_live_threads--;
25230 - ABORT("pthread_kill failed");
25235 - #if DEBUG_THREADS
25236 - GC_printf0("World started\n");
25240 -void GC_stop_init() {
25241 - struct sigaction act;
25243 - if (sem_init(&GC_suspend_ack_sem, 0, 0) != 0)
25244 - ABORT("sem_init failed");
25246 - act.sa_flags = SA_RESTART;
25247 - if (sigfillset(&act.sa_mask) != 0) {
25248 - ABORT("sigfillset() failed");
25250 -# ifdef NO_SIGNALS
25251 - if (sigdelset(&act.sa_mask, SIGINT) != 0
25252 - || sigdelset(&act.sa_mask, SIGQUIT != 0)
25253 - || sigdelset(&act.sa_mask, SIGABRT != 0)
25254 - || sigdelset(&act.sa_mask, SIGTERM != 0)) {
25255 - ABORT("sigdelset() failed");
25259 - /* SIG_THR_RESTART is unmasked by the handler when necessary. */
25260 - act.sa_handler = GC_suspend_handler;
25261 - if (sigaction(SIG_SUSPEND, &act, NULL) != 0) {
25262 - ABORT("Cannot set SIG_SUSPEND handler");
25265 - act.sa_handler = GC_restart_handler;
25266 - if (sigaction(SIG_THR_RESTART, &act, NULL) != 0) {
25267 - ABORT("Cannot set SIG_THR_RESTART handler");
25270 - /* Check for GC_RETRY_SIGNALS. */
25271 - if (0 != GETENV("GC_RETRY_SIGNALS")) {
25272 - GC_retry_signals = TRUE;
25274 - if (0 != GETENV("GC_NO_RETRY_SIGNALS")) {
25275 - GC_retry_signals = FALSE;
25278 - if (GC_print_stats && GC_retry_signals) {
25279 - GC_printf0("Will retry suspend signal if necessary.\n");
25285 diff -Nur ../boehm-gc/pthread_support.c boehm-gc/pthread_support.c
25286 --- ../boehm-gc/pthread_support.c Mon May 26 12:48:52 2003
25287 +++ boehm-gc/pthread_support.c Wed Dec 31 16:00:00 1969
25290 - * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
25291 - * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
25292 - * Copyright (c) 1998 by Fergus Henderson. All rights reserved.
25293 - * Copyright (c) 2000-2001 by Hewlett-Packard Company. All rights reserved.
25295 - * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
25296 - * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
25298 - * Permission is hereby granted to use or copy this program
25299 - * for any purpose, provided the above notices are retained on all copies.
25300 - * Permission to modify the code and to distribute modified code is granted,
25301 - * provided the above notices are retained, and a notice that the code was
25302 - * modified is included with the above copyright notice.
25305 - * Support code for LinuxThreads, the clone()-based kernel
25306 - * thread package for Linux which is included in libc6.
25308 - * This code relies on implementation details of LinuxThreads,
25309 - * (i.e. properties not guaranteed by the Pthread standard),
25310 - * though this version now does less of that than the other Pthreads
25313 - * Note that there is a lot of code duplication between linux_threads.c
25314 - * and thread support for some of the other Posix platforms; any changes
25315 - * made here may need to be reflected there too.
25317 - /* DG/UX ix86 support <takis@xfree86.org> */
25319 - * Linux_threads.c now also includes some code to support HPUX and
25320 - * OSF1 (Compaq Tru64 Unix, really). The OSF1 support is not yet
25321 - * functional. The OSF1 code is based on Eric Benson's
25322 - * patch, though that was originally against hpux_irix_threads. The code
25323 - * here is completely untested. With 0.0000001% probability, it might
25326 - * Eric also suggested an alternate basis for a lock implementation in
25328 - * + #elif defined(OSF1)
25329 - * + unsigned long GC_allocate_lock = 0;
25330 - * + msemaphore GC_allocate_semaphore;
25331 - * + # define GC_TRY_LOCK() \
25332 - * + ((msem_lock(&GC_allocate_semaphore, MSEM_IF_NOWAIT) == 0) \
25333 - * + ? (GC_allocate_lock = 1) \
25335 - * + # define GC_LOCK_TAKEN GC_allocate_lock
25338 -/*#define DEBUG_THREADS 1*/
25339 -/*#define GC_ASSERTIONS*/
25341 -# include "private/pthread_support.h"
25343 -# if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \
25344 - && !defined(GC_IRIX_THREADS) && !defined(GC_WIN32_THREADS)
25346 -# if defined(GC_HPUX_THREADS) && !defined(USE_PTHREAD_SPECIFIC) \
25347 - && !defined(USE_HPUX_TLS)
25348 -# define USE_HPUX_TLS
25351 -# if (defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) || \
25352 - defined(GC_DARWIN_THREADS)) && !defined(USE_PTHREAD_SPECIFIC)
25353 -# define USE_PTHREAD_SPECIFIC
25356 -# if defined(GC_DGUX386_THREADS) && !defined(_POSIX4A_DRAFT10_SOURCE)
25357 -# define _POSIX4A_DRAFT10_SOURCE 1
25360 -# if defined(GC_DGUX386_THREADS) && !defined(_USING_POSIX4A_DRAFT10)
25361 -# define _USING_POSIX4A_DRAFT10 1
25364 -# ifdef THREAD_LOCAL_ALLOC
25365 -# if !defined(USE_PTHREAD_SPECIFIC) && !defined(USE_HPUX_TLS)
25366 -# include "private/specific.h"
25368 -# if defined(USE_PTHREAD_SPECIFIC)
25369 -# define GC_getspecific pthread_getspecific
25370 -# define GC_setspecific pthread_setspecific
25371 -# define GC_key_create pthread_key_create
25372 - typedef pthread_key_t GC_key_t;
25374 -# if defined(USE_HPUX_TLS)
25375 -# define GC_getspecific(x) (x)
25376 -# define GC_setspecific(key, v) ((key) = (v), 0)
25377 -# define GC_key_create(key, d) 0
25378 - typedef void * GC_key_t;
25381 -# include <stdlib.h>
25382 -# include <pthread.h>
25383 -# include <sched.h>
25384 -# include <time.h>
25385 -# include <errno.h>
25386 -# include <unistd.h>
25387 -# include <sys/mman.h>
25388 -# include <sys/time.h>
25389 -# include <sys/types.h>
25390 -# include <sys/stat.h>
25391 -# include <fcntl.h>
25393 -#if defined(GC_DARWIN_THREADS)
25394 -# include "private/darwin_semaphore.h"
25396 -# include <semaphore.h>
25397 -#endif /* !GC_DARWIN_THREADS */
25399 -#if defined(GC_DARWIN_THREADS)
25400 -# include <sys/sysctl.h>
25401 -#endif /* GC_DARWIN_THREADS */
25405 -#if defined(GC_DGUX386_THREADS)
25406 -# include <sys/dg_sys_info.h>
25407 -# include <sys/_int_psem.h>
25408 - /* sem_t is an uint in DG/UX */
25409 - typedef unsigned int sem_t;
25410 -#endif /* GC_DGUX386_THREADS */
25413 -# define __inline__
25416 -#ifdef GC_USE_LD_WRAP
25417 -# define WRAP_FUNC(f) __wrap_##f
25418 -# define REAL_FUNC(f) __real_##f
25420 -# define WRAP_FUNC(f) GC_##f
25421 -# if !defined(GC_DGUX386_THREADS)
25422 -# define REAL_FUNC(f) f
25423 -# else /* GC_DGUX386_THREADS */
25424 -# define REAL_FUNC(f) __d10_##f
25425 -# endif /* GC_DGUX386_THREADS */
25426 -# undef pthread_create
25427 -# if !defined(GC_DARWIN_THREADS)
25428 -# undef pthread_sigmask
25430 -# undef pthread_join
25431 -# undef pthread_detach
25434 -void GC_thr_init();
25436 -static GC_bool parallel_initialized = FALSE;
25438 -void GC_init_parallel();
25440 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
25442 -/* We don't really support thread-local allocation with DBG_HDRS_ALL */
25444 -#ifdef USE_HPUX_TLS
25447 -GC_key_t GC_thread_key;
25449 -static GC_bool keys_initialized;
25451 -/* Recover the contents of the freelist array fl into the global one gfl.*/
25452 -/* Note that the indexing scheme differs, in that gfl has finer size */
25453 -/* resolution, even if not all entries are used. */
25454 -/* We hold the allocator lock. */
25455 -static void return_freelists(ptr_t *fl, ptr_t *gfl)
25461 - for (i = 1; i < NFREELISTS; ++i) {
25462 - nwords = i * (GRANULARITY/sizeof(word));
25465 - if ((word)q >= HBLKSIZE) {
25466 - if (gfl[nwords] == 0) {
25469 - /* Concatenate: */
25470 - for (; (word)q >= HBLKSIZE; qptr = &(obj_link(q)), q = *qptr);
25471 - GC_ASSERT(0 == q);
25472 - *qptr = gfl[nwords];
25473 - gfl[nwords] = fl[i];
25476 - /* Clear fl[i], since the thread structure may hang around. */
25477 - /* Do it in a way that is likely to trap if we access it. */
25478 - fl[i] = (ptr_t)HBLKSIZE;
25482 -/* We statically allocate a single "size 0" object. It is linked to */
25483 -/* itself, and is thus repeatedly reused for all size 0 allocation */
25484 -/* requests. (Size 0 gcj allocation requests are incorrect, and */
25485 -/* we arrange for those to fault asap.) */
25486 -static ptr_t size_zero_object = (ptr_t)(&size_zero_object);
25488 -/* Each thread structure must be initialized. */
25489 -/* This call must be made from the new thread. */
25490 -/* Caller holds allocation lock. */
25491 -void GC_init_thread_local(GC_thread p)
25495 - if (!keys_initialized) {
25496 - if (0 != GC_key_create(&GC_thread_key, 0)) {
25497 - ABORT("Failed to create key for local allocator");
25499 - keys_initialized = TRUE;
25501 - if (0 != GC_setspecific(GC_thread_key, p)) {
25502 - ABORT("Failed to set thread specific allocation pointers");
25504 - for (i = 1; i < NFREELISTS; ++i) {
25505 - p -> ptrfree_freelists[i] = (ptr_t)1;
25506 - p -> normal_freelists[i] = (ptr_t)1;
25507 -# ifdef GC_GCJ_SUPPORT
25508 - p -> gcj_freelists[i] = (ptr_t)1;
25511 - /* Set up the size 0 free lists. */
25512 - p -> ptrfree_freelists[0] = (ptr_t)(&size_zero_object);
25513 - p -> normal_freelists[0] = (ptr_t)(&size_zero_object);
25514 -# ifdef GC_GCJ_SUPPORT
25515 - p -> gcj_freelists[0] = (ptr_t)(-1);
25519 -#ifdef GC_GCJ_SUPPORT
25520 - extern ptr_t * GC_gcjobjfreelist;
25523 -/* We hold the allocator lock. */
25524 -void GC_destroy_thread_local(GC_thread p)
25526 - /* We currently only do this from the thread itself or from */
25527 - /* the fork handler for a child process. */
25528 -# ifndef HANDLE_FORK
25529 - GC_ASSERT(GC_getspecific(GC_thread_key) == (void *)p);
25531 - return_freelists(p -> ptrfree_freelists, GC_aobjfreelist);
25532 - return_freelists(p -> normal_freelists, GC_objfreelist);
25533 -# ifdef GC_GCJ_SUPPORT
25534 - return_freelists(p -> gcj_freelists, GC_gcjobjfreelist);
25538 -extern GC_PTR GC_generic_malloc_many();
25540 -GC_PTR GC_local_malloc(size_t bytes)
25542 - if (EXPECT(!SMALL_ENOUGH(bytes),0)) {
25543 - return(GC_malloc(bytes));
25545 - int index = INDEX_FROM_BYTES(bytes);
25548 -# if defined(REDIRECT_MALLOC) && !defined(USE_PTHREAD_SPECIFIC)
25549 - GC_key_t k = GC_thread_key;
25553 -# if defined(REDIRECT_MALLOC) && !defined(USE_PTHREAD_SPECIFIC)
25554 - if (EXPECT(0 == k, 0)) {
25555 - /* This can happen if we get called when the world is */
25556 - /* being initialized. Whether we can actually complete */
25557 - /* the initialization then is unclear. */
25558 - GC_init_parallel();
25559 - k = GC_thread_key;
25562 - tsd = GC_getspecific(GC_thread_key);
25563 -# ifdef GC_ASSERTIONS
25565 - GC_ASSERT(tsd == (void *)GC_lookup_thread(pthread_self()));
25568 - my_fl = ((GC_thread)tsd) -> normal_freelists + index;
25569 - my_entry = *my_fl;
25570 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
25571 - ptr_t next = obj_link(my_entry);
25572 - GC_PTR result = (GC_PTR)my_entry;
25574 - obj_link(my_entry) = 0;
25575 - PREFETCH_FOR_WRITE(next);
25577 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
25578 - *my_fl = my_entry + index + 1;
25579 - return GC_malloc(bytes);
25581 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), NORMAL, my_fl);
25582 - if (*my_fl == 0) return GC_oom_fn(bytes);
25583 - return GC_local_malloc(bytes);
25588 -GC_PTR GC_local_malloc_atomic(size_t bytes)
25590 - if (EXPECT(!SMALL_ENOUGH(bytes), 0)) {
25591 - return(GC_malloc_atomic(bytes));
25593 - int index = INDEX_FROM_BYTES(bytes);
25594 - ptr_t * my_fl = ((GC_thread)GC_getspecific(GC_thread_key))
25595 - -> ptrfree_freelists + index;
25596 - ptr_t my_entry = *my_fl;
25598 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
25599 - GC_PTR result = (GC_PTR)my_entry;
25600 - *my_fl = obj_link(my_entry);
25602 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
25603 - *my_fl = my_entry + index + 1;
25604 - return GC_malloc_atomic(bytes);
25606 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), PTRFREE, my_fl);
25607 - /* *my_fl is updated while the collector is excluded; */
25608 - /* the free list is always visible to the collector as */
25610 - if (*my_fl == 0) return GC_oom_fn(bytes);
25611 - return GC_local_malloc_atomic(bytes);
25616 -#ifdef GC_GCJ_SUPPORT
25618 -#include "include/gc_gcj.h"
25620 -#ifdef GC_ASSERTIONS
25621 - extern GC_bool GC_gcj_malloc_initialized;
25624 -extern int GC_gcj_kind;
25626 -GC_PTR GC_local_gcj_malloc(size_t bytes,
25627 - void * ptr_to_struct_containing_descr)
25629 - GC_ASSERT(GC_gcj_malloc_initialized);
25630 - if (EXPECT(!SMALL_ENOUGH(bytes), 0)) {
25631 - return GC_gcj_malloc(bytes, ptr_to_struct_containing_descr);
25633 - int index = INDEX_FROM_BYTES(bytes);
25634 - ptr_t * my_fl = ((GC_thread)GC_getspecific(GC_thread_key))
25635 - -> gcj_freelists + index;
25636 - ptr_t my_entry = *my_fl;
25637 - if (EXPECT((word)my_entry >= HBLKSIZE, 1)) {
25638 - GC_PTR result = (GC_PTR)my_entry;
25639 - GC_ASSERT(!GC_incremental);
25640 - /* We assert that any concurrent marker will stop us. */
25641 - /* Thus it is impossible for a mark procedure to see the */
25642 - /* allocation of the next object, but to see this object */
25643 - /* still containing a free list pointer. Otherwise the */
25644 - /* marker might find a random "mark descriptor". */
25645 - *(volatile ptr_t *)my_fl = obj_link(my_entry);
25646 - /* We must update the freelist before we store the pointer. */
25647 - /* Otherwise a GC at this point would see a corrupted */
25649 - /* A memory barrier is probably never needed, since the */
25650 - /* action of stopping this thread will cause prior writes */
25651 - /* to complete. */
25652 - GC_ASSERT(((void * volatile *)result)[1] == 0);
25653 - *(void * volatile *)result = ptr_to_struct_containing_descr;
25655 - } else if ((word)my_entry - 1 < DIRECT_GRANULES) {
25656 - if (!GC_incremental) *my_fl = my_entry + index + 1;
25657 - /* In the incremental case, we always have to take this */
25658 - /* path. Thus we leave the counter alone. */
25659 - return GC_gcj_malloc(bytes, ptr_to_struct_containing_descr);
25661 - GC_generic_malloc_many(BYTES_FROM_INDEX(index), GC_gcj_kind, my_fl);
25662 - if (*my_fl == 0) return GC_oom_fn(bytes);
25663 - return GC_local_gcj_malloc(bytes, ptr_to_struct_containing_descr);
25668 -#endif /* GC_GCJ_SUPPORT */
25670 -# else /* !THREAD_LOCAL_ALLOC && !DBG_HDRS_ALL */
25672 -# define GC_destroy_thread_local(t)
25674 -# endif /* !THREAD_LOCAL_ALLOC */
25678 -To make sure that we're using LinuxThreads and not some other thread
25679 -package, we generate a dummy reference to `pthread_kill_other_threads_np'
25680 -(was `__pthread_initial_thread_bos' but that disappeared),
25681 -which is a symbol defined in LinuxThreads, but (hopefully) not in other
25684 -We no longer do this, since this code is now portable enough that it might
25685 -actually work for something else.
25687 -void (*dummy_var_to_force_linux_threads)() = pthread_kill_other_threads_np;
25690 -#if defined(SPARC) || defined(IA64)
25691 - extern word GC_save_regs_in_stack();
25694 -long GC_nprocs = 1; /* Number of processors. We may not have */
25695 - /* access to all of them, but this is as good */
25696 - /* a guess as any ... */
25698 -#ifdef PARALLEL_MARK
25700 -# ifndef MAX_MARKERS
25701 -# define MAX_MARKERS 16
25704 -static ptr_t marker_sp[MAX_MARKERS] = {0};
25706 -void * GC_mark_thread(void * id)
25708 - word my_mark_no = 0;
25710 - marker_sp[(word)id] = GC_approx_sp();
25711 - for (;; ++my_mark_no) {
25712 - /* GC_mark_no is passed only to allow GC_help_marker to terminate */
25713 - /* promptly. This is important if it were called from the signal */
25714 - /* handler or from the GC lock acquisition code. Under Linux, it's */
25715 - /* not safe to call it from a signal handler, since it uses mutexes */
25716 - /* and condition variables. Since it is called only here, the */
25717 - /* argument is unnecessary. */
25718 - if (my_mark_no < GC_mark_no || my_mark_no > GC_mark_no + 2) {
25719 - /* resynchronize if we get far off, e.g. because GC_mark_no */
25721 - my_mark_no = GC_mark_no;
25723 -# ifdef DEBUG_THREADS
25724 - GC_printf1("Starting mark helper for mark number %ld\n", my_mark_no);
25726 - GC_help_marker(my_mark_no);
25730 -extern long GC_markers; /* Number of mark threads we would */
25731 - /* like to have. Includes the */
25732 - /* initiating thread. */
25734 -pthread_t GC_mark_threads[MAX_MARKERS];
25736 -#define PTHREAD_CREATE REAL_FUNC(pthread_create)
25738 -static void start_mark_threads()
25741 - pthread_attr_t attr;
25743 - if (GC_markers > MAX_MARKERS) {
25744 - WARN("Limiting number of mark threads\n", 0);
25745 - GC_markers = MAX_MARKERS;
25747 - if (0 != pthread_attr_init(&attr)) ABORT("pthread_attr_init failed");
25749 - if (0 != pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED))
25750 - ABORT("pthread_attr_setdetachstate failed");
25752 -# if defined(HPUX) || defined(GC_DGUX386_THREADS)
25753 - /* Default stack size is usually too small: fix it. */
25754 - /* Otherwise marker threads or GC may run out of */
25756 -# define MIN_STACK_SIZE (8*HBLKSIZE*sizeof(word))
25761 - if (pthread_attr_getstacksize(&attr, &old_size) != 0)
25762 - ABORT("pthread_attr_getstacksize failed\n");
25763 - if (old_size < MIN_STACK_SIZE) {
25764 - if (pthread_attr_setstacksize(&attr, MIN_STACK_SIZE) != 0)
25765 - ABORT("pthread_attr_setstacksize failed\n");
25768 -# endif /* HPUX || GC_DGUX386_THREADS */
25770 - if (GC_print_stats) {
25771 - GC_printf1("Starting %ld marker threads\n", GC_markers - 1);
25774 - for (i = 0; i < GC_markers - 1; ++i) {
25775 - if (0 != PTHREAD_CREATE(GC_mark_threads + i, &attr,
25776 - GC_mark_thread, (void *)(word)i)) {
25777 - WARN("Marker thread creation failed, errno = %ld.\n", errno);
25782 -#else /* !PARALLEL_MARK */
25784 -static __inline__ void start_mark_threads()
25788 -#endif /* !PARALLEL_MARK */
25790 -/* Defining INSTALL_LOOPING_SEGV_HANDLER causes SIGSEGV and SIGBUS to */
25791 -/* result in an infinite loop in a signal handler. This can be very */
25792 -/* useful for debugging, since (as of RH7) gdb still seems to have */
25793 -/* serious problems with threads. */
25794 -#ifdef INSTALL_LOOPING_SEGV_HANDLER
25795 -void GC_looping_handler(int sig)
25797 - GC_printf3("Signal %ld in thread %lx, pid %ld\n",
25798 - sig, pthread_self(), getpid());
25803 -GC_bool GC_thr_initialized = FALSE;
25805 -volatile GC_thread GC_threads[THREAD_TABLE_SZ];
25807 -void GC_push_thread_structures GC_PROTO((void))
25809 - GC_push_all((ptr_t)(GC_threads), (ptr_t)(GC_threads)+sizeof(GC_threads));
25810 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
25811 - GC_push_all((ptr_t)(&GC_thread_key),
25812 - (ptr_t)(&GC_thread_key)+sizeof(&GC_thread_key));
25816 -#ifdef THREAD_LOCAL_ALLOC
25817 -/* We must explicitly mark ptrfree and gcj free lists, since the free */
25818 -/* list links wouldn't otherwise be found. We also set them in the */
25819 -/* normal free lists, since that involves touching less memory than if */
25820 -/* we scanned them normally. */
25821 -void GC_mark_thread_local_free_lists(void)
25827 - for (i = 0; i < THREAD_TABLE_SZ; ++i) {
25828 - for (p = GC_threads[i]; 0 != p; p = p -> next) {
25829 - for (j = 1; j < NFREELISTS; ++j) {
25830 - q = p -> ptrfree_freelists[j];
25831 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
25832 - q = p -> normal_freelists[j];
25833 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
25834 -# ifdef GC_GCJ_SUPPORT
25835 - q = p -> gcj_freelists[j];
25836 - if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
25837 -# endif /* GC_GCJ_SUPPORT */
25842 -#endif /* THREAD_LOCAL_ALLOC */
25844 -static struct GC_Thread_Rep first_thread;
25846 -/* Add a thread to GC_threads. We assume it wasn't already there. */
25847 -/* Caller holds allocation lock. */
25848 -GC_thread GC_new_thread(pthread_t id)
25850 - int hv = ((word)id) % THREAD_TABLE_SZ;
25851 - GC_thread result;
25852 - static GC_bool first_thread_used = FALSE;
25854 - if (!first_thread_used) {
25855 - result = &first_thread;
25856 - first_thread_used = TRUE;
25858 - result = (struct GC_Thread_Rep *)
25859 - GC_INTERNAL_MALLOC(sizeof(struct GC_Thread_Rep), NORMAL);
25861 - if (result == 0) return(0);
25862 - result -> id = id;
25863 - result -> next = GC_threads[hv];
25864 - GC_threads[hv] = result;
25865 - GC_ASSERT(result -> flags == 0 && result -> thread_blocked == 0);
25869 -/* Delete a thread from GC_threads. We assume it is there. */
25870 -/* (The code intentionally traps if it wasn't.) */
25871 -/* Caller holds allocation lock. */
25872 -void GC_delete_thread(pthread_t id)
25874 - int hv = ((word)id) % THREAD_TABLE_SZ;
25875 - register GC_thread p = GC_threads[hv];
25876 - register GC_thread prev = 0;
25878 - while (!pthread_equal(p -> id, id)) {
25883 - GC_threads[hv] = p -> next;
25885 - prev -> next = p -> next;
25887 - GC_INTERNAL_FREE(p);
25890 -/* If a thread has been joined, but we have not yet */
25891 -/* been notified, then there may be more than one thread */
25892 -/* in the table with the same pthread id. */
25893 -/* This is OK, but we need a way to delete a specific one. */
25894 -void GC_delete_gc_thread(pthread_t id, GC_thread gc_id)
25896 - int hv = ((word)id) % THREAD_TABLE_SZ;
25897 - register GC_thread p = GC_threads[hv];
25898 - register GC_thread prev = 0;
25900 - while (p != gc_id) {
25905 - GC_threads[hv] = p -> next;
25907 - prev -> next = p -> next;
25909 - GC_INTERNAL_FREE(p);
25912 -/* Return a GC_thread corresponding to a given thread_t. */
25913 -/* Returns 0 if it's not there. */
25914 -/* Caller holds allocation lock or otherwise inhibits */
25916 -/* If there is more than one thread with the given id we */
25917 -/* return the most recent one. */
25918 -GC_thread GC_lookup_thread(pthread_t id)
25920 - int hv = ((word)id) % THREAD_TABLE_SZ;
25921 - register GC_thread p = GC_threads[hv];
25923 - while (p != 0 && !pthread_equal(p -> id, id)) p = p -> next;
25927 -#ifdef HANDLE_FORK
25928 -/* Remove all entries from the GC_threads table, except the */
25929 -/* one for the current thread. We need to do this in the child */
25930 -/* process after a fork(), since only the current thread */
25931 -/* survives in the child. */
25932 -void GC_remove_all_threads_but_me(void)
25934 - pthread_t self = pthread_self();
25936 - GC_thread p, next, me;
25938 - for (hv = 0; hv < THREAD_TABLE_SZ; ++hv) {
25940 - for (p = GC_threads[hv]; 0 != p; p = next) {
25941 - next = p -> next;
25942 - if (p -> id == self) {
25946 -# ifdef THREAD_LOCAL_ALLOC
25947 - if (!(p -> flags & FINISHED)) {
25948 - GC_destroy_thread_local(p);
25950 -# endif /* THREAD_LOCAL_ALLOC */
25951 - if (p != &first_thread) GC_INTERNAL_FREE(p);
25954 - GC_threads[hv] = me;
25957 -#endif /* HANDLE_FORK */
25959 -#ifdef USE_PROC_FOR_LIBRARIES
25960 -int GC_segment_is_thread_stack(ptr_t lo, ptr_t hi)
25965 -# ifdef PARALLEL_MARK
25966 - for (i = 0; i < GC_markers; ++i) {
25967 - if (marker_sp[i] > lo & marker_sp[i] < hi) return 1;
25970 - for (i = 0; i < THREAD_TABLE_SZ; i++) {
25971 - for (p = GC_threads[i]; p != 0; p = p -> next) {
25972 - if (0 != p -> stack_end) {
25973 -# ifdef STACK_GROWS_UP
25974 - if (p -> stack_end >= lo && p -> stack_end < hi) return 1;
25975 -# else /* STACK_GROWS_DOWN */
25976 - if (p -> stack_end > lo && p -> stack_end <= hi) return 1;
25983 -#endif /* USE_PROC_FOR_LIBRARIES */
25985 -#ifdef GC_LINUX_THREADS
25986 -/* Return the number of processors, or i<= 0 if it can't be determined. */
25987 -int GC_get_nprocs()
25989 - /* Should be "return sysconf(_SC_NPROCESSORS_ONLN);" but that */
25990 - /* appears to be buggy in many cases. */
25991 - /* We look for lines "cpu<n>" in /proc/stat. */
25992 -# define STAT_BUF_SIZE 4096
25993 -# define STAT_READ read
25994 - /* If read is wrapped, this may need to be redefined to call */
25995 - /* the real one. */
25996 - char stat_buf[STAT_BUF_SIZE];
25999 - /* Some old kernels only have a single "cpu nnnn ..." */
26000 - /* entry in /proc/stat. We identify those as */
26001 - /* uniprocessors. */
26002 - size_t i, len = 0;
26004 - f = open("/proc/stat", O_RDONLY);
26005 - if (f < 0 || (len = STAT_READ(f, stat_buf, STAT_BUF_SIZE)) < 100) {
26006 - WARN("Couldn't read /proc/stat\n", 0);
26009 - for (i = 0; i < len - 100; ++i) {
26010 - if (stat_buf[i] == '\n' && stat_buf[i+1] == 'c'
26011 - && stat_buf[i+2] == 'p' && stat_buf[i+3] == 'u') {
26012 - int cpu_no = atoi(stat_buf + i + 4);
26013 - if (cpu_no >= result) result = cpu_no + 1;
26019 -#endif /* GC_LINUX_THREADS */
26021 -/* We hold the GC lock. Wait until an in-progress GC has finished. */
26022 -/* Repeatedly RELEASES GC LOCK in order to wait. */
26023 -/* If wait_for_all is true, then we exit with the GC lock held and no */
26024 -/* collection in progress; otherwise we just wait for the current GC */
26026 -extern GC_bool GC_collection_in_progress();
26027 -void GC_wait_for_gc_completion(GC_bool wait_for_all)
26029 - if (GC_incremental && GC_collection_in_progress()) {
26030 - int old_gc_no = GC_gc_no;
26032 - /* Make sure that no part of our stack is still on the mark stack, */
26033 - /* since it's about to be unmapped. */
26034 - while (GC_incremental && GC_collection_in_progress()
26035 - && (wait_for_all || old_gc_no == GC_gc_no)) {
26037 - GC_collect_a_little_inner(1);
26046 -#ifdef HANDLE_FORK
26047 -/* Procedures called before and after a fork. The goal here is to make */
26048 -/* it safe to call GC_malloc() in a forked child. It's unclear that is */
26049 -/* attainable, since the single UNIX spec seems to imply that one */
26050 -/* should only call async-signal-safe functions, and we probably can't */
26051 -/* quite guarantee that. But we give it our best shot. (That same */
26052 -/* spec also implies that it's not safe to call the system malloc */
26053 -/* between fork() and exec(). Thus we're doing no worse than it. */
26055 -/* Called before a fork() */
26056 -void GC_fork_prepare_proc(void)
26058 - /* Acquire all relevant locks, so that after releasing the locks */
26059 - /* the child will see a consistent state in which monitor */
26060 - /* invariants hold. Unfortunately, we can't acquire libc locks */
26061 - /* we might need, and there seems to be no guarantee that libc */
26062 - /* must install a suitable fork handler. */
26063 - /* Wait for an ongoing GC to finish, since we can't finish it in */
26064 - /* the (one remaining thread in) the child. */
26066 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26067 - GC_wait_for_reclaim();
26069 - GC_wait_for_gc_completion(TRUE);
26070 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26071 - GC_acquire_mark_lock();
26075 -/* Called in parent after a fork() */
26076 -void GC_fork_parent_proc(void)
26078 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26079 - GC_release_mark_lock();
26084 -/* Called in child after a fork() */
26085 -void GC_fork_child_proc(void)
26087 - /* Clean up the thread table, so that just our thread is left. */
26088 -# if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26089 - GC_release_mark_lock();
26091 - GC_remove_all_threads_but_me();
26092 -# ifdef PARALLEL_MARK
26093 - /* Turn off parallel marking in the child, since we are probably */
26094 - /* just going to exec, and we would have to restart mark threads. */
26096 - GC_parallel = FALSE;
26097 -# endif /* PARALLEL_MARK */
26100 -#endif /* HANDLE_FORK */
26102 -#if defined(GC_DGUX386_THREADS)
26103 -/* Return the number of processors, or i<= 0 if it can't be determined. */
26104 -int GC_get_nprocs()
26106 - /* <takis@XFree86.Org> */
26108 - struct dg_sys_info_pm_info pm_sysinfo;
26111 - status = dg_sys_info((long int *) &pm_sysinfo,
26112 - DG_SYS_INFO_PM_INFO_TYPE, DG_SYS_INFO_PM_CURRENT_VERSION);
26114 - /* set -1 for error */
26117 - /* Active CPUs */
26118 - numCpus = pm_sysinfo.idle_vp_count;
26120 -# ifdef DEBUG_THREADS
26121 - GC_printf1("Number of active CPUs in this system: %d\n", numCpus);
26125 -#endif /* GC_DGUX386_THREADS */
26127 -/* We hold the allocation lock. */
26128 -void GC_thr_init()
26130 -# ifndef GC_DARWIN_THREADS
26135 - if (GC_thr_initialized) return;
26136 - GC_thr_initialized = TRUE;
26138 -# ifdef HANDLE_FORK
26139 - /* Prepare for a possible fork. */
26140 - pthread_atfork(GC_fork_prepare_proc, GC_fork_parent_proc,
26141 - GC_fork_child_proc);
26142 -# endif /* HANDLE_FORK */
26143 - /* Add the initial thread, so we can stop it. */
26144 - t = GC_new_thread(pthread_self());
26145 -# ifdef GC_DARWIN_THREADS
26146 - t -> stop_info.mach_thread = mach_thread_self();
26148 - t -> stop_info.stack_ptr = (ptr_t)(&dummy);
26150 - t -> flags = DETACHED | MAIN_THREAD;
26154 - /* Set GC_nprocs. */
26156 - char * nprocs_string = GETENV("GC_NPROCS");
26158 - if (nprocs_string != NULL) GC_nprocs = atoi(nprocs_string);
26160 - if (GC_nprocs <= 0) {
26161 -# if defined(GC_HPUX_THREADS)
26162 - GC_nprocs = pthread_num_processors_np();
26164 -# if defined(GC_OSF1_THREADS)
26165 - GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN);
26166 - if (GC_nprocs <= 0) GC_nprocs = 1;
26168 -# if defined(GC_FREEBSD_THREADS)
26171 -# if defined(GC_DARWIN_THREADS)
26173 - size_t len = sizeof(ncpus);
26174 - sysctl((int[2]) {CTL_HW, HW_NCPU}, 2, &ncpus, &len, NULL, 0);
26175 - GC_nprocs = ncpus;
26177 -# if defined(GC_LINUX_THREADS) || defined(GC_DGUX386_THREADS)
26178 - GC_nprocs = GC_get_nprocs();
26181 - if (GC_nprocs <= 0) {
26182 - WARN("GC_get_nprocs() returned %ld\n", GC_nprocs);
26184 -# ifdef PARALLEL_MARK
26188 -# ifdef PARALLEL_MARK
26190 - char * markers_string = GETENV("GC_MARKERS");
26191 - if (markers_string != NULL) {
26192 - GC_markers = atoi(markers_string);
26194 - GC_markers = GC_nprocs;
26199 -# ifdef PARALLEL_MARK
26201 - if (GC_print_stats) {
26202 - GC_printf2("Number of processors = %ld, "
26203 - "number of marker threads = %ld\n", GC_nprocs, GC_markers);
26206 - if (GC_markers == 1) {
26207 - GC_parallel = FALSE;
26209 - if (GC_print_stats) {
26210 - GC_printf0("Single marker thread, turning off parallel marking\n");
26214 - GC_parallel = TRUE;
26215 - /* Disable true incremental collection, but generational is OK. */
26216 - GC_time_limit = GC_TIME_UNLIMITED;
26222 -/* Perform all initializations, including those that */
26223 -/* may require allocation. */
26224 -/* Called without allocation lock. */
26225 -/* Must be called before a second thread is created. */
26226 -/* Called without allocation lock. */
26227 -void GC_init_parallel()
26229 - if (parallel_initialized) return;
26230 - parallel_initialized = TRUE;
26232 - /* GC_init() calls us back, so set flag first. */
26233 - if (!GC_is_initialized) GC_init();
26234 - /* If we are using a parallel marker, start the helper threads. */
26235 -# ifdef PARALLEL_MARK
26236 - if (GC_parallel) start_mark_threads();
26238 - /* Initialize thread local free lists if used. */
26239 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26241 - GC_init_thread_local(GC_lookup_thread(pthread_self()));
26247 -#if !defined(GC_DARWIN_THREADS)
26248 -int WRAP_FUNC(pthread_sigmask)(int how, const sigset_t *set, sigset_t *oset)
26250 - sigset_t fudged_set;
26252 - if (set != NULL && (how == SIG_BLOCK || how == SIG_SETMASK)) {
26253 - fudged_set = *set;
26254 - sigdelset(&fudged_set, SIG_SUSPEND);
26255 - set = &fudged_set;
26257 - return(REAL_FUNC(pthread_sigmask)(how, set, oset));
26259 -#endif /* !GC_DARWIN_THREADS */
26261 -/* Wrappers for functions that are likely to block for an appreciable */
26262 -/* length of time. Must be called in pairs, if at all. */
26263 -/* Nothing much beyond the system call itself should be executed */
26264 -/* between these. */
26266 -void GC_start_blocking(void) {
26267 -# define SP_SLOP 128
26270 - me = GC_lookup_thread(pthread_self());
26271 - GC_ASSERT(!(me -> thread_blocked));
26273 - me -> stop_info.stack_ptr = (ptr_t)GC_save_regs_in_stack();
26275 -# ifndef GC_DARWIN_THREADS
26276 - me -> stop_info.stack_ptr = (ptr_t)GC_approx_sp();
26280 - me -> backing_store_ptr = (ptr_t)GC_save_regs_in_stack() + SP_SLOP;
26282 - /* Add some slop to the stack pointer, since the wrapped call may */
26283 - /* end up pushing more callee-save registers. */
26284 -# ifndef GC_DARWIN_THREADS
26285 -# ifdef STACK_GROWS_UP
26286 - me -> stop_info.stack_ptr += SP_SLOP;
26288 - me -> stop_info.stack_ptr -= SP_SLOP;
26291 - me -> thread_blocked = TRUE;
26295 -void GC_end_blocking(void) {
26297 - LOCK(); /* This will block if the world is stopped. */
26298 - me = GC_lookup_thread(pthread_self());
26299 - GC_ASSERT(me -> thread_blocked);
26300 - me -> thread_blocked = FALSE;
26304 -#if defined(GC_DGUX386_THREADS)
26305 -#define __d10_sleep sleep
26306 -#endif /* GC_DGUX386_THREADS */
26308 -/* A wrapper for the standard C sleep function */
26309 -int WRAP_FUNC(sleep) (unsigned int seconds)
26313 - GC_start_blocking();
26314 - result = REAL_FUNC(sleep)(seconds);
26315 - GC_end_blocking();
26319 -struct start_info {
26320 - void *(*start_routine)(void *);
26323 - sem_t registered; /* 1 ==> in our thread table, but */
26324 - /* parent hasn't yet noticed. */
26327 -/* Called at thread exit. */
26328 -/* Never called for main thread. That's OK, since it */
26329 -/* results in at most a tiny one-time leak. And */
26330 -/* linuxthreads doesn't reclaim the main threads */
26331 -/* resources or id anyway. */
26332 -void GC_thread_exit_proc(void *arg)
26337 - me = GC_lookup_thread(pthread_self());
26338 - GC_destroy_thread_local(me);
26339 - if (me -> flags & DETACHED) {
26340 - GC_delete_thread(pthread_self());
26342 - me -> flags |= FINISHED;
26344 -# if defined(THREAD_LOCAL_ALLOC) && !defined(USE_PTHREAD_SPECIFIC) \
26345 - && !defined(USE_HPUX_TLS) && !defined(DBG_HDRS_ALL)
26346 - GC_remove_specific(GC_thread_key);
26348 - GC_wait_for_gc_completion(FALSE);
26352 -int WRAP_FUNC(pthread_join)(pthread_t thread, void **retval)
26355 - GC_thread thread_gc_id;
26358 - thread_gc_id = GC_lookup_thread(thread);
26359 - /* This is guaranteed to be the intended one, since the thread id */
26360 - /* cant have been recycled by pthreads. */
26362 - result = REAL_FUNC(pthread_join)(thread, retval);
26363 -# if defined (GC_FREEBSD_THREADS)
26364 - /* On FreeBSD, the wrapped pthread_join() sometimes returns (what
26365 - appears to be) a spurious EINTR which caused the test and real code
26366 - to gratuitously fail. Having looked at system pthread library source
26367 - code, I see how this return code may be generated. In one path of
26368 - code, pthread_join() just returns the errno setting of the thread
26369 - being joined. This does not match the POSIX specification or the
26370 - local man pages thus I have taken the liberty to catch this one
26371 - spurious return value properly conditionalized on GC_FREEBSD_THREADS. */
26372 - if (result == EINTR) result = 0;
26374 - if (result == 0) {
26376 - /* Here the pthread thread id may have been recycled. */
26377 - GC_delete_gc_thread(thread, thread_gc_id);
26384 -WRAP_FUNC(pthread_detach)(pthread_t thread)
26387 - GC_thread thread_gc_id;
26390 - thread_gc_id = GC_lookup_thread(thread);
26392 - result = REAL_FUNC(pthread_detach)(thread);
26393 - if (result == 0) {
26395 - thread_gc_id -> flags |= DETACHED;
26396 - /* Here the pthread thread id may have been recycled. */
26397 - if (thread_gc_id -> flags & FINISHED) {
26398 - GC_delete_gc_thread(thread, thread_gc_id);
26405 -void * GC_start_routine(void * arg)
26408 - struct start_info * si = arg;
26411 - pthread_t my_pthread;
26412 - void *(*start)(void *);
26415 - my_pthread = pthread_self();
26416 -# ifdef DEBUG_THREADS
26417 - GC_printf1("Starting thread 0x%lx\n", my_pthread);
26418 - GC_printf1("pid = %ld\n", (long) getpid());
26419 - GC_printf1("sp = 0x%lx\n", (long) &arg);
26422 - me = GC_new_thread(my_pthread);
26423 -#ifdef GC_DARWIN_THREADS
26424 - me -> stop_info.mach_thread = mach_thread_self();
26426 - me -> stop_info.stack_ptr = 0;
26428 - me -> flags = si -> flags;
26429 - /* me -> stack_end = GC_linux_stack_base(); -- currently (11/99) */
26430 - /* doesn't work because the stack base in /proc/self/stat is the */
26431 - /* one for the main thread. There is a strong argument that that's */
26432 - /* a kernel bug, but a pervasive one. */
26433 -# ifdef STACK_GROWS_DOWN
26434 - me -> stack_end = (ptr_t)(((word)(&dummy) + (GC_page_size - 1))
26435 - & ~(GC_page_size - 1));
26436 -# ifndef GC_DARWIN_THREADS
26437 - me -> stop_info.stack_ptr = me -> stack_end - 0x10;
26439 - /* Needs to be plausible, since an asynchronous stack mark */
26440 - /* should not crash. */
26442 - me -> stack_end = (ptr_t)((word)(&dummy) & ~(GC_page_size - 1));
26443 - me -> stop_info.stack_ptr = me -> stack_end + 0x10;
26445 - /* This is dubious, since we may be more than a page into the stack, */
26446 - /* and hence skip some of it, though it's not clear that matters. */
26448 - me -> backing_store_end = (ptr_t)
26449 - (GC_save_regs_in_stack() & ~(GC_page_size - 1));
26450 - /* This is also < 100% convincing. We should also read this */
26451 - /* from /proc, but the hook to do so isn't there yet. */
26452 -# endif /* IA64 */
26454 - start = si -> start_routine;
26455 -# ifdef DEBUG_THREADS
26456 - GC_printf1("start_routine = 0x%lx\n", start);
26458 - start_arg = si -> arg;
26459 - sem_post(&(si -> registered)); /* Last action on si. */
26460 - /* OK to deallocate. */
26461 - pthread_cleanup_push(GC_thread_exit_proc, 0);
26462 -# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
26464 - GC_init_thread_local(me);
26467 - result = (*start)(start_arg);
26469 - GC_printf1("Finishing thread 0x%x\n", pthread_self());
26471 - me -> status = result;
26472 - me -> flags |= FINISHED;
26473 - pthread_cleanup_pop(1);
26474 - /* Cleanup acquires lock, ensuring that we can't exit */
26475 - /* while a collection that thinks we're alive is trying to stop */
26481 -WRAP_FUNC(pthread_create)(pthread_t *new_thread,
26482 - const pthread_attr_t *attr,
26483 - void *(*start_routine)(void *), void *arg)
26487 - word my_flags = 0;
26488 - struct start_info * si;
26489 - /* This is otherwise saved only in an area mmapped by the thread */
26490 - /* library, which isn't visible to the collector. */
26492 - /* We resist the temptation to muck with the stack size here, */
26493 - /* even if the default is unreasonably small. That's the client's */
26494 - /* responsibility. */
26497 - si = (struct start_info *)GC_INTERNAL_MALLOC(sizeof(struct start_info),
26500 - if (!parallel_initialized) GC_init_parallel();
26501 - if (0 == si) return(ENOMEM);
26502 - sem_init(&(si -> registered), 0, 0);
26503 - si -> start_routine = start_routine;
26506 - if (!GC_thr_initialized) GC_thr_init();
26507 -# ifdef GC_ASSERTIONS
26510 - if (NULL == attr) {
26511 - pthread_attr_t my_attr;
26512 - pthread_attr_init(&my_attr);
26513 - pthread_attr_getstacksize(&my_attr, &stack_size);
26515 - pthread_attr_getstacksize(attr, &stack_size);
26517 - GC_ASSERT(stack_size >= (8*HBLKSIZE*sizeof(word)));
26518 - /* Our threads may need to do some work for the GC. */
26519 - /* Ridiculously small threads won't work, and they */
26520 - /* probably wouldn't work anyway. */
26523 - if (NULL == attr) {
26524 - detachstate = PTHREAD_CREATE_JOINABLE;
26526 - pthread_attr_getdetachstate(attr, &detachstate);
26528 - if (PTHREAD_CREATE_DETACHED == detachstate) my_flags |= DETACHED;
26529 - si -> flags = my_flags;
26531 -# ifdef DEBUG_THREADS
26532 - GC_printf1("About to start new thread from thread 0x%X\n",
26536 - result = REAL_FUNC(pthread_create)(new_thread, attr, GC_start_routine, si);
26538 -# ifdef DEBUG_THREADS
26539 - GC_printf1("Started thread 0x%X\n", *new_thread);
26541 - /* Wait until child has been added to the thread table. */
26542 - /* This also ensures that we hold onto si until the child is done */
26543 - /* with it. Thus it doesn't matter whether it is otherwise */
26544 - /* visible to the collector. */
26545 - while (0 != sem_wait(&(si -> registered))) {
26546 - if (EINTR != errno) ABORT("sem_wait failed");
26548 - sem_destroy(&(si -> registered));
26550 - GC_INTERNAL_FREE(si);
26556 -#ifdef GENERIC_COMPARE_AND_SWAP
26557 - pthread_mutex_t GC_compare_and_swap_lock = PTHREAD_MUTEX_INITIALIZER;
26559 - GC_bool GC_compare_and_exchange(volatile GC_word *addr,
26560 - GC_word old, GC_word new_val)
26563 - pthread_mutex_lock(&GC_compare_and_swap_lock);
26564 - if (*addr == old) {
26570 - pthread_mutex_unlock(&GC_compare_and_swap_lock);
26574 - GC_word GC_atomic_add(volatile GC_word *addr, GC_word how_much)
26577 - pthread_mutex_lock(&GC_compare_and_swap_lock);
26579 - *addr = old + how_much;
26580 - pthread_mutex_unlock(&GC_compare_and_swap_lock);
26584 -#endif /* GENERIC_COMPARE_AND_SWAP */
26585 -/* Spend a few cycles in a way that can't introduce contention with */
26586 -/* othre threads. */
26591 - volatile word dummy = 0;
26594 - for (i = 0; i < 10; ++i) {
26596 - __asm__ __volatile__ (" " : : : "memory");
26598 - /* Something that's unlikely to be optimized away. */
26599 - GC_noop(++dummy);
26604 -#define SPIN_MAX 1024 /* Maximum number of calls to GC_pause before */
26607 -VOLATILE GC_bool GC_collecting = 0;
26608 - /* A hint that we're in the collector and */
26609 - /* holding the allocation lock for an */
26610 - /* extended period. */
26612 -#if !defined(USE_SPIN_LOCK) || defined(PARALLEL_MARK)
26613 -/* If we don't want to use the below spinlock implementation, either */
26614 -/* because we don't have a GC_test_and_set implementation, or because */
26615 -/* we don't want to risk sleeping, we can still try spinning on */
26616 -/* pthread_mutex_trylock for a while. This appears to be very */
26617 -/* beneficial in many cases. */
26618 -/* I suspect that under high contention this is nearly always better */
26619 -/* than the spin lock. But it's a bit slower on a uniprocessor. */
26620 -/* Hence we still default to the spin lock. */
26621 -/* This is also used to acquire the mark lock for the parallel */
26624 -/* Here we use a strict exponential backoff scheme. I don't know */
26625 -/* whether that's better or worse than the above. We eventually */
26626 -/* yield by calling pthread_mutex_lock(); it never makes sense to */
26627 -/* explicitly sleep. */
26629 -void GC_generic_lock(pthread_mutex_t * lock)
26631 -#ifndef NO_PTHREAD_TRYLOCK
26632 - unsigned pause_length = 1;
26635 - if (0 == pthread_mutex_trylock(lock)) return;
26636 - for (; pause_length <= SPIN_MAX; pause_length <<= 1) {
26637 - for (i = 0; i < pause_length; ++i) {
26640 - switch(pthread_mutex_trylock(lock)) {
26646 - ABORT("Unexpected error from pthread_mutex_trylock");
26649 -#endif /* !NO_PTHREAD_TRYLOCK */
26650 - pthread_mutex_lock(lock);
26653 -#endif /* !USE_SPIN_LOCK || PARALLEL_MARK */
26655 -#if defined(USE_SPIN_LOCK)
26657 -/* Reasonably fast spin locks. Basically the same implementation */
26658 -/* as STL alloc.h. This isn't really the right way to do this. */
26659 -/* but until the POSIX scheduling mess gets straightened out ... */
26661 -volatile unsigned int GC_allocate_lock = 0;
26666 -# define low_spin_max 30 /* spin cycles if we suspect uniprocessor */
26667 -# define high_spin_max SPIN_MAX /* spin cycles for multiprocessor */
26668 - static unsigned spin_max = low_spin_max;
26669 - unsigned my_spin_max;
26670 - static unsigned last_spins = 0;
26671 - unsigned my_last_spins;
26674 - if (!GC_test_and_set(&GC_allocate_lock)) {
26677 - my_spin_max = spin_max;
26678 - my_last_spins = last_spins;
26679 - for (i = 0; i < my_spin_max; i++) {
26680 - if (GC_collecting || GC_nprocs == 1) goto yield;
26681 - if (i < my_last_spins/2 || GC_allocate_lock) {
26685 - if (!GC_test_and_set(&GC_allocate_lock)) {
26688 - * Spinning worked. Thus we're probably not being scheduled
26689 - * against the other process with which we were contending.
26690 - * Thus it makes sense to spin longer the next time.
26693 - spin_max = high_spin_max;
26697 - /* We are probably being scheduled against the other process. Sleep. */
26698 - spin_max = low_spin_max;
26700 - for (i = 0;; ++i) {
26701 - if (!GC_test_and_set(&GC_allocate_lock)) {
26704 -# define SLEEP_THRESHOLD 12
26705 - /* Under Linux very short sleeps tend to wait until */
26706 - /* the current time quantum expires. On old Linux */
26707 - /* kernels nanosleep(<= 2ms) just spins under Linux. */
26708 - /* (Under 2.4, this happens only for real-time */
26709 - /* processes.) We want to minimize both behaviors */
26711 - if (i < SLEEP_THRESHOLD) {
26714 - struct timespec ts;
26716 - if (i > 24) i = 24;
26717 - /* Don't wait for more than about 15msecs, even */
26718 - /* under extreme contention. */
26720 - ts.tv_nsec = 1 << i;
26721 - nanosleep(&ts, 0);
26726 -#else /* !USE_SPINLOCK */
26729 -#ifndef NO_PTHREAD_TRYLOCK
26730 - if (1 == GC_nprocs || GC_collecting) {
26731 - pthread_mutex_lock(&GC_allocate_ml);
26733 - GC_generic_lock(&GC_allocate_ml);
26735 -#else /* !NO_PTHREAD_TRYLOCK */
26736 - pthread_mutex_lock(&GC_allocate_ml);
26737 -#endif /* !NO_PTHREAD_TRYLOCK */
26740 -#endif /* !USE_SPINLOCK */
26742 -#if defined(PARALLEL_MARK) || defined(THREAD_LOCAL_ALLOC)
26744 -#ifdef GC_ASSERTIONS
26745 - pthread_t GC_mark_lock_holder = NO_THREAD;
26749 - /* Ugly workaround for a linux threads bug in the final versions */
26750 - /* of glibc2.1. Pthread_mutex_trylock sets the mutex owner */
26751 - /* field even when it fails to acquire the mutex. This causes */
26752 - /* pthread_cond_wait to die. Remove for glibc2.2. */
26753 - /* According to the man page, we should use */
26754 - /* PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP, but that isn't actually */
26756 - static pthread_mutex_t mark_mutex =
26757 - {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, {0, 0}};
26759 - static pthread_mutex_t mark_mutex = PTHREAD_MUTEX_INITIALIZER;
26762 -static pthread_cond_t builder_cv = PTHREAD_COND_INITIALIZER;
26764 -void GC_acquire_mark_lock()
26767 - if (pthread_mutex_lock(&mark_mutex) != 0) {
26768 - ABORT("pthread_mutex_lock failed");
26771 - GC_generic_lock(&mark_mutex);
26772 -# ifdef GC_ASSERTIONS
26773 - GC_mark_lock_holder = pthread_self();
26777 -void GC_release_mark_lock()
26779 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
26780 -# ifdef GC_ASSERTIONS
26781 - GC_mark_lock_holder = NO_THREAD;
26783 - if (pthread_mutex_unlock(&mark_mutex) != 0) {
26784 - ABORT("pthread_mutex_unlock failed");
26788 -/* Collector must wait for a freelist builders for 2 reasons: */
26789 -/* 1) Mark bits may still be getting examined without lock. */
26790 -/* 2) Partial free lists referenced only by locals may not be scanned */
26791 -/* correctly, e.g. if they contain "pointer-free" objects, since the */
26792 -/* free-list link may be ignored. */
26793 -void GC_wait_builder()
26795 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
26796 -# ifdef GC_ASSERTIONS
26797 - GC_mark_lock_holder = NO_THREAD;
26799 - if (pthread_cond_wait(&builder_cv, &mark_mutex) != 0) {
26800 - ABORT("pthread_cond_wait failed");
26802 - GC_ASSERT(GC_mark_lock_holder == NO_THREAD);
26803 -# ifdef GC_ASSERTIONS
26804 - GC_mark_lock_holder = pthread_self();
26808 -void GC_wait_for_reclaim()
26810 - GC_acquire_mark_lock();
26811 - while (GC_fl_builder_count > 0) {
26812 - GC_wait_builder();
26814 - GC_release_mark_lock();
26817 -void GC_notify_all_builder()
26819 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
26820 - if (pthread_cond_broadcast(&builder_cv) != 0) {
26821 - ABORT("pthread_cond_broadcast failed");
26825 -#endif /* PARALLEL_MARK || THREAD_LOCAL_ALLOC */
26827 -#ifdef PARALLEL_MARK
26829 -static pthread_cond_t mark_cv = PTHREAD_COND_INITIALIZER;
26831 -void GC_wait_marker()
26833 - GC_ASSERT(GC_mark_lock_holder == pthread_self());
26834 -# ifdef GC_ASSERTIONS
26835 - GC_mark_lock_holder = NO_THREAD;
26837 - if (pthread_cond_wait(&mark_cv, &mark_mutex) != 0) {
26838 - ABORT("pthread_cond_wait failed");
26840 - GC_ASSERT(GC_mark_lock_holder == NO_THREAD);
26841 -# ifdef GC_ASSERTIONS
26842 - GC_mark_lock_holder = pthread_self();
26846 -void GC_notify_all_marker()
26848 - if (pthread_cond_broadcast(&mark_cv) != 0) {
26849 - ABORT("pthread_cond_broadcast failed");
26853 -#endif /* PARALLEL_MARK */
26855 -# endif /* GC_LINUX_THREADS and friends */
26857 diff -Nur ../boehm-gc/ptr_chck.c boehm-gc/ptr_chck.c
26858 --- ../boehm-gc/ptr_chck.c Mon May 26 12:48:52 2003
26859 +++ boehm-gc/ptr_chck.c Fri Aug 17 11:30:46 2001
26863 sz = WORDS_TO_BYTES(hhdr -> hb_sz);
26864 - if (sz > MAXOBJBYTES) {
26865 + if (sz > WORDS_TO_BYTES(MAXOBJSZ)) {
26866 base = (ptr_t)HBLKPTR(p);
26868 if ((ptr_t)p >= limit) {
26869 @@ -165,7 +165,7 @@
26870 pdispl = HBLKDISPL(p);
26871 map_entry = MAP_ENTRY((hhdr -> hb_map), pdispl);
26872 if (map_entry == OBJ_INVALID
26873 - || sz > MAXOBJBYTES && (ptr_t)p >= (ptr_t)h + sz) {
26874 + || sz > MAXOBJSZ && (ptr_t)p >= (ptr_t)h + sz) {
26878 diff -Nur ../boehm-gc/reclaim.c boehm-gc/reclaim.c
26879 --- ../boehm-gc/reclaim.c Mon May 26 12:48:52 2003
26880 +++ boehm-gc/reclaim.c Fri Mar 29 14:52:12 2002
26881 @@ -27,61 +27,23 @@
26883 #endif /* PARALLEL_MARK */
26885 -/* We defer printing of leaked objects until we're done with the GC */
26886 -/* cycle, since the routine for printing objects needs to run outside */
26887 -/* the collector, e.g. without the allocation lock. */
26888 -#define MAX_LEAKED 40
26889 -ptr_t GC_leaked[MAX_LEAKED];
26890 -unsigned GC_n_leaked = 0;
26892 -GC_bool GC_have_errors = FALSE;
26894 -void GC_add_leaked(leaked)
26897 - if (GC_n_leaked < MAX_LEAKED) {
26898 - GC_have_errors = TRUE;
26899 - GC_leaked[GC_n_leaked++] = leaked;
26900 - /* Make sure it's not reclaimed this cycle */
26901 - GC_set_mark_bit(leaked);
26905 -static GC_bool printing_errors = FALSE;
26906 -/* Print all objects on the list after printing any smashed objs. */
26907 -/* Clear both lists. */
26908 -void GC_print_all_errors ()
26909 +static void report_leak(p, sz)
26916 - if (printing_errors) {
26920 - printing_errors = TRUE;
26922 - if (GC_debugging_started) GC_print_all_smashed();
26923 - for (i = 0; i < GC_n_leaked; ++i) {
26924 - ptr_t p = GC_leaked[i];
26925 - if (HDR(p) -> hb_obj_kind == PTRFREE) {
26926 - GC_err_printf0("Leaked atomic object at ");
26928 - GC_err_printf0("Leaked composite object at ");
26930 - GC_print_heap_obj(p);
26931 - GC_err_printf0("\n");
26933 - GC_leaked[i] = 0;
26934 + if (HDR(p) -> hb_obj_kind == PTRFREE) {
26935 + GC_err_printf0("Leaked atomic object at ");
26937 + GC_err_printf0("Leaked composite object at ");
26940 - printing_errors = FALSE;
26941 + GC_print_heap_obj(p);
26942 + GC_err_printf0("\n");
26946 # define FOUND_FREE(hblk, word_no) \
26948 - GC_add_leaked((ptr_t)hblk + WORDS_TO_BYTES(word_no)); \
26949 + report_leak((ptr_t)hblk + WORDS_TO_BYTES(word_no), \
26950 + HDR(hblk) -> hb_sz); \
26954 @@ -904,7 +866,7 @@
26956 * This must be done before dropping a list of free gcj-style objects,
26957 * since may otherwise end up with dangling "descriptor" pointers.
26958 - * It may help for other pointer-containing objects.
26959 + * It may help for other pointer-containg objects.
26961 void GC_clear_fl_links(flp)
26963 diff -Nur ../boehm-gc/solaris_pthreads.c boehm-gc/solaris_pthreads.c
26964 --- ../boehm-gc/solaris_pthreads.c Mon May 26 12:48:52 2003
26965 +++ boehm-gc/solaris_pthreads.c Mon Feb 11 20:37:53 2002
26968 * Support code for Solaris threads. Provides functionality we wish Sun
26969 * had provided. Relies on some information we probably shouldn't rely on.
26970 - * Modified by Peter C. for Solaris Posix Threads.
26971 + * Modified Peter C. for Solaris Posix Threads.
26973 +/* Boehm, September 14, 1994 4:44 pm PDT */
26975 # if defined(GC_SOLARIS_PTHREADS)
26976 # include "private/gc_priv.h"
26977 diff -Nur ../boehm-gc/solaris_threads.c boehm-gc/solaris_threads.c
26978 --- ../boehm-gc/solaris_threads.c Mon May 26 12:48:52 2003
26979 +++ boehm-gc/solaris_threads.c Mon Feb 11 20:37:53 2002
26981 # include <unistd.h>
26982 # include <errno.h>
26984 -#ifdef HANDLE_FORK
26985 - --> Not yet supported. Try porting the code from linux_threads.c.
26989 * This is the default size of the LWP arrays. If there are more LWPs
26990 * than this when a stop-the-world GC happens, set_max_lwps will be
26991 @@ -365,7 +361,7 @@
26992 sizeof (prgregset_t)) != 0) {
26995 - for(j = 0; j < NPRGREG; j++)
26996 + for(j = 0; j < NGREG; j++)
26998 GC_printf3("%i: %x -> %x\n", j,
26999 GC_lwp_registers[i][j],
27000 @@ -825,7 +821,7 @@
27002 t = GC_lookup_thread(target_thread);
27003 if (t == 0) ABORT("thread unknown to GC");
27004 - t -> flags |= SUSPNDED;
27005 + t -> flags |= SUSPENDED;
27009 @@ -841,7 +837,7 @@
27011 t = GC_lookup_thread(target_thread);
27012 if (t == 0) ABORT("thread unknown to GC");
27013 - t -> flags &= ~SUSPNDED;
27014 + t -> flags &= ~SUSPENDED;
27018 @@ -927,7 +923,7 @@
27019 my_flags |= CLIENT_OWNS_STACK;
27021 if (flags & THR_DETACHED) my_flags |= DETACHED;
27022 - if (flags & THR_SUSPENDED) my_flags |= SUSPNDED;
27023 + if (flags & THR_SUSPENDED) my_flags |= SUSPENDED;
27024 result = thr_create(stack, stack_size, start_routine,
27025 arg, flags & ~THR_DETACHED, &my_new_thread);
27027 diff -Nur ../boehm-gc/sparc_mach_dep.S boehm-gc/sparc_mach_dep.S
27028 --- ../boehm-gc/sparc_mach_dep.S Mon May 26 12:48:52 2003
27029 +++ boehm-gc/sparc_mach_dep.S Thu Feb 14 16:09:29 2002
27031 stx %g0,[%o3] ! *(long *)p = 0
27033 bgu,pt %xcc, loop ! if (p > limit) goto loop
27034 - add %o3,-8,%o3 ! p -= 8 (delay slot)
27035 + add %o3,-8,%o3 ! p -= 8 (delay slot)
27037 mov %o2,%sp ! Restore sp., delay slot
27038 #else /* 32 bit SPARC */
27039 diff -Nur ../boehm-gc/threadlibs.c boehm-gc/threadlibs.c
27040 --- ../boehm-gc/threadlibs.c Mon May 26 12:48:52 2003
27041 +++ boehm-gc/threadlibs.c Mon Feb 11 20:37:53 2002
27045 # if defined(GC_USE_LD_WRAP)
27046 - printf("-Wl,--wrap -Wl,dlopen "
27047 + printf("-Wl,--wrap -Wl,read -Wl,--wrap -Wl,dlopen "
27048 "-Wl,--wrap -Wl,pthread_create -Wl,--wrap -Wl,pthread_join "
27049 "-Wl,--wrap -Wl,pthread_detach "
27050 "-Wl,--wrap -Wl,pthread_sigmask -Wl,--wrap -Wl,sleep\n");
27052 # if defined(GC_LINUX_THREADS) || defined(GC_IRIX_THREADS) \
27053 - || defined(GC_FREEBSD_THREADS) || defined(GC_SOLARIS_PTHREADS) \
27054 - || defined(GC_MACOSX_THREADS)
27055 + || defined(GC_FREEBSD_THREADS) || defined(GC_SOLARIS_PTHREADS)
27056 printf("-lpthread\n");
27058 # if defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
27061 # if defined(GC_SOLARIS_THREADS) && !defined(GC_SOLARIS_PTHREADS)
27062 printf("-lthread -ldl\n");
27064 -# if defined(GC_WIN32_THREADS) && defined(CYGWIN32)
27065 - printf("-lpthread\n");
27067 -# if defined(GC_OSF1_THREADS)
27068 - printf("-lpthread -lrt");
27070 - /* You need GCC 3.0.3 to build this one! */
27071 - /* DG/UX native gcc doesnt know what "-pthread" is */
27072 -# if defined(GC_DGUX386_THREADS)
27073 - printf("-ldl -pthread\n");
27077 diff -Nur ../boehm-gc/typd_mlc.c boehm-gc/typd_mlc.c
27078 --- ../boehm-gc/typd_mlc.c Mon May 26 12:48:52 2003
27079 +++ boehm-gc/typd_mlc.c Fri Aug 17 11:30:46 2001
27080 @@ -437,7 +437,6 @@
27081 for (; bm != 0; bm >>= 1, current_p++) {
27083 current = *current_p;
27084 - FIXUP_POINTER(current);
27085 if ((ptr_t)current >= least_ha && (ptr_t)current <= greatest_ha) {
27086 PUSH_CONTENTS((ptr_t)current, mark_stack_ptr,
27087 mark_stack_limit, current_p, exit1);
27088 @@ -675,9 +674,9 @@
27089 if( !FASTLOCK_SUCCEEDED() || (op = *opp) == 0 ) {
27091 op = (ptr_t)GENERAL_MALLOC((word)lb, GC_explicit_kind);
27092 - if (0 == op) return 0;
27093 + if (0 == op) return(0);
27094 # ifdef MERGE_SIZES
27095 - lw = GC_size_map[lb]; /* May have been uninitialized. */
27096 + lw = GC_size_map[lb]; /* May have been uninitialized. */
27099 *opp = obj_link(op);
27100 @@ -721,7 +720,7 @@
27102 op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_explicit_kind);
27103 # ifdef MERGE_SIZES
27104 - lw = GC_size_map[lb]; /* May have been uninitialized. */
27105 + lw = GC_size_map[lb]; /* May have been uninitialized. */
27108 *opp = obj_link(op);
27109 diff -Nur ../boehm-gc/version.h boehm-gc/version.h
27110 --- ../boehm-gc/version.h Mon May 26 12:48:52 2003
27111 +++ boehm-gc/version.h Mon Feb 11 20:37:53 2002
27113 -/* The version here should match that in configure/configure.in */
27114 -/* Eventually this one may become unnecessary. For now we need */
27115 -/* it to keep the old-style build process working. */
27116 -#define GC_TMP_VERSION_MAJOR 6
27117 -#define GC_TMP_VERSION_MINOR 2
27118 -#define GC_TMP_ALPHA_VERSION 5
27119 +#define GC_VERSION_MAJOR 6
27120 +#define GC_VERSION_MINOR 1
27121 +#define GC_ALPHA_VERSION 3
27123 -#if defined(GC_VERSION_MAJOR)
27124 -# if GC_TMP_VERSION_MAJOR != GC_VERSION_MAJOR || \
27125 - GC_TMP_VERSION_MINOR != GC_VERSION_MINOR || \
27126 - GC_TMP_ALPHA_VERSION != GC_ALPHA_VERSION
27127 -# error Inconsistent version info. Check version.h and configure.in.
27130 -# define GC_VERSION_MAJOR GC_TMP_VERSION_MAJOR
27131 -# define GC_VERSION_MINOR GC_TMP_VERSION_MINOR
27132 -# define GC_ALPHA_VERSION GC_TMP_ALPHA_VERSION
27135 -#ifndef GC_NOT_ALPHA
27136 # define GC_NOT_ALPHA 0xff
27139 #ifndef GC_NO_VERSION_VAR
27141 diff -Nur ../boehm-gc/win32_threads.c boehm-gc/win32_threads.c
27142 --- ../boehm-gc/win32_threads.c Mon May 26 12:48:52 2003
27143 +++ boehm-gc/win32_threads.c Mon Apr 28 13:55:07 2003
27145 -#if defined(GC_WIN32_THREADS)
27146 +#if defined(GC_WIN32_THREADS)
27148 #include "private/gc_priv.h"
27151 -# include <errno.h>
27153 - /* Cygwin-specific forward decls */
27154 -# undef pthread_create
27155 -# undef pthread_sigmask
27156 -# undef pthread_join
27159 -# define DEBUG_CYGWIN_THREADS 0
27161 - GC_bool GC_thr_initialized = FALSE;
27162 - void * GC_start_routine(void * arg);
27163 - void GC_thread_exit_proc(void *arg);
27167 +#include <windows.h>
27170 -#ifndef MAX_THREADS
27171 -# define MAX_THREADS 64
27173 +#define MAX_THREADS 64
27175 struct thread_entry {
27178 /* !in_use ==> stack == 0 */
27183 - void *status; /* hold exit value until join in case it's a pointer */
27184 - pthread_t pthread_id;
27189 volatile GC_bool GC_please_stop = FALSE;
27191 /* Unlike the other threads implementations, the thread table here */
27192 /* contains no pointers to the collectable heap. Thus we have */
27193 /* no private structures we need to preserve. */
27195 - { int i; /* pthreads may keep a pointer in the thread exit value */
27196 - for (i = 0; i < MAX_THREADS; i++)
27197 - if (thread_table[i].in_use) GC_push_all((ptr_t)&(thread_table[i].status),(ptr_t)(&(thread_table[i].status)+1));
27202 void GC_stop_world()
27204 DWORD thread_id = GetCurrentThreadId();
27208 - if (!GC_thr_initialized) ABORT("GC_stop_world() called before GC_thr_init()");
27211 GC_please_stop = TRUE;
27212 for (i = 0; i < MAX_THREADS; i++)
27213 if (thread_table[i].stack != 0
27214 @@ -83,15 +53,11 @@
27216 if (GetExitCodeThread(thread_table[i].handle,&exitCode) &&
27217 exitCode != STILL_ACTIVE) {
27218 - thread_table[i].stack = 0; /* prevent stack from being pushed */
27220 - /* this breaks pthread_join on Cygwin, which is guaranteed to */
27221 - /* only see user pthreads */
27222 + thread_table[i].stack = 0;
27223 thread_table[i].in_use = FALSE;
27224 CloseHandle(thread_table[i].handle);
27225 BZERO((void *)(&thread_table[i].context), sizeof(CONTEXT));
27230 if (SuspendThread(thread_table[i].handle) == (DWORD)-1)
27231 ABORT("SuspendThread failed");
27232 @@ -369,11 +335,9 @@
27233 if (*lo < start) *lo = start;
27236 -#if !defined(MSWINCE) && defined(GC_DLL)
27238 -/* We register threads from DllMain */
27239 +#if !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL))
27241 -GC_API HANDLE GC_CreateThread(
27242 +HANDLE WINAPI GC_CreateThread(
27243 LPSECURITY_ATTRIBUTES lpThreadAttributes,
27244 DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
27245 LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId )
27246 @@ -382,10 +346,7 @@
27247 lpParameter, dwCreationFlags, lpThreadId);
27250 -#else /* defined(MSWINCE) || !defined(GC_DLL)) */
27252 -/* We have no DllMain to take care of new threads. Thus we */
27253 -/* must properly intercept thread creation. */
27254 +#else /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
27257 HANDLE child_ready_h, parent_ready_h;
27258 @@ -509,7 +470,7 @@
27262 -#endif /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
27263 +#endif /* !defined(MSWINCE) && !(defined(__MINGW32__) && !defined(_DLL)) */
27267 @@ -566,256 +527,13 @@
27269 LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info);
27271 -/* threadAttach/threadDetach routines used by both CYGWIN and DLL
27272 - * implementation, since both recieve explicit notification on thread
27273 - * creation/destruction.
27275 -static void threadAttach() {
27277 - /* It appears to be unsafe to acquire a lock here, since this */
27278 - /* code is apparently not preeemptible on some systems. */
27279 - /* (This is based on complaints, not on Microsoft's official */
27280 - /* documentation, which says this should perform "only simple */
27281 - /* inititalization tasks".) */
27282 - /* Hence we make do with nonblocking synchronization. */
27284 - /* The following should be a noop according to the win32 */
27285 - /* documentation. There is empirical evidence that it */
27286 - /* isn't. - HB */
27287 -# if defined(MPROTECT_VDB)
27288 - if (GC_incremental) SetUnhandledExceptionFilter(GC_write_fault_handler);
27290 - /* cast away volatile qualifier */
27291 - for (i = 0; InterlockedExchange((LONG*)&thread_table[i].in_use,1) != 0; i++) {
27292 - /* Compare-and-swap would make this cleaner, but that's not */
27293 - /* supported before Windows 98 and NT 4.0. In Windows 2000, */
27294 - /* InterlockedExchange is supposed to be replaced by */
27295 - /* InterlockedExchangePointer, but that's not really what I */
27297 - if (i == MAX_THREADS - 1)
27298 - ABORT("too many threads");
27300 - thread_table[i].id = GetCurrentThreadId();
27302 - thread_table[i].pthread_id = pthread_self();
27304 - if (!DuplicateHandle(GetCurrentProcess(),
27305 - GetCurrentThread(),
27306 - GetCurrentProcess(),
27307 - (HANDLE*)&thread_table[i].handle,
27310 - DUPLICATE_SAME_ACCESS)) {
27311 - DWORD last_error = GetLastError();
27312 - GC_printf1("Last error code: %lx\n", last_error);
27313 - ABORT("DuplicateHandle failed");
27315 - thread_table[i].stack = GC_get_stack_base();
27316 - if (thread_table[i].stack == NULL)
27317 - ABORT("Failed to find stack base in threadAttach");
27318 - /* If this thread is being created while we are trying to stop */
27319 - /* the world, wait here. Hopefully this can't happen on any */
27320 - /* systems that don't allow us to block here. */
27321 - while (GC_please_stop) Sleep(20);
27324 -static void threadDetach(DWORD thread_id) {
27329 - i < MAX_THREADS &&
27330 - !thread_table[i].in_use || thread_table[i].id != thread_id;
27332 - if (i >= MAX_THREADS ) {
27333 - WARN("thread %ld not found on detach", (GC_word)thread_id);
27336 - thread_table[i].stack = 0;
27337 - thread_table[i].in_use = FALSE;
27338 - CloseHandle(thread_table[i].handle);
27339 - /* cast away volatile qualifier */
27340 - BZERO((void *)&thread_table[i].context, sizeof(CONTEXT));
27347 -/* Called by GC_init() - we hold the allocation lock. */
27348 -void GC_thr_init() {
27349 - if (GC_thr_initialized) return;
27350 - GC_thr_initialized = TRUE;
27353 - /* this might already be handled in GC_init... */
27354 - InitializeCriticalSection(&GC_allocate_ml);
27357 - /* Add the initial thread, so we can stop it. */
27361 -struct start_info {
27362 - void *(*start_routine)(void *);
27366 -int GC_pthread_join(pthread_t pthread_id, void **retval) {
27370 -# if DEBUG_CYGWIN_THREADS
27371 - GC_printf3("thread 0x%x(0x%x) is joining thread 0x%x.\n",(int)pthread_self(),
27372 - GetCurrentThreadId(), (int)pthread_id);
27375 - /* Can't do any table lookups here, because thread being joined
27376 - might not have registered itself yet */
27378 - result = pthread_join(pthread_id, retval);
27381 - for (i = 0; !thread_table[i].in_use || thread_table[i].pthread_id != pthread_id;
27383 - if (i == MAX_THREADS - 1) {
27384 - GC_printf1("Failed to find thread 0x%x in pthread_join()\n", pthread_id);
27385 - ABORT("thread not found on detach");
27389 - threadDetach(thread_table[i].id);
27391 -# if DEBUG_CYGWIN_THREADS
27392 - GC_printf3("thread 0x%x(0x%x) completed join with thread 0x%x.\n",
27393 - (int)pthread_self(), GetCurrentThreadId(), (int)pthread_id);
27399 -/* Cygwin-pthreads calls CreateThread internally, but it's not
27400 - * easily interceptible by us..
27401 - * so intercept pthread_create instead
27404 -GC_pthread_create(pthread_t *new_thread,
27405 - const pthread_attr_t *attr,
27406 - void *(*start_routine)(void *), void *arg) {
27408 - struct start_info * si;
27410 - if (!GC_is_initialized) GC_init();
27411 - /* make sure GC is initialized (i.e. main thread is attached) */
27413 - /* This is otherwise saved only in an area mmapped by the thread */
27414 - /* library, which isn't visible to the collector. */
27415 - si = GC_malloc_uncollectable(sizeof(struct start_info));
27416 - if (0 == si) return(EAGAIN);
27418 - si -> start_routine = start_routine;
27421 -# if DEBUG_CYGWIN_THREADS
27422 - GC_printf2("About to create a thread from 0x%x(0x%x)\n",(int)pthread_self(),
27423 - GetCurrentThreadId);
27425 - result = pthread_create(new_thread, attr, GC_start_routine, si);
27427 - if (result) { /* failure */
27434 -void * GC_start_routine(void * arg)
27436 - struct start_info * si = arg;
27438 - void *(*start)(void *);
27440 - pthread_t pthread_id;
27443 -# if DEBUG_CYGWIN_THREADS
27444 - GC_printf2("thread 0x%x(0x%x) starting...\n",(int)pthread_self(),
27445 - GetCurrentThreadId());
27448 - /* If a GC occurs before the thread is registered, that GC will */
27449 - /* ignore this thread. That's fine, since it will block trying to */
27450 - /* acquire the allocation lock, and won't yet hold interesting */
27453 - /* We register the thread here instead of in the parent, so that */
27454 - /* we don't need to hold the allocation lock during pthread_create. */
27458 - start = si -> start_routine;
27459 - start_arg = si -> arg;
27460 - pthread_id = pthread_self();
27462 - GC_free(si); /* was allocated uncollectable */
27464 - pthread_cleanup_push(GC_thread_exit_proc, pthread_id);
27465 - result = (*start)(start_arg);
27466 - pthread_cleanup_pop(0);
27468 -# if DEBUG_CYGWIN_THREADS
27469 - GC_printf2("thread 0x%x(0x%x) returned from start routine.\n",
27470 - (int)pthread_self(),GetCurrentThreadId());
27474 - for (i = 0; thread_table[i].pthread_id != pthread_id; i++) {
27475 - if (i == MAX_THREADS - 1)
27476 - ABORT("thread not found on exit");
27478 - thread_table[i].status = result;
27484 -void GC_thread_exit_proc(void *arg)
27486 - pthread_t pthread_id = (pthread_t)arg;
27489 -# if DEBUG_CYGWIN_THREADS
27490 - GC_printf2("thread 0x%x(0x%x) called pthread_exit().\n",
27491 - (int)pthread_self(),GetCurrentThreadId());
27495 - for (i = 0; thread_table[i].pthread_id != pthread_id; i++) {
27496 - if (i == MAX_THREADS - 1)
27497 - ABORT("thread not found on exit");
27502 - /* TODO: we need a way to get the exit value after a pthread_exit so we can stash it safely away */
27503 - thread_table[i].status = ???
27507 -/* nothing required here... */
27508 -int GC_pthread_sigmask(int how, const sigset_t *set, sigset_t *oset) {
27509 - return pthread_sigmask(how, set, oset);
27511 -int GC_pthread_detach(pthread_t thread) {
27512 - return pthread_detach(thread);
27514 -#else /* !CYGWIN32 */
27518 - * We avoid acquiring locks here, since this doesn't seem to be preemptable.
27519 + * This isn't generally safe, since DllMain is not premptible.
27520 + * If another thread holds the lock while this runs we're in trouble.
27521 * Pontus Rydin suggests wrapping the thread start routine instead.
27524 BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
27527 @@ -824,13 +542,75 @@
27528 GC_init(); /* Force initialization before thread attach. */
27530 case DLL_THREAD_ATTACH:
27535 + /* It appears to be unsafe to acquire a lock here, since this */
27536 + /* code is apparently not preeemptible on some systems. */
27537 + /* (This is based on complaints, not on Microsoft's official */
27538 + /* documentation, which says this should perform "only simple */
27539 + /* inititalization tasks".) */
27540 + /* Hence we make do with nonblocking synchronization. */
27542 + /* The following should be a noop according to the win32 */
27543 + /* documentation. There is empirical evidence that it */
27544 + /* isn't. - HB */
27545 +# ifdef MPROTECT_VDB
27546 + if (GC_incremental) SetUnhandledExceptionFilter(GC_write_fault_handler);
27550 + /* cast away volatile qualifier */
27551 + InterlockedExchange((LPLONG) &thread_table[i].in_use, 1) != 0;
27553 + /* Compare-and-swap would make this cleaner, but that's not */
27554 + /* supported before Windows 98 and NT 4.0. In Windows 2000, */
27555 + /* InterlockedExchange is supposed to be replaced by */
27556 + /* InterlockedExchangePointer, but that's not really what I */
27558 + if (i == MAX_THREADS - 1)
27559 + ABORT("too many threads");
27561 + thread_table[i].id = GetCurrentThreadId();
27562 + if (!DuplicateHandle(GetCurrentProcess(),
27563 + GetCurrentThread(),
27564 + GetCurrentProcess(),
27565 + /* cast away volatile qualifier */
27566 + (HANDLE *) &thread_table[i].handle,
27569 + DUPLICATE_SAME_ACCESS)) {
27570 + DWORD last_error = GetLastError();
27571 + GC_printf1("Last error code: %lx\n", last_error);
27572 + ABORT("DuplicateHandle failed");
27574 + thread_table[i].stack = GC_get_stack_base();
27575 + /* If this thread is being created while we are trying to stop */
27576 + /* the world, wait here. Hopefully this can't happen on any */
27577 + /* systems that don't allow us to block here. */
27578 + while (GC_please_stop) Sleep(20);
27581 case DLL_THREAD_DETACH:
27582 - threadDetach(GetCurrentThreadId());
27585 + DWORD thread_id = GetCurrentThreadId();
27588 + i < MAX_THREADS &&
27589 + (thread_table[i].stack == 0 || thread_table[i].id != thread_id);
27591 + if (i >= MAX_THREADS) {
27592 + WARN("thread %ld not found on detach", (GC_word)thread_id);
27594 + thread_table[i].stack = 0;
27595 + thread_table[i].in_use = FALSE;
27596 + CloseHandle(thread_table[i].handle);
27597 + /* cast away volatile qualifier */
27598 + BZERO((void *) &thread_table[i].context, sizeof(CONTEXT));
27604 case DLL_PROCESS_DETACH:
27607 @@ -856,8 +636,8 @@
27611 -#endif /* GC_DLL */
27612 -#endif /* !CYGWIN32 */
27614 +# endif /* GC_DLL */
27616 # endif /* !MSWINCE */