From 32eefa310a6b2113b2ffdf1f31b7a57ebdc87c6d Mon Sep 17 00:00:00 2001 From: Ulrich Wilkens Date: Wed, 27 Jun 2018 03:55:19 +0200 Subject: [PATCH] Reenable gcc support on FreeBSD and OpenBSD --- cde/config/cf/FreeBSD.cf | 32 +++++++++++++++++++++++++++----- cde/config/cf/OpenBSD.cf | 7 ++++++- cde/programs/nsgmls/Imakefile | 10 ++++++++-- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/cde/config/cf/FreeBSD.cf b/cde/config/cf/FreeBSD.cf index e327e3fa..32b960c4 100644 --- a/cde/config/cf/FreeBSD.cf +++ b/cde/config/cf/FreeBSD.cf @@ -179,14 +179,31 @@ USE_GCC = UseGcc #endif #endif -/* The GCC strength-reduce bug is fixed for FreeBSD 2.1.5 and later */ +/* Suppress warnings dependant from compiler versions */ #ifndef DefaultGcc2i386Opt -#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 5) -#define DefaultGcc2i386Opt -O2 -fno-strict-aliasing -Wno-write-strings \ - -Wno-unused-result -Wno-deprecated-register -#endif +# if defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) +# if (__clang_major__ > 3) || \ + (__clang_major__ == 3 && __clang_minor__ >= 4) +# define DefaultGcc2i386Opt -O2 -fno-strict-aliasing -Wno-write-strings \ + -Wno-unused-result -Wno-deprecated-register +# else +# define DefaultGcc2i386Opt -O2 -fno-strict-aliasing -Wno-write-strings \ + -Wno-unused-result +# endif +# elif defined(__GNUC__) && defined(__GNUC_MINOR__) +# if (__GNUC__ > 4) || \ + (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) +# define DefaultGcc2i386Opt -O2 -fno-strict-aliasing -Wno-write-strings \ + -Wno-unused-result -Wno-deprecated +# else +# define DefaultGcc2i386Opt -O2 -fno-strict-aliasing -Wno-write-strings +# endif +# else +# define DefaultGcc2i386Opt -O2 -fno-strict-aliasing +# endif #endif + #ifndef OptimizedCDebugFlags # if defined(i386Architecture) || defined(AMD64Architecture) # define OptimizedCDebugFlags DefaultGcc2i386Opt @@ -210,6 +227,11 @@ ICONVSYSLIB != if test -f /usr/local/include/iconv.h; then echo -liconv; else ec #define StandardDefines -DCSRG_BASED #define StandardIncludes -I/usr/local/include + +#ifndef TopMotifInclude +#define TopMotifInclude /usr/local/include +#endif + #define BuildLibPathVar LD_LIBRARY_PATH #define DefaultUserPath /bin:/usr/bin:/usr/local/bin:$(BINDIR) diff --git a/cde/config/cf/OpenBSD.cf b/cde/config/cf/OpenBSD.cf index add7c29e..7ceb3586 100644 --- a/cde/config/cf/OpenBSD.cf +++ b/cde/config/cf/OpenBSD.cf @@ -1050,8 +1050,13 @@ CXXDEPENDINCLUDE != CcCmd -v -x c++ /dev/null -fsyntax-only \ # endif #endif +/* Suppress warnings dependant from compiler versions */ #if !defined(GccWarningOptions) -# define GccWarningOptions -Wpointer-arith -Wno-unused -Wno-write-strings -Wno-switch -Wno-unused-result -Wno-deprecated-register +# if (defined __clang__) +# define GccWarningOptions -Wpointer-arith -Wno-unused -Wno-write-strings -Wno-switch -Wno-unused-result -Wno-deprecated-register +# else +# define GccWarningOptions -Wpointer-arith -Wno-unused -Wno-write-strings -Wno-switch +# endif #endif #define TtClientLibs $(TTLIB) $(XTOOLLIB) $(XLIB) diff --git a/cde/programs/nsgmls/Imakefile b/cde/programs/nsgmls/Imakefile index c1084466..5d352764 100644 --- a/cde/programs/nsgmls/Imakefile +++ b/cde/programs/nsgmls/Imakefile @@ -62,6 +62,12 @@ M4 = /bin/m4 #if defined(LinuxArchitecture) || defined(BSDArchitecture) +#if defined(__llvm__) +NOIMPLTEMPLATES = +#else +NOIMPLTEMPLATES = -fno-implicit-templates +#endif + /* * put cpp directives here rather than in CXXDEFINES because * for some reason the CXXDEFINES aren't passed to the link phase @@ -69,12 +75,12 @@ M4 = /bin/m4 */ CXXOPTIONS = \ -DSP_VOLATILE=volatile -DSP_CONST=const -DSP_ANSI_CLASS_INST \ - -DSP_HAVE_LOCALE -DSP_MULTI_BYTE -DSP_MANUAL_INST -fno-implicit-templates + -DSP_HAVE_LOCALE -DSP_MULTI_BYTE -DSP_MANUAL_INST $(NOIMPLTEMPLATES) /* * Flags passed into compile step when doing manual template instantiation. */ -CXXTEMPLATEFLAGS = -fno-implicit-templates +CXXTEMPLATEFLAGS = $(NOIMPLTEMPLATES) M4 = /usr/bin/m4 -- 2.25.1