25 |
|
|
26 |
#else |
#else |
27 |
|
|
28 |
|
static MY_BFD_BOOLEAN |
29 |
|
bfd_hash_transfer(struct bfd_link_hash_entry *h,void *v) { |
30 |
|
|
31 |
|
if (h->type==bfd_link_hash_defined) |
32 |
|
sethash(make_simple_string(h->root.string), |
33 |
|
sSAlink_hash_tableA->s.s_dbind, |
34 |
|
make_fixnum(h->u.def.value+h->u.def.section->vma)); |
35 |
|
|
36 |
|
return MY_BFD_TRUE; |
37 |
|
|
38 |
|
} |
39 |
|
|
40 |
/* Replace this with gcl's own hash structure at some point */ |
/* Replace this with gcl's own hash structure at some point */ |
41 |
static int |
static int |
42 |
build_symbol_table_bfd(void) { |
build_symbol_table_bfd(void) { |
110 |
} |
} |
111 |
} |
} |
112 |
|
|
113 |
|
{ |
114 |
|
|
115 |
|
extern object sLequal; |
116 |
|
object *ovsb=vs_base,*ovst=vs_top; |
117 |
|
|
118 |
|
vs_base=vs_top; |
119 |
|
vs_push(sKtest); |
120 |
|
vs_push(sLequal); |
121 |
|
Lmake_hash_table(); |
122 |
|
sSAlink_hash_tableA->s.s_dbind=vs_base[0]; |
123 |
|
vs_top=ovst; |
124 |
|
vs_base=ovsb; |
125 |
|
|
126 |
|
bfd_link_hash_traverse(link_info.hash,bfd_hash_transfer,NULL); |
127 |
|
|
128 |
|
bfd_close(bself); |
129 |
|
bself=NULL; |
130 |
|
link_info.hash=NULL; |
131 |
|
|
132 |
|
} |
133 |
|
|
134 |
|
|
135 |
|
|
136 |
|
|
137 |
|
|
138 |
#ifndef HAVE_ALLOCA |
#ifndef HAVE_ALLOCA |
139 |
free(q); |
free(q); |
140 |
#endif |
#endif |