]>
Commit | Line | Data |
---|---|---|
4529dbf1 RS |
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 | ||
2f83c7d6 | 5 | Copyright (C) 2003, 2007 Free Software Foundation, Inc. |
4529dbf1 RS |
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) |
4529dbf1 RS |
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/>. */ | |
4529dbf1 RS |
22 | |
23 | ||
5189ab94 JB |
24 | /* The old uClinux ABI used 80-byte "long double"s for ColdFire too. */ |
25 | #undef LONG_DOUBLE_TYPE_SIZE | |
26 | #define LONG_DOUBLE_TYPE_SIZE 80 | |
27 | #undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE | |
28 | #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80 | |
29 | ||
4529dbf1 RS |
30 | /* Undo the definition of STARTFILE_SPEC from m68kelf.h so we'll |
31 | pick the default from gcc.c (just link crt0.o from multilib dir). */ | |
32 | #undef STARTFILE_SPEC | |
33 | ||
34 | /* Override the default LIB_SPEC from gcc.c. We don't currently support | |
35 | profiling, or libg.a. */ | |
36 | #undef LIB_SPEC | |
37 | #define LIB_SPEC "\ | |
38 | %{mid-shared-library:-R libc.gdb%s -elf2flt -shared-lib-id 0} -lc \ | |
39 | " | |
40 | ||
41 | /* we don't want a .eh_frame section. */ | |
42 | #define EH_FRAME_IN_DATA_SECTION | |
43 | ||
44 | /* ??? Quick hack to get constructors working. Make this look more like a | |
45 | COFF target, so the existing dejagnu/libgloss support works. A better | |
46 | solution would be to make the necessary dejagnu and libgloss changes so | |
47 | that we can use normal the ELF constructor mechanism. */ | |
48 | #undef INIT_SECTION_ASM_OP | |
49 | #undef FINI_SECTION_ASM_OP | |
50 | #undef ENDFILE_SPEC | |
51 | #define ENDFILE_SPEC "" | |
52 | ||
53 | /* Bring in standard linux defines */ | |
54 | #undef TARGET_OS_CPP_BUILTINS | |
55 | #define TARGET_OS_CPP_BUILTINS() \ | |
56 | do \ | |
57 | { \ | |
58 | builtin_define_std ("mc68000"); \ | |
59 | builtin_define ("__uClinux__"); \ | |
60 | builtin_define_std ("linux"); \ | |
61 | builtin_define_std ("unix"); \ | |
62 | builtin_define ("__gnu_linux__"); \ | |
63 | builtin_assert ("system=linux"); \ | |
64 | builtin_assert ("system=unix"); \ | |
65 | builtin_assert ("system=posix"); \ | |
66 | if (TARGET_ID_SHARED_LIBRARY) \ | |
67 | builtin_define ("__ID_SHARED_LIBRARY__"); \ | |
68 | } \ | |
69 | while (0) | |
70 |