]> granicus.if.org Git - yasm/commit
Add some abilities to base symrec so that it can be more effectively used by
authorPeter Johnson <peter@tortall.net>
Wed, 12 Jan 2005 07:53:04 +0000 (07:53 -0000)
committerPeter Johnson <peter@tortall.net>
Wed, 12 Jan 2005 07:53:04 +0000 (07:53 -0000)
commitcb9a9f95f8d845dfb88cdb1832788a373fb39911
treed313a5b62a952822eb8fa8ca65bf14e41d62d888
parent2ebbb437647f9e54ce99b8c01f5000fd14f7ea4e
Add some abilities to base symrec so that it can be more effectively used by
object formats without creating duplicate lists of symbols.  XDF and COFF
were updated; ELF needs to reorder the symbols on its own, so for now it's
not been updated to use the common implementation.

* hamt.c (HAMTEntry, HAMT, HAMT_destroy)
(HAMT_insert): Change SLIST to STAILQ.

* symrec.c (sym_type): Add SYM_SPECIAL.
(yasm_symtab_define_special): New.
(yasm_symrec_declare): New; includes all functionality from symtab_declare.
(yasm_symtab_declare): Call yasm_symrec_declare now.
(yasm_symrec_is_special): New.
* symrec.h: Add prototypes for above.

* xdf-objfmt.c: Use symrec_data instead of declaring xdf_symtab.
* xdflong.hex, xdfprotect.hex, xdfother.hex: Update due to symbol reordering.

* coff-objfmt.c: Use symrec_data instead of declaring coff_symtab.

* elftimes.hex, elfso.hex, elfabssect.hex: Update due to symbol reordering.
* elfglobext.hex, elf-x86id.hex, elftest.hex, elfso64.hex: Likewise.
* stabs-elf.hex: Likewise.

svn path=/trunk/yasm/; revision=1188
16 files changed:
libyasm/hamt.c
libyasm/symrec.c
libyasm/symrec.h
modules/dbgfmts/stabs/tests/stabs-elf.hex
modules/objfmts/coff/coff-objfmt.c
modules/objfmts/elf/tests/amd64/elfso64.hex
modules/objfmts/elf/tests/elf-x86id.hex
modules/objfmts/elf/tests/elfabssect.hex
modules/objfmts/elf/tests/elfglobext.hex
modules/objfmts/elf/tests/elfso.hex
modules/objfmts/elf/tests/elftest.hex
modules/objfmts/elf/tests/elftimes.hex
modules/objfmts/xdf/tests/xdflong.hex
modules/objfmts/xdf/tests/xdfother.hex
modules/objfmts/xdf/tests/xdfprotect.hex
modules/objfmts/xdf/xdf-objfmt.c