Reenable gcc support on FreeBSD and OpenBSD
authorUlrich Wilkens <mail@uwilkens.de>
Wed, 27 Jun 2018 01:55:19 +0000 (03:55 +0200)
committerJon Trulson <jon@radscan.com>
Wed, 27 Jun 2018 17:13:06 +0000 (11:13 -0600)
cde/config/cf/FreeBSD.cf
cde/config/cf/OpenBSD.cf
cde/programs/nsgmls/Imakefile

index e327e3fa7fd4e1ad5c62281c0f4e354255b84afd..32b960c469a2892e28559e08fac6edf93a342964 100644 (file)
@@ -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)
index add7c29e3be55580865d101f8592dc7029f96059..7ceb3586ad31f1fbbb5c5a1c9da96514083af9d4 100644 (file)
@@ -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)
index c10844668ef74073bc33584e874700cd7d401ba0..5d3527648722a509acc051abd14a67ec7a0495e5 100644 (file)
@@ -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