Compiler Support - x86 pie vs no-flags (fixed) Local global variables and functions are similar to fixed External global variables and functions are the same as pic When compiled with -fpie: ... add $0x3,%ebx R_386_GOTPC _GLOBAL_OFFSET_TABLE_ ... int x = local_global_func(); call 33 R_386_PC32 local_global_func ... local_global_var = 0x20; movl $0x20,0x0(%ebx) R_386_GOTOFF local_global_var When compiled with no flags (fixed): ... ... int x = local_global_func(); call 23 R_386_PC32 local_global_func ... local_global_var = 0x20; movl $0x20,0x0 R_386_32 local_global_var