--- a/src/Ma2Asm/x86_64_any.c
+++ b/src/Ma2Asm/x86_64_any.c
@@ -210,8 +210,8 @@
   strcpy(asm_reg_cp, Off_Reg_Bank(MAP_OFFSET_CP));
 #endif
 
-#ifdef M_x86_64_darwin
-  pic_code = 1;			/* NB: on darwin everything is PIC code */
+#if defined(M_x86_64_darwin) || defined(M_x86_64_bsd) || defined(M_x86_64_linux) 
+  pic_code = 1;			/* NB: on darwin and BSD everything is PIC code, last gcc 6 needs this for linux */
 #elif defined(_WIN32)
   pic_code = 0;			/* NB: on MinGW nothing is needed for PIC code */
 #endif
