gcc44: import build infrastructure
authorSimon Schubert <corecode@dragonflybsd.org>
Sun, 2 Aug 2009 17:13:55 +0000 (19:13 +0200)
committerSimon Schubert <corecode@dragonflybsd.org>
Sun, 2 Aug 2009 23:39:22 +0000 (01:39 +0200)
This is based on the gcc41 infrastructure, but heavily modified and
streamlined.  Where possible, whole chunks of the original gcc Makefiles
were copied.

gcc44 now needs gmp and mpfr, so add their infrastructure as well. They
are built as internal (static) libs.

50 files changed:
gnu/lib/gcc44/Makefile [new file with mode: 0644]
gnu/lib/gcc44/Makefile.inc [new file with mode: 0644]
gnu/lib/gcc44/csu/Makefile [new file with mode: 0644]
gnu/lib/gcc44/libgcc/Makefile [new file with mode: 0644]
gnu/lib/gcc44/libgcov/Makefile [new file with mode: 0644]
gnu/lib/gcc44/libobjc/Makefile [new file with mode: 0644]
gnu/lib/gcc44/libstdc++/Makefile [new file with mode: 0644]
gnu/lib/gcc44/libstdc++/config.h [new file with mode: 0644]
gnu/lib/gcc44/libstdc++/os_defines.h [new file with mode: 0644]
gnu/lib/gcc44/libsupc++/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/Makefile.inc [new file with mode: 0644]
gnu/usr.bin/cc44/Makefile.langs [new file with mode: 0644]
gnu/usr.bin/cc44/Makefile.tgt [new file with mode: 0644]
gnu/usr.bin/cc44/c++/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/c++filt/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc1/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc1obj/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc1plus/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/auto-host.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/config.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/config/dragonfly-native.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/config/dragonfly-spec.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/config/dragonfly.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/config/i386/dragonfly.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/config/i386/dragonfly64.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/gthr-default.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/multilib.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_prep/tconfig.h [new file with mode: 0644]
gnu/usr.bin/cc44/cc_tools/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc_tools/Makefile.inc [new file with mode: 0644]
gnu/usr.bin/cc44/cc_tools/libiberty/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cc_tools/tools/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/cpp/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/doc/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/gcov/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/gmp/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/gmp/Makefile.i386 [new file with mode: 0644]
gnu/usr.bin/cc44/gmp/config.h [new file with mode: 0644]
gnu/usr.bin/cc44/gmp/gmp.h [new file with mode: 0644]
gnu/usr.bin/cc44/libbackend/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/libcpp/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/libcpp/config.h [new file with mode: 0644]
gnu/usr.bin/cc44/libdecnumber/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/libiberty/Makefile [new file with mode: 0644]
gnu/usr.bin/cc44/libiberty/config.h [new file with mode: 0644]
gnu/usr.bin/cc44/mpfr/Makefile [new file with mode: 0644]
share/mk/bsd.cpu.gcc44.mk [new file with mode: 0644]

diff --git a/gnu/lib/gcc44/Makefile b/gnu/lib/gcc44/Makefile
new file mode 100644 (file)
index 0000000..374ea75
--- /dev/null
@@ -0,0 +1,11 @@
+.include "Makefile.inc"
+
+SUBDIR=                csu libgcc libgcov
+
+.if !defined(NO_CXX)
+SUBDIR+=       libsupc++ libstdc++
+.endif
+
+SUBDIR+=       libobjc
+
+.include <bsd.subdir.mk>
diff --git a/gnu/lib/gcc44/Makefile.inc b/gnu/lib/gcc44/Makefile.inc
new file mode 100644 (file)
index 0000000..d894d06
--- /dev/null
@@ -0,0 +1,18 @@
+GCCSHORTVER=   44
+
+# We need to go add some random dir, because
+# Makefile.inc will append ".."
+TOP_PREFIX=    ../../../usr.bin/cc${GCCSHORTVER}/cc_tools
+
+CCVER=gcc${GCCSHORTVER}
+
+TARGET_LIBDIR=         ${LIBDIR}/gcc${GCCSHORTVER}
+TARGET_DEBUGLIBDIR=    ${LIBDIR}/gcc${GCCSHORTVER}/debug
+TARGET_PROFLIBDIR=     ${LIBDIR}/gcc${GCCSHORTVER}/profile
+TARGET_SHLIBDIR=       ${LIBDIR}/gcc${GCCSHORTVER}
+
+GCC_NO_LIBS=           # yes
+
+LIBSUPCPP=             ${.OBJDIR}/../libsupc++/libsupc++.a
+
+.include "../../usr.bin/cc${GCCSHORTVER}/Makefile.inc"
diff --git a/gnu/lib/gcc44/csu/Makefile b/gnu/lib/gcc44/csu/Makefile
new file mode 100644 (file)
index 0000000..64106dc
--- /dev/null
@@ -0,0 +1,4 @@
+CCDIR= ${STOPDIR}
+
+.include "../Makefile.inc"
+.include "../../csu/Makefile.csu"
diff --git a/gnu/lib/gcc44/libgcc/Makefile b/gnu/lib/gcc44/libgcc/Makefile
new file mode 100644 (file)
index 0000000..a55123f
--- /dev/null
@@ -0,0 +1,94 @@
+.include "../Makefile.inc"
+
+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
+
+lib2funcs = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _cmpdi2 _ucmpdi2           \
+           _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 _bswapsi2 _bswapdi2
+
+.for f in sf df xf
+lib2funcs+=    _fixuns$fsi
+.endfor
+.for f in sf df xf tf
+lib2funcs+=    _fix$fdi _fixuns$fdi _float$fdi _floatun$fdi
+.endfor
+
+LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
+
+# from gcc/Makefile.in
+LIB2FUNCS_ST = _eprintf __gcc_bcmp
+
+
+FUNCS= ${lib2funcs} ${LIB2_DIVMOD_FUNCS} ${LIB2FUNCS_ST}
+
+SRCS+=         ${FUNCS:S/$/.c/g}
+CLEANFILES+=   ${FUNCS:S/$/.c/g}
+
+# LIB2ADDEH, gcc/Makefile
+SRCS+= unwind-dw2.c unwind-dw2-fde.c unwind-sjlj.c
+SRCS+= gthr-gnat.c unwind-c.c
+
+SRCS+= unwind.h
+
+unwind.h: unwind-generic.h
+       cp ${.ALLSRC} ${.TARGET}
+
+CLEANFILES+=   unwind.h
+
+.for F in ${FUNCS}
+${F}.c:
+       echo '#define L${.TARGET:T:R}' > ${.TARGET}
+       echo '#include "libgcc2.c"' >> ${.TARGET}
+.endfor
+
+.for F in ${LIB2_DIVMOD_FUNCS}
+${F}.o: ${F}.c
+       ${CC} ${CFLAGS} -fnon-call-exceptions -c ${.IMPSRC}
+.endfor
+
+beforedepend: 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'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 ${GCC_CPU} == "i386"
+EXTRA_HEADERS = $(srcdir)/config/i386/cpuid.h $(srcdir)/config/i386/mmintrin.h \
+$(srcdir)/config/i386/mm3dnow.h $(srcdir)/config/i386/xmmintrin.h \
+$(srcdir)/config/i386/emmintrin.h $(srcdir)/config/i386/pmmintrin.h \
+$(srcdir)/config/i386/tmmintrin.h $(srcdir)/config/i386/ammintrin.h \
+$(srcdir)/config/i386/smmintrin.h $(srcdir)/config/i386/nmmintrin.h \
+$(srcdir)/config/i386/bmmintrin.h $(srcdir)/config/i386/mmintrin-common.h \
+$(srcdir)/config/i386/wmmintrin.h $(srcdir)/config/i386/immintrin.h \
+$(srcdir)/config/i386/x86intrin.h $(srcdir)/config/i386/avxintrin.h \
+$(srcdir)/config/i386/cross-stdarg.h $(srcdir)/ginclude/tgmath.h
+
+INCS=          ${EXTRA_HEADERS}
+INCSDIR=       /usr/libdata/gcc${GCCSHORTVER}
+.endif
+
+.include <bsd.lib.mk>
diff --git a/gnu/lib/gcc44/libgcov/Makefile b/gnu/lib/gcc44/libgcov/Makefile
new file mode 100644 (file)
index 0000000..67c490a
--- /dev/null
@@ -0,0 +1,29 @@
+.include "../Makefile.inc"
+
+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
+
+# from gcc/Makefile
+LIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \
+    _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \
+    _gcov_execv _gcov_execvp _gcov_execve \
+    _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler \
+    _gcov_indirect_call_profiler _gcov_average_profiler _gcov_ior_profiler \
+    _gcov_merge_ior
+
+SRCS=  ${LIBGCOV:S/$/.c/g}
+CLEANFILES+= ${LIBGCOV:S/$/.c/g}
+
+.for F in ${LIBGCOV}
+${F}.c:
+       echo '#define L${.TARGET:T:R}' > ${.TARGET}
+       echo '#include "libgcov.c"' >> ${.TARGET}
+.endfor
+
+.include <bsd.lib.mk>
diff --git a/gnu/lib/gcc44/libobjc/Makefile b/gnu/lib/gcc44/libobjc/Makefile
new file mode 100644 (file)
index 0000000..8e33f11
--- /dev/null
@@ -0,0 +1,38 @@
+.include "../Makefile.inc"
+
+.PATH: ${GCCDIR}/libobjc ${GCCDIR}/libobjc/objc ${GCCDIR}/gcc
+
+CFLAGS+=       -I${GCCDIR}/libobjc/objc -I. -DIN_TARGET_LIBS
+
+LIB=           objc
+SHLIB_MAJOR=   2
+
+
+OBJC_THREAD_FILE=thr-objc
+SRCS= \
+         archive.c class.c encoding.c gc.c hash.c init.c linking.m \
+         misc.c nil_method.c NXConstStr.m Object.m objects.c \
+         Protocol.m sarray.c selector.c sendmsg.c thr.c \
+         $(OBJC_THREAD_FILE).c exception.c
+
+INCS= \
+        hash.h objc-list.h sarray.h objc.h objc-api.h \
+        NXConstStr.h Object.h Protocol.h encoding.h typedstream.h \
+        thr.h objc-decls.h
+INCSDIR=       ${INCLUDEDIR}/objc
+
+
+SRCS+= unwind.h runtime-info.h
+
+unwind.h: unwind-generic.h
+       cp ${.ALLSRC} ${.TARGET}
+
+runtime-info.h: 
+       echo "" > tmp-runtime.m
+       echo "/* This file is automatically generated */" > ${.TARGET}
+       ${CC} -print-objc-runtime-info -S tmp-runtime.m >> ${.TARGET}
+       rm -f tmp-runtime.m tmp-runtime.s
+
+CLEANFILES+=   unwind.h runtime-info.h
+
+.include <bsd.lib.mk>
diff --git a/gnu/lib/gcc44/libstdc++/Makefile b/gnu/lib/gcc44/libstdc++/Makefile
new file mode 100644 (file)
index 0000000..e663908
--- /dev/null
@@ -0,0 +1,604 @@
+.include "../Makefile.inc"
+
+.if ${MACHINE_ARCH} == "i386" && !empty(MACHINE_CPU:Mi486)
+MARCHDIR=      i486
+.elif ${MACHINE_ARCH} == "amd64"
+MARCHDIR=      i486
+.else
+MARCHDIR=      ${MACHINE_ARCH}
+.endif
+
+SRCDIR=        ${GCCDIR}/libstdc++-v3
+
+glibcxx_srcdir=        ${SRCDIR}
+
+.PATH: ${SRCDIR}/src ${SRCDIR}/libmath ${SRCDIR}/config/io
+.PATH: ${SRCDIR}/config/locale/generic ${SRCDIR}
+.PATH: ${GCCDIR}/gcc ${GCCDIR}/libiberty
+
+#SUBDIR=       doc
+
+LIB=           stdc++
+SHLIB_MAJOR=   9
+
+CFLAGS+=       -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
+CFLAGS+=       -I. -I${.CURDIR}
+CFLAGS+=       -I${GCCDIR}/gcc -I${GCCDIR}/include
+CXXFLAGS+=     -I${SRCDIR}/config/cpu/${MARCHDIR}
+CXXFLAGS+=     -fno-implicit-templates -ffunction-sections -fdata-sections \
+               -Wno-deprecated
+
+FLAGS_GROUPS=  c++0x
+c++0x_FLAGS=   -std=gnu++0x
+c++0x_FLAGS_FILES= \
+       functexcept.cc system_error.cc mutex.cc condition_variable.cc \
+       hash_c++0x.cc hashtable_c++0x.cc limits_c++0x.cc atomic.cc \
+       string-inst.cc wstring-inst.cc chrono.cc thread.cc
+
+LDADD+=                -lm
+DPADD+=                ${LIBM}
+
+.include "../libsupc++/Makefile.src"
+
+# libstdc++ sources (libstdc++/src/Makefile.in, do not reorder)
+SRCS+= \
+       atomic.cc \
+       bitmap_allocator.cc \
+       pool_allocator.cc \
+       mt_allocator.cc \
+       codecvt.cc \
+       compatibility.cc \
+       complex_io.cc \
+       ctype.cc \
+       debug.cc \
+       functexcept.cc \
+       hash.cc \
+       hash_c++0x.cc \
+       globals_io.cc \
+       hashtable.cc \
+       hashtable_c++0x.cc \
+       ios.cc \
+       ios_failure.cc \
+       ios_init.cc \
+       ios_locale.cc \
+       limits.cc \
+       limits_c++0x.cc \
+       list.cc \
+       debug_list.cc \
+       locale.cc \
+       locale_init.cc \
+       locale_facets.cc \
+       localename.cc \
+       math_stubs_float.cc \
+       math_stubs_long_double.cc \
+       stdexcept.cc \
+       strstream.cc \
+       system_error.cc \
+       tree.cc \
+       allocator-inst.cc \
+       concept-inst.cc \
+       fstream-inst.cc \
+       ext-inst.cc \
+       ios-inst.cc \
+       iostream-inst.cc \
+       istream-inst.cc \
+       istream.cc \
+       locale-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 \
+       mutex.cc \
+       condition_variable.cc \
+       chrono.cc \
+       thread.cc \
+       ${host_sources} \
+       ${host_sources_extra}
+
+host_sources = \
+       atomicity.cc \
+       codecvt_members.cc \
+       collate_members.cc \
+       ctype_members.cc \
+       messages_members.cc \
+       monetary_members.cc \
+       numeric_members.cc \
+       time_members.cc 
+
+# Here we change the file to stdio and c++locale to c_locale
+host_sources_extra = \
+       basic_file_stdio.cc c_locale.cc
+
+SRCS+= ctype_noninline.h ctype_base.h
+
+atomicity.cc:
+       echo '#include <ext/atomicity.h>' > ${.TARGET}
+
+CLEANFILES+=   atomicity.cc
+
+SRCS+= gstdint.h bits/compatibility.h
+
+gstdint.h:
+       echo "#include <stdint.h>" > ${.TARGET}
+
+bits/compatibility.h: config/abi/compatibility.h
+       mkdir -p ${.TARGET:H}
+       cp ${.ALLSRC} ${.TARGET}
+
+CLEANFILES+=   gstdint.h bits/compatibility.h
+CLEANDIRS+=    bits
+
+
+strstream.cc:  ${SRCDIR}/src/strstream.cc
+       sed -e 's,^#include <strstream>,#include <backward/strstream>,g' \
+           < ${.ALLSRC} > ${.TARGET}
+
+CLEANFILES+=   strstream.cc
+
+
+HD=    ${INCLUDEDIR}/c++/${GCCPOINTVER}
+.for i in std bits backward ext tr1 tr1_impl c_base c_compatibility debug \
+       c_base_headers_extra
+
+INCSGROUPS+=   $i_headers
+$i_headersDIR= ${HD}/${$i_builddir}
+.endfor
+
+INCSGROUPS+=   TARGETHDRS THRHDRS
+
+std_srcdir = ${glibcxx_srcdir}/include/std
+std_builddir = .
+std_headers = \
+       ${std_srcdir}/algorithm \
+       ${std_srcdir}/array \
+       ${std_srcdir}/bitset \
+       ${std_srcdir}/c++0x_warning.h \
+       ${std_srcdir}/chrono \
+       ${std_srcdir}/complex \
+       ${std_srcdir}/condition_variable \
+       ${std_srcdir}/deque \
+       ${std_srcdir}/forward_list \
+       ${std_srcdir}/fstream \
+       ${std_srcdir}/functional \
+       ${std_srcdir}/iomanip \
+       ${std_srcdir}/ios \
+       ${std_srcdir}/iosfwd \
+       ${std_srcdir}/iostream \
+       ${std_srcdir}/istream \
+       ${std_srcdir}/iterator \
+       ${std_srcdir}/limits \
+       ${std_srcdir}/list \
+       ${std_srcdir}/locale \
+       ${std_srcdir}/map \
+       ${std_srcdir}/memory \
+       ${std_srcdir}/mutex \
+       ${std_srcdir}/numeric \
+       ${std_srcdir}/ostream \
+       ${std_srcdir}/queue \
+       ${std_srcdir}/random \
+       ${std_srcdir}/ratio \
+       ${std_srcdir}/regex \
+       ${std_srcdir}/set \
+       ${std_srcdir}/sstream \
+       ${std_srcdir}/stack \
+       ${std_srcdir}/stdexcept \
+       ${std_srcdir}/streambuf \
+       ${std_srcdir}/string \
+       ${std_srcdir}/system_error \
+       ${std_srcdir}/thread \
+       ${std_srcdir}/tuple \
+       ${std_srcdir}/type_traits \
+       ${std_srcdir}/unordered_map \
+       ${std_srcdir}/unordered_set \
+       ${std_srcdir}/utility \
+       ${std_srcdir}/valarray \
+       ${std_srcdir}/vector
+
+
+bits_srcdir = ${glibcxx_srcdir}/include/bits
+bits_builddir = ./bits
+bits_headers = \
+        ${bits_srcdir}/algorithmfwd.h \
+       ${bits_srcdir}/allocator.h \
+       ${bits_srcdir}/atomicfwd_c.h \
+       ${bits_srcdir}/atomicfwd_cxx.h \
+       ${bits_srcdir}/atomic_0.h \
+       ${bits_srcdir}/atomic_2.h \
+       ${bits_srcdir}/basic_ios.h \
+       ${bits_srcdir}/basic_ios.tcc \
+       ${bits_srcdir}/basic_string.h \
+       ${bits_srcdir}/basic_string.tcc \
+       ${bits_srcdir}/boost_concept_check.h \
+       ${bits_srcdir}/char_traits.h \
+       ${bits_srcdir}/codecvt.h \
+       ${bits_srcdir}/concept_check.h \
+       ${bits_srcdir}/cpp_type_traits.h \
+       ${bits_srcdir}/deque.tcc \
+       ${bits_srcdir}/forward_list.h \
+       ${bits_srcdir}/forward_list.tcc \
+       ${bits_srcdir}/fstream.tcc \
+       ${bits_srcdir}/functexcept.h \
+       ${bits_srcdir}/functional_hash.h \
+       ${bits_srcdir}/gslice.h \
+       ${bits_srcdir}/gslice_array.h \
+       ${bits_srcdir}/hashtable.h \
+       ${bits_srcdir}/indirect_array.h \
+       ${bits_srcdir}/ios_base.h \
+       ${bits_srcdir}/istream.tcc \
+       ${bits_srcdir}/list.tcc \
+       ${bits_srcdir}/locale_classes.h \
+       ${bits_srcdir}/locale_classes.tcc \
+       ${bits_srcdir}/locale_facets.h \
+       ${bits_srcdir}/locale_facets.tcc \
+       ${bits_srcdir}/locale_facets_nonio.h \
+       ${bits_srcdir}/locale_facets_nonio.tcc \
+       ${bits_srcdir}/localefwd.h \
+       ${bits_srcdir}/mask_array.h \
+       ${bits_srcdir}/move.h \
+       ${bits_srcdir}/ostream.tcc \
+       ${bits_srcdir}/ostream_insert.h \
+       ${bits_srcdir}/postypes.h \
+       ${bits_srcdir}/stream_iterator.h \
+       ${bits_srcdir}/streambuf_iterator.h \
+       ${bits_srcdir}/shared_ptr.h \
+       ${bits_srcdir}/slice_array.h \
+       ${bits_srcdir}/sstream.tcc \
+       ${bits_srcdir}/stl_algo.h \
+       ${bits_srcdir}/stl_algobase.h \
+       ${bits_srcdir}/stl_bvector.h \
+       ${bits_srcdir}/stl_construct.h \
+       ${bits_srcdir}/stl_deque.h \
+       ${bits_srcdir}/stl_function.h \
+       ${bits_srcdir}/stl_heap.h \
+       ${bits_srcdir}/stl_iterator.h \
+       ${bits_srcdir}/stl_iterator_base_funcs.h \
+       ${bits_srcdir}/stl_iterator_base_types.h \
+       ${bits_srcdir}/stl_list.h \
+       ${bits_srcdir}/stl_map.h \
+       ${bits_srcdir}/stl_multimap.h \
+       ${bits_srcdir}/stl_multiset.h \
+       ${bits_srcdir}/stl_numeric.h \
+       ${bits_srcdir}/stl_pair.h \
+       ${bits_srcdir}/stl_queue.h \
+       ${bits_srcdir}/stl_raw_storage_iter.h \
+       ${bits_srcdir}/stl_relops.h \
+       ${bits_srcdir}/stl_set.h \
+       ${bits_srcdir}/stl_stack.h \
+       ${bits_srcdir}/stl_tempbuf.h \
+       ${bits_srcdir}/stl_tree.h \
+       ${bits_srcdir}/stl_uninitialized.h \
+       ${bits_srcdir}/stl_vector.h \
+       ${bits_srcdir}/streambuf.tcc \
+       ${bits_srcdir}/stringfwd.h \
+       ${bits_srcdir}/unique_ptr.h \
+       ${bits_srcdir}/valarray_array.h \
+       ${bits_srcdir}/valarray_array.tcc \
+       ${bits_srcdir}/valarray_before.h \
+       ${bits_srcdir}/valarray_after.h \
+       ${bits_srcdir}/vector.tcc
+
+
+backward_srcdir = ${glibcxx_srcdir}/include/backward
+backward_builddir = ./backward
+backward_headers = \
+       ${backward_srcdir}/auto_ptr.h \
+       ${backward_srcdir}/backward_warning.h \
+       ${backward_srcdir}/binders.h \
+       ${backward_srcdir}/hash_map \
+       ${backward_srcdir}/hash_set \
+       ${backward_srcdir}/hash_fun.h \
+       ${backward_srcdir}/hashtable.h \
+       ${backward_srcdir}/strstream
+
+
+ext_srcdir = ${glibcxx_srcdir}/include/ext
+ext_builddir = ./ext
+ext_headers = \
+       ${ext_srcdir}/algorithm \
+       ${ext_srcdir}/atomicity.h \
+       ${ext_srcdir}/array_allocator.h \
+       ${ext_srcdir}/bitmap_allocator.h \
+       ${ext_srcdir}/cast.h \
+       ${ext_srcdir}/codecvt_specializations.h \
+       ${ext_srcdir}/concurrence.h \
+       ${ext_srcdir}/debug_allocator.h \
+       ${ext_srcdir}/enc_filebuf.h \
+       ${ext_srcdir}/extptr_allocator.h \
+       ${ext_srcdir}/stdio_filebuf.h \
+       ${ext_srcdir}/stdio_sync_filebuf.h \
+       ${ext_srcdir}/functional \
+       ${ext_srcdir}/iterator \
+       ${ext_srcdir}/malloc_allocator.h \
+       ${ext_srcdir}/memory \
+       ${ext_srcdir}/mt_allocator.h \
+       ${ext_srcdir}/new_allocator.h \
+       ${ext_srcdir}/numeric \
+       ${ext_srcdir}/numeric_traits.h \
+       ${ext_srcdir}/pod_char_traits.h \
+       ${ext_srcdir}/pointer.h \
+       ${ext_srcdir}/pool_allocator.h \
+       ${ext_srcdir}/rb_tree \
+       ${ext_srcdir}/rope \
+       ${ext_srcdir}/ropeimpl.h \
+       ${ext_srcdir}/slist \
+       ${ext_srcdir}/string_conversions.h \
+       ${ext_srcdir}/throw_allocator.h \
+       ${ext_srcdir}/typelist.h \
+       ${ext_srcdir}/type_traits.h \
+       ${ext_srcdir}/rc_string_base.h \
+       ${ext_srcdir}/sso_string_base.h \
+       ${ext_srcdir}/vstring.h \
+       ${ext_srcdir}/vstring.tcc \
+       ${ext_srcdir}/vstring_fwd.h \
+       ${ext_srcdir}/vstring_util.h \
+       ${ext_compat_headers}
+ext_compat_headers = \
+       ${backward_srcdir}/hash_set \
+       ${backward_srcdir}/hash_map
+
+
+tr1_srcdir = ${glibcxx_srcdir}/include/tr1
+tr1_builddir = ./tr1
+tr1_headers = \
+       ${tr1_srcdir}/array \
+       ${tr1_srcdir}/bessel_function.tcc \
+       ${tr1_srcdir}/beta_function.tcc \
+       ${tr1_srcdir}/ccomplex \
+       ${tr1_srcdir}/cctype \
+       ${tr1_srcdir}/cfenv \
+       ${tr1_srcdir}/cfloat \
+       ${tr1_srcdir}/cinttypes \
+       ${tr1_srcdir}/climits \
+       ${tr1_srcdir}/cmath \
+       ${tr1_srcdir}/complex \
+       ${tr1_srcdir}/complex.h \
+       ${tr1_srcdir}/cstdarg \
+       ${tr1_srcdir}/cstdbool \
+       ${tr1_srcdir}/cstdint \
+       ${tr1_srcdir}/cstdio \
+       ${tr1_srcdir}/cstdlib \
+       ${tr1_srcdir}/ctgmath \
+       ${tr1_srcdir}/ctime \
+       ${tr1_srcdir}/ctype.h \
+       ${tr1_srcdir}/cwchar \
+       ${tr1_srcdir}/cwctype \
+       ${tr1_srcdir}/ell_integral.tcc \
+       ${tr1_srcdir}/exp_integral.tcc \
+       ${tr1_srcdir}/fenv.h \
+       ${tr1_srcdir}/float.h \
+       ${tr1_srcdir}/functional \
+       ${tr1_srcdir}/functional_hash.h \
+       ${tr1_srcdir}/gamma.tcc \
+       ${tr1_srcdir}/hypergeometric.tcc \
+       ${tr1_srcdir}/hashtable.h \
+       ${tr1_srcdir}/inttypes.h \
+       ${tr1_srcdir}/limits.h \
+       ${tr1_srcdir}/math.h \
+       ${tr1_srcdir}/memory \
+       ${tr1_srcdir}/modified_bessel_func.tcc \
+       ${tr1_srcdir}/poly_hermite.tcc \
+       ${tr1_srcdir}/poly_laguerre.tcc \
+       ${tr1_srcdir}/legendre_function.tcc \
+       ${tr1_srcdir}/random \
+       ${tr1_srcdir}/regex \
+       ${tr1_srcdir}/riemann_zeta.tcc \
+       ${tr1_srcdir}/shared_ptr.h \
+       ${tr1_srcdir}/special_function_util.h \
+       ${tr1_srcdir}/stdarg.h \
+       ${tr1_srcdir}/stdbool.h \
+       ${tr1_srcdir}/stdint.h \
+       ${tr1_srcdir}/stdio.h \
+       ${tr1_srcdir}/stdlib.h \
+       ${tr1_srcdir}/tgmath.h \
+       ${tr1_srcdir}/tuple \
+       ${tr1_srcdir}/type_traits \
+       ${tr1_srcdir}/unordered_set \
+       ${tr1_srcdir}/unordered_map \
+       ${tr1_srcdir}/utility \
+       ${tr1_srcdir}/wchar.h \
+       ${tr1_srcdir}/wctype.h
+
+
+tr1_impl_srcdir = ${glibcxx_srcdir}/include/tr1_impl
+tr1_impl_builddir = ./tr1_impl
+tr1_impl_headers = \
+       ${tr1_impl_srcdir}/array \
+       ${tr1_impl_srcdir}/boost_sp_counted_base.h \
+       ${tr1_impl_srcdir}/cctype \
+       ${tr1_impl_srcdir}/cfenv \
+       ${tr1_impl_srcdir}/cinttypes \
+       ${tr1_impl_srcdir}/cmath \
+       ${tr1_impl_srcdir}/complex \
+       ${tr1_impl_srcdir}/cstdint \
+       ${tr1_impl_srcdir}/cstdio \
+       ${tr1_impl_srcdir}/cstdlib \
+       ${tr1_impl_srcdir}/cwchar \
+       ${tr1_impl_srcdir}/cwctype \
+       ${tr1_impl_srcdir}/functional \
+       ${tr1_impl_srcdir}/functional_hash.h \
+       ${tr1_impl_srcdir}/hashtable \
+       ${tr1_impl_srcdir}/hashtable_policy.h \
+       ${tr1_impl_srcdir}/random \
+       ${tr1_impl_srcdir}/random.tcc \
+       ${tr1_impl_srcdir}/regex \
+       ${tr1_impl_srcdir}/type_traits \
+       ${tr1_impl_srcdir}/unordered_map \
+       ${tr1_impl_srcdir}/unordered_set \
+       ${tr1_impl_srcdir}/utility
+
+C_INCLUDE_DIR = ${glibcxx_srcdir}/include/c_global
+c_base_srcdir = $(C_INCLUDE_DIR)
+c_base_builddir = .
+c_base_headers = \
+       ${c_base_srcdir}/cassert \
+       ${c_base_srcdir}/ccomplex \
+       ${c_base_srcdir}/cctype \
+       ${c_base_srcdir}/cerrno \
+       ${c_base_srcdir}/cfenv \
+       ${c_base_srcdir}/cfloat \
+       ${c_base_srcdir}/cinttypes \
+       ${c_base_srcdir}/ciso646 \
+       ${c_base_srcdir}/climits \
+       ${c_base_srcdir}/clocale \
+       ${c_base_srcdir}/cmath \
+       ${c_base_srcdir}/csetjmp \
+       ${c_base_srcdir}/csignal \
+       ${c_base_srcdir}/cstdarg \
+       ${c_base_srcdir}/cstdatomic \
+       ${c_base_srcdir}/cstdbool \
+       ${c_base_srcdir}/cstddef \
+       ${c_base_srcdir}/cstdint \
+       ${c_base_srcdir}/cstdio \
+       ${c_base_srcdir}/cstdlib \
+       ${c_base_srcdir}/cstring \
+       ${c_base_srcdir}/ctgmath \
+       ${c_base_srcdir}/ctime \
+       ${c_base_srcdir}/cwchar \
+       ${c_base_srcdir}/cwctype
+
+c_compatibility_srcdir = ${glibcxx_srcdir}/include/c_compatibility
+c_compatibility_builddir = .
+c_compatibility_headers = \
+       ${c_compatibility_srcdir}/complex.h \
+       ${c_compatibility_srcdir}/fenv.h \
+       ${c_compatibility_srcdir}/tgmath.h \
+       ${c_compatibility_srcdir}/stdatomic.h
+
+
+debug_srcdir = ${glibcxx_srcdir}/include/debug
+debug_builddir = ./debug
+debug_headers = \
+       ${debug_srcdir}/bitset \
+       ${debug_srcdir}/debug.h \
+       ${debug_srcdir}/deque \
+       ${debug_srcdir}/formatter.h \
+       ${debug_srcdir}/functions.h \
+       ${debug_srcdir}/list \
+       ${debug_srcdir}/map \
+       ${debug_srcdir}/macros.h \
+       ${debug_srcdir}/map.h \
+       ${debug_srcdir}/multimap.h \
+       ${debug_srcdir}/multiset.h \
+       ${debug_srcdir}/safe_base.h \
+       ${debug_srcdir}/safe_iterator.h \
+       ${debug_srcdir}/safe_iterator.tcc \
+       ${debug_srcdir}/safe_sequence.h \
+       ${debug_srcdir}/set \
+       ${debug_srcdir}/set.h \
+       ${debug_srcdir}/string \
+       ${debug_srcdir}/unordered_map \
+       ${debug_srcdir}/unordered_set \
+       ${debug_srcdir}/vector
+
+
+c_base_headers_extra_builddir = bits
+c_base_headers_extra_headers = ${c_base_srcdir}/cmath.tcc
+
+
+host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR)
+host_builddir = ./${host_alias}/bits
+host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits
+host_headers = \
+       ${host_srcdir}/ctype_base.h \
+       ${host_srcdir}/ctype_inline.h \
+       ${host_srcdir}/ctype_noninline.h \
+       ${host_srcdir}/os_defines.h \
+       ${glibcxx_srcdir}/$(ATOMIC_WORD_SRCDIR)/atomic_word.h \
+       ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \
+       ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h \
+       ${glibcxx_srcdir}/$(ERROR_CONSTANTS_SRCDIR)/error_constants.h \
+       ${glibcxx_srcdir}/include/precompiled/stdc++.h \
+       ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h \
+       ${glibcxx_srcdir}/include/precompiled/extc++.h
+
+# 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/generic/error_constants.h
+TARGETHDRS+=   os/bsd/netbsd/ctype_inline.h
+TARGETHDRS:=   ${TARGETHDRS:S;^;${SRCDIR}/config/;}
+TARGETHDRS+=   ctype_base.h ctype_noninline.h os_defines.h
+TARGETHDRS+=   c++config.h
+TARGETHDRSDIR= ${HD}/bits
+
+MARCHHDRS=     atomic_word.h cxxabi_tweaks.h cpu_defines.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-default.h
+THRHDRSDIR=    ${HD}/bits
+
+gthr.h: ${GCCDIR}/gcc/gthr.h
+       sed -e '/^#pragma/b' \
+           -e '/^#/s/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*\)/_GLIBCXX_\1/g' \
+           -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
+           -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
+           < ${GCCDIR}/gcc/gthr.h > gthr.h
+
+gthr-single.h: ${GCCDIR}/gcc/gthr-single.h
+       sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
+           -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
+           < ${GCCDIR}/gcc/gthr-single.h > gthr-single.h
+
+gthr-posix.h: ${GCCDIR}/gcc/gthr-posix.h
+       sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
+           -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
+           -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
+           -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*USE_WEAK\)/_GLIBCXX_\1/g' \
+           < ${GCCDIR}/gcc/gthr-posix.h > gthr-posix.h
+
+gthr-default.h: ${GCCDIR}/gcc/gthr-posix.h
+       sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
+           -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
+           -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
+           -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*USE_WEAK\)/_GLIBCXX_\1/g' \
+           -e 's,^#include "\(.*\)",#include <bits/\1>,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
+
+c++config.h: config.h ${SRCDIR}/include/bits/c++config DATESTAMP
+       date=`cat ${.ALLSRC:M*DATESTAMP}` ; \
+       nsa_version=0 ;\
+       visibility=1 ;\
+       sed -e "s,define __GLIBCXX__, define __GLIBCXX__ $$date," \
+       -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
+       -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
+       < ${.ALLSRC:M*c++config} > ${.TARGET}
+       sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
+           -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
+           -e 's/VERSION/_GLIBCXX_VERSION/g' \
+           -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
+           -e 's/ICONV_CONST/_GLIBCXX_ICONV_CONST/g' \
+           -e '/[      ]_GLIBCXX_LONG_DOUBLE_COMPAT[   ]/d' \
+           < ${.ALLSRC:M*config.h} >> ${.TARGET}
+       echo "" >> ${.TARGET}
+       echo "#endif // _GLIBCXX_CXX_CONFIG_H" >> ${.TARGET}
+
+CLEANFILES+=   ${THRHDRS} ctype_noninline.h ctype_base.h c++config.h
+
+.include <bsd.lib.mk>
diff --git a/gnu/lib/gcc44/libstdc++/config.h b/gnu/lib/gcc44/libstdc++/config.h
new file mode 100644 (file)
index 0000000..d43bdca
--- /dev/null
@@ -0,0 +1,1123 @@
+/* config.h.  Generated by configure.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to 1 if you have the `acosf' function. */
+#define HAVE_ACOSF 1
+
+/* Define to 1 if you have the `acosl' function. */
+/* #undef HAVE_ACOSL */
+
+/* Define to 1 if you have the `asinf' function. */
+#define HAVE_ASINF 1
+
+/* Define to 1 if you have the `asinl' function. */
+/* #undef HAVE_ASINL */
+
+/* Define to 1 if the target assembler supports .symver directive. */
+#define HAVE_AS_SYMVER_DIRECTIVE 1
+
+/* Define to 1 if you have the `atan2f' function. */
+#define HAVE_ATAN2F 1
+
+/* Define to 1 if you have the `atan2l' function. */
+/* #undef HAVE_ATAN2L */
+
+/* Define to 1 if you have the `atanf' function. */
+#define HAVE_ATANF 1
+
+/* Define to 1 if you have the `atanl' function. */
+/* #undef HAVE_ATANL */
+
+/* Define to 1 if the target assembler supports thread-local storage. */
+/* #undef HAVE_CC_TLS */
+
+/* Define to 1 if you have the `ceilf' function. */
+#define HAVE_CEILF 1
+
+/* Define to 1 if you have the `ceill' function. */
+/* #undef HAVE_CEILL */
+
+/* Define to 1 if you have the <complex.h> header file. */
+#define HAVE_COMPLEX_H 1
+
+/* Define to 1 if you have the `cosf' function. */
+#define HAVE_COSF 1
+
+/* Define to 1 if you have the `coshf' function. */
+#define HAVE_COSHF 1
+
+/* Define to 1 if you have the `coshl' function. */
+/* #undef HAVE_COSHL */
+
+/* Define to 1 if you have the `cosl' function. */
+/* #undef HAVE_COSL */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define if EBADMSG exists. */
+#define HAVE_EBADMSG 1
+
+/* Define if ECANCELED exists. */
+#define HAVE_ECANCELED 1
+
+/* Define if EIDRM exists. */
+#define HAVE_EIDRM 1
+
+/* Define to 1 if you have the <endian.h> header file. */
+/* #undef HAVE_ENDIAN_H */
+
+/* Define if ENODATA exists. */
+/* #undef HAVE_ENODATA */
+
+/* Define if ENOLINK exists. */
+#define HAVE_ENOLINK 1
+
+/* Define if ENOSR exists. */
+/* #undef HAVE_ENOSR */
+
+/* Define if ENOSTR exists. */
+/* #undef HAVE_ENOSTR */
+
+/* Define if ENOTRECOVERABLE exists. */
+/* #undef HAVE_ENOTRECOVERABLE */
+
+/* Define if ENOTSUP exists. */
+#define HAVE_ENOTSUP 1
+
+/* Define if EOVERFLOW exists. */
+#define HAVE_EOVERFLOW 1
+
+/* Define if EOWNERDEAD exists. */
+/* #undef HAVE_EOWNERDEAD */
+
+/* Define if EPROTO exists. */
+#define HAVE_EPROTO 1
+
+/* Define if ETIME exists. */
+/* #undef HAVE_ETIME */
+
+/* Define if ETXTBSY exists. */
+#define HAVE_ETXTBSY 1
+
+/* Define to 1 if you have the `expf' function. */
+#define HAVE_EXPF 1
+
+/* Define to 1 if you have the `expl' function. */
+/* #undef HAVE_EXPL */
+
+/* Define to 1 if you have the `fabsf' function. */
+#define HAVE_FABSF 1
+
+/* Define to 1 if you have the `fabsl' function. */
+/* #undef HAVE_FABSL */
+
+/* Define to 1 if you have the <fenv.h> header file. */
+#define HAVE_FENV_H 1
+
+/* Define to 1 if you have the `finite' function. */
+#define HAVE_FINITE 1
+
+/* Define to 1 if you have the `finitef' function. */
+#define HAVE_FINITEF 1
+
+/* Define to 1 if you have the `finitel' function. */
+/* #undef HAVE_FINITEL */
+
+/* Define to 1 if you have the <float.h> header file. */
+#define HAVE_FLOAT_H 1
+
+/* Define to 1 if you have the `floorf' function. */
+#define HAVE_FLOORF 1
+
+/* Define to 1 if you have the `floorl' function. */
+/* #undef HAVE_FLOORL */
+
+/* Define to 1 if you have the `fmodf' function. */
+#define HAVE_FMODF 1
+
+/* Define to 1 if you have the `fmodl' function. */
+/* #undef HAVE_FMODL */
+
+/* Define to 1 if you have the `fpclass' function. */
+/* #undef HAVE_FPCLASS */
+
+/* Define to 1 if you have the <fp.h> header file. */
+/* #undef HAVE_FP_H */
+
+/* Define to 1 if you have the `frexpf' function. */
+#define HAVE_FREXPF 1
+
+/* Define to 1 if you have the `frexpl' function. */
+#define HAVE_FREXPL 1
+
+/* Define if _Unwind_GetIPInfo is available. */
+#define HAVE_GETIPINFO 1
+
+/* Define if gthr-default.h exists (meaning that threading support is
+   enabled). */
+#define HAVE_GTHR_DEFAULT 1
+
+/* Define to 1 if you have the `hypot' function. */
+#define HAVE_HYPOT 1
+
+/* Define to 1 if you have the `hypotf' function. */
+#define HAVE_HYPOTF 1
+
+/* Define to 1 if you have the `hypotl' function. */
+/* #undef HAVE_HYPOTL */
+
+/* Define if you have the iconv() function. */
+#define HAVE_ICONV 1
+
+/* Define to 1 if you have the <ieeefp.h> header file. */
+#define HAVE_IEEEFP_H 1
+
+/* Define if int64_t is available in <stdint.h>. */
+#define HAVE_INT64_T 1
+
+#if defined(__i386__)
+/* Define if int64_t is a long. */
+/* #undef HAVE_INT64_T_LONG */
+
+/* Define if int64_t is a long long. */
+#define HAVE_INT64_T_LONG_LONG 1
+#elif defined(__amd64__)
+/* Define if int64_t is a long. */
+#define HAVE_INT64_T_LONG 1
+
+/* Define if int64_t is a long long. */
+/* #undef HAVE_INT64_T_LONG_LONG */
+#else
+#error Platform not supported!
+#endif
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `isinf' function. */
+/* #undef HAVE_ISINF */
+
+/* Define to 1 if you have the `isinff' function. */
+/* #undef HAVE_ISINFF */
+
+/* Define to 1 if you have the `isinfl' function. */
+/* #undef HAVE_ISINFL */
+
+/* Define to 1 if you have the `isnan' function. */
+/* #undef HAVE_ISNAN */
+
+/* Define to 1 if you have the `isnanf' function. */
+/* #undef HAVE_ISNANF */
+
+/* Define to 1 if you have the `isnanl' function. */
+/* #undef HAVE_ISNANL */
+
+/* Defined if iswblank exists. */
+#define HAVE_ISWBLANK 1
+
+/* Define if LC_MESSAGES is available in <locale.h>. */
+#define HAVE_LC_MESSAGES 1
+
+/* Define to 1 if you have the `ldexpf' function. */
+#define HAVE_LDEXPF 1
+
+/* Define to 1 if you have the `ldexpl' function. */
+/* #undef HAVE_LDEXPL */
+
+/* Define to 1 if you have the <libintl.h> header file. */
+/* #undef HAVE_LIBINTL_H */
+
+/* Only used in build directory testsuite_hooks.h. */
+#define HAVE_LIMIT_AS 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define HAVE_LIMIT_DATA 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define HAVE_LIMIT_FSIZE 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define HAVE_LIMIT_RSS 1
+
+/* Only used in build directory testsuite_hooks.h. */
+#define HAVE_LIMIT_VMEM 1
+
+/* Define if futex syscall is available. */
+/* #undef HAVE_LINUX_FUTEX */
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define to 1 if you have the `log10f' function. */
+#define HAVE_LOG10F 1
+
+/* Define to 1 if you have the `log10l' function. */
+/* #undef HAVE_LOG10L */
+
+/* Define to 1 if you have the `logf' function. */
+#define HAVE_LOGF 1
+
+/* Define to 1 if you have the `logl' function. */
+/* #undef HAVE_LOGL */
+
+/* Define to 1 if you have the <machine/endian.h> header file. */
+#define HAVE_MACHINE_ENDIAN_H 1
+
+/* Define to 1 if you have the <machine/param.h> header file. */
+#define HAVE_MACHINE_PARAM_H 1
+
+/* Define if mbstate_t exists in wchar.h. */
+#define HAVE_MBSTATE_T 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `modf' function. */
+#define HAVE_MODF 1
+
+/* Define to 1 if you have the `modff' function. */
+#define HAVE_MODFF 1
+
+/* Define to 1 if you have the `modfl' function. */
+/* #undef HAVE_MODFL */
+
+/* Define to 1 if you have the <nan.h> header file. */
+/* #undef HAVE_NAN_H */
+
+/* Define if poll is available in <poll.h>. */
+#define HAVE_POLL 1
+
+/* Define to 1 if you have the `powf' function. */
+#define HAVE_POWF 1
+
+/* Define to 1 if you have the `powl' function. */
+/* #undef HAVE_POWL */
+
+/* Define to 1 if you have the `qfpclass' function. */
+/* #undef HAVE_QFPCLASS */
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `sincos' function. */
+/* #undef HAVE_SINCOS */
+
+/* Define to 1 if you have the `sincosf' function. */
+/* #undef HAVE_SINCOSF */
+
+/* Define to 1 if you have the `sincosl' function. */
+/* #undef HAVE_SINCOSL */
+
+/* Define to 1 if you have the `sinf' function. */
+#define HAVE_SINF 1
+
+/* Define to 1 if you have the `sinhf' function. */
+#define HAVE_SINHF 1
+
+/* Define to 1 if you have the `sinhl' function. */
+/* #undef HAVE_SINHL */
+
+/* Define to 1 if you have the `sinl' function. */
+/* #undef HAVE_SINL */
+
+/* Define to 1 if you have the `sqrtf' function. */
+#define HAVE_SQRTF 1
+
+/* Define to 1 if you have the `sqrtl' function. */
+/* #undef HAVE_SQRTL */
+
+/* Define to 1 if you have the <stdbool.h> header file. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define if strerror_l is available in <string.h>. */
+/* #undef HAVE_STRERROR_L */
+
+/* Define if strerror_r is available in <string.h>. */
+#define HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strtof' function. */
+#define HAVE_STRTOF 1
+
+/* Define to 1 if you have the `strtold' function. */
+#define HAVE_STRTOLD 1
+
+/* Define if strxfrm_l is available in <string.h>. */
+/* #undef HAVE_STRXFRM_L */
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+#define HAVE_SYS_FILIO_H 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/ipc.h> header file. */
+#define HAVE_SYS_IPC_H 1
+
+/* Define to 1 if you have the <sys/isa_defs.h> header file. */
+/* #undef HAVE_SYS_ISA_DEFS_H */
+
+/* Define to 1 if you have the <sys/machine.h> header file. */
+/* #undef HAVE_SYS_MACHINE_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/sem.h> header file. */
+#define HAVE_SYS_SEM_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define if S_IFREG is available in <sys/stat.h>. */
+/* #undef HAVE_S_IFREG */
+
+/* Define if S_IFREG is available in <sys/stat.h>. */
+#define HAVE_S_ISREG 1
+
+/* Define to 1 if you have the `tanf' function. */
+#define HAVE_TANF 1
+
+/* Define to 1 if you have the `tanhf' function. */
+#define HAVE_TANHF 1
+
+/* Define to 1 if you have the `tanhl' function. */
+/* #undef HAVE_TANHL */
+
+/* Define to 1 if you have the `tanl' function. */
+/* #undef HAVE_TANL */
+
+/* Define to 1 if you have the <tgmath.h> header file. */
+#define HAVE_TGMATH_H 1
+
+/* Define to 1 if the target supports thread-local storage. */
+#define HAVE_TLS 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Defined if vfwscanf exists. */
+#define HAVE_VFWSCANF 1
+
+/* Defined if vswscanf exists. */
+#define HAVE_VSWSCANF 1
+
+/* Defined if vwscanf exists. */
+#define HAVE_VWSCANF 1
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define HAVE_WCHAR_H 1
+
+/* Defined if wcstof exists. */
+#define HAVE_WCSTOF 1
+
+/* Define to 1 if you have the <wctype.h> header file. */
+#define HAVE_WCTYPE_H 1
+
+/* Define if writev is available in <sys/uio.h>. */
+#define HAVE_WRITEV 1
+
+/* Define to 1 if you have the `_acosf' function. */
+/* #undef HAVE__ACOSF */
+
+/* Define to 1 if you have the `_acosl' function. */
+/* #undef HAVE__ACOSL */
+
+/* Define to 1 if you have the `_asinf' function. */
+/* #undef HAVE__ASINF */
+
+/* Define to 1 if you have the `_asinl' function. */
+/* #undef HAVE__ASINL */
+
+/* Define to 1 if you have the `_atan2f' function. */
+/* #undef HAVE__ATAN2F */
+
+/* Define to 1 if you have the `_atan2l' function. */
+/* #undef HAVE__ATAN2L */
+
+/* Define to 1 if you have the `_atanf' function. */
+/* #undef HAVE__ATANF */
+
+/* Define to 1 if you have the `_atanl' function. */
+/* #undef HAVE__ATANL */
+
+/* Define to 1 if you have the `_ceilf' function. */
+/* #undef HAVE__CEILF */
+
+/* Define to 1 if you have the `_ceill' function. */
+/* #undef HAVE__CEILL */
+
+/* Define to 1 if you have the `_cosf' function. */
+/* #undef HAVE__COSF */
+
+/* Define to 1 if you have the `_coshf' function. */
+/* #undef HAVE__COSHF */
+
+/* Define to 1 if you have the `_coshl' function. */
+/* #undef HAVE__COSHL */
+
+/* Define to 1 if you have the `_cosl' function. */
+/* #undef HAVE__COSL */
+
+/* Define to 1 if you have the `_expf' function. */
+/* #undef HAVE__EXPF */
+
+/* Define to 1 if you have the `_expl' function. */
+/* #undef HAVE__EXPL */
+
+/* Define to 1 if you have the `_fabsf' function. */
+/* #undef HAVE__FABSF */
+
+/* Define to 1 if you have the `_fabsl' function. */
+/* #undef HAVE__FABSL */
+
+/* Define to 1 if you have the `_finite' function. */
+/* #undef HAVE__FINITE */
+
+/* Define to 1 if you have the `_finitef' function. */
+/* #undef HAVE__FINITEF */
+
+/* Define to 1 if you have the `_finitel' function. */
+/* #undef HAVE__FINITEL */
+
+/* Define to 1 if you have the `_floorf' function. */
+/* #undef HAVE__FLOORF */
+
+/* Define to 1 if you have the `_floorl' function. */
+/* #undef HAVE__FLOORL */
+
+/* Define to 1 if you have the `_fmodf' function. */
+/* #undef HAVE__FMODF */
+
+/* Define to 1 if you have the `_fmodl' function. */
+/* #undef HAVE__FMODL */
+
+/* Define to 1 if you have the `_fpclass' function. */
+/* #undef HAVE__FPCLASS */
+
+/* Define to 1 if you have the `_frexpf' function. */
+/* #undef HAVE__FREXPF */
+
+/* Define to 1 if you have the `_frexpl' function. */
+/* #undef HAVE__FREXPL */
+
+/* Define to 1 if you have the `_hypot' function. */
+/* #undef HAVE__HYPOT */
+
+/* Define to 1 if you have the `_hypotf' function. */
+/* #undef HAVE__HYPOTF */
+
+/* Define to 1 if you have the `_hypotl' function. */
+/* #undef HAVE__HYPOTL */
+
+/* Define to 1 if you have the `_isinf' function. */
+/* #undef HAVE__ISINF */
+
+/* Define to 1 if you have the `_isinff' function. */
+/* #undef HAVE__ISINFF */
+
+/* Define to 1 if you have the `_isinfl' function. */
+/* #undef HAVE__ISINFL */
+
+/* Define to 1 if you have the `_isnan' function. */
+/* #undef HAVE__ISNAN */
+
+/* Define to 1 if you have the `_isnanf' function. */
+/* #undef HAVE__ISNANF */
+
+/* Define to 1 if you have the `_isnanl' function. */
+/* #undef HAVE__ISNANL */
+
+/* Define to 1 if you have the `_ldexpf' function. */
+/* #undef HAVE__LDEXPF */
+
+/* Define to 1 if you have the `_ldexpl' function. */
+/* #undef HAVE__LDEXPL */
+
+/* Define to 1 if you have the `_log10f' function. */
+/* #undef HAVE__LOG10F */
+
+/* Define to 1 if you have the `_log10l' function. */
+/* #undef HAVE__LOG10L */
+
+/* Define to 1 if you have the `_logf' function. */
+/* #undef HAVE__LOGF */
+
+/* Define to 1 if you have the `_logl' function. */
+/* #undef HAVE__LOGL */
+
+/* Define to 1 if you have the `_modf' function. */
+/* #undef HAVE__MODF */
+
+/* Define to 1 if you have the `_modff' function. */
+/* #undef HAVE__MODFF */
+
+/* Define to 1 if you have the `_modfl' function. */
+/* #undef HAVE__MODFL */
+
+/* Define to 1 if you have the `_powf' function. */
+/* #undef HAVE__POWF */
+
+/* Define to 1 if you have the `_powl' function. */
+/* #undef HAVE__POWL */
+
+/* Define to 1 if you have the `_qfpclass' function. */
+/* #undef HAVE__QFPCLASS */
+
+/* Define to 1 if you have the `_sincos' function. */
+/* #undef HAVE__SINCOS */
+
+/* Define to 1 if you have the `_sincosf' function. */
+/* #undef HAVE__SINCOSF */
+
+/* Define to 1 if you have the `_sincosl' function. */
+/* #undef HAVE__SINCOSL */
+
+/* Define to 1 if you have the `_sinf' function. */
+/* #undef HAVE__SINF */
+
+/* Define to 1 if you have the `_sinhf' function. */
+/* #undef HAVE__SINHF */
+
+/* Define to 1 if you have the `_sinhl' function. */
+/* #undef HAVE__SINHL */
+
+/* Define to 1 if you have the `_sinl' function. */
+/* #undef HAVE__SINL */
+
+/* Define to 1 if you have the `_sqrtf' function. */
+/* #undef HAVE__SQRTF */
+
+/* Define to 1 if you have the `_sqrtl' function. */
+/* #undef HAVE__SQRTL */
+
+/* Define to 1 if you have the `_tanf' function. */
+/* #undef HAVE__TANF */
+
+/* Define to 1 if you have the `_tanhf' function. */
+/* #undef HAVE__TANHF */
+
+/* Define to 1 if you have the `_tanhl' function. */
+/* #undef HAVE__TANHL */
+
+/* Define to 1 if you have the `_tanl' function. */
+/* #undef HAVE__TANL */
+
+/* Define as const if the declaration of iconv() needs const. */
+#define ICONV_CONST 
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+/* #undef PACKAGE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "package-unused"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "package-unused version-unused"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libstdc++"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "version-unused"
+
+/* The size of a `char', as computed by sizeof. */
+/* #undef SIZEOF_CHAR */
+
+/* The size of a `int', as computed by sizeof. */
+/* #undef SIZEOF_INT */
+
+/* The size of a `long', as computed by sizeof. */
+/* #undef SIZEOF_LONG */
+
+/* The size of a `short', as computed by sizeof. */
+/* #undef SIZEOF_SHORT */
+
+/* The size of a `void *', as computed by sizeof. */
+/* #undef SIZEOF_VOID_P */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+/* #undef VERSION */
+
+/* Define if builtin atomic operations for bool are supported on this host. */
+#define  _GLIBCXX_ATOMIC_BUILTINS_1 1
+
+/* Define if builtin atomic operations for short are supported on this host.
+   */
+#define  _GLIBCXX_ATOMIC_BUILTINS_2 1
+
+/* Define if builtin atomic operations for int are supported on this host. */
+#define  _GLIBCXX_ATOMIC_BUILTINS_4 1
+
+/* Define if builtin atomic operations for long long are supported on this
+   host. */
+#define  _GLIBCXX_ATOMIC_BUILTINS_8 1
+
+/* Define to use concept checking code from the boost libraries. */
+/* #undef _GLIBCXX_CONCEPT_CHECKS */
+
+/* Define if a fully dynamic basic_string is wanted. */
+/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */
+
+/* Define if gthreads library is available. */
+#define _GLIBCXX_HAS_GTHREADS 1
+
+/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
+#define _GLIBCXX_HOSTED 1
+
+/* Define if compatibility should be provided for -mlong-double-64. */
+/* #undef _GLIBCXX_LONG_DOUBLE_COMPAT */
+
+/* Define if ptrdiff_t is int. */
+#define _GLIBCXX_PTRDIFF_T_IS_INT 1
+
+/* Define if using setrlimit to set resource limits during "make check" */
+#define _GLIBCXX_RES_LIMITS 1
+
+/* Define if size_t is unsigned int. */
+#define _GLIBCXX_SIZE_T_IS_UINT 1
+
+/* Define if the compiler is configured for setjmp/longjmp exceptions. */
+/* #undef _GLIBCXX_SJLJ_EXCEPTIONS */
+
+/* Define if EOF == -1, SEEK_CUR == 1, SEEK_END == 2. */
+#define _GLIBCXX_STDIO_MACROS 1
+
+/* Define to use symbol versioning in the shared library. */
+/* #undef _GLIBCXX_SYMVER */
+
+/* Define to use darwin versioning in the shared library. */
+/* #undef _GLIBCXX_SYMVER_DARWIN */
+
+/* Define to use GNU versioning in the shared library. */
+/* #undef _GLIBCXX_SYMVER_GNU */
+
+/* Define to use GNU namespace versioning in the shared library. */
+/* #undef _GLIBCXX_SYMVER_GNU_NAMESPACE */
+
+/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
+   <stdio.h>, and <stdlib.h> can be used or exposed. */
+/* #undef _GLIBCXX_USE_C99 */
+
+/* Define if C99 functions in <complex.h> should be used in <complex>. Using
+   compiler builtins for these functions requires corresponding C99 library
+   functions to be present. */
+/* #undef _GLIBCXX_USE_C99_COMPLEX */
+
+/* Define if C99 functions in <complex.h> should be used in <tr1/complex>.
+   Using compiler builtins for these functions requires corresponding C99
+   library functions to be present. */
+/* #undef _GLIBCXX_USE_C99_COMPLEX_TR1 */
+
+/* Define if C99 functions in <ctype.h> should be imported in <tr1/cctype> in
+   namespace std::tr1. */
+#define _GLIBCXX_USE_C99_CTYPE_TR1 1
+
+/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
+   namespace std::tr1. */
+#define _GLIBCXX_USE_C99_FENV_TR1 1
+
+/* Define if C99 functions in <inttypes.h> should be imported in
+   <tr1/cinttypes> in namespace std::tr1. */
+#define _GLIBCXX_USE_C99_INTTYPES_TR1 1
+
+/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
+   <tr1/cinttypes> in namespace std::tr1. */
+/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+
+/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
+   in namespace std. */
+#define _GLIBCXX_USE_C99_MATH 1
+
+/* Define if C99 functions or macros in <math.h> should be imported in
+   <tr1/cmath> in namespace std::tr1. */
+/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+
+/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
+   namespace std::tr1. */
+#define _GLIBCXX_USE_C99_STDINT_TR1 1
+
+/* Defined if clock_gettime has monotonic clock support. */
+/* #undef _GLIBCXX_USE_CLOCK_MONOTONIC */
+
+/* Defined if clock_gettime has realtime clock support. */
+/* #undef _GLIBCXX_USE_CLOCK_REALTIME */
+
+/* Defined if gettimeofday is available. */
+#define _GLIBCXX_USE_GETTIMEOFDAY 1
+
+/* Define if LFS support is available. */
+/* #undef _GLIBCXX_USE_LFS */
+
+/* Define if code specialized for long long should be used. */
+#define _GLIBCXX_USE_LONG_LONG 1
+
+/* Defined if nanosleep is available. */
+/* #undef _GLIBCXX_USE_NANOSLEEP */
+
+/* Define if NLS translations are to be used. */
+/* #undef _GLIBCXX_USE_NLS */
+
+/* Define if /dev/random and /dev/urandom are available for the random_device
+   of TR1 (Chapter 5.1). */
+#define _GLIBCXX_USE_RANDOM_TR1 1
+
+/* Defined if sched_yield is available. */
+/* #undef _GLIBCXX_USE_SCHED_YIELD */
+
+/* Define if code specialized for wchar_t should be used. */
+#define _GLIBCXX_USE_WCHAR_T 1
+
+#if defined (HAVE__ACOSF) && ! defined (HAVE_ACOSF)
+# define HAVE_ACOSF 1
+# define acosf _acosf
+#endif
+
+#if defined (HAVE__ACOSL) && ! defined (HAVE_ACOSL)
+# define HAVE_ACOSL 1
+# define acosl _acosl
+#endif
+
+#if defined (HAVE__ASINF) && ! defined (HAVE_ASINF)
+# define HAVE_ASINF 1
+# define asinf _asinf
+#endif
+
+#if defined (HAVE__ASINL) && ! defined (HAVE_ASINL)
+# define HAVE_ASINL 1
+# define asinl _asinl
+#endif
+
+#if defined (HAVE__ATAN2F) && ! defined (HAVE_ATAN2F)
+# define HAVE_ATAN2F 1
+# define atan2f _atan2f
+#endif
+
+#if defined (HAVE__ATAN2L) && ! defined (HAVE_ATAN2L)
+# define HAVE_ATAN2L 1
+# define atan2l _atan2l
+#endif
+
+#if defined (HAVE__ATANF) && ! defined (HAVE_ATANF)
+# define HAVE_ATANF 1
+# define atanf _atanf
+#endif
+
+#if defined (HAVE__ATANL) && ! defined (HAVE_ATANL)
+# define HAVE_ATANL 1
+# define atanl _atanl
+#endif
+
+#if defined (HAVE__CEILF) && ! defined (HAVE_CEILF)
+# define HAVE_CEILF 1
+# define ceilf _ceilf
+#endif
+
+#if defined (HAVE__CEILL) && ! defined (HAVE_CEILL)
+# define HAVE_CEILL 1
+# define ceill _ceill
+#endif
+
+#if defined (HAVE__COSF) && ! defined (HAVE_COSF)
+# define HAVE_COSF 1
+# define cosf _cosf
+#endif
+
+#if defined (HAVE__COSHF) && ! defined (HAVE_COSHF)
+# define HAVE_COSHF 1
+# define coshf _coshf
+#endif
+
+#if defined (HAVE__COSHL) && ! defined (HAVE_COSHL)
+# define HAVE_COSHL 1
+# define coshl _coshl
+#endif
+
+#if defined (HAVE__COSL) && ! defined (HAVE_COSL)
+# define HAVE_COSL 1
+# define cosl _cosl
+#endif
+
+#if defined (HAVE__EXPF) && ! defined (HAVE_EXPF)
+# define HAVE_EXPF 1
+# define expf _expf
+#endif
+
+#if defined (HAVE__EXPL) && ! defined (HAVE_EXPL)
+# define HAVE_EXPL 1
+# define expl _expl
+#endif
+
+#if defined (HAVE__FABSF) && ! defined (HAVE_FABSF)
+# define HAVE_FABSF 1
+# define fabsf _fabsf
+#endif
+
+#if defined (HAVE__FABSL) && ! defined (HAVE_FABSL)
+# define HAVE_FABSL 1
+# define fabsl _fabsl
+#endif
+
+#if defined (HAVE__FINITE) && ! defined (HAVE_FINITE)
+# define HAVE_FINITE 1
+# define finite _finite
+#endif
+
+#if defined (HAVE__FINITEF) && ! defined (HAVE_FINITEF)
+# define HAVE_FINITEF 1
+# define finitef _finitef
+#endif
+
+#if defined (HAVE__FINITEL) && ! defined (HAVE_FINITEL)
+# define HAVE_FINITEL 1
+# define finitel _finitel
+#endif
+
+#if defined (HAVE__FLOORF) && ! defined (HAVE_FLOORF)
+# define HAVE_FLOORF 1
+# define floorf _floorf
+#endif
+
+#if defined (HAVE__FLOORL) && ! defined (HAVE_FLOORL)
+# define HAVE_FLOORL 1
+# define floorl _floorl
+#endif
+
+#if defined (HAVE__FMODF) && ! defined (HAVE_FMODF)
+# define HAVE_FMODF 1
+# define fmodf _fmodf
+#endif
+
+#if defined (HAVE__FMODL) && ! defined (HAVE_FMODL)
+# define HAVE_FMODL 1
+# define fmodl _fmodl
+#endif
+
+#if defined (HAVE__FPCLASS) && ! defined (HAVE_FPCLASS)
+# define HAVE_FPCLASS 1
+# define fpclass _fpclass
+#endif
+
+#if defined (HAVE__FREXPF) && ! defined (HAVE_FREXPF)
+# define HAVE_FREXPF 1
+# define frexpf _frexpf
+#endif
+
+#if defined (HAVE__FREXPL) && ! defined (HAVE_FREXPL)
+# define HAVE_FREXPL 1
+# define frexpl _frexpl
+#endif
+
+#if defined (HAVE__HYPOT) && ! defined (HAVE_HYPOT)
+# define HAVE_HYPOT 1
+# define hypot _hypot
+#endif
+
+#if defined (HAVE__HYPOTF) && ! defined (HAVE_HYPOTF)
+# define HAVE_HYPOTF 1
+# define hypotf _hypotf
+#endif
+
+#if defined (HAVE__HYPOTL) && ! defined (HAVE_HYPOTL)
+# define HAVE_HYPOTL 1
+# define hypotl _hypotl
+#endif
+
+#if defined (HAVE__ISINF) && ! defined (HAVE_ISINF)
+# define HAVE_ISINF 1
+# define isinf _isinf
+#endif
+
+#if defined (HAVE__ISINFF) && ! defined (HAVE_ISINFF)
+# define HAVE_ISINFF 1
+# define isinff _isinff
+#endif
+
+#if defined (HAVE__ISINFL) && ! defined (HAVE_ISINFL)
+# define HAVE_ISINFL 1
+# define isinfl _isinfl
+#endif
+
+#if defined (HAVE__ISNAN) && ! defined (HAVE_ISNAN)
+# define HAVE_ISNAN 1
+# define isnan _isnan
+#endif
+
+#if defined (HAVE__ISNANF) && ! defined (HAVE_ISNANF)
+# define HAVE_ISNANF 1
+# define isnanf _isnanf
+#endif
+
+#if defined (HAVE__ISNANL) && ! defined (HAVE_ISNANL)
+# define HAVE_ISNANL 1
+# define isnanl _isnanl
+#endif
+
+#if defined (HAVE__LDEXPF) && ! defined (HAVE_LDEXPF)
+# define HAVE_LDEXPF 1
+# define ldexpf _ldexpf
+#endif
+
+#if defined (HAVE__LDEXPL) && ! defined (HAVE_LDEXPL)
+# define HAVE_LDEXPL 1
+# define ldexpl _ldexpl
+#endif
+
+#if defined (HAVE__LOG10F) && ! defined (HAVE_LOG10F)
+# define HAVE_LOG10F 1
+# define log10f _log10f
+#endif
+
+#if defined (HAVE__LOG10L) && ! defined (HAVE_LOG10L)
+# define HAVE_LOG10L 1
+# define log10l _log10l
+#endif
+
+#if defined (HAVE__LOGF) && ! defined (HAVE_LOGF)
+# define HAVE_LOGF 1
+# define logf _logf
+#endif
+
+#if defined (HAVE__LOGL) && ! defined (HAVE_LOGL)
+# define HAVE_LOGL 1
+# define logl _logl
+#endif
+
+#if defined (HAVE__MODF) && ! defined (HAVE_MODF)
+# define HAVE_MODF 1
+# define modf _modf
+#endif
+
+#if defined (HAVE__MODFF) && ! defined (HAVE_MODFF)
+# define HAVE_MODFF 1
+# define modff _modff
+#endif
+
+#if defined (HAVE__MODFL) && ! defined (HAVE_MODFL)
+# define HAVE_MODFL 1
+# define modfl _modfl
+#endif
+
+#if defined (HAVE__POWF) && ! defined (HAVE_POWF)
+# define HAVE_POWF 1
+# define powf _powf
+#endif
+
+#if defined (HAVE__POWL) && ! defined (HAVE_POWL)
+# define HAVE_POWL 1
+# define powl _powl
+#endif
+
+#if defined (HAVE__QFPCLASS) && ! defined (HAVE_QFPCLASS)
+# define HAVE_QFPCLASS 1
+# define qfpclass _qfpclass
+#endif
+
+#if defined (HAVE__SINCOS) && ! defined (HAVE_SINCOS)
+# define HAVE_SINCOS 1
+# define sincos _sincos
+#endif
+
+#if defined (HAVE__SINCOSF) && ! defined (HAVE_SINCOSF)
+# define HAVE_SINCOSF 1
+# define sincosf _sincosf
+#endif
+
+#if defined (HAVE__SINCOSL) && ! defined (HAVE_SINCOSL)
+# define HAVE_SINCOSL 1
+# define sincosl _sincosl
+#endif
+
+#if defined (HAVE__SINF) && ! defined (HAVE_SINF)
+# define HAVE_SINF 1
+# define sinf _sinf
+#endif
+
+#if defined (HAVE__SINHF) && ! defined (HAVE_SINHF)
+# define HAVE_SINHF 1
+# define sinhf _sinhf
+#endif
+
+#if defined (HAVE__SINHL) && ! defined (HAVE_SINHL)
+# define HAVE_SINHL 1
+# define sinhl _sinhl
+#endif
+
+#if defined (HAVE__SINL) && ! defined (HAVE_SINL)
+# define HAVE_SINL 1
+# define sinl _sinl
+#endif
+
+#if defined (HAVE__SQRTF) && ! defined (HAVE_SQRTF)
+# define HAVE_SQRTF 1
+# define sqrtf _sqrtf
+#endif
+
+#if defined (HAVE__SQRTL) && ! defined (HAVE_SQRTL)
+# define HAVE_SQRTL 1
+# define sqrtl _sqrtl
+#endif
+
+#if defined (HAVE__STRTOF) && ! defined (HAVE_STRTOF)
+# define HAVE_STRTOF 1
+# define strtof _strtof
+#endif
+
+#if defined (HAVE__STRTOLD) && ! defined (HAVE_STRTOLD)
+# define HAVE_STRTOLD 1
+# define strtold _strtold
+#endif
+
+#if defined (HAVE__TANF) && ! defined (HAVE_TANF)
+# define HAVE_TANF 1
+# define tanf _tanf
+#endif
+
+#if defined (HAVE__TANHF) && ! defined (HAVE_TANHF)
+# define HAVE_TANHF 1
+# define tanhf _tanhf
+#endif
+
+#if defined (HAVE__TANHL) && ! defined (HAVE_TANHL)
+# define HAVE_TANHL 1
+# define tanhl _tanhl
+#endif
+
+#if defined (HAVE__TANL) && ! defined (HAVE_TANL)
+# define HAVE_TANL 1
+# define tanl _tanl
+#endif
diff --git a/gnu/lib/gcc44/libstdc++/os_defines.h b/gnu/lib/gcc44/libstdc++/os_defines.h
new file mode 100644 (file)
index 0000000..5375432
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef _GLIBCXX_OS_DEFINES
+#define _GLIBCXX_OS_DEFINES 1
+
+#include <sys/types.h>
+
+#endif
diff --git a/gnu/lib/gcc44/libsupc++/Makefile b/gnu/lib/gcc44/libsupc++/Makefile
new file mode 100644 (file)
index 0000000..f63d2c0
--- /dev/null
@@ -0,0 +1,15 @@
+.include "../Makefile.inc"
+
+INCS=          \
+       exception new typeinfo cxxabi.h cxxabi-forced.h exception_defines.h \
+       initializer_list exception_ptr.h
+
+INCSDIR=       ${INCLUDEDIR}/c++/${GCCPOINTVER}
+
+LIB=           supc++
+
+.include "Makefile.src"
+
+.PATH: ${GCCDIR}/libiberty
+
+.include <bsd.lib.mk>
diff --git a/gnu/usr.bin/cc44/Makefile b/gnu/usr.bin/cc44/Makefile
new file mode 100644 (file)
index 0000000..09ccd73
--- /dev/null
@@ -0,0 +1,16 @@
+SUBDIR=                cc_prep
+SUBDIR+=       gmp mpfr
+SUBDIR+=       libiberty libdecnumber
+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_OBJC)
+SUBDIR+=       cc1obj
+.endif
+
+.ORDER: ${SUBDIR}
+
+.include <bsd.subdir.mk>
diff --git a/gnu/usr.bin/cc44/Makefile.inc b/gnu/usr.bin/cc44/Makefile.inc
new file mode 100644 (file)
index 0000000..05da0dc
--- /dev/null
@@ -0,0 +1,72 @@
+.if !target(__<cc.Makefile.inc>__)
+__<cc.Makefile.inc>__:
+
+GCCCOMPLETEVER=        4.4.1
+GCCPOINTVER=   ${GCCCOMPLETEVER:R}
+GCCSHORTVER=   ${GCCPOINTVER:S/.//}
+
+GCCDOCSUFFIX=  ${GCCSHORTVER}
+
+CFLAGS+=       -DGCCPOINTVER=\"${GCCPOINTVER}\"
+CFLAGS+=       -DGCCSHORTVER=\"${GCCSHORTVER}\"
+CFLAGS+=       -DBASEVER=\"${GCCCOMPLETEVER}\"
+
+# XXX
+CFLAGS+=       -DDFBSD_MAJOR=2
+CFLAGS+=       -DDFBSD_CC_VER=100001
+
+BINDIR?=       /usr/libexec/gcc${GCCSHORTVER}
+.include "../Makefile.inc"
+
+GCCDIR=                ${.CURDIR}/${TOP_PREFIX}/../../../../contrib/gcc-${GCCPOINTVER}
+OTOPDIR=       ${.OBJDIR}/${TOP_PREFIX}/..
+STOPDIR=       ${.CURDIR}/${TOP_PREFIX}/..
+
+TOOLDIR=       ${OTOPDIR}/cc_tools/tools
+
+CFLAGS+=       -I${OTOPDIR}/cc_prep -I${STOPDIR}/cc_prep -I${STOPDIR}/cc_prep/config
+CFLAGS+=       -I${GCCDIR}/gcc -I${GCCDIR}/gcc/config -I${GCCDIR}/include
+CFLAGS+=       -I${GCCDIR}/libcpp/include
+CFLAGS+=       -I${GCCDIR}/libdecnumber -I${GCCDIR}/libdecnumber/dpd
+CFLAGS+=       -I${OTOPDIR}/libdecnumber
+CFLAGS+=       -I${STOPDIR}/gmp
+CFLAGS+=       -I${.CURDIR}/${TOP_PREFIX}/../../../../contrib/mpfr -I${STOPDIR}/mpfr
+CFLAGS+=       -I${GCCDIR}/gcc/config/${GCC_CPU} -I${TOOLDIR}
+
+CFLAGS+=       -DIN_GCC -DHAVE_CONFIG_H
+CFLAGS+=       -DPREFIX=\"${TOOLS_PREFIX}/usr\"
+CFLAGS+=       -DPREFIX2=\"${USRDATA_PREFIX}/usr\"
+
+.include "Makefile.tgt"
+
+.if ${TARGET_ARCH} != ${MACHINE_ARCH}
+CFLAGS+=       -DCROSS_COMPILE
+.endif
+
+.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
+.PATH: ${GCCDIR}/gcc/config/${GCC_CPU} ${TOOLDIR}
+.endif
+
+LIBIBERTY=     ${OTOPDIR}/libiberty/libiberty.a
+LIBBACKEND=    ${OTOPDIR}/libbackend/libbackend.a
+LIBCPP=                ${OTOPDIR}/libcpp/libcpp.a
+LIBDECNUMBER=  ${OTOPDIR}/libdecnumber/libdecnumber.a
+
+LIBGMP=                ${OTOPDIR}/gmp/libgmp.a
+LIBMPFR=       ${OTOPDIR}/mpfr/libmpfr.a
+
+GMPLIBS=       ${LIBMPFR} ${LIBGMP}
+STDLIBS=       ${LIBCPP} ${LIBIBERTY} ${LIBDECNUMBER} 
+BACKENDLIBS=   ${GMPLIBS}
+
+.if !defined(GCC_NO_LIBS)
+LDADD+=        ${STDLIBS}
+DPADD+=        ${STDLIBS}
+.endif
+
+.endif
diff --git a/gnu/usr.bin/cc44/Makefile.langs b/gnu/usr.bin/cc44/Makefile.langs
new file mode 100644 (file)
index 0000000..7b2b137
--- /dev/null
@@ -0,0 +1,97 @@
+.include "Makefile.inc"
+
+.if !defined(NO_CXX)
+lang_tree_files=       cp/cp-tree.def
+.endif
+.if !defined(NO_OBJC)
+lang_tree_files+=      objc/objc-tree.def
+.endif
+
+optionsfiles=  ${GCCDIR}/gcc/c.opt
+optionsfiles+= ${GCCDIR}/gcc/common.opt
+optionsfiles+= ${GCCDIR}/gcc/config/${GCC_CPU}/${GCC_CPU}.opt
+
+.if !defined(NO_CXX)
+LANG_SPECS_FILES=      cp/lang-specs.h
+.endif
+.if !defined(NO_OBJC)
+LANG_SPECS_FILES+=     objc/lang-specs.h
+.endif
+
+# Object files for gcc driver.
+GCC_SRCS = gcc.c opts-common.c options.c
+
+# this is directly from GCC's Makefile, beware evil
+GTFILES = $(CPP_ID_DATA_H) $(srcdir)/input.h $(srcdir)/coretypes.h \
+  $(host_xm_file_list) \
+  $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \
+  $(srcdir)/alias.h $(srcdir)/coverage.c $(srcdir)/rtl.h \
+  $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/varray.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
+  $(srcdir)/real.h $(srcdir)/function.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \
+  $(srcdir)/fixed-value.h \
+  $(srcdir)/ipa-reference.h $(srcdir)/output.h $(srcdir)/cfgloop.h \
+  $(srcdir)/cselib.h $(srcdir)/basic-block.h  $(srcdir)/cgraph.h \
+  $(srcdir)/reload.h $(srcdir)/caller-save.c \
+  $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \
+  $(srcdir)/ipa-prop.c $(srcdir)/ipa-cp.c $(srcdir)/ipa-inline.c $(srcdir)/matrix-reorg.c \
+  $(srcdir)/dbxout.c $(srcdir)/ipa-struct-reorg.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \
+  $(srcdir)/tree-vect-generic.c \
+  $(srcdir)/dojump.c \
+  $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
+  $(srcdir)/expr.h \
+  $(srcdir)/function.c $(srcdir)/except.h \
+  $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \
+  $(srcdir)/profile.c $(srcdir)/reginfo.c $(srcdir)/mcf.c \
+  $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c $(srcdir)/cfglayout.h \
+  $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \
+  $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \
+  $(srcdir)/gimple.h $(srcdir)/gimple.c \
+  $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \
+  $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c $(srcdir)/tree-ssa-address.c \
+  $(srcdir)/tree-cfg.c \
+  $(srcdir)/tree-dfa.c \
+  $(srcdir)/tree-iterator.c $(srcdir)/gimplify.c \
+  $(srcdir)/tree-chrec.h \
+  $(srcdir)/tree-scalar-evolution.c \
+  $(srcdir)/tree-ssa-operands.h \
+  $(srcdir)/tree-profile.c $(srcdir)/tree-nested.c \
+  $(srcdir)/varpool.c \
+  $(srcdir)/tree-parloops.c \
+  $(srcdir)/omp-low.c \
+  $(srcdir)/targhooks.c $(out_file) $(srcdir)/passes.c $(srcdir)/cgraphunit.c \
+  $(srcdir)/tree-ssa-propagate.c \
+  $(srcdir)/tree-phinodes.c \
+  $(srcdir)/ipa-reference.c $(srcdir)/tree-ssa-structalias.h \
+  $(srcdir)/tree-ssa-structalias.c
+
+.if !defined(NO_CXX)
+GTFILES_CPP= \
+  [cp] \
+  $(srcdir)/cp/rtti.c $(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.h $(srcdir)/c-pragma.c \
+  $(srcdir)/cp/class.c $(srcdir)/cp/cp-objcp-common.c
+GTFILES+=      ${GTFILES_CPP}
+.endif
+
+.if !defined(NO_OBJC)
+GTFILES_OBJC= \
+  [objc] \
+  $(srcdir)/objc/objc-act.h $(srcdir)/c-parser.c $(srcdir)/c-tree.h \
+  $(srcdir)/c-decl.c $(srcdir)/c-objc-common.c $(srcdir)/c-common.c \
+  $(srcdir)/c-common.h $(srcdir)/c-pragma.h $(srcdir)/c-pragma.c \
+  $(srcdir)/objc/objc-act.c
+GTFILES+=      ${GTFILES_OBJC}
+.endif
+
+# C
+GTFILES_C+= \
+  [c] \
+  $(srcdir)/c-lang.c $(srcdir)/c-tree.h $(srcdir)/c-decl.c \
+  $(srcdir)/c-common.c $(srcdir)/c-common.h $(srcdir)/c-pragma.h \
+  $(srcdir)/c-pragma.c $(srcdir)/c-objc-common.c $(srcdir)/c-parser.c
+GTFILES+=      ${GTFILES_C}
diff --git a/gnu/usr.bin/cc44/Makefile.tgt b/gnu/usr.bin/cc44/Makefile.tgt
new file mode 100644 (file)
index 0000000..b012f9b
--- /dev/null
@@ -0,0 +1,68 @@
+TARGET_ARCH?=  ${MACHINE_ARCH}
+
+version=       ${GCCALLVER}
+target_machine=        ${TARGET_ARCH}-pc-dragonflybsd
+
+GCC_CPU?=      ${TARGET_ARCH}
+.if ${TARGET_ARCH} == "amd64"
+GCC_CPU=       i386
+.endif
+
+# from gcc/Makefile
+srcdir= ${GCCDIR}/gcc
+
+host_xm_file_list=     ${STOPDIR}/cc_prep/auto-host.h
+host_xm_file_list+=    ${GCCDIR}/include/ansidecl.h
+HASHTAB_H   = ${GCCDIR}/include/hashtab.h
+SPLAY_TREE_H= ${GCCDIR}/include/splay-tree.h
+SYMTAB_H    = ${GCCDIR}/libcpp/include/symtab.h
+CPP_ID_DATA_H= ${GCCDIR}/libcpp/include/line-map.h \
+               ${GCCDIR}/libcpp/include/cpplib.h \
+               ${GCCDIR}/libcpp/include/cpp-id-data.h
+
+md_file=       ${GCCDIR}/gcc/config/${GCC_CPU}/${GCC_CPU}.md
+
+out_file=      $(srcdir)/config/${GCC_CPU}/${GCC_CPU}.c
+out_object_file=${out_file:.c=.o}
+
+EXTRA_GCC_SRCS=        driver-${GCC_CPU}.c
+
+GTFILES_SRCDIR = $(srcdir)
+
+# This is ordered to avoid build warnings/errors
+
+TARGET_INC=    options.h
+.if ${TARGET_ARCH} == "amd64"
+TARGET_INC+=   i386/biarch64.h
+.endif
+TARGET_INC+=   ${GCC_CPU}/${GCC_CPU}.h
+.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
+TARGET_INC+=   ${GCC_CPU}/unix.h
+TARGET_INC+=   ${GCC_CPU}/att.h
+.endif
+TARGET_INC+=   dbxelf.h
+TARGET_INC+=   elfos.h
+TARGET_INC+=   dragonfly-native.h
+TARGET_INC+=   dragonfly-spec.h
+TARGET_INC+=   dragonfly.h
+.if ${TARGET_ARCH} == "amd64"
+TARGET_INC+=   ${GCC_CPU}/x86-64.h
+.endif
+TARGET_INC+=   ${GCC_CPU}/dragonfly.h
+.if ${TARGET_ARCH} == "amd64"
+TARGET_INC+=   ${GCC_CPU}/dragonfly64.h
+.endif
+TARGET_INC+=   defaults.h
+
+#
+# Use TARGET_INC as a template and build a list of target specific
+# include files for gengtype to scan
+#
+.for H in ${TARGET_INC}
+.for D in ${GCCDIR}/gcc/config ${GCCDIR}/gcc \
+       ${STOPDIR}/cc_prep/config ${STOPDIR}/cc_prep ${OTOPDIR}/cc_prep
+.if exists($D/$H) && empty(tm_file_list:M*/$H)
+tm_file_list+= $D/$H
+.endif
+.endfor
+.endfor
diff --git a/gnu/usr.bin/cc44/c++/Makefile b/gnu/usr.bin/cc44/c++/Makefile
new file mode 100644 (file)
index 0000000..5be6fe3
--- /dev/null
@@ -0,0 +1,27 @@
+GCC_LANG_DIR=  gcc/cp
+
+.include "../Makefile.inc"
+.include "../Makefile.langs"
+
+PROG=  c++
+LINKS= ${BINDIR}/c++ ${BINDIR}/g++
+LINKS+=        ${BINDIR}/c++ ${BINDIR}/CC
+MAN=   g++${GCCSHORTVER}.1
+
+.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
+MLINKS=        g++${GCCSHORTVER}.1 g++${GCCDOCSUFFIX}.1
+.endif
+
+SRCS=  ${GCC_SRCS} g++spec.c intl.c prefix.c version.c
+SRCS+= ${EXTRA_GCC_SRCS}
+
+CFLAGS+= -DDEFAULT_TARGET_VERSION=\"${version}\"
+CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"${target_machine}\"
+CFLAGS+= -DGCC_DRIVER
+
+g++${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/g++.1
+       cp ${.ALLSRC} ${.TARGET}
+
+CLEANFILES+=   g++${GCCSHORTVER}.1
+
+.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/cc44/c++filt/Makefile b/gnu/usr.bin/cc44/c++filt/Makefile
new file mode 100644 (file)
index 0000000..fa1eb55
--- /dev/null
@@ -0,0 +1,17 @@
+.include "../Makefile.inc"
+
+PROG=  c++filt
+NOMAN= 1
+
+SRCS=  cp-demangle.c cp-demint.c cplus-dem.c 
+SRCS+=  dyn-string.c safe-ctype.c xexit.c xmalloc.c xstrdup.c
+
+CFLAGS+= -DSTANDALONE_DEMANGLER -DIN_GCC -DVERSION=\"$(version)\"
+
+DPADD+=        ${LIBCC_INT}
+LDADD+=        ${LIBCC_INT}
+
+GCC_NO_LIBERTY=        # defined
+.PATH: ${GCCDIR}/libiberty
+
+.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/cc44/cc/Makefile b/gnu/usr.bin/cc44/cc/Makefile
new file mode 100644 (file)
index 0000000..b2286fa
--- /dev/null
@@ -0,0 +1,28 @@
+.include "../Makefile.inc"
+.include "../Makefile.langs"
+
+PROG=  cc
+LINKS= ${BINDIR}/cc ${BINDIR}/gcc
+MAN=   gcc${GCCSHORTVER}.1
+
+.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
+MLINKS=        gcc${GCCSHORTVER}.1 cc${GCCDOCSUFFIX}.1
+MLINKS+=gcc${GCCSHORTVER}.1 c++${GCCDOCSUFFIX}.1
+MLINKS+=gcc${GCCSHORTVER}.1 g++${GCCDOCSUFFIX}.1
+MLINKS+=gcc${GCCSHORTVER}.1 gcc${GCCDOCSUFFIX}.1
+MLINKS+=gcc${GCCSHORTVER}.1 CC${GCCDOCSUFFIX}.1
+.endif
+
+SRCS=  ${GCC_SRCS} gccspec.c intl.c prefix.c version.c
+SRCS+= ${EXTRA_GCC_SRCS}
+
+CFLAGS+= -DDEFAULT_TARGET_VERSION=\"${version}\"
+CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"${target_machine}\"
+CFLAGS+= -DGCC_DRIVER
+
+gcc${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/gcc.1
+       cp ${.ALLSRC} ${.TARGET}
+
+CLEANFILES+=   gcc${GCCSHORTVER}.1
+
+.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/cc44/cc1/Makefile b/gnu/usr.bin/cc44/cc1/Makefile
new file mode 100644 (file)
index 0000000..1e6c3a7
--- /dev/null
@@ -0,0 +1,42 @@
+CFLAGS+=       -DTARGET_MACHINE=\"${target}\" -DHOST_MACHINE=\"${target}\"
+
+PROG=          cc1
+NOMAN=         1
+NOSHARED?=     yes
+
+SRCS=  c-lang.c stub-objc.c
+
+SRCS+= attribs.c c-errors.c c-lex.c c-pragma.c c-decl.c c-typeck.c \
+       c-convert.c c-aux-info.c c-common.c c-opts.c c-format.c c-semantics.c \
+       c-ppoutput.c c-cppbuiltin.c \
+       c-objc-common.c c-dump.c c-pch.c c-parser.c \
+       c-gimplify.c tree-mudflap.c c-pretty-print.c c-omp.c
+
+SRCS+= ${GCC_CPU}-c.c
+
+SRCS+= main.c
+
+#SRCS+=        tm-preds.h tree-check.h genrtl.h insn-flags.h insn-constants.h
+#SRCS+=        gtype-desc.h insn-modes.h insn-config.h options.h insn-modes.c
+#SRCS+=        insn-emit.c insn-codes.h insn-attrtab.c insn-attr.h insn-extract.c
+#SRCS+=        insn-opinit.c genrtl.c
+
+LDADD+=        ${LIBBACKEND} ${BACKENDLIBS}
+DPADD+=        ${LIBBACKEND} ${BACKENDLIBS}
+
+CFLAGS+= -I.
+
+OBJS+= cc1-checksum.o
+
+.include <bsd.prog.mk>
+
+# compiler checksum handling
+CLEANFILES+=   cc1-checksum.c dummy-checksum.o cc1-dummy
+
+cc1-dummy: ${OBJS:Ncc1-checksum.o} dummy-checksum.o
+       ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} ${LDADD}
+
+cc1-checksum.c: cc1-dummy
+       ${TOOLDIR}/genchecksum.nx ${.ALLSRC} > ${.TARGET}
+
+.include "../Makefile.langs"
diff --git a/gnu/usr.bin/cc44/cc1obj/Makefile b/gnu/usr.bin/cc44/cc1obj/Makefile
new file mode 100644 (file)
index 0000000..8a37839
--- /dev/null
@@ -0,0 +1,42 @@
+GCC_LANG_DIR=  gcc/objc
+
+CFLAGS+=       -DTARGET_MACHINE=\"${target_machine}\"
+CFLAGS+=       -DHOST_MACHINE=\"${target_machine}\"
+
+PROG=  cc1obj
+NOMAN= 1
+
+# verbatim from gcc/Makefile and gcc/objc/Make-lang.in
+# Language-specific object files for C and Objective C.
+C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
+  c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \
+  c-ppoutput.o c-cppbuiltin.o \
+  c-objc-common.o c-dump.o c-pch.o c-parser.o \
+  c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o
+
+# Language-specific object files for Objective C.
+OBJC_OBJS = objc/objc-lang.o objc/objc-act.o ${C_AND_OBJC_OBJS}
+
+
+SRCS=  ${OBJC_OBJS:T:.o=.c}
+SRCS+= main.c
+SRCS+= ${GCC_CPU}-c.c          # this is C_TARGET_OBJS
+
+LDADD+=        ${LIBBACKEND} ${BACKENDLIBS}
+DPADD+=        ${LIBBACKEND} ${BACKENDLIBS}
+
+OBJS+= cc1obj-checksum.o
+
+.include <bsd.prog.mk>
+
+# compiler checksum handling
+CLEANFILES+=   cc1obj-checksum.c dummy-checksum.o cc1obj-dummy
+
+cc1obj-dummy: ${OBJS:Ncc1obj-checksum.o} dummy-checksum.o
+       ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} ${LDADD}
+
+cc1obj-checksum.c: cc1obj-dummy
+       ${TOOLDIR}/genchecksum.nx ${.ALLSRC} > ${.TARGET}
+
+
+.include "../Makefile.langs"
diff --git a/gnu/usr.bin/cc44/cc1plus/Makefile b/gnu/usr.bin/cc44/cc1plus/Makefile
new file mode 100644 (file)
index 0000000..c522ab6
--- /dev/null
@@ -0,0 +1,50 @@
+GCC_LANG_DIR=  gcc/cp
+
+CFLAGS+=       -DTARGET_MACHINE=\"${target_machine}\"
+CFLAGS+=       -DHOST_MACHINE=\"${target_machine}\"
+
+PROG=  cc1plus
+NOMAN= 1
+
+# verbatim from gcc/cp/Make-lang.in
+# The compiler itself.
+# Shared with C front end:
+CXX_C_OBJS = attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o \
+       c-dump.o $(CXX_TARGET_OBJS) c-pretty-print.o c-opts.o c-pch.o \
+       incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o \
+       c-gimplify.o c-omp.o tree-inline.o
+
+# Language-specific object files for C++ and Objective C++.
+CXX_AND_OBJCXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \
+ cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parser.o cp/ptree.o cp/rtti.o \
+ cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o \
+ cp/search.o cp/semantics.o cp/tree.o cp/repo.o cp/dump.o cp/optimize.o \
+ cp/mangle.o cp/cp-objcp-common.o cp/name-lookup.o cp/cxx-pretty-print.o \
+ cp/cp-gimplify.o tree-mudflap.o $(CXX_C_OBJS)
+
+# Language-specific object files for C++.
+CXX_OBJS = cp/cp-lang.o stub-objc.o $(CXX_AND_OBJCXX_OBJS)
+
+
+SRCS=  ${CXX_OBJS:T:.o=.c}
+SRCS+= main.c
+SRCS+= ${GCC_CPU}-c.c          # this is CXX_TARGET_OBJS
+
+LDADD+=        ${LIBBACKEND} ${BACKENDLIBS}
+DPADD+=        ${LIBBACKEND} ${BACKENDLIBS}
+
+OBJS+= cc1plus-checksum.o
+
+.include <bsd.prog.mk>
+
+# compiler checksum handling
+CLEANFILES+=   cc1plus-checksum.c dummy-checksum.o cc1plus-dummy
+
+cc1plus-dummy: ${OBJS:Ncc1plus-checksum.o} dummy-checksum.o
+       ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} ${LDADD}
+
+cc1plus-checksum.c: cc1plus-dummy
+       ${TOOLDIR}/genchecksum.nx ${.ALLSRC} > ${.TARGET}
+
+
+.include "../Makefile.langs"
diff --git a/gnu/usr.bin/cc44/cc_prep/Makefile b/gnu/usr.bin/cc44/cc_prep/Makefile
new file mode 100644 (file)
index 0000000..ad7a523
--- /dev/null
@@ -0,0 +1,94 @@
+.include "../Makefile.inc"
+.include "../Makefile.langs"
+
+CONTRIBDIR=    ${GCCDIR}/gcc
+
+version.c: ${CONTRIBDIR}/version.c Makefile ../Makefile.inc
+       > ${.TARGET}
+       echo '#define BASEVER "${GCCCOMPLETEVER}"' >> ${.TARGET}
+       echo '#define DATESTAMP ""' >> ${.TARGET}
+       echo '#define DEVPHASE ""' >> ${.TARGET}
+       echo '#define REVISION ""' >> ${.TARGET}
+       echo '#define PKGVERSION "(DragonFly) "' >> ${.TARGET}
+       echo '#define BUGURL "<http://bugs.dragonflybsd.org>"' >> ${.TARGET}
+       cat ${.ALLSRC:M*.c} >> ${.TARGET}
+
+configargs.h: Makefile
+       echo '/* Generated automatically. */'           > ${.TARGET}
+       echo 'static const char configuration_arguments[] = '   >> ${.TARGET}
+       echo '  "DragonFly/${TARGET_ARCH} system compiler";'    >> ${.TARGET}
+       echo 'static const char thread_model[] = "posix";'      >> ${.TARGET}
+       echo                                            >> ${.TARGET}
+       echo 'static const struct {'                    >> ${.TARGET}
+       echo '  const char *name, *value;'              >> ${.TARGET}
+       echo '} configure_default_options[] ='          >> ${.TARGET}
+       echo '{ { NULL, NULL} };'                       >> ${.TARGET}
+
+bconfig.h:
+       echo '#ifndef GCC_BCONFIG_H'                    > ${.TARGET}
+       echo '#define GCC_BCONFIG_H'                    >> ${.TARGET}
+       echo '#include "auto-host.h"'                   >> ${.TARGET}
+       echo '#ifdef IN_GCC'                            >> ${.TARGET}
+       echo '# include "ansidecl.h"'                   >> ${.TARGET}
+       echo '#endif'                                   >> ${.TARGET}
+       echo '#endif /* GCC_BCONFIG_H */'               >> ${.TARGET}
+
+tm.h:
+       echo '#ifndef GCC_TM_H'                         > ${.TARGET}
+       echo '#define GCC_TM_H'                         >> ${.TARGET}
+       echo '#ifdef IN_GCC'                            >> ${.TARGET}
+.for H in ${TARGET_INC}
+       echo '#include "$H"'                            >> ${.TARGET}
+.endfor
+       echo '#if !defined GENERATOR_FILE && !defined USED_FOR_TARGET' >> ${.TARGET}
+       echo '# include "insn-constants.h"'             >> ${.TARGET}
+       echo '# include "insn-flags.h"'                 >> ${.TARGET}
+       echo '#endif'                                   >> ${.TARGET}
+       echo '#endif'                                   >> ${.TARGET}
+       echo '#endif /* GCC_TM_H */'                    >> ${.TARGET}
+
+tm_p.h:
+       echo '#ifndef GCC_TM_P_H'                       > ${.TARGET}
+       echo '#define GCC_TM_P_H'                       >> ${.TARGET}
+       echo '#ifdef IN_GCC'                            >> ${.TARGET}
+       echo '#include "config/${GCC_CPU}/${GCC_CPU}-protos.h"' >> ${.TARGET}
+       echo '#include "tm-preds.h"'                    >> ${.TARGET}
+       echo '#endif'                                   >> ${.TARGET}
+       echo '#endif /* GCC_TM_P_H */'                  >> ${.TARGET}
+
+optionlist: ${optionsfiles} Makefile
+       /usr/bin/awk -f ${GCCDIR}/gcc/opt-gather.awk ${optionsfiles} > optionlist
+
+options.c: optionlist
+       /usr/bin/awk -f ${GCCDIR}/gcc/opt-functions.awk -f ${GCCDIR}/gcc/optc-gen.awk \
+               -v header_name="config.h system.h coretypes.h tm.h" < optionlist > options.c
+
+options.h: optionlist
+       /usr/bin/awk -f ${GCCDIR}/gcc/opt-functions.awk -f ${GCCDIR}/gcc/opth-gen.awk \
+               < optionlist > options.h
+
+specs.h:
+       rm -f ${.TARGET}
+       touch ${.TARGET}
+.for F in ${LANG_SPECS_FILES}
+       echo "#include \"${F}\"" >> ${.TARGET}
+.endfor
+
+all-tree.def:
+       rm -f ${.TARGET}
+       echo '#include "tree.def"' >> ${.TARGET}
+       echo 'END_OF_BASE_TREE_CODES' >> ${.TARGET}
+       echo '#include "c-common.def"' >> ${.TARGET}
+.for F in ${lang_tree_files}
+       echo '#include "$F"' >> ${.TARGET}
+.endfor
+
+CLEANFILES+=   version.c configargs.h bconfig.h tm.h tm_p.h
+CLEANFILES+=   options.c options.h optionlist
+CLEANFILES+=   specs.h all-tree.def
+
+# keep this order!
+afterdepend: version.c configargs.h bconfig.h tm.h tm_p.h options.h options.c
+afterdepend: specs.h all-tree.def
+
+.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/cc44/cc_prep/auto-host.h b/gnu/usr.bin/cc44/cc_prep/auto-host.h
new file mode 100644 (file)
index 0000000..a174356
--- /dev/null
@@ -0,0 +1,1597 @@
+/* auto-host.h.  Generated by configure.  */
+/* config.in.  Generated from configure.ac by autoheader.  */
+
+/* Define as the number of bits in a byte, if `limits.h' doesn't. */
+#ifndef USED_FOR_TARGET
+/* #undef CHAR_BIT */
+#endif
+
+
+/* Define 0/1 to force the choice for exception handling model. */
+#ifndef USED_FOR_TARGET
+/* #undef CONFIG_SJLJ_EXCEPTIONS */
+#endif
+
+
+/* Define to enable the use of a default assembler. */
+#ifndef USED_FOR_TARGET
+/* #undef DEFAULT_ASSEMBLER */
+#endif
+
+
+/* Define to enable the use of a default linker. */
+#ifndef USED_FOR_TARGET
+/* #undef DEFAULT_LINKER */
+#endif
+
+
+/* Define if you want to use __cxa_atexit, rather than atexit, to register C++
+   destructors for local statics and global objects. This is essential for
+   fully standards-compliant handling of destructors, but requires
+   __cxa_atexit in libc. */
+#ifndef USED_FOR_TARGET
+/* #undef DEFAULT_USE_CXA_ATEXIT */
+#endif
+
+
+/* Define if you want assertions enabled. This is a cheap check. */
+#ifndef USED_FOR_TARGET
+#define ENABLE_ASSERT_CHECKING 1
+#endif
+
+
+/* Define if you want more run-time sanity checks. This one gets a grab bag of
+   miscellaneous but relatively cheap checks. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_CHECKING */
+#endif
+
+
+/* Define to 1 to specify that we are using the BID decimal floating point
+   format instead of DPD */
+#ifndef USED_FOR_TARGET
+#define ENABLE_DECIMAL_BID_FORMAT 0
+#endif
+
+
+/* Define to 1 to enable decimal float extension to C. */
+#ifndef USED_FOR_TARGET
+#define ENABLE_DECIMAL_FLOAT 0
+#endif
+
+
+/* Define if you want more run-time sanity checks for dataflow. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_DF_CHECKING */
+#endif
+
+
+/* Define to 1 to enable fixed-point arithmetic extension to C. */
+#ifndef USED_FOR_TARGET
+#define ENABLE_FIXED_POINT 0
+#endif
+
+
+/* Define if you want fold checked that it never destructs its argument. This
+   is quite expensive. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_FOLD_CHECKING */
+#endif
+
+
+/* Define if you want the garbage collector to operate in maximally paranoid
+   mode, validating the entire heap and collecting garbage at every
+   opportunity. This is extremely expensive. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_GC_ALWAYS_COLLECT */
+#endif
+
+
+/* Define if you want the garbage collector to do object poisoning and other
+   memory allocation checks. This is quite expensive. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_GC_CHECKING */
+#endif
+
+
+/* Define if you want operations on GIMPLE (the basic data structure of the
+   high-level optimizers) to be checked for dynamic type safety at runtime.
+   This is moderately expensive. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_GIMPLE_CHECKING */
+#endif
+
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_NLS */
+#endif
+
+
+/* Define if you want all operations on RTL (the basic data structure of the
+   optimizer and back end) to be checked for dynamic type safety at runtime.
+   This is quite expensive. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_RTL_CHECKING */
+#endif
+
+
+/* Define if you want RTL flag accesses to be checked against the RTL codes
+   that are supported for each access macro. This is relatively cheap. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_RTL_FLAG_CHECKING */
+#endif
+
+
+/* Define if you want runtime assertions enabled. This is a cheap check. */
+#define ENABLE_RUNTIME_CHECKING 1
+
+/* Define if you want all operations on trees (the basic data structure of the
+   front ends) to be checked for dynamic type safety at runtime. This is
+   moderately expensive. The tree browser debugging routines will also be
+   enabled by this option. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_TREE_CHECKING */
+#endif
+
+
+/* Define if you want all gimple types to be verified after gimplifiation.
+   This is cheap. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_TYPES_CHECKING */
+#endif
+
+
+/* Define if you want to run subprograms and generated programs through
+   valgrind (a memory checker). This is extremely expensive. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_VALGRIND_CHECKING */
+#endif
+
+
+/* Define to 1 if installation paths should be looked up in the Windows
+   Registry. Ignored on non-Windows hosts. */
+#ifndef USED_FOR_TARGET
+/* #undef ENABLE_WIN32_REGISTRY */
+#endif
+
+
+/* Define to the name of a file containing a list of extra machine modes for
+   this architecture. */
+#ifndef USED_FOR_TARGET
+#define EXTRA_MODES_FILE "config/i386/i386-modes.def"
+#endif
+
+
+/* Define to enable detailed memory allocation stats gathering. */
+#ifndef USED_FOR_TARGET
+/* #undef GATHER_STATISTICS */
+#endif
+
+
+/* Define to the type of elements in the array set by `getgroups'. Usually
+   this is either `int' or `gid_t'. */
+#ifndef USED_FOR_TARGET
+#define GETGROUPS_T gid_t
+#endif
+
+
+/* Define if the zone collector is in use */
+#ifndef USED_FOR_TARGET
+/* #undef GGC_ZONE */
+#endif
+
+
+/* mcontext_t fields start with __ */
+#ifndef USED_FOR_TARGET
+/* #undef HAS_MCONTEXT_T_UNDERSCORES */
+#endif
+
+
+/* Define if your assembler supports cmpb. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_CMPB */
+#endif
+
+
+/* Define if your assembler supports the --debug-prefix-map option. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_DEBUG_PREFIX_MAP */
+#endif
+
+
+/* Define if your assembler supports DFP instructions. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_DFP */
+#endif
+
+
+/* Define if your assembler supports .dtprelword. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_DTPRELWORD */
+#endif
+
+
+/* Define if your assembler supports dwarf2 .file/.loc directives, and
+   preserves file table indices exactly as given. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_DWARF2_DEBUG_LINE 1
+#endif
+
+
+/* Define if your assembler supports explicit relocations. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_EXPLICIT_RELOCS */
+#endif
+
+
+/* Define if your assembler supports fprnd. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_FPRND */
+#endif
+
+
+/* Define if your assembler supports the --gdwarf2 option. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_GDWARF2_DEBUG_FLAG 1
+#endif
+
+
+/* Define if your assembler supports .gnu_attribute. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_GNU_ATTRIBUTE */
+#endif
+
+
+/* Define true if the assembler supports '.long foo@GOTOFF'. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_GOTOFF_IN_DATA 1
+#endif
+
+
+/* Define if your assembler supports the --gstabs option. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_GSTABS_DEBUG_FLAG 1
+#endif
+
+
+/* Define if your assembler supports the Sun syntax for cmov. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_IX86_CMOV_SUN_SYNTAX */
+#endif
+
+
+/* Define if your assembler supports the subtraction of symbols in different
+   sections. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_IX86_DIFF_SECT_DELTA 1
+#endif
+
+
+/* Define if your assembler supports the ffreep mnemonic. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_IX86_FFREEP 1
+#endif
+
+
+/* Define if your assembler supports the sahf mnemonic. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_IX86_SAHF 1
+#endif
+
+
+/* Define if your assembler supports the lituse_jsrdirect relocation. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_JSRDIRECT_RELOCS */
+#endif
+
+
+/* Define if your assembler supports .sleb128 and .uleb128. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_LEB128 1
+#endif
+
+
+/* Define if the assembler won't complain about a line such as # 0 "" 2. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_LINE_ZERO 1
+#endif
+
+
+/* Define if your assembler supports ltoffx and ldxmov relocations. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_LTOFFX_LDXMOV_RELOCS */
+#endif
+
+
+/* Define if your assembler supports mfcr field. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_MFCRF */
+#endif
+
+
+/* Define if your assembler supports mffgpr and mftgpr. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_MFPGPR */
+#endif
+
+
+/* Define if your assembler supports the -no-mul-bug-abort option. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_NO_MUL_BUG_ABORT_OPTION */
+#endif
+
+
+/* Define if the assembler understands -mno-shared. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_NO_SHARED */
+#endif
+
+
+/* Define if your assembler supports offsetable %lo(). */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_OFFSETABLE_LO10 */
+#endif
+
+
+/* Define if your assembler supports popcntb field. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_POPCNTB */
+#endif
+
+
+/* Define if your assembler supports .register. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_REGISTER_PSEUDO_OP */
+#endif
+
+
+/* Define if your assembler supports R_PPC_REL16 relocs. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_REL16 */
+#endif
+
+
+/* Define if your assembler supports -relax option. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_RELAX_OPTION */
+#endif
+
+
+/* Define if your assembler and linker support unaligned PC relative relocs.
+   */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_SPARC_UA_PCREL */
+#endif
+
+
+/* Define if your assembler and linker support unaligned PC relative relocs
+   against hidden symbols. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_SPARC_UA_PCREL_HIDDEN */
+#endif
+
+
+/* Define if your assembler supports thread-local storage. */
+#ifndef USED_FOR_TARGET
+#define HAVE_AS_TLS 1
+#endif
+
+
+/* Define if your assembler supports VSX instructions. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_AS_VSX */
+#endif
+
+
+/* Define to 1 if you have the `atoll' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_ATOLL 1
+#endif
+
+
+/* Define to 1 if you have the `atoq' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_ATOQ */
+#endif
+
+
+/* Define to 1 if you have the `clearerr_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_CLEARERR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if you have the `clock' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_CLOCK 1
+#endif
+
+
+/* Define if <time.h> defines clock_t. */
+#ifndef USED_FOR_TARGET
+#define HAVE_CLOCK_T 1
+#endif
+
+
+/* Define 0/1 if your assembler and linker support COMDAT groups. */
+#ifndef USED_FOR_TARGET
+#define HAVE_COMDAT_GROUP 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'abort', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_ABORT 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'asprintf', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_ASPRINTF 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'atof', otherwise define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_ATOF 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'atol', otherwise define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_ATOL 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'basename', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_BASENAME 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'calloc', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_CALLOC 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'clearerr_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_CLEARERR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'clock', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_CLOCK 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'errno', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_ERRNO 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'feof_unlocked', otherwise define
+   to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FEOF_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'ferror_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FERROR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fflush_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FFLUSH_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fgetc_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FGETC_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fgets_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FGETS_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fileno_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FILENO_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fprintf_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FPRINTF_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fputc_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FPUTC_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fputs_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FPUTS_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fread_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FREAD_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'free', otherwise define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FREE 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'fwrite_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_FWRITE_UNLOCKED 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getchar_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETCHAR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getcwd', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETCWD 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getc_unlocked', otherwise define
+   to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETC_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getenv', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETENV 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getopt', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETOPT 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getpagesize', otherwise define
+   to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETPAGESIZE 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getrlimit', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETRLIMIT 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getrusage', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETRUSAGE 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'getwd', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_GETWD 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'ldgetname', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_LDGETNAME 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'malloc', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_MALLOC 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'putchar_unlocked', otherwise
+   define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_PUTCHAR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'putc_unlocked', otherwise define
+   to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_PUTC_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'realloc', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_REALLOC 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'sbrk', otherwise define to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_SBRK 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'setrlimit', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_SETRLIMIT 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'sigaltstack', otherwise define
+   to 0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_SIGALTSTACK 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'snprintf', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_SNPRINTF 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'strsignal', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_STRSIGNAL 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'strstr', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_STRSTR 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'strverscmp', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_STRVERSCMP 0
+#endif
+
+
+/* Define to 1 if we found a declaration for 'times', otherwise define to 0.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_TIMES 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'vasprintf', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_VASPRINTF 1
+#endif
+
+
+/* Define to 1 if we found a declaration for 'vsnprintf', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DECL_VSNPRINTF 1
+#endif
+
+
+/* Define to 1 if you have the <direct.h> header file. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_DIRECT_H */
+#endif
+
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_DLFCN_H 1
+#endif
+
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_FCNTL_H 1
+#endif
+
+
+/* Define to 1 if you have the `feof_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_FEOF_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if you have the `ferror_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_FERROR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if you have the `fflush_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FFLUSH_UNLOCKED */
+#endif
+
+
+/* Define to 1 if you have the `fgetc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FGETC_UNLOCKED */
+#endif
+
+
+/* Define to 1 if you have the `fgets_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FGETS_UNLOCKED */
+#endif
+
+
+/* Define to 1 if you have the `fileno_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_FILENO_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if you have the `fork' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_FORK 1
+#endif
+
+
+/* Define to 1 if you have the `fprintf_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FPRINTF_UNLOCKED */
+#endif
+
+
+/* Define to 1 if you have the `fputc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FPUTC_UNLOCKED */
+#endif
+
+
+/* Define to 1 if you have the `fputs_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FPUTS_UNLOCKED */
+#endif
+
+
+/* Define to 1 if you have the `fread_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FREAD_UNLOCKED */
+#endif
+
+
+/* Define to 1 if you have the `fwrite_unlocked' function. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_FWRITE_UNLOCKED */
+#endif
+
+
+/* Define if your assembler supports .balign and .p2align. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_BALIGN_AND_P2ALIGN 1
+#endif
+
+
+/* Define 0/1 if your assembler supports CFI directives. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_CFI_DIRECTIVE 1
+#endif
+
+
+/* Define 0/1 if your assembler supports .cfi_personality. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_CFI_PERSONALITY_DIRECTIVE 0
+#endif
+
+
+/* Define if your assembler uses the new HImode fild and fist notation. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_FILDS_FISTS 1
+#endif
+
+
+/* Define if your assembler and linker support .hidden. */
+#define HAVE_GAS_HIDDEN 1
+
+/* Define if your assembler supports .lcomm with an alignment field. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_GAS_LCOMM_WITH_ALIGNMENT */
+#endif
+
+
+/* Define if your assembler supports .literal16. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_GAS_LITERAL16 */
+#endif
+
+
+/* Define if your assembler supports specifying the maximum number of bytes to
+   skip when using the GAS .p2align command. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_MAX_SKIP_P2ALIGN 1
+#endif
+
+
+/* Define if your assembler supports .nsubspa comdat option. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_GAS_NSUBSPA_COMDAT */
+#endif
+
+
+/* Define if your assembler and linker support 32-bit section relative relocs
+   via '.secrel32 label'. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_GAS_PE_SECREL32_RELOC */
+#endif
+
+
+/* Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.
+   */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_SHF_MERGE 1
+#endif
+
+
+/* Define if your assembler supports .subsection and .subsection -1 starts
+   emitting at the beginning of your section. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_SUBSECTION_ORDERING 1
+#endif
+
+
+/* Define if your assembler supports .weak. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_WEAK 1
+#endif
+
+
+/* Define if your assembler supports .weakref. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GAS_WEAKREF 1
+#endif
+
+
+/* Define to 1 if you have the `getchar_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GETCHAR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if you have the `getc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GETC_UNLOCKED 1
+#endif
+
+
+/* Define if _Unwind_GetIPInfo is available. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GETIPINFO 1
+#endif
+
+
+/* Define to 1 if you have the `getrlimit' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GETRLIMIT 1
+#endif
+
+
+/* Define to 1 if you have the `getrusage' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GETRUSAGE 1
+#endif
+
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GETTIMEOFDAY 1
+#endif
+
+
+/* Define if using GNU as. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GNU_AS 0
+#endif
+
+
+/* Define if using GNU ld. */
+#ifndef USED_FOR_TARGET
+#define HAVE_GNU_LD 0
+#endif
+
+
+/* Define if you have the iconv() function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_ICONV 1
+#endif
+
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_ICONV_H 1
+#endif
+
+
+/* Define .init_array/.fini_array sections are available and working. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_INITFINI_ARRAY */
+#endif
+
+
+/* Define if you have a working <inttypes.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_INTTYPES_H 1
+#endif
+
+
+/* Define to 1 if you have the `kill' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_KILL 1
+#endif
+
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#ifndef USED_FOR_TARGET
+#define HAVE_LANGINFO_CODESET 1
+#endif
+
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LANGINFO_H 1
+#endif
+
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LC_MESSAGES 1
+#endif
+
+
+/* Define to 1 if you have the <ldfcn.h> header file. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_LDFCN_H */
+#endif
+
+
+/* Define if your linker supports --as-needed and --no-as-needed options. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LD_AS_NEEDED 1
+#endif
+
+
+/* Define if your linker supports --demangle option. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_LD_DEMANGLE */
+#endif
+
+
+/* Define if your linker supports --eh-frame-hdr option. */
+#define HAVE_LD_EH_FRAME_HDR 1
+
+/* Define if your linker supports garbage collection of sections in presence
+   of EH frames. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LD_EH_GC_SECTIONS 1
+#endif
+
+
+/* Define if your PowerPC64 linker only needs function descriptor syms. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_LD_NO_DOT_SYMS */
+#endif
+
+
+/* Define if your linker supports -pie option. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LD_PIE 1
+#endif
+
+
+/* Define if your linker links a mix of read-only and read-write sections into
+   a read-write section. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LD_RO_RW_SECTION_MIXING 1
+#endif
+
+
+/* Define if your linker supports -Bstatic/-Bdynamic option. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LD_STATIC_DYNAMIC 1
+#endif
+
+
+/* Define if your linker supports --sysroot. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LD_SYSROOT 1
+#endif
+
+
+/* Define to 1 if you have the <limits.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LIMITS_H 1
+#endif
+
+
+/* Define to 1 if you have the <locale.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LOCALE_H 1
+#endif
+
+
+/* Define to 1 if the system has the type `long long'. */
+#ifndef USED_FOR_TARGET
+#define HAVE_LONG_LONG 1
+#endif
+
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_MALLOC_H */
+#endif
+
+
+/* Define to 1 if you have the `mbstowcs' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_MBSTOWCS 1
+#endif
+
+
+/* Define if valgrind's memcheck.h header is installed. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_MEMCHECK_H */
+#endif
+
+
+/* Define to 1 if you have the <memory.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_MEMORY_H 1
+#endif
+
+
+/* Define to 1 if you have the `mincore' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_MINCORE 1
+#endif
+
+
+/* Define to 1 if you have the `mmap' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_MMAP 1
+#endif
+
+
+/* Define if mmap with MAP_ANON(YMOUS) works. */
+#ifndef USED_FOR_TARGET
+#define HAVE_MMAP_ANON 1
+#endif
+
+
+/* Define if mmap of /dev/zero works. */
+#ifndef USED_FOR_TARGET
+#define HAVE_MMAP_DEV_ZERO 1
+#endif
+
+
+/* Define if read-only mmap of a plain file works. */
+#ifndef USED_FOR_TARGET
+#define HAVE_MMAP_FILE 1
+#endif
+
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_NL_LANGINFO 1
+#endif
+
+
+/* Define to 1 if you have the `putchar_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_PUTCHAR_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if you have the `putc_unlocked' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_PUTC_UNLOCKED 1
+#endif
+
+
+/* Define to 1 if you have the `setlocale' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SETLOCALE 1
+#endif
+
+
+/* Define to 1 if you have the `setrlimit' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SETRLIMIT 1
+#endif
+
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_STDDEF_H 1
+#endif
+
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_STDINT_H 1
+#endif
+
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_STDLIB_H 1
+#endif
+
+
+/* Define to 1 if you have the <strings.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_STRINGS_H 1
+#endif
+
+
+/* Define to 1 if you have the <string.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_STRING_H 1
+#endif
+
+
+/* Define to 1 if you have the `strsignal' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_STRSIGNAL 1
+#endif
+
+
+/* Define if <sys/times.h> defines struct tms. */
+#ifndef USED_FOR_TARGET
+#define HAVE_STRUCT_TMS 1
+#endif
+
+
+/* Define to 1 if you have the `sysconf' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYSCONF 1
+#endif
+
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_FILE_H 1
+#endif
+
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_MMAN_H 1
+#endif
+
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_PARAM_H 1
+#endif
+
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_RESOURCE_H 1
+#endif
+
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_STAT_H 1
+#endif
+
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_TIMES_H 1
+#endif
+
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_TIME_H 1
+#endif
+
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_TYPES_H 1
+#endif
+
+
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+#ifndef USED_FOR_TARGET
+#define HAVE_SYS_WAIT_H 1
+#endif
+
+
+/* Define to 1 if you have the `times' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_TIMES 1
+#endif
+
+
+/* Define to 1 if you have the <time.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_TIME_H 1
+#endif
+
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_UNISTD_H 1
+#endif
+
+
+/* Define if valgrind's valgrind/memcheck.h header is installed. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_VALGRIND_MEMCHECK_H */
+#endif
+
+
+/* Define to 1 if you have the `vfork' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_VFORK 1
+#endif
+
+
+/* Define to 1 if you have the <vfork.h> header file. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_VFORK_H */
+#endif
+
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#ifndef USED_FOR_TARGET
+#define HAVE_WCHAR_H 1
+#endif
+
+
+/* Define to 1 if you have the `wcswidth' function. */
+#ifndef USED_FOR_TARGET
+#define HAVE_WCSWIDTH 1
+#endif
+
+
+/* Define to 1 if `fork' works. */
+#ifndef USED_FOR_TARGET
+#define HAVE_WORKING_FORK 1
+#endif
+
+
+/* Define this macro if mbstowcs does not crash when its first argument is
+   NULL. */
+#ifndef USED_FOR_TARGET
+#define HAVE_WORKING_MBSTOWCS 1
+#endif
+
+
+/* Define to 1 if `vfork' works. */
+#ifndef USED_FOR_TARGET
+#define HAVE_WORKING_VFORK 1
+#endif
+
+
+/* Define to 1 if the system has the type `__int64'. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE___INT64 */
+#endif
+
+
+/* Define if cloog is in use. */
+#ifndef USED_FOR_TARGET
+/* #undef HAVE_cloog */
+#endif
+
+
+/* Define as const if the declaration of iconv() needs const. */
+#ifndef USED_FOR_TARGET
+#define ICONV_CONST 
+#endif
+
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#ifndef USED_FOR_TARGET
+#define LT_OBJDIR ".libs/"
+#endif
+
+
+/* Define if host mkdir takes a single argument. */
+#ifndef USED_FOR_TARGET
+/* #undef MKDIR_TAKES_ONE_ARG */
+#endif
+
+
+/* Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h). */
+#ifndef USED_FOR_TARGET
+/* #undef NEED_64BIT_HOST_WIDE_INT */
+#endif
+
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#ifndef USED_FOR_TARGET
+/* #undef NO_MINUS_C_MINUS_O */
+#endif
+
+
+/* Define to the address where bug reports for this package should be sent. */
+#ifndef USED_FOR_TARGET
+#define PACKAGE_BUGREPORT ""
+#endif
+
+
+/* Define to the full name of this package. */
+#ifndef USED_FOR_TARGET
+#define PACKAGE_NAME ""
+#endif
+
+
+/* Define to the full name and version of this package. */
+#ifndef USED_FOR_TARGET
+#define PACKAGE_STRING ""
+#endif
+
+
+/* Define to the one symbol short name of this package. */
+#ifndef USED_FOR_TARGET
+#define PACKAGE_TARNAME ""
+#endif
+
+
+/* Define to the version of this package. */
+#ifndef USED_FOR_TARGET
+#define PACKAGE_VERSION ""
+#endif
+
+
+/* Define to PREFIX/include if cpp should also search that directory. */
+#ifndef USED_FOR_TARGET
+/* #undef PREFIX_INCLUDE_DIR */
+#endif
+
+
+/* The size of a `int', as computed by sizeof. */
+#ifndef USED_FOR_TARGET
+#define SIZEOF_INT 4
+#endif
+
+
+/* The size of a `long', as computed by sizeof. */
+#ifndef USED_FOR_TARGET
+#define SIZEOF_LONG 4
+#endif
+
+
+/* The size of a `long long', as computed by sizeof. */
+#ifndef USED_FOR_TARGET
+#define SIZEOF_LONG_LONG 8
+#endif
+
+
+/* The size of a `short', as computed by sizeof. */
+#ifndef USED_FOR_TARGET
+#define SIZEOF_SHORT 2
+#endif
+
+
+/* The size of a `void *', as computed by sizeof. */
+#ifndef USED_FOR_TARGET
+#define SIZEOF_VOID_P 4
+#endif
+
+
+/* The size of a `__int64', as computed by sizeof. */
+#ifndef USED_FOR_TARGET
+/* #undef SIZEOF___INT64 */
+#endif
+
+
+/* Define to 1 if you have the ANSI C header files. */
+#ifndef USED_FOR_TARGET
+#define STDC_HEADERS 1
+#endif
+
+
+/* Define if you can safely include both <string.h> and <strings.h>. */
+#ifndef USED_FOR_TARGET
+#define STRING_WITH_STRINGS 1
+#endif
+
+
+/* Define if TFmode long double should be the default */
+#ifndef USED_FOR_TARGET
+/* #undef TARGET_DEFAULT_LONG_DOUBLE_128 */
+#endif
+
+
+/* Define if your target C library provides stack protector support */
+#ifndef USED_FOR_TARGET
+/* #undef TARGET_LIBC_PROVIDES_SSP */
+#endif
+
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#ifndef USED_FOR_TARGET
+#define TIME_WITH_SYS_TIME 1
+#endif
+
+
+/* Define if your assembler mis-optimizes .eh_frame data. */
+#ifndef USED_FOR_TARGET
+/* #undef USE_AS_TRADITIONAL_FORMAT */
+#endif
+
+
+/* Define to 1 if the 'long long' (or '__int64') is wider than 'long' but
+   still efficiently supported by the host hardware. */
+#ifndef USED_FOR_TARGET
+/* #undef USE_LONG_LONG_FOR_WIDEST_FAST_INT */
+#endif
+
+
+/* Define to be the last component of the Windows registry key under which to
+   look for installation paths. The full key used will be
+   HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}.
+   The default is the GCC version number. */
+#ifndef USED_FOR_TARGET
+/* #undef WIN32_REGISTRY_KEY */
+#endif
+
+
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+#ifndef USED_FOR_TARGET
+/* #undef WORDS_BIGENDIAN */
+#endif
+
+
+/* Define to 1 if on MINIX. */
+#ifndef USED_FOR_TARGET
+/* #undef _MINIX */
+#endif
+
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+#ifndef USED_FOR_TARGET
+/* #undef _POSIX_1_SOURCE */
+#endif
+
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#ifndef USED_FOR_TARGET
+/* #undef _POSIX_SOURCE */
+#endif
+
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Define to `char *' if <sys/types.h> does not define. */
+#ifndef USED_FOR_TARGET
+/* #undef caddr_t */
+#endif
+
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#ifndef USED_FOR_TARGET
+/* #undef gid_t */
+#endif
+
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+#ifndef USED_FOR_TARGET
+/* #undef pid_t */
+#endif
+
+
+/* Define to `long' if <sys/resource.h> doesn't define. */
+#ifndef USED_FOR_TARGET
+/* #undef rlim_t */
+#endif
+
+
+/* Define to `int' if <sys/types.h> does not define. */
+#ifndef USED_FOR_TARGET
+/* #undef ssize_t */
+#endif
+
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#ifndef USED_FOR_TARGET
+/* #undef uid_t */
+#endif
+
+
+/* Define as `fork' if `vfork' does not work. */
+#ifndef USED_FOR_TARGET
+/* #undef vfork */
+#endif
+
diff --git a/gnu/usr.bin/cc44/cc_prep/config.h b/gnu/usr.bin/cc44/cc_prep/config.h
new file mode 100644 (file)
index 0000000..4db71bc
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef GCC_CONFIG_H
+#define GCC_CONFIG_H
+
+#include "bconfig.h"
+
+#endif
diff --git a/gnu/usr.bin/cc44/cc_prep/config/dragonfly-native.h b/gnu/usr.bin/cc44/cc_prep/config/dragonfly-native.h
new file mode 100644 (file)
index 0000000..bd2fd62
--- /dev/null
@@ -0,0 +1,51 @@
+#define DFBSD_NATIVE   1
+
+#ifndef PREFIX2
+#define PREFIX2        PREFIX
+#endif
+
+/*
+ * Only compilers in base define __DragonFly_cc_version.
+ * Do not use this in ports, etc.
+ */
+#define DFBSD_NATIVE_TARGET_OS_CPP_BUILTINS()                          \
+  do {                                                                 \
+       builtin_define_with_int_value ("__DragonFly_cc_version", DFBSD_CC_VER); \
+  } while (0)
+
+#define LINK_LIBGCC_SPEC ""
+#define LIBGCC_SPEC "%{shared: -lgcc_pic} %{!shared: -lgcc}"
+
+#define DFBSD_NATIVE_LINK_SPEC "                                       \
+    %{pg: -L"PREFIX2"/lib/gcc"GCCSHORTVER"/profile                     \
+      %{!static: -rpath /usr/lib/gcc"GCCSHORTVER"/profile              \
+        -rpath-link "PREFIX2"/lib/gcc"GCCSHORTVER"/profile}}           \
+    -L"PREFIX2"/lib/gcc"GCCSHORTVER"                                   \
+    %{!static: -rpath /usr/lib/gcc"GCCSHORTVER" -rpath-link "PREFIX2"/lib/gcc"GCCSHORTVER"}    \
+    %{pg: -L"PREFIX2"/lib/profile                                      \
+      %{!static: -rpath /usr/lib/profile                               \
+        -rpath-link "PREFIX2"/lib/profile}}                            \
+    %{!static: -rpath /usr/lib -rpath-link "PREFIX2"/lib}              \
+  "
+
+/*#define TARGET_SYSTEM_ROOT_RELOCATABLE */
+/*#define TARGET_SYSTEM_ROOT           "/"*/
+#define        STANDARD_EXEC_PREFIX            PREFIX"/libexec/gcc"GCCSHORTVER"/"
+#define STANDARD_LIBEXEC_PREFIX                STANDARD_EXEC_PREFIX
+#define STANDARD_BINDIR_PREFIX         STANDARD_EXEC_PREFIX
+#define MD_EXEC_PREFIX                 STANDARD_EXEC_PREFIX
+#define STANDARD_STARTFILE_PREFIX      0
+#define TOOLDIR_BASE_PREFIX            "./"
+
+#define STARTFILE_PREFIX_SPEC          PREFIX2"/lib/ "PREFIX2"/lib/gcc"GCCSHORTVER"/"
+
+#define GPLUSPLUS_INCLUDE_DIR          PREFIX2"/include/c++/"GCCPOINTVER
+#undef GPLUSPLUS_TOOL_INCLUDE_DIR
+#define        GPLUSPLUS_BACKWARD_INCLUDE_DIR  PREFIX2"/include/c++/"GCCPOINTVER"/backward"
+#undef LOCAL_INCLUDE_DIR
+#define        GCC_INCLUDE_DIR                 PREFIX2"/libdata/gcc"GCCSHORTVER
+#undef FIXED_INCLUDE_DIR
+#undef CORSS_INCLUDE_DIR
+#undef TOOL_INCLUDE_DIR
+#undef SYSTEM_INCLUDE_DIR
+#define        STANDARD_INCLUDE_DIR                    PREFIX2"/include"
diff --git a/gnu/usr.bin/cc44/cc_prep/config/dragonfly-spec.h b/gnu/usr.bin/cc44/cc_prep/config/dragonfly-spec.h
new file mode 100644 (file)
index 0000000..9476198
--- /dev/null
@@ -0,0 +1,125 @@
+/* Base configuration file for all FreeBSD targets.
+   Copyright (C) 1999, 2000, 2001, 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC 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 3, or (at your option)
+any later version.
+
+GCC 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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
+
+/* Common DragonFly configuration. 
+   All DragonFly architectures should include this file, which will specify
+   their commonalities.
+
+   Adapted from gcc/config/freebsd-spec.h by
+   Joerg Sonnenberger <joerg@bec.de>
+
+   Adapted from gcc/config/freebsd.h by 
+   David O'Brien <obrien@FreeBSD.org>
+   Loren J. Rittle <ljrittle@acm.org>.  */
+
+
+/* This defines which switch letters take arguments.  On DragonFly, most of
+   the normal cases (defined in gcc.c) apply, and we also have -h* and
+   -z* options (for the linker) (coming from SVR4).
+   We also have -R (alias --rpath), no -z, --soname (-h), --assert etc.  */
+
+#define DFBSD_SWITCH_TAKES_ARG(CHAR)                                   \
+  (DEFAULT_SWITCH_TAKES_ARG (CHAR)                                     \
+    || (CHAR) == 'h'                                                   \
+    || (CHAR) == 'z' /* ignored by ld */                               \
+    || (CHAR) == 'R')
+
+/* This defines which multi-letter switches take arguments.  */
+
+#define DFBSD_WORD_SWITCH_TAKES_ARG(STR)                                       \
+  (DEFAULT_WORD_SWITCH_TAKES_ARG (STR)                                 \
+   || !strcmp ((STR), "rpath") || !strcmp ((STR), "rpath-link")                \
+   || !strcmp ((STR), "soname") || !strcmp ((STR), "defsym")           \
+   || !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker"))
+
+#define DFBSD_TARGET_OS_CPP_BUILTINS()                                 \
+  do                                                                   \
+    {                                                                  \
+       builtin_define_with_int_value ("__DragonFly__", DFBSD_MAJOR);   \
+       builtin_define_std ("unix");                                    \
+       builtin_define ("__KPRINTF_ATTRIBUTE__");                       \
+       builtin_assert ("system=unix");                                 \
+       builtin_assert ("system=bsd");                                  \
+       builtin_assert ("system=DragonFly");                            \
+       DFBSD_NATIVE_TARGET_OS_CPP_BUILTINS();                          \
+       DFBSD_TARGET_CPU_CPP_BUILTINS();                                \
+    }                                                                  \
+  while (0)
+
+/* Define the default DragonFly-specific per-CPU hook code. */
+#define DFBSD_TARGET_CPU_CPP_BUILTINS() do {} while (0)
+
+#ifndef DFBSD_NATIVE_TARGET_OS_CPP_BUILTINS
+#define DFBSD_NATIVE_TARGET_OS_CPP_BUILTINS()                          \
+  do {} while (0)
+#endif
+
+/* Provide a CPP_SPEC appropriate for DragonFly.  We just deal with the GCC 
+   option `-posix', and PIC issues.  */
+
+#define DFBSD_CPP_SPEC "                                                       \
+  %(cpp_cpu)                                                           \
+  %(cpp_arch)                                                          \
+  %{posix:-D_POSIX_SOURCE}"
+
+/* Provide a STARTFILE_SPEC appropriate for DragonFly.  Here we add
+   the magical crtbegin.o file (see crtstuff.c) which provides part 
+       of the support for getting C++ file-scope static object constructed 
+       before entering `main'.  */
+   
+#define DFBSD_STARTFILE_SPEC \
+  "%{!shared: \
+     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
+                      %{!p:%{profile:gcrt1.o%s} \
+                        %{!profile:crt1.o%s}}}} \
+   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+
+/* Provide a ENDFILE_SPEC appropriate for DragonFly.  Here we tack on
+   the magical crtend.o file (see crtstuff.c) which provides part of 
+       the support for getting C++ file-scope static object constructed 
+       before entering `main', followed by a normal "finalizer" file, 
+       `crtn.o'.  */
+
+#define DFBSD_ENDFILE_SPEC \
+  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+
+/* Provide a LIB_SPEC appropriate for DragonFly.
+   Just always link -lc and allow -pthread to be an alias for -lpthread
+   */
+
+#define DFBSD_LIB_SPEC "                                               \
+  %{pthread:-lpthread}                                                 \
+  -lc                                                                  \
+  "
+
+#define        DFBSD_DYNAMIC_LINKER            "/usr/libexec/ld-elf.so.2"
+
+#if defined(HAVE_LD_EH_FRAME_HDR)
+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+#endif
+
+/* Use --as-needed -lgcc_s for eh support.  */
+#ifdef HAVE_LD_AS_NEEDED
+#define USE_LD_AS_NEEDED 1
+#endif
diff --git a/gnu/usr.bin/cc44/cc_prep/config/dragonfly.h b/gnu/usr.bin/cc44/cc_prep/config/dragonfly.h
new file mode 100644 (file)
index 0000000..38f5ec7
--- /dev/null
@@ -0,0 +1,87 @@
+/* Base configuration file for all DragonFly targets.
+   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC 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 3, or (at your option)
+any later version.
+
+GCC 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 GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+/* Common DragonFly configuration. 
+   All DragonFly architectures should include this file, which will specify
+   their commonalities.
+
+   Adapted from gcc/config/freebsd.h by
+   Joerg Sonnenberger <joerg@bec.de>
+
+   Adapted from gcc/config/i386/freebsd-elf.h by 
+   David O'Brien <obrien@FreeBSD.org>.  
+   Further work by David O'Brien <obrien@FreeBSD.org> and
+   Loren J. Rittle <ljrittle@acm.org>.  */
+
+
+/* This defines which switch letters take arguments.  On DragonFly, most of
+   the normal cases (defined in gcc.c) apply, and we also have -h* and
+   -z* options (for the linker) (coming from SVR4).
+   We also have -R (alias --rpath), no -z, --soname (-h), --assert etc.  */
+
+#undef  SWITCH_TAKES_ARG
+#define SWITCH_TAKES_ARG(CHAR) (DFBSD_SWITCH_TAKES_ARG(CHAR))
+
+#undef  WORD_SWITCH_TAKES_ARG
+#define WORD_SWITCH_TAKES_ARG(STR) (DFBSD_WORD_SWITCH_TAKES_ARG(STR))
+
+#undef  TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() DFBSD_TARGET_OS_CPP_BUILTINS()
+
+#undef  CPP_SPEC
+#define CPP_SPEC DFBSD_CPP_SPEC
+
+#undef  STARTFILE_SPEC
+#define STARTFILE_SPEC DFBSD_STARTFILE_SPEC
+
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC DFBSD_ENDFILE_SPEC
+
+#undef  LIB_SPEC
+#define LIB_SPEC DFBSD_LIB_SPEC
+
+/* Define this so we can compile MS code for use with WINE.  */
+#define HANDLE_PRAGMA_PACK_PUSH_POP 1
+
+/************************[  Target stuff  ]***********************************/
+
+/* All DragonFly Architectures support the ELF object file format.  */
+#undef  OBJECT_FORMAT_ELF
+#define OBJECT_FORMAT_ELF
+
+/* Don't assume anything about the header files.  */
+#undef  NO_IMPLICIT_EXTERN_C
+#define NO_IMPLICIT_EXTERN_C   1
+
+/* Make gcc agree with DragonFly's standard headers (<machine/stdint.h>, etc...)  */
+
+#undef  WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+/* Code generation parameters.  */
+
+/* Use periods rather than dollar signs in special g++ assembler names.
+   This ensures the configuration knows our system correctly so we can link
+   with libraries compiled with the native cc.  */
+#undef NO_DOLLAR_IN_LABEL
+
+/* Used by libgcc2.c.  We support file locking with fcntl / F_SETLKW.
+   This enables the test coverage code to use file locking when exiting a
+   program, which avoids race conditions if the program has forked.  */
+#define TARGET_POSIX_IO
diff --git a/gnu/usr.bin/cc44/cc_prep/config/i386/dragonfly.h b/gnu/usr.bin/cc44/cc_prep/config/i386/dragonfly.h
new file mode 100644 (file)
index 0000000..6586b67
--- /dev/null
@@ -0,0 +1,126 @@
+/* Definitions for Intel 386 running FreeBSD with ELF format
+   Copyright (C) 1996, 2000, 2002, 2004, 2007 Free Software Foundation, Inc.
+   Contributed by Eric Youngdale.
+   Modified for stabs-in-ELF by H.J. Lu.
+   Adapted from GNU/Linux version by John Polstra.
+   Continued development by David O'Brien <obrien@freebsd.org>
+   Adapted from the FreeBSD version.
+
+
+This file is part of GCC.
+
+GCC 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 3, or (at your option)
+any later version.
+
+GCC 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 GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+
+#define TARGET_VERSION fprintf (stderr, " (i386 DragonFly/ELF)");
+
+/* Override the default comment-starter of "/".  */
+#undef  ASM_COMMENT_START
+#define ASM_COMMENT_START "#"
+
+#undef  ASM_APP_ON
+#define ASM_APP_ON "#APP\n"
+
+#undef  ASM_APP_OFF
+#define ASM_APP_OFF "#NO_APP\n"
+
+#undef  DBX_REGISTER_NUMBER
+#define DBX_REGISTER_NUMBER(n) \
+  (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
+
+#undef  NO_PROFILE_COUNTERS
+#define NO_PROFILE_COUNTERS    1
+
+/* Tell final.c that we don't need a label passed to mcount.  */
+
+#undef  MCOUNT_NAME
+#define MCOUNT_NAME ".mcount"
+
+/* Make gcc agree with <machine/ansi.h>.  */
+
+#undef  SIZE_TYPE
+#define SIZE_TYPE      (TARGET_64BIT ? "long unsigned int" : "unsigned int")
+#undef  PTRDIFF_TYPE
+#define PTRDIFF_TYPE   (TARGET_64BIT ? "long int" : "int")
+  
+#undef  WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE        (TARGET_64BIT ? 32 : BITS_PER_WORD)
+
+#undef  SUBTARGET_EXTRA_SPECS  /* i386.h bogusly defines it.  */
+#define SUBTARGET_EXTRA_SPECS \
+  { "dfbsd_dynamic_linker", DFBSD_DYNAMIC_LINKER }
+    
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC DFBSD_STARTFILE_SPEC
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC DFBSD_ENDFILE_SPEC
+
+/* Provide a LINK_SPEC appropriate for DragonFly.  Here we provide support
+   for the special GCC options -static and -shared, which allow us to
+   link things in one of these three modes by applying the appropriate
+   combinations of options at link-time. We like to support here for
+   as many of the other GNU linker options as possible. But I don't
+   have the time to search for those flags. I am sure how to add
+   support for -soname shared_object_name. H.J.
+
+   I took out %{v:%{!V:-V}}. It is too much :-(. They can use
+   -Wl,-V.
+
+   When the -shared link option is used a final link is not being
+   done.  */
+
+#undef LINK_SPEC
+#define LINK_SPEC "\
+  %{p:%nconsider using `-pg' instead of `-p' with gprof(1)} \
+  %{v:-V} \
+  %{assert*} %{R*} %{rpath*} %{defsym*} \
+  %{shared:-Bshareable %{h*} %{soname*}} \
+    %{!shared: \
+      %{!static: \
+        %{rdynamic:-export-dynamic} \
+        %{!dynamic-linker:-dynamic-linker %(dfbsd_dynamic_linker) }} \
+    %{static:-Bstatic}} \
+  %{symbolic:-Bsymbolic}" \
+  DFBSD_NATIVE_LINK_SPEC
+
+/* A C statement to output to the stdio stream FILE an assembler
+   command to advance the location counter to a multiple of 1<<LOG
+   bytes if it is within MAX_SKIP bytes.
+
+   This is used to align code labels according to Intel recommendations.  */
+
+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
+#undef  ASM_OUTPUT_MAX_SKIP_ALIGN
+#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP)                                 \
+  if ((LOG) != 0) {                                                                                                            \
+    if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG));   \
+    else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));   \
+  }
+#endif
+
+/* Don't default to pcc-struct-return, we want to retain compatibility with
+   older gcc versions AND pcc-struct-return is nonreentrant.
+   (even though the SVR4 ABI for the i386 says that records and unions are
+   returned in memory).  */
+
+#undef  DEFAULT_PCC_STRUCT_RETURN
+#define DEFAULT_PCC_STRUCT_RETURN 0
+
+/* DragonFly sets the rounding precision of the FPU to 53 bits.  Let the
+   compiler get the contents of <float.h> and std::numeric_limits correct.  */
+#undef TARGET_96_ROUND_53_LONG_DOUBLE
+#define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT)
diff --git a/gnu/usr.bin/cc44/cc_prep/config/i386/dragonfly64.h b/gnu/usr.bin/cc44/cc_prep/config/i386/dragonfly64.h
new file mode 100644 (file)
index 0000000..61f369e
--- /dev/null
@@ -0,0 +1,51 @@
+/* Definitions for AMD x86-64 running FreeBSD with ELF format
+   Copyright (C) 2002, 2004, 2007 Free Software Foundation, Inc.
+   Contributed by David O'Brien <obrien@FreeBSD.org>
+   Adapted from the FreeBSD version.
+
+This file is part of GCC.
+
+GCC 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 3, or (at your option)
+any later version.
+
+GCC 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 GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+
+#undef  TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (x86-64 DragonFly/ELF)");
+
+/* Tell final.c that we don't need a label passed to mcount.  */
+
+#undef  MCOUNT_NAME
+#define MCOUNT_NAME ".mcount"
+
+#define SUBTARGET_EXTRA_SPECS \
+  { "dfbsd_dynamic_linker", DFBSD_DYNAMIC_LINKER }
+
+/* Provide a LINK_SPEC appropriate for the DragonFly/x86-64 ELF target.
+   This is a copy of LINK_SPEC from <i386/dragonfly.h> tweaked for
+   the x86-64 target.
+   XXX We don't support two arch userland yet  */
+
+#undef LINK_SPEC
+#define LINK_SPEC "\
+  %{p:%nconsider using `-pg' instead of `-p' with gprof(1)} \
+  %{v:-V} \
+  %{assert*} %{R*} %{rpath*} %{defsym*} \
+  %{shared:-Bshareable %{h*} %{soname*}} \
+    %{!shared: \
+      %{!static: \
+        %{rdynamic:-export-dynamic} \
+       %{!dynamic-linker:-dynamic-linker %(dfbsd_dynamic_linker) }} \
+    %{static:-Bstatic}} \
+  %{symbolic:-Bsymbolic}" \
+  DFBSD_NATIVE_LINK_SPEC
diff --git a/gnu/usr.bin/cc44/cc_prep/gthr-default.h b/gnu/usr.bin/cc44/cc_prep/gthr-default.h
new file mode 100644 (file)
index 0000000..59e3c0c
--- /dev/null
@@ -0,0 +1 @@
+#include "gthr-posix.h"
diff --git a/gnu/usr.bin/cc44/cc_prep/multilib.h b/gnu/usr.bin/cc44/cc_prep/multilib.h
new file mode 100644 (file)
index 0000000..dc71b6e
--- /dev/null
@@ -0,0 +1,16 @@
+static const char *const multilib_raw[] = {
+". ;",
+NULL
+};
+
+static const char *const multilib_matches_raw[] = {
+NULL
+};
+
+static const char *multilib_extra = "";
+
+static const char *const multilib_exclusions_raw[] = {
+NULL
+};
+
+static const char *multilib_options = "";
diff --git a/gnu/usr.bin/cc44/cc_prep/tconfig.h b/gnu/usr.bin/cc44/cc_prep/tconfig.h
new file mode 100644 (file)
index 0000000..0e873d9
--- /dev/null
@@ -0,0 +1,14 @@
+#ifndef GCC_CONFIG_H
+#define GCC_CONFIG_H
+
+#ifndef USED_FOR_TARGET
+#  define USED_FOR_TARGET
+#endif
+
+#include "auto-host.h"
+
+#ifdef IN_GCC
+#  include "ansidecl.h"
+#endif
+
+#endif
diff --git a/gnu/usr.bin/cc44/cc_tools/Makefile b/gnu/usr.bin/cc44/cc_tools/Makefile
new file mode 100644 (file)
index 0000000..42ab283
--- /dev/null
@@ -0,0 +1,3 @@
+SUBDIR=  libiberty tools
+
+.include <bsd.obj.mk>
diff --git a/gnu/usr.bin/cc44/cc_tools/Makefile.inc b/gnu/usr.bin/cc44/cc_tools/Makefile.inc
new file mode 100644 (file)
index 0000000..cf484ee
--- /dev/null
@@ -0,0 +1,13 @@
+# Portions of our build system need this file early, make sure it isn't
+# included twice (because e.g. bsd.init.mk would also include it)
+#
+.if !target(__<cctools.Makefile.inc>__)
+__<cctools.Makefile.inc>__:
+
+TOP_PREFIX=    ../
+
+GCC_NO_LIBS=   # yes
+
+.include "../Makefile.inc"
+
+.endif
diff --git a/gnu/usr.bin/cc44/cc_tools/libiberty/Makefile b/gnu/usr.bin/cc44/cc_tools/libiberty/Makefile
new file mode 100644 (file)
index 0000000..108664d
--- /dev/null
@@ -0,0 +1,16 @@
+LIB=           iberty
+INTERNALLIB=   YES
+
+SRCS=  concat.c cp-demangle.c cp-demint.c cplus-dem.c dyn-string.c \
+       fibheap.c fopen_unlocked.c getpwd.c getruntime.c hashtab.c hex.c lbasename.c \
+       lrealpath.c make-relative-prefix.c make-temp-file.c md5.c obstack.c \
+       partition.c pex-unix.c physmem.c safe-ctype.c splay-tree.c xexit.c \
+       xmalloc.c xmemdup.c xstrdup.c xstrerror.c
+
+GCC_NO_PATH=   # defined
+
+CFLAGS+= -DHAVE_STDLIB_H -DHAVE_STRING_H
+
+.include <bsd.hostlib.mk>
+
+.PATH: ${GCCDIR}/libiberty
diff --git a/gnu/usr.bin/cc44/cc_tools/tools/Makefile b/gnu/usr.bin/cc44/cc_tools/tools/Makefile
new file mode 100644 (file)
index 0000000..e66d81a
--- /dev/null
@@ -0,0 +1,116 @@
+.include "../Makefile.inc"
+.include "../../Makefile.langs"
+
+NXCFLAGS+=     -DGENERATOR_FILE -I${.OBJDIR}
+NXLDLIBS+=     -lm
+
+MIC= sh ${GCCDIR}/move-if-change
+
+BUILD_LIBS=    ../libiberty/libiberty.na
+BUILD_RTL=     rtl.no read-rtl.no ggc-none.no vec.no \
+               min-insn-modes.no gensupport.no print-rtl.no
+BUILD_ERRORS=  errors.no
+
+
+${BUILD_RTL}: tm.h insn-modes.h gtype-desc.h
+
+
+genprogmd = attr attrtab automata codes conditions config constants emit \
+           extract flags mddeps opinit output peep preds recog
+.for f in ${genprogmd}
+gen$f.nx: ${BUILD_RTL} ${BUILD_ERRORS}
+GENTOOLS+=     gen$f.nx
+.endfor
+gengenrtl.nx: ${BUILD_ERRORS}
+genmodes.nx: ${BUILD_ERRORS}
+gengtype.nx: gengtype-lex.no gengtype-parse.no ${BUILD_ERRORS}
+
+NEED_RTL=      support attr attrtab automata codes conditions config \
+               constants emit extract flags mddeps opinit output peep \
+               preds recog
+${NEED_RTL:S/^/gen/g:S/$/.no/g} print-rtl.no read-rtl.no: insn-modes.h
+
+genattrtab.no ggc-none.no vec.no: gtype-desc.h
+
+
+GENTOOLS+=     gengenrtl.nx genmodes.nx gengtype.nx gencheck.nx
+GENTOOLS+=     gencondmd.nx gcov-iov.nx genchecksum.nx
+.for f in ${GENTOOLS}
+$f: ${f:.nx=.no} ${BUILD_LIBS}
+       ${NXCC} ${NXCFLAGS} ${NXLDFLAGS} ${.ALLSRC:M*.n[oa]} ${NXLDLIBS} -o ${.TARGET}
+.endfor
+
+gencondmd.no: tree-check.h insn-constants.h
+
+CLEANFILES+=   ${GENTOOLS} ${GENTOOLS:.nx=.no}
+CLEANFILES+=   gengtype-lex.c gengtype-lex.no gengtype-parse.no
+CLEANFILES+=   ${BUILD_RTL} ${BUILD_ERRORS}
+
+
+MD_DEPS=       ${md_file}
+
+_MIC: .USE
+       ${MIC} ${.TARGET}.tmp ${.TARGET}
+_PL: .USE _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} > ${.TARGET}.tmp
+_MD: .USE _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} ${md_file} > ${.TARGET}.tmp
+
+simple_generated_h = insn-attr.h insn-codes.h insn-config.h insn-flags.h
+
+simple_generated_c = insn-attrtab.c insn-automata.c insn-emit.c \
+                    insn-extract.c insn-opinit.c insn-output.c \
+                    insn-peep.c insn-recog.c
+
+.for f in ${simple_generated_h} ${simple_generated_c}
+.for p in gen${f:R:S/^insn-//}.nx
+$f: $p ${MD_DEPS} insn-conditions.md _MIC
+       ${.OBJDIR}/$p ${md_file} insn-conditions.md > ${.TARGET}.tmp
+.endfor
+.endfor
+
+insn-constants.h: genconstants.nx ${MD_DEPS} _MD
+tree-check.h: gencheck.nx _PL
+gencondmd.c: genconditions.nx ${MD_DEPS} tm-preds.h tm-constrs.h _MD
+insn-conditions.md: gencondmd.nx _PL
+genrtl.c: gengenrtl.nx _PL
+genrtl.h: gengenrtl.nx _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} -h > ${.TARGET}.tmp
+insn-modes.c: genmodes.nx _PL
+insn-modes.h: genmodes.nx _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} -h > ${.TARGET}.tmp
+min-insn-modes.c: genmodes.nx _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} -m > ${.TARGET}.tmp
+insn-preds.c: genpreds.nx _MD
+tm-preds.h: genpreds.nx _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} -h ${md_file} > ${.TARGET}.tmp
+tm-constrs.h: genpreds.nx _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} -c ${md_file} > ${.TARGET}.tmp
+gtype-desc.c gtype-desc.h: gengtype.nx gtyp-input.list ${GTFILES:N[*]}
+       ${.OBJDIR}/${.ALLSRC:M*.nx} ${GCCDIR}/gcc ${.ALLSRC:M*.list}
+gcov-iov.h: gcov-iov.nx BASE-VER _MIC
+       ${.OBJDIR}/${.ALLSRC:M*.nx} "$$(cat ${.ALLSRC:M*BASE-VER})" "" > ${.TARGET}.tmp
+
+gtyp-input.list: _MIC
+       rm -f ${.TARGET}.tmp
+       for f in ${GTFILES}; \
+       do \
+               echo "$$f" >> ${.TARGET}.tmp; \
+       done
+
+
+GENFILES= \
+       ${simple_generated_h} ${simple_generated_c} \
+       insn-constants.h tree-check.h gencondmd.c insn-conditions.md \
+       genrtl.c genrtl.h insn-modes.c insn-modes.h min-insn-modes.c \
+       insn-preds.c tm-preds.h tm-constrs.h gtype-desc.c gtype-desc.h \
+       gcov-iov.h
+
+CLEANFILES+=   ${GENFILES} gtyp-input.list
+CLEANFILES+=   gt-* gtype-*.h
+
+genfiles: ${GENTOOLS} ${GENFILES}
+depend all: genfiles
+
+.include <bsd.obj.mk>
+.include <bsd.dep.mk>
diff --git a/gnu/usr.bin/cc44/cpp/Makefile b/gnu/usr.bin/cc44/cpp/Makefile
new file mode 100644 (file)
index 0000000..fae1969
--- /dev/null
@@ -0,0 +1,23 @@
+.include "../Makefile.inc"
+.include "../Makefile.langs"
+
+PROG=  cpp
+MAN=   cpp${GCCSHORTVER}.1
+
+.if ${GCCSHORTVER} != ${GCCDOCSUFFIX}
+MLINKS=        cpp${GCCSHORTVER}.1 cpp${GCCDOCSUFFIX}.1
+.endif
+
+SRCS=  ${GCC_SRCS} cppspec.c intl.c prefix.c version.c
+SRCS+= ${EXTRA_GCC_SRCS}
+
+CFLAGS+= -DDEFAULT_TARGET_VERSION=\"${version}\"
+CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"${target_machine}\"
+CFLAGS+= -DGCC_DRIVER
+
+cpp${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/cpp.1
+       cp ${.ALLSRC} ${.TARGET}
+
+CLEANFILES+=   cpp${GCCSHORTVER}.1
+
+.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/cc44/doc/Makefile b/gnu/usr.bin/cc44/doc/Makefile
new file mode 100644 (file)
index 0000000..43b99e6
--- /dev/null
@@ -0,0 +1,75 @@
+.include "../Makefile.inc"
+
+SRCDIR=                ${GCCDIR}/gcc/doc
+CONTRIBDIR=    ${SRCDIR}
+
+.PATH: ${SRCDIR}
+
+ORIGINFO=      cpp cppinternals gcc gccint
+
+INFOSECTION=           "Programming & development tools."
+INFOENTRY_cpp=         "* CPP.                                 The GNU C preprocessor."
+INFOENTRY_cppinternals=        "* CPP-internals.                       The GNU C preprocessor's internals."
+INFOENTRY_gcc=         "* GCC.                                 The GNU Compiler Collection."
+INFOENTRY_gcint=       "* GCC-internals.                       The GNU Compiler Collection's internals."
+
+# Install as nameVER for the time being
+.for _i in ${ORIGINFO}
+.for docsfx in ${GCCSHORTVER} ${GCCDOCSUFFIX}
+.if empty(INFO:M${_i}${docsfx})
+INFO+= ${_i}${docsfx}
+INFOENTRY_${_i}${docsfx}= ${INFOENTRY_${_i}:C/\./${docsfx}./1}
+
+${_i}${docsfx}.info: ${_i}.info
+       sed -E -e 's/[[:<:]]${_i}.info[[:>:]]/${_i}${docsfx}.info/g' \
+               -e 's/\*([^.]*): \(${_i}\)\./*\1${docsfx}: (${_i}${docsfx})./g' \
+               -e 's/\((gccint|cpp|gcc)\)/(\1${docsfx})/g' ${.ALLSRC} > ${.TARGET}
+
+CLEANFILES+=   ${_i}${docsufx}.info
+.endif
+.endfor
+.endfor
+# End magic rewriting
+.if ${GCCDOCSUFFIX} == ""
+INFO+= ${ORIGINFO}
+.endif
+
+cpp.info: cpp.texi fdl.texi cppenv.texi cppopts.texi           \
+        gcc-common.texi gcc-vers.texi
+
+gcc.info: gcc.texi gcc-common.texi gcc-vers.texi frontends.texi        \
+        standards.texi invoke.texi extend.texi md.texi objc.texi       \
+        gcov.texi trouble.texi bugreport.texi service.texi             \
+        contribute.texi compat.texi funding.texi gnu.texi gpl_v3.texi  \
+        fdl.texi contrib.texi cppenv.texi cppopts.texi                 \
+        implement-c.texi
+
+gccint.info: gccint.texi gcc-common.texi gcc-vers.texi         \
+        contribute.texi makefile.texi configterms.texi options.texi    \
+        portability.texi interface.texi passes.texi c-tree.texi        \
+        rtl.texi md.texi tm.texi hostconfig.texi fragments.texi        \
+        configfiles.texi collect2.texi headerdirs.texi funding.texi    \
+        gnu.texi gpl_v3.texi fdl.texi contrib.texi languages.texi      \
+        sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi   \
+        loop.texi generic.texi gimple.texi
+
+cppinternals.info: cppinternals.texi gcc-common.texi gcc-vers.texi
+
+gcc-vers.texi: Makefile ../Makefile.inc
+       (echo "@set version-GCC ${GCCCOMPLETEVER}"; \
+        echo "@clear DEVELOPMENT"; \
+       ) > $@T
+       echo "@set srcdir ${GCCDIR}/gcc" >> $@T
+       echo "@set VERSION_PACKAGE (DragonFly)" >> $@T
+       echo "@set BUGURL @uref{http://bugs.dragonflybsd.org}" >> $@T
+       mv -f $@T $@
+
+CLEANFILES+=   gcc-vers.texi
+
+.for inctexi in fdl.texi funding.texi gcc-common.texi gpl_v3.texi texinfo.texi
+${inctexi}: ${CONTRIBDIR}/include/${inctexi}
+       cp ${CONTRIBDIR}/include/${inctexi} ${.TARGET}
+CLEANFILES+=   ${inctexi}
+.endfor
+
+.include <bsd.info.mk>
diff --git a/gnu/usr.bin/cc44/gcov/Makefile b/gnu/usr.bin/cc44/gcov/Makefile
new file mode 100644 (file)
index 0000000..4b0ed92
--- /dev/null
@@ -0,0 +1,21 @@
+.include "../Makefile.inc"
+.include "../Makefile.langs"
+
+PROG=  gcov
+MAN=   gcov${GCCSHORTVER}.1
+
+.if ${GCCDOCSUFFIX} != ${GCCSHORTVER}
+MLINKS=        gcov${GCCSHORTVER}.1 gcov${GCCDOCSUFFIX}.1
+.endif
+
+SRCS=  gcov.c intl.c errors.c version.c
+
+CFLAGS+= -DDEFAULT_TARGET_VERSION=\"${version}\"
+CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"${target_machine}\"
+
+gcov${GCCSHORTVER}.1: ${GCCDIR}/gcc/doc/gcov.1
+       cp ${.ALLSRC} ${.TARGET}
+
+CLEANFILES+=   gcov${GCCSHORTVER}.1
+
+.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/cc44/gmp/Makefile b/gnu/usr.bin/cc44/gmp/Makefile
new file mode 100644 (file)
index 0000000..6ab4f39
--- /dev/null
@@ -0,0 +1,238 @@
+LIB=   gmp
+INTERNALLIB=   # yes
+
+CONTRIBDIR=    ${.CURDIR}/../../../../contrib/gmp
+.PATH: ${CONTRIBDIR}
+
+.include "${.CURDIR}/Makefile.${MACHINE_ARCH}"
+
+CFLAGS+=       -D__GMP_WITHIN_GMP -I${CONTRIBDIR} -I${.OBJDIR} -I${.CURDIR}
+CFLAGS+=       -I${CONTRIBDIR}/mpn/generic
+CFLAGS+=       -D__LONG_INT_BITS=${LONG_INT_BITS}
+CFLAGS+=       -D__INT_BITS=${INT_BITS}
+CFLAGS+=       -D__SHORT_BITS=${SHORT_BITS}
+
+
+# The following comes verbatim from Makefile.am
+
+MPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/set$U.lo mpf/set_ui$U.lo            \
+  mpf/set_si$U.lo mpf/set_str$U.lo mpf/set_d$U.lo mpf/set_z$U.lo           \
+  mpf/iset$U.lo mpf/iset_ui$U.lo mpf/iset_si$U.lo mpf/iset_str$U.lo        \
+  mpf/iset_d$U.lo mpf/clear$U.lo mpf/get_str$U.lo mpf/dump$U.lo                    \
+  mpf/size$U.lo mpf/eq$U.lo mpf/reldiff$U.lo mpf/sqrt$U.lo mpf/random2$U.lo \
+  mpf/inp_str$U.lo mpf/out_str$U.lo mpf/add$U.lo mpf/add_ui$U.lo           \
+  mpf/sub$U.lo mpf/sub_ui$U.lo mpf/ui_sub$U.lo mpf/mul$U.lo mpf/mul_ui$U.lo \
+  mpf/div$U.lo mpf/div_ui$U.lo                                             \
+  mpf/cmp$U.lo mpf/cmp_d$U.lo mpf/cmp_ui$U.lo mpf/cmp_si$U.lo              \
+  mpf/mul_2exp$U.lo mpf/div_2exp$U.lo mpf/abs$U.lo mpf/neg$U.lo                    \
+  mpf/set_q$U.lo mpf/get_d$U.lo mpf/get_d_2exp$U.lo mpf/set_dfl_prec$U.lo   \
+  mpf/set_prc$U.lo mpf/set_prc_raw$U.lo mpf/get_dfl_prec$U.lo               \
+  mpf/get_prc$U.lo mpf/ui_div$U.lo mpf/sqrt_ui$U.lo                         \
+  mpf/ceilfloor$U.lo mpf/trunc$U.lo mpf/pow_ui$U.lo                        \
+  mpf/urandomb$U.lo mpf/swap$U.lo                                          \
+  mpf/fits_sint$U.lo mpf/fits_slong$U.lo mpf/fits_sshort$U.lo              \
+  mpf/fits_uint$U.lo mpf/fits_ulong$U.lo mpf/fits_ushort$U.lo              \
+  mpf/get_si$U.lo mpf/get_ui$U.lo                                          \
+  mpf/int_p$U.lo
+
+MPZ_OBJECTS = mpz/abs$U.lo mpz/add$U.lo mpz/add_ui$U.lo                        \
+  mpz/aorsmul$U.lo mpz/aorsmul_i$U.lo mpz/and$U.lo mpz/array_init$U.lo \
+  mpz/bin_ui$U.lo mpz/bin_uiui$U.lo                                    \
+  mpz/cdiv_q$U.lo mpz/cdiv_q_ui$U.lo                                   \
+  mpz/cdiv_qr$U.lo mpz/cdiv_qr_ui$U.lo                                 \
+  mpz/cdiv_r$U.lo mpz/cdiv_r_ui$U.lo mpz/cdiv_ui$U.lo                  \
+  mpz/cfdiv_q_2exp$U.lo mpz/cfdiv_r_2exp$U.lo                          \
+  mpz/clear$U.lo mpz/clrbit$U.lo                                       \
+  mpz/cmp$U.lo mpz/cmp_d$U.lo mpz/cmp_si$U.lo mpz/cmp_ui$U.lo          \
+  mpz/cmpabs$U.lo mpz/cmpabs_d$U.lo mpz/cmpabs_ui$U.lo                 \
+  mpz/com$U.lo mpz/combit$U.lo                                         \
+  mpz/cong$U.lo mpz/cong_2exp$U.lo mpz/cong_ui$U.lo                    \
+  mpz/divexact$U.lo mpz/divegcd$U.lo mpz/dive_ui$U.lo                  \
+  mpz/divis$U.lo mpz/divis_ui$U.lo mpz/divis_2exp$U.lo mpz/dump$U.lo   \
+  mpz/export$U.lo mpz/fac_ui$U.lo mpz/fdiv_q$U.lo                      \
+  mpz/fdiv_q_ui$U.lo mpz/fdiv_qr$U.lo mpz/fdiv_qr_ui$U.lo              \
+  mpz/fdiv_r$U.lo mpz/fdiv_r_ui$U.lo                                   \
+  mpz/fdiv_ui$U.lo mpz/fib_ui$U.lo mpz/fib2_ui$U.lo mpz/fits_sint$U.lo \
+  mpz/fits_slong$U.lo mpz/fits_sshort$U.lo mpz/fits_uint$U.lo          \
+  mpz/fits_ulong$U.lo mpz/fits_ushort$U.lo mpz/gcd$U.lo                        \
+  mpz/gcd_ui$U.lo mpz/gcdext$U.lo mpz/get_d$U.lo mpz/get_d_2exp$U.lo   \
+  mpz/get_si$U.lo mpz/get_str$U.lo mpz/get_ui$U.lo mpz/getlimbn$U.lo   \
+  mpz/hamdist$U.lo                                                     \
+  mpz/import$U.lo mpz/init$U.lo mpz/init2$U.lo mpz/inp_raw$U.lo                \
+  mpz/inp_str$U.lo mpz/invert$U.lo                                     \
+  mpz/ior$U.lo mpz/iset$U.lo mpz/iset_d$U.lo mpz/iset_si$U.lo          \
+  mpz/iset_str$U.lo mpz/iset_ui$U.lo mpz/jacobi$U.lo mpz/kronsz$U.lo   \
+  mpz/kronuz$U.lo mpz/kronzs$U.lo mpz/kronzu$U.lo                      \
+  mpz/lcm$U.lo mpz/lcm_ui$U.lo mpz/lucnum_ui$U.lo mpz/lucnum2_ui$U.lo  \
+  mpz/millerrabin$U.lo mpz/mod$U.lo mpz/mul$U.lo mpz/mul_2exp$U.lo     \
+  mpz/mul_si$U.lo mpz/mul_ui$U.lo                                      \
+  mpz/n_pow_ui$U.lo mpz/neg$U.lo mpz/nextprime$U.lo                    \
+  mpz/out_raw$U.lo mpz/out_str$U.lo mpz/perfpow$U.lo mpz/perfsqr$U.lo  \
+  mpz/popcount$U.lo mpz/pow_ui$U.lo mpz/powm$U.lo mpz/powm_ui$U.lo     \
+  mpz/pprime_p$U.lo mpz/random$U.lo mpz/random2$U.lo                   \
+  mpz/realloc$U.lo mpz/realloc2$U.lo mpz/remove$U.lo                   \
+  mpz/root$U.lo mpz/rootrem$U.lo mpz/rrandomb$U.lo mpz/scan0$U.lo      \
+  mpz/scan1$U.lo mpz/set$U.lo mpz/set_d$U.lo mpz/set_f$U.lo            \
+  mpz/set_q$U.lo mpz/set_si$U.lo mpz/set_str$U.lo mpz/set_ui$U.lo      \
+  mpz/setbit$U.lo                                                      \
+  mpz/size$U.lo mpz/sizeinbase$U.lo mpz/sqrt$U.lo                      \
+  mpz/sqrtrem$U.lo mpz/sub$U.lo mpz/sub_ui$U.lo mpz/swap$U.lo          \
+  mpz/tdiv_ui$U.lo mpz/tdiv_q$U.lo mpz/tdiv_q_2exp$U.lo                        \
+  mpz/tdiv_q_ui$U.lo mpz/tdiv_qr$U.lo mpz/tdiv_qr_ui$U.lo              \
+  mpz/tdiv_r$U.lo mpz/tdiv_r_2exp$U.lo mpz/tdiv_r_ui$U.lo              \
+  mpz/tstbit$U.lo mpz/ui_pow_ui$U.lo mpz/ui_sub$U.lo mpz/urandomb$U.lo \
+  mpz/urandomm$U.lo mpz/xor$U.lo
+
+MPQ_OBJECTS = mpq/abs$U.lo mpq/aors$U.lo                               \
+  mpq/canonicalize$U.lo mpq/clear$U.lo                                 \
+  mpq/cmp$U.lo mpq/cmp_si$U.lo mpq/cmp_ui$U.lo mpq/div$U.lo            \
+  mpq/get_d$U.lo mpq/get_den$U.lo mpq/get_num$U.lo mpq/get_str$U.lo    \
+  mpq/init$U.lo mpq/inp_str$U.lo mpq/inv$U.lo                          \
+  mpq/md_2exp$U.lo mpq/mul$U.lo mpq/neg$U.lo mpq/out_str$U.lo          \
+  mpq/set$U.lo mpq/set_den$U.lo mpq/set_num$U.lo                       \
+  mpq/set_si$U.lo mpq/set_str$U.lo mpq/set_ui$U.lo                     \
+  mpq/equal$U.lo mpq/set_z$U.lo mpq/set_d$U.lo                         \
+  mpq/set_f$U.lo mpq/swap$U.lo
+
+MPN_OBJECTS = mpn/fib_table$U.lo mpn/mp_bases$U.lo
+
+PRINTF_OBJECTS =                                                       \
+  printf/asprintf$U.lo printf/asprntffuns$U.lo                         \
+  printf/doprnt$U.lo printf/doprntf$U.lo printf/doprnti$U.lo           \
+  printf/fprintf$U.lo                                                  \
+  printf/obprintf$U.lo printf/obvprintf$U.lo printf/obprntffuns$U.lo   \
+  printf/printf$U.lo printf/printffuns$U.lo                            \
+  printf/snprintf$U.lo printf/snprntffuns$U.lo                         \
+  printf/sprintf$U.lo printf/sprintffuns$U.lo                          \
+  printf/vasprintf$U.lo printf/vfprintf$U.lo printf/vprintf$U.lo       \
+  printf/vsnprintf$U.lo printf/vsprintf$U.lo                           \
+  printf/repl-vsnprintf$U.lo
+
+SCANF_OBJECTS =                                                        \
+  scanf/doscan$U.lo scanf/fscanf$U.lo scanf/fscanffuns$U.lo    \
+  scanf/scanf$U.lo scanf/sscanf$U.lo scanf/sscanffuns$U.lo     \
+  scanf/vfscanf$U.lo scanf/vscanf$U.lo scanf/vsscanf$U.lo
+
+libgmp_la_SOURCES = gmp-impl.h longlong.h randmt.h                     \
+  assert.c compat.c errno.c extract-dbl.c invalid.c memory.c           \
+  mp_bpl.c mp_clz_tab.c mp_dv_tab.c mp_minv_tab.c mp_get_fns.c mp_set_fns.c \
+  rand.c randclr.c randdef.c randiset.c randlc2s.c randlc2x.c randmt.c \
+  randmts.c rands.c randsd.c randsdui.c randbui.c randmui.c version.c
+
+# From configure.in
+gmp_mpn_functions= \
+  add add_1 add_n sub sub_1 sub_n neg_n mul_1 addmul_1                    \
+  submul_1 lshift rshift dive_1 diveby3 divis divrem divrem_1 divrem_2     \
+  fib2_ui mod_1 mod_34lsub1 mode1o pre_divrem_1 pre_mod_1 dump            \
+  mod_1_1 mod_1_2 mod_1_3 mod_1_4                                         \
+  mul mul_fft mul_n mul_basecase sqr_basecase random random2 pow_1        \
+  rootrem sqrtrem get_str set_str scan0 scan1 popcount hamdist cmp perfsqr \
+  bdivmod gcd_1 gcd gcdext_1 gcdext gcd_lehmer gcd_subdiv_step            \
+  gcdext_lehmer gcdext_subdiv_step                                        \
+  tdiv_qr dc_divrem_n sb_divrem_mn jacbase get_d                          \
+  matrix22_mul hgcd2 hgcd mullow_n mullow_basecase                        \
+  toom22_mul toom33_mul toom44_mul                                        \
+  toom32_mul toom42_mul toom62_mul toom53_mul                             \
+  toom2_sqr toom3_sqr toom4_sqr                                                   \
+  toom_interpolate_5pts toom_interpolate_7pts invert binvert              \
+  sb_div_qr sb_divappr_q sb_div_q dc_div_qr dc_divappr_q dc_div_q         \
+  mu_div_qr mu_divappr_q mu_div_q                                         \
+  sb_bdiv_q sb_bdiv_qr dc_bdiv_q dc_bdiv_qr mu_bdiv_q mu_bdiv_qr          \
+  divexact bdiv_dbm1c redc_1 redc_2 powm powlo powm_sec subcnd_n          \
+  umul udiv copyi copyd com_n                                          \
+  and_n andn_n nand_n ior_n iorn_n nior_n xor_n xnor_n                 \
+  invert_limb sqr_diagonal                                             \
+  mul_2 mul_3 mul_4                                                    \
+  addmul_2 addmul_3 addmul_4 addmul_5 addmul_6 addmul_7 addmul_8       \
+  addlsh1_n sublsh1_n rsh1add_n rsh1sub_n addsub_n addaddmul_1msb0 lshiftc
+
+# end verbatim copy
+
+MULFUNC_add_n= aors_n
+MULFUNC_sub_n= aors_n
+MULFUNC_addmul_1=      aorsmul_1
+MULFUNC_submul_1=      aorsmul_1
+MULFUNC_popcount=      popham
+MULFUNC_hamdist=       popham
+MULFUNC_and_n= logops_n
+MULFUNC_andn_n=        logops_n
+MULFUNC_nand_n=        logops_n
+MULFUNC_ior_n= logops_n
+MULFUNC_iorn_n=        logops_n
+MULFUNC_nior_n=        logops_n
+MULFUNC_xor_n= logops_n
+MULFUNC_xnor_n=        logops_n
+MULFUNC_lshift=        lorrshift
+MULFUNC_rshift=        lorrshift
+MULFUNC_addlsh1_n=     aorslsh1_n
+MULFUNC_sublsh1_n=     aorslsh1_n
+MULFUNC_rsh1add_n=     rsh1aors_n
+MULFUNC_rsh1sub_n=     rsh1aors_n
+
+
+U=
+LO_OBJECTS=    ${MPF_OBJECTS} ${MPZ_OBJECTS} ${MPQ_OBJECTS} ${MPN_OBJECTS} \
+               ${PRINTF_OBJECTS} ${SCANF_OBJECTS}
+
+.for func in ${gmp_mpn_functions}
+.for mapfunc in ${func} ${MULFUNC_${func}}
+.for mapsource in mpn/generic/${mapfunc}.c
+.for source in mpn/generic/${func}.c
+.if exists(${mapsource}) && empty(MPNSRC:M${source})
+
+.if !exists(${source})
+${source}: ${mapsource}
+       cp ${.ALLSRC} ${.TARGET}
+CLEANFILES+=   ${source}
+.endif
+
+MPNSRC+=       ${source}
+${source:.c=.o}: ${source}
+       ${CC} -o ${.TARGET} ${CFLAGS} -DOPERATION_${func} -c ${.ALLSRC}
+.endif
+.endfor
+.endfor
+.endfor
+.endfor
+
+SRCS=  ${LO_OBJECTS:.lo=.c} ${libgmp_la_SOURCES} ${MPNSRC}
+SRCS+= tal-reent.c
+
+# the following are generated sources, so we have to add them
+# explicitly to SRCS
+GENSRC=        fac_ui.h fib_table.h mpn/fib_table.c mp_bases.h perfsqr.h
+SRCS+= ${GENSRC}
+CLEANFILES+=   ${GENSRC}
+
+
+fac_ui.h: gen-fac_ui.nx
+       ${.OBJDIR}/gen-fac_ui.nx ${LONG_INT_BITS} 0 > ${.TARGET}
+
+fib_table.h: gen-fib.nx
+       ${.OBJDIR}/gen-fib.nx header ${LONG_INT_BITS} 0 > ${.TARGET}
+
+mpn/fib_table.c: gen-fib.nx
+       ${.OBJDIR}/gen-fib.nx table ${LONG_INT_BITS} 0 > ${.TARGET}
+
+mp_bases.h: gen-bases.nx
+       ${.OBJDIR}/gen-bases.nx header ${LONG_INT_BITS} 0 > ${.TARGET}
+
+mpn/mp_bases.c: gen-bases.nx
+       ${.OBJDIR}/gen-bases.nx table ${LONG_INT_BITS} 0 > ${.TARGET}
+
+perfsqr.h: gen-psqr.nx
+       ${.OBJDIR}/gen-psqr.nx ${LONG_INT_BITS} 0 > ${.TARGET}
+
+.for _gen in fac_ui fib bases psqr
+gen-${_gen}.nx: gen-${_gen}.c dumbmp.c
+       ${NXCC} ${.ALLSRC:M*/gen-*} -o ${.TARGET} -lm
+CLEANFILES+=   gen-${_gen}.nx
+.endfor
+
+GENDIRS=       mpf mpz mpq mpn mpn/generic printf scanf
+CLEANDIRS+=    ${GENDIRS}
+beforedepend: mkdirs
+mkdirs:
+       mkdir -p ${GENDIRS}
+
+.include <bsd.lib.mk>
diff --git a/gnu/usr.bin/cc44/gmp/Makefile.i386 b/gnu/usr.bin/cc44/gmp/Makefile.i386
new file mode 100644 (file)
index 0000000..da7cf65
--- /dev/null
@@ -0,0 +1,3 @@
+LONG_INT_BITS= 32
+INT_BITS=      32
+SHORT_BITS=    16
diff --git a/gnu/usr.bin/cc44/gmp/config.h b/gnu/usr.bin/cc44/gmp/config.h
new file mode 100644 (file)
index 0000000..fcb8eee
--- /dev/null
@@ -0,0 +1,522 @@
+/* config.h.  Generated by configure.  */
+/* config.in.  Generated from configure.in by autoheader.  */
+
+/*
+
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+2007 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published
+by the Free Software Foundation; either version 3 of the License, or (at
+your option) any later version.
+
+The GNU MP 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 Lesser General Public
+License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
+*/
+
+/* The gmp-mparam.h file (a string) the tune program should suggest updating.
+   */
+#define GMP_MPARAM_H_SUGGEST "../gmp/mpn/x86/p6/sse2/gmp-mparam.h"
+
+/* Define to 1 if you have the `alarm' function. */
+#define HAVE_ALARM 1
+
+/* Define to 1 if alloca() works (via gmp-impl.h). */
+#define HAVE_ALLOCA 1
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+   */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */
+#define HAVE_ATTRIBUTE_CONST 1
+
+/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */
+#define HAVE_ATTRIBUTE_MALLOC 1
+
+/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX)))
+   */
+#define HAVE_ATTRIBUTE_MODE 1
+
+/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */
+#define HAVE_ATTRIBUTE_NORETURN 1
+
+/* Define to 1 if you have the `attr_get' function. */
+/* #undef HAVE_ATTR_GET */
+
+/* Define to 1 if tests/libtests has calling conventions checking for the CPU
+   */
+#define HAVE_CALLING_CONVENTIONS 1
+
+/* Define to 1 if you have the `clock' function. */
+#define HAVE_CLOCK 1
+
+/* Define to 1 if you have the `clock_gettime' function. */
+#define HAVE_CLOCK_GETTIME 1
+
+/* Define to 1 if you have the `cputime' function. */
+/* #undef HAVE_CPUTIME */
+
+/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't.
+   */
+#define HAVE_DECL_FGETC 1
+
+/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't.
+   */
+#define HAVE_DECL_FSCANF 1
+
+/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't.
+   */
+#define HAVE_DECL_OPTARG 1
+
+/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
+   don't. */
+#define HAVE_DECL_SYS_ERRLIST 1
+
+/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you
+   don't. */
+#define HAVE_DECL_SYS_NERR 1
+
+/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't.
+   */
+#define HAVE_DECL_UNGETC 1
+
+/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_VFPRINTF 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define one of the following to 1 for the format of a `double'.
+   If your format is not among these choices, or you don't know what it is,
+   then leave all undefined.
+   IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves
+   swapped, as used by ARM CPUs in little endian mode.  */
+/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */
+#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1
+/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */
+/* #undef HAVE_DOUBLE_VAX_D */
+/* #undef HAVE_DOUBLE_VAX_G */
+/* #undef HAVE_DOUBLE_CRAY_CFP */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <float.h> header file. */
+#define HAVE_FLOAT_H 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define to 1 if you have the `getsysinfo' function. */
+/* #undef HAVE_GETSYSINFO */
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define one of these to 1 for the host CPU family.
+   If your CPU is not in any of these families, leave all undefined.
+   For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */
+/* #undef HAVE_HOST_CPU_FAMILY_alpha */
+/* #undef HAVE_HOST_CPU_FAMILY_m68k */
+/* #undef HAVE_HOST_CPU_FAMILY_power */
+/* #undef HAVE_HOST_CPU_FAMILY_powerpc */
+#define HAVE_HOST_CPU_FAMILY_x86 1
+
+/* Define one of the following to 1 for the host CPU, as per the output of
+   ./config.guess.  If your CPU is not listed here, leave all undefined.  */
+/* #undef HAVE_HOST_CPU_alphaev67 */
+/* #undef HAVE_HOST_CPU_alphaev68 */
+/* #undef HAVE_HOST_CPU_alphaev7 */
+/* #undef HAVE_HOST_CPU_m68020 */
+/* #undef HAVE_HOST_CPU_m68030 */
+/* #undef HAVE_HOST_CPU_m68040 */
+/* #undef HAVE_HOST_CPU_m68060 */
+/* #undef HAVE_HOST_CPU_m68360 */
+/* #undef HAVE_HOST_CPU_powerpc604 */
+/* #undef HAVE_HOST_CPU_powerpc604e */
+/* #undef HAVE_HOST_CPU_powerpc750 */
+/* #undef HAVE_HOST_CPU_powerpc7400 */
+/* #undef HAVE_HOST_CPU_supersparc */
+/* #undef HAVE_HOST_CPU_i386 */
+/* #undef HAVE_HOST_CPU_i586 */
+/* #undef HAVE_HOST_CPU_i686 */
+/* #undef HAVE_HOST_CPU_pentium */
+/* #undef HAVE_HOST_CPU_pentiummmx */
+/* #undef HAVE_HOST_CPU_pentiumpro */
+/* #undef HAVE_HOST_CPU_pentium2 */
+/* #undef HAVE_HOST_CPU_pentium3 */
+
+/* Define to 1 if the system has the type `intmax_t'. */
+#define HAVE_INTMAX_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <invent.h> header file. */
+/* #undef HAVE_INVENT_H */
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+#define HAVE_LANGINFO_H 1
+
+/* Define one of these to 1 for the endianness of `mp_limb_t'.
+   If the endianness is not a simple big or little, or you don't know what
+   it is, then leave both undefined. */
+/* #undef HAVE_LIMB_BIG_ENDIAN */
+#define HAVE_LIMB_LITTLE_ENDIAN 1
+
+/* Define to 1 if you have the `localeconv' function. */
+#define HAVE_LOCALECONV 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define to 1 if the system has the type `long double'. */
+#define HAVE_LONG_DOUBLE 1
+
+/* Define to 1 if the system has the type `long long'. */
+#define HAVE_LONG_LONG 1
+
+/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
+/* #undef HAVE_MACHINE_HAL_SYSINFO_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `memset' function. */
+#define HAVE_MEMSET 1
+
+/* Define to 1 if you have the `mmap' function. */
+#define HAVE_MMAP 1
+
+/* Define to 1 if you have the `mprotect' function. */
+#define HAVE_MPROTECT 1
+
+/* Define to 1 each of the following for which a native (ie. CPU specific)
+    implementation of the corresponding routine exists.  */
+/* #undef HAVE_NATIVE_mpn_add_n */
+/* #undef HAVE_NATIVE_mpn_add_nc */
+/* #undef HAVE_NATIVE_mpn_addlsh1_n */
+/* #undef HAVE_NATIVE_mpn_addmul_1c */
+/* #undef HAVE_NATIVE_mpn_addmul_2 */
+/* #undef HAVE_NATIVE_mpn_addmul_3 */
+/* #undef HAVE_NATIVE_mpn_addmul_4 */
+/* #undef HAVE_NATIVE_mpn_addmul_5 */
+/* #undef HAVE_NATIVE_mpn_addmul_6 */
+/* #undef HAVE_NATIVE_mpn_addmul_7 */
+/* #undef HAVE_NATIVE_mpn_addmul_8 */
+/* #undef HAVE_NATIVE_mpn_addsub_n */
+/* #undef HAVE_NATIVE_mpn_addaddmul_1msb0 */
+/* #undef HAVE_NATIVE_mpn_and_n */
+/* #undef HAVE_NATIVE_mpn_andn_n */
+/* #undef HAVE_NATIVE_mpn_bdiv_dbm1c */
+/* #undef HAVE_NATIVE_mpn_com_n */
+/* #undef HAVE_NATIVE_mpn_copyd */
+/* #undef HAVE_NATIVE_mpn_copyi */
+/* #undef HAVE_NATIVE_mpn_divexact_1 */
+/* #undef HAVE_NATIVE_mpn_divexact_by3c */
+/* #undef HAVE_NATIVE_mpn_divrem_1 */
+/* #undef HAVE_NATIVE_mpn_divrem_1c */
+/* #undef HAVE_NATIVE_mpn_divrem_2 */
+/* #undef HAVE_NATIVE_mpn_gcd_1 */
+/* #undef HAVE_NATIVE_mpn_invert_limb */
+/* #undef HAVE_NATIVE_mpn_ior_n */
+/* #undef HAVE_NATIVE_mpn_iorn_n */
+/* #undef HAVE_NATIVE_mpn_lshiftc */
+/* #undef HAVE_NATIVE_mpn_mod_1 */
+/* #undef HAVE_NATIVE_mpn_mod_1c */
+/* #undef HAVE_NATIVE_mpn_modexact_1_odd */
+/* #undef HAVE_NATIVE_mpn_modexact_1c_odd */
+/* #undef HAVE_NATIVE_mpn_mul_1c */
+/* #undef HAVE_NATIVE_mpn_mul_2 */
+/* #undef HAVE_NATIVE_mpn_mul_3 */
+/* #undef HAVE_NATIVE_mpn_mul_4 */
+/* #undef HAVE_NATIVE_mpn_nand_n */
+/* #undef HAVE_NATIVE_mpn_nior_n */
+/* #undef HAVE_NATIVE_mpn_preinv_divrem_1 */
+/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */
+/* #undef HAVE_NATIVE_mpn_redc_1 */
+/* #undef HAVE_NATIVE_mpn_redc_2 */
+/* #undef HAVE_NATIVE_mpn_rsh1add_n */
+/* #undef HAVE_NATIVE_mpn_rsh1sub_n */
+/* #undef HAVE_NATIVE_mpn_sqr_basecase */
+/* #undef HAVE_NATIVE_mpn_sqr_diagonal */
+/* #undef HAVE_NATIVE_mpn_sub_n */
+/* #undef HAVE_NATIVE_mpn_sub_nc */
+/* #undef HAVE_NATIVE_mpn_sublsh1_n */
+/* #undef HAVE_NATIVE_mpn_submul_1c */
+/* #undef HAVE_NATIVE_mpn_umul_ppmm */
+/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */
+/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */
+/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */
+/* #undef HAVE_NATIVE_mpn_xor_n */
+/* #undef HAVE_NATIVE_mpn_xnor_n */
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+#define HAVE_NL_LANGINFO 1
+
+/* Define to 1 if you have the <nl_types.h> header file. */
+#define HAVE_NL_TYPES_H 1
+
+/* Define to 1 if you have the `obstack_vprintf' function. */
+/* #undef HAVE_OBSTACK_VPRINTF */
+
+/* Define to 1 if you have the `popen' function. */
+#define HAVE_POPEN 1
+
+/* Define to 1 if you have the `processor_info' function. */
+/* #undef HAVE_PROCESSOR_INFO */
+
+/* Define to 1 if <sys/pstat.h> `struct pst_processor' exists and contains
+   `psp_iticksperclktick'. */
+/* #undef HAVE_PSP_ITICKSPERCLKTICK */
+
+/* Define to 1 if you have the `pstat_getprocessor' function. */
+/* #undef HAVE_PSTAT_GETPROCESSOR */
+
+/* Define to 1 if the system has the type `ptrdiff_t'. */
+#define HAVE_PTRDIFF_T 1
+
+/* Define to 1 if the system has the type `quad_t'. */
+#define HAVE_QUAD_T 1
+
+/* Define to 1 if you have the `raise' function. */
+#define HAVE_RAISE 1
+
+/* Define to 1 if you have the `read_real_time' function. */
+/* #undef HAVE_READ_REAL_TIME */
+
+/* Define to 1 if you have the `sigaction' function. */
+#define HAVE_SIGACTION 1
+
+/* Define to 1 if you have the `sigaltstack' function. */
+#define HAVE_SIGALTSTACK 1
+
+/* Define to 1 if you have the `sigstack' function. */
+/* #undef HAVE_SIGSTACK */
+
+/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */
+#define HAVE_SPEED_CYCLECOUNTER 2
+
+/* Define to 1 if you have the <sstream> header file. */
+/* #undef HAVE_SSTREAM */
+
+/* Define to 1 if the system has the type `stack_t'. */
+#define HAVE_STACK_T 1
+
+/* Define to 1 if <stdarg.h> exists and works */
+#define HAVE_STDARG 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if the system has the type `std::locale'. */
+/* #undef HAVE_STD__LOCALE */
+
+/* Define to 1 if you have the `strchr' function. */
+#define HAVE_STRCHR 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if cpp supports the ANSI # stringizing operator. */
+#define HAVE_STRINGIZE 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if you have the `strtol' function. */
+#define HAVE_STRTOL 1
+
+/* Define to 1 if you have the `strtoul' function. */
+#define HAVE_STRTOUL 1
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the `sysctl' function. */
+#define HAVE_SYSCTL 1
+
+/* Define to 1 if you have the `sysctlbyname' function. */
+#define HAVE_SYSCTLBYNAME 1
+
+/* Define to 1 if you have the `syssgi' function. */
+/* #undef HAVE_SYSSGI */
+
+/* Define to 1 if you have the <sys/attributes.h> header file. */
+/* #undef HAVE_SYS_ATTRIBUTES_H */
+
+/* Define to 1 if you have the <sys/iograph.h> header file. */
+/* #undef HAVE_SYS_IOGRAPH_H */
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/processor.h> header file. */
+/* #undef HAVE_SYS_PROCESSOR_H */
+
+/* Define to 1 if you have the <sys/pstat.h> header file. */
+/* #undef HAVE_SYS_PSTAT_H */
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/sysctl.h> header file. */
+#define HAVE_SYS_SYSCTL_H 1
+
+/* Define to 1 if you have the <sys/sysinfo.h> header file. */
+/* #undef HAVE_SYS_SYSINFO_H */
+
+/* Define to 1 if you have the <sys/syssgi.h> header file. */
+/* #undef HAVE_SYS_SYSSGI_H */
+
+/* Define to 1 if you have the <sys/systemcfg.h> header file. */
+/* #undef HAVE_SYS_SYSTEMCFG_H */
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#define HAVE_SYS_TIMES_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the `times' function. */
+#define HAVE_TIMES 1
+
+/* Define to 1 if the system has the type `uint_least32_t'. */
+#define HAVE_UINT_LEAST32_T 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `vsnprintf' function and it works properly. */
+#define HAVE_VSNPRINTF 1
+
+/* Assembler local label prefix */
+#define LSYM_PREFIX ".L"
+
+/* Name of package */
+#define PACKAGE "gmp"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "GNU MP"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "GNU MP 4.3.1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "gmp"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "4.3.1"
+
+/* Define to 1 if the C compiler supports function prototypes. */
+#define PROTOTYPES 1
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* The size of a `mp_limb_t', as computed by sizeof. */
+#define SIZEOF_MP_LIMB_T (__LONG_INT_BITS / 8)
+
+/* The size of a `unsigned', as computed by sizeof. */
+#define SIZEOF_UNSIGNED (__INT_BITS / 8)
+
+/* The size of a `unsigned long', as computed by sizeof. */
+#define SIZEOF_UNSIGNED_LONG (__LONG_INT_BITS / 8)
+
+/* The size of a `unsigned short', as computed by sizeof. */
+#define SIZEOF_UNSIGNED_SHORT (__SHORT_BITS / 8)
+
+/* Define to 1 if sscanf requires writable inputs */
+/* #undef SSCANF_WRITABLE_INPUT */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Maximum size the tune program can test for SQR_KARATSUBA_THRESHOLD */
+/* #undef TUNE_SQR_KARATSUBA_MAX */
+
+/* Version number of package */
+#define VERSION "4.3.1"
+
+/* Define to 1 to enable ASSERT checking, per --enable-assert */
+/* #undef WANT_ASSERT */
+
+/* Define to 1 when building a fat binary. */
+/* #undef WANT_FAT_BINARY */
+
+/* Define to 1 to enable FFTs for multiplication, per --enable-fft */
+#define WANT_FFT 1
+
+/* Define to 1 if --enable-profiling=gprof */
+/* #undef WANT_PROFILING_GPROF */
+
+/* Define to 1 if --enable-profiling=instrument */
+/* #undef WANT_PROFILING_INSTRUMENT */
+
+/* Define to 1 if --enable-profiling=prof */
+/* #undef WANT_PROFILING_PROF */
+
+/* Define one of these to 1 for the desired temporary memory allocation
+   method, per --enable-alloca. */
+#define WANT_TMP_ALLOCA 1
+/* #undef WANT_TMP_REENTRANT */
+/* #undef WANT_TMP_NOTREENTRANT */
+/* #undef WANT_TMP_DEBUG */
+
+/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+   `char[]'. */
+#define YYTEXT_POINTER 1
+
+/* Define like PROTOTYPES; this can be used by system headers. */
+#define __PROTOTYPES 1
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
+   supported. Do not define if restrict is supported directly. */
+#define restrict __restrict
+
+/* Define to empty if the keyword `volatile' does not work. Warning: valid
+   code using `volatile' can become incorrect without. Disable with care. */
+/* #undef volatile */
diff --git a/gnu/usr.bin/cc44/gmp/gmp.h b/gnu/usr.bin/cc44/gmp/gmp.h
new file mode 100644 (file)
index 0000000..d5b4783
--- /dev/null
@@ -0,0 +1,2233 @@
+/* Definitions for GNU multiple precision functions.   -*- mode: c -*-
+
+Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
+2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+The GNU MP 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 Lesser General Public
+License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */
+
+#ifndef __GMP_H__
+
+#if defined (__cplusplus)
+#include <iosfwd>   /* for std::istream, std::ostream, std::string */
+#include <cstdio>
+#endif
+
+
+/* Instantiated by configure. */
+#if ! defined (__GMP_WITHIN_CONFIGURE)
+#if defined(__i386__)
+#define __GMP_BITS_PER_MP_LIMB             32
+#elif defined(__amd64__)
+#define __GMP_BITS_PER_MP_LIMB             64
+#else
+#error port me!
+#endif
+#define __GMP_HAVE_HOST_CPU_FAMILY_power   0
+#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0
+#define GMP_LIMB_BITS                      __GMP_BITS_PER_MP_LIMB
+#define GMP_NAIL_BITS                      0
+#endif
+#define GMP_NUMB_BITS     (GMP_LIMB_BITS - GMP_NAIL_BITS)
+#define GMP_NUMB_MASK     ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS)
+#define GMP_NUMB_MAX      GMP_NUMB_MASK
+#define GMP_NAIL_MASK     (~ GMP_NUMB_MASK)
+
+
+/* The following (everything under ifndef __GNU_MP__) must be identical in
+   gmp.h and mp.h to allow both to be included in an application or during
+   the library build.  */
+#ifndef __GNU_MP__
+#define __GNU_MP__ 4
+
+#define __need_size_t  /* tell gcc stddef.h we only want size_t */
+#if defined (__cplusplus)
+#include <cstddef>     /* for size_t */
+#else
+#include <stddef.h>    /* for size_t */
+#endif
+#undef __need_size_t
+
+/* Instantiated by configure. */
+#if ! defined (__GMP_WITHIN_CONFIGURE)
+/* #undef _LONG_LONG_LIMB */
+#define __GMP_LIBGMP_DLL  0
+#endif
+
+
+/* __STDC__ - some ANSI compilers define this only to 0, hence the use of
+       "defined" and not "__STDC__-0".  In particular Sun workshop C 5.0
+       sets __STDC__ to 0, but requires "##" for token pasting.
+
+   _AIX - gnu ansidecl.h asserts that all known AIX compilers are ANSI but
+       don't always define __STDC__.
+
+   __DECC - current versions of DEC C (5.9 for instance) for alpha are ANSI,
+       but don't define __STDC__ in their default mode.  Don't know if old
+       versions might have been K&R, but let's not worry about that unless
+       someone is still using one.
+
+   _mips - gnu ansidecl.h says the RISC/OS MIPS compiler is ANSI in SVR4
+       mode, but doesn't define __STDC__.
+
+   _MSC_VER - Microsoft C is ANSI, but __STDC__ is undefined unless the /Za
+       option is given (in which case it's 1).
+
+   _WIN32 - tested for by gnu ansidecl.h, no doubt on the assumption that
+      all w32 compilers are ansi.
+
+   Note: This same set of tests is used by gen-psqr.c and
+   demos/expr/expr-impl.h, so if anything needs adding, then be sure to
+   update those too.  */
+
+#if  defined (__STDC__)                                 \
+  || defined (__cplusplus)                              \
+  || defined (_AIX)                                     \
+  || defined (__DECC)                                   \
+  || (defined (__mips) && defined (_SYSTYPE_SVR4))      \
+  || defined (_MSC_VER)                                 \
+  || defined (_WIN32)
+#define __GMP_HAVE_CONST        1
+#define __GMP_HAVE_PROTOTYPES   1
+#define __GMP_HAVE_TOKEN_PASTE  1
+#else
+#define __GMP_HAVE_CONST        0
+#define __GMP_HAVE_PROTOTYPES   0
+#define __GMP_HAVE_TOKEN_PASTE  0
+#endif
+
+
+#if __GMP_HAVE_CONST
+#define __gmp_const   const
+#define __gmp_signed  signed
+#else
+#define __gmp_const
+#define __gmp_signed
+#endif
+
+
+/* __GMP_DECLSPEC supports Windows DLL versions of libgmp, and is empty in
+   all other circumstances.
+
+   When compiling objects for libgmp, __GMP_DECLSPEC is an export directive,
+   or when compiling for an application it's an import directive.  The two
+   cases are differentiated by __GMP_WITHIN_GMP defined by the GMP Makefiles
+   (and not defined from an application).
+
+   __GMP_DECLSPEC_XX is similarly used for libgmpxx.  __GMP_WITHIN_GMPXX
+   indicates when building libgmpxx, and in that case libgmpxx functions are
+   exports, but libgmp functions which might get called are imports.
+
+   libmp.la uses __GMP_DECLSPEC, just as if it were libgmp.la.  libgmp and
+   libmp don't call each other, so there's no conflict or confusion.
+
+   Libtool DLL_EXPORT define is not used.
+
+   There's no attempt to support GMP built both static and DLL.  Doing so
+   would mean applications would have to tell us which of the two is going
+   to be used when linking, and that seems very tedious and error prone if
+   using GMP by hand, and equally tedious from a package since autoconf and
+   automake don't give much help.
+
+   __GMP_DECLSPEC is required on all documented global functions and
+   variables, the various internals in gmp-impl.h etc can be left unadorned.
+   But internals used by the test programs or speed measuring programs
+   should have __GMP_DECLSPEC, and certainly constants or variables must
+   have it or the wrong address will be resolved.
+
+   In gcc __declspec can go at either the start or end of a prototype.
+
+   In Microsoft C __declspec must go at the start, or after the type like
+   void __declspec(...) *foo()".  There's no __dllexport or anything to
+   guard against someone foolish #defining dllexport.  _export used to be
+   available, but no longer.
+
+   In Borland C _export still exists, but needs to go after the type, like
+   "void _export foo();".  Would have to change the __GMP_DECLSPEC syntax to
+   make use of that.  Probably more trouble than it's worth.  */
+
+#if defined (__GNUC__)
+#define __GMP_DECLSPEC_EXPORT  __declspec(__dllexport__)
+#define __GMP_DECLSPEC_IMPORT  __declspec(__dllimport__)
+#endif
+#if defined (_MSC_VER) || defined (__BORLANDC__)
+#define __GMP_DECLSPEC_EXPORT  __declspec(dllexport)
+#define __GMP_DECLSPEC_IMPORT  __declspec(dllimport)
+#endif
+#ifdef __WATCOMC__
+#define __GMP_DECLSPEC_EXPORT  __export
+#define __GMP_DECLSPEC_IMPORT  __import
+#endif
+#ifdef __IBMC__
+#define __GMP_DECLSPEC_EXPORT  _Export
+#define __GMP_DECLSPEC_IMPORT  _Import
+#endif
+
+#if __GMP_LIBGMP_DLL
+#if __GMP_WITHIN_GMP
+/* compiling to go into a DLL libgmp */
+#define __GMP_DECLSPEC  __GMP_DECLSPEC_EXPORT
+#else
+/* compiling to go into an application which will link to a DLL libgmp */
+#define __GMP_DECLSPEC  __GMP_DECLSPEC_IMPORT
+#endif
+#else
+/* all other cases */
+#define __GMP_DECLSPEC
+#endif
+
+
+#ifdef __GMP_SHORT_LIMB
+typedef unsigned int           mp_limb_t;
+typedef int                    mp_limb_signed_t;
+#else
+#ifdef _LONG_LONG_LIMB
+typedef unsigned long long int mp_limb_t;
+typedef long long int          mp_limb_signed_t;
+#else
+typedef unsigned long int      mp_limb_t;
+typedef long int               mp_limb_signed_t;
+#endif
+#endif
+
+/* For reference, note that the name __mpz_struct gets into C++ mangled
+   function names, which means although the "__" suggests an internal, we
+   must leave this name for binary compatibility.  */
+typedef struct
+{
+  int _mp_alloc;               /* Number of *limbs* allocated and pointed
+                                  to by the _mp_d field.  */
+  int _mp_size;                        /* abs(_mp_size) is the number of limbs the
+                                  last field points to.  If _mp_size is
+                                  negative this is a negative number.  */
+  mp_limb_t *_mp_d;            /* Pointer to the limbs.  */
+} __mpz_struct;
+
+#endif /* __GNU_MP__ */
+
+
+typedef __mpz_struct MP_INT;    /* gmp 1 source compatibility */
+typedef __mpz_struct mpz_t[1];
+
+typedef mp_limb_t *            mp_ptr;
+typedef __gmp_const mp_limb_t *        mp_srcptr;
+#if defined (_CRAY) && ! defined (_CRAYMPP)
+/* plain `int' is much faster (48 bits) */
+#define __GMP_MP_SIZE_T_INT     1
+typedef int                    mp_size_t;
+typedef int                    mp_exp_t;
+#else
+#define __GMP_MP_SIZE_T_INT     0
+typedef long int               mp_size_t;
+typedef long int               mp_exp_t;
+#endif
+
+typedef struct
+{
+  __mpz_struct _mp_num;
+  __mpz_struct _mp_den;
+} __mpq_struct;
+
+typedef __mpq_struct MP_RAT;    /* gmp 1 source compatibility */
+typedef __mpq_struct mpq_t[1];
+
+typedef struct
+{
+  int _mp_prec;                        /* Max precision, in number of `mp_limb_t's.
+                                  Set by mpf_init and modified by
+                                  mpf_set_prec.  The area pointed to by the
+                                  _mp_d field contains `prec' + 1 limbs.  */
+  int _mp_size;                        /* abs(_mp_size) is the number of limbs the
+                                  last field points to.  If _mp_size is
+                                  negative this is a negative number.  */
+  mp_exp_t _mp_exp;            /* Exponent, in the base of `mp_limb_t'.  */
+  mp_limb_t *_mp_d;            /* Pointer to the limbs.  */
+} __mpf_struct;
+
+/* typedef __mpf_struct MP_FLOAT; */
+typedef __mpf_struct mpf_t[1];
+
+/* Available random number generation algorithms.  */
+typedef enum
+{
+  GMP_RAND_ALG_DEFAULT = 0,
+  GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT /* Linear congruential.  */
+} gmp_randalg_t;
+
+/* Random state struct.  */
+typedef struct
+{
+  mpz_t _mp_seed;        /* _mp_d member points to state of the generator. */
+  gmp_randalg_t _mp_alg;  /* Currently unused. */
+  union {
+    void *_mp_lc;         /* Pointer to function pointers structure.  */
+  } _mp_algdata;
+} __gmp_randstate_struct;
+typedef __gmp_randstate_struct gmp_randstate_t[1];
+
+/* Types for function declarations in gmp files.  */
+/* ??? Should not pollute user name space with these ??? */
+typedef __gmp_const __mpz_struct *mpz_srcptr;
+typedef __mpz_struct *mpz_ptr;
+typedef __gmp_const __mpf_struct *mpf_srcptr;
+typedef __mpf_struct *mpf_ptr;
+typedef __gmp_const __mpq_struct *mpq_srcptr;
+typedef __mpq_struct *mpq_ptr;
+
+
+/* This is not wanted in mp.h, so put it outside the __GNU_MP__ common
+   section. */
+#if __GMP_LIBGMP_DLL
+#if __GMP_WITHIN_GMPXX
+/* compiling to go into a DLL libgmpxx */
+#define __GMP_DECLSPEC_XX  __GMP_DECLSPEC_EXPORT
+#else
+/* compiling to go into a application which will link to a DLL libgmpxx */
+#define __GMP_DECLSPEC_XX  __GMP_DECLSPEC_IMPORT
+#endif
+#else
+/* all other cases */
+#define __GMP_DECLSPEC_XX
+#endif
+
+
+#if __GMP_HAVE_PROTOTYPES
+#define __GMP_PROTO(x) x
+#else
+#define __GMP_PROTO(x) ()
+#endif
+
+#ifndef __MPN
+#if __GMP_HAVE_TOKEN_PASTE
+#define __MPN(x) __gmpn_##x
+#else
+#define __MPN(x) __gmpn_/**/x
+#endif
+#endif
+
+/* For reference, "defined(EOF)" cannot be used here.  In g++ 2.95.4,
+   <iostream> defines EOF but not FILE.  */
+#if defined (FILE)                                              \
+  || defined (H_STDIO)                                          \
+  || defined (_H_STDIO)               /* AIX */                 \
+  || defined (_STDIO_H)               /* glibc, Sun, SCO */     \
+  || defined (_STDIO_H_)              /* BSD, OSF */            \
+  || defined (__STDIO_H)              /* Borland */             \
+  || defined (__STDIO_H__)            /* IRIX */                \
+  || defined (_STDIO_INCLUDED)        /* HPUX */                \
+  || defined (__dj_include_stdio_h_)  /* DJGPP */               \
+  || defined (_FILE_DEFINED)          /* Microsoft */           \
+  || defined (__STDIO__)              /* Apple MPW MrC */       \
+  || defined (_MSL_STDIO_H)           /* Metrowerks */          \
+  || defined (_STDIO_H_INCLUDED)      /* QNX4 */               \
+  || defined (_ISO_STDIO_ISO_H)       /* Sun C++ */
+#define _GMP_H_HAVE_FILE 1
+#endif
+
+/* In ISO C, if a prototype involving "struct obstack *" is given without
+   that structure defined, then the struct is scoped down to just the
+   prototype, causing a conflict if it's subsequently defined for real.  So
+   only give prototypes if we've got obstack.h.  */
+#if defined (_OBSTACK_H)   /* glibc <obstack.h> */
+#define _GMP_H_HAVE_OBSTACK 1
+#endif
+
+/* The prototypes for gmp_vprintf etc are provided only if va_list is
+   available, via an application having included <stdarg.h> or <varargs.h>.
+   Usually va_list is a typedef so can't be tested directly, but C99
+   specifies that va_start is a macro (and it was normally a macro on past
+   systems too), so look for that.
+
+   <stdio.h> will define some sort of va_list for vprintf and vfprintf, but
+   let's not bother trying to use that since it's not standard and since
+   application uses for gmp_vprintf etc will almost certainly require the
+   whole <stdarg.h> or <varargs.h> anyway.  */
+
+#ifdef va_start
+#define _GMP_H_HAVE_VA_LIST 1
+#endif
+
+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
+#define __GMP_GNUC_PREREQ(maj, min) \
+  ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+#define __GMP_GNUC_PREREQ(maj, min)  0
+#endif
+
+/* "pure" is in gcc 2.96 and up, see "(gcc)Function Attributes".  Basically
+   it means a function does nothing but examine its arguments and memory
+   (global or via arguments) to generate a return value, but changes nothing
+   and has no side-effects.  __GMP_NO_ATTRIBUTE_CONST_PURE lets
+   tune/common.c etc turn this off when trying to write timing loops.  */
+#if __GMP_GNUC_PREREQ (2,96) && ! defined (__GMP_NO_ATTRIBUTE_CONST_PURE)
+#define __GMP_ATTRIBUTE_PURE   __attribute__ ((__pure__))
+#else
+#define __GMP_ATTRIBUTE_PURE
+#endif
+
+
+/* __GMP_CAST allows us to use static_cast in C++, so our macros are clean
+   to "g++ -Wold-style-cast".
+
+   Casts in "extern inline" code within an extern "C" block don't induce
+   these warnings, so __GMP_CAST only needs to be used on documented
+   macros.  */
+
+#ifdef __cplusplus
+#define __GMP_CAST(type, expr)  (static_cast<type> (expr))
+#else
+#define __GMP_CAST(type, expr)  ((type) (expr))
+#endif
+
+
+/* An empty "throw ()" means the function doesn't throw any C++ exceptions,
+   this can save some stack frame info in applications.
+
+   Currently it's given only on functions which never divide-by-zero etc,
+   don't allocate memory, and are expected to never need to allocate memory.
+   This leaves open the possibility of a C++ throw from a future GMP
+   exceptions scheme.
+
+   mpz_set_ui etc are omitted to leave open the lazy allocation scheme
+   described in doc/tasks.html.  mpz_get_d etc are omitted to leave open
+   exceptions for float overflows.
+
+   Note that __GMP_NOTHROW must be given on any inlines the same as on their
+   prototypes (for g++ at least, where they're used together).  Note also
+   that g++ 3.0 demands that __GMP_NOTHROW is before other attributes like
+   __GMP_ATTRIBUTE_PURE.  */
+
+#if defined (__cplusplus)
+#define __GMP_NOTHROW  throw ()
+#else
+#define __GMP_NOTHROW
+#endif
+
+
+/* PORTME: What other compilers have a useful "extern inline"?  "static
+   inline" would be an acceptable substitute if the compiler (or linker)
+   discards unused statics.  */
+
+ /* gcc has __inline__ in all modes, including strict ansi.  Give a prototype
+    for an inline too, so as to correctly specify "dllimport" on windows, in
+    case the function is called rather than inlined.
+    GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+    inline semantics, unless -fgnu89-inline is used.  */
+#ifdef __GNUC__
+#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2)
+#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
+#else
+#define __GMP_EXTERN_INLINE      extern __inline__
+#endif
+#define __GMP_INLINE_PROTOTYPES  1
+#endif
+
+/* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1
+   strict ANSI mode.  Inlining is done even when not optimizing (ie. -O0
+   mode, which is the default), but an unnecessary local copy of foo is
+   emitted unless -O is used.  "extern __inline" is accepted, but the
+   "extern" appears to be ignored, ie. it becomes a plain global function
+   but which is inlined within its file.  Don't know if all old versions of
+   DEC C supported __inline, but as a start let's do the right thing for
+   current versions.  */
+#ifdef __DECC
+#define __GMP_EXTERN_INLINE  static __inline
+#endif
+
+/* SCO OpenUNIX 8 cc supports "static inline foo()" but not in -Xc strict
+   ANSI mode (__STDC__ is 1 in that mode).  Inlining only actually takes
+   place under -O.  Without -O "foo" seems to be emitted whether it's used
+   or not, which is wasteful.  "extern inline foo()" isn't useful, the
+   "extern" is apparently ignored, so foo is inlined if possible but also
+   emitted as a global, which causes multiple definition errors when
+   building a shared libgmp.  */
+#ifdef __SCO_VERSION__
+#if __SCO_VERSION__ > 400000000 && __STDC__ != 1 \
+  && ! defined (__GMP_EXTERN_INLINE)
+#define __GMP_EXTERN_INLINE  static inline
+#endif
+#endif
+
+/* Microsoft's C compiler accepts __inline */
+#ifdef _MSC_VER
+#define __GMP_EXTERN_INLINE  __inline
+#endif
+
+/* Recent enough Sun C compilers accept "extern inline" */
+#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x560 \
+  && ! defined (__GMP_EXTERN_INLINE)
+#define __GMP_EXTERN_INLINE  extern inline
+#endif
+
+/* Somewhat older Sun C compilers accept "static inline" */
+#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x540 \
+  && ! defined (__GMP_EXTERN_INLINE)
+#define __GMP_EXTERN_INLINE  static inline
+#endif
+
+
+/* C++ always has "inline" and since it's a normal feature the linker should
+   discard duplicate non-inlined copies, or if it doesn't then that's a
+   problem for everyone, not just GMP.  */
+#if defined (__cplusplus) && ! defined (__GMP_EXTERN_INLINE)
+#define __GMP_EXTERN_INLINE  inline
+#endif
+
+/* Don't do any inlining within a configure run, since if the compiler ends
+   up emitting copies of the code into the object file it can end up
+   demanding the various support routines (like mpn_popcount) for linking,
+   making the "alloca" test and perhaps others fail.  And on hppa ia64 a
+   pre-release gcc 3.2 was seen not respecting the "extern" in "extern
+   __inline__", triggering this problem too.  */
+#if defined (__GMP_WITHIN_CONFIGURE) && ! __GMP_WITHIN_CONFIGURE_INLINE
+#undef __GMP_EXTERN_INLINE
+#endif
+
+/* By default, don't give a prototype when there's going to be an inline
+   version.  Note in particular that Cray C++ objects to the combination of
+   prototype and inline.  */
+#ifdef __GMP_EXTERN_INLINE
+#ifndef __GMP_INLINE_PROTOTYPES
+#define __GMP_INLINE_PROTOTYPES  0
+#endif
+#else
+#define __GMP_INLINE_PROTOTYPES  1
+#endif
+
+
+#define __GMP_ABS(x)   ((x) >= 0 ? (x) : -(x))
+#define __GMP_MAX(h,i) ((h) > (i) ? (h) : (i))
+
+/* __GMP_USHRT_MAX is not "~ (unsigned short) 0" because short is promoted
+   to int by "~".  */
+#define __GMP_UINT_MAX   (~ (unsigned) 0)
+#define __GMP_ULONG_MAX  (~ (unsigned long) 0)
+#define __GMP_USHRT_MAX  ((unsigned short) ~0)
+
+
+/* __builtin_expect is in gcc 3.0, and not in 2.95. */
+#if __GMP_GNUC_PREREQ (3,0)
+#define __GMP_LIKELY(cond)    __builtin_expect ((cond) != 0, 1)
+#define __GMP_UNLIKELY(cond)  __builtin_expect ((cond) != 0, 0)
+#else
+#define __GMP_LIKELY(cond)    (cond)
+#define __GMP_UNLIKELY(cond)  (cond)
+#endif
+
+#ifdef _CRAY
+#define __GMP_CRAY_Pragma(str)  _Pragma (str)
+#else
+#define __GMP_CRAY_Pragma(str)
+#endif
+
+
+/* Allow direct user access to numerator and denominator of a mpq_t object.  */
+#define mpq_numref(Q) (&((Q)->_mp_num))
+#define mpq_denref(Q) (&((Q)->_mp_den))
+
+
+#if defined (__cplusplus)
+extern "C" {
+using std::FILE;
+#endif
+
+#define mp_set_memory_functions __gmp_set_memory_functions
+__GMP_DECLSPEC void mp_set_memory_functions __GMP_PROTO ((void *(*) (size_t),
+                                     void *(*) (void *, size_t, size_t),
+                                     void (*) (void *, size_t))) __GMP_NOTHROW;
+
+#define mp_get_memory_functions __gmp_get_memory_functions
+__GMP_DECLSPEC void mp_get_memory_functions __GMP_PROTO ((void *(**) (size_t),
+                                      void *(**) (void *, size_t, size_t),
+                                      void (**) (void *, size_t))) __GMP_NOTHROW;
+
+#define mp_bits_per_limb __gmp_bits_per_limb
+__GMP_DECLSPEC extern __gmp_const int mp_bits_per_limb;
+
+#define gmp_errno __gmp_errno
+__GMP_DECLSPEC extern int gmp_errno;
+
+#define gmp_version __gmp_version
+__GMP_DECLSPEC extern __gmp_const char * __gmp_const gmp_version;
+
+
+/**************** Random number routines.  ****************/
+
+/* obsolete */
+#define gmp_randinit __gmp_randinit
+__GMP_DECLSPEC void gmp_randinit __GMP_PROTO ((gmp_randstate_t, gmp_randalg_t, ...));
+
+#define gmp_randinit_default __gmp_randinit_default
+__GMP_DECLSPEC void gmp_randinit_default __GMP_PROTO ((gmp_randstate_t));
+
+#define gmp_randinit_lc_2exp __gmp_randinit_lc_2exp
+__GMP_DECLSPEC void gmp_randinit_lc_2exp __GMP_PROTO ((gmp_randstate_t,
+                                   mpz_srcptr, unsigned long int,
+                                  unsigned long int));
+
+#define gmp_randinit_lc_2exp_size __gmp_randinit_lc_2exp_size
+__GMP_DECLSPEC int gmp_randinit_lc_2exp_size __GMP_PROTO ((gmp_randstate_t, unsigned long));
+
+#define gmp_randinit_mt __gmp_randinit_mt
+__GMP_DECLSPEC void gmp_randinit_mt __GMP_PROTO ((gmp_randstate_t));
+
+#define gmp_randinit_set __gmp_randinit_set
+__GMP_DECLSPEC void gmp_randinit_set __GMP_PROTO ((gmp_randstate_t, __gmp_const __gmp_randstate_struct *));
+
+#define gmp_randseed __gmp_randseed
+__GMP_DECLSPEC void gmp_randseed __GMP_PROTO ((gmp_randstate_t, mpz_srcptr));
+
+#define gmp_randseed_ui __gmp_randseed_ui
+__GMP_DECLSPEC void gmp_randseed_ui __GMP_PROTO ((gmp_randstate_t, unsigned long int));
+
+#define gmp_randclear __gmp_randclear
+__GMP_DECLSPEC void gmp_randclear __GMP_PROTO ((gmp_randstate_t));
+
+#define gmp_urandomb_ui __gmp_urandomb_ui
+__GMP_DECLSPEC unsigned long gmp_urandomb_ui __GMP_PROTO ((gmp_randstate_t, unsigned long));
+
+#define gmp_urandomm_ui __gmp_urandomm_ui
+__GMP_DECLSPEC unsigned long gmp_urandomm_ui __GMP_PROTO ((gmp_randstate_t, unsigned long));
+
+
+/**************** Formatted output routines.  ****************/
+
+#define gmp_asprintf __gmp_asprintf
+__GMP_DECLSPEC int gmp_asprintf __GMP_PROTO ((char **, __gmp_const char *, ...));
+
+#define gmp_fprintf __gmp_fprintf
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC int gmp_fprintf __GMP_PROTO ((FILE *, __gmp_const char *, ...));
+#endif
+
+#define gmp_obstack_printf __gmp_obstack_printf
+#if defined (_GMP_H_HAVE_OBSTACK)
+__GMP_DECLSPEC int gmp_obstack_printf __GMP_PROTO ((struct obstack *, __gmp_const char *, ...));
+#endif
+
+#define gmp_obstack_vprintf __gmp_obstack_vprintf
+#if defined (_GMP_H_HAVE_OBSTACK) && defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_obstack_vprintf __GMP_PROTO ((struct obstack *, __gmp_const char *, va_list));
+#endif
+
+#define gmp_printf __gmp_printf
+__GMP_DECLSPEC int gmp_printf __GMP_PROTO ((__gmp_const char *, ...));
+
+#define gmp_snprintf __gmp_snprintf
+__GMP_DECLSPEC int gmp_snprintf __GMP_PROTO ((char *, size_t, __gmp_const char *, ...));
+
+#define gmp_sprintf __gmp_sprintf
+__GMP_DECLSPEC int gmp_sprintf __GMP_PROTO ((char *, __gmp_const char *, ...));
+
+#define gmp_vasprintf __gmp_vasprintf
+#if defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vasprintf __GMP_PROTO ((char **, __gmp_const char *, va_list));
+#endif
+
+#define gmp_vfprintf __gmp_vfprintf
+#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vfprintf __GMP_PROTO ((FILE *, __gmp_const char *, va_list));
+#endif
+
+#define gmp_vprintf __gmp_vprintf
+#if defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vprintf __GMP_PROTO ((__gmp_const char *, va_list));
+#endif
+
+#define gmp_vsnprintf __gmp_vsnprintf
+#if defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vsnprintf __GMP_PROTO ((char *, size_t, __gmp_const char *, va_list));
+#endif
+
+#define gmp_vsprintf __gmp_vsprintf
+#if defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vsprintf __GMP_PROTO ((char *, __gmp_const char *, va_list));
+#endif
+
+
+/**************** Formatted input routines.  ****************/
+
+#define gmp_fscanf __gmp_fscanf
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC int gmp_fscanf __GMP_PROTO ((FILE *, __gmp_const char *, ...));
+#endif
+
+#define gmp_scanf __gmp_scanf
+__GMP_DECLSPEC int gmp_scanf __GMP_PROTO ((__gmp_const char *, ...));
+
+#define gmp_sscanf __gmp_sscanf
+__GMP_DECLSPEC int gmp_sscanf __GMP_PROTO ((__gmp_const char *, __gmp_const char *, ...));
+
+#define gmp_vfscanf __gmp_vfscanf
+#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vfscanf __GMP_PROTO ((FILE *, __gmp_const char *, va_list));
+#endif
+
+#define gmp_vscanf __gmp_vscanf
+#if defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vscanf __GMP_PROTO ((__gmp_const char *, va_list));
+#endif
+
+#define gmp_vsscanf __gmp_vsscanf
+#if defined (_GMP_H_HAVE_VA_LIST)
+__GMP_DECLSPEC int gmp_vsscanf __GMP_PROTO ((__gmp_const char *, __gmp_const char *, va_list));
+#endif
+
+
+/**************** Integer (i.e. Z) routines.  ****************/
+
+#define _mpz_realloc __gmpz_realloc
+#define mpz_realloc __gmpz_realloc
+__GMP_DECLSPEC void *_mpz_realloc __GMP_PROTO ((mpz_ptr, mp_size_t));
+
+#define mpz_abs __gmpz_abs
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_abs)
+__GMP_DECLSPEC void mpz_abs __GMP_PROTO ((mpz_ptr, mpz_srcptr));
+#endif
+
+#define mpz_add __gmpz_add
+__GMP_DECLSPEC void mpz_add __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_add_ui __gmpz_add_ui
+__GMP_DECLSPEC void mpz_add_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_addmul __gmpz_addmul
+__GMP_DECLSPEC void mpz_addmul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_addmul_ui __gmpz_addmul_ui
+__GMP_DECLSPEC void mpz_addmul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_and __gmpz_and
+__GMP_DECLSPEC void mpz_and __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_array_init __gmpz_array_init
+__GMP_DECLSPEC void mpz_array_init __GMP_PROTO ((mpz_ptr, mp_size_t, mp_size_t));
+
+#define mpz_bin_ui __gmpz_bin_ui
+__GMP_DECLSPEC void mpz_bin_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_bin_uiui __gmpz_bin_uiui
+__GMP_DECLSPEC void mpz_bin_uiui __GMP_PROTO ((mpz_ptr, unsigned long int, unsigned long int));
+
+#define mpz_cdiv_q __gmpz_cdiv_q
+__GMP_DECLSPEC void mpz_cdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_cdiv_q_2exp __gmpz_cdiv_q_2exp
+__GMP_DECLSPEC void mpz_cdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long));
+
+#define mpz_cdiv_q_ui __gmpz_cdiv_q_ui
+__GMP_DECLSPEC unsigned long int mpz_cdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_cdiv_qr __gmpz_cdiv_qr
+__GMP_DECLSPEC void mpz_cdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_cdiv_qr_ui __gmpz_cdiv_qr_ui
+__GMP_DECLSPEC unsigned long int mpz_cdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_cdiv_r __gmpz_cdiv_r
+__GMP_DECLSPEC void mpz_cdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_cdiv_r_2exp __gmpz_cdiv_r_2exp
+__GMP_DECLSPEC void mpz_cdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long));
+
+#define mpz_cdiv_r_ui __gmpz_cdiv_r_ui
+__GMP_DECLSPEC unsigned long int mpz_cdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_cdiv_ui __gmpz_cdiv_ui
+__GMP_DECLSPEC unsigned long int mpz_cdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_clear __gmpz_clear
+__GMP_DECLSPEC void mpz_clear __GMP_PROTO ((mpz_ptr));
+
+#define mpz_clrbit __gmpz_clrbit
+__GMP_DECLSPEC void mpz_clrbit __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_cmp __gmpz_cmp
+__GMP_DECLSPEC int mpz_cmp __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_cmp_d __gmpz_cmp_d
+__GMP_DECLSPEC int mpz_cmp_d __GMP_PROTO ((mpz_srcptr, double)) __GMP_ATTRIBUTE_PURE;
+
+#define _mpz_cmp_si __gmpz_cmp_si
+__GMP_DECLSPEC int _mpz_cmp_si __GMP_PROTO ((mpz_srcptr, signed long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define _mpz_cmp_ui __gmpz_cmp_ui
+__GMP_DECLSPEC int _mpz_cmp_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_cmpabs __gmpz_cmpabs
+__GMP_DECLSPEC int mpz_cmpabs __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_cmpabs_d __gmpz_cmpabs_d
+__GMP_DECLSPEC int mpz_cmpabs_d __GMP_PROTO ((mpz_srcptr, double)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_cmpabs_ui __gmpz_cmpabs_ui
+__GMP_DECLSPEC int mpz_cmpabs_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_com __gmpz_com
+__GMP_DECLSPEC void mpz_com __GMP_PROTO ((mpz_ptr, mpz_srcptr));
+
+#define mpz_combit __gmpz_combit
+__GMP_DECLSPEC void mpz_combit __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_congruent_p __gmpz_congruent_p
+__GMP_DECLSPEC int mpz_congruent_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_congruent_2exp_p __gmpz_congruent_2exp_p
+__GMP_DECLSPEC int mpz_congruent_2exp_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr, unsigned long)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_congruent_ui_p __gmpz_congruent_ui_p
+__GMP_DECLSPEC int mpz_congruent_ui_p __GMP_PROTO ((mpz_srcptr, unsigned long, unsigned long)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_divexact __gmpz_divexact
+__GMP_DECLSPEC void mpz_divexact __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_divexact_ui __gmpz_divexact_ui
+__GMP_DECLSPEC void mpz_divexact_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long));
+
+#define mpz_divisible_p __gmpz_divisible_p
+__GMP_DECLSPEC int mpz_divisible_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_divisible_ui_p __gmpz_divisible_ui_p
+__GMP_DECLSPEC int mpz_divisible_ui_p __GMP_PROTO ((mpz_srcptr, unsigned long)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_divisible_2exp_p __gmpz_divisible_2exp_p
+__GMP_DECLSPEC int mpz_divisible_2exp_p __GMP_PROTO ((mpz_srcptr, unsigned long)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_dump __gmpz_dump
+__GMP_DECLSPEC void mpz_dump __GMP_PROTO ((mpz_srcptr));
+
+#define mpz_export __gmpz_export
+__GMP_DECLSPEC void *mpz_export __GMP_PROTO ((void *, size_t *, int, size_t, int, size_t, mpz_srcptr));
+
+#define mpz_fac_ui __gmpz_fac_ui
+__GMP_DECLSPEC void mpz_fac_ui __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_fdiv_q __gmpz_fdiv_q
+__GMP_DECLSPEC void mpz_fdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_fdiv_q_2exp __gmpz_fdiv_q_2exp
+__GMP_DECLSPEC void mpz_fdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_fdiv_q_ui __gmpz_fdiv_q_ui
+__GMP_DECLSPEC unsigned long int mpz_fdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_fdiv_qr __gmpz_fdiv_qr
+__GMP_DECLSPEC void mpz_fdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_fdiv_qr_ui __gmpz_fdiv_qr_ui
+__GMP_DECLSPEC unsigned long int mpz_fdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_fdiv_r __gmpz_fdiv_r
+__GMP_DECLSPEC void mpz_fdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_fdiv_r_2exp __gmpz_fdiv_r_2exp
+__GMP_DECLSPEC void mpz_fdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_fdiv_r_ui __gmpz_fdiv_r_ui
+__GMP_DECLSPEC unsigned long int mpz_fdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_fdiv_ui __gmpz_fdiv_ui
+__GMP_DECLSPEC unsigned long int mpz_fdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_fib_ui __gmpz_fib_ui
+__GMP_DECLSPEC void mpz_fib_ui __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_fib2_ui __gmpz_fib2_ui
+__GMP_DECLSPEC void mpz_fib2_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, unsigned long int));
+
+#define mpz_fits_sint_p __gmpz_fits_sint_p
+__GMP_DECLSPEC int mpz_fits_sint_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_fits_slong_p __gmpz_fits_slong_p
+__GMP_DECLSPEC int mpz_fits_slong_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_fits_sshort_p __gmpz_fits_sshort_p
+__GMP_DECLSPEC int mpz_fits_sshort_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_fits_uint_p __gmpz_fits_uint_p
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_uint_p)
+__GMP_DECLSPEC int mpz_fits_uint_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_fits_ulong_p __gmpz_fits_ulong_p
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ulong_p)
+__GMP_DECLSPEC int mpz_fits_ulong_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_fits_ushort_p __gmpz_fits_ushort_p
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ushort_p)
+__GMP_DECLSPEC int mpz_fits_ushort_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_gcd __gmpz_gcd
+__GMP_DECLSPEC void mpz_gcd __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_gcd_ui __gmpz_gcd_ui
+__GMP_DECLSPEC unsigned long int mpz_gcd_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_gcdext __gmpz_gcdext
+__GMP_DECLSPEC void mpz_gcdext __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_get_d __gmpz_get_d
+__GMP_DECLSPEC double mpz_get_d __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_get_d_2exp __gmpz_get_d_2exp
+__GMP_DECLSPEC double mpz_get_d_2exp __GMP_PROTO ((signed long int *, mpz_srcptr));
+
+#define mpz_get_si __gmpz_get_si
+__GMP_DECLSPEC /* signed */ long int mpz_get_si __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_get_str __gmpz_get_str
+__GMP_DECLSPEC char *mpz_get_str __GMP_PROTO ((char *, int, mpz_srcptr));
+
+#define mpz_get_ui __gmpz_get_ui
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_get_ui)
+__GMP_DECLSPEC unsigned long int mpz_get_ui __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_getlimbn __gmpz_getlimbn
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_getlimbn)
+__GMP_DECLSPEC mp_limb_t mpz_getlimbn __GMP_PROTO ((mpz_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_hamdist __gmpz_hamdist
+__GMP_DECLSPEC unsigned long int mpz_hamdist __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_import __gmpz_import
+__GMP_DECLSPEC void mpz_import __GMP_PROTO ((mpz_ptr, size_t, int, size_t, int, size_t, __gmp_const void *));
+
+#define mpz_init __gmpz_init
+__GMP_DECLSPEC void mpz_init __GMP_PROTO ((mpz_ptr));
+
+#define mpz_init2 __gmpz_init2
+__GMP_DECLSPEC void mpz_init2 __GMP_PROTO ((mpz_ptr, unsigned long));
+
+#define mpz_init_set __gmpz_init_set
+__GMP_DECLSPEC void mpz_init_set __GMP_PROTO ((mpz_ptr, mpz_srcptr));
+
+#define mpz_init_set_d __gmpz_init_set_d
+__GMP_DECLSPEC void mpz_init_set_d __GMP_PROTO ((mpz_ptr, double));
+
+#define mpz_init_set_si __gmpz_init_set_si
+__GMP_DECLSPEC void mpz_init_set_si __GMP_PROTO ((mpz_ptr, signed long int));
+
+#define mpz_init_set_str __gmpz_init_set_str
+__GMP_DECLSPEC int mpz_init_set_str __GMP_PROTO ((mpz_ptr, __gmp_const char *, int));
+
+#define mpz_init_set_ui __gmpz_init_set_ui
+__GMP_DECLSPEC void mpz_init_set_ui __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_inp_raw __gmpz_inp_raw
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpz_inp_raw __GMP_PROTO ((mpz_ptr, FILE *));
+#endif
+
+#define mpz_inp_str __gmpz_inp_str
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpz_inp_str __GMP_PROTO ((mpz_ptr, FILE *, int));
+#endif
+
+#define mpz_invert __gmpz_invert
+__GMP_DECLSPEC int mpz_invert __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_ior __gmpz_ior
+__GMP_DECLSPEC void mpz_ior __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_jacobi __gmpz_jacobi
+__GMP_DECLSPEC int mpz_jacobi __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_kronecker mpz_jacobi  /* alias */
+
+#define mpz_kronecker_si __gmpz_kronecker_si
+__GMP_DECLSPEC int mpz_kronecker_si __GMP_PROTO ((mpz_srcptr, long)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_kronecker_ui __gmpz_kronecker_ui
+__GMP_DECLSPEC int mpz_kronecker_ui __GMP_PROTO ((mpz_srcptr, unsigned long)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_si_kronecker __gmpz_si_kronecker
+__GMP_DECLSPEC int mpz_si_kronecker __GMP_PROTO ((long, mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_ui_kronecker __gmpz_ui_kronecker
+__GMP_DECLSPEC int mpz_ui_kronecker __GMP_PROTO ((unsigned long, mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_lcm __gmpz_lcm
+__GMP_DECLSPEC void mpz_lcm __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_lcm_ui __gmpz_lcm_ui
+__GMP_DECLSPEC void mpz_lcm_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long));
+
+#define mpz_legendre mpz_jacobi  /* alias */
+
+#define mpz_lucnum_ui __gmpz_lucnum_ui
+__GMP_DECLSPEC void mpz_lucnum_ui __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_lucnum2_ui __gmpz_lucnum2_ui
+__GMP_DECLSPEC void mpz_lucnum2_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, unsigned long int));
+
+#define mpz_millerrabin __gmpz_millerrabin
+__GMP_DECLSPEC int mpz_millerrabin __GMP_PROTO ((mpz_srcptr, int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_mod __gmpz_mod
+__GMP_DECLSPEC void mpz_mod __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_mod_ui mpz_fdiv_r_ui /* same as fdiv_r because divisor unsigned */
+
+#define mpz_mul __gmpz_mul
+__GMP_DECLSPEC void mpz_mul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_mul_2exp __gmpz_mul_2exp
+__GMP_DECLSPEC void mpz_mul_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_mul_si __gmpz_mul_si
+__GMP_DECLSPEC void mpz_mul_si __GMP_PROTO ((mpz_ptr, mpz_srcptr, long int));
+
+#define mpz_mul_ui __gmpz_mul_ui
+__GMP_DECLSPEC void mpz_mul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_neg __gmpz_neg
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_neg)
+__GMP_DECLSPEC void mpz_neg __GMP_PROTO ((mpz_ptr, mpz_srcptr));
+#endif
+
+#define mpz_nextprime __gmpz_nextprime
+__GMP_DECLSPEC void mpz_nextprime __GMP_PROTO ((mpz_ptr, mpz_srcptr));
+
+#define mpz_out_raw __gmpz_out_raw
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpz_out_raw __GMP_PROTO ((FILE *, mpz_srcptr));
+#endif
+
+#define mpz_out_str __gmpz_out_str
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpz_out_str __GMP_PROTO ((FILE *, int, mpz_srcptr));
+#endif
+
+#define mpz_perfect_power_p __gmpz_perfect_power_p
+__GMP_DECLSPEC int mpz_perfect_power_p __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_perfect_square_p __gmpz_perfect_square_p
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_perfect_square_p)
+__GMP_DECLSPEC int mpz_perfect_square_p __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_popcount __gmpz_popcount
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_popcount)
+__GMP_DECLSPEC unsigned long int mpz_popcount __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_pow_ui __gmpz_pow_ui
+__GMP_DECLSPEC void mpz_pow_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_powm __gmpz_powm
+__GMP_DECLSPEC void mpz_powm __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_powm_ui __gmpz_powm_ui
+__GMP_DECLSPEC void mpz_powm_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr));
+
+#define mpz_probab_prime_p __gmpz_probab_prime_p
+__GMP_DECLSPEC int mpz_probab_prime_p __GMP_PROTO ((mpz_srcptr, int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_random __gmpz_random
+__GMP_DECLSPEC void mpz_random __GMP_PROTO ((mpz_ptr, mp_size_t));
+
+#define mpz_random2 __gmpz_random2
+__GMP_DECLSPEC void mpz_random2 __GMP_PROTO ((mpz_ptr, mp_size_t));
+
+#define mpz_realloc2 __gmpz_realloc2
+__GMP_DECLSPEC void mpz_realloc2 __GMP_PROTO ((mpz_ptr, unsigned long));
+
+#define mpz_remove __gmpz_remove
+__GMP_DECLSPEC unsigned long int mpz_remove __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_root __gmpz_root
+__GMP_DECLSPEC int mpz_root __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_rootrem __gmpz_rootrem
+__GMP_DECLSPEC void mpz_rootrem __GMP_PROTO ((mpz_ptr,mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_rrandomb __gmpz_rrandomb
+__GMP_DECLSPEC void mpz_rrandomb __GMP_PROTO ((mpz_ptr, gmp_randstate_t, unsigned long int));
+
+#define mpz_scan0 __gmpz_scan0
+__GMP_DECLSPEC unsigned long int mpz_scan0 __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_scan1 __gmpz_scan1
+__GMP_DECLSPEC unsigned long int mpz_scan1 __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_set __gmpz_set
+__GMP_DECLSPEC void mpz_set __GMP_PROTO ((mpz_ptr, mpz_srcptr));
+
+#define mpz_set_d __gmpz_set_d
+__GMP_DECLSPEC void mpz_set_d __GMP_PROTO ((mpz_ptr, double));
+
+#define mpz_set_f __gmpz_set_f
+__GMP_DECLSPEC void mpz_set_f __GMP_PROTO ((mpz_ptr, mpf_srcptr));
+
+#define mpz_set_q __gmpz_set_q
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_set_q)
+__GMP_DECLSPEC void mpz_set_q __GMP_PROTO ((mpz_ptr, mpq_srcptr));
+#endif
+
+#define mpz_set_si __gmpz_set_si
+__GMP_DECLSPEC void mpz_set_si __GMP_PROTO ((mpz_ptr, signed long int));
+
+#define mpz_set_str __gmpz_set_str
+__GMP_DECLSPEC int mpz_set_str __GMP_PROTO ((mpz_ptr, __gmp_const char *, int));
+
+#define mpz_set_ui __gmpz_set_ui
+__GMP_DECLSPEC void mpz_set_ui __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_setbit __gmpz_setbit
+__GMP_DECLSPEC void mpz_setbit __GMP_PROTO ((mpz_ptr, unsigned long int));
+
+#define mpz_size __gmpz_size
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_size)
+__GMP_DECLSPEC size_t mpz_size __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpz_sizeinbase __gmpz_sizeinbase
+__GMP_DECLSPEC size_t mpz_sizeinbase __GMP_PROTO ((mpz_srcptr, int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_sqrt __gmpz_sqrt
+__GMP_DECLSPEC void mpz_sqrt __GMP_PROTO ((mpz_ptr, mpz_srcptr));
+
+#define mpz_sqrtrem __gmpz_sqrtrem
+__GMP_DECLSPEC void mpz_sqrtrem __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr));
+
+#define mpz_sub __gmpz_sub
+__GMP_DECLSPEC void mpz_sub __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_sub_ui __gmpz_sub_ui
+__GMP_DECLSPEC void mpz_sub_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_ui_sub __gmpz_ui_sub
+__GMP_DECLSPEC void mpz_ui_sub __GMP_PROTO ((mpz_ptr, unsigned long int, mpz_srcptr));
+
+#define mpz_submul __gmpz_submul
+__GMP_DECLSPEC void mpz_submul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_submul_ui __gmpz_submul_ui
+__GMP_DECLSPEC void mpz_submul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_swap __gmpz_swap
+__GMP_DECLSPEC void mpz_swap __GMP_PROTO ((mpz_ptr, mpz_ptr)) __GMP_NOTHROW;
+
+#define mpz_tdiv_ui __gmpz_tdiv_ui
+__GMP_DECLSPEC unsigned long int mpz_tdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpz_tdiv_q __gmpz_tdiv_q
+__GMP_DECLSPEC void mpz_tdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_tdiv_q_2exp __gmpz_tdiv_q_2exp
+__GMP_DECLSPEC void mpz_tdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_tdiv_q_ui __gmpz_tdiv_q_ui
+__GMP_DECLSPEC unsigned long int mpz_tdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_tdiv_qr __gmpz_tdiv_qr
+__GMP_DECLSPEC void mpz_tdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_tdiv_qr_ui __gmpz_tdiv_qr_ui
+__GMP_DECLSPEC unsigned long int mpz_tdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_tdiv_r __gmpz_tdiv_r
+__GMP_DECLSPEC void mpz_tdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+#define mpz_tdiv_r_2exp __gmpz_tdiv_r_2exp
+__GMP_DECLSPEC void mpz_tdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_tdiv_r_ui __gmpz_tdiv_r_ui
+__GMP_DECLSPEC unsigned long int mpz_tdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int));
+
+#define mpz_tstbit __gmpz_tstbit
+__GMP_DECLSPEC int mpz_tstbit __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpz_ui_pow_ui __gmpz_ui_pow_ui
+__GMP_DECLSPEC void mpz_ui_pow_ui __GMP_PROTO ((mpz_ptr, unsigned long int, unsigned long int));
+
+#define mpz_urandomb __gmpz_urandomb
+__GMP_DECLSPEC void mpz_urandomb __GMP_PROTO ((mpz_ptr, gmp_randstate_t, unsigned long int));
+
+#define mpz_urandomm __gmpz_urandomm
+__GMP_DECLSPEC void mpz_urandomm __GMP_PROTO ((mpz_ptr, gmp_randstate_t, mpz_srcptr));
+
+#define mpz_xor __gmpz_xor
+#define mpz_eor __gmpz_xor
+__GMP_DECLSPEC void mpz_xor __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr));
+
+
+/**************** Rational (i.e. Q) routines.  ****************/
+
+#define mpq_abs __gmpq_abs
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_abs)
+__GMP_DECLSPEC void mpq_abs __GMP_PROTO ((mpq_ptr, mpq_srcptr));
+#endif
+
+#define mpq_add __gmpq_add
+__GMP_DECLSPEC void mpq_add __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr));
+
+#define mpq_canonicalize __gmpq_canonicalize
+__GMP_DECLSPEC void mpq_canonicalize __GMP_PROTO ((mpq_ptr));
+
+#define mpq_clear __gmpq_clear
+__GMP_DECLSPEC void mpq_clear __GMP_PROTO ((mpq_ptr));
+
+#define mpq_cmp __gmpq_cmp
+__GMP_DECLSPEC int mpq_cmp __GMP_PROTO ((mpq_srcptr, mpq_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define _mpq_cmp_si __gmpq_cmp_si
+__GMP_DECLSPEC int _mpq_cmp_si __GMP_PROTO ((mpq_srcptr, long, unsigned long)) __GMP_ATTRIBUTE_PURE;
+
+#define _mpq_cmp_ui __gmpq_cmp_ui
+__GMP_DECLSPEC int _mpq_cmp_ui __GMP_PROTO ((mpq_srcptr, unsigned long int, unsigned long int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpq_div __gmpq_div
+__GMP_DECLSPEC void mpq_div __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr));
+
+#define mpq_div_2exp __gmpq_div_2exp
+__GMP_DECLSPEC void mpq_div_2exp __GMP_PROTO ((mpq_ptr, mpq_srcptr, unsigned long));
+
+#define mpq_equal __gmpq_equal
+__GMP_DECLSPEC int mpq_equal __GMP_PROTO ((mpq_srcptr, mpq_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpq_get_num __gmpq_get_num
+__GMP_DECLSPEC void mpq_get_num __GMP_PROTO ((mpz_ptr, mpq_srcptr));
+
+#define mpq_get_den __gmpq_get_den
+__GMP_DECLSPEC void mpq_get_den __GMP_PROTO ((mpz_ptr, mpq_srcptr));
+
+#define mpq_get_d __gmpq_get_d
+__GMP_DECLSPEC double mpq_get_d __GMP_PROTO ((mpq_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpq_get_str __gmpq_get_str
+__GMP_DECLSPEC char *mpq_get_str __GMP_PROTO ((char *, int, mpq_srcptr));
+
+#define mpq_init __gmpq_init
+__GMP_DECLSPEC void mpq_init __GMP_PROTO ((mpq_ptr));
+
+#define mpq_inp_str __gmpq_inp_str
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpq_inp_str __GMP_PROTO ((mpq_ptr, FILE *, int));
+#endif
+
+#define mpq_inv __gmpq_inv
+__GMP_DECLSPEC void mpq_inv __GMP_PROTO ((mpq_ptr, mpq_srcptr));
+
+#define mpq_mul __gmpq_mul
+__GMP_DECLSPEC void mpq_mul __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr));
+
+#define mpq_mul_2exp __gmpq_mul_2exp
+__GMP_DECLSPEC void mpq_mul_2exp __GMP_PROTO ((mpq_ptr, mpq_srcptr, unsigned long));
+
+#define mpq_neg __gmpq_neg
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_neg)
+__GMP_DECLSPEC void mpq_neg __GMP_PROTO ((mpq_ptr, mpq_srcptr));
+#endif
+
+#define mpq_out_str __gmpq_out_str
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpq_out_str __GMP_PROTO ((FILE *, int, mpq_srcptr));
+#endif
+
+#define mpq_set __gmpq_set
+__GMP_DECLSPEC void mpq_set __GMP_PROTO ((mpq_ptr, mpq_srcptr));
+
+#define mpq_set_d __gmpq_set_d
+__GMP_DECLSPEC void mpq_set_d __GMP_PROTO ((mpq_ptr, double));
+
+#define mpq_set_den __gmpq_set_den
+__GMP_DECLSPEC void mpq_set_den __GMP_PROTO ((mpq_ptr, mpz_srcptr));
+
+#define mpq_set_f __gmpq_set_f
+__GMP_DECLSPEC void mpq_set_f __GMP_PROTO ((mpq_ptr, mpf_srcptr));
+
+#define mpq_set_num __gmpq_set_num
+__GMP_DECLSPEC void mpq_set_num __GMP_PROTO ((mpq_ptr, mpz_srcptr));
+
+#define mpq_set_si __gmpq_set_si
+__GMP_DECLSPEC void mpq_set_si __GMP_PROTO ((mpq_ptr, signed long int, unsigned long int));
+
+#define mpq_set_str __gmpq_set_str
+__GMP_DECLSPEC int mpq_set_str __GMP_PROTO ((mpq_ptr, __gmp_const char *, int));
+
+#define mpq_set_ui __gmpq_set_ui
+__GMP_DECLSPEC void mpq_set_ui __GMP_PROTO ((mpq_ptr, unsigned long int, unsigned long int));
+
+#define mpq_set_z __gmpq_set_z
+__GMP_DECLSPEC void mpq_set_z __GMP_PROTO ((mpq_ptr, mpz_srcptr));
+
+#define mpq_sub __gmpq_sub
+__GMP_DECLSPEC void mpq_sub __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr));
+
+#define mpq_swap __gmpq_swap
+__GMP_DECLSPEC void mpq_swap __GMP_PROTO ((mpq_ptr, mpq_ptr)) __GMP_NOTHROW;
+
+
+/**************** Float (i.e. F) routines.  ****************/
+
+#define mpf_abs __gmpf_abs
+__GMP_DECLSPEC void mpf_abs __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_add __gmpf_add
+__GMP_DECLSPEC void mpf_add __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr));
+
+#define mpf_add_ui __gmpf_add_ui
+__GMP_DECLSPEC void mpf_add_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int));
+#define mpf_ceil __gmpf_ceil
+__GMP_DECLSPEC void mpf_ceil __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_clear __gmpf_clear
+__GMP_DECLSPEC void mpf_clear __GMP_PROTO ((mpf_ptr));
+
+#define mpf_cmp __gmpf_cmp
+__GMP_DECLSPEC int mpf_cmp __GMP_PROTO ((mpf_srcptr, mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_cmp_d __gmpf_cmp_d
+__GMP_DECLSPEC int mpf_cmp_d __GMP_PROTO ((mpf_srcptr, double)) __GMP_ATTRIBUTE_PURE;
+
+#define mpf_cmp_si __gmpf_cmp_si
+__GMP_DECLSPEC int mpf_cmp_si __GMP_PROTO ((mpf_srcptr, signed long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_cmp_ui __gmpf_cmp_ui
+__GMP_DECLSPEC int mpf_cmp_ui __GMP_PROTO ((mpf_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_div __gmpf_div
+__GMP_DECLSPEC void mpf_div __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr));
+
+#define mpf_div_2exp __gmpf_div_2exp
+__GMP_DECLSPEC void mpf_div_2exp __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int));
+
+#define mpf_div_ui __gmpf_div_ui
+__GMP_DECLSPEC void mpf_div_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int));
+
+#define mpf_dump __gmpf_dump
+__GMP_DECLSPEC void mpf_dump __GMP_PROTO ((mpf_srcptr));
+
+#define mpf_eq __gmpf_eq
+__GMP_DECLSPEC int mpf_eq __GMP_PROTO ((mpf_srcptr, mpf_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpf_fits_sint_p __gmpf_fits_sint_p
+__GMP_DECLSPEC int mpf_fits_sint_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_fits_slong_p __gmpf_fits_slong_p
+__GMP_DECLSPEC int mpf_fits_slong_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_fits_sshort_p __gmpf_fits_sshort_p
+__GMP_DECLSPEC int mpf_fits_sshort_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_fits_uint_p __gmpf_fits_uint_p
+__GMP_DECLSPEC int mpf_fits_uint_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_fits_ulong_p __gmpf_fits_ulong_p
+__GMP_DECLSPEC int mpf_fits_ulong_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_fits_ushort_p __gmpf_fits_ushort_p
+__GMP_DECLSPEC int mpf_fits_ushort_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_floor __gmpf_floor
+__GMP_DECLSPEC void mpf_floor __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_get_d __gmpf_get_d
+__GMP_DECLSPEC double mpf_get_d __GMP_PROTO ((mpf_srcptr)) __GMP_ATTRIBUTE_PURE;
+
+#define mpf_get_d_2exp __gmpf_get_d_2exp
+__GMP_DECLSPEC double mpf_get_d_2exp __GMP_PROTO ((signed long int *, mpf_srcptr));
+
+#define mpf_get_default_prec __gmpf_get_default_prec
+__GMP_DECLSPEC unsigned long int mpf_get_default_prec __GMP_PROTO ((void)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_get_prec __gmpf_get_prec
+__GMP_DECLSPEC unsigned long int mpf_get_prec __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_get_si __gmpf_get_si
+__GMP_DECLSPEC long mpf_get_si __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_get_str __gmpf_get_str
+__GMP_DECLSPEC char *mpf_get_str __GMP_PROTO ((char *, mp_exp_t *, int, size_t, mpf_srcptr));
+
+#define mpf_get_ui __gmpf_get_ui
+__GMP_DECLSPEC unsigned long mpf_get_ui __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_init __gmpf_init
+__GMP_DECLSPEC void mpf_init __GMP_PROTO ((mpf_ptr));
+
+#define mpf_init2 __gmpf_init2
+__GMP_DECLSPEC void mpf_init2 __GMP_PROTO ((mpf_ptr, unsigned long int));
+
+#define mpf_init_set __gmpf_init_set
+__GMP_DECLSPEC void mpf_init_set __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_init_set_d __gmpf_init_set_d
+__GMP_DECLSPEC void mpf_init_set_d __GMP_PROTO ((mpf_ptr, double));
+
+#define mpf_init_set_si __gmpf_init_set_si
+__GMP_DECLSPEC void mpf_init_set_si __GMP_PROTO ((mpf_ptr, signed long int));
+
+#define mpf_init_set_str __gmpf_init_set_str
+__GMP_DECLSPEC int mpf_init_set_str __GMP_PROTO ((mpf_ptr, __gmp_const char *, int));
+
+#define mpf_init_set_ui __gmpf_init_set_ui
+__GMP_DECLSPEC void mpf_init_set_ui __GMP_PROTO ((mpf_ptr, unsigned long int));
+
+#define mpf_inp_str __gmpf_inp_str
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpf_inp_str __GMP_PROTO ((mpf_ptr, FILE *, int));
+#endif
+
+#define mpf_integer_p __gmpf_integer_p
+__GMP_DECLSPEC int mpf_integer_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_mul __gmpf_mul
+__GMP_DECLSPEC void mpf_mul __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr));
+
+#define mpf_mul_2exp __gmpf_mul_2exp
+__GMP_DECLSPEC void mpf_mul_2exp __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int));
+
+#define mpf_mul_ui __gmpf_mul_ui
+__GMP_DECLSPEC void mpf_mul_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int));
+
+#define mpf_neg __gmpf_neg
+__GMP_DECLSPEC void mpf_neg __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_out_str __gmpf_out_str
+#ifdef _GMP_H_HAVE_FILE
+__GMP_DECLSPEC size_t mpf_out_str __GMP_PROTO ((FILE *, int, size_t, mpf_srcptr));
+#endif
+
+#define mpf_pow_ui __gmpf_pow_ui
+__GMP_DECLSPEC void mpf_pow_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int));
+
+#define mpf_random2 __gmpf_random2
+__GMP_DECLSPEC void mpf_random2 __GMP_PROTO ((mpf_ptr, mp_size_t, mp_exp_t));
+
+#define mpf_reldiff __gmpf_reldiff
+__GMP_DECLSPEC void mpf_reldiff __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr));
+
+#define mpf_set __gmpf_set
+__GMP_DECLSPEC void mpf_set __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_set_d __gmpf_set_d
+__GMP_DECLSPEC void mpf_set_d __GMP_PROTO ((mpf_ptr, double));
+
+#define mpf_set_default_prec __gmpf_set_default_prec
+__GMP_DECLSPEC void mpf_set_default_prec __GMP_PROTO ((unsigned long int)) __GMP_NOTHROW;
+
+#define mpf_set_prec __gmpf_set_prec
+__GMP_DECLSPEC void mpf_set_prec __GMP_PROTO ((mpf_ptr, unsigned long int));
+
+#define mpf_set_prec_raw __gmpf_set_prec_raw
+__GMP_DECLSPEC void mpf_set_prec_raw __GMP_PROTO ((mpf_ptr, unsigned long int)) __GMP_NOTHROW;
+
+#define mpf_set_q __gmpf_set_q
+__GMP_DECLSPEC void mpf_set_q __GMP_PROTO ((mpf_ptr, mpq_srcptr));
+
+#define mpf_set_si __gmpf_set_si
+__GMP_DECLSPEC void mpf_set_si __GMP_PROTO ((mpf_ptr, signed long int));
+
+#define mpf_set_str __gmpf_set_str
+__GMP_DECLSPEC int mpf_set_str __GMP_PROTO ((mpf_ptr, __gmp_const char *, int));
+
+#define mpf_set_ui __gmpf_set_ui
+__GMP_DECLSPEC void mpf_set_ui __GMP_PROTO ((mpf_ptr, unsigned long int));
+
+#define mpf_set_z __gmpf_set_z
+__GMP_DECLSPEC void mpf_set_z __GMP_PROTO ((mpf_ptr, mpz_srcptr));
+
+#define mpf_size __gmpf_size
+__GMP_DECLSPEC size_t mpf_size __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpf_sqrt __gmpf_sqrt
+__GMP_DECLSPEC void mpf_sqrt __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_sqrt_ui __gmpf_sqrt_ui
+__GMP_DECLSPEC void mpf_sqrt_ui __GMP_PROTO ((mpf_ptr, unsigned long int));
+
+#define mpf_sub __gmpf_sub
+__GMP_DECLSPEC void mpf_sub __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr));
+
+#define mpf_sub_ui __gmpf_sub_ui
+__GMP_DECLSPEC void mpf_sub_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int));
+
+#define mpf_swap __gmpf_swap
+__GMP_DECLSPEC void mpf_swap __GMP_PROTO ((mpf_ptr, mpf_ptr)) __GMP_NOTHROW;
+
+#define mpf_trunc __gmpf_trunc
+__GMP_DECLSPEC void mpf_trunc __GMP_PROTO ((mpf_ptr, mpf_srcptr));
+
+#define mpf_ui_div __gmpf_ui_div
+__GMP_DECLSPEC void mpf_ui_div __GMP_PROTO ((mpf_ptr, unsigned long int, mpf_srcptr));
+
+#define mpf_ui_sub __gmpf_ui_sub
+__GMP_DECLSPEC void mpf_ui_sub __GMP_PROTO ((mpf_ptr, unsigned long int, mpf_srcptr));
+
+#define mpf_urandomb __gmpf_urandomb
+__GMP_DECLSPEC void mpf_urandomb __GMP_PROTO ((mpf_t, gmp_randstate_t, unsigned long int));
+
+
+/************ Low level positive-integer (i.e. N) routines.  ************/
+
+/* This is ugly, but we need to make user calls reach the prefixed function. */
+
+#define mpn_add __MPN(add)
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add)
+__GMP_DECLSPEC mp_limb_t mpn_add __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t));
+#endif
+
+#define mpn_add_1 __MPN(add_1)
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add_1)
+__GMP_DECLSPEC mp_limb_t mpn_add_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)) __GMP_NOTHROW;
+#endif
+
+#define mpn_add_n __MPN(add_n)
+__GMP_DECLSPEC mp_limb_t mpn_add_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
+
+#define mpn_addmul_1 __MPN(addmul_1)
+__GMP_DECLSPEC mp_limb_t mpn_addmul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t));
+
+#define mpn_bdivmod __MPN(bdivmod)
+__GMP_DECLSPEC mp_limb_t mpn_bdivmod __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, unsigned long int));
+
+#define mpn_cmp __MPN(cmp)
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_cmp)
+__GMP_DECLSPEC int mpn_cmp __GMP_PROTO ((mp_srcptr, mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+#endif
+
+#define mpn_divexact_by3(dst,src,size) \
+  mpn_divexact_by3c (dst, src, size, __GMP_CAST (mp_limb_t, 0))
+
+#define mpn_divexact_by3c __MPN(divexact_by3c)
+__GMP_DECLSPEC mp_limb_t mpn_divexact_by3c __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t));
+
+#define mpn_divmod_1(qp,np,nsize,dlimb) \
+  mpn_divrem_1 (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dlimb)
+
+#define mpn_divrem __MPN(divrem)
+__GMP_DECLSPEC mp_limb_t mpn_divrem __GMP_PROTO ((mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t));
+
+#define mpn_divrem_1 __MPN(divrem_1)
+__GMP_DECLSPEC mp_limb_t mpn_divrem_1 __GMP_PROTO ((mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t));
+
+#define mpn_divrem_2 __MPN(divrem_2)
+__GMP_DECLSPEC mp_limb_t mpn_divrem_2 __GMP_PROTO ((mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr));
+
+#define mpn_gcd __MPN(gcd)
+__GMP_DECLSPEC mp_size_t mpn_gcd __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t));
+
+#define mpn_gcd_1 __MPN(gcd_1)
+__GMP_DECLSPEC mp_limb_t mpn_gcd_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_gcdext_1 __MPN(gcdext_1)
+__GMP_DECLSPEC mp_limb_t mpn_gcdext_1 __GMP_PROTO ((mp_ptr, mp_ptr, mp_limb_t, mp_limb_t));
+
+#define mpn_gcdext __MPN(gcdext)
+__GMP_DECLSPEC mp_size_t mpn_gcdext __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t));
+
+#define mpn_get_str __MPN(get_str)
+__GMP_DECLSPEC size_t mpn_get_str __GMP_PROTO ((unsigned char *, int, mp_ptr, mp_size_t));
+
+#define mpn_hamdist __MPN(hamdist)
+__GMP_DECLSPEC unsigned long int mpn_hamdist __GMP_PROTO ((mp_srcptr, mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpn_lshift __MPN(lshift)
+__GMP_DECLSPEC mp_limb_t mpn_lshift __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, unsigned int));
+
+#define mpn_mod_1 __MPN(mod_1)
+__GMP_DECLSPEC mp_limb_t mpn_mod_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_mul __MPN(mul)
+__GMP_DECLSPEC mp_limb_t mpn_mul __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t));
+
+#define mpn_mul_1 __MPN(mul_1)
+__GMP_DECLSPEC mp_limb_t mpn_mul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t));
+
+#define mpn_mul_n __MPN(mul_n)
+__GMP_DECLSPEC void mpn_mul_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
+
+#define mpn_neg_n __MPN(neg_n)
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_neg_n)
+__GMP_DECLSPEC mp_limb_t mpn_neg_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t));
+#endif
+
+#define mpn_perfect_square_p __MPN(perfect_square_p)
+__GMP_DECLSPEC int mpn_perfect_square_p __GMP_PROTO ((mp_srcptr, mp_size_t)) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_popcount __MPN(popcount)
+__GMP_DECLSPEC unsigned long int mpn_popcount __GMP_PROTO ((mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
+
+#define mpn_pow_1 __MPN(pow_1)
+__GMP_DECLSPEC mp_size_t mpn_pow_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr));
+
+/* undocumented now, but retained here for upward compatibility */
+#define mpn_preinv_mod_1 __MPN(preinv_mod_1)
+__GMP_DECLSPEC mp_limb_t mpn_preinv_mod_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_random __MPN(random)
+__GMP_DECLSPEC void mpn_random __GMP_PROTO ((mp_ptr, mp_size_t));
+
+#define mpn_random2 __MPN(random2)
+__GMP_DECLSPEC void mpn_random2 __GMP_PROTO ((mp_ptr, mp_size_t));
+
+#define mpn_rshift __MPN(rshift)
+__GMP_DECLSPEC mp_limb_t mpn_rshift __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, unsigned int));
+
+#define mpn_scan0 __MPN(scan0)
+__GMP_DECLSPEC unsigned long int mpn_scan0 __GMP_PROTO ((mp_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_scan1 __MPN(scan1)
+__GMP_DECLSPEC unsigned long int mpn_scan1 __GMP_PROTO ((mp_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE;
+
+#define mpn_set_str __MPN(set_str)
+__GMP_DECLSPEC mp_size_t mpn_set_str __GMP_PROTO ((mp_ptr, __gmp_const unsigned char *, size_t, int));
+
+#define mpn_sqrtrem __MPN(sqrtrem)
+__GMP_DECLSPEC mp_size_t mpn_sqrtrem __GMP_PROTO ((mp_ptr, mp_ptr, mp_srcptr, mp_size_t));
+
+#define mpn_sub __MPN(sub)
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub)
+__GMP_DECLSPEC mp_limb_t mpn_sub __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t));
+#endif
+
+#define mpn_sub_1 __MPN(sub_1)
+#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub_1)
+__GMP_DECLSPEC mp_limb_t mpn_sub_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)) __GMP_NOTHROW;
+#endif
+
+#define mpn_sub_n __MPN(sub_n)
+__GMP_DECLSPEC mp_limb_t mpn_sub_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
+
+#define mpn_submul_1 __MPN(submul_1)
+__GMP_DECLSPEC mp_limb_t mpn_submul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t));
+
+#define mpn_tdiv_qr __MPN(tdiv_qr)
+__GMP_DECLSPEC void mpn_tdiv_qr __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t));
+
+
+/**************** mpz inlines ****************/
+
+/* The following are provided as inlines where possible, but always exist as
+   library functions too, for binary compatibility.
+
+   Within gmp itself this inlining generally isn't relied on, since it
+   doesn't get done for all compilers, whereas if something is worth
+   inlining then it's worth arranging always.
+
+   There are two styles of inlining here.  When the same bit of code is
+   wanted for the inline as for the library version, then __GMP_FORCE_foo
+   arranges for that code to be emitted and the __GMP_EXTERN_INLINE
+   directive suppressed, eg. mpz_fits_uint_p.  When a different bit of code
+   is wanted for the inline than for the library version, then
+   __GMP_FORCE_foo arranges the inline to be suppressed, eg. mpz_abs.  */
+
+#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_abs)
+__GMP_EXTERN_INLINE void
+mpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
+{
+  if (__gmp_w != __gmp_u)
+    mpz_set (__gmp_w, __gmp_u);
+  __gmp_w->_mp_size = __GMP_ABS (__gmp_w->_mp_size);
+}
+#endif
+
+#if GMP_NAIL_BITS == 0
+#define __GMPZ_FITS_UTYPE_P(z,maxval)                                  \
+  mp_size_t  __gmp_n = z->_mp_size;                                    \
+  mp_ptr  __gmp_p = z->_mp_d;                                          \
+  return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval));
+#else
+#define __GMPZ_FITS_UTYPE_P(z,maxval)                                  \
+  mp_size_t  __gmp_n = z->_mp_size;                                    \
+  mp_ptr  __gmp_p = z->_mp_d;                                          \
+  return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval)       \
+         || (__gmp_n == 2 && __gmp_p[1] <= ((mp_limb_t) maxval >> GMP_NUMB_BITS)));
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_uint_p)
+#if ! defined (__GMP_FORCE_mpz_fits_uint_p)
+__GMP_EXTERN_INLINE
+#endif
+int
+mpz_fits_uint_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
+{
+  __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_UINT_MAX);
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ulong_p)
+#if ! defined (__GMP_FORCE_mpz_fits_ulong_p)
+__GMP_EXTERN_INLINE
+#endif
+int
+mpz_fits_ulong_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
+{
+  __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_ULONG_MAX);
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ushort_p)
+#if ! defined (__GMP_FORCE_mpz_fits_ushort_p)
+__GMP_EXTERN_INLINE
+#endif
+int
+mpz_fits_ushort_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
+{
+  __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_USHRT_MAX);
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_get_ui)
+#if ! defined (__GMP_FORCE_mpz_get_ui)
+__GMP_EXTERN_INLINE
+#endif
+unsigned long
+mpz_get_ui (mpz_srcptr __gmp_z) __GMP_NOTHROW
+{
+  mp_ptr __gmp_p = __gmp_z->_mp_d;
+  mp_size_t __gmp_n = __gmp_z->_mp_size;
+  mp_limb_t __gmp_l = __gmp_p[0];
+  /* This is a "#if" rather than a plain "if" so as to avoid gcc warnings
+     about "<< GMP_NUMB_BITS" exceeding the type size, and to avoid Borland
+     C++ 6.0 warnings about condition always true for something like
+     "__GMP_ULONG_MAX < GMP_NUMB_MASK".  */
+#if GMP_NAIL_BITS == 0 || defined (_LONG_LONG_LIMB)
+  /* limb==long and no nails, or limb==longlong, one limb is enough */
+  return (__gmp_n != 0 ? __gmp_l : 0);
+#else
+  /* limb==long and nails, need two limbs when available */
+  __gmp_n = __GMP_ABS (__gmp_n);
+  if (__gmp_n <= 1)
+    return (__gmp_n != 0 ? __gmp_l : 0);
+  else
+    return __gmp_l + (__gmp_p[1] << GMP_NUMB_BITS);
+#endif
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_getlimbn)
+#if ! defined (__GMP_FORCE_mpz_getlimbn)
+__GMP_EXTERN_INLINE
+#endif
+mp_limb_t
+mpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) __GMP_NOTHROW
+{
+  mp_limb_t  __gmp_result = 0;
+  if (__GMP_LIKELY (__gmp_n >= 0 && __gmp_n < __GMP_ABS (__gmp_z->_mp_size)))
+    __gmp_result = __gmp_z->_mp_d[__gmp_n];
+  return __gmp_result;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_neg)
+__GMP_EXTERN_INLINE void
+mpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
+{
+  if (__gmp_w != __gmp_u)
+    mpz_set (__gmp_w, __gmp_u);
+  __gmp_w->_mp_size = - __gmp_w->_mp_size;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_perfect_square_p)
+#if ! defined (__GMP_FORCE_mpz_perfect_square_p)
+__GMP_EXTERN_INLINE
+#endif
+int
+mpz_perfect_square_p (mpz_srcptr __gmp_a)
+{
+  mp_size_t __gmp_asize;
+  int       __gmp_result;
+
+  __gmp_asize = __gmp_a->_mp_size;
+  __gmp_result = (__gmp_asize >= 0);  /* zero is a square, negatives are not */
+  if (__GMP_LIKELY (__gmp_asize > 0))
+    __gmp_result = mpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize);
+  return __gmp_result;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_popcount)
+#if ! defined (__GMP_FORCE_mpz_popcount)
+__GMP_EXTERN_INLINE
+#endif
+unsigned long
+mpz_popcount (mpz_srcptr __gmp_u) __GMP_NOTHROW
+{
+  mp_size_t      __gmp_usize;
+  unsigned long  __gmp_result;
+
+  __gmp_usize = __gmp_u->_mp_size;
+  __gmp_result = (__gmp_usize < 0 ? __GMP_ULONG_MAX : 0);
+  if (__GMP_LIKELY (__gmp_usize > 0))
+    __gmp_result =  mpn_popcount (__gmp_u->_mp_d, __gmp_usize);
+  return __gmp_result;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_set_q)
+#if ! defined (__GMP_FORCE_mpz_set_q)
+__GMP_EXTERN_INLINE
+#endif
+void
+mpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u)
+{
+  mpz_tdiv_q (__gmp_w, mpq_numref (__gmp_u), mpq_denref (__gmp_u));
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_size)
+#if ! defined (__GMP_FORCE_mpz_size)
+__GMP_EXTERN_INLINE
+#endif
+size_t
+mpz_size (mpz_srcptr __gmp_z) __GMP_NOTHROW
+{
+  return __GMP_ABS (__gmp_z->_mp_size);
+}
+#endif
+
+
+/**************** mpq inlines ****************/
+
+#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_abs)
+__GMP_EXTERN_INLINE void
+mpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
+{
+  if (__gmp_w != __gmp_u)
+    mpq_set (__gmp_w, __gmp_u);
+  __gmp_w->_mp_num._mp_size = __GMP_ABS (__gmp_w->_mp_num._mp_size);
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_neg)
+__GMP_EXTERN_INLINE void
+mpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
+{
+  if (__gmp_w != __gmp_u)
+    mpq_set (__gmp_w, __gmp_u);
+  __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size;
+}
+#endif
+
+
+/**************** mpn inlines ****************/
+
+/* The comments with __GMPN_ADD_1 below apply here too.
+
+   The test for FUNCTION returning 0 should predict well.  If it's assumed
+   {yp,ysize} will usually have a random number of bits then the high limb
+   won't be full and a carry out will occur a good deal less than 50% of the
+   time.
+
+   ysize==0 isn't a documented feature, but is used internally in a few
+   places.
+
+   Producing cout last stops it using up a register during the main part of
+   the calculation, though gcc (as of 3.0) on an "if (mpn_add (...))"
+   doesn't seem able to move the true and false legs of the conditional up
+   to the two places cout is generated.  */
+
+#define __GMPN_AORS(cout, wp, xp, xsize, yp, ysize, FUNCTION, TEST)     \
+  do {                                                                  \
+    mp_size_t  __gmp_i;                                                 \
+    mp_limb_t  __gmp_x;                                                 \
+                                                                        \
+    /* ASSERT ((ysize) >= 0); */                                        \
+    /* ASSERT ((xsize) >= (ysize)); */                                  \
+    /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, xp, xsize)); */      \
+    /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, yp, ysize)); */      \
+                                                                        \
+    __gmp_i = (ysize);                                                  \
+    if (__gmp_i != 0)                                                   \
+      {                                                                 \
+        if (FUNCTION (wp, xp, yp, __gmp_i))                             \
+          {                                                             \
+            do                                                          \
+              {                                                         \
+                if (__gmp_i >= (xsize))                                 \
+                  {                                                     \
+                    (cout) = 1;                                         \
+                    goto __gmp_done;                                    \
+                  }                                                     \
+                __gmp_x = (xp)[__gmp_i];                                \
+              }                                                         \
+            while (TEST);                                               \
+          }                                                             \
+      }                                                                 \
+    if ((wp) != (xp))                                                   \
+      __GMPN_COPY_REST (wp, xp, xsize, __gmp_i);                        \
+    (cout) = 0;                                                         \
+  __gmp_done:                                                           \
+    ;                                                                   \
+  } while (0)
+
+#define __GMPN_ADD(cout, wp, xp, xsize, yp, ysize)              \
+  __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_add_n,       \
+               (((wp)[__gmp_i++] = (__gmp_x + 1) & GMP_NUMB_MASK) == 0))
+#define __GMPN_SUB(cout, wp, xp, xsize, yp, ysize)              \
+  __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_sub_n,       \
+               (((wp)[__gmp_i++] = (__gmp_x - 1) & GMP_NUMB_MASK), __gmp_x == 0))
+
+
+/* The use of __gmp_i indexing is designed to ensure a compile time src==dst
+   remains nice and clear to the compiler, so that __GMPN_COPY_REST can
+   disappear, and the load/add/store gets a chance to become a
+   read-modify-write on CISC CPUs.
+
+   Alternatives:
+
+   Using a pair of pointers instead of indexing would be possible, but gcc
+   isn't able to recognise compile-time src==dst in that case, even when the
+   pointers are incremented more or less together.  Other compilers would
+   very likely have similar difficulty.
+
+   gcc could use "if (__builtin_constant_p(src==dst) && src==dst)" or
+   similar to detect a compile-time src==dst.  This works nicely on gcc
+   2.95.x, it's not good on gcc 3.0 where __builtin_constant_p(p==p) seems
+   to be always false, for a pointer p.  But the current code form seems
+   good enough for src==dst anyway.
+
+   gcc on x86 as usual doesn't give particularly good flags handling for the
+   carry/borrow detection.  It's tempting to want some multi instruction asm
+   blocks to help it, and this was tried, but in truth there's only a few
+   instructions to save and any gain is all too easily lost by register
+   juggling setting up for the asm.  */
+
+#if GMP_NAIL_BITS == 0
+#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB)            \
+  do {                                                         \
+    mp_size_t  __gmp_i;                                                \
+    mp_limb_t  __gmp_x, __gmp_r;                                \
+                                                               \
+    /* ASSERT ((n) >= 1); */                                   \
+    /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */       \
+                                                               \
+    __gmp_x = (src)[0];                                                \
+    __gmp_r = __gmp_x OP (v);                                   \
+    (dst)[0] = __gmp_r;                                                \
+    if (CB (__gmp_r, __gmp_x, (v)))                             \
+      {                                                                \
+       (cout) = 1;                                             \
+       for (__gmp_i = 1; __gmp_i < (n);)                       \
+         {                                                     \
+           __gmp_x = (src)[__gmp_i];                           \
+           __gmp_r = __gmp_x OP 1;                             \
+           (dst)[__gmp_i] = __gmp_r;                           \
+           ++__gmp_i;                                          \
+           if (!CB (__gmp_r, __gmp_x, 1))                      \
+             {                                                 \
+               if ((src) != (dst))                             \
+                 __GMPN_COPY_REST (dst, src, n, __gmp_i);      \
+               (cout) = 0;                                     \
+               break;                                          \
+             }                                                 \
+         }                                                     \
+      }                                                                \
+    else                                                       \
+      {                                                                \
+       if ((src) != (dst))                                     \
+         __GMPN_COPY_REST (dst, src, n, 1);                    \
+       (cout) = 0;                                             \
+      }                                                                \
+  } while (0)
+#endif
+
+#if GMP_NAIL_BITS >= 1
+#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB)            \
+  do {                                                         \
+    mp_size_t  __gmp_i;                                                \
+    mp_limb_t  __gmp_x, __gmp_r;                               \
+                                                               \
+    /* ASSERT ((n) >= 1); */                                   \
+    /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */       \
+                                                               \
+    __gmp_x = (src)[0];                                                \
+    __gmp_r = __gmp_x OP (v);                                  \
+    (dst)[0] = __gmp_r & GMP_NUMB_MASK;                                \
+    if (__gmp_r >> GMP_NUMB_BITS != 0)                         \
+      {                                                                \
+       (cout) = 1;                                             \
+       for (__gmp_i = 1; __gmp_i < (n);)                       \
+         {                                                     \
+           __gmp_x = (src)[__gmp_i];                           \
+           __gmp_r = __gmp_x OP 1;                             \
+           (dst)[__gmp_i] = __gmp_r & GMP_NUMB_MASK;           \
+           ++__gmp_i;                                          \
+           if (__gmp_r >> GMP_NUMB_BITS == 0)                  \
+             {                                                 \
+               if ((src) != (dst))                             \
+                 __GMPN_COPY_REST (dst, src, n, __gmp_i);      \
+               (cout) = 0;                                     \
+               break;                                          \
+             }                                                 \
+         }                                                     \
+      }                                                                \
+    else                                                       \
+      {                                                                \
+       if ((src) != (dst))                                     \
+         __GMPN_COPY_REST (dst, src, n, 1);                    \
+       (cout) = 0;                                             \
+      }                                                                \
+  } while (0)
+#endif
+
+#define __GMPN_ADDCB(r,x,y) ((r) < (y))
+#define __GMPN_SUBCB(r,x,y) ((x) < (y))
+
+#define __GMPN_ADD_1(cout, dst, src, n, v)          \
+  __GMPN_AORS_1(cout, dst, src, n, v, +, __GMPN_ADDCB)
+#define __GMPN_SUB_1(cout, dst, src, n, v)          \
+  __GMPN_AORS_1(cout, dst, src, n, v, -, __GMPN_SUBCB)
+
+
+/* Compare {xp,size} and {yp,size}, setting "result" to positive, zero or
+   negative.  size==0 is allowed.  On random data usually only one limb will
+   need to be examined to get a result, so it's worth having it inline.  */
+#define __GMPN_CMP(result, xp, yp, size)                                \
+  do {                                                                  \
+    mp_size_t  __gmp_i;                                                 \
+    mp_limb_t  __gmp_x, __gmp_y;                                        \
+                                                                        \
+    /* ASSERT ((size) >= 0); */                                         \
+                                                                        \
+    (result) = 0;                                                       \
+    __gmp_i = (size);                                                   \
+    while (--__gmp_i >= 0)                                              \
+      {                                                                 \
+        __gmp_x = (xp)[__gmp_i];                                        \
+        __gmp_y = (yp)[__gmp_i];                                        \
+        if (__gmp_x != __gmp_y)                                         \
+          {                                                             \
+            /* Cannot use __gmp_x - __gmp_y, may overflow an "int" */   \
+            (result) = (__gmp_x > __gmp_y ? 1 : -1);                    \
+            break;                                                      \
+          }                                                             \
+      }                                                                 \
+  } while (0)
+
+
+#if defined (__GMPN_COPY) && ! defined (__GMPN_COPY_REST)
+#define __GMPN_COPY_REST(dst, src, size, start)                 \
+  do {                                                          \
+    /* ASSERT ((start) >= 0); */                                \
+    /* ASSERT ((start) <= (size)); */                           \
+    __GMPN_COPY ((dst)+(start), (src)+(start), (size)-(start)); \
+  } while (0)
+#endif
+
+/* Copy {src,size} to {dst,size}, starting at "start".  This is designed to
+   keep the indexing dst[j] and src[j] nice and simple for __GMPN_ADD_1,
+   __GMPN_ADD, etc.  */
+#if ! defined (__GMPN_COPY_REST)
+#define __GMPN_COPY_REST(dst, src, size, start)                 \
+  do {                                                          \
+    mp_size_t __gmp_j;                                          \
+    /* ASSERT ((size) >= 0); */                                 \
+    /* ASSERT ((start) >= 0); */                                \
+    /* ASSERT ((start) <= (size)); */                           \
+    /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, size)); */     \
+    __GMP_CRAY_Pragma ("_CRI ivdep");                           \
+    for (__gmp_j = (start); __gmp_j < (size); __gmp_j++)        \
+      (dst)[__gmp_j] = (src)[__gmp_j];                          \
+  } while (0)
+#endif
+
+/* Enhancement: Use some of the smarter code from gmp-impl.h.  Maybe use
+   mpn_copyi if there's a native version, and if we don't mind demanding
+   binary compatibility for it (on targets which use it).  */
+
+#if ! defined (__GMPN_COPY)
+#define __GMPN_COPY(dst, src, size)   __GMPN_COPY_REST (dst, src, size, 0)
+#endif
+
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add)
+#if ! defined (__GMP_FORCE_mpn_add)
+__GMP_EXTERN_INLINE
+#endif
+mp_limb_t
+mpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
+{
+  mp_limb_t  __gmp_c;
+  __GMPN_ADD (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize);
+  return __gmp_c;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add_1)
+#if ! defined (__GMP_FORCE_mpn_add_1)
+__GMP_EXTERN_INLINE
+#endif
+mp_limb_t
+mpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW
+{
+  mp_limb_t  __gmp_c;
+  __GMPN_ADD_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n);
+  return __gmp_c;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_cmp)
+#if ! defined (__GMP_FORCE_mpn_cmp)
+__GMP_EXTERN_INLINE
+#endif
+int
+mpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) __GMP_NOTHROW
+{
+  int __gmp_result;
+  __GMPN_CMP (__gmp_result, __gmp_xp, __gmp_yp, __gmp_size);
+  return __gmp_result;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub)
+#if ! defined (__GMP_FORCE_mpn_sub)
+__GMP_EXTERN_INLINE
+#endif
+mp_limb_t
+mpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
+{
+  mp_limb_t  __gmp_c;
+  __GMPN_SUB (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize);
+  return __gmp_c;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub_1)
+#if ! defined (__GMP_FORCE_mpn_sub_1)
+__GMP_EXTERN_INLINE
+#endif
+mp_limb_t
+mpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW
+{
+  mp_limb_t  __gmp_c;
+  __GMPN_SUB_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n);
+  return __gmp_c;
+}
+#endif
+
+#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_neg_n)
+#if ! defined (__GMP_FORCE_mpn_neg_n)
+__GMP_EXTERN_INLINE
+#endif
+mp_limb_t
+mpn_neg_n (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n)
+{
+  mp_limb_t __gmp_ul, __gmp_cy;
+  __gmp_cy = 0;
+  do {
+      __gmp_ul = *__gmp_up++;
+      *__gmp_rp++ = -__gmp_ul - __gmp_cy;
+      __gmp_cy |= __gmp_ul != 0;
+  } while (--__gmp_n != 0);
+  return __gmp_cy;
+}
+#endif
+
+#if defined (__cplusplus)
+}
+#endif
+
+
+/* Allow faster testing for negative, zero, and positive.  */
+#define mpz_sgn(Z) ((Z)->_mp_size < 0 ? -1 : (Z)->_mp_size > 0)
+#define mpf_sgn(F) ((F)->_mp_size < 0 ? -1 : (F)->_mp_size > 0)
+#define mpq_sgn(Q) ((Q)->_mp_num._mp_size < 0 ? -1 : (Q)->_mp_num._mp_size > 0)
+
+/* When using GCC, optimize certain common comparisons.  */
+#if defined (__GNUC__) && __GNUC__ >= 2
+#define mpz_cmp_ui(Z,UI) \
+  (__builtin_constant_p (UI) && (UI) == 0                              \
+   ? mpz_sgn (Z) : _mpz_cmp_ui (Z,UI))
+#define mpz_cmp_si(Z,SI) \
+  (__builtin_constant_p (SI) && (SI) == 0 ? mpz_sgn (Z)                        \
+   : __builtin_constant_p (SI) && (SI) > 0                             \
+    ? _mpz_cmp_ui (Z, __GMP_CAST (unsigned long int, SI))              \
+   : _mpz_cmp_si (Z,SI))
+#define mpq_cmp_ui(Q,NUI,DUI) \
+  (__builtin_constant_p (NUI) && (NUI) == 0                            \
+   ? mpq_sgn (Q) : _mpq_cmp_ui (Q,NUI,DUI))
+#define mpq_cmp_si(q,n,d)                       \
+  (__builtin_constant_p ((n) >= 0) && (n) >= 0  \
+   ? mpq_cmp_ui (q, __GMP_CAST (unsigned long, n), d) \
+   : _mpq_cmp_si (q, n, d))
+#else
+#define mpz_cmp_ui(Z,UI) _mpz_cmp_ui (Z,UI)
+#define mpz_cmp_si(Z,UI) _mpz_cmp_si (Z,UI)
+#define mpq_cmp_ui(Q,NUI,DUI) _mpq_cmp_ui (Q,NUI,DUI)
+#define mpq_cmp_si(q,n,d)  _mpq_cmp_si(q,n,d)
+#endif
+
+
+/* Using "&" rather than "&&" means these can come out branch-free.  Every
+   mpz_t has at least one limb allocated, so fetching the low limb is always
+   allowed.  */
+#define mpz_odd_p(z)   (((z)->_mp_size != 0) & __GMP_CAST (int, (z)->_mp_d[0]))
+#define mpz_even_p(z)  (! mpz_odd_p (z))
+
+
+/**************** C++ routines ****************/
+
+#ifdef __cplusplus
+__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpz_srcptr);
+__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpq_srcptr);
+__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpf_srcptr);
+__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpz_ptr);
+__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpq_ptr);
+__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpf_ptr);
+#endif
+
+
+/* Source-level compatibility with GMP 2 and earlier. */
+#define mpn_divmod(qp,np,nsize,dp,dsize) \
+  mpn_divrem (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dp, dsize)
+
+/* Source-level compatibility with GMP 1.  */
+#define mpz_mdiv       mpz_fdiv_q
+#define mpz_mdivmod    mpz_fdiv_qr
+#define mpz_mmod       mpz_fdiv_r
+#define mpz_mdiv_ui    mpz_fdiv_q_ui
+#define mpz_mdivmod_ui(q,r,n,d) \
+  (((r) == 0) ? mpz_fdiv_q_ui (q,n,d) : mpz_fdiv_qr_ui (q,r,n,d))
+#define mpz_mmod_ui(r,n,d) \
+  (((r) == 0) ? mpz_fdiv_ui (n,d) : mpz_fdiv_r_ui (r,n,d))
+
+/* Useful synonyms, but not quite compatible with GMP 1.  */
+#define mpz_div                mpz_fdiv_q
+#define mpz_divmod     mpz_fdiv_qr
+#define mpz_div_ui     mpz_fdiv_q_ui
+#define mpz_divmod_ui  mpz_fdiv_qr_ui
+#define mpz_div_2exp   mpz_fdiv_q_2exp
+#define mpz_mod_2exp   mpz_fdiv_r_2exp
+
+enum
+{
+  GMP_ERROR_NONE = 0,
+  GMP_ERROR_UNSUPPORTED_ARGUMENT = 1,
+  GMP_ERROR_DIVISION_BY_ZERO = 2,
+  GMP_ERROR_SQRT_OF_NEGATIVE = 4,
+  GMP_ERROR_INVALID_ARGUMENT = 8
+};
+
+/* Define CC and CFLAGS which were used to build this version of GMP */
+#define __GMP_CC "gcc"
+#define __GMP_CFLAGS "-m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8"
+
+/* Major version number is the value of __GNU_MP__ too, above and in mp.h. */
+#define __GNU_MP_VERSION 4
+#define __GNU_MP_VERSION_MINOR 3
+#define __GNU_MP_VERSION_PATCHLEVEL 1
+
+#define __GMP_H__
+#endif /* __GMP_H__ */
diff --git a/gnu/usr.bin/cc44/libbackend/Makefile b/gnu/usr.bin/cc44/libbackend/Makefile
new file mode 100644 (file)
index 0000000..8b1b95e
--- /dev/null
@@ -0,0 +1,297 @@
+.include "../Makefile.inc"
+.include "../Makefile.langs"
+
+CFLAGS+=       -I${.CURDIR}/../config -I.
+CFLAGS+=       -DTARGET_NAME=\"${target_machine}\"
+
+LIB=           backend
+INTERNALLIB=   YES
+
+
+# stuff below copied verbatim from Makefile
+
+# The GC method to be used on this system.
+GGC=ggc-page.o
+
+host_hook_obj=host-default.o
+
+OBJS-common = \
+       insn-attrtab.o \
+       insn-automata.o \
+       insn-emit.o \
+       insn-extract.o \
+       insn-modes.o \
+       insn-opinit.o \
+       insn-output.o \
+       insn-peep.o \
+       insn-preds.o \
+       insn-recog.o \
+       $(GGC) \
+       alias.o \
+       alloc-pool.o \
+       auto-inc-dec.o \
+       bb-reorder.o \
+       bitmap.o \
+       bt-load.o \
+       builtins.o \
+       caller-save.o \
+       calls.o \
+       cfg.o \
+       cfganal.o \
+       cfgbuild.o \
+       cfgcleanup.o \
+       cfgexpand.o \
+       cfghooks.o \
+       cfglayout.o \
+       cfgloop.o \
+       cfgloopanal.o \
+       cfgloopmanip.o \
+       cfgrtl.o \
+       combine.o \
+       combine-stack-adj.o \
+       convert.o \
+       coverage.o \
+       cse.o \
+       cselib.o \
+       dbxout.o \
+       dbgcnt.o \
+       dce.o \
+       ddg.o \
+       debug.o \
+       df-byte-scan.o \
+       df-core.o \
+       df-problems.o \
+       df-scan.o \
+       dfp.o \
+       diagnostic.o \
+       dojump.o \
+       dominance.o \
+       domwalk.o \
+       double-int.o \
+       dse.o \
+       dwarf2asm.o \
+       dwarf2out.o \
+       ebitmap.o \
+       emit-rtl.o \
+       et-forest.o \
+       except.o \
+       explow.o \
+       expmed.o \
+       expr.o \
+       final.o \
+       fixed-value.o \
+       fold-const.o \
+       function.o \
+       fwprop.o \
+       gcse.o \
+       genrtl.o \
+       ggc-common.o \
+       gimple.o \
+       gimple-iterator.o \
+       gimple-low.o \
+       gimple-pretty-print.o \
+       gimplify.o \
+       graph.o \
+       graphds.o \
+       graphite.o \
+       gtype-desc.o \
+       haifa-sched.o \
+       hooks.o \
+       ifcvt.o \
+       init-regs.o \
+       integrate.o \
+       intl.o \
+       ira.o \
+       ira-build.o \
+       ira-costs.o \
+       ira-conflicts.o \
+       ira-color.o \
+       ira-emit.o \
+       ira-lives.o \
+       jump.o \
+       lambda-code.o \
+       lambda-mat.o \
+       lambda-trans.o \
+       langhooks.o \
+       lcm.o \
+       lists.o \
+       loop-doloop.o \
+       loop-init.o \
+       loop-invariant.o \
+       loop-iv.o \
+       loop-unroll.o \
+       loop-unswitch.o \
+       lower-subreg.o \
+       mcf.o \
+       mode-switching.o \
+       modulo-sched.o \
+       omega.o \
+       omp-low.o \
+       optabs.o \
+       options.o \
+       opts-common.o \
+       opts.o \
+       params.o \
+       passes.o \
+       pointer-set.o \
+       postreload-gcse.o \
+       postreload.o \
+       predict.o \
+       pretty-print.o \
+       print-rtl.o \
+       print-tree.o \
+       profile.o \
+       real.o \
+       recog.o \
+       reg-stack.o \
+       reginfo.o \
+       regmove.o \
+       regrename.o \
+       regstat.o \
+       reload.o \
+       reload1.o \
+       reorg.o \
+       resource.o \
+       rtl-error.o \
+       rtl-factoring.o \
+       rtl.o \
+       rtlanal.o \
+       rtlhooks.o \
+       sbitmap.o \
+       sched-deps.o \
+       sched-ebb.o \
+       sched-rgn.o \
+       sched-vis.o \
+       sdbout.o \
+       see.o \
+       sel-sched-ir.o \
+       sel-sched-dump.o \
+       sel-sched.o \
+       simplify-rtx.o \
+       sparseset.o \
+       sreal.o \
+       stack-ptr-mod.o \
+       statistics.o \
+       stmt.o \
+       stor-layout.o \
+       stringpool.o \
+       targhooks.o \
+       timevar.o \
+       toplev.o \
+       tracer.o \
+       tree-affine.o \
+       tree-call-cdce.o \
+       tree-cfg.o \
+       tree-cfgcleanup.o \
+       tree-chrec.o \
+       tree-complex.o \
+       tree-data-ref.o \
+       tree-dfa.o \
+       tree-dump.o \
+       tree-eh.o \
+       tree-if-conv.o \
+       tree-into-ssa.o \
+       tree-iterator.o \
+       tree-loop-distribution.o \
+       tree-loop-linear.o \
+       tree-nested.o \
+       tree-nrv.o \
+       tree-object-size.o \
+       tree-optimize.o \
+       tree-outof-ssa.o \
+       tree-parloops.o \
+       tree-phinodes.o \
+       tree-predcom.o \
+       tree-pretty-print.o \
+       tree-profile.o \
+       tree-scalar-evolution.o \
+       tree-sra.o \
+       tree-switch-conversion.o \
+       tree-ssa-address.o \
+       tree-ssa-alias.o \
+       tree-ssa-ccp.o \
+       tree-ssa-coalesce.o \
+       tree-ssa-copy.o \
+       tree-ssa-copyrename.o \
+       tree-ssa-dce.o \
+       tree-ssa-dom.o \
+       tree-ssa-dse.o \
+       tree-ssa-forwprop.o \
+       tree-ssa-ifcombine.o \
+       tree-ssa-live.o \
+       tree-ssa-loop-ch.o \
+       tree-ssa-loop-im.o \
+       tree-ssa-loop-ivcanon.o \
+       tree-ssa-loop-ivopts.o \
+       tree-ssa-loop-manip.o \
+       tree-ssa-loop-niter.o \
+       tree-ssa-loop-prefetch.o \
+       tree-ssa-loop-unswitch.o \
+       tree-ssa-loop.o \
+       tree-ssa-math-opts.o \
+       tree-ssa-operands.o \
+       tree-ssa-phiopt.o \
+       tree-ssa-phiprop.o \
+       tree-ssa-pre.o \
+       tree-ssa-propagate.o \
+       tree-ssa-reassoc.o \
+       tree-ssa-sccvn.o \
+       tree-ssa-sink.o \
+       tree-ssa-structalias.o \
+       tree-ssa-ter.o \
+       tree-ssa-threadedge.o \
+       tree-ssa-threadupdate.o \
+       tree-ssa-uncprop.o \
+       tree-ssa.o \
+       tree-ssanames.o \
+       tree-stdarg.o \
+       tree-tailcall.o \
+       tree-vect-analyze.o \
+       tree-vect-generic.o \
+       tree-vect-patterns.o \
+       tree-vect-transform.o \
+       tree-vectorizer.o \
+       tree-vrp.o \
+       tree.o \
+       value-prof.o \
+       var-tracking.o \
+       varasm.o \
+       varray.o \
+       vec.o \
+       version.o \
+       vmsdbgout.o \
+       web.o \
+       xcoffout.o
+
+# Target object files.
+OBJS-md = $(out_object_file)
+
+# Language independent object files which are not used by all languages.
+OBJS-archive = \
+       $(EXTRA_OBJS) \
+       $(host_hook_obj) \
+       cgraph.o \
+       cgraphbuild.o \
+       cgraphunit.o \
+       cppdefault.o \
+       incpath.o \
+       ipa-cp.o \
+       ipa-inline.o \
+       ipa-prop.o \
+       ipa-pure-const.o \
+       ipa-reference.o \
+       ipa-struct-reorg.o \
+       ipa-type-escape.o \
+       ipa-utils.o \
+       ipa.o \
+       matrix-reorg.o \
+       prefix.o \
+       tree-inline.o \
+       tree-nomudflap.o \
+       varpool.o
+
+OBJS-all = $(OBJS-common) $(OBJS-md) $(OBJS-archive)
+
+SRCS=  ${OBJS-all:.o=.c}
+
+.include <bsd.lib.mk>
diff --git a/gnu/usr.bin/cc44/libcpp/Makefile b/gnu/usr.bin/cc44/libcpp/Makefile
new file mode 100644 (file)
index 0000000..bdf1bea
--- /dev/null
@@ -0,0 +1,19 @@
+LIB=           cpp
+INTERNALLIB=   YES
+
+SRCS=  charset.c directives.c directives-only.c errors.c expr.c files.c \
+       identifiers.c init.c lex.c line-map.c macro.c mkdeps.c \
+       pch.c symtab.c traditional.c
+
+SRCS+= localedir.h
+CLEANFILES=    localedir.h
+localedir.h:
+       touch $@
+
+CFLAGS+= -I${.CURDIR} -I${.OBJDIR} -Duchar="unsigned char"
+
+GCC_NO_PATH=   # defined
+
+.include <bsd.lib.mk>
+
+.PATH: ${GCCDIR}/libcpp
diff --git a/gnu/usr.bin/cc44/libcpp/config.h b/gnu/usr.bin/cc44/libcpp/config.h
new file mode 100644 (file)
index 0000000..1a6a309
--- /dev/null
@@ -0,0 +1,290 @@
+/* config.h.  Generated by configure.  */
+/* config.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+   systems. This function is required for `alloca.c' support on those systems.
+   */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define to 1 if using `alloca.c'. */
+/* #undef C_ALLOCA */
+
+/* Define if you want more run-time sanity checks. */
+/* #undef ENABLE_CHECKING */
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+/* #undef ENABLE_NLS */
+
+/* Define to 1 if you have `alloca', as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+   */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define to 1 if you have the `clearerr_unlocked' function. */
+#define HAVE_CLEARERR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `abort', and to 0 if you don't.
+   */
+#define HAVE_DECL_ABORT 1
+
+/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_ASPRINTF 1
+
+/* Define to 1 if you have the declaration of `basename', and to 0 if you
+   don't. */
+#define HAVE_DECL_BASENAME 0
+
+/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_CLEARERR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `errno', and to 0 if you don't.
+   */
+#define HAVE_DECL_ERRNO 1
+
+/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_FEOF_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FERROR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FFLUSH_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fgetc_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FGETC_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FGETS_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fileno_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FILENO_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fprintf_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FPRINTF_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FPUTC_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FPUTS_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FREAD_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FWRITE_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_GETCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETC_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `getopt', and to 0 if you don't.
+   */
+#define HAVE_DECL_GETOPT 1
+
+/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_PUTCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_PUTC_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_VASPRINTF 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `feof_unlocked' function. */
+#define HAVE_FEOF_UNLOCKED 1
+
+/* Define to 1 if you have the `ferror_unlocked' function. */
+#define HAVE_FERROR_UNLOCKED 1
+
+/* Define to 1 if you have the `fflush_unlocked' function. */
+/* #undef HAVE_FFLUSH_UNLOCKED */
+
+/* Define to 1 if you have the `fgetc_unlocked' function. */
+/* #undef HAVE_FGETC_UNLOCKED */
+
+/* Define to 1 if you have the `fgets_unlocked' function. */
+/* #undef HAVE_FGETS_UNLOCKED */
+
+/* Define to 1 if you have the `fileno_unlocked' function. */
+#define HAVE_FILENO_UNLOCKED 1
+
+/* Define to 1 if you have the `fprintf_unlocked' function. */
+/* #undef HAVE_FPRINTF_UNLOCKED */
+
+/* Define to 1 if you have the `fputc_unlocked' function. */
+/* #undef HAVE_FPUTC_UNLOCKED */
+
+/* Define to 1 if you have the `fputs_unlocked' function. */
+/* #undef HAVE_FPUTS_UNLOCKED */
+
+/* Define to 1 if you have the `fread_unlocked' function. */
+/* #undef HAVE_FREAD_UNLOCKED */
+
+/* Define to 1 if you have the `fwrite_unlocked' function. */
+/* #undef HAVE_FWRITE_UNLOCKED */
+
+/* Define to 1 if you have the `getchar_unlocked' function. */
+#define HAVE_GETCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the `getc_unlocked' function. */
+#define HAVE_GETC_UNLOCKED 1
+
+/* Define if you have the iconv() function. */
+#define HAVE_ICONV 1
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#define HAVE_ICONV_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#define HAVE_LANGINFO_CODESET 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if libc includes obstacks. */
+/* #undef HAVE_OBSTACK */
+
+/* Define to 1 if you have the `putchar_unlocked' function. */
+#define HAVE_PUTCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the `putc_unlocked' function. */
+#define HAVE_PUTC_UNLOCKED 1
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#define HAVE_STDDEF_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#define HAVE_SYS_FILE_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define if <sys/types.h> defines \`uchar'. */
+/* #undef HAVE_UCHAR */
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the widest efficient host integer type at least as wide as the
+   target's size_t type. */
+#ifdef CROSS_COMPILE
+#define HOST_WIDE_INT long long
+#else
+#define HOST_WIDE_INT long
+#endif
+
+/* Define as const if the declaration of iconv() needs const. */
+#define ICONV_CONST 
+
+/* Define to the name of this package. */
+#define PACKAGE "cpplib"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "gcc-bugs@gcc.gnu.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "cpplib"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "cpplib  "
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "cpplib"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION " "
+
+/* The size of a `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
+/* The size of a `long', as computed by sizeof. */
+#define SIZEOF_LONG 4
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+       STACK_DIRECTION > 0 => grows toward higher addresses
+       STACK_DIRECTION < 0 => grows toward lower addresses
+       STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if you can safely include both <string.h> and <strings.h>. */
+#define STRING_WITH_STRINGS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* #undef TM_IN_SYS_TIME */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef ssize_t */
diff --git a/gnu/usr.bin/cc44/libdecnumber/Makefile b/gnu/usr.bin/cc44/libdecnumber/Makefile
new file mode 100644 (file)
index 0000000..19a1c32
--- /dev/null
@@ -0,0 +1,20 @@
+.include "../Makefile.inc"
+
+LIB=   decnumber
+INTERNALLIB=   YES
+
+SRCS=  decNumber.c decContext.c decimal32.c decimal64.c decimal128.c
+
+GCC_NO_PATH=   # defined
+
+CFLAGS+=       -I${.OBJDIR}
+
+beforedepend: gstdint.h
+gstdint.h:
+       echo "#include <stdint.h>" > ${.TARGET}
+
+CLEANFILES+=   gstdint.h
+
+.include <bsd.lib.mk>
+
+.PATH: ${GCCDIR}/libdecnumber ${GCCDIR}/libdecnumber/dpd
diff --git a/gnu/usr.bin/cc44/libiberty/Makefile b/gnu/usr.bin/cc44/libiberty/Makefile
new file mode 100644 (file)
index 0000000..b0a1b8d
--- /dev/null
@@ -0,0 +1,35 @@
+LIB=           iberty
+INTERNALLIB=   YES
+
+# verbatim from libiberty/Makefile
+
+REQUIRED_OFILES =                                                      \
+       ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o        \
+       ./alloca.o ./argv.o                                             \
+       ./choose-temp.o ./concat.o ./cp-demint.o                        \
+       ./dyn-string.o                                                  \
+       ./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o        \
+       ./fnmatch.o ./fopen_unlocked.o                                  \
+       ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o                \
+       ./hashtab.o ./hex.o                                             \
+       ./lbasename.o ./lrealpath.o                                     \
+       ./make-relative-prefix.o ./make-temp-file.o                     \
+       ./objalloc.o ./obstack.o                                        \
+       ./partition.o ./pexecute.o ./physmem.o                          \
+       ./pex-common.o ./pex-one.o ./pex-unix.o                         \
+       ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o  \
+        ./strsignal.o                                                  \
+       ./unlink-if-ordinary.o                                          \
+       ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o       \
+        ./xstrerror.o ./xstrndup.o
+
+SRCS=  ${REQUIRED_OFILES:T:.o=.c}
+SRCS+= mempcpy.c stpncpy.c strverscmp.c
+
+GCC_NO_PATH=   # defined
+
+CFLAGS+= -I${.CURDIR}
+
+.include <bsd.lib.mk>
+
+.PATH: ${GCCDIR}/libiberty
diff --git a/gnu/usr.bin/cc44/libiberty/config.h b/gnu/usr.bin/cc44/libiberty/config.h
new file mode 100644 (file)
index 0000000..0565b0c
--- /dev/null
@@ -0,0 +1,457 @@
+/* config.h.  Generated by configure.  */
+/* config.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+   This function is required for alloca.c support on those systems. */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define to 1 if you have the <alloca.h> header file. */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define to 1 if you have the `asprintf' function. */
+#define HAVE_ASPRINTF 1
+
+/* Define to 1 if you have the `atexit' function. */
+#define HAVE_ATEXIT 1
+
+/* Define to 1 if you have the `basename' function. */
+#define HAVE_BASENAME 1
+
+/* Define to 1 if you have the `bcmp' function. */
+#define HAVE_BCMP 1
+
+/* Define to 1 if you have the `bcopy' function. */
+#define HAVE_BCOPY 1
+
+/* Define to 1 if you have the `bsearch' function. */
+#define HAVE_BSEARCH 1
+
+/* Define to 1 if you have the `bzero' function. */
+#define HAVE_BZERO 1
+
+/* Define to 1 if you have the `calloc' function. */
+#define HAVE_CALLOC 1
+
+/* Define to 1 if you have the `canonicalize_file_name' function. */
+/* #undef HAVE_CANONICALIZE_FILE_NAME */
+
+/* Define to 1 if you have the `clock' function. */
+#define HAVE_CLOCK 1
+
+/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_ASPRINTF 1
+
+/* Define to 1 if you have the declaration of `basename', and to 0 if you
+   don't. */
+#define HAVE_DECL_BASENAME 1
+
+/* Define to 1 if you have the declaration of `calloc', and to 0 if you don't.
+   */
+#define HAVE_DECL_CALLOC 1
+
+/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */
+#define HAVE_DECL_FFS 1
+
+/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
+   */
+#define HAVE_DECL_GETENV 1
+
+/* Define to 1 if you have the declaration of `getopt', and to 0 if you don't.
+   */
+#define HAVE_DECL_GETOPT 1
+
+/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
+   */
+#define HAVE_DECL_MALLOC 1
+
+/* Define to 1 if you have the declaration of `realloc', and to 0 if you
+   don't. */
+#define HAVE_DECL_REALLOC 1
+
+/* Define to 1 if you have the declaration of `sbrk', and to 0 if you don't.
+   */
+#define HAVE_DECL_SBRK 1
+
+/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_SNPRINTF 1
+
+/* Define to 1 if you have the declaration of `strverscmp', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRVERSCMP 0
+
+/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_VASPRINTF 1
+
+/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_VSNPRINTF 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `ffs' function. */
+#define HAVE_FFS 1
+
+/* Define to 1 if you have the `fork' function. */
+#define HAVE_FORK 1
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define to 1 if you have the `getsysinfo' function. */
+/* #undef HAVE_GETSYSINFO */
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `index' function. */
+#define HAVE_INDEX 1
+
+/* Define to 1 if you have the `insque' function. */
+#define HAVE_INSQUE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
+/* #undef HAVE_MACHINE_HAL_SYSINFO_H */
+
+/* Define to 1 if you have the <malloc.h> header file. */
+/* #undef HAVE_MALLOC_H */
+
+/* Define to 1 if you have the `memchr' function. */
+#define HAVE_MEMCHR 1
+
+/* Define to 1 if you have the `memcmp' function. */
+#define HAVE_MEMCMP 1
+
+/* Define to 1 if you have the `memcpy' function. */
+#define HAVE_MEMCPY 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mempcpy' function. */
+/* #undef HAVE_MEMPCPY */
+
+/* Define to 1 if you have the `memset' function. */
+#define HAVE_MEMSET 1
+
+/* Define to 1 if you have the `mkstemps' function. */
+#define HAVE_MKSTEMPS 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define to 1 if you have the `on_exit' function. */
+/* #undef HAVE_ON_EXIT */
+
+/* Define to 1 if you have the `psignal' function. */
+#define HAVE_PSIGNAL 1
+
+/* Define to 1 if you have the `pstat_getdynamic' function. */
+/* #undef HAVE_PSTAT_GETDYNAMIC */
+
+/* Define to 1 if you have the `pstat_getstatic' function. */
+/* #undef HAVE_PSTAT_GETSTATIC */
+
+/* Define to 1 if you have the `putenv' function. */
+#define HAVE_PUTENV 1
+
+/* Define to 1 if you have the `random' function. */
+#define HAVE_RANDOM 1
+
+/* Define to 1 if you have the `realpath' function. */
+#define HAVE_REALPATH 1
+
+/* Define to 1 if you have the `rename' function. */
+#define HAVE_RENAME 1
+
+/* Define to 1 if you have the `rindex' function. */
+#define HAVE_RINDEX 1
+
+/* Define to 1 if you have the `sbrk' function. */
+#define HAVE_SBRK 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `sigsetmask' function. */
+#define HAVE_SIGSETMASK 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#define HAVE_SNPRINTF 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio_ext.h> header file. */
+/* #undef HAVE_STDIO_EXT_H */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `stpcpy' function. */
+#define HAVE_STPCPY 1
+
+/* Define to 1 if you have the `stpncpy' function. */
+/* #undef HAVE_STPNCPY */
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have the `strchr' function. */
+#define HAVE_STRCHR 1
+
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have the `strndup' function. */
+#define HAVE_STRNDUP 1
+
+/* Define to 1 if you have the `strrchr' function. */
+#define HAVE_STRRCHR 1
+
+/* Define to 1 if you have the `strsignal' function. */
+#define HAVE_STRSIGNAL 1
+
+/* Define to 1 if you have the `strstr' function. */
+#define HAVE_STRSTR 1
+
+/* Define to 1 if you have the `strtod' function. */
+#define HAVE_STRTOD 1
+
+/* Define to 1 if you have the `strtol' function. */
+#define HAVE_STRTOL 1
+
+/* Define to 1 if you have the `strtoul' function. */
+#define HAVE_STRTOUL 1
+
+/* Define to 1 if you have the `strverscmp' function. */
+/* #undef HAVE_STRVERSCMP */
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the `sysctl' function. */
+#define HAVE_SYSCTL 1
+
+/* Define to 1 if you have the `sysmp' function. */
+/* #undef HAVE_SYSMP */
+
+/* Define if you have the sys_errlist variable. */
+#define HAVE_SYS_ERRLIST 1
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#define HAVE_SYS_FILE_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define if you have the sys_nerr variable. */
+#define HAVE_SYS_NERR 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/pstat.h> header file. */
+/* #undef HAVE_SYS_PSTAT_H */
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define if you have the sys_siglist variable. */
+#define HAVE_SYS_SIGLIST 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/sysctl.h> header file. */
+#define HAVE_SYS_SYSCTL_H 1
+
+/* Define to 1 if you have the <sys/sysinfo.h> header file. */
+/* #undef HAVE_SYS_SYSINFO_H */
+
+/* Define to 1 if you have the <sys/sysmp.h> header file. */
+/* #undef HAVE_SYS_SYSMP_H */
+
+/* Define to 1 if you have the <sys/systemcfg.h> header file. */
+/* #undef HAVE_SYS_SYSTEMCFG_H */
+
+/* Define to 1 if you have the <sys/table.h> header file. */
+/* #undef HAVE_SYS_TABLE_H */
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the `table' function. */
+/* #undef HAVE_TABLE */
+
+/* Define to 1 if you have the `times' function. */
+#define HAVE_TIMES 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the `tmpnam' function. */
+#define HAVE_TMPNAM 1
+
+/* Define if you have the \`uintptr_t' type. */
+#define HAVE_UINTPTR_T 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `vasprintf' function. */
+#define HAVE_VASPRINTF 1
+
+/* Define to 1 if you have the `vfork' function. */
+#define HAVE_VFORK 1
+
+/* Define to 1 if you have the <vfork.h> header file. */
+/* #undef HAVE_VFORK_H */
+
+/* Define to 1 if you have the `vfprintf' function. */
+#define HAVE_VFPRINTF 1
+
+/* Define to 1 if you have the `vprintf' function. */
+#define HAVE_VPRINTF 1
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#define HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `vsprintf' function. */
+#define HAVE_VSPRINTF 1
+
+/* Define to 1 if you have the `wait3' function. */
+#define HAVE_WAIT3 1
+
+/* Define to 1 if you have the `wait4' function. */
+#define HAVE_WAIT4 1
+
+/* Define to 1 if you have the `waitpid' function. */
+#define HAVE_WAITPID 1
+
+/* Define to 1 if `fork' works. */
+#define HAVE_WORKING_FORK 1
+
+/* Define to 1 if `vfork' works. */
+#define HAVE_WORKING_VFORK 1
+
+/* Define to 1 if you have the `_doprnt' function. */
+/* #undef HAVE__DOPRNT */
+
+/* Define if you have the _system_configuration variable. */
+/* #undef HAVE__SYSTEM_CONFIGURATION */
+
+/* Define to 1 if you have the `__fsetlocking' function. */
+/* #undef HAVE___FSETLOCKING */
+
+/* Define if canonicalize_file_name is not declared in system header files. */
+#define NEED_DECLARATION_CANONICALIZE_FILE_NAME 1
+
+/* Define if errno must be declared even when <errno.h> is included. */
+/* #undef NEED_DECLARATION_ERRNO */
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME ""
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING ""
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION ""
+
+/* The size of a `int', as computed by sizeof. */
+#if defined(__i386__)
+#define SIZEOF_INT 4
+#elif defined(__amd64__)
+#define SIZEOF_INT 8
+#else
+#error "Unknown target platform"
+#endif
+
+/* Define if you know the direction of stack growth for your system; otherwise
+   it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows
+   toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses
+   STACK_DIRECTION = 0 => direction of growth unknown */
+#define STACK_DIRECTION -1
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to an unsigned 64-bit type available in the compiler. */
+#define UNSIGNED_64BIT_TYPE uint64_t
+
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+/* #undef WORDS_BIGENDIAN */
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned long' if <sys/types.h> does not define. */
+/* #undef uintptr_t */
+
+/* Define as `fork' if `vfork' does not work. */
+/* #undef vfork */
diff --git a/gnu/usr.bin/cc44/mpfr/Makefile b/gnu/usr.bin/cc44/mpfr/Makefile
new file mode 100644 (file)
index 0000000..a754f35
--- /dev/null
@@ -0,0 +1,62 @@
+CONTRIBDIR=    ${.CURDIR}/../../../../contrib/mpfr
+.PATH: ${CONTRIBDIR}
+
+LIB=   mpfr
+INTERNALLIB=   # yes
+
+CFLAGS+=       -I${CONTRIBDIR}
+CFLAGS+=       -I${.OBJDIR}
+CFLAGS+=       -I${.CURDIR}/../gmp
+CFLAGS+=-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DTIME_WITH_SYS_TIME=1 \
+       -DHAVE_LOCALE_H=1 -DHAVE_WCHAR_H=1 -DHAVE_STDARG=1 \
+       -DHAVE_SYS_TIME_H=1 -DHAVE_STDINT_H=1 -DHAVE_SETLOCALE=1 \
+       -DHAVE_GETTIMEOFDAY=1 -DHAVE_LONG_LONG=1 -DHAVE_INTMAX_T=1 \
+       -DMPFR_HAVE_FESETROUND=1 -DHAVE_DENORMS=1 -DHAVE_ROUND=1 \
+       -DHAVE_TRUNC=1 -DHAVE_FLOOR=1 -DHAVE_CEIL=1 \
+       -DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1 -DHAVE_ATTRIBUTE_MODE=1
+
+# almost verbatim copy from Makefile
+
+SRCS = mpfr.h mpfr-gmp.h mpfr-impl.h \
+       mpfr-longlong.h mpfr-thread.h exceptions.c extract.c \
+       uceil_exp2.c uceil_log2.c ufloor_log2.c add.c add1.c add_ui.c \
+       agm.c clear.c cmp.c cmp_abs.c cmp_si.c cmp_ui.c comparisons.c \
+       div_2exp.c div_2si.c div_2ui.c div.c div_ui.c dump.c eq.c \
+       exp10.c exp2.c exp3.c exp.c frac.c get_d.c get_exp.c get_str.c \
+       init.c inp_str.c isinteger.c isinf.c isnan.c isnum.c \
+       const_log2.c log.c modf.c mul_2exp.c mul_2si.c mul_2ui.c mul.c \
+       mul_ui.c neg.c next.c out_str.c printf.c vasprintf.c \
+       const_pi.c pow.c pow_si.c pow_ui.c print_raw.c \
+       print_rnd_mode.c random2.c random.c reldiff.c round_prec.c \
+       set.c setmax.c setmin.c set_d.c set_dfl_prec.c set_exp.c \
+       set_rnd.c set_f.c set_prc_raw.c set_prec.c set_q.c set_si.c \
+       set_str.c set_str_raw.c set_ui.c set_z.c sqrt.c sqrt_ui.c \
+       sub.c sub1.c sub_ui.c rint.c ui_div.c ui_sub.c urandomb.c \
+       get_z_exp.c swap.c factorial.c cosh.c sinh.c tanh.c \
+       sinh_cosh.c acosh.c asinh.c atanh.c atan.c cmp2.c exp_2.c \
+       asin.c const_euler.c cos.c sin.c tan.c fma.c fms.c hypot.c \
+       log1p.c expm1.c log2.c log10.c ui_pow.c ui_pow_ui.c minmax.c \
+       dim.c signbit.c copysign.c setsign.c gmp_op.c init2.c acos.c \
+       sin_cos.c set_nan.c set_inf.c powerof2.c gamma.c set_ld.c \
+       get_ld.c cbrt.c volatile.c fits_s.h fits_sshort.c fits_sint.c \
+       fits_slong.c fits_u.h fits_ushort.c fits_uint.c fits_ulong.c \
+       fits_uintmax.c fits_intmax.c get_si.c get_ui.c zeta.c cmp_d.c \
+       erf.c inits.c inits2.c clears.c sgn.c check.c sub1sp.c \
+       version.c mpn_exp.c mpfr-gmp.c mp_clz_tab.c sum.c add1sp.c \
+       free_cache.c si_op.c cmp_ld.c set_ui_2exp.c set_si_2exp.c \
+       set_uj.c set_sj.c get_sj.c get_uj.c get_z.c iszero.c cache.c \
+       sqr.c int_ceil_log2.c isqrt.c strtofr.c pow_z.c logging.c \
+       mulders.c get_f.c round_p.c erfc.c atan2.c subnormal.c \
+       const_catalan.c root.c gen_inverse.h sec.c csc.c cot.c eint.c \
+       sech.c csch.c coth.c round_near_x.c constant.c \
+       abort_prec_max.c stack_interface.c lngamma.c zeta_ui.c \
+       set_d64.c get_d64.c jn.c yn.c rem1.c get_patches.c add_d.c \
+       sub_d.c d_sub.c mul_d.c div_d.c d_div.c li2.c rec_sqrt.c
+
+SRCS+= mparam.h
+
+mparam.h: mparam_h.in
+       cp ${.ALLSRC} ${.TARGET}
+CLEANFILES+=   mparam.h
+
+.include <bsd.lib.mk>
diff --git a/share/mk/bsd.cpu.gcc44.mk b/share/mk/bsd.cpu.gcc44.mk
new file mode 100644 (file)
index 0000000..416f563
--- /dev/null
@@ -0,0 +1,117 @@
+# Set default CPU compile flags and baseline CPUTYPE for each arch.  The
+# compile flags must support the minimum CPU type for each architecture but
+# may tune support for more advanced processors.
+
+.if !defined(CPUTYPE) || empty(CPUTYPE)
+. if ${MACHINE_ARCH} == "i386"
+CPUTYPE = i686
+. elif ${MACHINE_ARCH} == "amd64"
+CPUTYPE = athlon64
+. endif
+.endif
+
+# Handle aliases (not documented in make.conf to avoid user confusion
+# between e.g. i586 and pentium)
+
+.if ${CPUTYPE} == "core"
+CPUTYPE = nocona
+.elif ${CPUTYPE} == "p4"
+CPUTYPE = pentium4
+.elif ${CPUTYPE} == "p4m"
+CPUTYPE = pentium4m
+.elif ${CPUTYPE} == "p3"
+CPUTYPE = pentium3
+.elif ${CPUTYPE} == "p3m"
+CPUTYPE = pentium3m
+.elif ${CPUTYPE} == "p-m"
+CPUTYPE = pentium-m
+.elif ${CPUTYPE} == "p2"
+CPUTYPE = pentium2
+.elif ${CPUTYPE} == "i586/mmx"
+CPUTYPE = pentium-mmx
+.elif ${CPUTYPE} == "i586"
+CPUTYPE = pentium
+.elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "k8"
+CPUTYPE = athlon64
+.elif ${CPUTYPE} == "k7"
+CPUTYPE = athlon
+.endif
+
+###############################################################################
+# Logic to set up correct gcc optimization flag.  This must be included
+# after /etc/make.conf so it can react to the local value of CPUTYPE
+# defined therein.  Consult:
+#      http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
+#      http://gcc.gnu.org/onlinedocs/gcc/IA-64-Options.html
+#      http://gcc.gnu.org/onlinedocs/gcc/RS-6000-and-PowerPC-Options.html
+#      http://gcc.gnu.org/onlinedocs/gcc/SPARC-Options.html
+#      http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86-64-Options.html
+
+.if ${MACHINE_ARCH} == "i386"
+. if ${CPUTYPE} == "crusoe"
+_CPUCFLAGS = -march=i686 -falign-functions=0 -falign-jumps=0 -falign-loops=0
+. elif ${CPUTYPE} == "k5"
+_CPUCFLAGS = -march=pentium
+. else
+_CPUCFLAGS = -march=${CPUTYPE}
+. endif # GCC on 'i386'
+.elif ${MACHINE_ARCH} == "amd64"
+_CPUCFLAGS = -march=${CPUTYPE}
+.endif
+
+# Set up the list of CPU features based on the CPU type.  This is an
+# unordered list to make it easy for client makefiles to test for the
+# presence of a CPU feature.
+
+.if ${MACHINE_ARCH} == "i386"
+. if ${CPUTYPE} == "athlon64-sse"
+MACHINE_CPU = athlon-xp athlon k7 3dnow sse3 sse2 sse mmx k6 k5 i586 i486 i386
+. elif ${CPUTYPE} == "athlon64"
+MACHINE_CPU = athlon-xp athlon k7 3dnow sse2 sse mmx k6 k5 i586 i486 i386
+. elif ${CPUTYPE} == "athlon-mp" || ${CPUTYPE} == "athlon-xp" || ${CPUTYPE} == "athlon-4"
+MACHINE_CPU = athlon-xp athlon k7 3dnow sse mmx k6 k5 i586 i486 i386
+. elif ${CPUTYPE} == "athlon" || ${CPUTYPE} == "athlon-tbird"
+MACHINE_CPU = athlon k7 3dnow mmx k6 k5 i586 i486 i386
+. elif ${CPUTYPE} == "k6-3" || ${CPUTYPE} == "k6-2"
+MACHINE_CPU = 3dnow mmx k6 k5 i586 i486 i386
+. elif ${CPUTYPE} == "k6"
+MACHINE_CPU = mmx k6 k5 i586 i486 i386
+. elif ${CPUTYPE} == "k5"
+MACHINE_CPU = k5 i586 i486 i386
+. elif ${CPUTYPE} == "c3"
+MACHINE_CPU = 3dnow mmx i586 i486 i386
+. elif ${CPUTYPE} == "c3-2"
+MACHINE_CPU = sse mmx i586 i486 i386
+. elif ${CPUTYPE} == "core2"
+MACHINE_CPU = ssse3 sse3 sse2 sse i686 mmx i586 i486 i386
+. elif ${CPUTYPE} == "prescott" || ${CPUTYPE} == "nocona"
+MACHINE_CPU = sse3 sse2 sse i686 mmx i586 i486 i386
+. elif ${CPUTYPE} == "pentium4" || ${CPUTYPE} == "pentium4m" || ${CPUTYPE} == "pentium-m"
+MACHINE_CPU = sse2 sse i686 mmx i586 i486 i386
+. elif ${CPUTYPE} == "pentium3" || ${CPUTYPE} == "pentium3m"
+MACHINE_CPU = sse i686 mmx i586 i486 i386
+. elif ${CPUTYPE} == "pentium2"
+MACHINE_CPU = i686 mmx i586 i486 i386
+. elif ${CPUTYPE} == "pentiumpro"
+MACHINE_CPU = i686 i586 i486 i386
+. elif ${CPUTYPE} == "pentium-mmx"
+MACHINE_CPU = mmx i586 i486 i386
+. elif ${CPUTYPE} == "pentium"
+MACHINE_CPU = i586 i486 i386
+. elif ${CPUTYPE} == "i486"
+MACHINE_CPU = i486 i386
+. elif ${CPUTYPE} == "i386"
+MACHINE_CPU = i386
+. endif
+.elif ${MACHINE_ARCH} == "amd64"
+. if ${CPUTYPE} == "athlon64-sse3"
+MACHINE_CPU = k8 3dnow sse3
+. elif ${CPUTYPE} == "athlon64"
+MACHINE_CPU = k8 3dnow
+. elif ${CPUTYPE} == "nocona"
+MACHINE_CPU = sse3
+. elif ${CPUTYPE} == "core2"
+MACHINE_CPU = ssse3 sse3
+. endif
+MACHINE_CPU += amd64 sse2 sse mmx
+.endif