OoliteProject / oolite

The main Oolite repository.
https://www.oolite.space
565 stars 73 forks source link

Javascript library doesn't compile under gcc7 #264

Closed kanthoney closed 7 years ago

kanthoney commented 7 years ago

Spidermonkey doesn't compile under gcc7. I don't seem to have access to that module, so here's a diff for the fix:

diff --git a/js/src/nanojit/NativeX64.cpp b/js/src/nanojit/NativeX64.cpp
index 39fd4e0..eba4110 100644
--- a/js/src/nanojit/NativeX64.cpp
+++ b/js/src/nanojit/NativeX64.cpp
@@ -1899,7 +1899,7 @@ namespace nanojit
          }
     }

-    static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {0x8000000000000000LL,0};
+    static const AVMPLUS_ALIGN16(uint64_t) negateMask[] = {0x8000000000000000LL,0};

     void Assembler::asm_fneg(LIns *ins) {
         Register rr, ra;

The problem is that the constant 0x8000000000000000LL is technically outside the range for an int64_t, although it's got the right number of bits, and gcc7 refuses to build it. Changing the type to uint64_t fixes the build.

AnotherCommander commented 7 years ago

Thanks for the fix Kevin. Submitted to the mozilla submodule and the issue can be closed.