Home | History | Annotate | Download | only in src

Lines Matching defs:symtab

44 struct arlib_symtab symtab;
53 obstack_init (&symtab.symsoffob);
54 obstack_init (&symtab.symsnameob);
55 obstack_init (&symtab.longnamesob);
85 obstack_grow (&symtab.symsoffob, &ar_hdr, sizeof (ar_hdr));
91 obstack_int_grow (&symtab.symsoffob, 0);
102 obstack_grow (&symtab.longnamesob, &ar_hdr, sizeof (ar_hdr));
105 symtab.symsofflen = 0;
106 symtab.symsoff = NULL;
107 symtab.symsnamelen = 0;
108 symtab.symsname = NULL;
118 symtab.longnameslen = obstack_object_size (&symtab.longnamesob);
119 if (symtab.longnameslen != sizeof (struct ar_hdr))
121 if ((symtab.longnameslen & 1) != 0)
124 obstack_grow (&symtab.longnamesob, "\n", 1);
125 ++symtab.longnameslen;
128 symtab.longnames = obstack_finish (&symtab.longnamesob);
130 memcpy (&((struct ar_hdr *) symtab.longnames)->ar_size, tmpbuf,
133 symtab.longnameslen - sizeof (struct ar_hdr)));
136 symtab.symsofflen = obstack_object_size (&symtab.symsoffob);
137 assert (symtab.symsofflen % sizeof (uint32_t) == 0);
138 if (symtab.symsofflen != 0)
140 symtab.symsoff = (uint32_t *) obstack_finish (&symtab.symsoffob);
143 symtab.symsoff[AR_HDR_WORDS] = le_bswap_32 ((symtab.symsofflen
148 symtab.symsnamelen = obstack_object_size (&symtab.symsnameob);
149 if ((symtab.symsnamelen & 1) != 0)
152 obstack_grow (&symtab.symsnameob, "", 1);
153 ++symtab.symsnamelen;
155 symtab.symsname = obstack_finish (&symtab.symsnameob);
159 if (symtab.symsnamelen > 0)
160 disp = symtab.symsofflen + symtab.symsnamelen;
161 if (symtab.longnameslen > sizeof (struct ar_hdr))
162 disp += symtab.longnameslen;
164 if (disp != 0 && symtab.symsoff != NULL)
166 uint32_t nsyms = le_bswap_32 (symtab.symsoff[AR_HDR_WORDS]);
170 uint32_t val = le_bswap_32 (symtab.symsoff[AR_HDR_WORDS + cnt]);
172 symtab.symsoff[AR_HDR_WORDS + cnt] = le_bswap_32 (val);
177 memcpy (&((struct ar_hdr *) symtab.symsoff)->ar_size, tmpbuf,
180 symtab.symsofflen + symtab.symsnamelen
189 obstack_free (&symtab.symsoffob, NULL);
190 obstack_free (&symtab.symsnameob, NULL);
191 obstack_free (&symtab.longnamesob, NULL);
201 obstack_int_grow (&symtab.symsoffob, (int) le_bswap_32 (symoff));
204 obstack_grow (&symtab.symsnameob, symname, symname_len);
208 /* Add symbols from ELF with value OFFSET to the symbol table SYMTAB. */