From 2c268dd058ef8e46839ffb841b3e6222a1f6a6de Mon Sep 17 00:00:00 2001 From: Hansruedi Patzen Date: Mon, 24 Sep 2018 20:38:07 +0200 Subject: Bug 512822: "Launch failed. Binary not found" even after building Builds upon https://git.eclipse.org/r/#/c/92129/ but also uses the hints to only read the file if necessary. I further reverted some of the changes done with the patch for 'Bug 510987 - Properly support PIE executables as build output' since the binary will now be seen as an executable anyway. Change-Id: I075fef67f3b101ddbc64786dcbc2ca41cc114e25 Signed-off-by: Hansruedi Patzen --- .../resources/elf/inside_hints/Makefile | 28 +++++++++ .../resources/elf/inside_hints/be32 | Bin 0 -> 200 bytes .../resources/elf/inside_hints/be32.asm | 68 +++++++++++++++++++++ .../resources/elf/inside_hints/be32lib | Bin 0 -> 88 bytes .../resources/elf/inside_hints/be32lib.asm | 35 +++++++++++ .../resources/elf/inside_hints/be64 | Bin 0 -> 272 bytes .../resources/elf/inside_hints/be64.asm | 60 ++++++++++++++++++ .../resources/elf/inside_hints/be64lib | Bin 0 -> 128 bytes .../resources/elf/inside_hints/be64lib.asm | 36 +++++++++++ .../resources/elf/inside_hints/le32 | Bin 0 -> 200 bytes .../resources/elf/inside_hints/le32.asm | 68 +++++++++++++++++++++ .../resources/elf/inside_hints/le32lib | Bin 0 -> 88 bytes .../resources/elf/inside_hints/le32lib.asm | 35 +++++++++++ .../resources/elf/inside_hints/le64 | Bin 0 -> 272 bytes .../resources/elf/inside_hints/le64.asm | 60 ++++++++++++++++++ .../resources/elf/inside_hints/le64lib | Bin 0 -> 128 bytes .../resources/elf/inside_hints/le64lib.asm | 36 +++++++++++ .../resources/elf/outside_hints/Makefile | 28 +++++++++ .../resources/elf/outside_hints/be32 | Bin 0 -> 200 bytes .../resources/elf/outside_hints/be32.asm | 68 +++++++++++++++++++++ .../resources/elf/outside_hints/be32lib | Bin 0 -> 184 bytes .../resources/elf/outside_hints/be32lib.asm | 65 ++++++++++++++++++++ .../resources/elf/outside_hints/be64 | Bin 0 -> 272 bytes .../resources/elf/outside_hints/be64.asm | 60 ++++++++++++++++++ .../resources/elf/outside_hints/be64lib | Bin 0 -> 240 bytes .../resources/elf/outside_hints/be64lib.asm | 56 +++++++++++++++++ .../resources/elf/outside_hints/le32 | Bin 0 -> 200 bytes .../resources/elf/outside_hints/le32.asm | 68 +++++++++++++++++++++ .../resources/elf/outside_hints/le32lib | Bin 0 -> 184 bytes .../resources/elf/outside_hints/le32lib.asm | 65 ++++++++++++++++++++ .../resources/elf/outside_hints/le64 | Bin 0 -> 272 bytes .../resources/elf/outside_hints/le64.asm | 60 ++++++++++++++++++ .../resources/elf/outside_hints/le64lib | Bin 0 -> 240 bytes .../resources/elf/outside_hints/le64lib.asm | 56 +++++++++++++++++ 34 files changed, 952 insertions(+) create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/Makefile create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/Makefile create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64 create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64.asm create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib create mode 100644 core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib.asm (limited to 'core/org.eclipse.cdt.core.tests/resources') diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/Makefile b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/Makefile new file mode 100644 index 00000000000..215ec1c176d --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/Makefile @@ -0,0 +1,28 @@ +all: be32 be32lib be64 be64lib le32 le32lib le64 le64lib + +be32: be32.asm + nasm be32.asm + +be32lib: be32lib.asm + nasm be32lib.asm + +be64: be64.asm + nasm be64.asm + +be64lib: be64lib.asm + nasm be64lib.asm + +le32: le32.asm + nasm le32.asm + +le32lib: le32lib.asm + nasm le32lib.asm + +le64: le64.asm + nasm le64.asm + +le64lib: le64lib.asm + nasm le64lib.asm + +clean: + rm -f be32 be32lib be64 be64lib le32 le32lib le64 le64lib \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32 b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32 new file mode 100644 index 00000000000..030133e7db4 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32.asm new file mode 100644 index 00000000000..7caed300ff2 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32.asm @@ -0,0 +1,68 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x0300; e_machine x86 +dd 0x01000000; e_version +dd 0xC8000000; e_entry +dd 0x34000000; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x3400; e_ehsize +dw 0x2000; e_phentsize +dw 0x0400; e_phnum +dw 0x2800; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x06000000; p_type: PT_PHDR +dd 0x34000000; p_offset +dd 0x34000000; p_vaddr +dd 0x34000000; p_paddr +dd 0x60000000; p_filesz +dd 0x60000000; p_memsz +dd 0x04000000; p_flags, 32 bit +dd 0x04000000; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +; Program Header 3 +dd 0x03000000; p_type: PT_INTERP +dd 0xB4000000; p_offset +dd 0xB4000000; p_vaddr +dd 0xB4000000; p_paddr +dd 0x13000000; p_filesz +dd 0x13000000; p_memsz +dd 0x04000000; p_flags, 32 bit +dd 0x01000000; p_align + +; Program Header 4 +dd 0x01000000; p_type: PT_LOAD +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0xB4000000; p_filesz +dd 0xB4000000; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00010000; p_align + +db '/', 'l', 'i', 'b', '/', 'l', 'd', '-' +db 'l', 'i', 'n', 'u', 'x', '.', 's', 'o' +db '.', '2', 0x00 +db 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib new file mode 100644 index 00000000000..cdb8cbd4537 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib.asm new file mode 100644 index 00000000000..1e5e9594af8 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be32lib.asm @@ -0,0 +1,35 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x0300; e_machine x86 +dd 0x01000000; e_version +dd 0x58000000; e_entry +dd 0x34000000; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x3400; e_ehsize +dw 0x2000; e_phentsize +dw 0x0100; e_phnum +dw 0x2800; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +dd 0x03000000; random value \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64 b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64 new file mode 100644 index 00000000000..f8b071a3e7c Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64.asm new file mode 100644 index 00000000000..860bedf6925 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64.asm @@ -0,0 +1,60 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x3E00; e_machine x86-64 +dd 0x01000000; e_version +dq 0x1001000000000000; e_entry +dq 0x4000000000000000; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x4000; e_ehsize +dw 0x3800; e_phentsize +dw 0x0300; e_phnum +dw 0x4000; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x06000000; p_type: PT_PHDR +dd 0x04000000; p_flags, x86-64 only +dq 0x4000000000000000; p_offset +dq 0x4000000000000000; p_vaddr +dq 0x4000000000000000; p_paddr +dq 0xB000000000000000; p_filesz +dq 0xB000000000000000; p_memsz +dq 0x0800000000000000; p_align + +; Program Header 2 +dd 0x03000000; p_type: PT_INTERP +dd 0x04000000; p_flags, x86-64 only +dq 0xE800000000000000; p_offset +dq 0xE800000000000000; p_vaddr +dq 0xE800000000000000; p_paddr +dq 0x1C00000000000000; p_filesz +dq 0x1C00000000000000; p_memsz +dq 0x0100000000000000; p_align + +; Program Header 3 +dd 0x01000000; p_type: PT_LOAD +dd 0x04000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0xF000000000000000; p_filesz +dq 0xF000000000000000; p_memsz +dq 0x0001000000000000; p_align + +db '/', 'l', 'i', 'b', '6', '4', '/', 'l' +db 'd', '-', 'l', 'i', 'n', 'u', 'x', '-' +db 'x', '8', '6', '-', '6', '4', '.', 's' +db 'o', '.', '2', 0x00 +dd 0x00; pad +dq 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib new file mode 100644 index 00000000000..d79a4355fb8 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib.asm new file mode 100644 index 00000000000..c1d2cabb441 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/be64lib.asm @@ -0,0 +1,36 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x3E00; e_machine x86-64 +dd 0x01000000; e_version +dq 0x8000000000000000; e_entry +dq 0x4000000000000000; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x4000; e_ehsize +dw 0x3800; e_phentsize +dw 0x0100; e_phnum +dw 0x4000; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +dd 0x03000000; random value +dd 0x00000000; pad; \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32 b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32 new file mode 100644 index 00000000000..0c8c46ba878 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32.asm new file mode 100644 index 00000000000..f6c5c1f17b9 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32.asm @@ -0,0 +1,68 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x0003; e_machine x86 +dd 0x00000001; e_version +dd 0x000000C8; e_entry +dd 0x00000034; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x0034; e_ehsize +dw 0x0020; e_phentsize +dw 0x0004; e_phnum +dw 0x0028; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000006; p_type: PT_PHDR +dd 0x00000034; p_offset +dd 0x00000034; p_vaddr +dd 0x00000034; p_paddr +dd 0x00000060; p_filesz +dd 0x00000060; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000004; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +; Program Header 3 +dd 0x00000003; p_type: PT_INTERP +dd 0x000000B4; p_offset +dd 0x000000B4; p_vaddr +dd 0x000000B4; p_paddr +dd 0x00000013; p_filesz +dd 0x00000013; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000001; p_align + +; Program Header 4 +dd 0x00000001; p_type: PT_LOAD +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x000000B4; p_filesz +dd 0x000000B4; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000100; p_align + +db '/', 'l', 'i', 'b', '/', 'l', 'd', '-' +db 'l', 'i', 'n', 'u', 'x', '.', 's', 'o' +db '.', '2', 0x00 +db 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib new file mode 100644 index 00000000000..f290fe9abe6 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib.asm new file mode 100644 index 00000000000..d8801c4f4f3 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le32lib.asm @@ -0,0 +1,35 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x0003; e_machine x86 +dd 0x00000001; e_version +dd 0x00000058; e_entry +dd 0x00000034; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x0034; e_ehsize +dw 0x0020; e_phentsize +dw 0x0001; e_phnum +dw 0x0028; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +dd 0x00000003; random value \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64 b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64 new file mode 100644 index 00000000000..882bd7e5e89 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64.asm new file mode 100644 index 00000000000..2741ade6118 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64.asm @@ -0,0 +1,60 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x003E; e_machine x86-64 +dd 0x00000001; e_version +dq 0x0000000000000110; e_entry +dq 0x0000000000000040; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x0040; e_ehsize +dw 0x0038; e_phentsize +dw 0x0003; e_phnum +dw 0x0040; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000006; p_type: PT_PHDR +dd 0x00000004; p_flags, x86-64 only +dq 0x0000000000000040; p_offset +dq 0x0000000000000040; p_vaddr +dq 0x0000000000000040; p_paddr +dq 0x00000000000000B0; p_filesz +dq 0x00000000000000B0; p_memsz +dq 0x0000000000000008; p_align + +; Program Header 2 +dd 0x00000003; p_type: PT_INTERP +dd 0x00000004; p_flags, x86-64 only +dq 0x00000000000000E8; p_offset +dq 0x00000000000000E8; p_vaddr +dq 0x00000000000000E8; p_paddr +dq 0x000000000000001C; p_filesz +dq 0x000000000000001C; p_memsz +dq 0x0000000000000001; p_align + +; Program Header 3 +dd 0x00000001; p_type: PT_LOAD +dd 0x00000004; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x00000000000000F0; p_filesz +dq 0x00000000000000F0; p_memsz +dq 0x0000000000000100; p_align + +db '/', 'l', 'i', 'b', '6', '4', '/', 'l' +db 'd', '-', 'l', 'i', 'n', 'u', 'x', '-' +db 'x', '8', '6', '-', '6', '4', '.', 's' +db 'o', '.', '2', 0x00 +dd 0x00; pad +dq 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib new file mode 100644 index 00000000000..de4071e8660 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib.asm new file mode 100644 index 00000000000..af68aa5ef3a --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/inside_hints/le64lib.asm @@ -0,0 +1,36 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x003E; e_machine x86-64 +dd 0x00000001; e_version +dq 0x0000000000000080; e_entry +dq 0x0000000000000040; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x0040; e_ehsize +dw 0x0038; e_phentsize +dw 0x0001; e_phnum +dw 0x0040; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +dd 0x00000003; random value +dd 0x00000000; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/Makefile b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/Makefile new file mode 100644 index 00000000000..215ec1c176d --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/Makefile @@ -0,0 +1,28 @@ +all: be32 be32lib be64 be64lib le32 le32lib le64 le64lib + +be32: be32.asm + nasm be32.asm + +be32lib: be32lib.asm + nasm be32lib.asm + +be64: be64.asm + nasm be64.asm + +be64lib: be64lib.asm + nasm be64lib.asm + +le32: le32.asm + nasm le32.asm + +le32lib: le32lib.asm + nasm le32lib.asm + +le64: le64.asm + nasm le64.asm + +le64lib: le64lib.asm + nasm le64lib.asm + +clean: + rm -f be32 be32lib be64 be64lib le32 le32lib le64 le64lib \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32 b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32 new file mode 100644 index 00000000000..4b2d957f5a5 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32.asm new file mode 100644 index 00000000000..bc53c829a30 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32.asm @@ -0,0 +1,68 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x0300; e_machine x86 +dd 0x01000000; e_version +dd 0xC8000000; e_entry +dd 0x34000000; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x3400; e_ehsize +dw 0x2000; e_phentsize +dw 0x0400; e_phnum +dw 0x2800; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x06000000; p_type: PT_PHDR +dd 0x34000000; p_offset +dd 0x34000000; p_vaddr +dd 0x34000000; p_paddr +dd 0x60000000; p_filesz +dd 0x60000000; p_memsz +dd 0x04000000; p_flags, 32 bit +dd 0x04000000; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +; Program Header 3 +dd 0x01000000; p_type: PT_LOAD +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0xB4000000; p_filesz +dd 0xB4000000; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00010000; p_align + +; Program Header 4 +dd 0x03000000; p_type: PT_INTERP +dd 0xB4000000; p_offset +dd 0xB4000000; p_vaddr +dd 0xB4000000; p_paddr +dd 0x13000000; p_filesz +dd 0x13000000; p_memsz +dd 0x04000000; p_flags, 32 bit +dd 0x01000000; p_align + +db '/', 'l', 'i', 'b', '/', 'l', 'd', '-' +db 'l', 'i', 'n', 'u', 'x', '.', 's', 'o' +db '.', '2', 0x00 +db 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib new file mode 100644 index 00000000000..71831ef4379 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib.asm new file mode 100644 index 00000000000..7a9243c3da3 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be32lib.asm @@ -0,0 +1,65 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x0300; e_machine x86 +dd 0x01000000; e_version +dd 0xB8000000; e_entry +dd 0x34000000; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x3400; e_ehsize +dw 0x2000; e_phentsize +dw 0x0400; e_phnum +dw 0x2800; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x06000000; p_type: PT_PHDR +dd 0x34000000; p_offset +dd 0x34000000; p_vaddr +dd 0x34000000; p_paddr +dd 0x60000000; p_filesz +dd 0x60000000; p_memsz +dd 0x04000000; p_flags, 32 bit +dd 0x04000000; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +; Program Header 3 +dd 0x01000000; p_type: PT_LOAD +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0xB4000000; p_filesz +dd 0xB4000000; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00010000; p_align + +; Program Header 4 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +dd 0x03000000; random value \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64 b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64 new file mode 100644 index 00000000000..f583a24942f Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64.asm new file mode 100644 index 00000000000..77710a334d5 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64.asm @@ -0,0 +1,60 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x3E00; e_machine x86-64 +dd 0x01000000; e_version +dq 0x1001000000000000; e_entry +dq 0x4000000000000000; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x4000; e_ehsize +dw 0x3800; e_phentsize +dw 0x0300; e_phnum +dw 0x4000; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x06000000; p_type: PT_PHDR +dd 0x04000000; p_flags, x86-64 only +dq 0x4000000000000000; p_offset +dq 0x4000000000000000; p_vaddr +dq 0x4000000000000000; p_paddr +dq 0xB000000000000000; p_filesz +dq 0xB000000000000000; p_memsz +dq 0x0800000000000000; p_align + +; Program Header 2 +dd 0x01000000; p_type: PT_LOAD +dd 0x04000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0xF000000000000000; p_filesz +dq 0xF000000000000000; p_memsz +dq 0x0001000000000000; p_align + +; Program Header 3 +dd 0x03000000; p_type: PT_INTERP +dd 0x04000000; p_flags, x86-64 only +dq 0xE800000000000000; p_offset +dq 0xE800000000000000; p_vaddr +dq 0xE800000000000000; p_paddr +dq 0x1C00000000000000; p_filesz +dq 0x1C00000000000000; p_memsz +dq 0x0100000000000000; p_align + +db '/', 'l', 'i', 'b', '6', '4', '/', 'l' +db 'd', '-', 'l', 'i', 'n', 'u', 'x', '-' +db 'x', '8', '6', '-', '6', '4', '.', 's' +db 'o', '.', '2', 0x00 +dd 0x00; pad +dq 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib new file mode 100644 index 00000000000..eae3d51ed9c Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib.asm new file mode 100644 index 00000000000..a0e881f8ee0 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/be64lib.asm @@ -0,0 +1,56 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x02; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0300; e_type: ET_DYN +dw 0x3E00; e_machine x86-64 +dd 0x01000000; e_version +dq 0x1001000000000000; e_entry +dq 0x4000000000000000; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x4000; e_ehsize +dw 0x3800; e_phentsize +dw 0x0300; e_phnum +dw 0x4000; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +; Program Header 3 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +dd 0x03000000; random value +dd 0x00000000; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32 b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32 new file mode 100644 index 00000000000..42a5f2b761f Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32.asm new file mode 100644 index 00000000000..c620e958fb3 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32.asm @@ -0,0 +1,68 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x0003; e_machine x86 +dd 0x00000001; e_version +dd 0x000000C8; e_entry +dd 0x00000034; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x0034; e_ehsize +dw 0x0020; e_phentsize +dw 0x0004; e_phnum +dw 0x0028; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000006; p_type: PT_PHDR +dd 0x00000034; p_offset +dd 0x00000034; p_vaddr +dd 0x00000034; p_paddr +dd 0x00000060; p_filesz +dd 0x00000060; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000004; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +; Program Header 3 +dd 0x00000001; p_type: PT_LOAD +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x000000B4; p_filesz +dd 0x000000B4; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000100; p_align + +; Program Header 4 +dd 0x00000003; p_type: PT_INTERP +dd 0x000000B4; p_offset +dd 0x000000B4; p_vaddr +dd 0x000000B4; p_paddr +dd 0x00000013; p_filesz +dd 0x00000013; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000001; p_align + +db '/', 'l', 'i', 'b', '/', 'l', 'd', '-' +db 'l', 'i', 'n', 'u', 'x', '.', 's', 'o' +db '.', '2', 0x00 +db 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib new file mode 100644 index 00000000000..bf77aea1196 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib.asm new file mode 100644 index 00000000000..831a6ef5a26 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le32lib.asm @@ -0,0 +1,65 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x01; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x0003; e_machine x86 +dd 0x00000001; e_version +dd 0x000000B8; e_entry +dd 0x00000034; e_phoff +dd 0x00000000; e_shoff +dd 0x00000000; e_flags +dw 0x0034; e_ehsize +dw 0x0020; e_phentsize +dw 0x0004; e_phnum +dw 0x0028; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000006; p_type: PT_PHDR +dd 0x00000034; p_offset +dd 0x00000034; p_vaddr +dd 0x00000034; p_paddr +dd 0x00000060; p_filesz +dd 0x00000060; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000004; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +; Program Header 3 +dd 0x00000001; p_type: PT_LOAD +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x000000B4; p_filesz +dd 0x000000B4; p_memsz +dd 0x00000004; p_flags, 32 bit +dd 0x00000100; p_align + +; Program Header 4 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_offset +dd 0x00000000; p_vaddr +dd 0x00000000; p_paddr +dd 0x00000000; p_filesz +dd 0x00000000; p_memsz +dd 0x00000000; p_flags, 32 bit +dd 0x00000000; p_align + +dd 0x00000003; random value \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64 b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64 new file mode 100644 index 00000000000..21859301622 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64 differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64.asm new file mode 100644 index 00000000000..b13876a40af --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64.asm @@ -0,0 +1,60 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x003E; e_machine x86-64 +dd 0x00000001; e_version +dq 0x0000000000000110; e_entry +dq 0x0000000000000040; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x0040; e_ehsize +dw 0x0038; e_phentsize +dw 0x0003; e_phnum +dw 0x0040; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000006; p_type: PT_PHDR +dd 0x00000004; p_flags, x86-64 only +dq 0x0000000000000040; p_offset +dq 0x0000000000000040; p_vaddr +dq 0x0000000000000040; p_paddr +dq 0x00000000000000B0; p_filesz +dq 0x00000000000000B0; p_memsz +dq 0x0000000000000008; p_align + +; Program Header 2 +dd 0x00000001; p_type: PT_LOAD +dd 0x00000004; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x00000000000000F0; p_filesz +dq 0x00000000000000F0; p_memsz +dq 0x0000000000000100; p_align + +; Program Header 3 +dd 0x00000003; p_type: PT_INTERP +dd 0x00000004; p_flags, x86-64 only +dq 0x00000000000000E8; p_offset +dq 0x00000000000000E8; p_vaddr +dq 0x00000000000000E8; p_paddr +dq 0x000000000000001C; p_filesz +dq 0x000000000000001C; p_memsz +dq 0x0000000000000001; p_align + +db '/', 'l', 'i', 'b', '6', '4', '/', 'l' +db 'd', '-', 'l', 'i', 'n', 'u', 'x', '-' +db 'x', '8', '6', '-', '6', '4', '.', 's' +db 'o', '.', '2', 0x00 +dd 0x00; pad +dq 0x00; pad \ No newline at end of file diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib new file mode 100644 index 00000000000..4cd92f1ce22 Binary files /dev/null and b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib differ diff --git a/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib.asm b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib.asm new file mode 100644 index 00000000000..824a0d97f72 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/resources/elf/outside_hints/le64lib.asm @@ -0,0 +1,56 @@ +; ELF Header +db 0x7F, 'E', 'L', 'F'; Magic start +db 0x02; EI_CLASS: 1: 32 bit, 2: 64 bit +db 0x01; EI_DATA: 1: LE, 2: BE +db 0x01; EI_VERSION: 1: Original ELF +db 0x00; EI_OSABI: 00: System-V, 03: Linux, mostly 0x00 regardless +db 0x00; EI_ABIVERSION: mostly unused therefore 0x00 +db 0x00; EI_PAD +dw 0x0000; EI_PAD +dd 0x00000000; EI_PAD +dw 0x0003; e_type: ET_DYN +dw 0x003E; e_machine x86-64 +dd 0x00000001; e_version +dq 0x0000000000000110; e_entry +dq 0x0000000000000040; e_phoff +dq 0x0000000000000000; e_shoff +dd 0x00000000; e_flags +dw 0x0040; e_ehsize +dw 0x0038; e_phentsize +dw 0x0003; e_phnum +dw 0x0040; e_shentsize +dw 0x0000; e_shnum +dw 0x0000; e_shstrndx + +; Program Header 1 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +; Program Header 2 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +; Program Header 3 +dd 0x00000000; p_type: PT_NULL +dd 0x00000000; p_flags, x86-64 only +dq 0x0000000000000000; p_offset +dq 0x0000000000000000; p_vaddr +dq 0x0000000000000000; p_paddr +dq 0x0000000000000000; p_filesz +dq 0x0000000000000000; p_memsz +dq 0x0000000000000000; p_align + +dd 0x00000003; random value +dd 0x00000000; pad \ No newline at end of file -- cgit v1.2.3