Lines Matching refs:symbol
99 struct symbol **ndxtosymp);
111 /* Map symbol index to struct symbol record. */
112 static struct symbol **ndxtosym;
114 /* String table reference to all symbols in the symbol table. */
174 /* If this symbol is not undefined in this file it cannot come from
179 struct symbol *sym = file->symref[symidx];
527 struct usedfiles *fileinfo, struct symbol *oldp)
559 struct symbol *oldp)
595 struct usedfiles *fileinfo, struct symbol *oldp)
607 /* We found a definition for a previously undefined symbol or a
609 redefinition of a symbol definition in an object file
637 /* The duplicate symbol is in a group COMDAT section with the same
728 /* The symbol size is the largest of all common definitions. */
736 /* Adjust the symbol record appropriately and remove
737 the symbol from the list of symbols which are taken from DSOs. */
997 /* Determine the symbol which name constitutes the signature
1128 /* Read all the section headers and find the symbol table. Note
1193 /* If we are looking for the normal symbol table we just
1258 /* Determine the signature. We create a symbol record for
1260 fileinfo->scninfo[cnt].symbols = (struct symbol *)
1261 obstack_calloc (&ld_state.smem, sizeof (struct symbol));
1276 struct symbol *symbol = fileinfo->scninfo[cnt].symbols;
1285 symbol->name = elf_strptr (fileinfo->elf,
1288 symbol->symidx = -1;
1293 symbol->name = elf_strptr (fileinfo->elf,
1296 symbol->symidx = shdr->sh_info;
1298 symbol->file = fileinfo;
1390 hash table. In theory there can be a file without any symbol
1399 fileinfo->symref = (struct symbol **)
1401 nsymbols * sizeof (struct symbol *));
1433 /* Create a symbol record for this symbol and add it
1435 struct symbol *newp;
1437 newp = (struct symbol *)
1438 obstack_calloc (&ld_state.smem, sizeof (struct symbol));
1460 /* Create array with pointers to the symbol definitions. Note
1463 pointer as if it was for the whole symbol table. This
1465 fileinfo->symref = (struct symbol **)
1467 * sizeof (struct symbol *)))
1502 /* The symbol is not used. */
1505 /* If the DSO uses symbol versions determine whether this is
1506 the default version. Otherwise we'll ignore the symbol. */
1516 /* Ignore the symbol, it's not the default version. */
1520 /* See whether we know anything about this symbol. */
1521 struct symbol search;
1539 struct symbol *oldp = ld_symbol_tab_find (&ld_state.symbol_tab,
1541 struct symbol *newp;
1544 /* No symbol of this name known. Add it. */
1545 newp = (struct symbol *) obstack_alloc (&ld_state.smem,
1586 /* Insert the new symbol. */
1606 /* A fatal error (multiple definition of a symbol)
1610 /* Use the previously allocated symbol record. It has
1614 /* Mark the section the symbol we need comes from as used. */
1630 have to record the symbol. */
1920 struct symbol search = { .name = syms[cnt].as_name };
1921 struct symbol *sym = ld_symbol_tab_find (&ld_state.symbol_tab,
1925 /* The symbol is referenced and not defined. */
1930 /* Find the archive member for this symbol. */
2055 /* Add all the symbol. Relocatable files have symbol
2080 dynamic symbol table. */
2345 struct symbol *first;
2346 struct symbol *s;
2353 /* Two special symbol we recognize: the symbol for the
2372 error (0, 0, gettext ("undefined symbol `%s' in %s"),
2381 what kind of symbol we expect. Only when looking at the
2478 /* We will need in any case the dynamic symbol table (even in
2479 the unlikely case that no symbol is exported or referenced
2524 object uses symbol versioning. */
2527 struct symbol *srunp = ld_state.from_dso;
2547 version of a symbol. */
2619 output file we create a symbol table. */
2753 struct symbol *runp = ld_state.from_dso;
2762 /* Determine alignment for the symbol. */
2763 // XXX The question is how? The symbol record itself does not
2765 // assume the alignment of the section the symbol is in.
2792 struct symbol *runp = ld_state.common_syms;
2800 /* Determine alignment for the symbol. */
3049 /* Create common symbol data block. */
3079 /* Create common symbol data block. */
3244 /* Signature symbol. */
3245 here_group->symbol
3309 /* We have to know the section index of the dynamic symbol table
3372 /* XXX Handle other symbol bindings. */
3395 /* We have this symbol in the version hash table. Now match the
3633 struct symbol search = { .name = ld_state.entry };
3634 struct symbol *syment;
3640 /* We found the symbol. */
3652 /* Use the dynamic symbol table if available. */
3664 /* XXX What to do if the output has no non-dynamic symbol
3665 table and the dynamic symbol table does not contain the
3666 symbol? */
3672 /* We couldn't find the symbol or none was given. Use the first
3685 cannot find entry symbol '%s': defaulting to %#0*" PRIx64),
3691 no entry symbol specified: defaulting to %#0*" PRIx64),
3701 fillin_special_symbol (struct symbol *symst, size_t scnidx, size_t nsym,
3738 /* Insert symbol into the symbol table. Note that we do not have to
3894 /* Sort the dynamic symbol table. The GNU hash table lookup assumes
4296 accordingly). The symbol tables are combined in one single table.
4297 When stripping certain symbol table entries are omitted.
4301 a dynamic symbol table and a dynamic section. Also the relocations
4351 /* First create the symbol table. We need the symbol section itself
4358 gettext ("cannot create symbol table for output file: %s"),
4379 gettext ("cannot create symbol table for output file: %s"),
4402 /* First create the symbol table. We need the symbol section itself
4408 gettext ("cannot create symbol table for output file: %s"),
4428 /* Allocate another array to keep track of the handles for the symbol
4700 /* Create an STT_SECTION entry in the symbol table. But not for
4701 the symbolic symbol table. */
4713 /* Usual section symbol: local, no specific information,
4723 symbol table. */
4735 not change the symbol table entry. But the extended
4741 /* Remember the symbol's index in the symbol table. */
4747 /* Remember that we have to fill in the symbol table section
4817 struct symbol *oldhead = head->symbols->next_in_scn;
4841 struct symbol *symrunp;
4859 /* Symbol table data from that file. */
4873 /* Get the symbol information. This provides us the
4912 struct symbol *symrunp;
4930 /* Symbol table data from that file. */
4945 /* Get the symbol information. This provides us the
4984 struct symbol *symrunp;
5009 /* Symbol table data from that file. */
5024 /* Get the symbol information. This provides us the
5159 /* We we generate a normal symbol table for an executable and the
5161 which keeps track of the symbol entry belonging to the symbol
5164 ndxtosym = (struct symbol **) xcalloc (nsym_allocated,
5165 sizeof (struct symbol));
5167 /* Create the special symbol for the GOT section. */
5176 /* Similarly for the dynamic section symbol. */
5184 /* Create symbol table entries for the symbols defined in the linker
5188 struct symbol *rsym = ld_state.lscript_syms;
5208 /* There must be no dynamic symbol table when creating
5221 /* The dynamic symbol table does not contain local symbols. So
5228 struct symbol *defp = NULL;
5240 add this information to the dynamic symbol table. */
5261 symbol might still be discarded. */
5272 symbol table and we do not export all symbols and
5273 this symbol is not defined in a DSO as well, ignore
5298 table for the dynamic symbol table. */
5301 section index too large in dynamic symbol table"));
5319 symbol. If this is the case we skip this symbol
5330 /* Ignore this symbol
5334 /* Remember that we already added this symbol. */
5355 /* Add the symbol name to the string table. If the user
5373 offset for the symbol. */
5382 /* Add the reference to the symbol record in case we need it.
5383 Find the symbol if this has not happened yet. We do
5391 /* This is a symbol in a discarded COMDAT section.
5396 struct symbol search;
5399 struct symbol *realp
5405 "couldn't find symbol from COMDAT section");
5413 /* Store the reference to the symbol record. The sorting
5456 /* XXX Add one more test when handling of wildcard symbol names
5467 only need the binding and the symbol name. */
5513 struct symbol *runp;
5552 // XXX Is it useful to add the versym value to struct symbol?
5574 /* Record the initial index in the symbol table. */
5577 /* Remember the symbol record this ELF symbol came from. */
5593 /* Create the symbol string table section. */
5615 /* Fill in the offsets of the symbol names. */
5630 /* Since we are going to reorder the symbol table but still have to
5638 /* Sort the symbol table so that the local symbols come first. */
5685 /* And the entries for the symbol names. */
5690 /* And the mapping from symbol table entry to
5691 struct symbol record. */
5692 struct symbol *symtmp = ndxtosym[nsym_local];
5715 /* The symbol 'nsym_local' is currently pointing to might be local,
5739 the dynamic symbol table and not the normal symbol table. I.e.,
5757 /* If we have to construct the dynamic symbol table we must not include
5758 the local symbols. If the normal symbol has to be emitted as well
5771 this is the dynamic symbol table we write. */
5779 /* Add the version symbol information. */
5785 struct symbol *symp = ndxtosym[cnt];
5800 /* Since we only created the dynamic symbol table the number of
5809 /* Create the dynamic symbol table section data along with the
5811 the normal symbol table and add those. */
5819 cannot create dynamic symbol table for output file: %s"),
5832 symbol names. */
5853 section index too large in dynamic symbol table"));
5855 /* We do not add the symbol to the dynamic symbol table if
5857 - the symbol is for a file
5874 /* Store the index of the symbol in the dynamic symbol
5902 CREATE-GNU-HASH might reorder the dynamic symbol table. */
5912 struct symbol *symp = ndxtosym[cnt];
5934 /* Update the information about the symbol section. */
5938 dynamic symbol table has. */
5942 /* Add the reference to the symbol table. */
6043 /* There is always exactly one local symbol. */
6054 /* Remember the total number of symbols in the dynamic symbol table. */
6062 gettext ("cannot create symbol table for output file: %s"),
6197 /* Determine the index for the signature symbol. */
6199 = groups->symbol->file->symindirect[groups->symbol->symidx];
6202 assert (groups->symbol->file->symref[groups->symbol->symidx]
6204 si = groups->symbol->file->symref[groups->symbol->symidx]->outsymidx;
6425 /* This symbol is used. Update the symbol table
6432 symbol address, not the section
6510 /* Adjust the addresses in the address fields of the symbol
6561 struct symbol *se;
6590 to the symbol table. The sh_info field is left zero since
6701 // XXX This code depends on symbol table being relocated.
6736 /* The hash table which comes with dynamic symbol table. */
6743 /* Reference to the symbol table section. */
6866 /* Now that we created the symbol table we can add the reference to
6879 /* Remember the symbol table which belongs to the relocation section. */
6890 offsets and symbol indices. */
6936 /* DSOs and executables have to define the entry point symbol. */
6958 /* We don't need the map from the symbol table index to the symbol
7104 struct symbol **ndxtosymp)