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
b16d930d13
natvis for linker types
2024-11-15 16:14:00 -08:00
Ryan Fleury
26be351354
eliminate per-build version numbers, just use base layer to define defaults; bump to 14
2024-11-15 15:36:12 -08:00
Nikita Smith
a8b1805749
updated prof markup usage sites
2024-11-12 13:18:17 -08:00
Nikita Smith
2bbf3ff987
switch to data size formatter
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
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
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
Ryan Fleury
158dd742ad
eliminate entry point 'mode'/type; just gather argc/argv as part of command line parse
2024-11-08 10:33:28 -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
0886963d93
promote section definition number to 32-bit when linking big obj
2024-11-07 11:54:25 -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
Nikita Smith
c5d198e3e9
build linker with branch name and full commit hash
2024-10-30 15:56:10 -07:00
Nikita Smith
eba7500f73
/rad_pdb_hash_type_names:lenient
...
Less aggressive optimization for type names. When lenient enabled, linker
replaces only mangled names and compiler generated lambda types.
2024-10-30 15:56:10 -07:00
Nikita Smith
339f43919c
remove bogus leaf align
2024-10-30 15:56:09 -07:00
Nikita Smith
f3fbf10754
replace type names with hashes
2024-10-30 15:56:09 -07:00
Nikita Smith
4a2e1dd8d0
switch to thread safe hash trie map
...
Initial implementation of the symbol table allowed us to push symbols
from one thread at a time and required a wonky lock-step and spread out
logic for replacing symbols. And because it was a externally chained
hash table we had to guesstimate optimal capacity for small and big targets.
We erred on the side of larger capacity to prevent degradation and
rehashing, however this meant small targets had to spent unreasonable
amount of time memory allocing slots. With hash trie we can dynamically
scale up to 4 ^ 32 items and atomically replace symbols when needed. Neat!
2024-10-30 15:43:53 -07:00
Nikita Smith
baead67a99
minor fixes
2024-10-30 15:42:39 -07:00
Nikita Smith
e085dae636
pass over atomic operations
...
- use cast to volatile trick for atomic loads on x64 windows
- removed unnecessary includes on windows
- upgraded clang and gcc code paths to use modern atomics
Removed WIN32_LEAN_AND_MEAN because we were already compiling without it
and there is code path in os_gfx_win32.c that relies on including full
windows.h
2024-10-30 15:42:39 -07:00
Nikita Smith
8848080729
set explicitly heap and stack reserve and size
2024-10-30 15:42:39 -07:00
Nikita Smith
e1166abc63
typo in str8 compar name
2024-10-30 15:42:39 -07:00
Nikita Smith
6ffc065712
set dynamic base on /fixed:no
2024-10-30 15:42:39 -07:00
Nikita Smith
340396f9f7
fix arena usage
2024-10-22 15:07:49 -07:00
Nikita Smith
9ec7fb61ed
implemented /noimplib /noexp
2024-10-22 11:02:59 -07:00
Nikita Smith
dcffefd0c6
typo in string table lookup
2024-10-22 10:58:41 -07:00
Nikita Smith
5be2b5dfd9
alias for amd64 machine
2024-10-22 10:19:37 -07:00
Nikita Smith
7260baea85
implemented /PDBALTPATH and /RAD_DEBUGALTPATH
2024-10-21 18:03:28 -07:00
Nikita Smith
dbcecd99af
fix sizeof array types
2024-10-19 20:39:40 -07:00
Nikita Smith
26611c5454
moved IO related code to stand-alone file, piped all read/and writes
...
through new API, /rad_log now can enable read and/or write logs with
"io", "io_reads", "io_writes" parameters.
2024-10-19 16:36:32 -07:00
Nikita Smith
05d4faeb49
remove unsued func
2024-10-19 15:13:10 -07:00
Nikita Smith
d5c2e50e9a
rename import table regular -> static
2024-10-19 15:11:51 -07:00
Nikita Smith
800a2349e5
pass over COFF resource reader and writer
2024-10-19 13:44:36 -07:00
Nikita Smith
46390ba0b8
reworked manifest handling
...
- manifest files wont be created unless symbols are resolved
- delay mt.exe presence check until we launch it
- create explicit case that writes manifests to disk
- moved manifest dependency collection step to happen after obj input
- removed /rad_delete_manifest
2024-10-18 23:37:30 -07:00