freebsd64.h revision 182579
1240116Smarcel/* Definitions for AMD x86-64 running FreeBSD with ELF format
2240116Smarcel   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
3240116Smarcel   Contributed by David O'Brien <obrien@FreeBSD.org>
4240116Smarcel
5240116SmarcelThis file is part of GCC.
6240116Smarcel
7240116SmarcelGCC is free software; you can redistribute it and/or modify
8240116Smarcelit under the terms of the GNU General Public License as published by
9240116Smarcelthe Free Software Foundation; either version 2, or (at your option)
10240116Smarcelany later version.
11240116Smarcel
12240116SmarcelGCC is distributed in the hope that it will be useful,
13240116Smarcelbut WITHOUT ANY WARRANTY; without even the implied warranty of
14240116SmarcelMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15240116SmarcelGNU General Public License for more details.
16240116Smarcel
17240116SmarcelYou should have received a copy of the GNU General Public License
18240116Smarcelalong with GCC; see the file COPYING.  If not, write to
19240116Smarcelthe Free Software Foundation, 51 Franklin Street, Fifth Floor,
20240116SmarcelBoston, MA 02110-1301, USA.  */
21240116Smarcel
22240116Smarcel/* $FreeBSD: head/contrib/gcc/config/i386/freebsd64.h 182579 2008-08-31 23:38:28Z obrien $ */
23240116Smarcel
24240116Smarcel
25240116Smarcel#undef  TARGET_VERSION
26275988Sngie#define TARGET_VERSION fprintf (stderr, " (FreeBSD/amd64 ELF)");
27275988Sngie
28240116Smarcel#undef  FBSD_TARGET_CPU_CPP_BUILTINS
29240116Smarcel#define FBSD_TARGET_CPU_CPP_BUILTINS()		\
30240116Smarcel  do						\
31240116Smarcel    {						\
32240116Smarcel      if (TARGET_64BIT)				\
33240116Smarcel	{					\
34240116Smarcel	  builtin_define ("__LP64__");		\
35240116Smarcel	}					\
36240116Smarcel    }						\
37275988Sngie  while (0)
38240116Smarcel
39275988Sngie#define SUBTARGET_EXTRA_SPECS \
40240116Smarcel  { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
41240116Smarcel
42240116Smarcel/* Provide a LINK_SPEC appropriate for the FreeBSD/x86-64 ELF target.
43240116Smarcel   This is a copy of LINK_SPEC from <i386/freebsd.h> tweaked for
44240116Smarcel   the x86-64 target.  */
45240116Smarcel
46240116Smarcel#undef	LINK_SPEC
47240116Smarcel#define LINK_SPEC "\
48240116Smarcel  %{m32:-m elf_i386_fbsd} \
49240116Smarcel  %{v:-V} \
50240116Smarcel  %{assert*} %{R*} %{rpath*} %{defsym*} \
51240116Smarcel  %{shared:-Bshareable %{h*} %{soname*}} \
52240116Smarcel    %{!shared: \
53240116Smarcel      %{!static: \
54240116Smarcel        %{rdynamic:-export-dynamic} \
55240116Smarcel	%{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }} \
56240116Smarcel    %{static:-Bstatic}} \
57240116Smarcel  %{symbolic:-Bsymbolic}"
58240116Smarcel