win64 .xdata section defaults
Reported by Peter Johnson | June 25th, 2011 @ 07:50 PM | in 1.2.0 (closed)
Originally posted on Trac by appro@fy.chalmers.se
Original
Trac Ticket
Description
Hi,
If I want to compose Win64/x64 UNWIND_INFO structure myself and register custom language-specific exception [or termination] handler of own design, I'd have to
section .text
handler: ret
func: ret
func_end:
section .pdata
dd func
dd func_end
dd myunwnd
section .xdata rdata align=8 nobase
myuwnd: db 9,0,0,0
dd handler
I.e. nobase relocation is a must for handler. Now, rdata and align=8 are default and silently enforced, so I can omit them. But then one can argue that nobase should be enforced by default. But UNWIND_INFO can be followed by user-defined data and one can as well argue that some would like to reserve for nobase relocations there. In which case, if choice of nobase attribute for .xdata is left to developer, there should be a way to selectively generate nobase relocations. Possible suggestion is 'wrt ..imagebase' [suggested to nasm along with patch].
To summarize. If there is no way to selectively generate nobase relocations (e.g. with 'wrt ..imagebase'), then it's natural to enforce nobase on .xdata section (which should be explicitly documented so that developers know that nobase relocations is the only option if they want to append handler-specific data to UNWIND_INFO). A.
Trac Attachments
h3. Trac Comments
comment:1
in reply to:
↑ description
Changed 3 years ago by appro@fy.chalmers.se
For clarity sake I forgot to mention that .pdata section also requires 'nobase', as well as 'rdata' and 'align=4'. But one can omit all three, because all three are default and silently enforced for .pdata by yasm.
Comments and changes to this ticket
-

Peter Johnson June 25th, 2011 @ 08:27 PM
- → Milestone set to 1.2.0
- → Assigned user set to Peter Johnson
-

Peter Johnson October 31st, 2011 @ 05:24 AM
- → State changed from new to resolved
(from [b334347286cc1cd088d79ff7c81ceca0a4ad923c]) win64: Default to nobase for .xdata section.
Also add ..imagebase special symbol to force use of a nobase relocation.
[#135 state:resolved] https://github.com/yasm/yasm/commit/b334347286cc1cd088d79ff7c81ceca...
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
The Yasm Modular Assembler Project