From: Simon Schubert Date: Sun, 5 Jun 2005 22:43:21 +0000 (+0000) Subject: Add gcc40 infrastructure, but don't tie it to the build yet. X-Git-Tag: v2.0.1~7134 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/80ef147059642d189ad8821927dac102fb842b95 Add gcc40 infrastructure, but don't tie it to the build yet. --- diff --git a/gnu/lib/gcc40/Makefile b/gnu/lib/gcc40/Makefile new file mode 100644 index 0000000000..fc811337b4 --- /dev/null +++ b/gnu/lib/gcc40/Makefile @@ -0,0 +1,17 @@ +# $DragonFly: src/gnu/lib/gcc40/Attic/Makefile,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +SUBDIR= libgcc libgcov + +.if !defined(.DIRECTIVE_MAKEENV) +MAKE := HOST_CCVER=${HOST_CCVER} CCVER=gcc40 ${MAKE} +.endif + +#.if !defined(NO_OBJC) +#SUBDIR+= libobjc +#.endif + +.if !defined(NO_CXX) +SUBDIR+= libstdc++ libsupc++ +.endif + +.include diff --git a/gnu/lib/gcc40/Makefile.inc b/gnu/lib/gcc40/Makefile.inc new file mode 100644 index 0000000000..a8b8b45d82 --- /dev/null +++ b/gnu/lib/gcc40/Makefile.inc @@ -0,0 +1,7 @@ +# $DragonFly: src/gnu/lib/gcc40/Attic/Makefile.inc,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +TOP_PREFIX= ../../../usr.bin/cc40/cc_tools +CCVER=gcc40 +USEGNUDIR=YES + +.include "../../usr.bin/cc40/Makefile.inc" diff --git a/gnu/lib/gcc40/libgcc/Makefile b/gnu/lib/gcc40/libgcc/Makefile new file mode 100644 index 0000000000..5cf9549316 --- /dev/null +++ b/gnu/lib/gcc40/libgcc/Makefile @@ -0,0 +1,71 @@ +# $DragonFly: src/gnu/lib/gcc40/libgcc/Attic/Makefile,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +.include "../Makefile.inc" +.include "${STOPDIR}/cc_tools/Makefile.tools" + +CFLAGS+= -I. +CFLAGS+= -fexceptions +CFLAGS+= -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT +CFLAGS+= -DIN_GCC + +LIB= gcc + +# used by shared libs +INSTALL_PIC_ARCHIVE= yes + +FUNCS= _eprintf __gcc_bcmp \ + _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 \ + _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \ + _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi \ + _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf _clear_cache \ + _enable_execute_stack _trampoline __main _absvsi2 _absvdi2 _addvsi3 \ + _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors \ + _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 _ctzsi2 _ctzdi2 _popcount_tab \ + _popcountsi2 _popcountdi2 _paritysi2 _paritydi2 _powisf2 _powidf2 \ + _powixf2 _powitf2 _mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3 \ + _divxc3 _divtc3 \ + _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 + +SRCS+= ${FUNCS:S/$/.c/g} +CLEANFILES+= ${FUNCS:S/$/.c/g} +SRCS+= gthr-gnat.c unwind-c.c unwind-dw2-fde.c unwind-dw2.c +SRCS+= unwind-sjlj.c +SRCS+= insn-flags.h insn-constants.h + + +.for F in ${FUNCS} +${F}.c: + echo '#define L${.TARGET:T:R}' > ${.TARGET} + echo '#include "libgcc2.c"' >> ${.TARGET} +.endfor + +.for F in _divdi3.c _moddi3.c _udivdi3.c _umoddi3.c _udiv_w_sdiv.c _udivmoddi4.c +${F:R:S/$/.o/}: ${F} + ${CC} ${CFLAGS} -fnon-call-exceptions -c ${.IMPSRC} +.endfor + +depend: cc_prep cc_tools +.ORDER: cc_prep cc_tools ${SRCS} + +# This is kinda messy, but it's easier then rearranging the top level +# build. gcc-4.0's libgcc generates source files which depend on generated +# header files, which means we have to generate our tools set before +# we can build libgcc. The toolset is normally built afterwards. +# +# XXX for the world stage we could theoretically use the cc_tools generated +# in the btools stage, but it's easier to regenerate them. +# +cc_prep: .PHONY + cd ${STOPDIR}/cc_prep; ${MAKE} depend + +cc_tools: .PHONY + cd ${STOPDIR}/cc_tools; ${MAKE} depend + +.if ${MACHINE_ARCH} == "i386" +.PATH: ${GCCDIR}/gcc/config/i386 + +INCS= emmintrin.h mmintrin.h pmmintrin.h xmmintrin.h +INCSDIR= /usr/libdata/gcc40 +.endif + +.include diff --git a/gnu/lib/gcc40/libgcov/Makefile b/gnu/lib/gcc40/libgcov/Makefile new file mode 100644 index 0000000000..47ad029cda --- /dev/null +++ b/gnu/lib/gcc40/libgcov/Makefile @@ -0,0 +1,30 @@ +# $DragonFly: src/gnu/lib/gcc40/libgcov/Attic/Makefile,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +.include "../Makefile.inc" +.include "${STOPDIR}/cc_tools/Makefile.tools" + +CFLAGS+= -I. +CFLAGS+= -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT +CFLAGS+= -DIN_GCC + +LIB= gcov + +# used by shared libs +INSTALL_PIC_ARCHIVE= yes + +FUNCS= _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \ + _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \ + _gcov_execv _gcov_execvp _gcov_execve + + +SRCS= ${FUNCS:S/$/.c/g} +CLEANFILES+= ${FUNCS:S/$/.c/g} +SRCS+= insn-flags.h insn-constants.h + +.for F in ${FUNCS} +${F}.c: + echo '#define L${.TARGET:T:R}' > ${.TARGET} + echo '#include "libgcc2.c"' >> ${.TARGET} +.endfor + +.include diff --git a/gnu/lib/gcc40/libstdc++/Makefile b/gnu/lib/gcc40/libstdc++/Makefile new file mode 100644 index 0000000000..13769a7912 --- /dev/null +++ b/gnu/lib/gcc40/libstdc++/Makefile @@ -0,0 +1,234 @@ +# $DragonFly: src/gnu/lib/gcc40/libstdc++/Attic/Makefile,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +.include "../Makefile.inc" + +.if ${MACHINE_ARCH} == "i386" && ${MACHINE_CPU} != 'i386' +MARCHDIR= i486 +.else +MARCHDIR= ${MACHINE_ARCH} +.endif + +SRCDIR= ${GCCDIR}/libstdc++-v3 +SUPDIR= ${SRCDIR}/libsupc++ + +.PATH: ${SRCDIR}/src ${SRCDIR}/libmath ${SRCDIR}/config/io +.PATH: ${SRCDIR}/config/locale/generic ${SRCDIR} +.PATH: ${SUPDIR} ${GCCDIR}/gcc ${GCCDIR}/libiberty + +#SUBDIR= doc + +LIB= stdc++ +SHLIB_MAJOR= 8 + +CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H +CFLAGS+= -I${.CURDIR} -I${SUPDIR} -I${GCCDIR}/gcc -I${GCCDIR}/include +CXXFLAGS+= -I${SRCDIR}/config/cpu/${MARCHDIR} +CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections \ + -Wno-deprecated + +LDADD= -lm +DPADD+= ${LIBM} + +GCC_NO_LIBERTY= # + +# libstdc++ sources (libstdc++/src/Makefile.in, do not reorder) +SRCS+= bitmap_allocator.cc pool_allocator.cc mt_allocator.cc \ + codecvt.cc complex_io.cc ctype.cc debug.cc debug_list.cc \ + functexcept.cc globals_locale.cc globals_io.cc ios.cc ios_failure.cc \ + ios_init.cc ios_locale.cc limits.cc list.cc locale.cc locale_init.cc \ + locale_facets.cc localename.cc stdexcept.cc strstream-fixed.cc tree.cc \ + allocator-inst.cc concept-inst.cc fstream-inst.cc ext-inst.cc \ + io-inst.cc istream-inst.cc istream.cc locale-inst.cc \ + locale-misc-inst.cc misc-inst.cc ostream-inst.cc sstream-inst.cc \ + streambuf-inst.cc streambuf.cc string-inst.cc valarray-inst.cc \ + wlocale-inst.cc wstring-inst.cc + +# target sources +SRCS+= codecvt_members.cc collate_members.cc ctype_members.cc \ + messages_members.cc monetary_members.cc numeric_members.cc \ + time_members.cc + +SRCS+= basic_file_stdio.cc c_locale.cc + +SRCS+= ctype_noninline.h ctype_base.h os_defines.h + +atomicity.cc: + echo '#include "atomicity.h"' > ${.TARGET} + +SRCS+= atomicity.cc +CLEANFILES+= atomicity.cc + +# C parts of math +SRCS+= signbit.c signbitf.c stubs.c + +# Embedded copy of libsupc++ +SRCS+= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc +SRCS+= eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc +SRCS+= eh_globals.cc eh_personality.cc eh_term_handler.cc eh_terminate.cc +SRCS+= eh_throw.cc eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc +SRCS+= new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc +SRCS+= tinfo2.cc vec.cc vterminate.cc + +# from libiberty: +SRCS+= cp-demangle.c + +strstream-fixed.cc: ${SRCDIR}/src/strstream.cc + sed -e 's,^#include ,#include ,g' \ + < ${SRCDIR}/src/strstream.cc > strstream-fixed.cc + +CLEANFILES+= strstream-fixed.cc + +INCSGROUPS= BITSHDRS BKWHDRS DEBUGHDRS EXTHDRS TR1HDRS \ + BASEHDRS BASEXHDRS STDHDRS TARGETHDRS THRHDRS + +BITSHDRS= allocator.h atomicity.h basic_ios.h basic_ios.tcc \ + basic_string.h basic_string.tcc boost_concept_check.h \ + char_traits.h codecvt.h concept_check.h concurrence.h \ + cpp_type_traits.h deque.tcc fstream.tcc functexcept.h \ + gslice.h gslice_array.h indirect_array.h ios_base.h \ + istream.tcc list.tcc locale_classes.h locale_facets.h \ + locale_facets.tcc localefwd.h mask_array.h ostream.tcc \ + postypes.h stream_iterator.h streambuf_iterator.h \ + slice_array.h sstream.tcc stl_algo.h stl_algobase.h \ + stl_bvector.h stl_construct.h stl_deque.h stl_function.h \ + stl_heap.h stl_iterator.h stl_iterator_base_funcs.h \ + stl_iterator_base_types.h stl_list.h stl_map.h \ + stl_multimap.h stl_multiset.h stl_numeric.h stl_pair.h \ + stl_queue.h stl_raw_storage_iter.h stl_relops.h stl_set.h \ + stl_stack.h stl_tempbuf.h stl_tree.h stl_uninitialized.h \ + stl_vector.h streambuf.tcc stringfwd.h valarray_array.h \ + valarray_array.tcc valarray_before.h valarray_after.h \ + vector.tcc +BITSHDRS:= ${BITSHDRS:S;^;${SRCDIR}/include/bits/;} +BITSHDRSDIR= ${INCLUDEDIR}/c++/4.0/bits + + +BKWHDRS= complex.h iomanip.h istream.h ostream.h stream.h streambuf.h \ + algo.h algobase.h alloc.h bvector.h defalloc.h deque.h \ + function.h hash_map.h hash_set.h hashtable.h heap.h \ + iostream.h iterator.h list.h map.h multimap.h new.h \ + multiset.h pair.h queue.h rope.h set.h slist.h stack.h \ + tempbuf.h tree.h vector.h fstream.h strstream \ + backward_warning.h +BKWHDRS:= ${BKWHDRS:S;^;${SRCDIR}/include/backward/;} +BKWHDRSDIR= ${INCLUDEDIR}/c++/4.0/backward + +DEBUGHDRS= bitset debug.h deque formatter.h hash_map hash_map.h \ + hash_multimap.h hash_multiset.h hash_set hash_set.h list map \ + map.h multimap.h multiset.h safe_base.h safe_iterator.h \ + safe_iterator.tcc safe_sequence.h set set.h string vector +DEBUGHDRS:= ${DEBUGHDRS:S;^;${SRCDIR}/include/debug/;} +DEBUGHDRSDIR= ${INCLUDEDIR}/c++/4.0/debug + +EXTHDRS= algorithm array_allocator.h bitmap_allocator.h \ + debug_allocator.h stdio_filebuf.h \ + stdio_sync_filebuf.h functional hash_map hash_set iterator \ + malloc_allocator.h memory mt_allocator.h new_allocator.h \ + numeric pod_char_traits.h pool_allocator.h rb_tree rope \ + ropeimpl.h slist hash_fun.h hashtable.h +EXTHDRS:= ${EXTHDRS:S;^;${SRCDIR}/include/ext/;} +EXTHDRSDIR= ${INCLUDEDIR}/c++/4.0/ext + +TR1HDRS= array bind_repeat.h bind_iterate.h boost_shared_ptr.h \ + mu_iterate.h functional functional_iterate.h memory \ + ref_fwd.h ref_wrap_iterate.h repeat.h tuple tuple_iterate.h \ + utility type_traits type_traits_fwd.h hashtable \ + unordered_set unordered_map +TR1HDRS:= ${TR1HDRS:S;^;${SRCDIR}/include/tr1/;} +TR1HDRSDIR= ${INCLUDEDIR}/c++/4.0/tr1 + +# This is the common subset of files that all three "C" header models use. +BASEHDRS= std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h \ + std_ciso646.h std_climits.h std_clocale.h std_cmath.h \ + std_csetjmp.h std_csignal.h std_cstdarg.h std_cstddef.h \ + std_cstdio.h std_cstdlib.h std_cstring.h std_ctime.h \ + std_cwchar.h std_cwctype.h +.for h in ${BASEHDRS} +BASEHDRSNAME_$h=${h:R:S;^std_;;} +.endfor +BASEHDRS:= ${BASEHDRS:S;^;${SRCDIR}/include/c_std/;} +BASEHDRSDIR= ${INCLUDEDIR}/c++/4.0 + +# Some of the different "C" header models need extra files. +BASEXHDRS= ${SRCDIR}/include/c_std/cmath.tcc +BASEXHDRSDIR= ${INCLUDEDIR}/c++/4.0/bits + +STDHDRS= std_algorithm.h std_bitset.h std_complex.h std_deque.h \ + std_fstream.h std_functional.h std_iomanip.h std_ios.h \ + std_iosfwd.h std_iostream.h std_istream.h std_iterator.h \ + std_limits.h std_list.h std_locale.h std_map.h std_memory.h \ + std_numeric.h std_ostream.h std_queue.h std_set.h \ + std_sstream.h std_stack.h std_stdexcept.h std_streambuf.h \ + std_string.h std_utility.h std_valarray.h std_vector.h +.for h in ${STDHDRS} +STDHDRSNAME_$h=${h:R:S;^std_;;} +.endfor +STDHDRS:= ${STDHDRS:S;^;${SRCDIR}/include/std/;} +STDHDRSDIR= ${INCLUDEDIR}/c++/4.0 + +# c++locale <- c_locale.h +TARGETHDRS= io/basic_file_stdio.h +TARGETHDRSNAME_basic_file_stdio.h= basic_file.h +TARGETHDRS+= allocator/new_allocator_base.h +TARGETHDRSNAME_new_allocator_base.h= c++allocator.h +TARGETHDRS+= io/c_io_stdio.h +TARGETHDRSNAME_c_io_stdio.h= c++io.h +TARGETHDRS+= locale/generic/c_locale.h locale/generic/c++locale_internal.h +TARGETHDRSNAME_c_locale.h= c++locale.h +TARGETHDRS+= locale/generic/messages_members.h +TARGETHDRS+= locale/generic/time_members.h +TARGETHDRS+= os/bsd/netbsd/ctype_inline.h +TARGETHDRS+= os/bsd/netbsd/os_defines.h +TARGETHDRS:= ${TARGETHDRS:S;^;${SRCDIR}/config/;} ctype_noninline.h \ + ctype_base.h os_defines.h +TARGETHDRS+= ${.CURDIR}/c++config.h +TARGETHDRSDIR= ${INCLUDEDIR}/c++/4.0/bits + +MARCHHDRS= atomic_word.h cxxabi_tweaks.h + +.for h in ${MARCHHDRS} +.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/${h}) +TARGETHDRS+= ${SRCDIR}/config/cpu/${MARCHDIR}/${h} +.else +TARGETHDRS+= ${SRCDIR}/config/cpu/generic/${h} +.endif +.endfor + +THRHDRS= gthr.h gthr-single.h gthr-posix.h gthr-tpf.h gthr-default.h +THRHDRSDIR= ${INCLUDEDIR}/c++/4.0/bits + +gthr.h: ${GCCDIR}/gcc/gthr.h + sed -e '/^#/s/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*\)/_GLIBCPP_\1/g' \ + -e 's,^#include "\(.*\)",#include ,g' \ + < ${GCCDIR}/gcc/gthr.h > gthr.h + +gthr-single.h: ${GCCDIR}/gcc/gthr-single.h + sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \ + -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \ + < ${GCCDIR}/gcc/gthr-single.h > gthr-single.h + +gthr-posix.h: ${GCCDIR}/gcc/gthr-posix.h + sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \ + -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \ + -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*WEAK\)/_GLIBCPP_\1/g' \ + < ${GCCDIR}/gcc/gthr-posix.h > gthr-posix.h + +gthr-default.h: ${GCCDIR}/gcc/gthr-posix.h + sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \ + -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \ + -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*WEAK\)/_GLIBCPP_\1/g' \ + -e 's,^#include "\(.*\)",#include ,g' \ + < ${GCCDIR}/gcc/gthr-posix.h > gthr-default.h + +ctype_base.h: ${SRCDIR}/config/os/bsd/netbsd/ctype_base.h ctype_base.h.patch + patch -o ${.TARGET} -i ${.CURDIR}/ctype_base.h.patch ${SRCDIR}/config/os/bsd/netbsd/ctype_base.h + +ctype_noninline.h: ${SRCDIR}/config/os/bsd/netbsd/ctype_noninline.h ctype_noninline.h.patch + patch -o ${.TARGET} -i ${.CURDIR}/ctype_noninline.h.patch ${SRCDIR}/config/os/bsd/netbsd/ctype_noninline.h + +os_defines.h: ${SRCDIR}/config/os/bsd/netbsd/os_defines.h os_defines.h.patch + patch -o ${.TARGET} -i ${.CURDIR}/os_defines.h.patch ${SRCDIR}/config/os/bsd/netbsd/os_defines.h + +CLEANFILES+= ${THRHDRS} ctype_noninline.h ctype_base.h os_defines.h + +.include diff --git a/gnu/lib/gcc40/libstdc++/c++config.h b/gnu/lib/gcc40/libstdc++/c++config.h new file mode 100644 index 0000000000..a104a7bfbd --- /dev/null +++ b/gnu/lib/gcc40/libstdc++/c++config.h @@ -0,0 +1,1314 @@ +// $DragonFly: src/gnu/lib/gcc40/libstdc++/Attic/c++config.h,v 1.1 2005/06/05 22:43:21 corecode Exp $ +// Predefined symbols and macros -*- C++ -*- + +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +// Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#ifndef _CXXCONFIG +#define _CXXCONFIG 1 + +// Pick up any OS-specific definitions. +#include + +// The current version of the C++ library in compressed ISO date format. +#define __GLIBCXX__ 20050421 + +// Allow use of "export template." This is currently not a feature +// that g++ supports. +// #define _GLIBCXX_EXPORT_TEMPLATE 1 + +// Allow use of the GNU syntax extension, "extern template." This +// extension is fully documented in the g++ manual, but in a nutshell, +// it inhibits all implicit instantiations and is used throughout the +// library to avoid multiple weak definitions for required types that +// are already explicitly instantiated in the library binary. This +// substantially reduces the binary size of resulting executables. +#ifndef _GLIBCXX_EXTERN_TEMPLATE +# define _GLIBCXX_EXTERN_TEMPLATE 1 +#endif + +// Certain function definitions that are meant to be overridable from +// user code are decorated with this macro. For some targets, this +// macro causes these definitions to be weak. +#ifndef _GLIBCXX_WEAK_DEFINITION +# define _GLIBCXX_WEAK_DEFINITION +#endif + +// Debug mode support. Debug mode basic_string is not allowed to be +// associated with std, because of locale and exception link +// dependence. +namespace __gnu_debug_def { } + +namespace __gnu_debug +{ + using namespace __gnu_debug_def; +} + +#ifdef _GLIBCXX_DEBUG +# define _GLIBCXX_STD __gnu_norm +namespace __gnu_norm +{ + using namespace std; +} +namespace std +{ + using namespace __gnu_debug_def __attribute__ ((strong)); +} +#else +# define _GLIBCXX_STD std +#endif + + +// The remainder of the prewritten config is automatic; all the +// user hooks are listed above. + +// Create a boolean flag to be used to determine if --fast-math is set. +#ifdef __FAST_MATH__ +# define _GLIBCXX_FAST_MATH 1 +#else +# define _GLIBCXX_FAST_MATH 0 +#endif + +// This marks string literals in header files to be extracted for eventual +// translation. It is primarily used for messages in thrown exceptions; see +// src/functexcept.cc. We use __N because the more traditional _N is used +// for something else under certain OSes (see BADNAMES). +#define __N(msgid) (msgid) + +// End of prewritten config; the discovered settings follow. +/* config.h. Generated by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ +// acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*- + +// Defines libstdc++ version. +/* #undef _GLIBCXX_PACKAGE */ +/* #undef _GLIBCXX_VERSION */ + +// Needed for gettext. +/* #undef ENABLE_NLS */ +/* #undef _GLIBCXX_HAVE_CATGETS */ +/* #undef _GLIBCXX_HAVE_GETTEXT */ +/* #undef _GLIBCXX_HAVE_STPCPY */ + +// Include I/O support for 'long long' and 'unsigned long long'. +#define _GLIBCXX_USE_LONG_LONG 1 + +// Define if C99 features such as lldiv_t, llabs, lldiv should be exposed. +/* #undef _GLIBCXX_USE_C99 */ + +// Define if C99 math functions (like fpclassify) should be exposed. +/* #undef _GLIBCXX_USE_C99_MATH */ + +// Define if C99 complex math functions should be used in std::complex. +/* #undef _GLIBCXX_USE_C99_COMPLEX */ + +// Define if code specialized for wchar_t should be used. +/* #undef _GLIBCXX_USE_WCHAR_T */ + +// Define if using setrlimit to set resource limits during 'make check'. +#define _GLIBCXX_RES_LIMITS 1 + +// Define to use concept checking code from the boost libraries. +/* #undef _GLIBCXX_CONCEPT_CHECKS */ + +// Define to use symbol versioning in the shared library. +/* #undef _GLIBCXX_SYMVER */ + +// Define symbol versioning in assember directives. If symbol +// versioning is beigng used, and the assembler supports this kind of +// thing, then use it. +// NB: _GLIBCXX_AT_AT is a hack to work around quoting issues in m4. +#if _GLIBCXX_SYMVER + #define _GLIBCXX_ASM_SYMVER(cur, old, version) \ + asm (".symver " #cur "," #old _GLIBCXX_AT_AT #version); +#else + #define _GLIBCXX_ASM_SYMVER(cur, old, version) +#endif + +// Define if LFS support is available. +/* #undef _GLIBCXX_USE_LFS */ + +// Define if a fully dynamic basic_string is wanted. +/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */ + +// Define if NLS translations are to be used. +/* #undef _GLIBCXX_USE_NLS */ + +// Define if gthr-default.h exists (meaning that threading support is enabled). +#define _GLIBCXX_HAVE_GTHR_DEFAULT 1 + +// Define if the atan2f function exists. +#define _GLIBCXX_HAVE_ATAN2F 1 + +// Define if the atan2l function exists. +/* #undef _GLIBCXX_HAVE_ATAN2L */ + +// Define if the tanl function exists. +/* #undef _GLIBCXX_HAVE_TANL */ + +// Define if the copysignf function exists. +#define _GLIBCXX_HAVE_COPYSIGNF 1 + +// Define if getpagesize exists. +#define _GLIBCXX_HAVE_GETPAGESIZE 1 + +// Define if setenv exists. +#define _GLIBCXX_HAVE_SETENV 1 + +// Define if sigsetjmp exists. +#define _GLIBCXX_HAVE_SIGSETJMP 1 + +// Define if mbstate_t exists in wchar.h. +#define _GLIBCXX_HAVE_MBSTATE_T 1 + +// Define if you have the modff function. +#define _GLIBCXX_HAVE_MODFF 1 + +// Define if you have the modfl function. +/* #undef _GLIBCXX_HAVE_MODFL */ + +// Define if you have the expf function. +#define _GLIBCXX_HAVE_EXPF 1 + +// Define if you have the expl function. +/* #undef _GLIBCXX_HAVE_EXPL */ + +// Define if you have the hypot function. +#define _GLIBCXX_HAVE_HYPOT 1 + +// Define if you have the hypotf function. +#define _GLIBCXX_HAVE_HYPOTF 1 + +// Define if you have the hypotl function. +/* #undef _GLIBCXX_HAVE_HYPOTL */ + +// Define if the compiler/host combination has __builtin_abs +#define _GLIBCXX_HAVE___BUILTIN_ABS 1 + +// Define if the compiler/host combination has __builtin_labs +#define _GLIBCXX_HAVE___BUILTIN_LABS 1 + +// Define if the compiler/host combination has __builtin_cos +#define _GLIBCXX_HAVE___BUILTIN_COS 1 + +// Define if the compiler/host combination has __builtin_cosf +#define _GLIBCXX_HAVE___BUILTIN_COSF 1 + +// Define if the compiler/host combination has __builtin_cosl +#define _GLIBCXX_HAVE___BUILTIN_COSL 1 + +// Define if the compiler/host combination has __builtin_fabs +#define _GLIBCXX_HAVE___BUILTIN_FABS 1 + +// Define if the compiler/host combination has __builtin_fabsf +#define _GLIBCXX_HAVE___BUILTIN_FABSF 1 + +// Define if the compiler/host combination has __builtin_fabsl +#define _GLIBCXX_HAVE___BUILTIN_FABSL 1 + +// Define if the compiler/host combination has __builtin_sin +#define _GLIBCXX_HAVE___BUILTIN_SIN 1 + +// Define if the compiler/host combination has __builtin_sinf +#define _GLIBCXX_HAVE___BUILTIN_SINF 1 + +// Define if the compiler/host combination has __builtin_sinl +#define _GLIBCXX_HAVE___BUILTIN_SINL 1 + +// Define if the compiler/host combination has __builtin_sqrt +#define _GLIBCXX_HAVE___BUILTIN_SQRT 1 + +// Define if the compiler/host combination has __builtin_sqrtf +#define _GLIBCXX_HAVE___BUILTIN_SQRTF 1 + +// Define if the compiler/host combination has __builtin_sqrtl +#define _GLIBCXX_HAVE___BUILTIN_SQRTL 1 + +// Define if poll is available in . +#define _GLIBCXX_HAVE_POLL 1 + +// Define if S_ISREG (Posix) is available in . +#define _GLIBCXX_HAVE_S_ISREG 1 + +// Define if S_IFREG is available in . +/* #undef _GLIBCXX_HAVE_S_IFREG */ + +// Define if writev is available in . +/* #undef _GLIBCXX_HAVE_WRITEV */ + +// Define if int64_t is available in . +#define _GLIBCXX_HAVE_INT64_T 1 + +// Define if LC_MESSAGES is available in . +#define _GLIBCXX_HAVE_LC_MESSAGES 1 + +// Define if exists. +#define _GLIBCXX_HAVE_FLOAT_H 1 + +// Define if modf is present in +/* #undef _GLIBCXX_HAVE_MODF */ + + +/* Define to 1 if you have the `acosf' function. */ +#define _GLIBCXX_HAVE_ACOSF 1 + +/* Define to 1 if you have the `acosl' function. */ +/* #undef _GLIBCXX_HAVE_ACOSL */ + +/* Define to 1 if you have the `asinf' function. */ +#define _GLIBCXX_HAVE_ASINF 1 + +/* Define to 1 if you have the `asinl' function. */ +/* #undef _GLIBCXX_HAVE_ASINL */ + +/* Define to 1 if you have the `atan2f' function. */ +#define _GLIBCXX_HAVE_ATAN2F 1 + +/* Define to 1 if you have the `atan2l' function. */ +/* #undef _GLIBCXX_HAVE_ATAN2L */ + +/* Define to 1 if you have the `atanf' function. */ +#define _GLIBCXX_HAVE_ATANF 1 + +/* Define to 1 if you have the `atanl' function. */ +/* #undef _GLIBCXX_HAVE_ATANL */ + +/* Define to 1 if you have the `btowc' function. */ +/* #undef _GLIBCXX_HAVE_BTOWC */ + +/* Define to 1 if you have the `ceilf' function. */ +#define _GLIBCXX_HAVE_CEILF 1 + +/* Define to 1 if you have the `ceill' function. */ +/* #undef _GLIBCXX_HAVE_CEILL */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_COMPLEX_H 1 + +/* Define to 1 if you have the `copysign' function. */ +#define _GLIBCXX_HAVE_COPYSIGN 1 + +/* Define to 1 if you have the `copysignf' function. */ +#define _GLIBCXX_HAVE_COPYSIGNF 1 + +/* Define to 1 if you have the `copysignl' function. */ +/* #undef _GLIBCXX_HAVE_COPYSIGNL */ + +/* Define to 1 if you have the `cosf' function. */ +#define _GLIBCXX_HAVE_COSF 1 + +/* Define to 1 if you have the `coshf' function. */ +#define _GLIBCXX_HAVE_COSHF 1 + +/* Define to 1 if you have the `coshl' function. */ +/* #undef _GLIBCXX_HAVE_COSHL */ + +/* Define to 1 if you have the `cosl' function. */ +/* #undef _GLIBCXX_HAVE_COSL */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_ENDIAN_H */ + +/* Define to 1 if you have the `expf' function. */ +#define _GLIBCXX_HAVE_EXPF 1 + +/* Define to 1 if you have the `expl' function. */ +/* #undef _GLIBCXX_HAVE_EXPL */ + +/* Define to 1 if you have the `fabsf' function. */ +#define _GLIBCXX_HAVE_FABSF 1 + +/* Define to 1 if you have the `fabsl' function. */ +/* #undef _GLIBCXX_HAVE_FABSL */ + +/* Define to 1 if you have the `fgetwc' function. */ +/* #undef _GLIBCXX_HAVE_FGETWC */ + +/* Define to 1 if you have the `fgetws' function. */ +/* #undef _GLIBCXX_HAVE_FGETWS */ + +/* Define to 1 if you have the `finite' function. */ +#define _GLIBCXX_HAVE_FINITE 1 + +/* Define to 1 if you have the `finitef' function. */ +#define _GLIBCXX_HAVE_FINITEF 1 + +/* Define to 1 if you have the `finitel' function. */ +/* #undef _GLIBCXX_HAVE_FINITEL */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `floorf' function. */ +#define _GLIBCXX_HAVE_FLOORF 1 + +/* Define to 1 if you have the `floorl' function. */ +/* #undef _GLIBCXX_HAVE_FLOORL */ + +/* Define to 1 if you have the `fmodf' function. */ +#define _GLIBCXX_HAVE_FMODF 1 + +/* Define to 1 if you have the `fmodl' function. */ +/* #undef _GLIBCXX_HAVE_FMODL */ + +/* Define to 1 if you have the `fpclass' function. */ +/* #undef _GLIBCXX_HAVE_FPCLASS */ + +/* Define to 1 if you have the `fputwc' function. */ +/* #undef _GLIBCXX_HAVE_FPUTWC */ + +/* Define to 1 if you have the `fputws' function. */ +/* #undef _GLIBCXX_HAVE_FPUTWS */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_FP_H */ + +/* Define to 1 if you have the `frexpf' function. */ +#define _GLIBCXX_HAVE_FREXPF 1 + +/* Define to 1 if you have the `frexpl' function. */ +/* #undef _GLIBCXX_HAVE_FREXPL */ + +/* Define to 1 if you have the `fwide' function. */ +/* #undef _GLIBCXX_HAVE_FWIDE */ + +/* Define to 1 if you have the `fwprintf' function. */ +/* #undef _GLIBCXX_HAVE_FWPRINTF */ + +/* Define to 1 if you have the `fwscanf' function. */ +/* #undef _GLIBCXX_HAVE_FWSCANF */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_GCONV_H */ + +/* Define to 1 if you have the `getpagesize' function. */ +#define _GLIBCXX_HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getwc' function. */ +/* #undef _GLIBCXX_HAVE_GETWC */ + +/* Define to 1 if you have the `getwchar' function. */ +/* #undef _GLIBCXX_HAVE_GETWCHAR */ + +/* Define to 1 if you have the `hypot' function. */ +#define _GLIBCXX_HAVE_HYPOT 1 + +/* Define to 1 if you have the `hypotf' function. */ +#define _GLIBCXX_HAVE_HYPOTF 1 + +/* Define to 1 if you have the `hypotl' function. */ +/* #undef _GLIBCXX_HAVE_HYPOTL */ + +/* Define to 1 if you have the `iconv' function. */ +/* #undef _GLIBCXX_HAVE_ICONV */ + +/* Define to 1 if you have the `iconv_close' function. */ +/* #undef _GLIBCXX_HAVE_ICONV_CLOSE */ + +/* Define to 1 if you have the `iconv_open' function. */ +/* #undef _GLIBCXX_HAVE_ICONV_OPEN */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_IEEEFP_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `isinf' function. */ +#define _GLIBCXX_HAVE_ISINF 1 + +/* Define to 1 if you have the `isinff' function. */ +/* #undef _GLIBCXX_HAVE_ISINFF */ + +/* Define to 1 if you have the `isinfl' function. */ +/* #undef _GLIBCXX_HAVE_ISINFL */ + +/* Define to 1 if you have the `isnan' function. */ +#define _GLIBCXX_HAVE_ISNAN 1 + +/* Define to 1 if you have the `isnanf' function. */ +#define _GLIBCXX_HAVE_ISNANF 1 + +/* Define to 1 if you have the `isnanl' function. */ +/* #undef _GLIBCXX_HAVE_ISNANL */ + +/* Define to 1 if you have the `iswblank' function. */ +/* #undef _GLIBCXX_HAVE_ISWBLANK */ + +/* Define to 1 if you have the `ldexpf' function. */ +#define _GLIBCXX_HAVE_LDEXPF 1 + +/* Define to 1 if you have the `ldexpl' function. */ +/* #undef _GLIBCXX_HAVE_LDEXPL */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `m' library (-lm). */ +#define _GLIBCXX_HAVE_LIBM 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_AS 0 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_DATA 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_FSIZE 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_RSS 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_VMEM 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `log10f' function. */ +#define _GLIBCXX_HAVE_LOG10F 1 + +/* Define to 1 if you have the `log10l' function. */ +/* #undef _GLIBCXX_HAVE_LOG10L */ + +/* Define to 1 if you have the `logf' function. */ +#define _GLIBCXX_HAVE_LOGF 1 + +/* Define to 1 if you have the `logl' function. */ +/* #undef _GLIBCXX_HAVE_LOGL */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_MACHINE_PARAM_H 1 + +/* Define to 1 if you have the `mbrlen' function. */ +/* #undef _GLIBCXX_HAVE_MBRLEN */ + +/* Define to 1 if you have the `mbrtowc' function. */ +/* #undef _GLIBCXX_HAVE_MBRTOWC */ + +/* Define to 1 if you have the `mbsinit' function. */ +/* #undef _GLIBCXX_HAVE_MBSINIT */ + +/* Define to 1 if you have the `mbsrtowcs' function. */ +/* #undef _GLIBCXX_HAVE_MBSRTOWCS */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_MEMORY_H 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define _GLIBCXX_HAVE_MMAP 1 + +/* Define to 1 if you have the `modff' function. */ +#define _GLIBCXX_HAVE_MODFF 1 + +/* Define to 1 if you have the `modfl' function. */ +/* #undef _GLIBCXX_HAVE_MODFL */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_NAN_H */ + +/* Define to 1 if you have the `nl_langinfo' function. */ +#define _GLIBCXX_HAVE_NL_LANGINFO 1 + +/* Define to 1 if you have the `powf' function. */ +#define _GLIBCXX_HAVE_POWF 1 + +/* Define to 1 if you have the `powl' function. */ +/* #undef _GLIBCXX_HAVE_POWL */ + +/* Define to 1 if you have the `putwc' function. */ +/* #undef _GLIBCXX_HAVE_PUTWC */ + +/* Define to 1 if you have the `putwchar' function. */ +/* #undef _GLIBCXX_HAVE_PUTWCHAR */ + +/* Define to 1 if you have the `qfpclass' function. */ +/* #undef _GLIBCXX_HAVE_QFPCLASS */ + +/* Define to 1 if you have the `setenv' function. */ +#define _GLIBCXX_HAVE_SETENV 1 + +/* Define if sigsetjmp is available. */ +#define _GLIBCXX_HAVE_SIGSETJMP 1 + +/* Define to 1 if you have the `sincos' function. */ +/* #undef _GLIBCXX_HAVE_SINCOS */ + +/* Define to 1 if you have the `sincosf' function. */ +/* #undef _GLIBCXX_HAVE_SINCOSF */ + +/* Define to 1 if you have the `sincosl' function. */ +/* #undef _GLIBCXX_HAVE_SINCOSL */ + +/* Define to 1 if you have the `sinf' function. */ +#define _GLIBCXX_HAVE_SINF 1 + +/* Define to 1 if you have the `sinhf' function. */ +#define _GLIBCXX_HAVE_SINHF 1 + +/* Define to 1 if you have the `sinhl' function. */ +/* #undef _GLIBCXX_HAVE_SINHL */ + +/* Define to 1 if you have the `sinl' function. */ +/* #undef _GLIBCXX_HAVE_SINL */ + +/* Define to 1 if you have the `sqrtf' function. */ +#define _GLIBCXX_HAVE_SQRTF 1 + +/* Define to 1 if you have the `sqrtl' function. */ +/* #undef _GLIBCXX_HAVE_SQRTL */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STRING_H 1 + +/* Define to 1 if you have the `strtof' function. */ +/* #undef _GLIBCXX_HAVE_STRTOF */ + +/* Define to 1 if you have the `strtold' function. */ +/* #undef _GLIBCXX_HAVE_STRTOLD */ + +/* Define to 1 if you have the `swprintf' function. */ +/* #undef _GLIBCXX_HAVE_SWPRINTF */ + +/* Define to 1 if you have the `swscanf' function. */ +/* #undef _GLIBCXX_HAVE_SWSCANF */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_FILIO_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_IPC_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_SYS_ISA_DEFS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_SYS_PARAM_H */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_SEM_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the `tanf' function. */ +#define _GLIBCXX_HAVE_TANF 1 + +/* Define to 1 if you have the `tanhf' function. */ +#define _GLIBCXX_HAVE_TANHF 1 + +/* Define to 1 if you have the `tanhl' function. */ +/* #undef _GLIBCXX_HAVE_TANHL */ + +/* Define to 1 if you have the `tanl' function. */ +/* #undef _GLIBCXX_HAVE_TANL */ + +/* Define to 1 if you have the `ungetwc' function. */ +/* #undef _GLIBCXX_HAVE_UNGETWC */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vfwprintf' function. */ +/* #undef _GLIBCXX_HAVE_VFWPRINTF */ + +/* Define to 1 if you have the `vfwscanf' function. */ +/* #undef _GLIBCXX_HAVE_VFWSCANF */ + +/* Define to 1 if you have the `vswprintf' function. */ +/* #undef _GLIBCXX_HAVE_VSWPRINTF */ + +/* Define to 1 if you have the `vswscanf' function. */ +/* #undef _GLIBCXX_HAVE_VSWSCANF */ + +/* Define to 1 if you have the `vwprintf' function. */ +/* #undef _GLIBCXX_HAVE_VWPRINTF */ + +/* Define to 1 if you have the `vwscanf' function. */ +/* #undef _GLIBCXX_HAVE_VWSCANF */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcrtomb' function. */ +/* #undef _GLIBCXX_HAVE_WCRTOMB */ + +/* Define to 1 if you have the `wcscat' function. */ +#define _GLIBCXX_HAVE_WCSCAT 1 + +/* Define to 1 if you have the `wcschr' function. */ +#define _GLIBCXX_HAVE_WCSCHR 1 + +/* Define to 1 if you have the `wcscmp' function. */ +#define _GLIBCXX_HAVE_WCSCMP 1 + +/* Define to 1 if you have the `wcscoll' function. */ +/* #undef _GLIBCXX_HAVE_WCSCOLL */ + +/* Define to 1 if you have the `wcscpy' function. */ +#define _GLIBCXX_HAVE_WCSCPY 1 + +/* Define to 1 if you have the `wcscspn' function. */ +#define _GLIBCXX_HAVE_WCSCSPN 1 + +/* Define to 1 if you have the `wcsftime' function. */ +/* #undef _GLIBCXX_HAVE_WCSFTIME */ + +/* Define to 1 if you have the `wcslen' function. */ +#define _GLIBCXX_HAVE_WCSLEN 1 + +/* Define to 1 if you have the `wcsncat' function. */ +#define _GLIBCXX_HAVE_WCSNCAT 1 + +/* Define to 1 if you have the `wcsncmp' function. */ +#define _GLIBCXX_HAVE_WCSNCMP 1 + +/* Define to 1 if you have the `wcsncpy' function. */ +#define _GLIBCXX_HAVE_WCSNCPY 1 + +/* Define to 1 if you have the `wcspbrk' function. */ +#define _GLIBCXX_HAVE_WCSPBRK 1 + +/* Define to 1 if you have the `wcsrchr' function. */ +#define _GLIBCXX_HAVE_WCSRCHR 1 + +/* Define to 1 if you have the `wcsrtombs' function. */ +/* #undef _GLIBCXX_HAVE_WCSRTOMBS */ + +/* Define to 1 if you have the `wcsspn' function. */ +#define _GLIBCXX_HAVE_WCSSPN 1 + +/* Define to 1 if you have the `wcsstr' function. */ +#define _GLIBCXX_HAVE_WCSSTR 1 + +/* Define to 1 if you have the `wcstod' function. */ +/* #undef _GLIBCXX_HAVE_WCSTOD */ + +/* Define to 1 if you have the `wcstof' function. */ +/* #undef _GLIBCXX_HAVE_WCSTOF */ + +/* Define to 1 if you have the `wcstok' function. */ +/* #undef _GLIBCXX_HAVE_WCSTOK */ + +/* Define to 1 if you have the `wcstol' function. */ +/* #undef _GLIBCXX_HAVE_WCSTOL */ + +/* Define to 1 if you have the `wcstoul' function. */ +/* #undef _GLIBCXX_HAVE_WCSTOUL */ + +/* Define to 1 if you have the `wcsxfrm' function. */ +/* #undef _GLIBCXX_HAVE_WCSXFRM */ + +/* Define to 1 if you have the `wctob' function. */ +/* #undef _GLIBCXX_HAVE_WCTOB */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_WCTYPE_H 1 + +/* Define to 1 if you have the `wmemchr' function. */ +#define _GLIBCXX_HAVE_WMEMCHR 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define _GLIBCXX_HAVE_WMEMCMP 1 + +/* Define to 1 if you have the `wmemcpy' function. */ +#define _GLIBCXX_HAVE_WMEMCPY 1 + +/* Define to 1 if you have the `wmemmove' function. */ +#define _GLIBCXX_HAVE_WMEMMOVE 1 + +/* Define to 1 if you have the `wmemset' function. */ +#define _GLIBCXX_HAVE_WMEMSET 1 + +/* Define to 1 if you have the `wprintf' function. */ +/* #undef _GLIBCXX_HAVE_WPRINTF */ + +/* Define to 1 if you have the `wscanf' function. */ +/* #undef _GLIBCXX_HAVE_WSCANF */ + +/* Define to 1 if you have the `_acosf' function. */ +/* #undef _GLIBCXX_HAVE__ACOSF */ + +/* Define to 1 if you have the `_acosl' function. */ +/* #undef _GLIBCXX_HAVE__ACOSL */ + +/* Define to 1 if you have the `_asinf' function. */ +/* #undef _GLIBCXX_HAVE__ASINF */ + +/* Define to 1 if you have the `_asinl' function. */ +/* #undef _GLIBCXX_HAVE__ASINL */ + +/* Define to 1 if you have the `_atan2f' function. */ +/* #undef _GLIBCXX_HAVE__ATAN2F */ + +/* Define to 1 if you have the `_atan2l' function. */ +/* #undef _GLIBCXX_HAVE__ATAN2L */ + +/* Define to 1 if you have the `_atanf' function. */ +/* #undef _GLIBCXX_HAVE__ATANF */ + +/* Define to 1 if you have the `_atanl' function. */ +/* #undef _GLIBCXX_HAVE__ATANL */ + +/* Define to 1 if you have the `_ceilf' function. */ +/* #undef _GLIBCXX_HAVE__CEILF */ + +/* Define to 1 if you have the `_ceill' function. */ +/* #undef _GLIBCXX_HAVE__CEILL */ + +/* Define to 1 if you have the `_copysign' function. */ +/* #undef _GLIBCXX_HAVE__COPYSIGN */ + +/* Define to 1 if you have the `_copysignl' function. */ +/* #undef _GLIBCXX_HAVE__COPYSIGNL */ + +/* Define to 1 if you have the `_cosf' function. */ +/* #undef _GLIBCXX_HAVE__COSF */ + +/* Define to 1 if you have the `_coshf' function. */ +/* #undef _GLIBCXX_HAVE__COSHF */ + +/* Define to 1 if you have the `_coshl' function. */ +/* #undef _GLIBCXX_HAVE__COSHL */ + +/* Define to 1 if you have the `_cosl' function. */ +/* #undef _GLIBCXX_HAVE__COSL */ + +/* Define to 1 if you have the `_expf' function. */ +/* #undef _GLIBCXX_HAVE__EXPF */ + +/* Define to 1 if you have the `_expl' function. */ +/* #undef _GLIBCXX_HAVE__EXPL */ + +/* Define to 1 if you have the `_fabsf' function. */ +/* #undef _GLIBCXX_HAVE__FABSF */ + +/* Define to 1 if you have the `_fabsl' function. */ +/* #undef _GLIBCXX_HAVE__FABSL */ + +/* Define to 1 if you have the `_finite' function. */ +/* #undef _GLIBCXX_HAVE__FINITE */ + +/* Define to 1 if you have the `_finitef' function. */ +/* #undef _GLIBCXX_HAVE__FINITEF */ + +/* Define to 1 if you have the `_finitel' function. */ +/* #undef _GLIBCXX_HAVE__FINITEL */ + +/* Define to 1 if you have the `_floorf' function. */ +/* #undef _GLIBCXX_HAVE__FLOORF */ + +/* Define to 1 if you have the `_floorl' function. */ +/* #undef _GLIBCXX_HAVE__FLOORL */ + +/* Define to 1 if you have the `_fmodf' function. */ +/* #undef _GLIBCXX_HAVE__FMODF */ + +/* Define to 1 if you have the `_fmodl' function. */ +/* #undef _GLIBCXX_HAVE__FMODL */ + +/* Define to 1 if you have the `_fpclass' function. */ +/* #undef _GLIBCXX_HAVE__FPCLASS */ + +/* Define to 1 if you have the `_frexpf' function. */ +/* #undef _GLIBCXX_HAVE__FREXPF */ + +/* Define to 1 if you have the `_frexpl' function. */ +/* #undef _GLIBCXX_HAVE__FREXPL */ + +/* Define to 1 if you have the `_hypot' function. */ +/* #undef _GLIBCXX_HAVE__HYPOT */ + +/* Define to 1 if you have the `_hypotf' function. */ +/* #undef _GLIBCXX_HAVE__HYPOTF */ + +/* Define to 1 if you have the `_hypotl' function. */ +/* #undef _GLIBCXX_HAVE__HYPOTL */ + +/* Define to 1 if you have the `_isinf' function. */ +/* #undef _GLIBCXX_HAVE__ISINF */ + +/* Define to 1 if you have the `_isinff' function. */ +/* #undef _GLIBCXX_HAVE__ISINFF */ + +/* Define to 1 if you have the `_isinfl' function. */ +/* #undef _GLIBCXX_HAVE__ISINFL */ + +/* Define to 1 if you have the `_isnan' function. */ +/* #undef _GLIBCXX_HAVE__ISNAN */ + +/* Define to 1 if you have the `_isnanf' function. */ +/* #undef _GLIBCXX_HAVE__ISNANF */ + +/* Define to 1 if you have the `_isnanl' function. */ +/* #undef _GLIBCXX_HAVE__ISNANL */ + +/* Define to 1 if you have the `_ldexpf' function. */ +/* #undef _GLIBCXX_HAVE__LDEXPF */ + +/* Define to 1 if you have the `_ldexpl' function. */ +/* #undef _GLIBCXX_HAVE__LDEXPL */ + +/* Define to 1 if you have the `_log10f' function. */ +/* #undef _GLIBCXX_HAVE__LOG10F */ + +/* Define to 1 if you have the `_log10l' function. */ +/* #undef _GLIBCXX_HAVE__LOG10L */ + +/* Define to 1 if you have the `_logf' function. */ +/* #undef _GLIBCXX_HAVE__LOGF */ + +/* Define to 1 if you have the `_logl' function. */ +/* #undef _GLIBCXX_HAVE__LOGL */ + +/* Define to 1 if you have the `_modff' function. */ +/* #undef _GLIBCXX_HAVE__MODFF */ + +/* Define to 1 if you have the `_modfl' function. */ +/* #undef _GLIBCXX_HAVE__MODFL */ + +/* Define to 1 if you have the `_powf' function. */ +/* #undef _GLIBCXX_HAVE__POWF */ + +/* Define to 1 if you have the `_powl' function. */ +/* #undef _GLIBCXX_HAVE__POWL */ + +/* Define to 1 if you have the `_qfpclass' function. */ +/* #undef _GLIBCXX_HAVE__QFPCLASS */ + +/* Define to 1 if you have the `_sincos' function. */ +/* #undef _GLIBCXX_HAVE__SINCOS */ + +/* Define to 1 if you have the `_sincosf' function. */ +/* #undef _GLIBCXX_HAVE__SINCOSF */ + +/* Define to 1 if you have the `_sincosl' function. */ +/* #undef _GLIBCXX_HAVE__SINCOSL */ + +/* Define to 1 if you have the `_sinf' function. */ +/* #undef _GLIBCXX_HAVE__SINF */ + +/* Define to 1 if you have the `_sinhf' function. */ +/* #undef _GLIBCXX_HAVE__SINHF */ + +/* Define to 1 if you have the `_sinhl' function. */ +/* #undef _GLIBCXX_HAVE__SINHL */ + +/* Define to 1 if you have the `_sinl' function. */ +/* #undef _GLIBCXX_HAVE__SINL */ + +/* Define to 1 if you have the `_sqrtf' function. */ +/* #undef _GLIBCXX_HAVE__SQRTF */ + +/* Define to 1 if you have the `_sqrtl' function. */ +/* #undef _GLIBCXX_HAVE__SQRTL */ + +/* Define to 1 if you have the `_tanf' function. */ +/* #undef _GLIBCXX_HAVE__TANF */ + +/* Define to 1 if you have the `_tanhf' function. */ +/* #undef _GLIBCXX_HAVE__TANHF */ + +/* Define to 1 if you have the `_tanhl' function. */ +/* #undef _GLIBCXX_HAVE__TANHL */ + +/* Define to 1 if you have the `_tanl' function. */ +/* #undef _GLIBCXX_HAVE__TANL */ + +/* Define to 1 if you have the `__signbit' function. */ +/* #undef _GLIBCXX_HAVE___SIGNBIT */ + +/* Define to 1 if you have the `__signbitf' function. */ +/* #undef _GLIBCXX_HAVE___SIGNBITF */ + +/* Define to 1 if you have the `__signbitl' function. */ +/* #undef _GLIBCXX_HAVE___SIGNBITL */ + +/* Define to the address where bug reports for this package should be sent. */ +#define _GLIBCXX_PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define _GLIBCXX_PACKAGE_NAME "package-unused" + +/* Define to the full name and version of this package. */ +#define _GLIBCXX_PACKAGE_STRING "package-unused version-unused" + +/* Define to the one symbol short name of this package. */ +#define _GLIBCXX_PACKAGE_TARNAME "libstdc++" + +/* Define to the version of this package. */ +#define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if a full hosted library is built, or 0 if freestanding. */ +#define _GLIBCXX_HOSTED 1 + +/* Define if the compiler is configured for setjmp/longjmp exceptions. */ +/* #undef _GLIBCXX_SJLJ_EXCEPTIONS */ +// +// Systems that have certain non-standard functions prefixed with an +// underscore, we'll handle those here. Must come after config.h.in. +// +#if defined (_GLIBCXX_HAVE__ISNAN) && ! defined (_GLIBCXX_HAVE_ISNAN) +# define _GLIBCXX_HAVE_ISNAN 1 +# define isnan _isnan +#endif + +#if defined (_GLIBCXX_HAVE__ISNANF) && ! defined (_GLIBCXX_HAVE_ISNANF) +# define _GLIBCXX_HAVE_ISNANF 1 +# define isnanf _isnanf +#endif + +#if defined (_GLIBCXX_HAVE__ISNANL) && ! defined (_GLIBCXX_HAVE_ISNANL) +# define _GLIBCXX_HAVE_ISNANL 1 +# define isnanl _isnanl +#endif + +#if defined (_GLIBCXX_HAVE__ISINF) && ! defined (_GLIBCXX_HAVE_ISINF) +# define _GLIBCXX_HAVE_ISINF 1 +# define isinf _isinf +#endif + +#if defined (_GLIBCXX_HAVE__ISINFF) && ! defined (_GLIBCXX_HAVE_ISINFF) +# define _GLIBCXX_HAVE_ISINFF 1 +# define isinff _isinff +#endif + +#if defined (_GLIBCXX_HAVE__ISINFL) && ! defined (_GLIBCXX_HAVE_ISINFL) +# define _GLIBCXX_HAVE_ISINFL 1 +# define isinfl _isinfl +#endif + +#if defined (_GLIBCXX_HAVE__COPYSIGN) && ! defined (_GLIBCXX_HAVE_COPYSIGN) +# define _GLIBCXX_HAVE_COPYSIGN 1 +# define copysign _copysign +#endif + +#if defined (_GLIBCXX_HAVE__COPYSIGNL) && ! defined (_GLIBCXX_HAVE_COPYSIGNL) +# define _GLIBCXX_HAVE_COPYSIGNL 1 +# define copysignl _copysignl +#endif + +#if defined (_GLIBCXX_HAVE__COSF) && ! defined (_GLIBCXX_HAVE_COSF) +# define _GLIBCXX_HAVE_COSF 1 +# define cosf _cosf +#endif + +#if defined (_GLIBCXX_HAVE__ACOSF) && ! defined (_GLIBCXX_HAVE_ACOSF) +# define _GLIBCXX_HAVE_ACOSF 1 +# define acosf _acosf +#endif + +#if defined (_GLIBCXX_HAVE__ACOSL) && ! defined (_GLIBCXX_HAVE_ACOSL) +# define _GLIBCXX_HAVE_ACOSL 1 +# define acosl _acosl +#endif + +#if defined (_GLIBCXX_HAVE__ASINF) && ! defined (_GLIBCXX_HAVE_ASINF) +# define _GLIBCXX_HAVE_ASINF 1 +# define asinf _asinf +#endif + +#if defined (_GLIBCXX_HAVE__ASINL) && ! defined (_GLIBCXX_HAVE_ASINL) +# define _GLIBCXX_HAVE_ASINL 1 +# define asinl _asinl +#endif + +#if defined (_GLIBCXX_HAVE__ATANF) && ! defined (_GLIBCXX_HAVE_ATANF) +# define _GLIBCXX_HAVE_ATANF 1 +# define atanf _atanf +#endif + +#if defined (_GLIBCXX_HAVE__ATANL) && ! defined (_GLIBCXX_HAVE_ATANL) +# define _GLIBCXX_HAVE_ATANL 1 +# define atanl _atanl +#endif + +#if defined (_GLIBCXX_HAVE__CEILF) && ! defined (_GLIBCXX_HAVE_CEILF) +# define _GLIBCXX_HAVE_CEILF 1 +# define aceil _ceilf +#endif + +#if defined (_GLIBCXX_HAVE__CEILL) && ! defined (_GLIBCXX_HAVE_CEILL) +# define _GLIBCXX_HAVE_CEILL 1 +# define aceil _ceill +#endif + +#if defined (_GLIBCXX_HAVE__COSHF) && ! defined (_GLIBCXX_HAVE_COSHF) +# define _GLIBCXX_HAVE_COSHF 1 +# define coshf _coshf +#endif + +#if defined (_GLIBCXX_HAVE__COSL) && ! defined (_GLIBCXX_HAVE_COSL) +# define _GLIBCXX_HAVE_COSL 1 +# define cosl _cosl +#endif + +#if defined (_GLIBCXX_HAVE__LOGF) && ! defined (_GLIBCXX_HAVE_LOGF) +# define _GLIBCXX_HAVE_LOGF 1 +# define logf _logf +#endif + +#if defined (_GLIBCXX_HAVE__COSHL) && ! defined (_GLIBCXX_HAVE_COSHL) +# define _GLIBCXX_HAVE_COSHL 1 +# define coshl _coshl +#endif + +#if defined (_GLIBCXX_HAVE__EXPF) && ! defined (_GLIBCXX_HAVE_EXPF) +# define _GLIBCXX_HAVE_EXPF 1 +# define expf _expf +#endif + +#if defined (_GLIBCXX_HAVE__EXPL) && ! defined (_GLIBCXX_HAVE_EXPL) +# define _GLIBCXX_HAVE_EXPL 1 +# define expl _expl +#endif + +#if defined (_GLIBCXX_HAVE__FABSF) && ! defined (_GLIBCXX_HAVE_FABSF) +# define _GLIBCXX_HAVE_FABSF 1 +# define fabsf _fabsf +#endif + +#if defined (_GLIBCXX_HAVE__FABSL) && ! defined (_GLIBCXX_HAVE_FABSL) +# define _GLIBCXX_HAVE_FABSL 1 +# define fabsl _fabsl +#endif + +#if defined (_GLIBCXX_HAVE__FLOORF) && ! defined (_GLIBCXX_HAVE_FLOORF) +# define _GLIBCXX_HAVE_FLOORF 1 +# define floorf _floorf +#endif + +#if defined (_GLIBCXX_HAVE__FLOORL) && ! defined (_GLIBCXX_HAVE_FLOORL) +# define _GLIBCXX_HAVE_FLOORL 1 +# define floorl _floorl +#endif + +#if defined (_GLIBCXX_HAVE__FMODF) && ! defined (_GLIBCXX_HAVE_FMODF) +# define _GLIBCXX_HAVE_FMODF 1 +# define fmodf _fmodf +#endif + +#if defined (_GLIBCXX_HAVE__FMODL) && ! defined (_GLIBCXX_HAVE_FMODL) +# define _GLIBCXX_HAVE_FMODL 1 +# define fmodl _fmodl +#endif + +#if defined (_GLIBCXX_HAVE__FREXPF) && ! defined (_GLIBCXX_HAVE_FREXPF) +# define _GLIBCXX_HAVE_FREXPF 1 +# define frexpf _frexpf +#endif + +#if defined (_GLIBCXX_HAVE__FREXPL) && ! defined (_GLIBCXX_HAVE_FREXPL) +# define _GLIBCXX_HAVE_FREXPL 1 +# define frexpl _frexpl +#endif + +#if defined (_GLIBCXX_HAVE__LDEXPF) && ! defined (_GLIBCXX_HAVE_LDEXPF) +# define _GLIBCXX_HAVE_LDEXPF 1 +# define ldexpf _ldexpf +#endif + +#if defined (_GLIBCXX_HAVE__LDEXPL) && ! defined (_GLIBCXX_HAVE_LDEXPL) +# define _GLIBCXX_HAVE_LDEXPL 1 +# define ldexpl _ldexpl +#endif + +#if defined (_GLIBCXX_HAVE__LOG10F) && ! defined (_GLIBCXX_HAVE_LOG10F) +# define _GLIBCXX_HAVE_LOG10F 1 +# define log10f _log10f +#endif + +#if defined (_GLIBCXX_HAVE__LOGL) && ! defined (_GLIBCXX_HAVE_LOGL) +# define _GLIBCXX_HAVE_LOGL 1 +# define logl _logl +#endif + +#if defined (_GLIBCXX_HAVE__POWF) && ! defined (_GLIBCXX_HAVE_POWF) +# define _GLIBCXX_HAVE_POWF 1 +# define powf _powf +#endif + +#if defined (_GLIBCXX_HAVE__LOG10L) && ! defined (_GLIBCXX_HAVE_LOG10L) +# define _GLIBCXX_HAVE_LOG10L 1 +# define log10l _log10l +#endif + +#if defined (_GLIBCXX_HAVE__MODF) && ! defined (_GLIBCXX_HAVE_MODF) +# define _GLIBCXX_HAVE_MODF 1 +# define modf _modf +#endif + +#if defined (_GLIBCXX_HAVE__MODL) && ! defined (_GLIBCXX_HAVE_MODL) +# define _GLIBCXX_HAVE_MODL 1 +# define modl _modl +#endif + +#if defined (_GLIBCXX_HAVE__SINF) && ! defined (_GLIBCXX_HAVE_SINF) +# define _GLIBCXX_HAVE_SINF 1 +# define sinf _sinf +#endif + +#if defined (_GLIBCXX_HAVE__POWL) && ! defined (_GLIBCXX_HAVE_POWL) +# define _GLIBCXX_HAVE_POWL 1 +# define powl _powl +#endif + +#if defined (_GLIBCXX_HAVE__SINHF) && ! defined (_GLIBCXX_HAVE_SINHF) +# define _GLIBCXX_HAVE_SINHF 1 +# define sinhf _sinhf +#endif + +#if defined (_GLIBCXX_HAVE__SINL) && ! defined (_GLIBCXX_HAVE_SINL) +# define _GLIBCXX_HAVE_SINL 1 +# define sinl _sinl +#endif + +#if defined (_GLIBCXX_HAVE__SQRTF) && ! defined (_GLIBCXX_HAVE_SQRTF) +# define _GLIBCXX_HAVE_SQRTF 1 +# define sqrtf _sqrtf +#endif + +#if defined (_GLIBCXX_HAVE__SINHL) && ! defined (_GLIBCXX_HAVE_SINHL) +# define _GLIBCXX_HAVE_SINHL 1 +# define sinhl _sinhl +#endif + +#if defined (_GLIBCXX_HAVE__TANF) && ! defined (_GLIBCXX_HAVE_TANF) +# define _GLIBCXX_HAVE_TANF 1 +# define tanf _tanf +#endif + +#if defined (_GLIBCXX_HAVE__SQRTL) && ! defined (_GLIBCXX_HAVE_SQRTL) +# define _GLIBCXX_HAVE_SQRTL 1 +# define sqrtl _sqrtl +#endif + +#if defined (_GLIBCXX_HAVE__TANHF) && ! defined (_GLIBCXX_HAVE_TANHF) +# define _GLIBCXX_HAVE_TANHF 1 +# define tanhf _tanhf +#endif + +#if defined (_GLIBCXX_HAVE__TANL) && ! defined (_GLIBCXX_HAVE_TANL) +# define _GLIBCXX_HAVE_TANF 1 +# define tanf _tanf +#endif + +#if defined (_GLIBCXX_HAVE__STRTOF) && ! defined (_GLIBCXX_HAVE_STRTOF) +# define _GLIBCXX_HAVE_STRTOF 1 +# define strtof _strtof +#endif + +#if defined (_GLIBCXX_HAVE__TANHL) && ! defined (_GLIBCXX_HAVE_TANHL) +# define _GLIBCXX_HAVE_TANHL 1 +# define tanhl _tanhl +#endif + +#if defined (_GLIBCXX_HAVE__STRTOLD) && ! defined (_GLIBCXX_HAVE_STRTOLD) +# define _GLIBCXX_HAVE_STRTOLD 1 +# define strtold _strtold +#endif + +#if defined (_GLIBCXX_HAVE__SINCOS) && ! defined (_GLIBCXX_HAVE_SINCOS) +# define _GLIBCXX_HAVE_SINCOS 1 +# define sincos _sincos +#endif + +#if defined (_GLIBCXX_HAVE__SINCOSF) && ! defined (_GLIBCXX_HAVE_SINCOSF) +# define _GLIBCXX_HAVE_SINCOSF 1 +# define sincosf _sincosf +#endif + +#if defined (_GLIBCXX_HAVE__SINCOSL) && ! defined (_GLIBCXX_HAVE_SINCOSL) +# define _GLIBCXX_HAVE_SINCOSL 1 +# define sincosl _sincosl +#endif + +#if defined (_GLIBCXX_HAVE__FINITE) && ! defined (_GLIBCXX_HAVE_FINITE) +# define _GLIBCXX_HAVE_FINITE 1 +# define finite _finite +#endif + +#if defined (_GLIBCXX_HAVE__FINITEF) && ! defined (_GLIBCXX_HAVE_FINITEF) +# define _GLIBCXX_HAVE_FINITEF 1 +# define finitef _finitef +#endif + +#if defined (_GLIBCXX_HAVE__FINITEL) && ! defined (_GLIBCXX_HAVE_FINITEL) +# define _GLIBCXX_HAVE_FINITEL 1 +# define finitel _finitel +#endif + +#if defined (_GLIBCXX_HAVE__QFINITE) && ! defined (_GLIBCXX_HAVE_QFINITE) +# define _GLIBCXX_HAVE_QFINITE 1 +# define qfinite _qfinite +#endif + +#if defined (_GLIBCXX_HAVE__FPCLASS) && ! defined (_GLIBCXX_HAVE_FPCLASS) +# define _GLIBCXX_HAVE_FPCLASS 1 +# define fpclass _fpclass +#endif + +#if defined (_GLIBCXX_HAVE__QFPCLASS) && ! defined (_GLIBCXX_HAVE_QFPCLASS) +# define _GLIBCXX_HAVE_QFPCLASS 1 +# define qfpclass _qfpclass +#endif + +#endif // _CXXCONFIG_ diff --git a/gnu/lib/gcc40/libstdc++/ctype_base.h.patch b/gnu/lib/gcc40/libstdc++/ctype_base.h.patch new file mode 100644 index 0000000000..a336f913ae --- /dev/null +++ b/gnu/lib/gcc40/libstdc++/ctype_base.h.patch @@ -0,0 +1,32 @@ +$DragonFly: src/gnu/lib/gcc40/libstdc++/Attic/ctype_base.h.patch,v 1.1 2005/06/05 22:43:21 corecode Exp $ +Index: ctype_base.h +=================================================================== +RCS file: /cvs/src/contrib/gcc-3.4/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h,v +retrieving revision 1.3 +diff -u -r1.3 ctype_base.h +--- config/os/bsd/netbsd/ctype_base.h 2 Mar 2005 00:56:21 -0000 1.3 ++++ config/os/bsd/netbsd/ctype_base.h 7 Mar 2005 17:38:44 -0000 +@@ -43,16 +43,16 @@ + + // NB: Offsets into ctype::_M_table force a particular size + // on the mask type. Because of this, we don't use an enum. +- typedef unsigned char mask; ++ typedef uint16_t mask; + static const mask upper = _U; + static const mask lower = _L; +- static const mask alpha = _U | _L; +- static const mask digit = _N; +- static const mask xdigit = _N | _X; ++ static const mask alpha = _A; ++ static const mask digit = _D; ++ static const mask xdigit = _X; + static const mask space = _S; +- static const mask print = _P | _U | _L | _N | _B; +- static const mask graph = _P | _U | _L | _N; ++ static const mask print = _R; ++ static const mask graph = _G; + static const mask cntrl = _C; + static const mask punct = _P; +- static const mask alnum = _U | _L | _N; ++ static const mask alnum = _A | _D; + }; diff --git a/gnu/lib/gcc40/libstdc++/ctype_noninline.h.patch b/gnu/lib/gcc40/libstdc++/ctype_noninline.h.patch new file mode 100644 index 0000000000..07fda00198 --- /dev/null +++ b/gnu/lib/gcc40/libstdc++/ctype_noninline.h.patch @@ -0,0 +1,23 @@ +$DragonFly: src/gnu/lib/gcc40/libstdc++/Attic/ctype_noninline.h.patch,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +Index: ctype_noninline.h +=================================================================== +RCS file: /cvs/src/contrib/gcc-3.4/libstdc++-v3/config/os/bsd/netbsd/ctype_noninline.h,v +retrieving revision 1.3 +diff -u -r1.3 ctype_noninline.h +--- config/os/bsd/netbsd/ctype_noninline.h 2 Mar 2005 00:56:21 -0000 1.3 ++++ config/os/bsd/netbsd/ctype_noninline.h 7 Mar 2005 12:15:21 -0000 +@@ -33,11 +33,11 @@ + + // Information as gleaned from /usr/include/ctype.h + +- extern "C" const u_int8_t _C_ctype_[]; ++ extern "C" const __uint16_t __libc_ctype_[]; + + const ctype_base::mask* + ctype::classic_table() throw() +- { return _C_ctype_ + 1; } ++ { return __libc_ctype_ + 1; } + + ctype::ctype(__c_locale, const mask* __table, bool __del, + size_t __refs) diff --git a/gnu/lib/gcc40/libstdc++/os_defines.h.patch b/gnu/lib/gcc40/libstdc++/os_defines.h.patch new file mode 100644 index 0000000000..de72d04fa1 --- /dev/null +++ b/gnu/lib/gcc40/libstdc++/os_defines.h.patch @@ -0,0 +1,17 @@ +$DragonFly: src/gnu/lib/gcc40/libstdc++/Attic/os_defines.h.patch,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +Index: os_defines.h +=================================================================== +RCS file: /cvs/src/contrib/gcc-3.4/libstdc++-v3/config/os/bsd/netbsd/os_defines.h,v +retrieving revision 1.3 +diff -u -r1.3 os_defines.h +--- config/os/bsd/netbsd/os_defines.h 2 Mar 2005 00:56:21 -0000 1.3 ++++ config/os/bsd/netbsd/os_defines.h 9 Mar 2005 17:21:36 -0000 +@@ -33,6 +33,6 @@ + // System-specific #define, typedefs, corrections, etc, go here. This + // file will come before all others. + +-#define __ssize_t ssize_t ++#include + + #endif diff --git a/gnu/lib/gcc40/libsupc++/Makefile b/gnu/lib/gcc40/libsupc++/Makefile new file mode 100644 index 0000000000..daa37e1ba5 --- /dev/null +++ b/gnu/lib/gcc40/libsupc++/Makefile @@ -0,0 +1,29 @@ +# $DragonFly: src/gnu/lib/gcc40/libsupc++/Attic/Makefile,v 1.1 2005/06/05 22:43:21 corecode Exp $ + +.include "../Makefile.inc" + +.PATH: ${GCCDIR}/libstdc++-v3/libsupc++ + +CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H +CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections +CXXFLAGS+= -I${GCCDIR}/libstdc++-v3/libsupc++ +CXXFLAGS+= -I${GCCDIR}/libstdc++-v3/include/c_std +CXXFLAGS+= -I${STOPDIR}/cc_prep/c++ -I. + +INCS= exception new typeinfo cxxabi.h exception_defines.h +INCSDIR= ${INCLUDEDIR}/c++/4.0 + +LIB= supc++ + +SRCS= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc +SRCS+= eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc +SRCS+= eh_globals.cc eh_personality.cc eh_term_handler.cc eh_terminate.cc +SRCS+= eh_throw.cc eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc +SRCS+= new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc +SRCS+= tinfo2.cc vec.cc vterminate.cc +# from libiberty +SRCS+= cp-demangle.c + +.PATH: ${GCCDIR}/libiberty + +.include diff --git a/gnu/usr.bin/cc40/Makefile b/gnu/usr.bin/cc40/Makefile new file mode 100644 index 0000000000..47163b0843 --- /dev/null +++ b/gnu/usr.bin/cc40/Makefile @@ -0,0 +1,20 @@ +# $DragonFly: src/gnu/usr.bin/cc40/Attic/Makefile,v 1.1 2005/06/05 22:43:19 corecode Exp $ + +SUBDIR= cc_prep +SUBDIR+= libiberty +SUBDIR+= cc_tools libbackend libcpp cc1 cc doc +SUBDIR+= cpp +SUBDIR+= gcov +.if !defined(NO_CXX) +SUBDIR+= cc1plus c++ c++filt +.endif +#.if !defined(NO_FORTRAN) +#SUBDIR+= f771 g77 +#.endif +#.if !defined(NO_OBJC) +#SUBDIR+= cc1obj +#.endif + +.ORDER: ${SUBDIR} + +.include diff --git a/gnu/usr.bin/cc40/Makefile.inc b/gnu/usr.bin/cc40/Makefile.inc new file mode 100644 index 0000000000..d53309a445 --- /dev/null +++ b/gnu/usr.bin/cc40/Makefile.inc @@ -0,0 +1,40 @@ +# $DragonFly: src/gnu/usr.bin/cc40/Attic/Makefile.inc,v 1.1 2005/06/05 22:43:19 corecode Exp $ + +BINDIR?= /usr/libexec/gcc40 +.include "../Makefile.inc" + +GCCDIR= ${.CURDIR}/${TOP_PREFIX}/../../../../contrib/gcc-4.0 +OTOPDIR= ${.OBJDIR}/${TOP_PREFIX}/.. +STOPDIR= ${.CURDIR}/${TOP_PREFIX}/.. + +TOOLDIR= ${OTOPDIR}/cc_tools +SRC_TOOLDIR= ${STOPDIR}/cc_tools + +CFLAGS+= -I${OTOPDIR}/cc_prep -I${STOPDIR}/cc_prep +CFLAGS+= -I${GCCDIR}/gcc -I${GCCDIR}/gcc/config -I${GCCDIR}/include +CFLAGS+= -I${GCCDIR}/libcpp/include + +CFLAGS+= -DIN_GCC -DHAVE_CONFIG_H +CFLAGS+= -DPREFIX=\"${TOOLS_PREFIX}/usr\" +CFLAGS+= -DPREFIX1=\"${TOOLS_PREFIX}/usr\" +CFLAGS+= -DPREFIX2=\"${USRDATA_PREFIX}/usr\" + +.include "Makefile.tgt" + +.if ${TARGET_ARCH} != ${MACHINE_ARCH} +CFLAGS+= -DCROSS_COMPILE +.endif + +MD_FILE= ${GCCDIR}/gcc/config/${GCC_CPU}/${GCC_CPU}.md + +.if defined(GCC_LANG_DIR) +.PATH: ${GCCDIR}/${GCC_LANG_DIR} +.endif + +.if !defined(GCC_NO_PATH) +.PATH: ${OTOPDIR}/cc_prep ${STOPDIR}/cc_prep ${GCCDIR}/gcc +.endif + +.if !defined(GCC_NO_LIBERTY) +LDADD+= -L../libiberty -liberty +.endif diff --git a/gnu/usr.bin/cc40/Makefile.langs b/gnu/usr.bin/cc40/Makefile.langs new file mode 100644 index 0000000000..3fb149316a --- /dev/null +++ b/gnu/usr.bin/cc40/Makefile.langs @@ -0,0 +1,137 @@ +# $DragonFly: src/gnu/usr.bin/cc40/Attic/Makefile.langs,v 1.1 2005/06/05 22:43:19 corecode Exp $ + +.if !defined(NO_CXX) +gencheck_defs= cp/cp-tree.def +.endif +#.if !defined(NO_OBJC) +#gencheck_defs+= objc/objc-tree.def +#.endif + +optionsfiles= ${GCCDIR}/gcc/c.opt +optionsfiles+= ${GCCDIR}/gcc/common.opt +#.if !defined(NO_FORTRAN) +#optionsfiles+= ${GCCDIR}/gcc/f/lang.opt +#.endif + +options.c options.h: ${optionsfiles} ${STOPDIR}/Makefile.langs + /usr/bin/awk -f ${GCCDIR}/gcc/opt-gather.awk ${optionsfiles} > optionlist + /usr/bin/awk -f ${GCCDIR}/gcc/opt-functions.awk -f ${GCCDIR}/gcc/optc-gen.awk \ + -v header_name="options.h" < optionlist > options.c + /usr/bin/awk -f ${GCCDIR}/gcc/opt-functions.awk -f ${GCCDIR}/gcc/opth-gen.awk \ + < optionlist > options.h + +.if !defined(NO_CXX) +LANG_SPECS_FILES= cp/lang-specs.h +.endif +#.if !defined(NO_FORTRAN) +#LANG_SPECS_FILES+= f/lang-specs.h +#.endif +#.if !defined(NO_OBJC) +#LANG_SPECS_FILES+= objc/lang-specs.h +#.endif + +specs.h: + rm -f ${.TARGET} + touch ${.TARGET} +.for F in ${LANG_SPECS_FILES} + echo "#include \"${F}\"" >> ${.TARGET} +.endfor + +c-parse.y: c-parse.in + echo '/*WARNING: This file is automatically generated!*/' > ${.TARGET} + sed -e "/^@@ifobjc.*/,/^@@end_ifobjc.*/d" \ + -e "/^@@ifc.*/d" -e "/^@@end_ifc.*/d" \ + < ${GCCDIR}/gcc/c-parse.in >> ${.TARGET} + +objc-parse.y: c-parse.in + echo '/*WARNING: This file is automatically generated!*/' > ${.TARGET} + sed -e "/^@@ifc.*/,/^@@end_ifc.*/d" \ + -e "/^@@ifobjc.*/d" -e "/^@@end_ifobjc.*/d" \ + < ${GCCDIR}/gcc/c-parse.in >> ${.TARGET} + +CLEANFILES+= specs.h c-parse.y + +# this is directly from GCC's Makefile, beware evil +GTFILES= $(srcdir)/input.h $(srcdir)/coretypes.h \ + $(CPP_ID_DATA_H) $(host_xm_file_list) $(tm_file_list) $(HASHTAB_H) \ + $(SPLAY_TREE_H) $(srcdir)/bitmap.h $(srcdir)/coverage.c \ + $(srcdir)/function.h $(srcdir)/rtl.h $(srcdir)/optabs.h \ + $(srcdir)/tree.h $(srcdir)/libfuncs.h $(SYMTAB_H) $(srcdir)/real.h \ + $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \ + $(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \ + $(srcdir)/c-common.h $(srcdir)/c-tree.h $(srcdir)/reload.h \ + $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c \ + $(srcdir)/cgraph.c $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c \ + $(srcdir)/dwarf2asm.c $(srcdir)/dojump.c $(srcdir)/emit-rtl.c \ + $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ + $(srcdir)/function.c $(srcdir)/gcse.c $(srcdir)/integrate.c \ + $(srcdir)/lists.c $(srcdir)/optabs.c $(srcdir)/profile.c \ + $(srcdir)/regclass.c $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c \ + $(srcdir)/sdbout.c $(srcdir)/stor-layout.c $(srcdir)/stringpool.c \ + $(srcdir)/tree.c $(srcdir)/varasm.c $(srcdir)/tree-mudflap.c \ + $(srcdir)/tree-flow.h $(srcdir)/c-objc-common.c $(srcdir)/c-common.c \ + $(srcdir)/c-parse.in $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c \ + $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c $(srcdir)/tree-dfa.c \ + $(srcdir)/tree-ssa-propagate.c $(srcdir)/tree-iterator.c \ + $(srcdir)/gimplify.c $(srcdir)/tree-chrec.h $(srcdir)/tree-complex.c \ + $(srcdir)/tree-ssa-operands.h $(srcdir)/tree-ssa-operands.c \ + $(srcdir)/tree-profile.c $(srcdir)/rtl-profile.c \ + $(srcdir)/tree-nested.c \ + $(out_file) + +.if !defined(NO_CXX) +GTFILES+= $(srcdir)/cp/mangle.c $(srcdir)/cp/name-lookup.h \ + $(srcdir)/cp/name-lookup.c $(srcdir)/cp/cp-tree.h $(srcdir)/cp/decl.h \ + $(srcdir)/cp/call.c $(srcdir)/cp/decl.c $(srcdir)/cp/decl2.c \ + $(srcdir)/cp/pt.c $(srcdir)/cp/repo.c $(srcdir)/cp/semantics.c \ + $(srcdir)/cp/tree.c $(srcdir)/cp/parser.c $(srcdir)/cp/method.c \ + $(srcdir)/cp/typeck2.c $(srcdir)/c-common.c $(srcdir)/c-common.h \ + $(srcdir)/c-lex.c $(srcdir)/c-pragma.c $(srcdir)/cp/class.c +.endif + +#.if !defined(NO_FORTRAN) +#GTFILES+= $(srcdir)/f/com.c $(srcdir)/f/com.h $(srcdir)/f/ste.c $(srcdir)/f/where.h \ +# $(srcdir)/f/where.c $(srcdir)/f/lex.c +#.endif + +#.if !defined(NO_OBJC) +#GTFILES+= $(srcdir)/objc/objc-act.c $(srcdir)/objc/objc-act.h +#.endif + +# C +GTFILES+= $(srcdir)/c-lang.c $(srcdir)/c-parse.in $(srcdir)/c-tree.h \ + $(srcdir)/c-decl.c $(srcdir)/c-common.c $(srcdir)/c-common.h \ + $(srcdir)/c-pragma.c $(srcdir)/c-objc-common.c + +# C +GTFILES_FILES_LANGS= c c c c c c c c +GTFILES_FILES_FILES= $(srcdir)/c-lang.c $(srcdir)/c-parse.in \ + $(srcdir)/c-tree.h $(srcdir)/c-decl.c $(srcdir)/c-common.c \ + $(srcdir)/c-common.h $(srcdir)/c-pragma.c $(srcdir)/c-objc-common.c +GTFILES_LANG_DIR_NAMES= + +.if !defined(NO_CXX) +GTFILES_FILES_LANGS+= cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp +GTFILES_FILES_FILES+= $(srcdir)/cp/mangle.c $(srcdir)/cp/name-lookup.h \ + $(srcdir)/cp/name-lookup.c $(srcdir)/cp/cp-tree.h $(srcdir)/cp/decl.h \ + $(srcdir)/cp/call.c $(srcdir)/cp/decl.c $(srcdir)/cp/decl2.c \ + $(srcdir)/cp/pt.c $(srcdir)/cp/repo.c $(srcdir)/cp/semantics.c \ + $(srcdir)/cp/tree.c $(srcdir)/cp/parser.c $(srcdir)/cp/method.c \ + $(srcdir)/cp/typeck2.c $(srcdir)/c-common.c $(srcdir)/c-common.h \ + $(srcdir)/c-lex.c $(srcdir)/c-pragma.c $(srcdir)/cp/class.c +GTFILES_LANG_DIR_NAMES+= cp +.endif + +#.if !defined(NO_FORTRAN) +#GTFILES_FILES_LANGS+= f f f f f f +#GTFILES_FILES_FILES+= $(srcdir)/f/com.c $(srcdir)/f/com.h $(srcdir)/f/ste.c $(srcdir)/f/where.h \ +# $(srcdir)/f/where.c $(srcdir)/f/lex.c +#GTFILES_LANG_DIR_NAMES+= f +#.endif +# +#.if !defined(NO_OBJC) +#GTFILES_FILES_LANGS+= objc objc objc objc objc objc objc objc objc +#GTFILES_FILES_FILES+= $(srcdir)/objc/objc-act.h $(srcdir)/c-parse.in $(srcdir)/c-tree.h \ +# $(srcdir)/c-decl.c $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-common.h $(srcdir)/c-pragma.c $(srcdir)/objc/objc-act.c +#GTFILES_LANG_DIR_NAMES+= objc +#.endif diff --git a/gnu/usr.bin/cc40/Makefile.tgt b/gnu/usr.bin/cc40/Makefile.tgt new file mode 100644 index 0000000000..733171db84 --- /dev/null +++ b/gnu/usr.bin/cc40/Makefile.tgt @@ -0,0 +1,8 @@ +# $DragonFly: src/gnu/usr.bin/cc40/Attic/Makefile.tgt,v 1.1 2005/06/05 22:43:19 corecode Exp $ + +TARGET_ARCH?= ${MACHINE_ARCH} + +version= 4.0.0 +target= ${TARGET_ARCH}-just-dragonflybsd + +GCC_CPU?= i386 diff --git a/gnu/usr.bin/cc40/c++/Makefile b/gnu/usr.bin/cc40/c++/Makefile new file mode 100644 index 0000000000..fe6df621f7 --- /dev/null +++ b/gnu/usr.bin/cc40/c++/Makefile @@ -0,0 +1,22 @@ +# $DragonFly: src/gnu/usr.bin/cc40/c++/Attic/Makefile,v 1.1 2005/06/05 22:43:19 corecode Exp $ + +.include "../Makefile.inc" +.include "../cc_tools/Makefile.tools" +.include "../Makefile.langs" + +.PATH: ${GCCDIR}/gcc/cp + +PROG= c++ +LINKS= ${BINDIR}/c++ ${BINDIR}/g++ +LINKS+= ${BINDIR}/c++ ${BINDIR}/CC +MAN= g++40.1 + +SRCS= gcc.c g++spec.c intl.c prefix.c version_local.c + +SRCS+= insn-constants.h insn-flags.h specs.h options.h + +CFLAGS+= -I. +CFLAGS+= -DDEFAULT_TARGET_VERSION=\"${version}\" +CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"${target}\" + +.include diff --git a/gnu/usr.bin/cc40/c++/g++40.1 b/gnu/usr.bin/cc40/c++/g++40.1 new file mode 100644 index 0000000000..b5501ae8fc --- /dev/null +++ b/gnu/usr.bin/cc40/c++/g++40.1 @@ -0,0 +1,11855 @@ +.\" $DragonFly: src/gnu/usr.bin/cc40/c++/Attic/g++40.1,v 1.1 2005/06/05 22:43:19 corecode Exp $ +.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "GCC 1" +.TH GCC 1 "2005-04-21" "gcc-4.0.0" "GNU" +.SH "NAME" +gcc \- GNU project C and C++ compiler +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +gcc [\fB\-c\fR|\fB\-S\fR|\fB\-E\fR] [\fB\-std=\fR\fIstandard\fR] + [\fB\-g\fR] [\fB\-pg\fR] [\fB\-O\fR\fIlevel\fR] + [\fB\-W\fR\fIwarn\fR...] [\fB\-pedantic\fR] + [\fB\-I\fR\fIdir\fR...] [\fB\-L\fR\fIdir\fR...] + [\fB\-D\fR\fImacro\fR[=\fIdefn\fR]...] [\fB\-U\fR\fImacro\fR] + [\fB\-f\fR\fIoption\fR...] [\fB\-m\fR\fImachine-option\fR...] + [\fB\-o\fR \fIoutfile\fR] \fIinfile\fR... +.PP +Only the most useful options are listed here; see below for the +remainder. \fBg++\fR accepts mostly the same options as \fBgcc\fR. +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +When you invoke \s-1GCC\s0, it normally does preprocessing, compilation, +assembly and linking. The ``overall options'' allow you to stop this +process at an intermediate stage. For example, the \fB\-c\fR option +says not to run the linker. Then the output consists of object files +output by the assembler. +.PP +Other options are passed on to one stage of processing. Some options +control the preprocessor and others the compiler itself. Yet other +options control the assembler and linker; most of these are not +documented here, since you rarely need to use any of them. +.PP +Most of the command line options that you can use with \s-1GCC\s0 are useful +for C programs; when an option is only useful with another language +(usually \*(C+), the explanation says so explicitly. If the description +for a particular option does not mention a source language, you can use +that option with all supported languages. +.PP +The \fBgcc\fR program accepts options and file names as operands. Many +options have multi-letter names; therefore multiple single-letter options +may \fInot\fR be grouped: \fB\-dr\fR is very different from \fB\-d\ \-r\fR. +.PP +You can mix options and other arguments. For the most part, the order +you use doesn't matter. Order does matter when you use several options +of the same kind; for example, if you specify \fB\-L\fR more than once, +the directories are searched in the order specified. +.PP +Many options have long names starting with \fB\-f\fR or with +\&\fB\-W\fR\-\-\-for example, \fB\-fforce\-mem\fR, +\&\fB\-fstrength\-reduce\fR, \fB\-Wformat\fR and so on. Most of +these have both positive and negative forms; the negative form of +\&\fB\-ffoo\fR would be \fB\-fno\-foo\fR. This manual documents +only one of these two forms, whichever one is not the default. +.SH "OPTIONS" +.IX Header "OPTIONS" +.Sh "Option Summary" +.IX Subsection "Option Summary" +Here is a summary of all the options, grouped by type. Explanations are +in the following sections. +.IP "\fIOverall Options\fR" 4 +.IX Item "Overall Options" +\&\fB\-c \-S \-E \-o\fR \fIfile\fR \fB\-combine \-pipe \-pass\-exit\-codes +\&\-x\fR \fIlanguage\fR \fB\-v \-### \-\-help \-\-target\-help \-\-version\fR +.IP "\fIC Language Options\fR" 4 +.IX Item "C Language Options" +\&\fB\-ansi \-std=\fR\fIstandard\fR \fB\-aux\-info\fR \fIfilename\fR +\&\fB\-fno\-asm \-fno\-builtin \-fno\-builtin\-\fR\fIfunction\fR +\&\fB\-fhosted \-ffreestanding \-fms\-extensions +\&\-trigraphs \-no\-integrated\-cpp \-traditional \-traditional\-cpp +\&\-fallow\-single\-precision \-fcond\-mismatch +\&\-fsigned\-bitfields \-fsigned\-char +\&\-funsigned\-bitfields \-funsigned\-char\fR +.IP "\fI\*(C+ Language Options\fR" 4 +.IX Item " Language Options" +\&\fB\-fabi\-version=\fR\fIn\fR \fB\-fno\-access\-control \-fcheck\-new +\&\-fconserve\-space \-fno\-const\-strings +\&\-fno\-elide\-constructors +\&\-fno\-enforce\-eh\-specs +\&\-ffor\-scope \-fno\-for\-scope \-fno\-gnu\-keywords +\&\-fno\-implicit\-templates +\&\-fno\-implicit\-inline\-templates +\&\-fno\-implement\-inlines \-fms\-extensions +\&\-fno\-nonansi\-builtins \-fno\-operator\-names +\&\-fno\-optional\-diags \-fpermissive +\&\-frepo \-fno\-rtti \-fstats \-ftemplate\-depth\-\fR\fIn\fR +\&\fB\-fno\-threadsafe\-statics \-fuse\-cxa\-atexit \-fno\-weak \-nostdinc++ +\&\-fno\-default\-inline \-fvisibility\-inlines\-hidden +\&\-Wabi \-Wctor\-dtor\-privacy +\&\-Wnon\-virtual\-dtor \-Wreorder +\&\-Weffc++ \-Wno\-deprecated +\&\-Wno\-non\-template\-friend \-Wold\-style\-cast +\&\-Woverloaded\-virtual \-Wno\-pmf\-conversions +\&\-Wsign\-promo\fR +.IP "\fIObjective-C and Objective\-\*(C+ Language Options\fR" 4 +.IX Item "Objective-C and Objective- Language Options" +\&\fB\-fconstant\-string\-class=\fR\fIclass-name\fR +\&\fB\-fgnu\-runtime \-fnext\-runtime +\&\-fno\-nil\-receivers +\&\-fobjc\-exceptions +\&\-freplace\-objc\-classes +\&\-fzero\-link +\&\-gen\-decls +\&\-Wno\-protocol \-Wselector \-Wundeclared\-selector\fR +.IP "\fILanguage Independent Options\fR" 4 +.IX Item "Language Independent Options" +\&\fB\-fmessage\-length=\fR\fIn\fR +\&\fB\-fdiagnostics\-show\-location=\fR[\fBonce\fR|\fBevery-line\fR] +.IP "\fIWarning Options\fR" 4 +.IX Item "Warning Options" +\&\fB\-fsyntax\-only \-pedantic \-pedantic\-errors +\&\-w \-Wextra \-Wall \-Waggregate\-return +\&\-Wcast\-align \-Wcast\-qual \-Wchar\-subscripts \-Wcomment +\&\-Wconversion \-Wno\-deprecated\-declarations +\&\-Wdisabled\-optimization \-Wno\-div\-by\-zero \-Wno\-endif\-labels +\&\-Werror \-Werror\-implicit\-function\-declaration +\&\-Wfatal\-errors \-Wfloat\-equal \-Wformat \-Wformat=2 +\&\-Wno\-format\-extra\-args \-Wformat\-nonliteral +\&\-Wformat\-security \-Wformat\-y2k +\&\-Wimplicit \-Wimplicit\-function\-declaration \-Wimplicit\-int +\&\-Wimport \-Wno\-import \-Winit\-self \-Winline +\&\-Wno\-invalid\-offsetof \-Winvalid\-pch +\&\-Wlarger\-than\-\fR\fIlen\fR \fB\-Wlong\-long +\&\-Wmain \-Wmissing\-braces \-Wmissing\-field\-initializers +\&\-Wmissing\-format\-attribute \-Wmissing\-include\-dirs +\&\-Wmissing\-noreturn +\&\-Wno\-multichar \-Wnonnull \-Wpacked \-Wpadded +\&\-Wparentheses \-Wpointer\-arith \-Wredundant\-decls +\&\-Wreturn\-type \-Wsequence\-point \-Wshadow +\&\-Wsign\-compare \-Wstrict\-aliasing \-Wstrict\-aliasing=2 +\&\-Wswitch \-Wswitch\-default \-Wswitch\-enum +\&\-Wsystem\-headers \-Wtrigraphs \-Wundef \-Wuninitialized +\&\-Wunknown\-pragmas \-Wunreachable\-code +\&\-Wunused \-Wunused\-function \-Wunused\-label \-Wunused\-parameter +\&\-Wunused\-value \-Wunused\-variable \-Wwrite\-strings +\&\-Wvariadic\-macros\fR +.IP "\fIC\-only Warning Options\fR" 4 +.IX Item "C-only Warning Options" +\&\fB\-Wbad\-function\-cast \-Wmissing\-declarations +\&\-Wmissing\-prototypes \-Wnested\-externs \-Wold\-style\-definition +\&\-Wstrict\-prototypes \-Wtraditional +\&\-Wdeclaration\-after\-statement \-Wno\-pointer\-sign\fR +.IP "\fIDebugging Options\fR" 4 +.IX Item "Debugging Options" +\&\fB\-d\fR\fIletters\fR \fB\-dumpspecs \-dumpmachine \-dumpversion +\&\-fdump\-unnumbered \-fdump\-translation\-unit\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-class\-hierarchy\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-ipa\-all \-fdump\-ipa\-cgraph +\&\-fdump\-tree\-all +\&\-fdump\-tree\-original\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-optimized\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-inlined\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-cfg \-fdump\-tree\-vcg \-fdump\-tree\-alias +\&\-fdump\-tree\-ch +\&\-fdump\-tree\-ssa\fR[\fB\-\fR\fIn\fR] \fB\-fdump\-tree\-pre\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-ccp\fR[\fB\-\fR\fIn\fR] \fB\-fdump\-tree\-dce\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-gimple\fR[\fB\-raw\fR] \fB\-fdump\-tree\-mudflap\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-dom\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-dse\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-phiopt\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-forwprop\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-copyrename\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-nrv \-fdump\-tree\-vect +\&\-fdump\-tree\-sra\fR[\fB\-\fR\fIn\fR] +\&\fB\-fdump\-tree\-fre\fR[\fB\-\fR\fIn\fR] +\&\fB\-ftree\-vectorizer\-verbose=\fR\fIn\fR +\&\fB\-feliminate\-dwarf2\-dups \-feliminate\-unused\-debug\-types +\&\-feliminate\-unused\-debug\-symbols \-fmem\-report \-fprofile\-arcs \-ftree\-based\-profiling +\&\-frandom\-seed=\fR\fIstring\fR \fB\-fsched\-verbose=\fR\fIn\fR +\&\fB\-ftest\-coverage \-ftime\-report \-fvar\-tracking +\&\-g \-g\fR\fIlevel\fR \fB\-gcoff \-gdwarf\-2 +\&\-ggdb \-gstabs \-gstabs+ \-gvms \-gxcoff \-gxcoff+ +\&\-p \-pg \-print\-file\-name=\fR\fIlibrary\fR \fB\-print\-libgcc\-file\-name +\&\-print\-multi\-directory \-print\-multi\-lib +\&\-print\-prog\-name=\fR\fIprogram\fR \fB\-print\-search\-dirs \-Q +\&\-save\-temps \-time\fR +.IP "\fIOptimization Options\fR" 4 +.IX Item "Optimization Options" +\&\fB\-falign\-functions=\fR\fIn\fR \fB\-falign\-jumps=\fR\fIn\fR +\&\fB\-falign\-labels=\fR\fIn\fR \fB\-falign\-loops=\fR\fIn\fR +\&\fB\-fbounds\-check \-fmudflap \-fmudflapth \-fmudflapir +\&\-fbranch\-probabilities \-fprofile\-values \-fvpt \-fbranch\-target\-load\-optimize +\&\-fbranch\-target\-load\-optimize2 \-fbtr\-bb\-exclusive +\&\-fcaller\-saves \-fcprop\-registers \-fcse\-follow\-jumps +\&\-fcse\-skip\-blocks \-fcx\-limited\-range \-fdata\-sections +\&\-fdelayed\-branch \-fdelete\-null\-pointer\-checks +\&\-fexpensive\-optimizations \-ffast\-math \-ffloat\-store +\&\-fforce\-addr \-fforce\-mem \-ffunction\-sections +\&\-fgcse \-fgcse\-lm \-fgcse\-sm \-fgcse\-las \-fgcse\-after\-reload +\&\-floop\-optimize \-fcrossjumping \-fif\-conversion \-fif\-conversion2 +\&\-finline\-functions \-finline\-limit=\fR\fIn\fR \fB\-fkeep\-inline\-functions +\&\-fkeep\-static\-consts \-fmerge\-constants \-fmerge\-all\-constants +\&\-fmodulo\-sched \-fno\-branch\-count\-reg +\&\-fno\-default\-inline \-fno\-defer\-pop \-floop\-optimize2 \-fmove\-loop\-invariants +\&\-fno\-function\-cse \-fno\-guess\-branch\-probability +\&\-fno\-inline \-fno\-math\-errno \-fno\-peephole \-fno\-peephole2 +\&\-funsafe\-math\-optimizations \-ffinite\-math\-only +\&\-fno\-trapping\-math \-fno\-zero\-initialized\-in\-bss +\&\-fomit\-frame\-pointer \-foptimize\-register\-move +\&\-foptimize\-sibling\-calls \-fprefetch\-loop\-arrays +\&\-fprofile\-generate \-fprofile\-use +\&\-fregmove \-frename\-registers +\&\-freorder\-blocks \-freorder\-blocks\-and\-partition \-freorder\-functions +\&\-frerun\-cse\-after\-loop \-frerun\-loop\-opt +\&\-frounding\-math \-fschedule\-insns \-fschedule\-insns2 +\&\-fno\-sched\-interblock \-fno\-sched\-spec \-fsched\-spec\-load +\&\-fsched\-spec\-load\-dangerous +\&\-fsched\-stalled\-insns=\fR\fIn\fR \fB\-sched\-stalled\-insns\-dep=\fR\fIn\fR +\&\fB\-fsched2\-use\-superblocks +\&\-fsched2\-use\-traces \-freschedule\-modulo\-scheduled\-loops +\&\-fsignaling\-nans \-fsingle\-precision\-constant \-fspeculative\-prefetching +\&\-fstrength\-reduce \-fstrict\-aliasing \-ftracer \-fthread\-jumps +\&\-funroll\-all\-loops \-funroll\-loops \-fpeel\-loops +\&\-fsplit\-ivs\-in\-unroller \-funswitch\-loops +\&\-fvariable\-expansion\-in\-unroller +\&\-ftree\-pre \-ftree\-ccp \-ftree\-dce \-ftree\-loop\-optimize +\&\-ftree\-loop\-linear \-ftree\-loop\-im \-ftree\-loop\-ivcanon \-fivopts +\&\-ftree\-dominator\-opts \-ftree\-dse \-ftree\-copyrename +\&\-ftree\-ch \-ftree\-sra \-ftree\-ter \-ftree\-lrs \-ftree\-fre \-ftree\-vectorize +\&\-fweb +\&\-\-param\fR \fIname\fR\fB=\fR\fIvalue\fR +\&\fB\-O \-O0 \-O1 \-O2 \-O3 \-Os\fR +.IP "\fIPreprocessor Options\fR" 4 +.IX Item "Preprocessor Options" +\&\fB\-A\fR\fIquestion\fR\fB=\fR\fIanswer\fR +\&\fB\-A\-\fR\fIquestion\fR[\fB=\fR\fIanswer\fR] +\&\fB\-C \-dD \-dI \-dM \-dN +\&\-D\fR\fImacro\fR[\fB=\fR\fIdefn\fR] \fB\-E \-H +\&\-idirafter\fR \fIdir\fR +\&\fB\-include\fR \fIfile\fR \fB\-imacros\fR \fIfile\fR +\&\fB\-iprefix\fR \fIfile\fR \fB\-iwithprefix\fR \fIdir\fR +\&\fB\-iwithprefixbefore\fR \fIdir\fR \fB\-isystem\fR \fIdir\fR +\&\fB\-M \-MM \-MF \-MG \-MP \-MQ \-MT \-nostdinc +\&\-P \-fworking\-directory \-remap +\&\-trigraphs \-undef \-U\fR\fImacro\fR \fB\-Wp,\fR\fIoption\fR +\&\fB\-Xpreprocessor\fR \fIoption\fR +.IP "\fIAssembler Option\fR" 4 +.IX Item "Assembler Option" +\&\fB\-Wa,\fR\fIoption\fR \fB\-Xassembler\fR \fIoption\fR +.IP "\fILinker Options\fR" 4 +.IX Item "Linker Options" +\&\fIobject-file-name\fR \fB\-l\fR\fIlibrary\fR +\&\fB\-nostartfiles \-nodefaultlibs \-nostdlib \-pie +\&\-s \-static \-static\-libgcc \-shared \-shared\-libgcc \-symbolic +\&\-Wl,\fR\fIoption\fR \fB\-Xlinker\fR \fIoption\fR +\&\fB\-u\fR \fIsymbol\fR +.IP "\fIDirectory Options\fR" 4 +.IX Item "Directory Options" +\&\fB\-B\fR\fIprefix\fR \fB\-I\fR\fIdir\fR \fB\-iquote\fR\fIdir\fR \fB\-L\fR\fIdir\fR \fB\-specs=\fR\fIfile\fR \fB\-I\-\fR +.IP "\fITarget Options\fR" 4 +.IX Item "Target Options" +\&\fB\-V\fR \fIversion\fR \fB\-b\fR \fImachine\fR +.IP "\fIMachine Dependent Options\fR" 4 +.IX Item "Machine Dependent Options" +\&\fI\s-1ARC\s0 Options\fR +\&\fB\-EB \-EL +\&\-mmangle\-cpu \-mcpu=\fR\fIcpu\fR \fB\-mtext=\fR\fItext-section\fR +\&\fB\-mdata=\fR\fIdata-section\fR \fB\-mrodata=\fR\fIreadonly-data-section\fR +.Sp +\&\fI\s-1ARM\s0 Options\fR +\&\fB\-mapcs\-frame \-mno\-apcs\-frame +\&\-mabi=\fR\fIname\fR +\&\fB\-mapcs\-stack\-check \-mno\-apcs\-stack\-check +\&\-mapcs\-float \-mno\-apcs\-float +\&\-mapcs\-reentrant \-mno\-apcs\-reentrant +\&\-msched\-prolog \-mno\-sched\-prolog +\&\-mlittle\-endian \-mbig\-endian \-mwords\-little\-endian +\&\-mfloat\-abi=\fR\fIname\fR \fB\-msoft\-float \-mhard\-float \-mfpe +\&\-mthumb\-interwork \-mno\-thumb\-interwork +\&\-mcpu=\fR\fIname\fR \fB\-march=\fR\fIname\fR \fB\-mfpu=\fR\fIname\fR +\&\fB\-mstructure\-size\-boundary=\fR\fIn\fR +\&\fB\-mabort\-on\-noreturn +\&\-mlong\-calls \-mno\-long\-calls +\&\-msingle\-pic\-base \-mno\-single\-pic\-base +\&\-mpic\-register=\fR\fIreg\fR +\&\fB\-mnop\-fun\-dllimport +\&\-mcirrus\-fix\-invalid\-insns \-mno\-cirrus\-fix\-invalid\-insns +\&\-mpoke\-function\-name +\&\-mthumb \-marm +\&\-mtpcs\-frame \-mtpcs\-leaf\-frame +\&\-mcaller\-super\-interworking \-mcallee\-super\-interworking\fR +.Sp +\&\fI\s-1AVR\s0 Options\fR +\&\fB\-mmcu=\fR\fImcu\fR \fB\-msize \-minit\-stack=\fR\fIn\fR \fB\-mno\-interrupts +\&\-mcall\-prologues \-mno\-tablejump \-mtiny\-stack \-mint8\fR +.Sp +\&\fI\s-1CRIS\s0 Options\fR +\&\fB\-mcpu=\fR\fIcpu\fR \fB\-march=\fR\fIcpu\fR \fB\-mtune=\fR\fIcpu\fR +\&\fB\-mmax\-stack\-frame=\fR\fIn\fR \fB\-melinux\-stacksize=\fR\fIn\fR +\&\fB\-metrax4 \-metrax100 \-mpdebug \-mcc\-init \-mno\-side\-effects +\&\-mstack\-align \-mdata\-align \-mconst\-align +\&\-m32\-bit \-m16\-bit \-m8\-bit \-mno\-prologue\-epilogue \-mno\-gotplt +\&\-melf \-maout \-melinux \-mlinux \-sim \-sim2 +\&\-mmul\-bug\-workaround \-mno\-mul\-bug\-workaround\fR +.Sp +\&\fIDarwin Options\fR +\&\fB\-all_load \-allowable_client \-arch \-arch_errors_fatal +\&\-arch_only \-bind_at_load \-bundle \-bundle_loader +\&\-client_name \-compatibility_version \-current_version +\&\-dead_strip +\&\-dependency\-file \-dylib_file \-dylinker_install_name +\&\-dynamic \-dynamiclib \-exported_symbols_list +\&\-filelist \-flat_namespace \-force_cpusubtype_ALL +\&\-force_flat_namespace \-headerpad_max_install_names +\&\-image_base \-init \-install_name \-keep_private_externs +\&\-multi_module \-multiply_defined \-multiply_defined_unused +\&\-noall_load \-no_dead_strip_inits_and_terms +\&\-nofixprebinding \-nomultidefs \-noprebind \-noseglinkedit +\&\-pagezero_size \-prebind \-prebind_all_twolevel_modules +\&\-private_bundle \-read_only_relocs \-sectalign +\&\-sectobjectsymbols \-whyload \-seg1addr +\&\-sectcreate \-sectobjectsymbols \-sectorder +\&\-segaddr \-segs_read_only_addr \-segs_read_write_addr +\&\-seg_addr_table \-seg_addr_table_filename \-seglinkedit +\&\-segprot \-segs_read_only_addr \-segs_read_write_addr +\&\-single_module \-static \-sub_library \-sub_umbrella +\&\-twolevel_namespace \-umbrella \-undefined +\&\-unexported_symbols_list \-weak_reference_mismatches +\&\-whatsloaded \-F \-gused \-gfull \-mone\-byte\-bool\fR +.Sp +\&\fI\s-1DEC\s0 Alpha Options\fR +\&\fB\-mno\-fp\-regs \-msoft\-float \-malpha\-as \-mgas +\&\-mieee \-mieee\-with\-inexact \-mieee\-conformant +\&\-mfp\-trap\-mode=\fR\fImode\fR \fB\-mfp\-rounding\-mode=\fR\fImode\fR +\&\fB\-mtrap\-precision=\fR\fImode\fR \fB\-mbuild\-constants +\&\-mcpu=\fR\fIcpu-type\fR \fB\-mtune=\fR\fIcpu-type\fR +\&\fB\-mbwx \-mmax \-mfix \-mcix +\&\-mfloat\-vax \-mfloat\-ieee +\&\-mexplicit\-relocs \-msmall\-data \-mlarge\-data +\&\-msmall\-text \-mlarge\-text +\&\-mmemory\-latency=\fR\fItime\fR +.Sp +\&\fI\s-1DEC\s0 Alpha/VMS Options\fR +\&\fB\-mvms\-return\-codes\fR +.Sp +\&\fI\s-1FRV\s0 Options\fR +\&\fB\-mgpr\-32 \-mgpr\-64 \-mfpr\-32 \-mfpr\-64 +\&\-mhard\-float \-msoft\-float +\&\-malloc\-cc \-mfixed\-cc \-mdword \-mno\-dword +\&\-mdouble \-mno\-double +\&\-mmedia \-mno\-media \-mmuladd \-mno\-muladd +\&\-mfdpic \-minline\-plt \-mgprel\-ro \-multilib\-library\-pic +\&\-mlinked\-fp \-mlong\-calls \-malign\-labels +\&\-mlibrary\-pic \-macc\-4 \-macc\-8 +\&\-mpack \-mno\-pack \-mno\-eflags \-mcond\-move \-mno\-cond\-move +\&\-mscc \-mno\-scc \-mcond\-exec \-mno\-cond\-exec +\&\-mvliw\-branch \-mno\-vliw\-branch +\&\-mmulti\-cond\-exec \-mno\-multi\-cond\-exec \-mnested\-cond\-exec +\&\-mno\-nested\-cond\-exec \-mtomcat\-stats +\&\-mTLS \-mtls +\&\-mcpu=\fR\fIcpu\fR +.Sp +\&\fIH8/300 Options\fR +\&\fB\-mrelax \-mh \-ms \-mn \-mint32 \-malign\-300\fR +.Sp +\&\fI\s-1HPPA\s0 Options\fR +\&\fB\-march=\fR\fIarchitecture-type\fR +\&\fB\-mbig\-switch \-mdisable\-fpregs \-mdisable\-indexing +\&\-mfast\-indirect\-calls \-mgas \-mgnu\-ld \-mhp\-ld +\&\-mfixed\-range=\fR\fIregister-range\fR +\&\fB\-mjump\-in\-delay \-mlinker\-opt \-mlong\-calls +\&\-mlong\-load\-store \-mno\-big\-switch \-mno\-disable\-fpregs +\&\-mno\-disable\-indexing \-mno\-fast\-indirect\-calls \-mno\-gas +\&\-mno\-jump\-in\-delay \-mno\-long\-load\-store +\&\-mno\-portable\-runtime \-mno\-soft\-float +\&\-mno\-space\-regs \-msoft\-float \-mpa\-risc\-1\-0 +\&\-mpa\-risc\-1\-1 \-mpa\-risc\-2\-0 \-mportable\-runtime +\&\-mschedule=\fR\fIcpu-type\fR \fB\-mspace\-regs \-msio \-mwsio +\&\-munix=\fR\fIunix-std\fR \fB\-nolibdld \-static \-threads\fR +.Sp +\&\fIi386 and x86\-64 Options\fR +\&\fB\-mtune=\fR\fIcpu-type\fR \fB\-march=\fR\fIcpu-type\fR +\&\fB\-mfpmath=\fR\fIunit\fR +\&\fB\-masm=\fR\fIdialect\fR \fB\-mno\-fancy\-math\-387 +\&\-mno\-fp\-ret\-in\-387 \-msoft\-float \-msvr3\-shlib +\&\-mno\-wide\-multiply \-mrtd \-malign\-double +\&\-mpreferred\-stack\-boundary=\fR\fInum\fR +\&\fB\-mmmx \-msse \-msse2 \-msse3 \-m3dnow +\&\-mthreads \-mno\-align\-stringops \-minline\-all\-stringops +\&\-mpush\-args \-maccumulate\-outgoing\-args \-m128bit\-long\-double +\&\-m96bit\-long\-double \-mregparm=\fR\fInum\fR \fB\-momit\-leaf\-frame\-pointer +\&\-mno\-red\-zone \-mno\-tls\-direct\-seg\-refs +\&\-mcmodel=\fR\fIcode-model\fR +\&\fB\-m32 \-m64\fR +.Sp +\&\fI\s-1IA\-64\s0 Options\fR +\&\fB\-mbig\-endian \-mlittle\-endian \-mgnu\-as \-mgnu\-ld \-mno\-pic +\&\-mvolatile\-asm\-stop \-mregister\-names \-mno\-sdata +\&\-mconstant\-gp \-mauto\-pic \-minline\-float\-divide\-min\-latency +\&\-minline\-float\-divide\-max\-throughput +\&\-minline\-int\-divide\-min\-latency +\&\-minline\-int\-divide\-max\-throughput +\&\-minline\-sqrt\-min\-latency \-minline\-sqrt\-max\-throughput +\&\-mno\-dwarf2\-asm \-mearly\-stop\-bits +\&\-mfixed\-range=\fR\fIregister-range\fR \fB\-mtls\-size=\fR\fItls-size\fR +\&\fB\-mtune=\fR\fIcpu-type\fR \fB\-mt \-pthread \-milp32 \-mlp64\fR +.Sp +\&\fIM32R/D Options\fR +\&\fB\-m32r2 \-m32rx \-m32r +\&\-mdebug +\&\-malign\-loops \-mno\-align\-loops +\&\-missue\-rate=\fR\fInumber\fR +\&\fB\-mbranch\-cost=\fR\fInumber\fR +\&\fB\-mmodel=\fR\fIcode-size-model-type\fR +\&\fB\-msdata=\fR\fIsdata-type\fR +\&\fB\-mno\-flush\-func \-mflush\-func=\fR\fIname\fR +\&\fB\-mno\-flush\-trap \-mflush\-trap=\fR\fInumber\fR +\&\fB\-G\fR \fInum\fR +.Sp +\&\fIM680x0 Options\fR +\&\fB\-m68000 \-m68020 \-m68020\-40 \-m68020\-60 \-m68030 \-m68040 +\&\-m68060 \-mcpu32 \-m5200 \-m68881 \-mbitfield \-mc68000 \-mc68020 +\&\-mnobitfield \-mrtd \-mshort \-msoft\-float \-mpcrel +\&\-malign\-int \-mstrict\-align \-msep\-data \-mno\-sep\-data +\&\-mshared\-library\-id=n \-mid\-shared\-library \-mno\-id\-shared\-library\fR +.Sp +\&\fIM68hc1x Options\fR +\&\fB\-m6811 \-m6812 \-m68hc11 \-m68hc12 \-m68hcs12 +\&\-mauto\-incdec \-minmax \-mlong\-calls \-mshort +\&\-msoft\-reg\-count=\fR\fIcount\fR +.Sp +\&\fIMCore Options\fR +\&\fB\-mhardlit \-mno\-hardlit \-mdiv \-mno\-div \-mrelax\-immediates +\&\-mno\-relax\-immediates \-mwide\-bitfields \-mno\-wide\-bitfields +\&\-m4byte\-functions \-mno\-4byte\-functions \-mcallgraph\-data +\&\-mno\-callgraph\-data \-mslow\-bytes \-mno\-slow\-bytes \-mno\-lsim +\&\-mlittle\-endian \-mbig\-endian \-m210 \-m340 \-mstack\-increment\fR +.Sp +\&\fI\s-1MIPS\s0 Options\fR +\&\fB\-EL \-EB \-march=\fR\fIarch\fR \fB\-mtune=\fR\fIarch\fR +\&\fB\-mips1 \-mips2 \-mips3 \-mips4 \-mips32 \-mips32r2 \-mips64 +\&\-mips16 \-mno\-mips16 \-mabi=\fR\fIabi\fR \fB\-mabicalls \-mno\-abicalls +\&\-mxgot \-mno\-xgot \-mgp32 \-mgp64 \-mfp32 \-mfp64 +\&\-mhard\-float \-msoft\-float \-msingle\-float \-mdouble\-float +\&\-mpaired\-single \-mips3d +\&\-mint64 \-mlong64 \-mlong32 \-msym32 \-mno\-sym32 +\&\-G\fR\fInum\fR \fB\-membedded\-data \-mno\-embedded\-data +\&\-muninit\-const\-in\-rodata \-mno\-uninit\-const\-in\-rodata +\&\-msplit\-addresses \-mno\-split\-addresses +\&\-mexplicit\-relocs \-mno\-explicit\-relocs +\&\-mcheck\-zero\-division \-mno\-check\-zero\-division +\&\-mdivide\-traps \-mdivide\-breaks +\&\-mmemcpy \-mno\-memcpy \-mlong\-calls \-mno\-long\-calls +\&\-mmad \-mno\-mad \-mfused\-madd \-mno\-fused\-madd \-nocpp +\&\-mfix\-r4000 \-mno\-fix\-r4000 \-mfix\-r4400 \-mno\-fix\-r4400 +\&\-mfix\-vr4120 \-mno\-fix\-vr4120 \-mfix\-vr4130 +\&\-mfix\-sb1 \-mno\-fix\-sb1 +\&\-mflush\-func=\fR\fIfunc\fR \fB\-mno\-flush\-func +\&\-mbranch\-likely \-mno\-branch\-likely +\&\-mfp\-exceptions \-mno\-fp\-exceptions +\&\-mvr4130\-align \-mno\-vr4130\-align\fR +.Sp +\&\fI\s-1MMIX\s0 Options\fR +\&\fB\-mlibfuncs \-mno\-libfuncs \-mepsilon \-mno\-epsilon \-mabi=gnu +\&\-mabi=mmixware \-mzero\-extend \-mknuthdiv \-mtoplevel\-symbols +\&\-melf \-mbranch\-predict \-mno\-branch\-predict \-mbase\-addresses +\&\-mno\-base\-addresses \-msingle\-exit \-mno\-single\-exit\fR +.Sp +\&\fI\s-1MN10300\s0 Options\fR +\&\fB\-mmult\-bug \-mno\-mult\-bug +\&\-mam33 \-mno\-am33 +\&\-mam33\-2 \-mno\-am33\-2 +\&\-mno\-crt0 \-mrelax\fR +.Sp +\&\fI\s-1NS32K\s0 Options\fR +\&\fB\-m32032 \-m32332 \-m32532 \-m32081 \-m32381 +\&\-mmult\-add \-mnomult\-add \-msoft\-float \-mrtd \-mnortd +\&\-mregparam \-mnoregparam \-msb \-mnosb +\&\-mbitfield \-mnobitfield \-mhimem \-mnohimem\fR +.Sp +\&\fI\s-1PDP\-11\s0 Options\fR +\&\fB\-mfpu \-msoft\-float \-mac0 \-mno\-ac0 \-m40 \-m45 \-m10 +\&\-mbcopy \-mbcopy\-builtin \-mint32 \-mno\-int16 +\&\-mint16 \-mno\-int32 \-mfloat32 \-mno\-float64 +\&\-mfloat64 \-mno\-float32 \-mabshi \-mno\-abshi +\&\-mbranch\-expensive \-mbranch\-cheap +\&\-msplit \-mno\-split \-munix\-asm \-mdec\-asm\fR +.Sp +\&\fIPowerPC Options\fR +See \s-1RS/6000\s0 and PowerPC Options. +.Sp +\&\fI\s-1RS/6000\s0 and PowerPC Options\fR +\&\fB\-mcpu=\fR\fIcpu-type\fR +\&\fB\-mtune=\fR\fIcpu-type\fR +\&\fB\-mpower \-mno\-power \-mpower2 \-mno\-power2 +\&\-mpowerpc \-mpowerpc64 \-mno\-powerpc +\&\-maltivec \-mno\-altivec +\&\-mpowerpc\-gpopt \-mno\-powerpc\-gpopt +\&\-mpowerpc\-gfxopt \-mno\-powerpc\-gfxopt +\&\-mnew\-mnemonics \-mold\-mnemonics +\&\-mfull\-toc \-mminimal\-toc \-mno\-fp\-in\-toc \-mno\-sum\-in\-toc +\&\-m64 \-m32 \-mxl\-compat \-mno\-xl\-compat \-mpe +\&\-malign\-power \-malign\-natural +\&\-msoft\-float \-mhard\-float \-mmultiple \-mno\-multiple +\&\-mstring \-mno\-string \-mupdate \-mno\-update +\&\-mfused\-madd \-mno\-fused\-madd \-mbit\-align \-mno\-bit\-align +\&\-mstrict\-align \-mno\-strict\-align \-mrelocatable +\&\-mno\-relocatable \-mrelocatable\-lib \-mno\-relocatable\-lib +\&\-mtoc \-mno\-toc \-mlittle \-mlittle\-endian \-mbig \-mbig\-endian +\&\-mdynamic\-no\-pic +\&\-mprioritize\-restricted\-insns=\fR\fIpriority\fR +\&\fB\-msched\-costly\-dep=\fR\fIdependence_type\fR +\&\fB\-minsert\-sched\-nops=\fR\fIscheme\fR +\&\fB\-mcall\-sysv \-mcall\-netbsd +\&\-maix\-struct\-return \-msvr4\-struct\-return +\&\-mabi=altivec \-mabi=no\-altivec +\&\-mabi=spe \-mabi=no\-spe +\&\-misel=yes \-misel=no +\&\-mspe=yes \-mspe=no +\&\-mfloat\-gprs=yes \-mfloat\-gprs=no \-mfloat\-gprs=single \-mfloat\-gprs=double +\&\-mprototype \-mno\-prototype +\&\-msim \-mmvme \-mads \-myellowknife \-memb \-msdata +\&\-msdata=\fR\fIopt\fR \fB\-mvxworks \-mwindiss \-G\fR \fInum\fR \fB\-pthread\fR +.Sp +\&\fIS/390 and zSeries Options\fR +\&\fB\-mtune=\fR\fIcpu-type\fR \fB\-march=\fR\fIcpu-type\fR +\&\fB\-mhard\-float \-msoft\-float \-mbackchain \-mno\-backchain +\&\-mpacked\-stack \-mno\-packed\-stack +\&\-msmall\-exec \-mno\-small\-exec \-mmvcle \-mno\-mvcle +\&\-m64 \-m31 \-mdebug \-mno\-debug \-mesa \-mzarch +\&\-mtpf\-trace \-mno\-tpf\-trace \-mfused\-madd \-mno\-fused\-madd +\&\-mwarn\-framesize \-mwarn\-dynamicstack \-mstack\-size \-mstack\-guard\fR +.Sp +\&\fI\s-1SH\s0 Options\fR +\&\fB\-m1 \-m2 \-m2e \-m3 \-m3e +\&\-m4\-nofpu \-m4\-single\-only \-m4\-single \-m4 +\&\-m4a\-nofpu \-m4a\-single\-only \-m4a\-single \-m4a \-m4al +\&\-m5\-64media \-m5\-64media\-nofpu +\&\-m5\-32media \-m5\-32media\-nofpu +\&\-m5\-compact \-m5\-compact\-nofpu +\&\-mb \-ml \-mdalign \-mrelax +\&\-mbigtable \-mfmovd \-mhitachi \-mrenesas \-mno\-renesas \-mnomacsave +\&\-mieee \-misize \-mpadstruct \-mspace +\&\-mprefergot \-musermode\fR +.Sp +\&\fI\s-1SPARC\s0 Options\fR +\&\fB\-mcpu=\fR\fIcpu-type\fR +\&\fB\-mtune=\fR\fIcpu-type\fR +\&\fB\-mcmodel=\fR\fIcode-model\fR +\&\fB\-m32 \-m64 \-mapp\-regs \-mno\-app\-regs +\&\-mfaster\-structs \-mno\-faster\-structs +\&\-mfpu \-mno\-fpu \-mhard\-float \-msoft\-float +\&\-mhard\-quad\-float \-msoft\-quad\-float +\&\-mimpure\-text \-mno\-impure\-text \-mlittle\-endian +\&\-mstack\-bias \-mno\-stack\-bias +\&\-munaligned\-doubles \-mno\-unaligned\-doubles +\&\-mv8plus \-mno\-v8plus \-mvis \-mno\-vis +\&\-threads \-pthreads\fR +.Sp +\&\fISystem V Options\fR +\&\fB\-Qy \-Qn \-YP,\fR\fIpaths\fR \fB\-Ym,\fR\fIdir\fR +.Sp +\&\fITMS320C3x/C4x Options\fR +\&\fB\-mcpu=\fR\fIcpu\fR \fB\-mbig \-msmall \-mregparm \-mmemparm +\&\-mfast\-fix \-mmpyi \-mbk \-mti \-mdp\-isr\-reload +\&\-mrpts=\fR\fIcount\fR \fB\-mrptb \-mdb \-mloop\-unsigned +\&\-mparallel\-insns \-mparallel\-mpy \-mpreserve\-float\fR +.Sp +\&\fIV850 Options\fR +\&\fB\-mlong\-calls \-mno\-long\-calls \-mep \-mno\-ep +\&\-mprolog\-function \-mno\-prolog\-function \-mspace +\&\-mtda=\fR\fIn\fR \fB\-msda=\fR\fIn\fR \fB\-mzda=\fR\fIn\fR +\&\fB\-mapp\-regs \-mno\-app\-regs +\&\-mdisable\-callt \-mno\-disable\-callt +\&\-mv850e1 +\&\-mv850e +\&\-mv850 \-mbig\-switch\fR +.Sp +\&\fI\s-1VAX\s0 Options\fR +\&\fB\-mg \-mgnu \-munix\fR +.Sp +\&\fIx86\-64 Options\fR +See i386 and x86\-64 Options. +.Sp +\&\fIXstormy16 Options\fR +\&\fB\-msim\fR +.Sp +\&\fIXtensa Options\fR +\&\fB\-mconst16 \-mno\-const16 +\&\-mfused\-madd \-mno\-fused\-madd +\&\-mtext\-section\-literals \-mno\-text\-section\-literals +\&\-mtarget\-align \-mno\-target\-align +\&\-mlongcalls \-mno\-longcalls\fR +.Sp +\&\fIzSeries Options\fR +See S/390 and zSeries Options. +.IP "\fICode Generation Options\fR" 4 +.IX Item "Code Generation Options" +\&\fB\-fcall\-saved\-\fR\fIreg\fR \fB\-fcall\-used\-\fR\fIreg\fR +\&\fB\-ffixed\-\fR\fIreg\fR \fB\-fexceptions +\&\-fnon\-call\-exceptions \-funwind\-tables +\&\-fasynchronous\-unwind\-tables +\&\-finhibit\-size\-directive \-finstrument\-functions +\&\-fno\-common \-fno\-ident +\&\-fpcc\-struct\-return \-fpic \-fPIC \-fpie \-fPIE +\&\-freg\-struct\-return \-fshared\-data \-fshort\-enums +\&\-fshort\-double \-fshort\-wchar +\&\-fverbose\-asm \-fpack\-struct[=\fR\fIn\fR\fB] \-fstack\-check +\&\-fstack\-limit\-register=\fR\fIreg\fR \fB\-fstack\-limit\-symbol=\fR\fIsym\fR +\&\fB\-fargument\-alias \-fargument\-noalias +\&\-fargument\-noalias\-global \-fleading\-underscore +\&\-ftls\-model=\fR\fImodel\fR +\&\fB\-ftrapv \-fwrapv \-fbounds\-check +\&\-fvisibility\fR +.Sh "Options Controlling the Kind of Output" +.IX Subsection "Options Controlling the Kind of Output" +Compilation can involve up to four stages: preprocessing, compilation +proper, assembly and linking, always in that order. \s-1GCC\s0 is capable of +preprocessing and compiling several files either into several +assembler input files, or into one assembler input file; then each +assembler input file produces an object file, and linking combines all +the object files (those newly compiled, and those specified as input) +into an executable file. +.PP +For any given input file, the file name suffix determines what kind of +compilation is done: +.IP "\fIfile\fR\fB.c\fR" 4 +.IX Item "file.c" +C source code which must be preprocessed. +.IP "\fIfile\fR\fB.i\fR" 4 +.IX Item "file.i" +C source code which should not be preprocessed. +.IP "\fIfile\fR\fB.ii\fR" 4 +.IX Item "file.ii" +\&\*(C+ source code which should not be preprocessed. +.IP "\fIfile\fR\fB.m\fR" 4 +.IX Item "file.m" +Objective-C source code. Note that you must link with the \fIlibobjc\fR +library to make an Objective-C program work. +.IP "\fIfile\fR\fB.mi\fR" 4 +.IX Item "file.mi" +Objective-C source code which should not be preprocessed. +.IP "\fIfile\fR\fB.mm\fR" 4 +.IX Item "file.mm" +.PD 0 +.IP "\fIfile\fR\fB.M\fR" 4 +.IX Item "file.M" +.PD +Objective\-\*(C+ source code. Note that you must link with the \fIlibobjc\fR +library to make an Objective\-\*(C+ program work. Note that \fB.M\fR refers +to a literal capital M. +.IP "\fIfile\fR\fB.mii\fR" 4 +.IX Item "file.mii" +Objective\-\*(C+ source code which should not be preprocessed. +.IP "\fIfile\fR\fB.h\fR" 4 +.IX Item "file.h" +C, \*(C+, Objective-C or Objective\-\*(C+ header file to be turned into a +precompiled header. +.IP "\fIfile\fR\fB.cc\fR" 4 +.IX Item "file.cc" +.PD 0 +.IP "\fIfile\fR\fB.cp\fR" 4 +.IX Item "file.cp" +.IP "\fIfile\fR\fB.cxx\fR" 4 +.IX Item "file.cxx" +.IP "\fIfile\fR\fB.cpp\fR" 4 +.IX Item "file.cpp" +.IP "\fIfile\fR\fB.CPP\fR" 4 +.IX Item "file.CPP" +.IP "\fIfile\fR\fB.c++\fR" 4 +.IX Item "file.c++" +.IP "\fIfile\fR\fB.C\fR" 4 +.IX Item "file.C" +.PD +\&\*(C+ source code which must be preprocessed. Note that in \fB.cxx\fR, +the last two letters must both be literally \fBx\fR. Likewise, +\&\fB.C\fR refers to a literal capital C. +.IP "\fIfile\fR\fB.hh\fR" 4 +.IX Item "file.hh" +.PD 0 +.IP "\fIfile\fR\fB.H\fR" 4 +.IX Item "file.H" +.PD +\&\*(C+ header file to be turned into a precompiled header. +.IP "\fIfile\fR\fB.f\fR" 4 +.IX Item "file.f" +.PD 0 +.IP "\fIfile\fR\fB.for\fR" 4 +.IX Item "file.for" +.IP "\fIfile\fR\fB.FOR\fR" 4 +.IX Item "file.FOR" +.PD +Fortran source code which should not be preprocessed. +.IP "\fIfile\fR\fB.F\fR" 4 +.IX Item "file.F" +.PD 0 +.IP "\fIfile\fR\fB.fpp\fR" 4 +.IX Item "file.fpp" +.IP "\fIfile\fR\fB.FPP\fR" 4 +.IX Item "file.FPP" +.PD +Fortran source code which must be preprocessed (with the traditional +preprocessor). +.IP "\fIfile\fR\fB.r\fR" 4 +.IX Item "file.r" +Fortran source code which must be preprocessed with a \s-1RATFOR\s0 +preprocessor (not included with \s-1GCC\s0). +.IP "\fIfile\fR\fB.f90\fR" 4 +.IX Item "file.f90" +.PD 0 +.IP "\fIfile\fR\fB.f95\fR" 4 +.IX Item "file.f95" +.PD +Fortran 90/95 source code which should not be preprocessed. +.IP "\fIfile\fR\fB.ads\fR" 4 +.IX Item "file.ads" +Ada source code file which contains a library unit declaration (a +declaration of a package, subprogram, or generic, or a generic +instantiation), or a library unit renaming declaration (a package, +generic, or subprogram renaming declaration). Such files are also +called \fIspecs\fR. +.IP "\fIfile\fR\fB.adb\fR" 4 +.IX Item "file.adb" +Ada source code file containing a library unit body (a subprogram or +package body). Such files are also called \fIbodies\fR. +.IP "\fIfile\fR\fB.s\fR" 4 +.IX Item "file.s" +Assembler code. +.IP "\fIfile\fR\fB.S\fR" 4 +.IX Item "file.S" +Assembler code which must be preprocessed. +.IP "\fIother\fR" 4 +.IX Item "other" +An object file to be fed straight into linking. +Any file name with no recognized suffix is treated this way. +.PP +You can specify the input language explicitly with the \fB\-x\fR option: +.IP "\fB\-x\fR \fIlanguage\fR" 4 +.IX Item "-x language" +Specify explicitly the \fIlanguage\fR for the following input files +(rather than letting the compiler choose a default based on the file +name suffix). This option applies to all following input files until +the next \fB\-x\fR option. Possible values for \fIlanguage\fR are: +.Sp +.Vb 10 +\& c c-header c-cpp-output +\& c++ c++-header c++-cpp-output +\& objective-c objective-c-header objective-c-cpp-output +\& objective-c++ objective-c++-header objective-c++-cpp-output +\& assembler assembler-with-cpp +\& ada +\& f77 f77-cpp-input ratfor +\& f95 +\& java +\& treelang +.Ve +.IP "\fB\-x none\fR" 4 +.IX Item "-x none" +Turn off any specification of a language, so that subsequent files are +handled according to their file name suffixes (as they are if \fB\-x\fR +has not been used at all). +.IP "\fB\-pass\-exit\-codes\fR" 4 +.IX Item "-pass-exit-codes" +Normally the \fBgcc\fR program will exit with the code of 1 if any +phase of the compiler returns a non-success return code. If you specify +\&\fB\-pass\-exit\-codes\fR, the \fBgcc\fR program will instead return with +numerically highest error produced by any phase that returned an error +indication. +.PP +If you only want some of the stages of compilation, you can use +\&\fB\-x\fR (or filename suffixes) to tell \fBgcc\fR where to start, and +one of the options \fB\-c\fR, \fB\-S\fR, or \fB\-E\fR to say where +\&\fBgcc\fR is to stop. Note that some combinations (for example, +\&\fB\-x cpp-output \-E\fR) instruct \fBgcc\fR to do nothing at all. +.IP "\fB\-c\fR" 4 +.IX Item "-c" +Compile or assemble the source files, but do not link. The linking +stage simply is not done. The ultimate output is in the form of an +object file for each source file. +.Sp +By default, the object file name for a source file is made by replacing +the suffix \fB.c\fR, \fB.i\fR, \fB.s\fR, etc., with \fB.o\fR. +.Sp +Unrecognized input files, not requiring compilation or assembly, are +ignored. +.IP "\fB\-S\fR" 4 +.IX Item "-S" +Stop after the stage of compilation proper; do not assemble. The output +is in the form of an assembler code file for each non-assembler input +file specified. +.Sp +By default, the assembler file name for a source file is made by +replacing the suffix \fB.c\fR, \fB.i\fR, etc., with \fB.s\fR. +.Sp +Input files that don't require compilation are ignored. +.IP "\fB\-E\fR" 4 +.IX Item "-E" +Stop after the preprocessing stage; do not run the compiler proper. The +output is in the form of preprocessed source code, which is sent to the +standard output. +.Sp +Input files which don't require preprocessing are ignored. +.IP "\fB\-o\fR \fIfile\fR" 4 +.IX Item "-o file" +Place output in file \fIfile\fR. This applies regardless to whatever +sort of output is being produced, whether it be an executable file, +an object file, an assembler file or preprocessed C code. +.Sp +If \fB\-o\fR is not specified, the default is to put an executable +file in \fIa.out\fR, the object file for +\&\fI\fIsource\fI.\fIsuffix\fI\fR in \fI\fIsource\fI.o\fR, its +assembler file in \fI\fIsource\fI.s\fR, a precompiled header file in +\&\fI\fIsource\fI.\fIsuffix\fI.gch\fR, and all preprocessed C source on +standard output. +.IP "\fB\-v\fR" 4 +.IX Item "-v" +Print (on standard error output) the commands executed to run the stages +of compilation. Also print the version number of the compiler driver +program and of the preprocessor and the compiler proper. +.IP "\fB\-###\fR" 4 +.IX Item "-###" +Like \fB\-v\fR except the commands are not executed and all command +arguments are quoted. This is useful for shell scripts to capture the +driver-generated command lines. +.IP "\fB\-pipe\fR" 4 +.IX Item "-pipe" +Use pipes rather than temporary files for communication between the +various stages of compilation. This fails to work on some systems where +the assembler is unable to read from a pipe; but the \s-1GNU\s0 assembler has +no trouble. +.IP "\fB\-combine\fR" 4 +.IX Item "-combine" +If you are compiling multiple source files, this option tells the driver +to pass all the source files to the compiler at once (for those +languages for which the compiler can handle this). This will allow +intermodule analysis (\s-1IMA\s0) to be performed by the compiler. Currently the only +language for which this is supported is C. If you pass source files for +multiple languages to the driver, using this option, the driver will invoke +the compiler(s) that support \s-1IMA\s0 once each, passing each compiler all the +source files appropriate for it. For those languages that do not support +\&\s-1IMA\s0 this option will be ignored, and the compiler will be invoked once for +each source file in that language. If you use this option in conjunction +with \fB\-save\-temps\fR, the compiler will generate multiple +pre-processed files +(one for each source file), but only one (combined) \fI.o\fR or +\&\fI.s\fR file. +.IP "\fB\-\-help\fR" 4 +.IX Item "--help" +Print (on the standard output) a description of the command line options +understood by \fBgcc\fR. If the \fB\-v\fR option is also specified +then \fB\-\-help\fR will also be passed on to the various processes +invoked by \fBgcc\fR, so that they can display the command line options +they accept. If the \fB\-Wextra\fR option is also specified then command +line options which have no documentation associated with them will also +be displayed. +.IP "\fB\-\-target\-help\fR" 4 +.IX Item "--target-help" +Print (on the standard output) a description of target specific command +line options for each tool. +.IP "\fB\-\-version\fR" 4 +.IX Item "--version" +Display the version number and copyrights of the invoked \s-1GCC\s0. +.Sh "Compiling \*(C+ Programs" +.IX Subsection "Compiling Programs" +\&\*(C+ source files conventionally use one of the suffixes \fB.C\fR, +\&\fB.cc\fR, \fB.cpp\fR, \fB.CPP\fR, \fB.c++\fR, \fB.cp\fR, or +\&\fB.cxx\fR; \*(C+ header files often use \fB.hh\fR or \fB.H\fR; and +preprocessed \*(C+ files use the suffix \fB.ii\fR. \s-1GCC\s0 recognizes +files with these names and compiles them as \*(C+ programs even if you +call the compiler the same way as for compiling C programs (usually +with the name \fBgcc\fR). +.PP +However, \*(C+ programs often require class libraries as well as a +compiler that understands the \*(C+ language\-\-\-and under some +circumstances, you might want to compile programs or header files from +standard input, or otherwise without a suffix that flags them as \*(C+ +programs. You might also like to precompile a C header file with a +\&\fB.h\fR extension to be used in \*(C+ compilations. \fBg++\fR is a +program that calls \s-1GCC\s0 with the default language set to \*(C+, and +automatically specifies linking against the \*(C+ library. On many +systems, \fBg++\fR is also installed with the name \fBc++\fR. +.PP +When you compile \*(C+ programs, you may specify many of the same +command-line options that you use for compiling programs in any +language; or command-line options meaningful for C and related +languages; or options that are meaningful only for \*(C+ programs. +.Sh "Options Controlling C Dialect" +.IX Subsection "Options Controlling C Dialect" +The following options control the dialect of C (or languages derived +from C, such as \*(C+, Objective-C and Objective\-\*(C+) that the compiler +accepts: +.IP "\fB\-ansi\fR" 4 +.IX Item "-ansi" +In C mode, support all \s-1ISO\s0 C90 programs. In \*(C+ mode, +remove \s-1GNU\s0 extensions that conflict with \s-1ISO\s0 \*(C+. +.Sp +This turns off certain features of \s-1GCC\s0 that are incompatible with \s-1ISO\s0 +C90 (when compiling C code), or of standard \*(C+ (when compiling \*(C+ code), +such as the \f(CW\*(C`asm\*(C'\fR and \f(CW\*(C`typeof\*(C'\fR keywords, and +predefined macros such as \f(CW\*(C`unix\*(C'\fR and \f(CW\*(C`vax\*(C'\fR that identify the +type of system you are using. It also enables the undesirable and +rarely used \s-1ISO\s0 trigraph feature. For the C compiler, +it disables recognition of \*(C+ style \fB//\fR comments as well as +the \f(CW\*(C`inline\*(C'\fR keyword. +.Sp +The alternate keywords \f(CW\*(C`_\|_asm_\|_\*(C'\fR, \f(CW\*(C`_\|_extension_\|_\*(C'\fR, +\&\f(CW\*(C`_\|_inline_\|_\*(C'\fR and \f(CW\*(C`_\|_typeof_\|_\*(C'\fR continue to work despite +\&\fB\-ansi\fR. You would not want to use them in an \s-1ISO\s0 C program, of +course, but it is useful to put them in header files that might be included +in compilations done with \fB\-ansi\fR. Alternate predefined macros +such as \f(CW\*(C`_\|_unix_\|_\*(C'\fR and \f(CW\*(C`_\|_vax_\|_\*(C'\fR are also available, with or +without \fB\-ansi\fR. +.Sp +The \fB\-ansi\fR option does not cause non-ISO programs to be +rejected gratuitously. For that, \fB\-pedantic\fR is required in +addition to \fB\-ansi\fR. +.Sp +The macro \f(CW\*(C`_\|_STRICT_ANSI_\|_\*(C'\fR is predefined when the \fB\-ansi\fR +option is used. Some header files may notice this macro and refrain +from declaring certain functions or defining certain macros that the +\&\s-1ISO\s0 standard doesn't call for; this is to avoid interfering with any +programs that might use these names for other things. +.Sp +Functions which would normally be built in but do not have semantics +defined by \s-1ISO\s0 C (such as \f(CW\*(C`alloca\*(C'\fR and \f(CW\*(C`ffs\*(C'\fR) are not built-in +functions with \fB\-ansi\fR is used. +.IP "\fB\-std=\fR" 4 +.IX Item "-std=" +Determine the language standard. This option is currently only +supported when compiling C or \*(C+. A value for this option must be +provided; possible values are +.RS 4 +.IP "\fBc89\fR" 4 +.IX Item "c89" +.PD 0 +.IP "\fBiso9899:1990\fR" 4 +.IX Item "iso9899:1990" +.PD +\&\s-1ISO\s0 C90 (same as \fB\-ansi\fR). +.IP "\fBiso9899:199409\fR" 4 +.IX Item "iso9899:199409" +\&\s-1ISO\s0 C90 as modified in amendment 1. +.IP "\fBc99\fR" 4 +.IX Item "c99" +.PD 0 +.IP "\fBc9x\fR" 4 +.IX Item "c9x" +.IP "\fBiso9899:1999\fR" 4 +.IX Item "iso9899:1999" +.IP "\fBiso9899:199x\fR" 4 +.IX Item "iso9899:199x" +.PD +\&\s-1ISO\s0 C99. Note that this standard is not yet fully supported; see +<\fBhttp://gcc.gnu.org/gcc\-4.0/c99status.html\fR> for more information. The +names \fBc9x\fR and \fBiso9899:199x\fR are deprecated. +.IP "\fBgnu89\fR" 4 +.IX Item "gnu89" +Default, \s-1ISO\s0 C90 plus \s-1GNU\s0 extensions (including some C99 features). +.IP "\fBgnu99\fR" 4 +.IX Item "gnu99" +.PD 0 +.IP "\fBgnu9x\fR" 4 +.IX Item "gnu9x" +.PD +\&\s-1ISO\s0 C99 plus \s-1GNU\s0 extensions. When \s-1ISO\s0 C99 is fully implemented in \s-1GCC\s0, +this will become the default. The name \fBgnu9x\fR is deprecated. +.IP "\fBc++98\fR" 4 +.IX Item "c++98" +The 1998 \s-1ISO\s0 \*(C+ standard plus amendments. +.IP "\fBgnu++98\fR" 4 +.IX Item "gnu++98" +The same as \fB\-std=c++98\fR plus \s-1GNU\s0 extensions. This is the +default for \*(C+ code. +.RE +.RS 4 +.Sp +Even when this option is not specified, you can still use some of the +features of newer standards in so far as they do not conflict with +previous C standards. For example, you may use \f(CW\*(C`_\|_restrict_\|_\*(C'\fR even +when \fB\-std=c99\fR is not specified. +.Sp +The \fB\-std\fR options specifying some version of \s-1ISO\s0 C have the same +effects as \fB\-ansi\fR, except that features that were not in \s-1ISO\s0 C90 +but are in the specified version (for example, \fB//\fR comments and +the \f(CW\*(C`inline\*(C'\fR keyword in \s-1ISO\s0 C99) are not disabled. +.RE +.IP "\fB\-aux\-info\fR \fIfilename\fR" 4 +.IX Item "-aux-info filename" +Output to the given filename prototyped declarations for all functions +declared and/or defined in a translation unit, including those in header +files. This option is silently ignored in any language other than C. +.Sp +Besides declarations, the file indicates, in comments, the origin of +each declaration (source file and line), whether the declaration was +implicit, prototyped or unprototyped (\fBI\fR, \fBN\fR for new or +\&\fBO\fR for old, respectively, in the first character after the line +number and the colon), and whether it came from a declaration or a +definition (\fBC\fR or \fBF\fR, respectively, in the following +character). In the case of function definitions, a K&R\-style list of +arguments followed by their declarations is also provided, inside +comments, after the declaration. +.IP "\fB\-fno\-asm\fR" 4 +.IX Item "-fno-asm" +Do not recognize \f(CW\*(C`asm\*(C'\fR, \f(CW\*(C`inline\*(C'\fR or \f(CW\*(C`typeof\*(C'\fR as a +keyword, so that code can use these words as identifiers. You can use +the keywords \f(CW\*(C`_\|_asm_\|_\*(C'\fR, \f(CW\*(C`_\|_inline_\|_\*(C'\fR and \f(CW\*(C`_\|_typeof_\|_\*(C'\fR +instead. \fB\-ansi\fR implies \fB\-fno\-asm\fR. +.Sp +In \*(C+, this switch only affects the \f(CW\*(C`typeof\*(C'\fR keyword, since +\&\f(CW\*(C`asm\*(C'\fR and \f(CW\*(C`inline\*(C'\fR are standard keywords. You may want to +use the \fB\-fno\-gnu\-keywords\fR flag instead, which has the same +effect. In C99 mode (\fB\-std=c99\fR or \fB\-std=gnu99\fR), this +switch only affects the \f(CW\*(C`asm\*(C'\fR and \f(CW\*(C`typeof\*(C'\fR keywords, since +\&\f(CW\*(C`inline\*(C'\fR is a standard keyword in \s-1ISO\s0 C99. +.IP "\fB\-fno\-builtin\fR" 4 +.IX Item "-fno-builtin" +.PD 0 +.IP "\fB\-fno\-builtin\-\fR\fIfunction\fR" 4 +.IX Item "-fno-builtin-function" +.PD +Don't recognize built-in functions that do not begin with +\&\fB_\|_builtin_\fR as prefix. +.Sp +\&\s-1GCC\s0 normally generates special code to handle certain built-in functions +more efficiently; for instance, calls to \f(CW\*(C`alloca\*(C'\fR may become single +instructions that adjust the stack directly, and calls to \f(CW\*(C`memcpy\*(C'\fR +may become inline copy loops. The resulting code is often both smaller +and faster, but since the function calls no longer appear as such, you +cannot set a breakpoint on those calls, nor can you change the behavior +of the functions by linking with a different library. In addition, +when a function is recognized as a built-in function, \s-1GCC\s0 may use +information about that function to warn about problems with calls to +that function, or to generate more efficient code, even if the +resulting code still contains calls to that function. For example, +warnings are given with \fB\-Wformat\fR for bad calls to +\&\f(CW\*(C`printf\*(C'\fR, when \f(CW\*(C`printf\*(C'\fR is built in, and \f(CW\*(C`strlen\*(C'\fR is +known not to modify global memory. +.Sp +With the \fB\-fno\-builtin\-\fR\fIfunction\fR option +only the built-in function \fIfunction\fR is +disabled. \fIfunction\fR must not begin with \fB_\|_builtin_\fR. If a +function is named this is not built-in in this version of \s-1GCC\s0, this +option is ignored. There is no corresponding +\&\fB\-fbuiltin\-\fR\fIfunction\fR option; if you wish to enable +built-in functions selectively when using \fB\-fno\-builtin\fR or +\&\fB\-ffreestanding\fR, you may define macros such as: +.Sp +.Vb 2 +\& #define abs(n) __builtin_abs ((n)) +\& #define strcpy(d, s) __builtin_strcpy ((d), (s)) +.Ve +.IP "\fB\-fhosted\fR" 4 +.IX Item "-fhosted" +Assert that compilation takes place in a hosted environment. This implies +\&\fB\-fbuiltin\fR. A hosted environment is one in which the +entire standard library is available, and in which \f(CW\*(C`main\*(C'\fR has a return +type of \f(CW\*(C`int\*(C'\fR. Examples are nearly everything except a kernel. +This is equivalent to \fB\-fno\-freestanding\fR. +.IP "\fB\-ffreestanding\fR" 4 +.IX Item "-ffreestanding" +Assert that compilation takes place in a freestanding environment. This +implies \fB\-fno\-builtin\fR. A freestanding environment +is one in which the standard library may not exist, and program startup may +not necessarily be at \f(CW\*(C`main\*(C'\fR. The most obvious example is an \s-1OS\s0 kernel. +This is equivalent to \fB\-fno\-hosted\fR. +.IP "\fB\-fms\-extensions\fR" 4 +.IX Item "-fms-extensions" +Accept some non-standard constructs used in Microsoft header files. +.Sp +Some cases of unnamed fields in structures and unions are only +accepted with this option. +.IP "\fB\-trigraphs\fR" 4 +.IX Item "-trigraphs" +Support \s-1ISO\s0 C trigraphs. The \fB\-ansi\fR option (and \fB\-std\fR +options for strict \s-1ISO\s0 C conformance) implies \fB\-trigraphs\fR. +.IP "\fB\-no\-integrated\-cpp\fR" 4 +.IX Item "-no-integrated-cpp" +Performs a compilation in two passes: preprocessing and compiling. This +option allows a user supplied \*(L"cc1\*(R", \*(L"cc1plus\*(R", or \*(L"cc1obj\*(R" via the +\&\fB\-B\fR option. The user supplied compilation step can then add in +an additional preprocessing step after normal preprocessing but before +compiling. The default is to use the integrated cpp (internal cpp) +.Sp +The semantics of this option will change if \*(L"cc1\*(R", \*(L"cc1plus\*(R", and +\&\*(L"cc1obj\*(R" are merged. +.IP "\fB\-traditional\fR" 4 +.IX Item "-traditional" +.PD 0 +.IP "\fB\-traditional\-cpp\fR" 4 +.IX Item "-traditional-cpp" +.PD +Formerly, these options caused \s-1GCC\s0 to attempt to emulate a pre-standard +C compiler. They are now only supported with the \fB\-E\fR switch. +The preprocessor continues to support a pre-standard mode. See the \s-1GNU\s0 +\&\s-1CPP\s0 manual for details. +.IP "\fB\-fcond\-mismatch\fR" 4 +.IX Item "-fcond-mismatch" +Allow conditional expressions with mismatched types in the second and +third arguments. The value of such an expression is void. This option +is not supported for \*(C+. +.IP "\fB\-funsigned\-char\fR" 4 +.IX Item "-funsigned-char" +Let the type \f(CW\*(C`char\*(C'\fR be unsigned, like \f(CW\*(C`unsigned char\*(C'\fR. +.Sp +Each kind of machine has a default for what \f(CW\*(C`char\*(C'\fR should +be. It is either like \f(CW\*(C`unsigned char\*(C'\fR by default or like +\&\f(CW\*(C`signed char\*(C'\fR by default. +.Sp +Ideally, a portable program should always use \f(CW\*(C`signed char\*(C'\fR or +\&\f(CW\*(C`unsigned char\*(C'\fR when it depends on the signedness of an object. +But many programs have been written to use plain \f(CW\*(C`char\*(C'\fR and +expect it to be signed, or expect it to be unsigned, depending on the +machines they were written for. This option, and its inverse, let you +make such a program work with the opposite default. +.Sp +The type \f(CW\*(C`char\*(C'\fR is always a distinct type from each of +\&\f(CW\*(C`signed char\*(C'\fR or \f(CW\*(C`unsigned char\*(C'\fR, even though its behavior +is always just like one of those two. +.IP "\fB\-fsigned\-char\fR" 4 +.IX Item "-fsigned-char" +Let the type \f(CW\*(C`char\*(C'\fR be signed, like \f(CW\*(C`signed char\*(C'\fR. +.Sp +Note that this is equivalent to \fB\-fno\-unsigned\-char\fR, which is +the negative form of \fB\-funsigned\-char\fR. Likewise, the option +\&\fB\-fno\-signed\-char\fR is equivalent to \fB\-funsigned\-char\fR. +.IP "\fB\-fsigned\-bitfields\fR" 4 +.IX Item "-fsigned-bitfields" +.PD 0 +.IP "\fB\-funsigned\-bitfields\fR" 4 +.IX Item "-funsigned-bitfields" +.IP "\fB\-fno\-signed\-bitfields\fR" 4 +.IX Item "-fno-signed-bitfields" +.IP "\fB\-fno\-unsigned\-bitfields\fR" 4 +.IX Item "-fno-unsigned-bitfields" +.PD +These options control whether a bit-field is signed or unsigned, when the +declaration does not use either \f(CW\*(C`signed\*(C'\fR or \f(CW\*(C`unsigned\*(C'\fR. By +default, such a bit-field is signed, because this is consistent: the +basic integer types such as \f(CW\*(C`int\*(C'\fR are signed types. +.Sh "Options Controlling \*(C+ Dialect" +.IX Subsection "Options Controlling Dialect" +This section describes the command-line options that are only meaningful +for \*(C+ programs; but you can also use most of the \s-1GNU\s0 compiler options +regardless of what language your program is in. For example, you +might compile a file \f(CW\*(C`firstClass.C\*(C'\fR like this: +.PP +.Vb 1 +\& g++ -g -frepo -O -c firstClass.C +.Ve +.PP +In this example, only \fB\-frepo\fR is an option meant +only for \*(C+ programs; you can use the other options with any +language supported by \s-1GCC\s0. +.PP +Here is a list of options that are \fIonly\fR for compiling \*(C+ programs: +.IP "\fB\-fabi\-version=\fR\fIn\fR" 4 +.IX Item "-fabi-version=n" +Use version \fIn\fR of the \*(C+ \s-1ABI\s0. Version 2 is the version of the +\&\*(C+ \s-1ABI\s0 that first appeared in G++ 3.4. Version 1 is the version of +the \*(C+ \s-1ABI\s0 that first appeared in G++ 3.2. Version 0 will always be +the version that conforms most closely to the \*(C+ \s-1ABI\s0 specification. +Therefore, the \s-1ABI\s0 obtained using version 0 will change as \s-1ABI\s0 bugs +are fixed. +.Sp +The default is version 2. +.IP "\fB\-fno\-access\-control\fR" 4 +.IX Item "-fno-access-control" +Turn off all access checking. This switch is mainly useful for working +around bugs in the access control code. +.IP "\fB\-fcheck\-new\fR" 4 +.IX Item "-fcheck-new" +Check that the pointer returned by \f(CW\*(C`operator new\*(C'\fR is non-null +before attempting to modify the storage allocated. This check is +normally unnecessary because the \*(C+ standard specifies that +\&\f(CW\*(C`operator new\*(C'\fR will only return \f(CW0\fR if it is declared +\&\fB\f(BIthrow()\fB\fR, in which case the compiler will always check the +return value even without this option. In all other cases, when +\&\f(CW\*(C`operator new\*(C'\fR has a non-empty exception specification, memory +exhaustion is signalled by throwing \f(CW\*(C`std::bad_alloc\*(C'\fR. See also +\&\fBnew (nothrow)\fR. +.IP "\fB\-fconserve\-space\fR" 4 +.IX Item "-fconserve-space" +Put uninitialized or runtime-initialized global variables into the +common segment, as C does. This saves space in the executable at the +cost of not diagnosing duplicate definitions. If you compile with this +flag and your program mysteriously crashes after \f(CW\*(C`main()\*(C'\fR has +completed, you may have an object that is being destroyed twice because +two definitions were merged. +.Sp +This option is no longer useful on most targets, now that support has +been added for putting variables into \s-1BSS\s0 without making them common. +.IP "\fB\-fno\-const\-strings\fR" 4 +.IX Item "-fno-const-strings" +Give string constants type \f(CW\*(C`char *\*(C'\fR instead of type \f(CW\*(C`const +char *\*(C'\fR. By default, G++ uses type \f(CW\*(C`const char *\*(C'\fR as required by +the standard. Even if you use \fB\-fno\-const\-strings\fR, you cannot +actually modify the value of a string constant. +.Sp +This option might be removed in a future release of G++. For maximum +portability, you should structure your code so that it works with +string constants that have type \f(CW\*(C`const char *\*(C'\fR. +.IP "\fB\-fno\-elide\-constructors\fR" 4 +.IX Item "-fno-elide-constructors" +The \*(C+ standard allows an implementation to omit creating a temporary +which is only used to initialize another object of the same type. +Specifying this option disables that optimization, and forces G++ to +call the copy constructor in all cases. +.IP "\fB\-fno\-enforce\-eh\-specs\fR" 4 +.IX Item "-fno-enforce-eh-specs" +Don't check for violation of exception specifications at runtime. This +option violates the \*(C+ standard, but may be useful for reducing code +size in production builds, much like defining \fB\s-1NDEBUG\s0\fR. The compiler +will still optimize based on the exception specifications. +.IP "\fB\-ffor\-scope\fR" 4 +.IX Item "-ffor-scope" +.PD 0 +.IP "\fB\-fno\-for\-scope\fR" 4 +.IX Item "-fno-for-scope" +.PD +If \fB\-ffor\-scope\fR is specified, the scope of variables declared in +a \fIfor-init-statement\fR is limited to the \fBfor\fR loop itself, +as specified by the \*(C+ standard. +If \fB\-fno\-for\-scope\fR is specified, the scope of variables declared in +a \fIfor-init-statement\fR extends to the end of the enclosing scope, +as was the case in old versions of G++, and other (traditional) +implementations of \*(C+. +.Sp +The default if neither flag is given to follow the standard, +but to allow and give a warning for old-style code that would +otherwise be invalid, or have different behavior. +.IP "\fB\-fno\-gnu\-keywords\fR" 4 +.IX Item "-fno-gnu-keywords" +Do not recognize \f(CW\*(C`typeof\*(C'\fR as a keyword, so that code can use this +word as an identifier. You can use the keyword \f(CW\*(C`_\|_typeof_\|_\*(C'\fR instead. +\&\fB\-ansi\fR implies \fB\-fno\-gnu\-keywords\fR. +.IP "\fB\-fno\-implicit\-templates\fR" 4 +.IX Item "-fno-implicit-templates" +Never emit code for non-inline templates which are instantiated +implicitly (i.e. by use); only emit code for explicit instantiations. +.IP "\fB\-fno\-implicit\-inline\-templates\fR" 4 +.IX Item "-fno-implicit-inline-templates" +Don't emit code for implicit instantiations of inline templates, either. +The default is to handle inlines differently so that compiles with and +without optimization will need the same set of explicit instantiations. +.IP "\fB\-fno\-implement\-inlines\fR" 4 +.IX Item "-fno-implement-inlines" +To save space, do not emit out-of-line copies of inline functions +controlled by \fB#pragma implementation\fR. This will cause linker +errors if these functions are not inlined everywhere they are called. +.IP "\fB\-fms\-extensions\fR" 4 +.IX Item "-fms-extensions" +Disable pedantic warnings about constructs used in \s-1MFC\s0, such as implicit +int and getting a pointer to member function via non-standard syntax. +.IP "\fB\-fno\-nonansi\-builtins\fR" 4 +.IX Item "-fno-nonansi-builtins" +Disable built-in declarations of functions that are not mandated by +\&\s-1ANSI/ISO\s0 C. These include \f(CW\*(C`ffs\*(C'\fR, \f(CW\*(C`alloca\*(C'\fR, \f(CW\*(C`_exit\*(C'\fR, +\&\f(CW\*(C`index\*(C'\fR, \f(CW\*(C`bzero\*(C'\fR, \f(CW\*(C`conjf\*(C'\fR, and other related functions. +.IP "\fB\-fno\-operator\-names\fR" 4 +.IX Item "-fno-operator-names" +Do not treat the operator name keywords \f(CW\*(C`and\*(C'\fR, \f(CW\*(C`bitand\*(C'\fR, +\&\f(CW\*(C`bitor\*(C'\fR, \f(CW\*(C`compl\*(C'\fR, \f(CW\*(C`not\*(C'\fR, \f(CW\*(C`or\*(C'\fR and \f(CW\*(C`xor\*(C'\fR as +synonyms as keywords. +.IP "\fB\-fno\-optional\-diags\fR" 4 +.IX Item "-fno-optional-diags" +Disable diagnostics that the standard says a compiler does not need to +issue. Currently, the only such diagnostic issued by G++ is the one for +a name having multiple meanings within a class. +.IP "\fB\-fpermissive\fR" 4 +.IX Item "-fpermissive" +Downgrade some diagnostics about nonconformant code from errors to +warnings. Thus, using \fB\-fpermissive\fR will allow some +nonconforming code to compile. +.IP "\fB\-frepo\fR" 4 +.IX Item "-frepo" +Enable automatic template instantiation at link time. This option also +implies \fB\-fno\-implicit\-templates\fR. +.IP "\fB\-fno\-rtti\fR" 4 +.IX Item "-fno-rtti" +Disable generation of information about every class with virtual +functions for use by the \*(C+ runtime type identification features +(\fBdynamic_cast\fR and \fBtypeid\fR). If you don't use those parts +of the language, you can save some space by using this flag. Note that +exception handling uses the same information, but it will generate it as +needed. +.IP "\fB\-fstats\fR" 4 +.IX Item "-fstats" +Emit statistics about front-end processing at the end of the compilation. +This information is generally only useful to the G++ development team. +.IP "\fB\-ftemplate\-depth\-\fR\fIn\fR" 4 +.IX Item "-ftemplate-depth-n" +Set the maximum instantiation depth for template classes to \fIn\fR. +A limit on the template instantiation depth is needed to detect +endless recursions during template class instantiation. \s-1ANSI/ISO\s0 \*(C+ +conforming programs must not rely on a maximum depth greater than 17. +.IP "\fB\-fno\-threadsafe\-statics\fR" 4 +.IX Item "-fno-threadsafe-statics" +Do not emit the extra code to use the routines specified in the \*(C+ +\&\s-1ABI\s0 for thread-safe initialization of local statics. You can use this +option to reduce code size slightly in code that doesn't need to be +thread\-safe. +.IP "\fB\-fuse\-cxa\-atexit\fR" 4 +.IX Item "-fuse-cxa-atexit" +Register destructors for objects with static storage duration with the +\&\f(CW\*(C`_\|_cxa_atexit\*(C'\fR function rather than the \f(CW\*(C`atexit\*(C'\fR function. +This option is required for fully standards-compliant handling of static +destructors, but will only work if your C library supports +\&\f(CW\*(C`_\|_cxa_atexit\*(C'\fR. +.IP "\fB\-fvisibility\-inlines\-hidden\fR" 4 +.IX Item "-fvisibility-inlines-hidden" +Causes all inlined methods to be marked with +\&\f(CW\*(C`_\|_attribute_\|_ ((visibility ("hidden")))\*(C'\fR so that they do not +appear in the export table of a \s-1DSO\s0 and do not require a \s-1PLT\s0 indirection +when used within the \s-1DSO\s0. Enabling this option can have a dramatic effect +on load and link times of a \s-1DSO\s0 as it massively reduces the size of the +dynamic export table when the library makes heavy use of templates. While +it can cause bloating through duplication of code within each \s-1DSO\s0 where +it is used, often the wastage is less than the considerable space occupied +by a long symbol name in the export table which is typical when using +templates and namespaces. For even more savings, combine with the +\&\fB\-fvisibility=hidden\fR switch. +.IP "\fB\-fno\-weak\fR" 4 +.IX Item "-fno-weak" +Do not use weak symbol support, even if it is provided by the linker. +By default, G++ will use weak symbols if they are available. This +option exists only for testing, and should not be used by end\-users; +it will result in inferior code and has no benefits. This option may +be removed in a future release of G++. +.IP "\fB\-nostdinc++\fR" 4 +.IX Item "-nostdinc++" +Do not search for header files in the standard directories specific to +\&\*(C+, but do still search the other standard directories. (This option +is used when building the \*(C+ library.) +.PP +In addition, these optimization, warning, and code generation options +have meanings only for \*(C+ programs: +.IP "\fB\-fno\-default\-inline\fR" 4 +.IX Item "-fno-default-inline" +Do not assume \fBinline\fR for functions defined inside a class scope. + Note that these +functions will have linkage like inline functions; they just won't be +inlined by default. +.IP "\fB\-Wabi\fR (\*(C+ only)" 4 +.IX Item "-Wabi ( only)" +Warn when G++ generates code that is probably not compatible with the +vendor-neutral \*(C+ \s-1ABI\s0. Although an effort has been made to warn about +all such cases, there are probably some cases that are not warned about, +even though G++ is generating incompatible code. There may also be +cases where warnings are emitted even though the code that is generated +will be compatible. +.Sp +You should rewrite your code to avoid these warnings if you are +concerned about the fact that code generated by G++ may not be binary +compatible with code generated by other compilers. +.Sp +The known incompatibilities at this point include: +.RS 4 +.IP "\(bu" 4 +Incorrect handling of tail-padding for bit\-fields. G++ may attempt to +pack data into the same byte as a base class. For example: +.Sp +.Vb 2 +\& struct A { virtual void f(); int f1 : 1; }; +\& struct B : public A { int f2 : 1; }; +.Ve +.Sp +In this case, G++ will place \f(CW\*(C`B::f2\*(C'\fR into the same byte +as\f(CW\*(C`A::f1\*(C'\fR; other compilers will not. You can avoid this problem +by explicitly padding \f(CW\*(C`A\*(C'\fR so that its size is a multiple of the +byte size on your platform; that will cause G++ and other compilers to +layout \f(CW\*(C`B\*(C'\fR identically. +.IP "\(bu" 4 +Incorrect handling of tail-padding for virtual bases. G++ does not use +tail padding when laying out virtual bases. For example: +.Sp +.Vb 3 +\& struct A { virtual void f(); char c1; }; +\& struct B { B(); char c2; }; +\& struct C : public A, public virtual B {}; +.Ve +.Sp +In this case, G++ will not place \f(CW\*(C`B\*(C'\fR into the tail-padding for +\&\f(CW\*(C`A\*(C'\fR; other compilers will. You can avoid this problem by +explicitly padding \f(CW\*(C`A\*(C'\fR so that its size is a multiple of its +alignment (ignoring virtual base classes); that will cause G++ and other +compilers to layout \f(CW\*(C`C\*(C'\fR identically. +.IP "\(bu" 4 +Incorrect handling of bit-fields with declared widths greater than that +of their underlying types, when the bit-fields appear in a union. For +example: +.Sp +.Vb 1 +\& union U { int i : 4096; }; +.Ve +.Sp +Assuming that an \f(CW\*(C`int\*(C'\fR does not have 4096 bits, G++ will make the +union too small by the number of bits in an \f(CW\*(C`int\*(C'\fR. +.IP "\(bu" 4 +Empty classes can be placed at incorrect offsets. For example: +.Sp +.Vb 1 +\& struct A {}; +.Ve +.Sp +.Vb 4 +\& struct B { +\& A a; +\& virtual void f (); +\& }; +.Ve +.Sp +.Vb 1 +\& struct C : public B, public A {}; +.Ve +.Sp +G++ will place the \f(CW\*(C`A\*(C'\fR base class of \f(CW\*(C`C\*(C'\fR at a nonzero offset; +it should be placed at offset zero. G++ mistakenly believes that the +\&\f(CW\*(C`A\*(C'\fR data member of \f(CW\*(C`B\*(C'\fR is already at offset zero. +.IP "\(bu" 4 +Names of template functions whose types involve \f(CW\*(C`typename\*(C'\fR or +template template parameters can be mangled incorrectly. +.Sp +.Vb 2 +\& template +\& void f(typename Q::X) {} +.Ve +.Sp +.Vb 2 +\& template