aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten.

2001-01-11  Zack Weinberg  <zack@wolery.stanford.edu>

	* aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten.
	Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending
	which you have.
	(AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE.
	* configure.in: Set GGC to ggc-page if any of mmap_dev_zero,
	mmap_anon, and valloc is available.
	* ggc-page.c: Restructure ifdef logic to match new autoconf
	spec.  Don't throw away the test page in init_ggc.

	* configure, config.in: Regenerate.

From-SVN: r38934
This commit is contained in:
Zack Weinberg 2001-01-12 04:54:42 +00:00
parent 099f0f3f6e
commit 825b692620
6 changed files with 878 additions and 458 deletions

View file

@ -1,3 +1,16 @@
2001-01-11 Zack Weinberg <zack@wolery.stanford.edu>
* aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten.
Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending
which you have.
(AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE.
* configure.in: Set GGC to ggc-page if any of mmap_dev_zero,
mmap_anon, and valloc is available.
* ggc-page.c: Restructure ifdef logic to match new autoconf
spec. Don't throw away the test page in init_ggc.
* configure, config.in: Regenerate.
2001-01-12 Michael Hayes <mhayes@redhat.com>
* loop.h (total_biv_increment): Constify iv_class pointer.
@ -44,10 +57,10 @@ Fri Jan 12 00:04:00 MET 2001 Jan Hubicka <jh@suse.cz>
* builtins.c (std_expand_builtin_va_start): Handle varargs when
sizeof (int) is larger than sizeof(__word__).
2001-01-11 Neil Booth <neil@daikokuya.demon.co.uk>
* cppinit.c (do_includes): Fix typo.
* cppinit.c (do_includes): Fix typo.
2001-01-11 Stephane Carrez <Stephane.Carrez@worldnet.fr>
@ -63,27 +76,27 @@ Fri Jan 12 00:04:00 MET 2001 Jan Hubicka <jh@suse.cz>
(lshrdi_const1, lshrsi3_const16): Likewise.
(*addhi3, lshrsi3_const1, lshrqi3_const1): Likewise.
(*movhi_68hc12, *movqi_68hc12): Likewise.
(movstrictqi): Make sure reloading in D_REGS as a destination
(movstrictqi): Make sure reloading in D_REGS as a destination
does not happen.
2001-01-11 Neil Booth <neil@daikokuya.demon.co.uk>
* cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
* cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
2001-01-11 Neil Booth <neil@daikokuya.demon.co.uk>
* cppinit.c (cpp_start_read): If -fpreprocessed, ignore
-D, -U and -A, and don't initialize the builtins.
* cppinit.c (cpp_start_read): If -fpreprocessed, ignore
-D, -U and -A, and don't initialize the builtins.
(do_includes): Error if -include or -imacros with -fpreprocessed.
* cppmain.c (cb_define, cb_undef): Unconditionally process
the callback.
* tradcpp.c (main): Fix typo.
* cppmain.c (cb_define, cb_undef): Unconditionally process
the callback.
* tradcpp.c (main): Fix typo.
2000-01-11 Mark Elbrecht <snowball3@bigfoot.com>
* cppfiles.c (cpp_included, find_include_file, _cpp_execute_include)
(read_name_map): Use IS_ABSOLUTE_PATH.
* tradcpp.c (get_filename): Likewise.
* tradcpp.c (get_filename): Likewise.
2001-01-11 Stephane Carrez <Stephane.Carrez@worldnet.fr>
@ -104,7 +117,7 @@ Fri Jan 12 00:04:00 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-11 Neil Booth <neil@daikokuya.demon.co.uk>
* invoke.texi: Restore documentation of the drivers' switches -MD
* invoke.texi: Restore documentation of the drivers' switches -MD
and -MMD.
2001-01-11 Alexandre Oliva <aoliva@redhat.com>
@ -155,22 +168,22 @@ Fri Jan 12 00:04:00 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-10 Neil Booth <neil@daikokuya.demon.co.uk>
* Makefile.in (tradcpp0): Depend on mkdeps.h. Link mkdeps.o
* cppinit.c (cpp_start_read): Update comment, remove unneeded
if statement.
* tradcpp.c: Include mkdeps.h.
(deps, print_deps_phony_targets, deps_append, output_deps,
init_dependency_output, output_deps): New.
(deps_buffer, deps_allocated_size, deps_size, deps_column,
deps_output): Delete.
(print_deps_missing_files): Rename deps_missing_files.
(inhibit_output): Make global.
(main): Delete inhibit_output, deps_stream, deps_target.
Use mkdeps functionality in the same way as cpplib. Remove
-g3 handling. Handle -MF, -MP, -MQ, -MT. Update handling of
-M and -MM. Remove old handling of deps via deps_out, and
old reading of environment variables.
(get_filename): Update to use deps_add_dep.
* Makefile.in (tradcpp0): Depend on mkdeps.h. Link mkdeps.o
* cppinit.c (cpp_start_read): Update comment, remove unneeded
if statement.
* tradcpp.c: Include mkdeps.h.
(deps, print_deps_phony_targets, deps_append, output_deps,
init_dependency_output, output_deps): New.
(deps_buffer, deps_allocated_size, deps_size, deps_column,
deps_output): Delete.
(print_deps_missing_files): Rename deps_missing_files.
(inhibit_output): Make global.
(main): Delete inhibit_output, deps_stream, deps_target.
Use mkdeps functionality in the same way as cpplib. Remove
-g3 handling. Handle -MF, -MP, -MQ, -MT. Update handling of
-M and -MM. Remove old handling of deps via deps_out, and
old reading of environment variables.
(get_filename): Update to use deps_add_dep.
2001-01-10 Mark Mitchell <mark@codesourcery.com>
@ -215,7 +228,7 @@ Fri Jan 12 00:04:00 MET 2001 Jan Hubicka <jh@suse.cz>
restore_machine_status.
* emit-rtl.c (init_emit_once): Amend comment describing
{init|mark|free}_machine_status.
{init|mark|free}_machine_status.
* tm.texi (Per-Function Data): New node. Describe the
INIT_EXPANDERS macro and the {init|mark|free}_machine_status
@ -223,17 +236,17 @@ Fri Jan 12 00:04:00 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-10 Neil Booth <neil@daikokuya.demon.co.uk>
* cppinit.c (OPT_g): Remove.
(cpp_handle_option): Update for removed -g3.
(print_help): Update.
* cpplib.h (struct cpp_options): Remove debug_output.
* cppmain.c (setup_callbacks, cb_define): Update.
* gcc.c (cpp_options): Translate -g3 to -dD.
* cppinit.c (OPT_g): Remove.
(cpp_handle_option): Update for removed -g3.
(print_help): Update.
* cpplib.h (struct cpp_options): Remove debug_output.
* cppmain.c (setup_callbacks, cb_define): Update.
* gcc.c (cpp_options): Translate -g3 to -dD.
2001-01-10 Aldy Hernandez <aldyh@redhat.com>
* config/i960/i960.md: Change modifier to + on the zero_extract
pattern after the (rotate -2 reg) canonicalization pattern.
pattern after the (rotate -2 reg) canonicalization pattern.
2001-01-10 Richard Henderson <rth@redhat.com>
@ -282,14 +295,14 @@ Wed Jan 10 16:38:31 MET 2001 Jan Hubicka <jh@suse.cz>
@w.
2001-01-10 Nathan Sidwell <nathan@codesourcery.com>
* gcc.c (cpp_options): Set MD file name from output
filename, if specified.
(suffix_subst): New static variable.
(do_spec): Clear it.
(do_spec_1, case '.'): Handle new `%.suffix' spec.
Clear it.
(give_switch): Handle suffix_subst.
* gcc.c (cpp_options): Set MD file name from output
filename, if specified.
(suffix_subst): New static variable.
(do_spec): Clear it.
(do_spec_1, case '.'): Handle new `%.suffix' spec.
Clear it.
(give_switch): Handle suffix_subst.
2001-01-10 Phil Edwards <pme@sources.redhat.com>
@ -301,28 +314,28 @@ Wed Jan 10 16:38:31 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-10 Neil Booth <neil@daikokuya.demon.co.uk>
* c-lang.c (lang_hooks): Update.
(lang_decode_option): Remove.
(lang_init_options): Rename c_init_options.
* toplev.c (main): Use lang_hooks for lang_init_options
and lang_decode_option.
* toplev.h (lang_hooks): Add 2 new hooks.
* tree.h: Remove lang_init_options and lang_decode_option.
* cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
* cp/decl2.c: Similarly.
* cp/lex.c (lang_init_options): Rename cxx_init_options.
(lang_hooks): Update.
* f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
for consistency.
(lang_init_options): Rename ffe_init_options.
(lang_hooks): Update.
(lang_decode_option): Remove.
* java/lang.c (lang_init_options): Rename java_init_options.
(lang_decode_option): Rename java_decode_option.
(lang_hooks): Update.
* objc/objc-act.c (lang_init_options): Rename objc_init_options.
(lang_decode_option): Rename objc_decode_option.
(lang_hooks): Update.
* c-lang.c (lang_hooks): Update.
(lang_decode_option): Remove.
(lang_init_options): Rename c_init_options.
* toplev.c (main): Use lang_hooks for lang_init_options
and lang_decode_option.
* toplev.h (lang_hooks): Add 2 new hooks.
* tree.h: Remove lang_init_options and lang_decode_option.
* cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
* cp/decl2.c: Similarly.
* cp/lex.c (lang_init_options): Rename cxx_init_options.
(lang_hooks): Update.
* f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
for consistency.
(lang_init_options): Rename ffe_init_options.
(lang_hooks): Update.
(lang_decode_option): Remove.
* java/lang.c (lang_init_options): Rename java_init_options.
(lang_decode_option): Rename java_decode_option.
(lang_hooks): Update.
* objc/objc-act.c (lang_init_options): Rename objc_init_options.
(lang_decode_option): Rename objc_decode_option.
(lang_hooks): Update.
2001-01-09 Nick Clifton <nickc@redhat.com>
@ -367,7 +380,7 @@ Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com)
* reload.c (find_reloads_address): Check for eliminable registers
when substituting a constant expression for a pseudo.
2001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
* c-common.c (enum format_type): Add format_type_error.
@ -469,16 +482,16 @@ Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com)
2001-01-09 Neil Booth <neil@daikokuya.demon.co.uk>
* cppinit.c (OPT_MD, OPT_MMD): Restore.
(cpp_handle_option): Handle them.
(cpp_post_options): Ensure one of -M or -MM is specified with
any other -M? option.
(init_dependency_output): Suppress output with -MG.
* cppinit.c (OPT_MD, OPT_MMD): Restore.
(cpp_handle_option): Handle them.
(cpp_post_options): Ensure one of -M or -MM is specified with
any other -M? option.
(init_dependency_output): Suppress output with -MG.
2001-01-09 Neil Booth <neil@daikokuya.demon.co.uk>
* cpp.texi: Update.
* invoke.texi: Update.
* cpp.texi: Update.
* invoke.texi: Update.
2001-01-09 Bernd Schmidt <bernds@redhat.com>
@ -488,25 +501,25 @@ Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com)
2001-01-09 Neil Booth <neil@daikokuya.demon.co.uk>
* c-lang.c (lang_hooks): Update.
(lang_init): Rename c_init.
(lang_finish): Remove.
* toplev.c (compile_file): Use lang_hooks for lang_init ()
and lang_finish ().
* toplev.h (lang_hooks): Add init () and finish ().
* tree.h (lang_init, lang_finish): Remove.
* cp/tree.h (lang_init, lang_finish): Remove.
* cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
* cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
lang_hooks): New.
(lang_init, lang_finish): Remove.
* f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
(lang_hooks): Update.
* java/lang.c (lang_init): Rename java_init.
(lang_finish): Remove.
(lang_hooks): Update.
* objc/objc-act.c (lang_init): Rename objc_init.
(lang_finish): Remove.
(lang_hoooks): Update.
(lang_init): Rename c_init.
(lang_finish): Remove.
* toplev.c (compile_file): Use lang_hooks for lang_init ()
and lang_finish ().
* toplev.h (lang_hooks): Add init () and finish ().
* tree.h (lang_init, lang_finish): Remove.
* cp/tree.h (lang_init, lang_finish): Remove.
* cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
* cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
lang_hooks): New.
(lang_init, lang_finish): Remove.
* f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
(lang_hooks): Update.
* java/lang.c (lang_init): Rename java_init.
(lang_finish): Remove.
(lang_hooks): Update.
* objc/objc-act.c (lang_init): Rename objc_init.
(lang_finish): Remove.
(lang_hoooks): Update.
20001-01-09 Graham Stott <grahams@redhat.com>
@ -550,7 +563,7 @@ Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com)
2001-01-08 Nick Clifton <nickc@redhat.com>
* config/v850/v850.c (ra_rtx): Delete.
(v850_save_machine_status): Delete.
(v850_save_machine_status): Delete.
(v850_restore_machine_status): Delete.
(v850_init_machine_status): New function.
(v850_mark_machine_status): New function.
@ -563,7 +576,7 @@ Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com)
to take a const char *, to avoid compile time warning.
* config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed.
(USER_LABEL_PREFIX): Redefine.
2000-01-08 Jim Wilson <wilson@redhat.com>
* sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast
@ -582,10 +595,10 @@ Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com)
2001-01-08 Neil Booth <neil@daikokuya.demon.co.uk>
* cppinit.c (init): Rename init_library.
(cpp_create_reader): Update.
* gcc.c (cpp_options): If -o given, use it as the target of
any -M options.
* cppinit.c (init): Rename init_library.
(cpp_create_reader): Update.
* gcc.c (cpp_options): If -o given, use it as the target of
any -M options.
2001-01-08 Richard Earnshaw <rearnsha@arm.com>
@ -604,7 +617,7 @@ Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com)
(emit_multi_reg_push, emit_sfm, expand_prologue): Use constants.
* arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines.
(STACK_POINTER_REGNUM): Define in terms of SP_REGNUM.
Mon Jan 8 16:14:56 MET 2001 Jan Hubicka <jh@suse.cz>
* jump.c (jump_optimize_1): Use reversed_comparison_code
@ -622,7 +635,7 @@ Mon Jan 8 16:14:56 MET 2001 Jan Hubicka <jh@suse.cz>
* arm.h (HARD_REGNO_RENAME_OK): Delete.
(EPILOGUE_USES): Define.
(INITIAL_ELIMINATION_OFFSET): Current prologue code does not
(INITIAL_ELIMINATION_OFFSET): Current prologue code does not
automatically stack the LR if it isn't live.
Mon Jan 8 13:46:02 MET 2001 Jan Hubicka <jh@suse.cz>
@ -702,28 +715,28 @@ Sun Jan 7 19:37:48 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
* fix-header.c (read_scan_file): s/pfile/scan_in/.
* fix-header.c (read_scan_file): s/pfile/scan_in/.
2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
* c-lang.c (c_post_options): Call cpp_post_options.
* c-lang.c (c_post_options): Call cpp_post_options.
* objc/objc-act.c (objc_post_options): Similarly.
* cppmain.c (main): Similarly.
* fix-header.c (read_scan_file): Similarly.
* cppinit.c (cpp_start_read): Move option consistency checks
to cpp_post_options. Don't call init_dependency_output.
If needed, add default target and main file dependency.
(OPT_MD, OPT_MMD): Remove.
(OPT_MF): New.
(cpp_handle_option): Update for OPT_* changes.
(cpp_post_options): New.
(init_dependency_output): Command line -MF overrides environment
variables. Don't set default target etc. Suppress output
if dependencies are going to stdout.
(print_help): Update.
* cpplib.h (cpp_post_options): New.
* gcc.c (cpp_options): Update for -MD, -MMD, -MF.
* fix-header.c (read_scan_file): Similarly.
* cppinit.c (cpp_start_read): Move option consistency checks
to cpp_post_options. Don't call init_dependency_output.
If needed, add default target and main file dependency.
(OPT_MD, OPT_MMD): Remove.
(OPT_MF): New.
(cpp_handle_option): Update for OPT_* changes.
(cpp_post_options): New.
(init_dependency_output): Command line -MF overrides environment
variables. Don't set default target etc. Suppress output
if dependencies are going to stdout.
(print_help): Update.
* cpplib.h (cpp_post_options): New.
* gcc.c (cpp_options): Update for -MD, -MMD, -MF.
Sun Jan 7 14:44:19 MET 2001 Jan Hubicka <jh@suse.cz>
* jump.c (comparison_dominates_p): Support unordered compares.
@ -766,17 +779,17 @@ Sun Jan 7 13:49:19 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
* (initialize, initialize_builtins,
initialize_dependency_output, initialize_standard_includes):
Rename s/initialize/init. Update.
(init_dependency_output): Move to after
cpp_handle_options, the correct location temporally at least.
(opt_comp): Move next to init (), its caller. Fix prototype.
(init): Make "initialized" local scope.
(cpp_create_reader): Always call init ().
(cpp_start_read): Update.
(output_deps): New function, broken out of cpp_finish.
(cpp_finish): Break out output_deps.
* (initialize, initialize_builtins,
initialize_dependency_output, initialize_standard_includes):
Rename s/initialize/init. Update.
(init_dependency_output): Move to after
cpp_handle_options, the correct location temporally at least.
(opt_comp): Move next to init (), its caller. Fix prototype.
(init): Make "initialized" local scope.
(cpp_create_reader): Always call init ().
(cpp_start_read): Update.
(output_deps): New function, broken out of cpp_finish.
(cpp_finish): Break out output_deps.
2001-01-07 Richard Henderson <rth@redhat.com>
@ -870,26 +883,26 @@ Sun Jan 7 13:49:19 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
* toplev.c (main): Call the front-end specific post_options
hook if one is given.
* toplev.h (struct_lang_hooks, lang_hooks): New.
* c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
for the C front end.
* cp/decl2.c (cxx_post_options, lang_hooks): Implement
lang_hooks for the C++ front end.
* objc/objc-act.c (objc_post_options, lang_hooks): Implement
lang_hooks for the ObjC front end.
* f/com.c (lang_hooks): Hooks for the Fortran front end.
* java/lang.c (lang_hooks): Hooks for the Java front end.
* toplev.c (main): Call the front-end specific post_options
hook if one is given.
* toplev.h (struct_lang_hooks, lang_hooks): New.
* c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
for the C front end.
* cp/decl2.c (cxx_post_options, lang_hooks): Implement
lang_hooks for the C++ front end.
* objc/objc-act.c (objc_post_options, lang_hooks): Implement
lang_hooks for the ObjC front end.
* f/com.c (lang_hooks): Hooks for the Fortran front end.
* java/lang.c (lang_hooks): Hooks for the Java front end.
2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
* c-lex.c (init_c_lex): Request #define / #undef callbacks
for verbose DWARF[2] debugging.
(cb_define, cb_undef): The new callbacks.
* toplev.h (debug_define, debug_undef): Make const correct.
* toplev.c (debug_define, debug_undef): Similarly. Do not
perform the verbosity tests here anymore.
* c-lex.c (init_c_lex): Request #define / #undef callbacks
for verbose DWARF[2] debugging.
(cb_define, cb_undef): The new callbacks.
* toplev.h (debug_define, debug_undef): Make const correct.
* toplev.c (debug_define, debug_undef): Similarly. Do not
perform the verbosity tests here anymore.
2001-01-07 Alexandre Oliva <aoliva@redhat.com>
@ -954,19 +967,19 @@ Fri Jan 5 16:34:18 2001 Nick Clifton <nickc@redhat.com>
2001-01-05 Neil Booth <neil@daikokuya.demon.co.uk>
* cpp.texi: Update for -MQ.
* cppinit.c (cpp_create_reader): Always create pfile->deps.
(cpp_cleanup): Always free pfile->deps.
(initialize_dependency_output): Don't create pfile->deps.
(cpp_handle_option): Similarly.
(OPT_MQ): New.
* gcc.c (cpp_options): Handle -MQ.
(DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
* mkdeps.c (base_name): Remove.
(deps_init): Don't allocate vector space until it's needed.
(deps_free): Only free vectors if allocated.
(deps_add_target, deps_add_dep): Update for initial allocation.
(deps_add_default_target): Don't strip to the base_name.
* cpp.texi: Update for -MQ.
* cppinit.c (cpp_create_reader): Always create pfile->deps.
(cpp_cleanup): Always free pfile->deps.
(initialize_dependency_output): Don't create pfile->deps.
(cpp_handle_option): Similarly.
(OPT_MQ): New.
* gcc.c (cpp_options): Handle -MQ.
(DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
* mkdeps.c (base_name): Remove.
(deps_init): Don't allocate vector space until it's needed.
(deps_free): Only free vectors if allocated.
(deps_add_target, deps_add_dep): Update for initial allocation.
(deps_add_default_target): Don't strip to the base_name.
2001-01-05 DJ Delorie <dj@redhat.com>
@ -981,7 +994,7 @@ Fri Jan 5 16:34:18 2001 Nick Clifton <nickc@redhat.com>
* config/v850/v850-protos.h: Add prototypes for v850_return_addr
and v850_init_expanders.
2001-01-05 Zack Weinberg <zack@wolery.stanford.edu>
* cpplib.h (struct cpp_reader): Add help_only field.
@ -1009,7 +1022,7 @@ Fri Jan 5 16:34:18 2001 Nick Clifton <nickc@redhat.com>
* print-rtl.c (print_simple_rtl): New.
(flag_simple): New.
(print_rtx): Disable printing of flags and modes, etc.,
if `flag_simple` nonzero.
if `flag_simple` nonzero.
2001-01-05 Zack Weinberg <zack@wolery.stanford.edu>
@ -1086,7 +1099,7 @@ Fri Jan 5 20:34:06 2001 J"orn Rennecke <amylaar@redhat.com>
2001-01-05 Daniel Berlin <dberlin@redhat.com>
* c-common.c (lang_get_alias_set): Say we know nothing of
VECTOR_TYPE aliasing.
VECTOR_TYPE aliasing.
* dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly.
@ -1127,18 +1140,18 @@ Fri Jan 5 16:29:49 MET 2001 Jan Hubicka <jh@suse.cz>
2001-01-05 Neil Booth <neil@daikokuya.demon.co.uk>
* cpp.texi: Update for -MP. Clarify behaviour of -MT.
* cppinit.c (initialize_dependency_output): Update.
(cpp_finish): Output dummy targets for -MP.
(OPT_MP): New.
(cpp_handle_option): Handle -MP. Don't quote -MT options.
* cpplib.h (struct cpp_options): Add deps_phony_targets.
* gcc.c (cpp_options): Update to handle -MP.
* mkdeps.c (deps_add_target, deps_add_default_target): Update
to quote only the default target.
(deps_phony_targets): Insert a preceding newline. Rename from
deps_dummy_targets for consistency.
* mkdeps.h: Update
* cpp.texi: Update for -MP. Clarify behaviour of -MT.
* cppinit.c (initialize_dependency_output): Update.
(cpp_finish): Output dummy targets for -MP.
(OPT_MP): New.
(cpp_handle_option): Handle -MP. Don't quote -MT options.
* cpplib.h (struct cpp_options): Add deps_phony_targets.
* gcc.c (cpp_options): Update to handle -MP.
* mkdeps.c (deps_add_target, deps_add_default_target): Update
to quote only the default target.
(deps_phony_targets): Insert a preceding newline. Rename from
deps_dummy_targets for consistency.
* mkdeps.h: Update
2001-01-05 Alexandre Oliva <aoliva@redhat.com>
@ -1159,7 +1172,7 @@ Fri Jan 5 16:29:49 MET 2001 Jan Hubicka <jh@suse.cz>
(process_init_element): Don't dereference null DECL_SIZE.
* varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT.
Don't abort for empty constructors. Use size_binop
(output_constructor): Add commentary regarding zero length
(output_constructor): Add commentary regarding zero length
array futures. Abort if we try to initialize an array of
unspecified length with a non-empty constructor in the middle
of a structure.
@ -1188,7 +1201,7 @@ Fri Jan 5 16:29:49 MET 2001 Jan Hubicka <jh@suse.cz>
for prset and prget.
2001-01-05 Michael Hayes <mhayes@redhat.com>
* loop.h (struct loop_reg): New.
(struct loop_regs): Change to use array of `struct loop_reg'.
* loop.c: Replace assortment of varrays with single regs array.
@ -1201,7 +1214,7 @@ Fri Jan 5 16:29:49 MET 2001 Jan Hubicka <jh@suse.cz>
(loop_optimize): Delete `moved_once' array.
2001-01-05 Michael Hayes <mhayes@redhat.com>
* loop.c (prescan_loop): Set loop_info->has_nonconst_call.
Use it instead of loop_info->has_call for scanning loop mems.
(check_dbra_loop): Replace loop_info->has_call test with
@ -1320,18 +1333,18 @@ Thu Jan 4 15:54:05 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
* cpp.texi: Update for -MT.
* cppinit.c (initialize_dependency_output): Add a default
target if none has been given already.
(no_tgt, OPT_MT): New.
(cpp_handle_option): Handle -MT. Update -M etc.
* cpplib.h (struct cpp_options): Remove deps_target.
* gcc.c (cpp_options): Handle -MT.
* mkdeps.c (struct deps): Move from mkdeps.h.
(deps_calc_target): Rename deps_add_default_target. Add a
default target if none has been specified already.
* mkdeps.h (struct deps): Move to mkdeps.c.
(deps_calc_target): Rename deps_add_default_target.
* cpp.texi: Update for -MT.
* cppinit.c (initialize_dependency_output): Add a default
target if none has been given already.
(no_tgt, OPT_MT): New.
(cpp_handle_option): Handle -MT. Update -M etc.
* cpplib.h (struct cpp_options): Remove deps_target.
* gcc.c (cpp_options): Handle -MT.
* mkdeps.c (struct deps): Move from mkdeps.h.
(deps_calc_target): Rename deps_add_default_target. Add a
default target if none has been specified already.
* mkdeps.h (struct deps): Move to mkdeps.c.
(deps_calc_target): Rename deps_add_default_target.
2000-01-03 Richard Henderson <rth@redhat.com>
@ -1355,7 +1368,7 @@ Thu Jan 4 15:54:05 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* config/alpha/alpha.md (addvsi3, addvdi3): New.
(negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New.
2001-01-03 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* tradcpp.c (main): Make sure finclude() is called with a valid
@ -1464,7 +1477,7 @@ Wed Jan 3 08:53:50 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* c-common.h (ASM_INPUT_P): New.
* c-parse.in (asm): Set it when needed.
* c-semantics.c (genrtl_asm_stmt): Test it instead of the
* c-semantics.c (genrtl_asm_stmt): Test it instead of the
existance of an operand.
Tue Jan 2 20:27:07 MET 2001 Jan Hubicka <jh@suse.cz>
@ -1527,7 +1540,7 @@ Tue Jan 2 10:47:38 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.
2001-01-02 Philip Blundell <pb@futuretv.com>
* config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
* config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
of input operand.
2001-01-02 Richard Henderson <rth@redhat.com>
@ -1585,9 +1598,9 @@ Mon Jan 1 21:28:29 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2001-01-01 John David Anglin <dave@hiauly1.hia.nrc.ca>
* loop.c (add_label_notes): Increment the label usage count when
a note is added to an insn which refers to a CODE_LABEL.
* gcse.c (add_label_notes): Likewise.
* loop.c (add_label_notes): Increment the label usage count when
a note is added to an insn which refers to a CODE_LABEL.
* gcse.c (add_label_notes): Likewise.
2001-01-01 Andreas Jaeger <aj@suse.de>

268
gcc/aclocal.m4 vendored
View file

@ -737,16 +737,17 @@ AC_SUBST($1)dnl
# Check whether mmap can map an arbitrary page from /dev/zero or with
# MAP_ANONYMOUS, without MAP_FIXED.
AC_DEFUN([AC_FUNC_MMAP_ANYWHERE],
[AC_CHECK_HEADERS(unistd.h)
AC_CHECK_FUNCS(getpagesize)
AC_CACHE_CHECK(for working mmap which provides zeroed pages anywhere,
ac_cv_func_mmap_anywhere,
[AC_TRY_RUN([
/* Test by Richard Henderson and Alexandre Oliva.
Check whether mmap MAP_ANONYMOUS or mmap from /dev/zero works. */
[AC_CHECK_FUNCS(getpagesize)
# The test program for the next two tests is the same except for one
# set of ifdefs.
changequote({{{,}}})dnl
{{{cat >ct-mmap.inc <<'EOF'
#include <sys/types.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <signal.h>
#include <setjmp.h>
#include <stdio.h>
#if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
# define MAP_ANONYMOUS MAP_ANON
@ -793,45 +794,246 @@ AC_CACHE_CHECK(for working mmap which provides zeroed pages anywhere,
#endif /* no HAVE_GETPAGESIZE */
int main()
#ifndef MAP_FAILED
# define MAP_FAILED -1
#endif
#undef perror_exit
#define perror_exit(str, val) \
do { perror(str); exit(val); } while (0)
/* Some versions of cygwin mmap require that munmap is called with the
same parameters as mmap. GCC expects that this is not the case.
Test for various forms of this problem. Warning - icky signal games. */
static sigset_t unblock_sigsegv;
static jmp_buf r;
static size_t pg;
static int devzero;
static char *
anonmap (size)
size_t size;
{
char *x;
int fd, pg;
#ifndef MAP_ANONYMOUS
fd = open("/dev/zero", O_RDWR);
if (fd < 0)
exit(1);
#endif
pg = getpagesize();
#ifdef MAP_ANONYMOUS
x = (char*)mmap(0, pg, PROT_READ|PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
#ifdef USE_MAP_ANON
return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
#else
x = (char*)mmap(0, pg, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
MAP_PRIVATE, devzero, 0);
#endif
if (x == (char *) -1)
exit(2);
}
static void
sigsegv (unused)
int unused;
{
sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0);
longjmp (r, 1);
}
/* Basic functionality test. */
void
test_0 ()
{
char *x = anonmap (pg);
if (x == (char *) MAP_FAILED)
perror_exit("test 0 mmap", 2);
*(int *)x += 1;
if (munmap(x, pg) < 0)
exit(3);
perror_exit("test 0 munmap", 3);
}
/* 1. If we map a 2-page region and unmap its second page, the first page
must remain. */
static void
test_1 ()
{
char *x = anonmap (pg * 2);
if (x == (char *)MAP_FAILED)
perror_exit ("test 1 mmap", 4);
signal (SIGSEGV, sigsegv);
if (setjmp (r))
perror_exit ("test 1 fault", 5);
x[0] = 1;
x[pg] = 1;
if (munmap (x + pg, pg) < 0)
perror_exit ("test 1 munmap 1", 6);
x[0] = 2;
if (setjmp (r) == 0)
{
x[pg] = 1;
perror_exit ("test 1 no fault", 7);
}
if (munmap (x, pg) < 0)
perror_exit ("test 1 munmap 2", 8);
}
/* 2. If we map a 2-page region and unmap its first page, the second
page must remain. */
static void
test_2 ()
{
char *x = anonmap (pg * 2);
if (x == (char *)MAP_FAILED)
perror_exit ("test 2 mmap", 9);
signal (SIGSEGV, sigsegv);
if (setjmp (r))
perror_exit ("test 2 fault", 10);
x[0] = 1;
x[pg] = 1;
if (munmap (x, pg) < 0)
perror_exit ("test 2 munmap 1", 11);
x[pg] = 2;
if (setjmp (r) == 0)
{
x[0] = 1;
perror_exit ("test 2 no fault", 12);
}
if (munmap (x+pg, pg) < 0)
perror_exit ("test 2 munmap 2", 13);
}
/* 3. If we map two adjacent 1-page regions and unmap them both with
one munmap, both must go away.
Getting two adjacent 1-page regions with two mmap calls is slightly
tricky. All OS's tested skip over already-allocated blocks; therefore
we have been careful to unmap all allocated regions in previous tests.
HP/UX allocates pages backward in memory. No OS has yet been observed
to be so perverse as to leave unmapped space between consecutive calls
to mmap. */
static void
test_3 ()
{
char *x, *y, *z;
x = anonmap (pg);
if (x == (char *)MAP_FAILED)
perror_exit ("test 3 mmap 1", 14);
y = anonmap (pg);
if (y == (char *)MAP_FAILED)
perror_exit ("test 3 mmap 2", 15);
if (y != x + pg)
{
if (y == x - pg)
z = y, y = x, x = z;
else
{
fprintf (stderr, "test 3 nonconsecutive pages - %lx, %lx\n",
(unsigned long)x, (unsigned long)y);
exit (16);
}
}
signal (SIGSEGV, sigsegv);
if (setjmp (r))
perror_exit ("test 3 fault", 17);
x[0] = 1;
y[0] = 1;
if (munmap (x, pg*2) < 0)
perror_exit ("test 3 munmap", 18);
if (setjmp (r) == 0)
{
x[0] = 1;
perror_exit ("test 3 no fault 1", 19);
}
signal (SIGSEGV, sigsegv);
if (setjmp (r) == 0)
{
y[0] = 1;
perror_exit ("test 3 no fault 2", 20);
}
}
int
main ()
{
sigemptyset (&unblock_sigsegv);
sigaddset (&unblock_sigsegv, SIGSEGV);
pg = getpagesize ();
#ifndef USE_MAP_ANON
devzero = open ("/dev/zero", O_RDWR);
if (devzero < 0)
perror_exit ("open /dev/zero", 1);
#endif
test_0();
test_1();
test_2();
test_3();
exit(0);
}], ac_cv_func_mmap_anywhere=yes, ac_cv_func_mmap_anywhere=no,
ac_cv_func_mmap_anywhere=no)])
if test $ac_cv_func_mmap_anywhere = yes; then
AC_DEFINE(HAVE_MMAP_ANYWHERE, 1,
[Define if mmap can get us zeroed pages without MAP_FIXED.])
}
EOF}}}
changequote([,])dnl
AC_CACHE_CHECK(for working mmap from /dev/zero,
ac_cv_func_mmap_dev_zero,
[AC_TRY_RUN(
[#include "ct-mmap.inc"],
ac_cv_func_mmap_dev_zero=yes,
[if test $? -lt 4
then ac_cv_func_mmap_dev_zero=no
else ac_cv_func_mmap_dev_zero=buggy
fi],
# If this is not cygwin, and /dev/zero is a character device, it's probably
# safe to assume it works.
[case "$host_os" in
cygwin* | win32 | pe | mingw* ) ac_cv_func_mmap_dev_zero=buggy ;;
* ) if test -c /dev/zero
then ac_cv_func_mmap_dev_zero=yes
else ac_cv_func_mmap_dev_zero=no
fi ;;
esac])
])
if test $ac_cv_func_mmap_dev_zero = yes; then
AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
[Define if mmap can get us zeroed pages from /dev/zero.])
fi
AC_CACHE_CHECK([for working mmap with MAP_ANON(YMOUS)],
ac_cv_func_mmap_anon,
[AC_TRY_RUN(
[#define USE_MAP_ANON
#include "ct-mmap.inc"],
ac_cv_func_mmap_anon=yes,
[if test $? -lt 4
then ac_cv_func_mmap_anon=no
else ac_cv_func_mmap_anon=buggy
fi],
# Unlike /dev/zero, it is not safe to assume MAP_ANON(YMOUS) works
# just because it's there. Some SCO Un*xen define it but don't implement it.
ac_cv_func_mmap_anon=no)
])
if test $ac_cv_func_mmap_anon = yes; then
AC_DEFINE(HAVE_MMAP_ANON, 1,
[Define if mmap can get us zeroed pages using MAP_ANON(YMOUS).])
fi
rm -f ct-mmap.inc
])
# Check whether mmap can map a plain file, without MAP_FIXED.
AC_DEFUN([AC_FUNC_MMAP_FILE],
[AC_REQUIRE([AC_FUNC_MMAP_ANYWHERE])dnl
AC_CACHE_CHECK(for working mmap of a file, ac_cv_func_mmap_file,
[AC_CACHE_CHECK(for working mmap of a file, ac_cv_func_mmap_file,
[# Create a file one thousand bytes long.
for i in 1 2 3 4 5 6 7 8 9 0
do for j in 1 2 3 4 5 6 7 8 9 0

View file

@ -330,8 +330,11 @@
/* Define if printf supports %p. */
#undef HAVE_PRINTF_PTR
/* Define if mmap can get us zeroed pages without MAP_FIXED. */
#undef HAVE_MMAP_ANYWHERE
/* Define if mmap can get us zeroed pages from /dev/zero. */
#undef HAVE_MMAP_DEV_ZERO
/* Define if mmap can get us zeroed pages using MAP_ANON(YMOUS). */
#undef HAVE_MMAP_ANON
/* Define if read-only mmap of a plain file works. */
#undef HAVE_MMAP_FILE

565
gcc/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -1565,7 +1565,8 @@ AC_ARG_WITH(gc,
AC_MSG_ERROR([$withval is an invalid option to --with-gc])
;;
esac],
[if test $ac_cv_func_mmap_anywhere = yes \
[if test $ac_cv_func_mmap_dev_zero = yes \
|| test $ac_cv_func_mmap_anon = yes \
|| test $ac_cv_func_valloc = yes; then
GGC=ggc-page
else

View file

@ -29,16 +29,37 @@ Boston, MA 02111-1307, USA. */
#include "ggc.h"
#include "timevar.h"
#ifdef HAVE_MMAP_ANYWHERE
#include <sys/mman.h>
/* Prefer MAP_ANON(YMOUS) to /dev/zero, since we don't need to keep a
file open. Prefer either to valloc. */
#ifdef HAVE_MMAP_ANON
# undef HAVE_MMAP_DEV_ZERO
# undef HAVE_VALLOC
# include <sys/mman.h>
# ifndef MAP_FAILED
# define MAP_FAILED -1
# endif
# if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
# define MAP_ANONYMOUS MAP_ANON
# endif
# define USING_MMAP
#endif
#ifndef MAP_FAILED
#define MAP_FAILED -1
#ifdef HAVE_MMAP_DEV_ZERO
# undef HAVE_VALLOC
# include <sys/mman.h>
# ifndef MAP_FAILED
# define MAP_FAILED -1
# endif
# define USING_MMAP
#endif
#if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
#define MAP_ANONYMOUS MAP_ANON
#ifdef HAVE_VALLOC
# undef MAP_FAILED
# define MAP_FAILED 0
#endif
/* Stategy:
@ -279,7 +300,7 @@ static struct globals
unsigned short context_depth;
/* A file descriptor open to /dev/zero for reading. */
#if defined (HAVE_MMAP_ANYWHERE) && !defined(MAP_ANONYMOUS)
#if defined (HAVE_MMAP_DEV_ZERO)
int dev_zero_fd;
#endif
@ -445,38 +466,31 @@ debug_print_page_list (order)
}
/* Allocate SIZE bytes of anonymous memory, preferably near PREF,
(if non-null). */
(if non-null). The ifdef structure here is intended to cause a
compile error unless exactly one of the HAVE_* is defined. */
static inline char *
alloc_anon (pref, size)
char *pref ATTRIBUTE_UNUSED;
size_t size;
{
char *page;
#ifdef HAVE_MMAP_ANYWHERE
#ifdef MAP_ANONYMOUS
page = (char *) mmap (pref, size, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
#else
page = (char *) mmap (pref, size, PROT_READ | PROT_WRITE,
MAP_PRIVATE, G.dev_zero_fd, 0);
#ifdef HAVE_MMAP_ANON
char *page = (char *) mmap (pref, size, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
#endif
#ifdef HAVE_MMAP_DEV_ZERO
char *page = (char *) mmap (pref, size, PROT_READ | PROT_WRITE,
MAP_PRIVATE, G.dev_zero_fd, 0);
#endif
#ifdef HAVE_VALLOC
char *page = (char *) valloc (size);
#endif
if (page == (char *) MAP_FAILED)
{
fputs ("Virtual memory exhausted!\n", stderr);
exit(1);
}
#else
#ifdef HAVE_VALLOC
page = (char *) valloc (size);
if (!page)
{
fputs ("Virtual memory exhausted!\n", stderr);
exit(1);
}
#endif /* HAVE_VALLOC */
#endif /* HAVE_MMAP_ANYWHERE */
/* Remember that we allocated this memory. */
G.bytes_mapped += size;
@ -526,7 +540,7 @@ alloc_page (order)
else
free (p);
}
#ifdef HAVE_MMAP_ANYWHERE
#ifdef USING_MMAP
else if (entry_size == G.pagesize)
{
/* We want just one page. Allocate a bunch of them and put the
@ -601,7 +615,7 @@ release_pages ()
{
page_entry *p, *next;
#ifdef HAVE_MMAP_ANYWHERE
#ifdef USING_MMAP
char *start;
size_t len;
@ -628,8 +642,6 @@ release_pages ()
G.bytes_mapped -= len;
}
#else
#ifdef HAVE_VALLOC
for (p = G.free_pages; p; p = next)
{
next = p->next;
@ -637,8 +649,7 @@ release_pages ()
G.bytes_mapped -= p->bytes;
free (p);
}
#endif /* HAVE_VALLOC */
#endif /* HAVE_MMAP_ANYWHERE */
#endif /* USING_MMAP */
G.free_pages = NULL;
}
@ -849,7 +860,7 @@ init_ggc ()
G.pagesize = getpagesize();
G.lg_pagesize = exact_log2 (G.pagesize);
#if defined (HAVE_MMAP_ANYWHERE) && !defined(MAP_ANONYMOUS)
#ifdef HAVE_MMAP_DEV_ZERO
G.dev_zero_fd = open ("/dev/zero", O_RDONLY);
if (G.dev_zero_fd == -1)
abort ();
@ -863,13 +874,14 @@ init_ggc ()
G.allocated_last_gc = GGC_MIN_LAST_ALLOCATED;
#ifdef HAVE_MMAP_ANYWHERE
#ifdef USING_MMAP
/* StunOS has an amazing off-by-one error for the first mmap allocation
after fiddling with RLIMIT_STACK. The result, as hard as it is to
believe, is an unaligned page allocation, which would cause us to
hork badly if we tried to use it. */
{
char *p = alloc_anon (NULL, G.pagesize);
struct page_entry *e;
if ((size_t)p & (G.pagesize - 1))
{
/* How losing. Discard this one and try another. If we still
@ -879,7 +891,13 @@ init_ggc ()
if ((size_t)p & (G.pagesize - 1))
abort ();
}
munmap (p, G.pagesize);
/* We have a good page, might as well hold onto it... */
e = (struct page_entry *) xcalloc (1, sizeof (struct page_entry));
e->bytes = G.pagesize;
e->page = p;
e->next = G.free_pages;
G.free_pages = e;
}
#endif