From: Rainer Orth Date: Tue, 6 Nov 2018 15:08:46 +0000 (+0000) Subject: Fix D compilation on Solaris X-Git-Tag: basepoints/gcc-10~3280 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cdb3f2f4314f5cd72927eb7f620e1df14e1da574;p=thirdparty%2Fgcc.git Fix D compilation on Solaris * config/default-d.c: Include memmodel.h. * config/sol2-d.c: New file. * config/t-sol2 (sol2-d.o): New rule. * config.gcc <*-*-solaris2*>: Set d_target_objs, target_has_targetdm. From-SVN: r265846 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8dd1470ad5de..77fcf1e3d3c5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2018-11-06 Rainer Orth + + * config/default-d.c: Include memmodel.h. + + * config/sol2-d.c: New file. + * config/t-sol2 (sol2-d.o): New rule. + * config.gcc <*-*-solaris2*>: Set d_target_objs, + target_has_targetdm. + 2018-11-06 Jan Hubicka * tree.c (fld_type_variant): Also copy alignment; be sure that diff --git a/gcc/config.gcc b/gcc/config.gcc index 5e5c328ed4cf..284f7d178de9 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -917,6 +917,7 @@ case ${target} in tmake_file="${tmake_file} t-sol2 t-slibgcc" c_target_objs="${c_target_objs} sol2-c.o" cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o" + d_target_objs="${d_target_objs} sol2-d.o" extra_objs="${extra_objs} sol2.o sol2-stubs.o" extra_options="${extra_options} sol2.opt" case ${enable_threads}:${have_pthread_h}:${have_thread_h} in @@ -924,6 +925,7 @@ case ${target} in thread_file=posix ;; esac + target_has_targetdm=yes ;; *-*-*vms*) extra_options="${extra_options} vms/vms.opt" diff --git a/gcc/config/default-d.c b/gcc/config/default-d.c index 6c952052088a..85c70e071fa4 100644 --- a/gcc/config/default-d.c +++ b/gcc/config/default-d.c @@ -18,6 +18,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #include "system.h" #include "coretypes.h" +#include "memmodel.h" #include "tm_d.h" #include "d/d-target.h" #include "d/d-target-def.h" diff --git a/gcc/config/sol2-d.c b/gcc/config/sol2-d.c new file mode 100644 index 000000000000..534ad2a3c912 --- /dev/null +++ b/gcc/config/sol2-d.c @@ -0,0 +1,51 @@ +/* Solaris support needed only by D front-end. + Copyright (C) 2018 Free Software Foundation, Inc. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "tm.h" +#include "memmodel.h" +#include "tm_p.h" +#include "d/d-target.h" +#include "d/d-target-def.h" + +/* Implement TARGET_D_OS_VERSIONS for Solaris targets. */ + +static void +solaris_d_os_builtins (void) +{ + d_add_builtin_version ("Posix"); + d_add_builtin_version ("Solaris"); \ +} + +/* Implement TARGET_D_CRITSEC_SIZE for Solaris targets. */ + +static unsigned +solaris_d_critsec_size (void) +{ + /* This is the sizeof pthread_mutex_t. */ + return 24; +} + +#undef TARGET_D_OS_VERSIONS +#define TARGET_D_OS_VERSIONS solaris_d_os_builtins + +#undef TARGET_D_CRITSEC_SIZE +#define TARGET_D_CRITSEC_SIZE solaris_d_critsec_size + +struct gcc_targetdm targetdm = TARGETDM_INITIALIZER; diff --git a/gcc/config/t-sol2 b/gcc/config/t-sol2 index e275c0b96e26..f1983cfc7de0 100644 --- a/gcc/config/t-sol2 +++ b/gcc/config/t-sol2 @@ -16,7 +16,7 @@ # along with GCC; see the file COPYING3. If not see # . -# Solaris-specific format checking and pragmas +# Solaris-specific format checking and pragmas. sol2-c.o: $(srcdir)/config/sol2-c.c $(COMPILE) $< $(POSTCOMPILE) @@ -26,6 +26,11 @@ sol2-cxx.o: $(srcdir)/config/sol2-cxx.c $(COMPILE) $< $(POSTCOMPILE) +# Solaris-specific D support. +sol2-d.o: $(srcdir)/config/sol2-d.c + $(COMPILE) $< + $(POSTCOMPILE) + # Corresponding stub routines. sol2-stubs.o: $(srcdir)/config/sol2-stubs.c $(COMPILE) $<