diff options
author | kan <kan@FreeBSD.org> | 2003-07-11 03:40:53 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2003-07-11 03:40:53 +0000 |
commit | b2a8872fbe1ec1c49094559ac7b78e6ea4ab7180 (patch) | |
tree | f6b0610f4a17fd26aa234354f050080f789861a4 /contrib/gcc/config/netbsd-elf.h | |
parent | 52e69d78eee5612ac195e0701a5cebe40d1ab0e1 (diff) | |
download | FreeBSD-src-b2a8872fbe1ec1c49094559ac7b78e6ea4ab7180.zip FreeBSD-src-b2a8872fbe1ec1c49094559ac7b78e6ea4ab7180.tar.gz |
Gcc 3.3.1-pre as of 2003-07-11.
Diffstat (limited to 'contrib/gcc/config/netbsd-elf.h')
-rw-r--r-- | contrib/gcc/config/netbsd-elf.h | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/contrib/gcc/config/netbsd-elf.h b/contrib/gcc/config/netbsd-elf.h index 7dd9ff3..cb38b93 100644 --- a/contrib/gcc/config/netbsd-elf.h +++ b/contrib/gcc/config/netbsd-elf.h @@ -19,6 +19,14 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* TARGET_OS_CPP_BUILTINS() common to all NetBSD ELF targets. */ +#define NETBSD_OS_CPP_BUILTINS_ELF() \ + do \ + { \ + NETBSD_OS_CPP_BUILTINS_COMMON(); \ + builtin_define ("__ELF__"); \ + } \ + while (0) /* This defines which switch letters take arguments. On NetBSD, most of the normal cases (defined by gcc.c) apply, and we also have -h* @@ -38,39 +46,50 @@ Boston, MA 02111-1307, USA. */ of the support for getting C++ file-scope static objects constructed before entering "main". */ -#undef STARTFILE_SPEC -#define STARTFILE_SPEC \ +#define NETBSD_STARTFILE_SPEC \ "%{!shared: \ %{pg:gcrt0%O%s} \ %{!pg: \ %{p:gcrt0%O%s} \ %{!p:crt0%O%s}}} \ - %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}" + %:if-exists(crti%O%s) \ + %{static:%:if-exists-else(crtbeginT%O%s crtbegin%O%s)} \ + %{!static: \ + %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}}" + +#undef STARTFILE_SPEC +#define STARTFILE_SPEC NETBSD_STARTFILE_SPEC /* Provide an ENDFILE_SPEC appropriate for NetBSD ELF. Here we add crtend.o, which provides part of the support for getting C++ file-scope static objects deconstructed after exiting "main". */ -#undef ENDFILE_SPEC -#define ENDFILE_SPEC \ - "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" +#define NETBSD_ENDFILE_SPEC \ + "%{!shared:crtend%O%s} %{shared:crtendS%O%s} \ + %:if-exists(crtn%O%s)" +#undef ENDFILE_SPEC +#define ENDFILE_SPEC NETBSD_ENDFILE_SPEC /* Provide a LINK_SPEC appropriate for NetBSD ELF. Here we provide support for the special GCC options -assert, -R, -rpath, -shared, - -nostdlib, -static, -rdynamic, and -dynamic-linker. */ - -#undef LINK_SPEC -#define LINK_SPEC \ - "%{assert*} %{R*} %{rpath*} \ - %{shared:-shared} \ - %{!shared: \ - -dc -dp \ - %{!nostdlib: \ - %{!r*: \ - %{!e*:-e __start}}} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ + -nostdlib, -static, -rdynamic, and -dynamic-linker. + + Target-specific code can use this in conjunction with any other + target-specific LINK_SPEC options. + + Target-specific code must provide the %(netbsd_entry_point) spec. */ + +#define NETBSD_LINK_SPEC_ELF \ + "%{assert*} %{R*} %{rpath*} \ + %{shared:-shared} \ + %{!shared: \ + -dc -dp \ + %{!nostdlib: \ + %{!r*: \ + %{!e*:-e %(netbsd_entry_point)}}} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ %{static:-static}}" |