]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
Improve clang support. Add tcc support. Clang builds now perform as good as gcc
authorcloudwalk <cloudwalk@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 11 Jul 2020 01:51:42 +0000 (01:51 +0000)
committercloudwalk <cloudwalk@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 11 Jul 2020 01:51:42 +0000 (01:51 +0000)
tcc builds perform like crap, but it's nice to support a fourth
compiler. There is an issue on Linux with a Pulseaudio library not
linking correctly, however.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12795 d7cf8633-e32d-0410-b094-e92efae38249

crypto.c
makefile
makefile.inc
prvm_exec.c
qtypes.h
quakedef.h
sys_shared.c

index a6ff74526798807c723a8013730add3d1ebcc576..4589741a18095bdc32d3574c3e8ffad4c3f3688a 100644 (file)
--- a/crypto.c
+++ b/crypto.c
@@ -158,7 +158,7 @@ static size_t Crypto_UnParsePack(char *buf, size_t len, unsigned long header, co
 
 // d0_blind_id interface
 #define D0_EXPORT
-#ifdef __GNUC__
+#if defined (__GNUC__) || (__clang__) || (__TINYC__)
 #define D0_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
 #else
 #define D0_WARN_UNUSED_RESULT
index 621c73e9fc55bdd782471eb74567e3dfa7a3b87c..973113d1a375231d56665e4d306f2479a9e961bd 100644 (file)
--- a/makefile
+++ b/makefile
@@ -308,8 +308,10 @@ endif
 
 
 ##### Extra CFLAGS #####
+ifneq ($(CC), tcc)
+       CFLAGS_MAKEDEP?=-MMD
+endif
 
-CFLAGS_MAKEDEP?=-MMD
 ifdef DP_FS_BASEDIR
        CFLAGS_FS=-DDP_FS_BASEDIR=\"$(DP_FS_BASEDIR)\"
 else
index f903bef183c9439d200a69d49c3df2763f17c3f8..0297c489c654db8252ddb7e7447f502ffef484c2 100644 (file)
@@ -190,7 +190,14 @@ ifeq ($(PEDANTIC),1)
 else
        CFLAGS_STANDARD=
 endif
-CFLAGS_COMMON=$(CFLAGS_STANDARD) $(CFLAGS_MAKEDEP) $(CFLAGS_PRELOAD) $(CFLAGS_FS) $(CFLAGS_WARNINGS) $(CFLAGS_LIBZ) $(CFLAGS_LIBJPEG) $(CFLAGS_SND_XMP) $(CFLAGS_NET) $(CFLAGS_SDL) -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../
+
+CFLAGS_TCC=
+
+ifeq ($(CC), tcc)
+       CFLAGS_TCC=-DSDL_DISABLE_IMMINTRIN_H
+endif
+
+CFLAGS_COMMON=$(CFLAGS_STANDARD) $(CFLAGS_TCC) $(CFLAGS_MAKEDEP) $(CFLAGS_PRELOAD) $(CFLAGS_FS) $(CFLAGS_WARNINGS) $(CFLAGS_LIBZ) $(CFLAGS_LIBJPEG) $(CFLAGS_SND_XMP) $(CFLAGS_NET) $(CFLAGS_SDL) -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../
 CFLAGS_CLIENT=-DCONFIG_MENU $(CFLAGS_VIDEO_CAPTURE)
 CFLAGS_SERVER=
 CFLAGS_DEBUG=-ggdb
index c82b9e01488e3beadb71976658ed0cc4d310f101..452f2803f1b780c3dd1ca70cd0c45b7af03c7308 100644 (file)
@@ -716,7 +716,7 @@ static void PRVM_StatementCoverageEvent(prvm_prog_t *prog, mfunction_t *func, in
        Con_Printf("prvm_coverage: %s just executed a statement at %s for the first time. Coverage: %.2f%%.\n", prog->name, PRVM_WhereAmI(vabuf, sizeof(vabuf), prog, func, statement), prog->statements_covered * 100.0 / prog->numstatements);
 }
 
-#if defined (__GNUC__) || (__clang__)
+#if defined (__GNUC__) || (__clang__) || (__TINYC__)
 #  ifndef CONFIG_PEDANTIC
 #  define HAVE_COMPUTED_GOTOS 1
 #  endif
index e385e286a7dffc73d8541b0e040f78dd683ae75d..7bbc212d578e68b275606b64cdbff910dd055011 100644 (file)
--- a/qtypes.h
+++ b/qtypes.h
@@ -21,7 +21,7 @@ typedef bool qboolean;
 // fall over
 #define        ROLL    2
 
-#if defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+#if defined(__GNUC__) || (__clang__) || (__TINYC__) || (_MSC_VER >= 1400)
 #define RESTRICT __restrict
 #else
 #define RESTRICT
index 107ccc7a214d7a08d17c9c184186794e5454a00d..da2673453195490d70f56ba2f3d6b38460455eec 100644 (file)
@@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 # include <TargetConditionals.h>
 #endif
 
-#if defined(__GNUC__) && (__GNUC__ > 2)
+#if (__GNUC__ > 2) || defined (__clang__) || (__TINYC__)
 #define DP_FUNC_PRINTF(n) __attribute__ ((format (printf, n, n+1)))
 #define DP_FUNC_PURE      __attribute__ ((pure))
 #define DP_FUNC_NORETURN  __attribute__ ((noreturn))
@@ -471,7 +471,7 @@ extern cvar_t sessionid;
 # define DP_OS_STR             "unknown"
 #endif
 
-#if defined(__GNUC__)
+#if defined(__GNUC__) || (__clang__)
 # if defined(__i386__)
 #  define DP_ARCH_STR          "686"
 #  define SSE_POSSIBLE
index d6081605f701b596ac716b65750cd70d1afc74f9..81e25e006bb7045b4a1dcf795aaf01adce8bee64 100644 (file)
@@ -534,7 +534,7 @@ void Sys_ProvideSelfFD(void)
 static int CPUID_Features(void)
 {
        int features = 0;
-# if defined(__GNUC__) && defined(__i386__)
+# if defined((__GNUC__) || (__clang__) || (__TINYC__)) && defined(__i386__)
         __asm__ (
 "        movl    %%ebx,%%edi\n"
 "        xorl    %%eax,%%eax                                           \n"