aboutsummaryrefslogtreecommitdiff
path: root/ld/pdb.h
diff options
context:
space:
mode:
authorMark Harmstone <mark@harmstone.com>2022-12-09 01:52:40 +0000
committerAlan Modra <amodra@gmail.com>2022-12-23 21:10:09 +1030
commit8d25f5ef2cb029a889135f41b6451dcccd187391 (patch)
tree47b8f9fa563abe6bbd731e91bf436ccd4acb5e17 /ld/pdb.h
parent5d9c033689ad1ef19ed2d2fd7f30bfd0bc473d9d (diff)
downloadgdb-8d25f5ef2cb029a889135f41b6451dcccd187391.zip
gdb-8d25f5ef2cb029a889135f41b6451dcccd187391.tar.gz
gdb-8d25f5ef2cb029a889135f41b6451dcccd187391.tar.bz2
ld: Write linker symbols in PDB
Diffstat (limited to 'ld/pdb.h')
-rw-r--r--ld/pdb.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/ld/pdb.h b/ld/pdb.h
index ddb9b86..749a602 100644
--- a/ld/pdb.h
+++ b/ld/pdb.h
@@ -93,6 +93,7 @@
#define S_LPROCREF 0x1127
#define S_FRAMECOOKIE 0x113a
#define S_COMPILE3 0x113c
+#define S_ENVBLOCK 0x113d
#define S_LOCAL 0x113e
#define S_DEFRANGE_REGISTER 0x1141
#define S_DEFRANGE_FRAMEPOINTER_REL 0x1142
@@ -796,6 +797,47 @@ struct heap_alloc_site
uint32_t type;
} ATTRIBUTE_PACKED;
+/* OBJNAMESYM in cvinfo.h */
+struct objname
+{
+ uint16_t size;
+ uint16_t kind;
+ uint32_t signature;
+ char name[];
+} ATTRIBUTE_PACKED;
+
+#define CV_CFL_80386 0x03
+#define CV_CFL_X64 0xD0
+
+#define CV_CFL_LINK 0x07
+
+/* COMPILESYM3 in cvinfo.h */
+struct compile3
+{
+ uint16_t size;
+ uint16_t kind;
+ uint32_t flags;
+ uint16_t machine;
+ uint16_t frontend_major;
+ uint16_t frontend_minor;
+ uint16_t frontend_build;
+ uint16_t frontend_qfe;
+ uint16_t backend_major;
+ uint16_t backend_minor;
+ uint16_t backend_build;
+ uint16_t backend_qfe;
+ char compiler[];
+} ATTRIBUTE_PACKED;
+
+/* ENVBLOCKSYM in cvinfo.h */
+struct envblock
+{
+ uint16_t size;
+ uint16_t kind;
+ uint8_t flags;
+ char strings[];
+} ATTRIBUTE_PACKED;
+
extern bool create_pdb_file (bfd *, const char *, const unsigned char *);
#endif