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-2020 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 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" 30 31 /* Override the default LIB_SPEC from gcc.c. We don't currently support 32 profiling, or libg.a. */ 33 #undef LIB_SPEC 34 #define LIB_SPEC \ 35 "%{mid-shared-library:%{!static-libc:-R libc.gdb%s}} %{pthread:-lpthread} -lc" 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 44 #undef TARGET_OS_CPP_BUILTINS 45 #define TARGET_OS_CPP_BUILTINS() \ 46 do \ 47 { \ 48 GNU_USER_TARGET_OS_CPP_BUILTINS (); \ 49 builtin_define ("__uClinux__"); \ 50 if (TARGET_ID_SHARED_LIBRARY) \ 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 } \ 58 } \ 59 while (0) 60 61 /* -msep-data is the default PIC mode on this target. */ 62 #define DRIVER_SELF_SPECS \ 63 "%{" FPIE_OR_FPIC_SPEC ":%{!msep-data:%{!mid-shared-library: -msep-data}}}" 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 70