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 5 Copyright (C) 2003, 2007 Free Software Foundation, Inc. 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 11 the Free Software Foundation; either version 3, or (at your option) 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 20 along with GCC; see the file COPYING3. If not see 21 <http://www.gnu.org/licenses/>. */ 22 23 #undef TARGET_VERSION 24 #define TARGET_VERSION fprintf (stderr, " (68k uClinux)"); 25 26 #undef STARTFILE_SPEC 27 #define STARTFILE_SPEC \ 28 "%{mshared-library-id=0|!mshared-library-id=*: crt1.o%s ;: Scrt1.o%s} \ 29 crti.o%s crtbegin.o%s" 30 31 #undef ENDFILE_SPEC 32 #define ENDFILE_SPEC "crtend.o%s crtn.o%s" 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:%{!static-libc:-R libc.gdb%s}} -lc" 39 40 /* Default to using -elf2flt with no options. */ 41 #undef LINK_SPEC 42 #define LINK_SPEC \ 43 "%{!elf2flt*:-elf2flt} \ 44 %{mid-shared-library: \ 45 %{mshared-library-id=*:-shared-lib-id %*;:-shared-lib-id 0}}" 46 47 #undef TARGET_OS_CPP_BUILTINS 48 #define TARGET_OS_CPP_BUILTINS() \ 49 do \ 50 { \ 51 LINUX_TARGET_OS_CPP_BUILTINS (); \ 52 builtin_define ("__uClinux__"); \ 53 if (TARGET_ID_SHARED_LIBRARY) \ 54 { \ 55 builtin_define ("__ID_SHARED_LIBRARY__"); \ 56 /* Shared libraries and executables do not share \ 57 typeinfo names. */ \ 58 builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ 59 builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ 60 } \ 61 } \ 62 while (0) 63 64 /* -msep-data is the default PIC mode on this target. */ 65 #define DRIVER_SELF_SPECS \ 66 "%{fpie|fPIE|fpic|fPIC:%{!msep-data:%{!mid-shared-library: -msep-data}}}" 67 68 /* The uclinux binary format relies on relocations against a segment being 69 within that segment. Conservatively apply this rule to individual 70 sections. */ 71 #undef M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P 72 #define M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P 1 73