Nikita Smith
30dc0340a4
print sizes in telemetry mark up in GSI build step
2025-01-08 03:26:04 -08:00
Nikita Smith
2b33978037
updated name convention for flag extract macro in CodeView layer
2025-01-08 03:26:04 -08:00
Nikita Smith
42e441541d
fixes for LEB decode
2025-01-08 03:26:04 -08:00
Nikita Smith
d0d1786cec
define enum for image type
2025-01-08 03:26:04 -08:00
Nikita Smith
0d0a6d3980
fixed compile error in Linux entry point
2025-01-08 03:26:04 -08:00
Nikita Smith
98b9427446
dumper for Dwarf
2025-01-08 03:26:04 -08:00
Nikita Smith
543ee72f95
u64 array helper
2025-01-08 03:26:04 -08:00
Nikita Smith
a5c9a1c978
u64 array sort
2025-01-08 03:26:04 -08:00
Nikita Smith
b27b783e6f
Dwarf parser WIP
...
Copied the parser from internal repo and integrated with the base layer
(not tested)
Parser uses based/range pattern for which we have an alternative in
string layer (str8_deserial_*)
2025-01-08 03:26:04 -08:00
Nikita Smith
76b742ceb8
coffdump -> raddump
2025-01-08 03:26:04 -08:00
Nikita Smith
b6b64be867
moved enum handling code to separate files
2025-01-08 03:24:35 -08:00
Nikita Smith
3961f93d1a
moved CodeView parser code into separate file
2025-01-08 03:24:35 -08:00
Nikita Smith
be81533f63
removed coff guid and added missing defrange symbol
2025-01-08 03:24:35 -08:00
Nikita Smith
2a72f525fb
added support for dumping disassembly and raw data out of sections
2024-12-11 12:07:42 -08:00
Nikita Smith
c91253a19e
move feature flags to appropriate layer
2024-12-10 14:07:51 -08:00
Nikita Smith
48cb999c3d
format VC Features and COFF Group in debug directory
2024-12-10 13:47:47 -08:00
Nikita Smith
9ff49c33cc
validate export table fields
2024-12-10 13:44:09 -08:00
Nikita Smith
cd3fd4df16
format file preamble and warn about unknown argument
2024-12-09 17:16:44 -08:00
Nikita Smith
dd3b4a025d
advance offset
2024-12-09 15:49:34 -08:00
Nikita Smith
aaa82af9b3
format base relocations
2024-12-09 15:25:12 -08:00
Nikita Smith
db82b2ea63
remove dependency on bin info from base reloc parser
2024-12-09 15:24:18 -08:00
Nikita Smith
723c950c01
add default params for /FUNCTIONPADMIN
2024-12-09 14:27:03 -08:00
Nikita Smith
08a368dd66
handle ADDR32 base relocation
2024-12-06 15:35:33 -08:00
Nikita Smith
f56bc209e0
minor fix
2024-12-06 14:39:00 -08:00
Nikita Smith
b5273d6a00
keep parsing on encountering epilog opcode
2024-12-06 14:00:12 -08:00
Nikita Smith
6cf42338ba
clang build fixes
2024-12-06 12:05:44 -08:00
Nikita Smith
e73ce59945
WIP coffdump
2024-12-06 11:53:16 -08:00
Nikita Smith
c3831e4350
WIP parser for MSVC C++ exceptions unwind info
2024-12-06 11:53:16 -08:00
Nikita Smith
0ea0820d19
minor fixes and cleanups
2024-12-06 11:53:16 -08:00
Nikita Smith
86db833a83
pass over PE
...
* upgraded PE with parsers for imports, exports, and tls
* added struct definitions for image load config and debug dir structs
2024-12-06 11:53:16 -08:00
Nikita Smith
80fa226432
pass over COFF archive parser
2024-12-06 11:53:16 -08:00
Nikita Smith
29de0c5a9e
moved unsigned range list to base math
2024-12-06 11:53:16 -08:00
Nikita Smith
d73e53a5b5
integer array structs
2024-12-06 11:53:16 -08:00
Nikita Smith
3851604705
32bit integer from ascii helpers
2024-12-06 11:53:16 -08:00
Nikita Smith
2bf3194cff
disable .exp for radlink
2024-12-06 11:53:16 -08:00
Nikita Smith
669c03cff1
rename time -> time_stamp
2024-12-06 11:53:16 -08:00
Nikita Smith
e22bd33275
pass over COFF, added symbol for function definitions, updated names
...
and types in structs, added enum to and from string helpers
2024-12-06 11:53:16 -08:00
Nikita Smith
53a5f6ab06
big-endian conversion helpers
2024-12-06 11:53:16 -08:00
Nikita Smith
746a2728b3
date time from unix time stamp
2024-12-06 11:53:16 -08:00
Nikita Smith
9ad63e45e6
u32 from string version
2024-12-06 11:53:16 -08:00
Nikita Smith
47ac1796a9
use build string literal from base context
2024-12-06 11:53:16 -08:00
Nikita Smith
fc429449cf
fix out of bounds check
2024-12-06 11:53:16 -08:00
Nikita Smith
19fac9b1aa
changed symbol table parser to convert symbols as they are being read
2024-11-21 19:42:39 -08:00
Nikita Smith
a0dbe72820
moved common codeview code to the main layer
2024-11-21 15:58:32 -08:00
Nikita Smith
7ac7bea420
minor fixes
2024-11-21 15:58:32 -08:00
Nikita Smith
fbf180df2f
assert when merging associative chunks
2024-11-21 13:30:13 -08:00
Nikita Smith
8e8924fcc6
minor fixes
2024-11-21 13:29:23 -08:00
Nikita Smith
d9d0618e97
helpers for quickly checking presence of symbols and file paths in PDB
2024-11-21 01:05:33 -08:00
Nikita Smith
a87e2745a4
GSI and String Table helpers
2024-11-21 01:05:33 -08:00
Nikita Smith
bdb41aa040
fix off by one in GSI parser
2024-11-21 01:05:33 -08:00
Nikita Smith
714316aebf
factor out stream table out of MSF parser
2024-11-21 01:05:33 -08:00
Nikita Smith
c037d6ad75
WIP function padding
2024-11-21 01:05:33 -08:00
Nikita Smith
816d8e88bf
remove warning pragma around radsort
2024-11-18 16:26:42 -08:00
Nikita Smith
31f536334e
third party include fixups
2024-11-18 16:17:26 -08:00
Nikita Smith
f0a1deec62
merge third party folders
2024-11-18 16:16:15 -08:00
Nikita Smith
af57e321de
show full lib path for better debuggability
2024-11-18 15:38:00 -08:00
Nikita Smith
e44dd3aa07
instead of searching for manifest tool manually punt the job to CreateProcess
2024-11-18 15:38:00 -08:00
Nikita Smith
938be0aa84
changed string conversion routines to return null on null input
...
In os_process_launch on windows, linker relies on directory string conversion
to return null so CreateProcessW can set work directory itself.
2024-11-18 15:38:00 -08:00
Nikita Smith
b99e10224f
simplified chunk size tracking
2024-11-15 16:14:00 -08:00
Nikita Smith
435f6c4ef6
append .lib to defaultlibs
2024-11-15 16:14:00 -08:00
Nikita Smith
b631d431fa
create section layout without copying chunk data and perform chunk data
...
copy in parallel given layout
2024-11-15 16:14:00 -08:00
Nikita Smith
2562d04fbf
changed build.bat to handle extra natvis for radlink and removed
...
'Unset' part since we use setlocal that prevents local variable
from leaking to the environment.
2024-11-15 16:14:00 -08:00
Nikita Smith
b52a008748
remove debug trap
2024-11-15 16:14:00 -08:00
Nikita Smith
b16d930d13
natvis for linker types
2024-11-15 16:14:00 -08:00
Nikita Smith
a8b1805749
updated prof markup usage sites
2024-11-12 13:18:17 -08:00
Nikita Smith
a8b2266fc0
added macro for sending notes to telemetry
2024-11-12 13:18:17 -08:00
Nikita Smith
bc446d8520
dynamic profile zone with raddbg sprintf
2024-11-12 13:18:17 -08:00
Nikita Smith
fd1906b034
safe cast commit size
2024-11-12 10:36:45 -08:00
Nikita Smith
2bbf3ff987
switch to data size formatter
2024-11-12 10:36:45 -08:00
Nikita Smith
880d7a4139
data size formatter for stb_sprintf
2024-11-12 10:36:45 -08:00
Nikita Smith
c6caec657d
moved cstring and find needle string ops to the main layer
2024-11-12 10:36:45 -08:00
Nikita Smith
3d7fc6fce5
moved memory and count string formatters to the main layer and
...
replaced str8_from_memory_size with more accurate data size units
2024-11-12 10:36:44 -08:00
Nikita Smith
0d0951bf08
squash some image-related steps into finalize image
2024-11-12 10:36:44 -08:00
Nikita Smith
3a190ae2c3
show an early warning for /DEBUG:FASTLINK
2024-11-12 10:36:44 -08:00
Nikita Smith
bd4f82c8e8
cursed early return
2024-11-08 16:46:11 -08:00
Nikita Smith
680ea2ffdc
added /RAD_IDLE_WORKERS
2024-11-08 16:09:56 -08:00
Nikita Smith
f7d7f6633f
expose file API to enable IO detouring
2024-11-08 16:09:56 -08:00
Nikita Smith
8e6a0ae4db
errors and warnings fixes
2024-11-08 11:43:05 -08:00
Nikita Smith
e297460697
add necessary Linux impls for linker
...
NOTE: Current OS API for semaphores doesn't work well with Linux/pthreads
way, for example, on Linux it's up to user program to allocate shared memory
and store there sem_t and detect when to release it. (Windows does this under
the hood when process that created shared semaphore exits)
2024-11-08 11:43:05 -08:00
Nikita Smith
cf8c0e7442
clang and gcc bit ops
2024-11-08 11:43:05 -08:00
Nikita Smith
776c8daa27
updated build.sh to define git hash
2024-11-08 11:43:05 -08:00
Nikita Smith
69b43c76d4
default to llvm-mt on non-windows platforms
2024-11-08 11:43:05 -08:00
Nikita Smith
d114a0e961
tidy up guid on linux
2024-11-08 11:43:05 -08:00
Nikita Smith
d177e39a54
build.sh add radlink target
2024-11-08 11:43:05 -08:00
Nikita Smith
15d43d7c99
removed dependency on os_ext
2024-11-07 14:12:41 -08:00
Nikita Smith
7650a83d1e
further simplify linker/os_ext/os_core.c
2024-11-07 14:08:21 -08:00
Nikita Smith
daeb08e79f
moved os_folder_exists to the main layer and deleted win32 layer from linker folder
2024-11-07 13:55:15 -08:00
Nikita Smith
ef5287d2a9
switch to os_full_path_from_path
2024-11-07 13:41:47 -08:00
Nikita Smith
db04792073
moved getter for process start time w32
2024-11-07 13:33:37 -08:00
Nikita Smith
4091373517
moved operating system -> string to base
2024-11-07 11:54:25 -08:00
Nikita Smith
214be8c433
moved Guid struct and related helpers to base
2024-11-07 11:54:25 -08:00
Nikita Smith
f807dc4785
override entry point
2024-11-07 11:54:25 -08:00
Nikita Smith
0dd05169ee
add ability to override entry point type
2024-11-07 11:54:25 -08:00
Nikita Smith
ce9d43a92e
pass over coff header
2024-11-07 11:54:25 -08:00
Nikita Smith
0886963d93
promote section definition number to 32-bit when linking big obj
2024-11-07 11:54:25 -08:00
Nikita Smith
27cd7a21a3
coff section definition for big obj
2024-11-07 11:54:24 -08:00
Nikita Smith
7bb88f480e
mask compute typo
2024-11-07 11:54:24 -08:00
Nikita Smith
fad817fb9e
apply communal variable rule for largest comdat only
2024-11-07 11:54:24 -08:00
Nikita Smith
1d42f1bd66
speed up export table build with hash table
2024-11-07 11:54:24 -08:00
Nikita Smith
f3a36ece13
rebase fixes
2024-10-30 15:56:55 -07:00