- if(!is_local(me, (void *)val)) {
- if (strncmp(strtab + sym->st_name, "$$", 2)
+ if(!in_local_section(me, (void *)val, (void *)dot)) {
+
+ if (in_local(me, (void *)val))
+ /* this is the case where the
+ * symbol is local to the
+ * module, but in a different
+ * section, so stub the jump
+ * in case it's more than 22
+ * bits away */
+ val = get_stub(me, val, addend, ELF_STUB_DIRECT,
+ in_init(me, loc));
+ else if (strncmp(strtab + sym->st_name, "$$", 2)