diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-10-02 07:50:49 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-10-02 07:50:49 +0000 |
commit | cb1ce7b9748974aab2f6246ecb9bfb8388a1009b (patch) | |
tree | f0ad90a45be921479cbd3663f487a365888afae2 | |
parent | fa17c4b94951374c919c6a099db9dcfcc2487c19 (diff) | |
download | busybox-w32-cb1ce7b9748974aab2f6246ecb9bfb8388a1009b.tar.gz busybox-w32-cb1ce7b9748974aab2f6246ecb9bfb8388a1009b.tar.bz2 busybox-w32-cb1ce7b9748974aab2f6246ecb9bfb8388a1009b.zip |
reorder arches into alphabetical order
-rw-r--r-- | modutils/insmod.c | 399 |
1 files changed, 201 insertions, 198 deletions
diff --git a/modutils/insmod.c b/modutils/insmod.c index d35e08d4e..e6432ef16 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c | |||
@@ -143,6 +143,16 @@ extern int insmod_ng_main( int argc, char **argv); | |||
143 | #endif | 143 | #endif |
144 | #endif | 144 | #endif |
145 | 145 | ||
146 | /* H8/300 */ | ||
147 | #if defined(__H8300H__) || defined(__H8300S__) | ||
148 | #define MATCH_MACHINE(x) (x == EM_H8_300) | ||
149 | #define SHT_RELM SHT_RELA | ||
150 | #define Elf32_RelM Elf32_Rela | ||
151 | #define ELFCLASSM ELFCLASS32 | ||
152 | #define CONFIG_USE_SINGLE | ||
153 | #define SYMBOL_PREFIX "_" | ||
154 | #endif | ||
155 | |||
146 | /* PA-RISC / HP-PA */ | 156 | /* PA-RISC / HP-PA */ |
147 | #if defined(__hppa__) | 157 | #if defined(__hppa__) |
148 | #define MATCH_MACHINE(x) (x == EM_PARISC) | 158 | #define MATCH_MACHINE(x) (x == EM_PARISC) |
@@ -156,16 +166,6 @@ extern int insmod_ng_main( int argc, char **argv); | |||
156 | #endif | 166 | #endif |
157 | #endif | 167 | #endif |
158 | 168 | ||
159 | /* H8/300 */ | ||
160 | #if defined(__H8300H__) || defined(__H8300S__) | ||
161 | #define MATCH_MACHINE(x) (x == EM_H8_300) | ||
162 | #define SHT_RELM SHT_RELA | ||
163 | #define Elf32_RelM Elf32_Rela | ||
164 | #define ELFCLASSM ELFCLASS32 | ||
165 | #define CONFIG_USE_SINGLE | ||
166 | #define SYMBOL_PREFIX "_" | ||
167 | #endif | ||
168 | |||
169 | /* x86 */ | 169 | /* x86 */ |
170 | #if defined(__i386__) | 170 | #if defined(__i386__) |
171 | #ifndef EM_486 | 171 | #ifndef EM_486 |
@@ -858,16 +858,17 @@ arch_apply_relocation(struct obj_file *f, | |||
858 | #if defined(CONFIG_USE_PLT_ENTRIES) | 858 | #if defined(CONFIG_USE_PLT_ENTRIES) |
859 | ElfW(Addr) plt = ifile->plt ? ifile->plt->header.sh_addr : 0; | 859 | ElfW(Addr) plt = ifile->plt ? ifile->plt->header.sh_addr : 0; |
860 | unsigned long *ip; | 860 | unsigned long *ip; |
861 | #if defined(CONFIG_USE_PLT_LIST) | 861 | # if defined(CONFIG_USE_PLT_LIST) |
862 | struct arch_list_entry *pe; | 862 | struct arch_list_entry *pe; |
863 | #else | 863 | # else |
864 | struct arch_single_entry *pe; | 864 | struct arch_single_entry *pe; |
865 | #endif | 865 | # endif |
866 | #endif | 866 | #endif |
867 | 867 | ||
868 | switch (ELF_R_TYPE(rel->r_info)) { | 868 | switch (ELF_R_TYPE(rel->r_info)) { |
869 | 869 | ||
870 | #if defined(__arm__) | 870 | #if defined(__arm__) |
871 | |||
871 | case R_ARM_NONE: | 872 | case R_ARM_NONE: |
872 | break; | 873 | break; |
873 | 874 | ||
@@ -896,90 +897,46 @@ arch_apply_relocation(struct obj_file *f, | |||
896 | *loc += v - got; | 897 | *loc += v - got; |
897 | break; | 898 | break; |
898 | 899 | ||
899 | #elif defined(__s390__) | 900 | #elif defined(__cris__) |
900 | case R_390_32: | ||
901 | *(unsigned int *) loc += v; | ||
902 | break; | ||
903 | case R_390_16: | ||
904 | *(unsigned short *) loc += v; | ||
905 | break; | ||
906 | case R_390_8: | ||
907 | *(unsigned char *) loc += v; | ||
908 | break; | ||
909 | |||
910 | case R_390_PC32: | ||
911 | *(unsigned int *) loc += v - dot; | ||
912 | break; | ||
913 | case R_390_PC16DBL: | ||
914 | *(unsigned short *) loc += (v - dot) >> 1; | ||
915 | break; | ||
916 | case R_390_PC16: | ||
917 | *(unsigned short *) loc += v - dot; | ||
918 | break; | ||
919 | |||
920 | case R_390_PLT32: | ||
921 | case R_390_PLT16DBL: | ||
922 | /* find the plt entry and initialize it. */ | ||
923 | assert(isym != NULL); | ||
924 | pe = (struct arch_single_entry *) &isym->pltent; | ||
925 | assert(pe->allocated); | ||
926 | if (pe->inited == 0) { | ||
927 | ip = (unsigned long *)(ifile->plt->contents + pe->offset); | ||
928 | ip[0] = 0x0d105810; /* basr 1,0; lg 1,10(1); br 1 */ | ||
929 | ip[1] = 0x100607f1; | ||
930 | if (ELF_R_TYPE(rel->r_info) == R_390_PLT16DBL) | ||
931 | ip[2] = v - 2; | ||
932 | else | ||
933 | ip[2] = v; | ||
934 | pe->inited = 1; | ||
935 | } | ||
936 | 901 | ||
937 | /* Insert relative distance to target. */ | 902 | case R_CRIS_NONE: |
938 | v = plt + pe->offset - dot; | ||
939 | if (ELF_R_TYPE(rel->r_info) == R_390_PLT32) | ||
940 | *(unsigned int *) loc = (unsigned int) v; | ||
941 | else if (ELF_R_TYPE(rel->r_info) == R_390_PLT16DBL) | ||
942 | *(unsigned short *) loc = (unsigned short) ((v + 2) >> 1); | ||
943 | break; | 903 | break; |
944 | 904 | ||
945 | case R_390_GLOB_DAT: | 905 | case R_CRIS_32: |
946 | case R_390_JMP_SLOT: | 906 | /* CRIS keeps the relocation value in the r_addend field and |
907 | * should not use whats in *loc at all | ||
908 | */ | ||
947 | *loc = v; | 909 | *loc = v; |
948 | break; | 910 | break; |
949 | 911 | ||
950 | case R_390_RELATIVE: | 912 | #elif defined(__H8300H__) || defined(__H8300S__) |
951 | *loc += f->baseaddr; | ||
952 | break; | ||
953 | 913 | ||
954 | case R_390_GOTPC: | 914 | case R_H8_DIR24R8: |
955 | assert(got != 0); | 915 | loc = (ElfW(Addr) *)((ElfW(Addr))loc - 1); |
956 | *(unsigned long *) loc += got - dot; | 916 | *loc = (*loc & 0xff000000) | ((*loc & 0xffffff) + v); |
957 | break; | 917 | break; |
958 | 918 | case R_H8_DIR24A8: | |
959 | case R_390_GOT12: | 919 | *loc += v; |
960 | case R_390_GOT16: | ||
961 | case R_390_GOT32: | ||
962 | assert(isym != NULL); | ||
963 | assert(got != 0); | ||
964 | if (!isym->gotent.inited) | ||
965 | { | ||
966 | isym->gotent.inited = 1; | ||
967 | *(ElfW(Addr) *)(ifile->got->contents + isym->gotent.offset) = v; | ||
968 | } | ||
969 | if (ELF_R_TYPE(rel->r_info) == R_390_GOT12) | ||
970 | *(unsigned short *) loc |= (*(unsigned short *) loc + isym->gotent.offset) & 0xfff; | ||
971 | else if (ELF_R_TYPE(rel->r_info) == R_390_GOT16) | ||
972 | *(unsigned short *) loc += isym->gotent.offset; | ||
973 | else if (ELF_R_TYPE(rel->r_info) == R_390_GOT32) | ||
974 | *(unsigned int *) loc += isym->gotent.offset; | ||
975 | break; | 920 | break; |
976 | 921 | case R_H8_DIR32: | |
977 | #ifndef R_390_GOTOFF32 | 922 | case R_H8_DIR32A16: |
978 | #define R_390_GOTOFF32 R_390_GOTOFF | 923 | *loc += v; |
979 | #endif | 924 | break; |
980 | case R_390_GOTOFF32: | 925 | case R_H8_PCREL16: |
981 | assert(got != 0); | 926 | v -= dot + 2; |
982 | *loc += v - got; | 927 | if ((ElfW(Sword))v > 0x7fff || |
928 | (ElfW(Sword))v < -(ElfW(Sword))0x8000) | ||
929 | ret = obj_reloc_overflow; | ||
930 | else | ||
931 | *(unsigned short *)loc = v; | ||
932 | break; | ||
933 | case R_H8_PCREL8: | ||
934 | v -= dot + 1; | ||
935 | if ((ElfW(Sword))v > 0x7f || | ||
936 | (ElfW(Sword))v < -(ElfW(Sword))0x80) | ||
937 | ret = obj_reloc_overflow; | ||
938 | else | ||
939 | *(unsigned char *)loc = v; | ||
983 | break; | 940 | break; |
984 | 941 | ||
985 | #elif defined(__i386__) | 942 | #elif defined(__i386__) |
@@ -1018,75 +975,6 @@ arch_apply_relocation(struct obj_file *f, | |||
1018 | *loc += v - got; | 975 | *loc += v - got; |
1019 | break; | 976 | break; |
1020 | 977 | ||
1021 | #elif defined(__x86_64__) | ||
1022 | |||
1023 | case R_X86_64_NONE: | ||
1024 | break; | ||
1025 | |||
1026 | case R_X86_64_64: | ||
1027 | *loc += v; | ||
1028 | break; | ||
1029 | |||
1030 | case R_X86_64_32: | ||
1031 | *(unsigned int *) loc += v; | ||
1032 | if (v > 0xffffffff) | ||
1033 | { | ||
1034 | ret = obj_reloc_overflow; /* Kernel module compiled without -mcmodel=kernel. */ | ||
1035 | /* error("Possibly is module compiled without -mcmodel=kernel!"); */ | ||
1036 | } | ||
1037 | break; | ||
1038 | |||
1039 | case R_X86_64_32S: | ||
1040 | *(signed int *) loc += v; | ||
1041 | break; | ||
1042 | |||
1043 | case R_X86_64_16: | ||
1044 | *(unsigned short *) loc += v; | ||
1045 | break; | ||
1046 | |||
1047 | case R_X86_64_8: | ||
1048 | *(unsigned char *) loc += v; | ||
1049 | break; | ||
1050 | |||
1051 | case R_X86_64_PC32: | ||
1052 | *(unsigned int *) loc += v - dot; | ||
1053 | break; | ||
1054 | |||
1055 | case R_X86_64_PC16: | ||
1056 | *(unsigned short *) loc += v - dot; | ||
1057 | break; | ||
1058 | |||
1059 | case R_X86_64_PC8: | ||
1060 | *(unsigned char *) loc += v - dot; | ||
1061 | break; | ||
1062 | |||
1063 | case R_X86_64_GLOB_DAT: | ||
1064 | case R_X86_64_JUMP_SLOT: | ||
1065 | *loc = v; | ||
1066 | break; | ||
1067 | |||
1068 | case R_X86_64_RELATIVE: | ||
1069 | *loc += f->baseaddr; | ||
1070 | break; | ||
1071 | |||
1072 | case R_X86_64_GOT32: | ||
1073 | case R_X86_64_GOTPCREL: | ||
1074 | goto bb_use_got; | ||
1075 | #if 0 | ||
1076 | assert(isym != NULL); | ||
1077 | if (!isym->gotent.reloc_done) | ||
1078 | { | ||
1079 | isym->gotent.reloc_done = 1; | ||
1080 | *(Elf64_Addr *)(ifile->got->contents + isym->gotent.offset) = v; | ||
1081 | } | ||
1082 | /* XXX are these really correct? */ | ||
1083 | if (ELF64_R_TYPE(rel->r_info) == R_X86_64_GOTPCREL) | ||
1084 | *(unsigned int *) loc += v + isym->gotent.offset; | ||
1085 | else | ||
1086 | *loc += isym->gotent.offset; | ||
1087 | break; | ||
1088 | #endif | ||
1089 | |||
1090 | #elif defined(__mc68000__) | 978 | #elif defined(__mc68000__) |
1091 | 979 | ||
1092 | case R_68K_NONE: | 980 | case R_68K_NONE: |
@@ -1144,12 +1032,12 @@ arch_apply_relocation(struct obj_file *f, | |||
1144 | case R_68K_GOT32: | 1032 | case R_68K_GOT32: |
1145 | goto bb_use_got; | 1033 | goto bb_use_got; |
1146 | 1034 | ||
1147 | #ifdef R_68K_GOTOFF | 1035 | # ifdef R_68K_GOTOFF |
1148 | case R_68K_GOTOFF: | 1036 | case R_68K_GOTOFF: |
1149 | assert(got != 0); | 1037 | assert(got != 0); |
1150 | *loc += v - got; | 1038 | *loc += v - got; |
1151 | break; | 1039 | break; |
1152 | #endif | 1040 | # endif |
1153 | 1041 | ||
1154 | #elif defined(__mips__) | 1042 | #elif defined(__mips__) |
1155 | 1043 | ||
@@ -1263,6 +1151,93 @@ arch_apply_relocation(struct obj_file *f, | |||
1263 | *loc = v; | 1151 | *loc = v; |
1264 | break; | 1152 | break; |
1265 | 1153 | ||
1154 | #elif defined(__s390__) | ||
1155 | |||
1156 | case R_390_32: | ||
1157 | *(unsigned int *) loc += v; | ||
1158 | break; | ||
1159 | case R_390_16: | ||
1160 | *(unsigned short *) loc += v; | ||
1161 | break; | ||
1162 | case R_390_8: | ||
1163 | *(unsigned char *) loc += v; | ||
1164 | break; | ||
1165 | |||
1166 | case R_390_PC32: | ||
1167 | *(unsigned int *) loc += v - dot; | ||
1168 | break; | ||
1169 | case R_390_PC16DBL: | ||
1170 | *(unsigned short *) loc += (v - dot) >> 1; | ||
1171 | break; | ||
1172 | case R_390_PC16: | ||
1173 | *(unsigned short *) loc += v - dot; | ||
1174 | break; | ||
1175 | |||
1176 | case R_390_PLT32: | ||
1177 | case R_390_PLT16DBL: | ||
1178 | /* find the plt entry and initialize it. */ | ||
1179 | assert(isym != NULL); | ||
1180 | pe = (struct arch_single_entry *) &isym->pltent; | ||
1181 | assert(pe->allocated); | ||
1182 | if (pe->inited == 0) { | ||
1183 | ip = (unsigned long *)(ifile->plt->contents + pe->offset); | ||
1184 | ip[0] = 0x0d105810; /* basr 1,0; lg 1,10(1); br 1 */ | ||
1185 | ip[1] = 0x100607f1; | ||
1186 | if (ELF_R_TYPE(rel->r_info) == R_390_PLT16DBL) | ||
1187 | ip[2] = v - 2; | ||
1188 | else | ||
1189 | ip[2] = v; | ||
1190 | pe->inited = 1; | ||
1191 | } | ||
1192 | |||
1193 | /* Insert relative distance to target. */ | ||
1194 | v = plt + pe->offset - dot; | ||
1195 | if (ELF_R_TYPE(rel->r_info) == R_390_PLT32) | ||
1196 | *(unsigned int *) loc = (unsigned int) v; | ||
1197 | else if (ELF_R_TYPE(rel->r_info) == R_390_PLT16DBL) | ||
1198 | *(unsigned short *) loc = (unsigned short) ((v + 2) >> 1); | ||
1199 | break; | ||
1200 | |||
1201 | case R_390_GLOB_DAT: | ||
1202 | case R_390_JMP_SLOT: | ||
1203 | *loc = v; | ||
1204 | break; | ||
1205 | |||
1206 | case R_390_RELATIVE: | ||
1207 | *loc += f->baseaddr; | ||
1208 | break; | ||
1209 | |||
1210 | case R_390_GOTPC: | ||
1211 | assert(got != 0); | ||
1212 | *(unsigned long *) loc += got - dot; | ||
1213 | break; | ||
1214 | |||
1215 | case R_390_GOT12: | ||
1216 | case R_390_GOT16: | ||
1217 | case R_390_GOT32: | ||
1218 | assert(isym != NULL); | ||
1219 | assert(got != 0); | ||
1220 | if (!isym->gotent.inited) | ||
1221 | { | ||
1222 | isym->gotent.inited = 1; | ||
1223 | *(ElfW(Addr) *)(ifile->got->contents + isym->gotent.offset) = v; | ||
1224 | } | ||
1225 | if (ELF_R_TYPE(rel->r_info) == R_390_GOT12) | ||
1226 | *(unsigned short *) loc |= (*(unsigned short *) loc + isym->gotent.offset) & 0xfff; | ||
1227 | else if (ELF_R_TYPE(rel->r_info) == R_390_GOT16) | ||
1228 | *(unsigned short *) loc += isym->gotent.offset; | ||
1229 | else if (ELF_R_TYPE(rel->r_info) == R_390_GOT32) | ||
1230 | *(unsigned int *) loc += isym->gotent.offset; | ||
1231 | break; | ||
1232 | |||
1233 | # ifndef R_390_GOTOFF32 | ||
1234 | # define R_390_GOTOFF32 R_390_GOTOFF | ||
1235 | # endif | ||
1236 | case R_390_GOTOFF32: | ||
1237 | assert(got != 0); | ||
1238 | *loc += v - got; | ||
1239 | break; | ||
1240 | |||
1266 | #elif defined(__sh__) | 1241 | #elif defined(__sh__) |
1267 | 1242 | ||
1268 | case R_SH_NONE: | 1243 | case R_SH_NONE: |
@@ -1302,7 +1277,7 @@ arch_apply_relocation(struct obj_file *f, | |||
1302 | *loc = v - got; | 1277 | *loc = v - got; |
1303 | break; | 1278 | break; |
1304 | 1279 | ||
1305 | #if defined(__SH5__) | 1280 | # if defined(__SH5__) |
1306 | case R_SH_IMM_MEDLOW16: | 1281 | case R_SH_IMM_MEDLOW16: |
1307 | case R_SH_IMM_LOW16: | 1282 | case R_SH_IMM_LOW16: |
1308 | { | 1283 | { |
@@ -1345,15 +1320,10 @@ arch_apply_relocation(struct obj_file *f, | |||
1345 | 1320 | ||
1346 | break; | 1321 | break; |
1347 | } | 1322 | } |
1348 | #endif /* __SH5__ */ | 1323 | # endif /* __SH5__ */ |
1349 | #endif /* __sh__ */ | ||
1350 | 1324 | ||
1351 | default: | 1325 | #elif defined (__v850e__) |
1352 | printf("Warning: unhandled reloc %d\n",(int)ELF_R_TYPE(rel->r_info)); | ||
1353 | ret = obj_reloc_unhandled; | ||
1354 | break; | ||
1355 | 1326 | ||
1356 | #if defined (__v850e__) | ||
1357 | case R_V850_NONE: | 1327 | case R_V850_NONE: |
1358 | break; | 1328 | break; |
1359 | 1329 | ||
@@ -1369,50 +1339,83 @@ arch_apply_relocation(struct obj_file *f, | |||
1369 | 1339 | ||
1370 | case R_V850_22_PCREL: | 1340 | case R_V850_22_PCREL: |
1371 | goto bb_use_plt; | 1341 | goto bb_use_plt; |
1372 | #endif | ||
1373 | 1342 | ||
1374 | #if defined (__cris__) | 1343 | #elif defined(__x86_64__) |
1375 | case R_CRIS_NONE: | 1344 | #warning hi |
1345 | case R_X86_64_NONE: | ||
1376 | break; | 1346 | break; |
1377 | 1347 | ||
1378 | case R_CRIS_32: | 1348 | case R_X86_64_64: |
1379 | /* CRIS keeps the relocation value in the r_addend field and | 1349 | *loc += v; |
1380 | * should not use whats in *loc at all | ||
1381 | */ | ||
1382 | *loc = v; | ||
1383 | break; | 1350 | break; |
1384 | #endif | ||
1385 | 1351 | ||
1386 | #if defined(__H8300H__) || defined(__H8300S__) | 1352 | case R_X86_64_32: |
1387 | case R_H8_DIR24R8: | 1353 | *(unsigned int *) loc += v; |
1388 | loc = (ElfW(Addr) *)((ElfW(Addr))loc - 1); | 1354 | if (v > 0xffffffff) |
1389 | *loc = (*loc & 0xff000000) | ((*loc & 0xffffff) + v); | 1355 | { |
1356 | ret = obj_reloc_overflow; /* Kernel module compiled without -mcmodel=kernel. */ | ||
1357 | /* error("Possibly is module compiled without -mcmodel=kernel!"); */ | ||
1358 | } | ||
1390 | break; | 1359 | break; |
1391 | case R_H8_DIR24A8: | 1360 | |
1392 | *loc += v; | 1361 | case R_X86_64_32S: |
1362 | *(signed int *) loc += v; | ||
1393 | break; | 1363 | break; |
1394 | case R_H8_DIR32: | 1364 | |
1395 | case R_H8_DIR32A16: | 1365 | case R_X86_64_16: |
1396 | *loc += v; | 1366 | *(unsigned short *) loc += v; |
1397 | break; | 1367 | break; |
1398 | case R_H8_PCREL16: | 1368 | |
1399 | v -= dot + 2; | 1369 | case R_X86_64_8: |
1400 | if ((ElfW(Sword))v > 0x7fff || | 1370 | *(unsigned char *) loc += v; |
1401 | (ElfW(Sword))v < -(ElfW(Sword))0x8000) | ||
1402 | ret = obj_reloc_overflow; | ||
1403 | else | ||
1404 | *(unsigned short *)loc = v; | ||
1405 | break; | 1371 | break; |
1406 | case R_H8_PCREL8: | 1372 | |
1407 | v -= dot + 1; | 1373 | case R_X86_64_PC32: |
1408 | if ((ElfW(Sword))v > 0x7f || | 1374 | *(unsigned int *) loc += v - dot; |
1409 | (ElfW(Sword))v < -(ElfW(Sword))0x80) | 1375 | break; |
1410 | ret = obj_reloc_overflow; | 1376 | |
1377 | case R_X86_64_PC16: | ||
1378 | *(unsigned short *) loc += v - dot; | ||
1379 | break; | ||
1380 | |||
1381 | case R_X86_64_PC8: | ||
1382 | *(unsigned char *) loc += v - dot; | ||
1383 | break; | ||
1384 | |||
1385 | case R_X86_64_GLOB_DAT: | ||
1386 | case R_X86_64_JUMP_SLOT: | ||
1387 | *loc = v; | ||
1388 | break; | ||
1389 | |||
1390 | case R_X86_64_RELATIVE: | ||
1391 | *loc += f->baseaddr; | ||
1392 | break; | ||
1393 | |||
1394 | case R_X86_64_GOT32: | ||
1395 | case R_X86_64_GOTPCREL: | ||
1396 | goto bb_use_got; | ||
1397 | # if 0 | ||
1398 | assert(isym != NULL); | ||
1399 | if (!isym->gotent.reloc_done) | ||
1400 | { | ||
1401 | isym->gotent.reloc_done = 1; | ||
1402 | *(Elf64_Addr *)(ifile->got->contents + isym->gotent.offset) = v; | ||
1403 | } | ||
1404 | /* XXX are these really correct? */ | ||
1405 | if (ELF64_R_TYPE(rel->r_info) == R_X86_64_GOTPCREL) | ||
1406 | *(unsigned int *) loc += v + isym->gotent.offset; | ||
1411 | else | 1407 | else |
1412 | *(unsigned char *)loc = v; | 1408 | *loc += isym->gotent.offset; |
1413 | break; | 1409 | break; |
1410 | # endif | ||
1411 | |||
1414 | #endif | 1412 | #endif |
1415 | 1413 | ||
1414 | default: | ||
1415 | printf("Warning: unhandled reloc %d\n",(int)ELF_R_TYPE(rel->r_info)); | ||
1416 | ret = obj_reloc_unhandled; | ||
1417 | break; | ||
1418 | |||
1416 | #if defined(CONFIG_USE_PLT_ENTRIES) | 1419 | #if defined(CONFIG_USE_PLT_ENTRIES) |
1417 | 1420 | ||
1418 | bb_use_plt: | 1421 | bb_use_plt: |