(root)/
gcc-13.2.0/
gcc/
config/
m68k/
uclinux.h
       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-2023 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.cc.  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