Browse Source

Fix Arm 64bit detection

__aarch64__ is the correct way, __arm64__ is for iOS.
But the memory model does not need any of these architecture defines to be fully
relevant. __LP64__ means Long Pointer 64 (ie 64bits), and __ILP32__ is Integer Long Pointer 32 (ie 32bits).
That's enough and avoids errors like __arch64__ (correct way is __aarch64__) but forgets __arm64__ (iOS).
Amaury Le Leyzour 6 years ago
parent
commit
c35bc3d576
1 changed files with 3 additions and 3 deletions
  1. 3 3
      glm/detail/setup.hpp

+ 3 - 3
glm/detail/setup.hpp

@@ -35,12 +35,12 @@
 ///////////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////
 // Build model
 // Build model
 
 
-#if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)
+#if defined(__LP64__)
 #	define GLM_MODEL	GLM_MODEL_64
 #	define GLM_MODEL	GLM_MODEL_64
-#elif defined(__i386__) || defined(__ppc__)
+#elif defined(__ILP32__)
 #	define GLM_MODEL	GLM_MODEL_32
 #	define GLM_MODEL	GLM_MODEL_32
 #else
 #else
-#	define GLM_MODEL	GLM_MODEL_32
+#	error "Architecture must be either 32 or 64-bits"
 #endif//
 #endif//
 
 
 #if !defined(GLM_MODEL) && GLM_COMPILER != 0
 #if !defined(GLM_MODEL) && GLM_COMPILER != 0