We define the `<XXX>_HOST_ARCH` to `1`, but never to `0`in
authorMoritz Angermann <moritz.angermann@gmail.com>
Thu, 11 May 2017 10:14:26 +0000 (18:14 +0800)
committerMoritz Angermann <moritz.angermann@gmail.com>
Thu, 11 May 2017 10:31:44 +0000 (18:31 +0800)
compiler/ghc.mk
@echo "#define $(HostArch_CPP)_HOST_ARCH 1"               >> $@
@echo "#define $(TargetArch_CPP)_HOST_ARCH 1"             >> $@

this leads to warnigns like:
> warning: 'x86_64_HOST_ARCH' is not defined, evaluates to 0 [-Wundef]

Reviewers: austin, bgamari, erikd, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3555

rts/linker/MachOTypes.h
rts/sm/HeapAlloc.h
rts/win32/OSThreads.c

index 7d9d64c..4176c48 100644 (file)
@@ -6,13 +6,14 @@
 
 #include <mach-o/loader.h>
 
-#if x86_64_HOST_ARCH || powerpc64_HOST_ARCH \
- || aarch64_HOST_ARCH || arm64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH) || defined(powerpc64_HOST_ARCH) \
+ || defined(aarch64_HOST_ARCH) || defined(arm64_HOST_ARCH)
 typedef struct mach_header_64     MachOHeader;
 typedef struct segment_command_64 MachOSegmentCommand;
 typedef struct section_64         MachOSection;
 typedef struct nlist_64           MachONList;
-#elif i386_HOST_ARCH || powerpc_HOST_ARCH || arm_HOST_ARCH
+#elif defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH) \
+ || defined(arm_HOST_ARCH)
 typedef struct mach_header     MachOHeader;
 typedef struct segment_command MachOSegmentCommand;
 typedef struct section         MachOSection;
index 9a36d10..197317f 100644 (file)
@@ -130,7 +130,7 @@ extern StgWord8 mblock_map[];
 #define MBC_LINE_BITS 0
 #define MBC_TAG_BITS 15
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
 // 32bits are enough for 'entry' as modern amd64 boxes have
 // only 48bit sized virtual addres.
 typedef StgWord32 MbcCacheLine;
index 4deb14a..ad42340 100644 (file)
@@ -251,7 +251,7 @@ forkOS_createThread ( HsStablePtr entry )
                            (unsigned*)&pId) == 0);
 }
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
 /* We still support Windows Vista, so we can't depend on it
    and must manually resolve these. */
 typedef DWORD(WINAPI *GetItemCountProc)(WORD);
@@ -306,7 +306,7 @@ getNumberOfProcessorsGroups (void)
     static uint8_t n_groups = 0;
 
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
     if (!n_groups)
     {
         /* We still support Windows Vista. Which means we can't rely
@@ -328,7 +328,7 @@ getNumberOfProcessorsGroups (void)
     return n_groups;
 }
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
 static uint8_t*
 getProcessorsDistribution (void)
 {
@@ -377,7 +377,7 @@ getProcessorsCumulativeSum(void)
         cpuGroupCumulativeCache = malloc(n_groups * sizeof(uint32_t));
         memset(cpuGroupCumulativeCache, 0, n_groups * sizeof(uint32_t));
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
         uint8_t* proc_dist = getProcessorsDistribution();
         uint32_t cum_num_proc = 0;
         for (int i = 0; i < n_groups; i++)
@@ -419,7 +419,7 @@ createProcessorGroupMap (void)
     /* For 32bit Windows and 64bit older than Windows 7, create a default mapping. */
     memset(cpuGroupCache, 0, numProcs * sizeof(uint8_t));
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
     uint8_t* proc_dist = getProcessorsDistribution();
 
     int totalProcs = 0;
@@ -443,7 +443,7 @@ getNumberOfProcessors (void)
 {
     static uint32_t nproc = 0;
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
     /* We still support Windows Vista. Which means we can't rely
        on the API being available. So we'll have to resolve manually.  */
     HMODULE kernel = GetModuleHandleW(L"kernel32");
@@ -510,7 +510,7 @@ setThreadAffinity (uint32_t n, uint32_t m) // cap N of M
         mask[group] |= 1 << ix;
     }
 
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
     /* We still support Windows Vista. Which means we can't rely
        on the API being available. So we'll have to resolve manually.  */
     HMODULE kernel = GetModuleHandleW(L"kernel32");
@@ -520,7 +520,7 @@ setThreadAffinity (uint32_t n, uint32_t m) // cap N of M
 
     for (i = 0; i < n_groups; i++)
     {
-#if x86_64_HOST_ARCH
+#if defined(x86_64_HOST_ARCH)
         // If we support the new API, use it.
         if (mask[i] > 0 && SetThreadGroupAffinity)
         {