diff options
Diffstat (limited to 'meta/recipes-core')
-rw-r--r-- | meta/recipes-core/glibc/ldconfig-native-2.12.1/add-64-bit-flag-for-ELF64-entries.patch | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/meta/recipes-core/glibc/ldconfig-native-2.12.1/add-64-bit-flag-for-ELF64-entries.patch b/meta/recipes-core/glibc/ldconfig-native-2.12.1/add-64-bit-flag-for-ELF64-entries.patch index a9af110623..f4e38d4256 100644 --- a/meta/recipes-core/glibc/ldconfig-native-2.12.1/add-64-bit-flag-for-ELF64-entries.patch +++ b/meta/recipes-core/glibc/ldconfig-native-2.12.1/add-64-bit-flag-for-ELF64-entries.patch | |||
@@ -64,7 +64,7 @@ index 0bf0de3..6e87afc 100644 | |||
64 | #undef check_ptr | 64 | #undef check_ptr |
65 | #define check_ptr(ptr) \ | 65 | #define check_ptr(ptr) \ |
66 | do \ | 66 | do \ |
67 | @@ -290,6 +295,35 @@ process_elf_file64 (const char *file_name, const char *lib, int *flag, | 67 | @@ -290,6 +295,48 @@ process_elf_file64 (const char *file_name, const char *lib, int *flag, |
68 | libc5/libc6. */ | 68 | libc5/libc6. */ |
69 | *flag = FLAG_ELF; | 69 | *flag = FLAG_ELF; |
70 | 70 | ||
@@ -73,23 +73,36 @@ index 0bf0de3..6e87afc 100644 | |||
73 | + switch (elf_header->e_machine) | 73 | + switch (elf_header->e_machine) |
74 | + { | 74 | + { |
75 | + case EM_IA_64: | 75 | + case EM_IA_64: |
76 | + *flag |= FLAG_IA64_LIB64; | 76 | + /* Intel 64bit libraries are always libc.so.6+. */ |
77 | + /* see sysdeps/unix/sysv/linux/ia64/readelflib.c */ | ||
78 | + *flag |= FLAG_IA64_LIB64|FLAG_ELF_LIBC6; | ||
77 | + break; | 79 | + break; |
78 | + case EM_X86_64: | 80 | + case EM_X86_64: |
79 | + *flag |= FLAG_X8664_LIB64; | 81 | + /* X86-64 64bit libraries are always libc.so.6+. */ |
82 | + /* see sysdeps/unix/sysv/linux/i386/readelflib.c */ | ||
83 | + *flag |= FLAG_X8664_LIB64|FLAG_ELF_LIBC6; | ||
80 | + break; | 84 | + break; |
81 | + case EM_S390: | 85 | + case EM_S390: |
82 | + *flag |= FLAG_S390_LIB64; | 86 | + /* S/390 64bit libraries are always libc.so.6+. */ |
87 | + /* see sysdeps/unix/sysv/linux/s390/readelflib.c */ | ||
88 | + *flag |= FLAG_S390_LIB64|FLAG_ELF_LIBC6; | ||
83 | + break; | 89 | + break; |
84 | + case EM_PPC64: | 90 | + case EM_PPC64: |
85 | + *flag |= FLAG_POWERPC_LIB64; | 91 | + /* PowerPC 64bit libraries are always libc.so.6+. */ |
92 | + /* see sysdeps/unix/sysv/linux/powerpc/readelflib.c */ | ||
93 | + *flag |= FLAG_POWERPC_LIB64|FLAG_ELF_LIBC6; | ||
86 | + break; | 94 | + break; |
87 | + case EM_MIPS: | 95 | + case EM_MIPS: |
88 | + case EM_MIPS_RS3_LE: | 96 | + case EM_MIPS_RS3_LE: |
89 | + *flag |= FLAG_MIPS64_LIBN64; | 97 | + /* n64 libraries are always libc.so.6+. */ |
98 | + /* NOTE: This does not correctly distinguish NAN2008 binaries and is possibly broken */ | ||
99 | + /* see sysdeps/unix/sysv/linux/mips/readelflib.c */ | ||
100 | + *flag |= FLAG_MIPS64_LIBN64|FLAG_ELF_LIBC6; | ||
90 | + break; | 101 | + break; |
91 | + case EM_AARCH64: | 102 | + case EM_AARCH64: |
92 | + *flag |= FLAG_AARCH64_LIB64; | 103 | + /* AArch64 libraries are always libc.so.6+. */ |
104 | + /* see sysdeps/unix/sysv/linux/arm/readelflib.c */ | ||
105 | + *flag |= FLAG_AARCH64_LIB64|FLAG_ELF_LIBC6; | ||
93 | + break; | 106 | + break; |
94 | + default: | 107 | + default: |
95 | + error(0, 0, "%s is a 64-bit ELF for unknown machine %lx\n", | 108 | + error(0, 0, "%s is a 64-bit ELF for unknown machine %lx\n", |