Skip to content

Commit 502b5d5

Browse files
committed
build: add --shared-hdr-histogram configure flag
1 parent 6218d14 commit 502b5d5

File tree

5 files changed

+87
-30
lines changed

5 files changed

+87
-30
lines changed

.github/workflows/test-shared.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ on:
1818
- deps/cares/**
1919
- deps/crates/**
2020
- deps/corepack/**
21+
- deps/histogram/**
2122
- deps/icu-small/**
2223
- deps/icu-tmp/**
2324
- deps/llhttp/**
@@ -64,6 +65,7 @@ on:
6465
- deps/cares/**
6566
- deps/crates/**
6667
- deps/corepack/**
68+
- deps/histogram/**
6769
- deps/icu-small/**
6870
- deps/icu-tmp/**
6971
- deps/llhttp/**

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1237,6 +1237,7 @@ ifeq ($(SKIP_SHARED_DEPS), 1)
12371237
$(RM) -r $(TARNAME)/deps/brotli
12381238
$(RM) -r $(TARNAME)/deps/cares
12391239
$(RM) -r $(TARNAME)/deps/crates
1240+
$(RM) -r $(TARNAME)/deps/histogram
12401241
$(RM) -r $(TARNAME)/deps/icu-small
12411242
$(RM) -r $(TARNAME)/deps/icu-tmp
12421243
$(RM) -r $(TARNAME)/deps/llhttp

configure.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,28 @@
263263
help='Use the specified path to system CA (PEM format) in addition to '
264264
'the OpenSSL supplied CA store or compiled-in Mozilla CA copy.')
265265

266+
shared_optgroup.add_argument('--shared-hdr-histogram',
267+
action='store_true',
268+
dest='shared_hdr_histogram',
269+
default=None,
270+
help='link to a shared HdrHistogram DLL instead of static linking')
271+
272+
shared_optgroup.add_argument('--shared-hdr-histogram-includes',
273+
action='store',
274+
dest='shared_hdr_histogram_includes',
275+
help='directory containing HdrHistogram header files')
276+
277+
shared_optgroup.add_argument('--shared-hdr-histogram-libname',
278+
action='store',
279+
dest='shared_hdr_histogram_libname',
280+
default='hdr_histogram',
281+
help='alternative lib name to link to [default: %(default)s]')
282+
283+
shared_optgroup.add_argument('--shared-hdr-histogram-libpath',
284+
action='store',
285+
dest='shared_hdr_histogram_libpath',
286+
help='a directory to search for the shared HdrHistogram DLL')
287+
266288
parser.add_argument('--experimental-http-parser',
267289
action='store_true',
268290
dest='experimental_http_parser',
@@ -2409,6 +2431,7 @@ def make_bin_override():
24092431
configure_library('simdutf', output)
24102432
configure_library('brotli', output, pkgname=['libbrotlidec', 'libbrotlienc'])
24112433
configure_library('cares', output, pkgname='libcares')
2434+
configure_library('hdr_histogram', output)
24122435
configure_library('nghttp2', output, pkgname='libnghttp2')
24132436
configure_library('nghttp3', output, pkgname='libnghttp3')
24142437
configure_library('ngtcp2', output, pkgname='libngtcp2')

node.gyp

Lines changed: 60 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,37 @@
44
'v8_trace_maps%': 0,
55
'v8_enable_pointer_compression%': 0,
66
'v8_enable_31bit_smis_on_64bit_arch%': 0,
7-
'node_no_browser_globals%': 'false',
8-
'node_snapshot_main%': '',
9-
'node_use_node_snapshot%': 'false',
10-
'node_use_v8_platform%': 'true',
11-
'node_use_bundled_v8%': 'true',
12-
'node_shared%': 'false',
13-
'node_write_snapshot_as_string_literals': 'true',
147
'force_dynamic_crt%': 0,
15-
'ossfuzz' : 'false',
8+
'node_builtin_modules_path%': '',
9+
'node_core_target_name%': 'node',
10+
'node_enable_v8_vtunejit%': 'false',
11+
'node_intermediate_lib_type%': 'static_library',
12+
'node_lib_target_name%': 'libnode',
1613
'node_module_version%': '',
17-
'node_use_amaro%': 'true',
14+
'node_no_browser_globals%': 'false',
1815
'node_shared_brotli%': 'false',
19-
'node_shared_zstd%': 'false',
20-
'node_shared_zlib%': 'false',
21-
'node_shared_http_parser%': 'false',
2216
'node_shared_cares%': 'false',
17+
'node_shared_hdr_histogram%': 'false',
18+
'node_shared_http_parser%': 'false',
2319
'node_shared_libuv%': 'false',
20+
'node_shared_nghttp2%': 'false',
21+
'node_shared_openssl%': 'false',
2422
'node_shared_sqlite%': 'false',
2523
'node_shared_temporal_capi%': 'false',
2624
'node_shared_uvwasi%': 'false',
27-
'node_shared_nghttp2%': 'false',
25+
'node_shared_zlib%': 'false',
26+
'node_shared_zstd%': 'false',
27+
'node_shared%': 'false',
28+
'node_snapshot_main%': '',
29+
'node_use_amaro%': 'true',
30+
'node_use_bundled_v8%': 'true',
31+
'node_use_node_snapshot%': 'false',
2832
'node_use_openssl%': 'true',
2933
'node_use_sqlite%': 'true',
30-
'node_shared_openssl%': 'false',
34+
'node_use_v8_platform%': 'true',
3135
'node_v8_options%': '',
32-
'node_enable_v8_vtunejit%': 'false',
33-
'node_core_target_name%': 'node',
34-
'node_lib_target_name%': 'libnode',
35-
'node_intermediate_lib_type%': 'static_library',
36-
'node_builtin_modules_path%': '',
36+
'node_write_snapshot_as_string_literals': 'true',
37+
'ossfuzz' : 'false',
3738
'linked_module_files': [
3839
],
3940
# We list the deps/ files out instead of globbing them in js2c.cc since we
@@ -571,10 +572,6 @@
571572
'src/node_main.cc'
572573
],
573574

574-
'dependencies': [
575-
'deps/histogram/histogram.gyp:histogram',
576-
],
577-
578575
'msvs_settings': {
579576
'VCLinkerTool': {
580577
'GenerateMapFile': 'true', # /MAP
@@ -596,6 +593,11 @@
596593
'msvs_disabled_warnings!': [4244],
597594

598595
'conditions': [
596+
[ 'node_shared_hdr_histogram=="false"', {
597+
'dependencies': [
598+
'deps/histogram/histogram.gyp:histogram',
599+
],
600+
}],
599601
[ 'error_on_warn=="true"', {
600602
'cflags': ['-Werror'],
601603
'xcode_settings': {
@@ -866,7 +868,6 @@
866868
],
867869
'dependencies': [
868870
'deps/googletest/googletest.gyp:gtest_prod',
869-
'deps/histogram/histogram.gyp:histogram',
870871
'deps/nbytes/nbytes.gyp:nbytes',
871872
'tools/v8_gypfiles/abseil.gyp:abseil',
872873
'node_js2c#host',
@@ -929,6 +930,11 @@
929930
'src/node_snapshot_stub.cc',
930931
]
931932
}],
933+
[ 'node_shared_hdr_histogram=="false"', {
934+
'dependencies': [
935+
'deps/histogram/histogram.gyp:histogram',
936+
],
937+
}],
932938
[ 'node_use_sqlite=="true"', {
933939
'sources': [
934940
'<@(node_sqlite_sources)',
@@ -1066,7 +1072,6 @@
10661072
'type': 'executable',
10671073
'dependencies': [
10681074
'<(node_lib_target_name)',
1069-
'deps/histogram/histogram.gyp:histogram',
10701075
],
10711076

10721077
'includes': [
@@ -1091,6 +1096,11 @@
10911096
'test/fuzzers/fuzz_env.cc',
10921097
],
10931098
'conditions': [
1099+
[ 'node_shared_hdr_histogram=="false"', {
1100+
'dependencies': [
1101+
'deps/histogram/histogram.gyp:histogram',
1102+
],
1103+
}],
10941104
['OS=="linux" or OS=="openharmony"', {
10951105
'ldflags': [ '-fsanitize=fuzzer' ]
10961106
}],
@@ -1109,7 +1119,6 @@
11091119
'type': 'executable',
11101120
'dependencies': [
11111121
'<(node_lib_target_name)',
1112-
'deps/histogram/histogram.gyp:histogram',
11131122
],
11141123
'includes': [
11151124
'node.gypi'
@@ -1132,6 +1141,11 @@
11321141
'test/fuzzers/fuzz_ClientHelloParser.cc',
11331142
],
11341143
'conditions': [
1144+
[ 'node_shared_hdr_histogram=="false"', {
1145+
'dependencies': [
1146+
'deps/histogram/histogram.gyp:histogram',
1147+
],
1148+
}],
11351149
[ 'node_shared_uvwasi=="false"', {
11361150
'dependencies': [ 'deps/uvwasi/uvwasi.gyp:uvwasi' ],
11371151
'include_dirs': [ 'deps/uvwasi/include' ],
@@ -1155,7 +1169,6 @@
11551169
'dependencies': [
11561170
'<(node_lib_target_name)',
11571171
'deps/googletest/googletest.gyp:gtest_prod',
1158-
'deps/histogram/histogram.gyp:histogram',
11591172
'deps/nbytes/nbytes.gyp:nbytes',
11601173
],
11611174
'includes': [
@@ -1179,6 +1192,11 @@
11791192
'test/fuzzers/fuzz_strings.cc',
11801193
],
11811194
'conditions': [
1195+
[ 'node_shared_hdr_histogram=="false"', {
1196+
'dependencies': [
1197+
'deps/histogram/histogram.gyp:histogram',
1198+
],
1199+
}],
11821200
[ 'node_shared_uvwasi=="false"', {
11831201
'dependencies': [ 'deps/uvwasi/uvwasi.gyp:uvwasi' ],
11841202
'include_dirs': [ 'deps/uvwasi/include' ],
@@ -1204,7 +1222,6 @@
12041222
'<(node_lib_target_name)',
12051223
'deps/googletest/googletest.gyp:gtest',
12061224
'deps/googletest/googletest.gyp:gtest_main',
1207-
'deps/histogram/histogram.gyp:histogram',
12081225
'deps/nbytes/nbytes.gyp:nbytes',
12091226
'tools/v8_gypfiles/abseil.gyp:abseil',
12101227
],
@@ -1231,6 +1248,11 @@
12311248
'sources': [ '<@(node_cctest_sources)' ],
12321249

12331250
'conditions': [
1251+
[ 'node_shared_hdr_histogram=="false"', {
1252+
'dependencies': [
1253+
'deps/histogram/histogram.gyp:histogram',
1254+
],
1255+
}],
12341256
[ 'node_use_openssl=="true"', {
12351257
'defines': [
12361258
'HAVE_OPENSSL=1',
@@ -1291,7 +1313,6 @@
12911313

12921314
'dependencies': [
12931315
'<(node_lib_target_name)',
1294-
'deps/histogram/histogram.gyp:histogram',
12951316
'deps/nbytes/nbytes.gyp:nbytes',
12961317
],
12971318

@@ -1327,6 +1348,11 @@
13271348
'OTHER_LDFLAGS': [ '-Wl,-rpath,@loader_path', ],
13281349
},
13291350
}],
1351+
[ 'node_shared_hdr_histogram=="false"', {
1352+
'dependencies': [
1353+
'deps/histogram/histogram.gyp:histogram',
1354+
],
1355+
}],
13301356
['OS=="win"', {
13311357
'libraries': [
13321358
'Dbghelp.lib',
@@ -1413,7 +1439,6 @@
14131439

14141440
'dependencies': [
14151441
'<(node_lib_target_name)',
1416-
'deps/histogram/histogram.gyp:histogram',
14171442
'deps/nbytes/nbytes.gyp:nbytes',
14181443
],
14191444

@@ -1446,6 +1471,11 @@
14461471
['node_write_snapshot_as_array_literals=="true"', {
14471472
'defines': [ 'NODE_MKSNAPSHOT_USE_ARRAY_LITERALS=1' ],
14481473
}],
1474+
[ 'node_shared_hdr_histogram=="false"', {
1475+
'dependencies': [
1476+
'deps/histogram/histogram.gyp:histogram',
1477+
],
1478+
}],
14491479
[ 'node_use_openssl=="true"', {
14501480
'dependencies': [
14511481
'deps/ncrypto/ncrypto.gyp:ncrypto',

tools/nix/sharedLibDeps.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
zlib
1919
zstd
2020
;
21+
hdr-histogram = pkgs.hdrhistogram_c;
2122
http-parser = pkgs.llhttp;
2223
nghttp2 = pkgs.nghttp2.overrideAttrs {
2324
patches = [

0 commit comments

Comments
 (0)