diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2018-11-06 15:08:46 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2018-11-06 15:08:46 +0000 |
commit | cdb3f2f4314f5cd72927eb7f620e1df14e1da574 (patch) | |
tree | be1ad2eca3c953039e51178dec64956bf58b03db /gcc | |
parent | f8d69798fd096ab6fca98ab189f31b31cb004502 (diff) | |
download | gcc-cdb3f2f4314f5cd72927eb7f620e1df14e1da574.zip gcc-cdb3f2f4314f5cd72927eb7f620e1df14e1da574.tar.gz gcc-cdb3f2f4314f5cd72927eb7f620e1df14e1da574.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config.gcc | 2 | ||||
-rw-r--r-- | gcc/config/default-d.c | 1 | ||||
-rw-r--r-- | gcc/config/sol2-d.c | 51 | ||||
-rw-r--r-- | gcc/config/t-sol2 | 7 |
5 files changed, 69 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8dd1470..77fcf1e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2018-11-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * 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 <jh@suse.cz> * tree.c (fld_type_variant): Also copy alignment; be sure that diff --git a/gcc/config.gcc b/gcc/config.gcc index 5e5c328..284f7d1 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 6c95205..85c70e0 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 0000000..534ad2a --- /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 +<http://www.gnu.org/licenses/>. */ + +#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 e275c0b..f1983cf 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 # <http://www.gnu.org/licenses/>. -# 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) $< |