Toolchain upgrade and portability improvements.

upgrade to NetBSD CVS release from 2012/10/17 12:00:00 UTC

Makefiles updates to imporve portability

Made sure to be consistent in the usage of braces/parenthesis at
least on a per file basis. For variables, it is recommended to
continue to use braces.
This commit is contained in:
2012-10-26 15:22:39 +02:00
parent 9152e1c5a7
commit d19d7d58aa
369 changed files with 56599 additions and 27810 deletions

View File

@@ -1,10 +1,10 @@
# $NetBSD: Makefile,v 1.50 2012/01/10 12:27:54 skrll Exp $
# $NetBSD: Makefile,v 1.52 2012/09/18 07:05:15 skrll Exp $
.include <bsd.own.mk>
HAVE_GCC= 45 # On Minix
.ifdef __MINIX
HAVE_GCC= 45
GCC_LANGUAGES=c
.else
GCC_LANGUAGES=c c++ objc
@@ -12,7 +12,6 @@ GCC_LANGUAGES=c c++ objc
MODULE= gcc4
MKNATIVE_CONFIG_TARGET_LIBS= \
configure-target-libiberty \
configure-target-libstdc++-v3 \
configure-target-libobjc
@@ -41,17 +40,16 @@ SOFTFLOAT_ARGS= -with-float=soft
# LSC FIXME We are not using the correct target ATM, so overrides for now...
COMMON_CONFIGURE_ARGS= --target=${MACHINE_GNU_PLATFORM} \
--target=${MACHINE_ARCH}-elf-minix \
--disable-libssp \
--enable-long-long \
--enable-threads \
--with-bugurl=http://www.NetBSD.org/Misc/send-pr.html \
--with-pkgversion="NetBSD nb2 20111202" \
--with-system-zlib \
${VAX_CONFIGURE_ARGS} \
--disable-threads \
--disable-visibility \
--disable-libunwind \
--enable-long-long \
--enable-threads \
--with-bugurl=http://www.NetBSD.org/Misc/send-pr.html \
--with-pkgversion="NetBSD nb1 20120916" \
--with-system-zlib \
${VAX_CONFIGURE_ARGS} \
--enable-__cxa_atexit
.if defined(GCC_CONFIG_ARCH.${MACHINE_ARCH})
COMMON_CONFIGURE_ARGS+= --with-arch=${GCC_CONFIG_ARCH.${MACHINE_ARCH}}

View File

@@ -1,6 +1,4 @@
$NetBSD: README.mknative,v 1.9 2011/09/21 02:15:18 mrg Exp $
XXX THIS FILE DOES NOT DESCRIBE GCC 4.5 METHODS PROPERLY XXX
$NetBSD: README.mknative,v 1.13 2012/09/27 11:29:49 skrll Exp $
This file describes how to bootstrap the native toolchain on a new NetBSD
platform (and how to update the new toolchain files, if needed). These
@@ -27,35 +25,50 @@ work.
3. In src/tools/gcc, do "nbmake-MACHINE bootstrap-libgcc".
This will create just enough glue in src/gnu/lib/libgcc4/arch to make it
possible to build, based on the toolchain built in ${.OBJDIR}/build.
This will create just enough glue in src/external/gpl3/gcc/lib/libgcc/arch
to make it possible to build, based on the toolchain built in
${.OBJDIR}/build.
Because the files generated in this step contain things like
-DCROSS_COMPILE, they are not suitable for committing. Step 8 below
will regenerate the "proper" libgcc config files.
4. At top level, do
"nbmake-MACHINE do-distrib-dirs obj includes MKGCC=no MKBINUTILS=no".
"nbmake-MACHINE obj do-distrib-dirs MKGCC=no MKBINUTILS=no", and
"nbmake-MACHINE includes HAVE_GCC= MKGCC=no MKBINUTILS=no".
5. In src/gnu/lib/libgcc4, do "nbmake-MACHINE obj includes".
5. In src/lib/csu, do
"nbmake-MACHINE dependall". and "nbmake-MACHINE install".
6. If the platform sets USE_COMPILERCRTSTUFF=yes, then in src/gnu/lib/crtstuff4
do "nbmake-MACHINE dependall install"
6. If the platform sets USE_COMPILERCRTSTUFF=yes, then in
src/external/gpl3/gcc/lib/crtstuff/ do
"nbmake-MACHINE obj dependall install"
7. In each of src/lib/csu, src/gnu/lib/libgcc4, and src/lib,
do "nbmake-MACHINE dependall install".
7. In src/external/gpl3/gcc/lib/libgcc, do
"nbmake-MACHINE obj includes dependall install".
8. In each of src/external/lgpl3/gmp/lib/libgmp,
src/external/lgpl3/mpfr/lib/libmpfr, src/external/lgpl2/mpc/lib/libmpc
do "nbmake-MACHINE obj includes LIBISPRIVATE=no", and
"nbmake-MACHINE dependall install".
It is important to have LIBISPRIVATE=no while doing includes as this
installs a header file that is not part of standard build.
9. In src/lib, do
"nbmake-MACHINE dependall install MKGCC=no".
Optionally, all of the following may be set in the environment to reduce
the amount of code needed to build at this step. Basically, it must be
possible for static binaries to build and base system libs to exist so
that "configure" can do its job for the target--these MK* options omit
the rest for this stage of the build.
the rest for this stage of the build.
MKCRYPTO=no
MKLINT=no
MKPROFILE=no
MKSHARE=no
8. In src/tools/gcc, do "nbmake-MACHINE native-gcc".
10. In src/tools/gcc, do "nbmake-MACHINE native-gcc".
This will do a full configury in ${.OBJDIR}/.native that is a "Canadian"
cross toolchain (--build reflects the host platform, but --host and
@@ -63,7 +76,7 @@ work.
native-to-NetBSD compiler on a cross host, and mknative pulls glue data
from this.
9. Try out a full build using "nbmake-MACHINE"; the result should include
11. Try out a full build using "nbmake-MACHINE"; the result should include
a native compiler.
10. If all is well, commit the glue files added to src/gnu/{lib,usr.bin}/*.
12. If all is well, commit the glue files added to src/gnu/{lib,usr.bin}/*.

View File

@@ -1,215 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/dragonfly-spec.h,v 1.5 2008/07/24 21:45:10 corecode Exp $ */
/* 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* 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 \
{ \
if (DFBSD_MAJOR == 3) \
builtin_define ("__DragonFly__=3"); \
else if (DFBSD_MAJOR == 2) \
builtin_define ("__DragonFly__=2"); \
else if (DFBSD_MAJOR == 1) \
builtin_define ("__DragonFly__=1"); \
else \
builtin_define ("__DragonFly__"); \
builtin_define ("__DragonFly_cc_version=100001"); \
builtin_define_std ("unix"); \
builtin_define ("__KPRINTF_ATTRIBUTE__"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=bsd"); \
builtin_assert ("system=DragonFly"); \
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)
/* Provide a CPP_SPEC appropriate for DragonFly. We just deal with the GCC
option `-posix', and PIC issues. */
#define DFBSD_CPP_SPEC " \
%(cpp_cpu) \
%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} \
%{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 as configured and as
required by the user-land thread model. Select the appropriate libc,
depending on whether we're doing profiling or need threads support.
Make it a hard error if -pthread is provided on the command line and gcc
was configured with --disable-threads (this will help avoid bug
reports from users complaining about threading when they
misconfigured the gcc bootstrap but are later consulting DragonFly
manual pages that refer to the mythical -pthread option). */
/* Provide a LIB_SPEC appropriate for DragonFly. Just select the appropriate
libc, depending on whether we're doing profiling or need threads support.
(simular to the default, except no -lg, and no -p). */
#ifdef DFBSD_NO_THREADS
#define DFBSD_LIB_SPEC " \
%{pthread: %eThe -pthread option is only supported on DragonFly when gcc \
is built with the --enable-threads configure-time option.} \
%{!nostdlib{!nostartfiles{!nolibc: -lc}}} \
}"
#else
#define DFBSD_LIB_SPEC " \
%{pthread:-lpthread} \
%{!nostdlib: %{!nostartfiles: %{!nolibc: -lc}}} \
"
#endif
#define DFBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.2"
#if 0
#define LINK_LIBGCC_SPEC ""
#define LIBGCC_SPEC "%{shared: -lgcc_pic} %{!shared: -lgcc}"
#define PRE_LIB_SPEC " \
%{pg: -L"PREFIX2"/lib/gcc41/profiling \
%{!static: -rpath /usr/lib/gcc41/profiling \
-rpath-link "PREFIX2"/lib/gcc41/profiling}} \
%{g: -L"PREFIX2"/lib/gcc41/debug \
%{!static: -rpath /usr/lib/gcc41/debug \
-rpath-link "PREFIX2"/lib/gcc41/debug}} \
-L"PREFIX2"/lib/gcc41 \
%{!static: -rpath /usr/lib/gcc41 -rpath-link "PREFIX2"/lib/gcc41} \
%{pg: -L"PREFIX2"/lib/profiling \
%{!static: -rpath /usr/lib/profiling \
-rpath-link "PREFIX2"/lib/profiling}} \
%{g: -L"PREFIX2"/lib/debug \
%{!static: -rpath /usr/lib/debug -rpath-link "PREFIX2"/lib/debug}} \
%{!static: -rpath /usr/lib -rpath-link "PREFIX2"/lib} \
"
#define DFBSD_LINK_COMMAND_SPEC "\
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
%(linker) %l " LINK_PIE_SPEC "%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
%{static:} %{L*} %(link_libgcc) %o \
%{fprofile-arcs|fprofile-generate: -lgcov}\
%{!nostdlib:%{!nodefaultlibs:%(pre_lib)}}\
%{!nostdlib:%{!nodefaultlibs:%(link_gcc_c_sequence)}}\
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}"
#ifndef PREFIX2
#define PREFIX2 "/usr"
#endif
#ifndef STANDARD_STARTFILE_PREFIX_1
#define STANDARD_STARTFILE_PREFIX_1 PREFIX2"/lib/gcc41/"
#endif
#ifndef STANDARD_EXEC_PREFIX
#define STANDARD_EXEC_PREFIX PREFIX2"/libexec/gcc41/"
#endif
#ifndef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX PREFIX2"/lib/"
#endif
#ifndef TOOLDIR_BASE_PREFIX
#define TOOLDIR_BASE_PREFIX PREFIX2"/libexec/gcc41"
#endif
#ifndef STANDARD_BINDIR_PREFIX
#define STANDARD_BINDIR_PREFIX PREFIX2"/libexec/gcc41"
#endif
#ifndef STANDARD_LIBEXEC_PREFIX
#define STANDARD_LIBEXEC_PREFIX PREFIX2"/libexec/gcc41"
#endif
#ifndef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR PREFIX2"/include/c++"
#endif
#ifndef GPLUSPLUS_TOOL_INCLUDE_DIR
#define GPLUSPLUS_TOOL_INCLUDE_DIR PREFIX2"/include/c++/4.1"
#endif
#ifndef GPLUSPLUS_BACKWARD_INCLUDE_DIR
#define GPLUSPLUS_BACKWARD_INCLUDE_DIR PREFIX2"/include/c++/4.1/backward"
#endif
#ifndef GCC_LOCAL_INCLUDE_DIR
#define GCC_LOCAL_INCLUDE_DIR PREFIX2"/libdata/gcc41"
#endif
#ifndef GCC_INCLUDE_DIR
#define GCC_INCLUDE_DIR PREFIX2"/include"
#endif
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 }, \
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0 }, \
{ GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
{ GCC_LOCAL_INCLUDE_DIR, "GCC", 0, 0 }, \
{ NULL, NULL, 0, 0 } \
}
#endif

View File

@@ -1,97 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/dragonfly.h,v 1.2 2008/05/19 10:46:39 corecode Exp $ */
/* 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* 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
#if 0
#undef LINK_COMMAND_SPEC
#define LINK_COMMAND_SPEC DFBSD_LINK_COMMAND_SPEC
#endif
/************************[ 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"
#define MATH_LIBRARY_PROFILE "-lm_p"
/* 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
/* Define this so we can compile MS code for use with WINE. */
#define HANDLE_PRAGMA_PACK_PUSH_POP
/* 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

View File

@@ -1,39 +0,0 @@
/* This header makes it possible to redefine system calls to the
* file system. This way, minix servers can re-route the data
* that libgcov tries to send to the file system. This is
* necessary, because the servers can't access the file system
* directly. Instead, they will copy the data to a helping user
* space process, which will call the file system for them.
* For more information, see the <minix/gcov.h> header file.
*/
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
/* These function pointers initially point to the standard system library
* functions (fopen, etc). All calls to these system library functions are
* then redefined to calls to these function pointers. Because the pointers
* still point to the original functions, all functionality is unchanged.
* Therefore, libgcov won't act differently when linked to applications.
* But, when these pointers are redefined by code within the minix servers,
* the file system calls get replaced by other functionality.
*/
#define fopen(...) _gcov_fopen(__VA_ARGS__)
#define fread(...) _gcov_fread(__VA_ARGS__)
#define fwrite(...) _gcov_fwrite(__VA_ARGS__)
#define fclose(...) _gcov_fclose(__VA_ARGS__)
#define fseek(...) _gcov_fseek(__VA_ARGS__)
#define getenv(...) _gcov_getenv(__VA_ARGS__)
/* wrapper to make it possible to disable gcov_exit on a process exit (for mfs) */
int do_gcov_exit = 1;
void gcov_exit_wrapper(void){
if(do_gcov_exit)
gcov_exit();
}

View File

@@ -1,5 +0,0 @@
PROGRAM hello
print*, 'Hello, World!'
END

View File

@@ -1,6 +0,0 @@
#import <stdio.h>
int main( int argc, const char *argv[] ) {
printf( "hello world\n" );
return 0;
}

View File

@@ -1,148 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/i386/dragonfly.h,v 1.1 2006/09/27 12:10:34 corecode Exp $ */
/* Definitions for Intel 386 running DragonFly with ELF format
Copyright (C) 1996, 2000, 2002 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.
Changes:
- remove support for changing the dynamic linker
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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#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 }
/* 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'. */
#undef STARTFILE_SPEC
#define 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'. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
"%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
/* 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}"
/* 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)

View File

@@ -1,54 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/i386/dragonfly64.h,v 1.1 2007/01/15 17:53:16 corecode Exp $ */
/* Definitions for AMD x86-64 running DragonFly with ELF format
Copyright (C) 2002 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* $FreeBSD: src/contrib/gcc/config/i386/freebsd64.h,v 1.9 2004/07/28 04:44:23 kan Exp $ */
#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. */
#define SUBTARGET_EXTRA_SPECS \
{ "dfbsd_dynamic_linker", DFBSD_DYNAMIC_LINKER }
#undef MCOUNT_NAME
#define MCOUNT_NAME ".mcount"
/* 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 "\
%{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}"

View File

@@ -1,148 +0,0 @@
/* Definitions for Intel 386 running MINIX with ELF format
Copyright (C) 1996, 2000, 2002, 2004 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>
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 2, 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 COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
#undef MINIX_TARGET_CPU_CPP_BUILTINS
#define MINIX_TARGET_CPU_CPP_BUILTINS() \
do \
{ \
builtin_define_with_int_value ("_EM_WSIZE", 4); \
builtin_define_with_int_value ("_EM_PSIZE", 4); \
builtin_define_with_int_value ("_EM_SSIZE", 2); \
builtin_define_with_int_value ("_EM_LSIZE", 4); \
builtin_define_with_int_value ("_EM_FSIZE", 4); \
builtin_define_with_int_value ("_EM_DSIZE", 8); \
} \
while (0)
#define TARGET_VERSION fprintf (stderr, " (i386 MINIX/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 \
{ "minix_dynamic_linker", MINIX_DYNAMIC_LINKER }
/* Provide a STARTFILE_SPEC appropriate for MINIX. 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'. */
#undef STARTFILE_SPEC
#define 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 MINIX. 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'. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
"%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
/* Provide a LINK_SPEC appropriate for MINIX. 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 %(minix_dynamic_linker) }} \
%{static:-Bstatic}} \
%{symbolic:-Bsymbolic}"
/* 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

View File

@@ -1,101 +0,0 @@
/* Base configuration file for all FreeBSD targets.
Copyright (C) 1999, 2000, 2001, 2004, 2005 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
/* Common MINIX configuration.
All MINIX architectures should include this file, which will specify
their commonalities.
*/
/* In case we need to know. */
#define USING_CONFIG_MINIX_SPEC 1
/* This defines which switch letters take arguments. On FreeBSD, 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 MINIX_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 MINIX_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 MINIX_TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__minix"); \
builtin_define ("__i386"); \
MINIX_TARGET_CPU_CPP_BUILTINS(); \
} \
while (0)
/* Define the default MINIX-specific per-CPU hook code. */
#define MINIX_TARGET_CPU_CPP_BUILTINS() do {} while (0)
/* Provide a CPP_SPEC appropriate for MINIX. We just deal with the GCC
option `-posix', and PIC issues. */
#define MINIX_CPP_SPEC " \
%(cpp_cpu) \
%(cpp_arch) \
%{posix:-D_POSIX_SOURCE}"
/* Provide a STARTFILE_SPEC appropriate for MINIX. 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 MINIX_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 MINIX. 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 MINIX_ENDFILE_SPEC \
"%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
/* Provide a LIB_SPEC appropriate for MINIX. Just select the appropriate
libc, depending on whether we're doing profiling or need threads support.
(similar to the default, except no -lg, and no -p). */
#define MINIX_LIB_SPEC " \
%{pthread: %eThe -pthread option is only supported on FreeBSD when gcc \
is built with the --enable-threads configure-time option.} \
%{!shared: \
%{!pg: -lc} \
%{pg: -lc_p} \
}"
#define MINIX_DYNAMIC_LINKER "/libexec/ld-elf.so.1"

View File

@@ -1,71 +0,0 @@
/* Base configuration file for all FreeBSD 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
/* Common MINIX configuration.
All FreeBSD architectures should include this file, which will specify
their commonalities.
*/
/* In case we need to know. */
#define USING_CONFIG_MINIX 1
/* This defines which switch letters take arguments. On MINIX, 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) (MINIX_SWITCH_TAKES_ARG(CHAR))
#undef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) (MINIX_WORD_SWITCH_TAKES_ARG(STR))
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() MINIX_TARGET_OS_CPP_BUILTINS()
#undef CPP_SPEC
#define CPP_SPEC MINIX_CPP_SPEC
#undef STARTFILE_SPEC
#define STARTFILE_SPEC MINIX_STARTFILE_SPEC
#undef ENDFILE_SPEC
#define ENDFILE_SPEC MINIX_ENDFILE_SPEC
#undef LIB_SPEC
#define LIB_SPEC MINIX_LIB_SPEC
/************************[ Target stuff ]***********************************/
/* All MINIX 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
/* 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

View File

@@ -1,5 +0,0 @@
# Compile crtbeginS.o and crtendS.o with pic.
CRTSTUFF_T_CFLAGS_S = -fPIC
# Compile libgcc.a with pic.
TARGET_LIBGCC2_CFLAGS += -fPIC

View File

@@ -1,64 +0,0 @@
#if 0 /* $NetBSD$ */
#
# This is Solaris x86 specific GCC run-time environment patch, which
# makes it possible to reliably deploy .init snippets. Trouble is that
# Solaris linker erroneously pads .init segment with zeros [instead of
# nops], which is bound to SEGV early upon program start-up. This bug
# was recognized by GCC team [it is mentioned in source code], but
# workaround apparently and obviously erroneously slipped away in some
# newer GCC release. This patch compensates for this mishap by dropping
# modified values-X*.o into GCC installation tree. Object modules in
# question are normally provided by Sun and linked prior crtbegin.o.
# Modified versions are additionally crafted with custom .init segment,
# which does some magic:-)
# <appro@fy.chalmers.se>
set -e
gcc=gcc
if [[ "x$1" = x*gcc ]]; then
gcc=$1; shift
fi
gcc_dir=`${gcc} "$@" -print-libgcc-file-name`
gcc_dir=${gcc_dir%/*} #*/
set -x
${gcc} "$@" -c -o $gcc_dir/values-Xa.o -DXa $0
${gcc} "$@" -c -o $gcc_dir/values-Xc.o -DXc $0
${gcc} "$@" -c -o $gcc_dir/values-Xt.o -DXt $0
exit
#endif
#include <math.h>
#if defined(Xa)
const enum version _lib_version = ansi_1;
#elif defined(Xc)
const enum version _lib_version = strict_ansi;
#elif defined(Xt)
const enum version _lib_version = c_issue_4;
#else
#error "compile by issuing 'ksh -f values.c [gcc] [-m64]'"
#endif
#if defined(__x86_64__)
asm("\n"
".section .init\n"
".align 1\n"
" leaq 1f(%rip),%rax\n"
"1: cmpl $0,2f-1b(%rax)\n"
" jne 2f\n"
" jmp 2f+5\n"
" .skip 9\n" /* pad up to 0x1b bytes */
"2:\n"
);
#else
asm("\n"
".section .init\n"
".align 1\n"
" call 1f\n"
"1: popl %eax\n"
" cmpl $0,2f-1b(%eax)\n"
" jne 2f\n"
" jmp 2f+5\n"
" .skip 10\n" /* pad up to 0x1b bytes */
"2:\n"
);
#endif

View File

@@ -1,8 +1,8 @@
#!/bin/sh
# $NetBSD: mknative-gcc,v 1.67 2012/08/11 16:05:01 skrll Exp $
# $NetBSD: mknative-gcc,v 1.68 2012/09/25 06:55:10 skrll Exp $
#
# Shell script for generating all the constants needed for a native
# platform build of src/gnu/dist/gcc.
# platform build of gcc.
#
# initialise
@@ -548,6 +548,14 @@ get_libstdcxx_v3 () {
##### gnu/usr.bin/gcc3 #####
get_gcc_bootstrap () {
_subdir="$1"
mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$MACHINE_ARCH
for f in auto-host tm config gthr-default; do
write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
done
}
get_gcc () {
_subdir="$1"
mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$MACHINE_ARCH
@@ -697,6 +705,7 @@ libgcc45)
get_libgcc gcc
get_crtstuff crtstuff
get_libgcov gcc
get_gcc_bootstrap gcc
exit 0
;;

View File

@@ -1,62 +0,0 @@
$NetBSD: patch-aa,v 1.1.1.1 2009/09/18 11:24:50 dmcmahill Exp $
--- configure.orig Sat Apr 25 04:10:29 2009
+++ configure
@@ -4532,7 +4532,7 @@ if test "${with_mpfr_lib+set}" = set; then
fi;
if test "x$with_mpfr" != x; then
- gmplibs="-L$with_mpfr/lib $gmplibs"
+ gmplibs="-L$with_mpfr/lib -Wl,-R${PREFIX}/lib $gmplibs"
gmpinc="-I$with_mpfr/include"
fi
if test "x$with_mpfr_include" != x; then
--- gcc/config.gcc.orig 2009-04-17 13:58:41 +0200
+++ gcc/config.gcc
@@ -488,6 +488,33 @@ case ${target} in
default_use_cxa_atexit=yes;;
esac
;;
+*-*-dragonfly*)
+ gas=yes
+ gnu_ld=yes
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+ case ${target} in
+ *-*-dragonfly1 | *-*-dragonfly[1].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=1" ;;
+ *-*-dragonfly2 | *-*-dragonfly[2].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=2" ;;
+ *-*-dragonfly3 | *-*-dragonfly[3].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=3" ;;
+ *-*-dragonfly4 | *-*-dragonfly[4].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=4" ;;
+ *)
+ echo 'Please update *-*-dragonfly* in gcc/config.gcc'
+ exit 1
+ ;;
+ esac
+ tmake_file="t-slibgcc-elf-ver t-dragonfly"
+ case ${enable_threads} in
+ "" | yes | posix)
+ thread_file='posix'
+ tmake_file="${tmake_file} t-dragonfly-thread"
+ ;;
+ esac
+ dfbsd_tm_file="${dfbsd_tm_file} dragonfly-spec.h dragonfly.h"
+ ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
gas=yes
@@ -1053,6 +1080,12 @@ x86_64-*-freebsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
tmake_file="${tmake_file} i386/t-crtstuff"
;;
+i[34567]86-*-dragonfly*)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${dfbsd_tm_file} i386/dragonfly.h"
+ ;;
+x86_64-*-dragonfly*)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${dfbsd_tm_file} i386/x86-64.h i386/dragonfly.h i386/dragonfly64.h"
+ ;;
i[34567]86-*-netbsdelf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
;;

View File

@@ -1,10 +0,0 @@
--- gcc/Makefile.in.orig Fri Jun 3 14:13:51 2011
+++ gcc/Makefile.in Fri Jun 3 14:16:25 2011
@@ -310,7 +310,6 @@
$(srcdir)/ginclude/iso646.h \
$(srcdir)/ginclude/stdarg.h \
$(srcdir)/ginclude/stdbool.h \
- $(srcdir)/ginclude/stddef.h \
$(srcdir)/ginclude/varargs.h \
$(srcdir)/ginclude/stdfix.h \
$(EXTRA_HEADERS)

View File

@@ -1,82 +0,0 @@
--- gcc/config.gcc.orig Fri Jun 3 14:42:47 2011
+++ gcc/config.gcc Fri Jun 3 14:42:58 2011
@@ -251,7 +251,7 @@
| *-*-sysv* \
| vax-*-vms* \
)
- echo "*** Configuration ${target} not supported" 1>&2
+ echo "*** Configuration ${target} recognized but not supported" 1>&2
exit 1
;;
esac
@@ -515,6 +515,33 @@
esac
dfbsd_tm_file="${dfbsd_tm_file} dragonfly-spec.h dragonfly.h"
;;
+*-*-dragonfly*)
+ gas=yes
+ gnu_ld=yes
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+ case ${target} in
+ *-*-dragonfly1 | *-*-dragonfly[1].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=1" ;;
+ *-*-dragonfly2 | *-*-dragonfly[2].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=2" ;;
+ *-*-dragonfly3 | *-*-dragonfly[3].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=3" ;;
+ *-*-dragonfly4 | *-*-dragonfly[4].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=4" ;;
+ *)
+ echo 'Please update *-*-dragonfly* in gcc/config.gcc'
+ exit 1
+ ;;
+ esac
+ tmake_file="t-slibgcc-elf-ver t-dragonfly"
+ case ${enable_threads} in
+ "" | yes | posix)
+ thread_file='posix'
+ tmake_file="${tmake_file} t-dragonfly-thread"
+ ;;
+ esac
+ dfbsd_tm_file="${dfbsd_tm_file} dragonfly-spec.h dragonfly.h"
+ ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
gas=yes
@@ -1070,6 +1097,14 @@
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/x86-64.h"
tmake_file="${tmake_file} i386/t-i386elf t-svr4"
;;
+i[34567]86-*-minix)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h minix-spec.h minix.h i386/minix.h"
+# tmake_file="t-slibgcc-elf-ver t-minix i386/t-minix"
+# use_fixproto=yes
+ gas=yes
+ gnu_ld=yes
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+ ;;
i[34567]86-*-aout*)
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h i386/i386-aout.h"
;;
@@ -1086,6 +1121,12 @@
x86_64-*-dragonfly*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${dfbsd_tm_file} i386/x86-64.h i386/dragonfly.h i386/dragonfly64.h"
;;
+i[34567]86-*-dragonfly*)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${dfbsd_tm_file} i386/dragonfly.h"
+ ;;
+x86_64-*-dragonfly*)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${dfbsd_tm_file} i386/x86-64.h i386/dragonfly.h i386/dragonfly64.h"
+ ;;
i[34567]86-*-netbsdelf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
;;
@@ -2466,7 +2507,7 @@
cxx_target_objs="m32c-pragma.o"
;;
*)
- echo "*** Configuration ${target} not supported" 1>&2
+ echo "*** Configuration ${target} not recognized, not supported" 1>&2
exit 1
;;
esac

View File

@@ -1,15 +0,0 @@
$NetBSD$
--- gcc/gcov.c.orig Sat Jan 9 00:05:06 2010
+++ gcc/gcov.c
@@ -58,6 +58,10 @@ along with Gcov; see the file COPYING3. If not see
#define STRING_SIZE 200
+#ifdef _MINIX
+#define block_t gcc_block_t
+#endif
+
struct function_info;
struct block_info;
struct source_info;

View File

@@ -1,34 +0,0 @@
$NetBSD$
--- gcc/libgcov.c.orig Thu Apr 9 23:23:07 2009
+++ gcc/libgcov.c
@@ -40,6 +40,11 @@ see the files COPYING3 and COPYING.RUNTIME respectivel
#define GCOV_LINKAGE /* nothing */
#endif
#endif
+
+#ifndef L_gcov_merge_add
+#include "gcov-minix-fs-wrapper.h"
+#endif
+
#include "gcov-io.h"
#if defined(inhibit_libc)
@@ -152,7 +157,7 @@ gcov_version (struct gcov_info *ptr, gcov_unsigned_t v
in two separate programs, and we must keep the two program
summaries separate. */
-static void
+void
gcov_exit (void)
{
struct gcov_info *gi_ptr;
@@ -564,7 +569,7 @@ __gcov_init (struct gcov_info *info)
gcov_crc32 = crc32;
if (!gcov_list)
- atexit (gcov_exit);
+ atexit (gcov_exit_wrapper);
info->next = gcov_list;
gcov_list = info;

View File

@@ -1,40 +0,0 @@
$NetBSD: patch-af,v 1.1 2009/09/24 11:50:57 dmcmahill Exp $
--- libgcc/config.host.orig Fri Apr 17 11:58:41 2009
+++ libgcc/config.host
@@ -149,6 +149,8 @@ case ${host} in
# machine-specific sections may refine and add to this
# configuration.
;;
+*-*-dragonfly*)
+ ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu*)
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
;;
@@ -277,9 +279,15 @@ x86_64-*-elf*)
;;
i[34567]86-*-aout*)
;;
+i[34567]86-*-minix*)
+ ;;
i[34567]86-*-freebsd*)
;;
x86_64-*-freebsd*)
+ ;;
+i[34567]86-*-dragonfly*)
+ ;;
+x86_64-*-dragonfly*)
;;
i[34567]86-*-netbsdelf*)
;;
--- libjava/configure.orig 2009-07-22 07:43:59.000000000 +0000
+++ libjava/configure 2009-09-23 12:51:11.000000000 +0000
@@ -28129,7 +28129,7 @@ echo "${ECHO_T}Python modules dir: ${pyt
# needed for aot-compile-rpm
-MAKE=`which make`
+MAKE=${PKGSRC_MAKE}
# Check whether --enable-aot-compile-rpm or --disable-aot-compile-rpm was given.

View File

@@ -1,23 +0,0 @@
--- libjava/contrib/rebuild-gcj-db.in.orig Wed Jul 2 13:17:54 2008
+++ libjava/contrib/rebuild-gcj-db.in Fri Jun 3 14:16:43 2011
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# rebuild-gcj-db
## Copyright (C) 2000, 2002, 2003, 2008 Free Software Foundation
@@ -16,12 +16,12 @@
base=@prefix@/lib/$dirname
dbLocation=`@prefix@/bin/gcj-dbtool -p $base`
libdir=$base/gcj
- if ! test -d $libdir; then
+ if test ! -d $libdir; then
# No shared libraries here.
continue
fi
dirname $dbLocation | xargs mkdir -p
@prefix@/bin/gcj-dbtool -n $dbLocation 64
- find $libdir -follow -name '*.db' -print0 | \
+ find $libdir -follow -name '*.db' -print | @AWK@ '{printf("%s%c", $1, 0);}' | \
@prefix@/bin/gcj-dbtool -0 -m $dbLocation $dbLocation
done

View File

@@ -1,20 +0,0 @@
--- gcc/fortran/f95-lang.c.orig Tue Jun 15 12:27:01 2010
+++ gcc/fortran/f95-lang.c Fri Jun 3 14:51:32 2011
@@ -873,10 +873,17 @@
gfc_define_builtin ("__builtin_cabsl", func_clongdouble_longdouble,
BUILT_IN_CABSL, "cabsl", true);
+#if defined (__NetBSD__)
gfc_define_builtin ("__builtin_cabs", func_cdouble_double,
+ BUILT_IN_CABS, "__c99_cabs", true);
+ gfc_define_builtin ("__builtin_cabsf", func_cfloat_float,
+ BUILT_IN_CABSF, "__c99_cabsf", true);
+#else
+ gfc_define_builtin ("__builtin_cabs", func_cdouble_double,
BUILT_IN_CABS, "cabs", true);
gfc_define_builtin ("__builtin_cabsf", func_cfloat_float,
BUILT_IN_CABSF, "cabsf", true);
+#endif
gfc_define_builtin ("__builtin_copysignl", mfunc_longdouble[1],
BUILT_IN_COPYSIGNL, "copysignl", true);

View File

@@ -1,54 +0,0 @@
$NetBSD$
--- libstdc++-v3/config/io/basic_file_stdio.cc.orig Thu Apr 9 23:23:07 2009
+++ libstdc++-v3/config/io/basic_file_stdio.cc
@@ -27,6 +27,10 @@
// ISO C++ 14882: 27.8 File-based streams
//
+#ifndef _POSIX_SOURCE
+#define _POSIX_SOURCE 1
+#endif
+
#include <bits/basic_file.h>
#include <fcntl.h>
#include <errno.h>
--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2009-04-09 23:23:07.000000000 +0000
+++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
@@ -30,6 +30,8 @@
// Full details can be found from the CVS files at:
// anoncvs@anoncvs.netbsd.org:/cvsroot/basesrc/include/ctype.h
// See www.netbsd.org for details of access.
+
+#include <sys/param.h>
_GLIBCXX_BEGIN_NAMESPACE(std)
@@ -42,6 +44,19 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// NB: Offsets into ctype<char>::_M_table force a particular size
// on the mask type. Because of this, we don't use an enum.
typedef unsigned char mask;
+#if __NetBSD_Version__ >= 599004100
+ static const mask upper = _CTYPE_U;
+ static const mask lower = _CTYPE_L;
+ static const mask alpha = _CTYPE_U | _CTYPE_L;
+ static const mask digit = _CTYPE_N;
+ static const mask xdigit = _CTYPE_N | _CTYPE_X;
+ static const mask space = _CTYPE_S;
+ static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B;
+ static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
+ static const mask cntrl = _CTYPE_C;
+ static const mask punct = _CTYPE_P;
+ static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
+#else
static const mask upper = _U;
static const mask lower = _L;
static const mask alpha = _U | _L;
@@ -53,6 +68,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
static const mask cntrl = _C;
static const mask punct = _P;
static const mask alnum = _U | _L | _N;
+#endif
};
_GLIBCXX_END_NAMESPACE

View File

@@ -1,54 +0,0 @@
$NetBSD$
--- libstdc++-v3/config/os/generic/error_constants.h.orig Thu Apr 9 23:23:07 2009
+++ libstdc++-v3/config/os/generic/error_constants.h
@@ -51,12 +51,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#endif
broken_pipe = EPIPE,
+#ifdef _GLIBCXX_HAVE_ECONNABORTED
connection_aborted = ECONNABORTED,
+#endif
connection_already_in_progress = EALREADY,
connection_refused = ECONNREFUSED,
connection_reset = ECONNRESET,
cross_device_link = EXDEV,
+#ifdef _GLIBCXX_HAVE_EDESTADDRREQ
destination_address_required = EDESTADDRREQ,
+#endif
device_or_resource_busy = EBUSY,
directory_not_empty = ENOTEMPTY,
executable_format_error = ENOEXEC,
@@ -79,7 +83,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
is_a_directory = EISDIR,
message_size = EMSGSIZE,
network_down = ENETDOWN,
+#ifdef _GLIBCXX_HAVE_ENETRESET
network_reset = ENETRESET,
+#endif
network_unreachable = ENETUNREACH,
no_buffer_space = ENOBUFS,
no_child_process = ECHILD,
@@ -94,7 +100,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
no_message_available = ENODATA,
#endif
+#ifdef _GLIBCXX_HAVE_ENOMSG
no_message = ENOMSG,
+#endif
no_protocol_option = ENOPROTOOPT,
no_space_on_device = ENOSPC,
--- libjava/configure.host.orig 2011-02-25 16:07:42.000000000 +0100
+++ libjava/configure.host
@@ -310,6 +310,9 @@
*-*-freebsd*)
slow_pthread_self=
;;
+ *-*-netbsd*)
+ slow_pthread_self=
+ ;;
*-mingw*)
libgcj_flags="${libgcj_flags} -fno-omit-frame-pointer"
# FIXME: win32_exception_handler( ) in win32.cc does not do the

View File

@@ -1,36 +0,0 @@
$NetBSD$
--- libgfortran/intrinsics/c99_functions.c.orig Thu Apr 9 23:23:07 2009
+++ libgfortran/intrinsics/c99_functions.c
@@ -1412,7 +1412,7 @@ ctanl (long double complex a)
#endif
-#if !defined(HAVE_TGAMMA)
+#if !defined(HAVE_TGAMMA) && defined(HAVE_NEXTAFTER)
#define HAVE_TGAMMA 1
extern double tgamma (double);
@@ -1551,7 +1551,7 @@ tgamma (double x)
-#if !defined(HAVE_LGAMMA)
+#if !defined(HAVE_LGAMMA) && defined(HAVE_NEXTAFTER)
#define HAVE_LGAMMA 1
extern double lgamma (double);
--- libjava/configure.ac.orig 2011-02-25 16:08:27.000000000 +0100
+++ libjava/configure.ac
@@ -1011,6 +1011,11 @@
THREADLDFLAGS=-pthread
THREADSPEC=-lpthread
;;
+ *-*-netbsd*)
+ # NetBSD should work with pthread.
+ THREADLDFLAGS=-pthread
+ THREADSPEC=-lpthread
+ ;;
alpha*-dec-osf* | hppa*-hp-hpux*)
THREADCXXFLAGS=-pthread
# boehm-gc needs some functions from librt, so link that too.

View File

@@ -1,36 +0,0 @@
$NetBSD$
--- gcc/ginclude/stddef.h.orig Thu Apr 9 23:23:07 2009
+++ gcc/ginclude/stddef.h
@@ -58,6 +58,9 @@ see the files COPYING3 and COPYING.RUNTIME respectivel
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
#include <sys/_types.h>
#endif
+#if defined (__minix)
+#include <minix/types.h>
+#endif
/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
defined if the corresponding type is *not* defined.
--- libjava/boehm.cc.orig 2011-03-05 18:09:36.000000000 +0000
+++ libjava/boehm.cc
@@ -747,7 +747,8 @@ _Jv_GCAttachThread ()
// The registration interface is only defined on posixy systems and
// only actually works if pthread_getattr_np is defined.
// FIXME: until gc7 it is simpler to disable this on solaris.
-#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS)
+#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS) \
+ && !defined(__NetBSD__)
GC_register_my_thread ();
#endif
}
@@ -755,7 +756,8 @@ _Jv_GCAttachThread ()
void
_Jv_GCDetachThread ()
{
-#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS)
+#if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(GC_SOLARIS_THREADS) \
+ && !defined(__NetBSD__)
GC_unregister_my_thread ();
#endif
}

View File

@@ -1,14 +0,0 @@
$NetBSD$
--- gcc/toplev.h.orig Fri Feb 20 15:20:38 2009
+++ gcc/toplev.h
@@ -174,7 +174,8 @@ extern int exact_log2 (unsigned HOST_
extern int floor_log2 (unsigned HOST_WIDE_INT);
/* Inline versions of the above for speed. */
-#if GCC_VERSION >= 3004
+/* #if GCC_VERSION >= 3004 */
+#if 0
# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
# define CLZ_HWI __builtin_clzl
# define CTZ_HWI __builtin_ctzl

View File

@@ -1,19 +0,0 @@
$NetBSD$
Fix build on NetBSD i386/amd64 after the ansi.h header include protection
name change.
--- gcc/ginclude/stddef.h.orig 2009-04-09 23:23:07.000000000 +0000
+++ gcc/ginclude/stddef.h
@@ -53,6 +53,11 @@ see the files COPYING3 and COPYING.RUNTI
one less case to deal with in the following. */
#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
#include <machine/ansi.h>
+#if !defined(_MACHINE_ANSI_H_)
+#if defined(_I386_ANSI_H_) || defined(_X86_64_ANSI_H_)
+#define _MACHINE_ANSI_H_
+#endif
+#endif
#endif
/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)