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 7This file is part of GCC. 8 9GCC is free software; you can redistribute it and/or modify 10it under the terms of the GNU General Public License as published by 11the Free Software Foundation; either version 3, or (at your option) 12any later version. 13 14GCC is distributed in the hope that it will be useful, 15but WITHOUT ANY WARRANTY; without even the implied warranty of 16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17GNU General Public License for more details. 18 19You should have received a copy of the GNU General Public License 20along 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