Home | History | Annotate | Line # | Download | only in config
      1 /* DragonFly support needed only by D front-end.
      2    Copyright (C) 2020-2022 Free Software Foundation, Inc.
      3 
      4 GCC is free software; you can redistribute it and/or modify it under
      5 the terms of the GNU General Public License as published by the Free
      6 Software Foundation; either version 3, or (at your option) any later
      7 version.
      8 
      9 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
     10 WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     12 for more details.
     13 
     14 You should have received a copy of the GNU General Public License
     15 along with GCC; see the file COPYING3.  If not see
     16 <http://www.gnu.org/licenses/>.  */
     17 
     18 #include "config.h"
     19 #include "system.h"
     20 #include "coretypes.h"
     21 #include "tm.h"
     22 #include "tm_d.h"
     23 #include "d/d-target.h"
     24 #include "d/d-target-def.h"
     25 
     26 /* Implement TARGET_D_OS_VERSIONS for DragonFly targets.  */
     27 
     28 static void
     29 dragonfly_d_os_builtins (void)
     30 {
     31   d_add_builtin_version ("DragonFlyBSD");
     32   d_add_builtin_version ("Posix");
     33 }
     34 
     35 /* Handle a call to `__traits(getTargetInfo, "objectFormat")'.  */
     36 
     37 static tree
     38 dragonfly_d_handle_target_object_format (void)
     39 {
     40   const char *objfmt = "elf";
     41 
     42   return build_string_literal (strlen (objfmt) + 1, objfmt);
     43 }
     44 
     45 /* Implement TARGET_D_REGISTER_OS_TARGET_INFO for DragonFly targets.  */
     46 
     47 static void
     48 dragonfly_d_register_target_info (void)
     49 {
     50   const struct d_target_info_spec handlers[] = {
     51     { "objectFormat", dragonfly_d_handle_target_object_format },
     52     { NULL, NULL },
     53   };
     54 
     55   d_add_target_info_handlers (handlers);
     56 }
     57 
     58 #undef TARGET_D_OS_VERSIONS
     59 #define TARGET_D_OS_VERSIONS dragonfly_d_os_builtins
     60 
     61 #undef TARGET_D_REGISTER_OS_TARGET_INFO
     62 #define TARGET_D_REGISTER_OS_TARGET_INFO dragonfly_d_register_target_info
     63 
     64 struct gcc_targetdm targetdm = TARGETDM_INITIALIZER;
     65