From f2ee135439f74e9024a7896b1e9fe831b84e83c2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 2 Sep 2025 23:42:21 -0700 Subject: [PATCH] fix up symbols visibility --- src/coff/coff.c | 4 ++-- src/linker/base_ext/base_blake3.h | 3 +++ src/linker/codeview_ext/codeview.c | 3 ++- src/linker/lnk.c | 8 ++++++-- src/linker/pdb_ext/pdb_builder.c | 6 ++++++ src/linker/rdi/rdi_builder.c | 3 +++ src/pe/pe.c | 2 +- src/third_party/md5/md5.c | 6 +++--- src/third_party/md5/md5.h | 10 +++++++--- 9 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index 08bc3123..e3879768 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -477,7 +477,7 @@ coff_string_from_time_stamp(Arena *arena, COFF_TimeStamp time_stamp) return result; } -read_only struct +global read_only struct { String8 string; COFF_MachineType machine; @@ -509,7 +509,7 @@ read_only struct { str8_lit_comp("WceMipsV2"), COFF_MachineType_WceMipsV2 }, }; -read_only static struct { +global read_only struct { char * name; COFF_ImportType type; } g_coff_import_header_type_map[] = { diff --git a/src/linker/base_ext/base_blake3.h b/src/linker/base_ext/base_blake3.h index 0018d9f1..4c426ea2 100644 --- a/src/linker/base_ext/base_blake3.h +++ b/src/linker/base_ext/base_blake3.h @@ -3,6 +3,9 @@ #pragma once +#define BLAKE3_API static +#define BLAKE3_PRIVATE static + #if defined(__clang__) && defined(__x86_64__) # if defined(__IMMINTRIN_H) # error "include this header before immintrin.h / x86intrin.h / intrin.h" diff --git a/src/linker/codeview_ext/codeview.c b/src/linker/codeview_ext/codeview.c index 27d0d30a..b427c911 100644 --- a/src/linker/codeview_ext/codeview.c +++ b/src/linker/codeview_ext/codeview.c @@ -1175,6 +1175,7 @@ cv_debug_t_array_count_leaves(U64 count, CV_DebugT *arr) return total_leaf_count; } +internal THREAD_POOL_TASK_FUNC(cv_str8_list_from_debug_t_task) { CV_Str8ListFromDebugT *task = raw_task; @@ -1785,7 +1786,7 @@ cv_c13_patch_checksum_offsets_in_frame_data_list(String8List frame_data, U32 che //////////////////////////////// // $$Lines Accel -int +internal int cv_c13_voff_map_compar(const void *raw_a, const void *raw_b) { CV_Line *a = (CV_Line*)raw_a; diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 268a6fd4..49ec85d8 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -14,8 +14,12 @@ #include "base_ext/base_blake3.h" #include "base_ext/base_blake3.c" +#define MD5_API static #include "third_party/md5/md5.c" #include "third_party/md5/md5.h" +#define XXH_PRIVATE_API +#define XXH_IMPLEMENTATION +#define XXH_STATIC_LINKING_ONLY #include "third_party/xxHash/xxhash.c" #include "third_party/xxHash/xxhash.h" #include "third_party/radsort/radsort.h" @@ -3386,14 +3390,14 @@ THREAD_POOL_TASK_FUNC(lnk_patch_section_symbols_task) ProfEnd(); } -int +internal int lnk_base_reloc_page_compar(const void *raw_a, const void *raw_b) { const LNK_BaseRelocPage *a = raw_a, *b = raw_b; return u64_compar(&a->voff, &b->voff); } -int +internal int lnk_base_reloc_page_is_before(void *raw_a, void *raw_b) { LNK_BaseRelocPage* a = raw_a; diff --git a/src/linker/pdb_ext/pdb_builder.c b/src/linker/pdb_ext/pdb_builder.c index 02e470ac..153bc759 100644 --- a/src/linker/pdb_ext/pdb_builder.c +++ b/src/linker/pdb_ext/pdb_builder.c @@ -345,6 +345,7 @@ pdb_hash_table_get_present_keys_and_values(Arena *arena, PDB_HashTable *ht, Stri //////////////////////////////// +internal PDB_HASH_TABLE_UNPACK_FUNC(pdb_named_stream_ht_unpack) { Assert(!ud); @@ -366,6 +367,7 @@ PDB_HASH_TABLE_UNPACK_FUNC(pdb_named_stream_ht_unpack) return 0; } +internal PDB_HASH_TABLE_UNPACK_FUNC(pdb_hash_adj_ht_unpack) { Assert(local_data.size == 0); @@ -391,6 +393,7 @@ PDB_HASH_TABLE_UNPACK_FUNC(pdb_hash_adj_ht_unpack) return 0; } +internal PDB_HASH_TABLE_UNPACK_FUNC(pdb_src_header_block_ht_unpack) { if (*key_value_cursor + sizeof(PDB_StringOffset) > key_value_data.size) { @@ -414,6 +417,7 @@ PDB_HASH_TABLE_UNPACK_FUNC(pdb_src_header_block_ht_unpack) return 0; } +internal PDB_HASH_TABLE_PACK_FUNC(pdb_named_stream_ht_pack) { Assert(!ud); @@ -427,6 +431,7 @@ PDB_HASH_TABLE_PACK_FUNC(pdb_named_stream_ht_pack) str8_serial_push_string(arena, key_value_srl, value); } +internal PDB_HASH_TABLE_PACK_FUNC(pdb_hash_adj_ht_pack) { Assert(value.size == sizeof(CV_TypeIndex)); @@ -443,6 +448,7 @@ PDB_HASH_TABLE_PACK_FUNC(pdb_hash_adj_ht_pack) str8_serial_push_string(arena, key_value_srl, value); } +internal PDB_HASH_TABLE_PACK_FUNC(pdb_src_header_block_ht_pack) { Assert(value.size == sizeof(PDB_SrcHeaderBlockEntry)); diff --git a/src/linker/rdi/rdi_builder.c b/src/linker/rdi/rdi_builder.c index a7a567f5..91a31d7a 100644 --- a/src/linker/rdi/rdi_builder.c +++ b/src/linker/rdi/rdi_builder.c @@ -2201,11 +2201,13 @@ rdib_string_map_insert_name_map_item(Arena *arena, RDIB_CollectStringsTask *task rdib_string_map_insert_item(arena, task, task_id, string, node); } +internal RDIB_STRING_MAP_UPDATE_FUNC(rdib_string_map_update_null) { // null update } +internal RDIB_STRING_MAP_UPDATE_FUNC(rdib_string_map_update_concat_void_list_atomic) { node->next = ins_atomic_ptr_eval_assign(head, node); @@ -3549,6 +3551,7 @@ rdib_data_from_vmap(Arena *arena, U64 range_count, RDIB_VMapRange *ranges) return raw_vmap; } +internal THREAD_POOL_TASK_FUNC(rdib_fill_scope_vmaps_task) { ProfBeginFunction(); diff --git a/src/pe/pe.c b/src/pe/pe.c index 19714fc0..1789d154 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -25,7 +25,7 @@ pe_slot_count_from_unwind_op_code(PE_UnwindOpCode opcode) return result; } -read_only struct +global read_only struct { String8 string; PE_WindowsSubsystem type; diff --git a/src/third_party/md5/md5.c b/src/third_party/md5/md5.c index 57f429d4..c31e1c82 100644 --- a/src/third_party/md5/md5.c +++ b/src/third_party/md5/md5.c @@ -204,7 +204,7 @@ static const void *body(MD5_CTX *ctx, const void *data, unsigned long size) return ptr; } -void MD5_Init(MD5_CTX *ctx) +MD5_API void MD5_Init(MD5_CTX *ctx) { ctx->a = 0x67452301; ctx->b = 0xefcdab89; @@ -215,7 +215,7 @@ void MD5_Init(MD5_CTX *ctx) ctx->hi = 0; } -void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size) +MD5_API void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size) { MD5_u32plus saved_lo; unsigned long used, available; @@ -255,7 +255,7 @@ void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size) (dst)[2] = (unsigned char)((src) >> 16); \ (dst)[3] = (unsigned char)((src) >> 24); -void MD5_Final(unsigned char *result, MD5_CTX *ctx) +MD5_API void MD5_Final(unsigned char *result, MD5_CTX *ctx) { unsigned long used, available; diff --git a/src/third_party/md5/md5.h b/src/third_party/md5/md5.h index 2da44bf3..ce5e0c92 100644 --- a/src/third_party/md5/md5.h +++ b/src/third_party/md5/md5.h @@ -23,6 +23,10 @@ * See md5.c for more information. */ +#ifndef MD5_API +# define MD5_API +#endif + #ifdef HAVE_OPENSSL #include #elif !defined(_MD5_H) @@ -38,8 +42,8 @@ typedef struct { MD5_u32plus block[16]; } MD5_CTX; -extern void MD5_Init(MD5_CTX *ctx); -extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size); -extern void MD5_Final(unsigned char *result, MD5_CTX *ctx); +MD5_API void MD5_Init(MD5_CTX *ctx); +MD5_API void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size); +MD5_API void MD5_Final(unsigned char *result, MD5_CTX *ctx); #endif