Go to file
Ian Lance Taylor 7458026b01 common.opt (fsplit-stack): New option.
gcc/:
	* common.opt (fsplit-stack): New option.
	* opts.c (decode_options): Set flag_split_stack to final value.
	* target.def (supports_split_stack): New hook.
	* gcc.c (STACK_SPLIT_SPEC): Define.
	(LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
	* doc/invoke.texi (Option Summary): Mention -fsplit-stack.
	(Code Gen Options): Document -fsplit-stack.
	* doc/extend.texi (Function Attributes): Mention no_split_stack.
	(Function Attributes): Document no_split_stack.
	* doc/tm.texi.in (Stack Smashing Protection): Add @hook
	TARGET_SUPPORTS_SPLIT_STACK.
	* doc/tm.texi: Rebuild.
	* function.c (thread_prologue_and_epilogue_insns): If
	flag_split_stack, add split stack prologue.
	* explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
	* varasm.c (saw_no_split_stack): New static variable.
	(assemble_start_function): Set saw_no_split_stack if the function
	has the no_split_stack attribute.
	(file_end_indicate_split_stack): New function.
	* output.h (file_end_indicate_split_stack): Declare.
	* libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
	and function.
	* doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
	routines.
	* config/i386/i386.c (ix86_option_override_internal): Don't set
	expand_builtin_va_start to NULL if -fsplit-stack.
	(ix86_function_regparm): Reduce local regparm by 1 for 32-bit
	-fsplit-stack.
	(ix86_va_start): If -fsplit-stack, get overflow pointer	from
	scratch register set by prologue.
	(ix86_code_end): If -fsplit-stack, call
	file_end_indicate_split_stack.
	(ix86_supports_split_stack): New static function.
	(SPLIT_STACK_AVAILABLE): Define.
	(split_stack_prologue_scratch_regno): New static function.
	(split_stack_fn): New static variable.
	(ix86_expand_split_stack_prologue): New function.
	(ix86_live_on_entry): New static function.
	(ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
	(output_pic_addr_const): Likewise.
	(i386_asm_output_addr_const_extra): Likewise.
	(ix86_expand_call): Change return type to rtx.  Return the new
	call instruction.
	(TARGET_SUPPORTS_SPLIT_STACK): Define.
	(TARGET_EXTRA_LIVE_ON_ENTRY): Define.
	* config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
	(split_stack_prologue, split_stack_return): New insns.
	(split_stack_space_check): New insn.
	* config/i386/i386.h (struct machine_function): Add
	split_stack_varargs_pointer field.
	* config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
	(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
	* config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
	(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
	* config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
	Declare.
	(ix86_expand_call): Update declaration.
gcc/c-family/:
	* c-common.c (c_common_attribute_table): Add no_split_stack.
	(handle_no_split_stack_attribute): New static function.
gcc/testsuite/:
	* lib/target-supports.exp (check_effective_target_split_stack):
	New procedure.
	* gcc.dg/split-1.c: New test.
	* gcc.dg/split-2.c: New test.
	* gcc.dg/split-3.c: New test.
	* gcc.dg/split-4.c: New test.
libgcc/:
	* generic-morestack.h: New file.
	* generic-morestack.c: New file.
	* generic-morestack-thread.c: New file.
	* config/i386/morestack.S: New file.
	* config/t-stack: New file.
	* config/i386/t-stack-i386: New file.
	* config.host (i[34567]86-*-linux* and friends): Add t-stack and
	i386/t-stack-i386 to tmake_file.

From-SVN: r164661
2010-09-27 19:48:20 +00:00
INSTALL
boehm-gc configure.ac (*-*-solaris2.8*): Only usr alternate thread library on Solaris 8. 2010-06-15 13:51:07 +00:00
config ChangeLog config 2010-09-10 13:39:49 +02:00
contrib Improve formatting of manuals. 2010-09-22 20:22:51 +00:00
fixincludes inclhack.def (hpux_htonl): Allow trailing whitespace in select. 2010-09-07 14:47:21 +00:00
gcc common.opt (fsplit-stack): New option. 2010-09-27 19:48:20 +00:00
gnattools re PR ada/42659 (gnatmake thinks libraries aren't supported) 2010-01-09 18:21:52 +00:00
include rtl.def (DEBUG_IMPLICIT_PTR): New rtl code. 2010-09-09 08:43:47 +02:00
intl Update to Automake 1.11.1. 2010-04-02 18:18:06 +00:00
libada Makefile.in (GNATLIBCFLAGS_FOR_C): New variable. 2009-10-24 10:58:31 +00:00
libcpp * init.c: Fix type name in comment. 2010-09-15 14:41:31 +00:00
libdecnumber ChangeLog config 2010-09-10 13:39:49 +02:00
libffi closures.c (open_temp_exec_file_mnt): Check if getmntent_r returns NULL. 2010-09-03 10:35:35 +00:00
libgcc common.opt (fsplit-stack): New option. 2010-09-27 19:48:20 +00:00
libgfortran re PR fortran/45710 (Adjust format and padding for WRITE of NAMELIST group to internal file) 2010-09-23 00:53:15 +00:00
libgomp intrinsic.texi (OpenMP modules): Add named constants of OMP_LIB. 2010-09-23 11:01:32 +02:00
libiberty cplus-dem.c (ada_demangle): Add comments. 2010-09-22 09:26:03 +00:00
libjava Regenerate libjava Makefile.in files. 2010-09-27 19:21:19 +00:00
libmudflap pass41-frag.cxx (dg-prune-output): New dg directive. 2010-08-20 09:14:00 +02:00
libobjc In gcc/: 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> 2010-09-27 19:22:13 +00:00
libssp configure.ac (gfortran_use_symver): Only check for Sun-style symbol versioning on Solaris 2. 2010-07-02 16:17:04 +00:00
libstdc++-v3 allocator.h (allocator_arg_t, [...]): Add. 2010-09-27 17:27:43 +00:00
lto-plugin lto-plugin.c: Include <hashtab.h> 2010-08-05 14:25:45 +00:00
maintainer-scripts gcc_release (snapshot_print): Also include an sha1 hash for every tarball. 2010-08-23 18:52:06 +00:00
zlib Update to Automake 1.11.1. 2010-04-02 18:18:06 +00:00
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
COPYING3
COPYING3.LIB
ChangeLog configure.ac (enable-lto): Add Darwin to the list of supported lto targets and amend comment. 2010-09-21 14:32:36 +00:00
ChangeLog.tree-ssa
MAINTAINERS MAINTAINERS (Write After Approval): Add myself. 2010-09-15 12:06:38 +01:00
Makefile.def Makefile.def (configure-gcc): Depend on all-libelf. 2010-06-10 16:44:04 +00:00
Makefile.in re PR target/44862 (bootstrap with --enable-build-with-cxx and --with-libiconv-prefix fails) 2010-07-17 08:22:09 +00:00
Makefile.tpl re PR target/44862 (bootstrap with --enable-build-with-cxx and --with-libiconv-prefix fails) 2010-07-17 08:22:09 +00:00
README README: Refer to the various COPYING* files instead of just COPYING. 2009-10-10 20:59:49 +00:00
compile Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
config-ml.in config-ml.in: don't handle --enable-shared and --enable-static. 2008-05-14 17:15:51 +00:00
config.guess config.sub: Update to version 2010-05-21. 2010-05-25 13:22:07 +00:00
config.rpath
config.sub config.sub: Update to version 2010-05-21. 2010-05-25 13:22:07 +00:00
configure configure.ac (enable-lto): Add Darwin to the list of supported lto targets and amend comment. 2010-09-21 14:32:36 +00:00
configure.ac configure.ac (enable-lto): Add Darwin to the list of supported lto targets and amend comment. 2010-09-21 14:32:36 +00:00
depcomp Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
install-sh Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
libtool-ldflags
libtool.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
ltgcc.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltmain.sh Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
ltoptions.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
ltsugar.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltversion.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
lt~obsolete.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
missing Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
mkdep
mkinstalldirs Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
move-if-change
symlink-tree
ylwrap Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.