]>
Commit | Line | Data |
---|---|---|
ba591f5a BI |
1 | /* Definitions of target machine for GCC. m68k/ColdFire based uClinux system |
2 | using ELF objects with special linker post-processing to produce FLAT | |
3 | executables. | |
4 | ||
7adcbafe | 5 | Copyright (C) 2003-2022 Free Software Foundation, Inc. |
ba591f5a BI |
6 | |
7 | This file is part of GCC. | |
8 | ||
9 | GCC is free software; you can redistribute it and/or modify | |
10 | it under the terms of the GNU General Public License as published by | |
2f83c7d6 | 11 | the Free Software Foundation; either version 3, or (at your option) |
ba591f5a BI |
12 | any later version. |
13 | ||
14 | GCC is distributed in the hope that it will be useful, | |
15 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | GNU General Public License for more details. | |
18 | ||
19 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
20 | along with GCC; see the file COPYING3. If not see |
21 | <http://www.gnu.org/licenses/>. */ | |
ba591f5a | 22 | |
abe92a04 RS |
23 | #undef STARTFILE_SPEC |
24 | #define STARTFILE_SPEC \ | |
25 | "%{mshared-library-id=0|!mshared-library-id=*: crt1.o%s ;: Scrt1.o%s} \ | |
26 | crti.o%s crtbegin.o%s" | |
27 | ||
28 | #undef ENDFILE_SPEC | |
29 | #define ENDFILE_SPEC "crtend.o%s crtn.o%s" | |
ba591f5a BI |
30 | |
31 | /* Override the default LIB_SPEC from gcc.c. We don't currently support | |
32 | profiling, or libg.a. */ | |
33 | #undef LIB_SPEC | |
abe92a04 | 34 | #define LIB_SPEC \ |
f24d84cc | 35 | "%{mid-shared-library:%{!static-libc:-R libc.gdb%s}} %{pthread:-lpthread} -lc" |
abe92a04 RS |
36 | |
37 | /* Default to using -elf2flt with no options. */ | |
38 | #undef LINK_SPEC | |
39 | #define LINK_SPEC \ | |
40 | "%{!elf2flt*:-elf2flt} \ | |
41 | %{mid-shared-library: \ | |
42 | %{mshared-library-id=*:-shared-lib-id %*;:-shared-lib-id 0}}" | |
43 | ||
ba591f5a | 44 | #undef TARGET_OS_CPP_BUILTINS |
78218d89 RS |
45 | #define TARGET_OS_CPP_BUILTINS() \ |
46 | do \ | |
47 | { \ | |
107fd1c1 | 48 | GNU_USER_TARGET_OS_CPP_BUILTINS (); \ |
78218d89 RS |
49 | builtin_define ("__uClinux__"); \ |
50 | if (TARGET_ID_SHARED_LIBRARY) \ | |
abe92a04 RS |
51 | { \ |
52 | builtin_define ("__ID_SHARED_LIBRARY__"); \ | |
53 | /* Shared libraries and executables do not share \ | |
54 | typeinfo names. */ \ | |
55 | builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ | |
56 | builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ | |
57 | } \ | |
78218d89 | 58 | } \ |
ba591f5a BI |
59 | while (0) |
60 | ||
abe92a04 RS |
61 | /* -msep-data is the default PIC mode on this target. */ |
62 | #define DRIVER_SELF_SPECS \ | |
428b3812 | 63 | "%{" FPIE_OR_FPIC_SPEC ":%{!msep-data:%{!mid-shared-library: -msep-data}}}" |
7ffb5e78 RS |
64 | |
65 | /* The uclinux binary format relies on relocations against a segment being | |
66 | within that segment. Conservatively apply this rule to individual | |
67 | sections. */ | |
68 | #undef M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P | |
69 | #define M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P 1 |