- if (reloc_sh_type == SHT_REL) {
- Elf32_Rel *rel;
- int n;
- for(i = 0, rel = relocs;i < nb_relocs; i++, rel++) {
- if (rel->r_offset >= offset && rel->r_offset < offset + copy_size) {
- sym_name = strtab + symtab[ELF32_R_SYM(rel->r_info)].st_name;
- if (strstart(sym_name, "__op_param", &p)) {
- n = strtoul(p, NULL, 10);
- if (n >= MAX_ARGS)
- error("too many arguments in %s", name);
- args_present[n - 1] = 1;
- }
- }
- }
- } else {
- Elf32_Rela *rel;
- int n;
- for(i = 0, rel = relocs;i < nb_relocs; i++, rel++) {
- if (rel->r_offset >= offset && rel->r_offset < offset + copy_size) {
- sym_name = strtab + symtab[ELF32_R_SYM(rel->r_info)].st_name;
- if (strstart(sym_name, "__op_param", &p)) {
- n = strtoul(p, NULL, 10);
- if (n >= MAX_ARGS)
- error("too many arguments in %s", name);
- args_present[n - 1] = 1;
- }
+ for(i = 0, rel = relocs;i < nb_relocs; i++, rel++) {
+ if (rel->r_offset >= offset && rel->r_offset < offset + copy_size) {
+ sym_name = strtab + symtab[ELFW(R_SYM)(rel->r_info)].st_name;
+ if (strstart(sym_name, "__op_param", &p)) {
+ n = strtoul(p, NULL, 10);
+ if (n >= MAX_ARGS)
+ error("too many arguments in %s", name);
+ args_present[n - 1] = 1;