Previously a line such as "times 4 mov rax, [rel foobar]" would result
in incorrect relocations being generated.
Patch by: bird-yasm@anduin.net
[#211 state:resolved]
As dwarf2 has a directory table in addition to a filename table, we split
the provided pathname when generating the filename table. This correctly
combined both "./foo" and "foo" into a single filename table entry.
However, we were only matching on pathname instead of dir+filename when
actually generating the dwarf opcodes, resulting in not finding the "./foo"
version. Fix to check both dir and filename separately, splitting the same
way we do when generating the filename table.
svn path=/trunk/yasm/; revision=2367
- Add support for deferred symbols (those which depend on other symbols
that have not yet been .set)
- Add support for re-defining symbols
- Add support for 0x hex notation in literals
Contributed by: Alexei Svitkine <alexei.svitkine@gmail.com>
svn path=/trunk/yasm/; revision=2366
Previously this was implemented the opposite way, contrary to its
documentation. This resulted in clearing any already set yasm_value
relative fields.
svn path=/trunk/yasm/; revision=2364
The register versions worked okay due to size matching, but the memory
versions relied on suffix matching, which wasn't being generated correctly.
Reported by: Tony Goelz <cag@absoft.com>
svn path=/trunk/yasm/; revision=2358
- strcpy() was being used with overlapping memory ranges; switched to memmove().
- bline->line_number was not set in one location.
Exact causes identified using valgrind.
svn path=/trunk/yasm/; revision=2348
- Always create a non-global absolute symbol @feat.00 with value of 1.
- Set type field to 0x20 (function) for safeseh-declared symbols.
- Force safeseh-declared symbols into the symbol table, but don't force
them to be global.
svn path=/trunk/yasm/; revision=2343
Don't generate an additional offset for _GLOBAL_OFFSET_TABLE_ if a WRT was
specified (the NASM usage). In GAS, _GLOBAL_OFFSET_TABLE_ doesn't have a WRT
but instead has special handling.
This isn't quite *exactly* the right fix; a better fix would be to recognize
the _GLOBAL_OFFSET_TABLE_ case in the GAS parser and adjust the value
appropriately there. However, this fix seems to do the right thing in the
meantime for both GAS and NASM cases.
svn path=/trunk/yasm/; revision=2321
Contributed by: Mathieu Monnier
nasm64developer has a more advanced 3-parameter version that will take
some time to integrate, so for now just provide the simpler version.
svn path=/trunk/yasm/; revision=2312