// and non-executable segments.
//
// TODO Enable this technique on all targets.
- bool enable = config->emachine == EM_386 ||
- config->emachine == EM_AARCH64 ||
- config->emachine == EM_ARM || config->emachine == EM_PPC ||
- config->emachine == EM_PPC64;
+ bool enable =
+ config->emachine != EM_HEXAGON && config->emachine != EM_MIPS &&
+ config->emachine != EM_RISCV && config->emachine != EM_X86_64;
if (!enable || (config->zSeparateCode && prev &&
(prev->p_flags & PF_X) != (p->p_flags & PF_X)))
# linker.
# CHECK: Relocations [
# CHECK: .rela.dyn {
-# CHECK-NEXT: R_AMDGPU_RELATIVE64 - 0x3008
+# CHECK-NEXT: R_AMDGPU_RELATIVE64 - 0x3928
# CHECK-NEXT: R_AMDGPU_ABS64 common_var0 0x0
# CHECK-NEXT: R_AMDGPU_ABS64 common_var1 0x0
# CHECK-NEXT: R_AMDGPU_ABS64 common_var2 0x0
# CHECK-NEXT: }
# CHECK-NEXT: ]
-# NM: 0000000000003010 B common_var0
-# NM: 0000000000003410 B common_var1
-# NM: 0000000000003810 B common_var2
-# NM: 0000000000003008 d temp2
+# NM: 0000000000003930 B common_var0
+# NM: 0000000000003d30 B common_var1
+# NM: 0000000000004130 B common_var2
+# NM: 0000000000003928 d temp2
-# temp2 - foo = 0x3008-0x768 = 0x28a0
+# temp2 - foo = 0x3928-0x768 = 0x31c0
# HEX: section '.rodata':
-# HEX-NEXT: 0x00000768 a0280000 00000000
+# HEX-NEXT: 0x00000768 c0310000 00000000
# common_var2+4, common_var1+8, and common_var0+12.
# HEX: section 'nonalloc':
-# HEX-NEXT: 0x00000000 00000000 14380000 00000000 18340000
-# HEX-NEXT: 0x00000010 00000000 1c300000
+# HEX-NEXT: 0x00000000 00000000 34410000 00000000 383d0000
+# HEX-NEXT: 0x00000010 00000000 3c390000
# CHECK-NEXT: Version: 1
# CHECK-NEXT: Entry: [[ENTRY:0x[0-9A-F]+]]
# CHECK-NEXT: ProgramHeaderOffset: 0x40
-# CHECK-NEXT: SectionHeaderOffset: 0x100080
+# CHECK-NEXT: SectionHeaderOffset: 0x1A0
# CHECK-NEXT: Flags [ (0x0)
# CHECK-NEXT: ]
# CHECK-NEXT: HeaderSize: 64
# CHECK-NEXT: SHF_ALLOC (0x2)
# CHECK-NEXT: SHF_EXECINSTR (0x4)
# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x200000
-# CHECK-NEXT: Offset: 0x100000
+# CHECK-NEXT: Address: 0x200120
+# CHECK-NEXT: Offset: 0x120
# CHECK-NEXT: Size: 12
# CHECK-NEXT: Link: 0
# CHECK-NEXT: Info: 0
# CHECK-NEXT: SHF_STRINGS (0x20)
# CHECK-NEXT: ]
# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x10000C
+# CHECK-NEXT: Offset: 0x12C
# CHECK-NEXT: Size: 8
# CHECK-NEXT: Link: 0
# CHECK-NEXT: Info: 0
# CHECK-NEXT: Flags [ (0x0)
# CHECK-NEXT: ]
# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x100018
+# CHECK-NEXT: Offset: 0x138
# CHECK-NEXT: Size: 48
# CHECK-NEXT: Link: 5
# CHECK-NEXT: Info: 1
# CHECK-NEXT: Flags [ (0x0)
# CHECK-NEXT: ]
# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x100048
+# CHECK-NEXT: Offset: 0x168
# CHECK-NEXT: Size: 42
# CHECK-NEXT: Link: 0
# CHECK-NEXT: Info: 0
# CHECK-NEXT: Flags [ (0x0)
# CHECK-NEXT: ]
# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x100072
+# CHECK-NEXT: Offset: 0x192
# CHECK-NEXT: Size: 8
# CHECK-NEXT: Link: 0
# CHECK-NEXT: Info: 0
# CHECK-NEXT: ProgramHeader {
# CHECK-NEXT: Type: PT_PHDR (0x6)
# CHECK-NEXT: Offset: 0x40
-# CHECK-NEXT: VirtualAddress: 0x100040
-# CHECK-NEXT: PhysicalAddress: 0x100040
+# CHECK-NEXT: VirtualAddress: 0x200040
+# CHECK-NEXT: PhysicalAddress: 0x200040
# CHECK-NEXT: FileSize: 224
# CHECK-NEXT: MemSize: 224
# CHECK-NEXT: Flags [ (0x4)
# CHECK-NEXT: ProgramHeader {
# CHECK-NEXT: Type: PT_LOAD (0x1)
# CHECK-NEXT: Offset: 0x0
-# CHECK-NEXT: VirtualAddress: 0x100000
-# CHECK-NEXT: PhysicalAddress: 0x100000
+# CHECK-NEXT: VirtualAddress: 0x200000
+# CHECK-NEXT: PhysicalAddress: 0x200000
# CHECK-NEXT: FileSize: 288
# CHECK-NEXT: MemSize: 288
# CHECK-NEXT: Flags [
# CHECK-NEXT: }
# CHECK-NEXT: ProgramHeader {
# CHECK-NEXT: Type: PT_LOAD (0x1)
-# CHECK-NEXT: Offset: 0x100000
-# CHECK-NEXT: VirtualAddress: 0x200000
-# CHECK-NEXT: PhysicalAddress: 0x200000
+# CHECK-NEXT: Offset: 0x120
+# CHECK-NEXT: VirtualAddress: 0x200120
+# CHECK-NEXT: PhysicalAddress: 0x200120
# CHECK-NEXT: FileSize: 12
# CHECK-NEXT: MemSize: 12
# CHECK-NEXT: Flags [ (0x5)