|
From: H. P. A. <hp...@zy...> - 2015-06-02 21:49:57
|
On 06/02/2015 03:30 AM, nasm-bot for Delan Azabani wrote: > Commit-ID: 5b730a197ad343d1e3836feb49888701b9221ade > Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=5b730a197ad343d1e3836feb49888701b9221ade > Author: Delan Azabani <de...@az...> > AuthorDate: Mon, 1 Jun 2015 05:56:11 +0800 > Committer: Cyrill Gorcunov <gor...@gm...> > CommitDate: Tue, 2 Jun 2015 13:22:32 +0300 > > out: maco64 -- Fix erroneously small write for OUT_REL4ADR > > Ensure that the int64_t offset value, which ultimately comes from an > int64_t value in gencode() (assemble.c:1906), is completely written to > the temporary buffer, instead of merely its least significant 32 bits. > > Prior to this change, WRITELONG was used instead of WRITEDLONG, which > resulted in add_reloc being passed an int64_t "reloff" whose least > significant 32 bits were those from the aforementioned offset value, > and whose most significant 32 bits were stack garbage from "mydata". > > This led to get_closest_section_symbol_by_offset() attempting to search > for extremely large values of "offset" among the symbols in "syms", > which meant that the last symbol with a matching section number would > always win the symbol search. > > In effect, this clobbered the resultant relocation information, such > that all entries would be resolved with the same symbol. > > Test output can be found here > > https://www.azabani.com/patch/2/output.txt > > This patch fixes > > http://bugzilla.nasm.us/show_bug.cgi?id=3392306 > > Signed-off-by: Delan Azabani <de...@az...> > Signed-off-by: Cyrill Gorcunov <gor...@gm...> > If this solves the problems with MachO, we should make a point release. -hpa |