[Bug ld/20555] The GNU linker does not generate PDB files

2023-01-02 Thread mark at harmstone dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=20555

Mark Harmstone  changed:

   What|Removed |Added

 CC||mark at harmstone dot com

--- Comment #2 from Mark Harmstone  ---
This issue is now fixed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug binutils/27686] New: windres: fails with "nul bytes found in version string"

2021-04-02 Thread mark at harmstone dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=27686

Bug ID: 27686
   Summary: windres: fails with "nul bytes found in version
string"
   Product: binutils
   Version: unspecified
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: binutils
  Assignee: unassigned at sourceware dot org
  Reporter: mark at harmstone dot com
  Target Milestone: ---

Created attachment 13343
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13343&action=edit
patch

Recent versions of RC.EXE seem to add more padding to the end of version blocks
than windres is expecting, leading to this error message. I probably can't
attach a sample here, but this is the case for all versions of Windows 10
Notepad that I've encountered - let me know if you can't reproduce.

The solution would seem to be for windres to only consider the stated length of
the version block, and ignore the length of the surrounding resource entry -
see the attached patch, which fixes the issue.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug gas/27687] New: gas should allow question marks in labels for x86 asm

2021-04-02 Thread mark at harmstone dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=27687

Bug ID: 27687
   Summary: gas should allow question marks in labels for x86 asm
   Product: binutils
   Version: unspecified
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: gas
  Assignee: unassigned at sourceware dot org
  Reporter: mark at harmstone dot com
  Target Milestone: ---

Created attachment 13344
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13344&action=edit
patch

There doesn't seem to be currently any way to get gas to accept question marks
in labels for x86 assembly. This -

"?label":
jmp ?label

- fails with "Error: invalid character '?' before operand 1".

The use case for this is MSVC's C++ name mangling, which uses question marks
extensively - there seems to be no way to call MSVC C++ functions from gas.

Attached is a patch which defines LEX_QM in gas/config/tc-i386.h, which seems
to fix the issue.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


[Bug gas/27688] New: gas does not support .secidx pseudo-directive

2021-04-02 Thread mark at harmstone dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=27688

Bug ID: 27688
   Summary: gas does not support .secidx pseudo-directive
   Product: binutils
   Version: unspecified
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: gas
  Assignee: unassigned at sourceware dot org
  Reporter: mark at harmstone dot com
  Target Milestone: ---

Created attachment 13345
  --> https://sourceware.org/bugzilla/attachment.cgi?id=13345&action=edit
secidx patch

llvm-mc has a pseudo-directive .secidx for COFF files, which maps to a
IMAGE_REL_I386_SECTION / IMAGE_REL_AMD64_SECTION relocation entry. This is a
two-byte field which gets set to the section index of a label when it's linked.

This is necessary for support for CodeView / PDB debugging, as addresses are
represented by a two-byte section index and a four-byte offset (i.e. a .secidx
and a .secrel32). See also my CodeView patches to the gcc mailing list, which
rely on this to work.

I've attached a patch, which implements this for x86 and amd64.

-- 
You are receiving this mail because:
You are on the CC list for the bug.