Merge branch 'ticket40773' into 'main'

Fix compilation error on older gcc versions and MSVC.

See merge request tpo/core/tor!717
This commit is contained in:
David Goulet 2023-06-19 18:32:44 +00:00
commit 8286d88ed0
2 changed files with 16 additions and 4 deletions

4
changes/ticket40773 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (compilation):
- Fix "initializer is not a constant" compilation error that manifests
itself on gcc versions < 8.1 and MSVC. Fixes bug 40773; bugfix on
0.4.8.1-alpha

View File

@ -28,8 +28,16 @@ static const int64_t hs_metrics_circ_build_time_buckets[] =
60000 /* 60s */ 60000 /* 60s */
}; };
static const size_t hs_metrics_circ_build_time_buckets_size = // TODO: Define a constant for ARRAY_LENGTH(hs_metrics_circ_build_time_buckets)
ARRAY_LENGTH(hs_metrics_circ_build_time_buckets); // and use where it applicable.
//
// This is commented out because it doesn't compile with gcc versions < 8.1
// or with MSVC ("initializer element is not constant").
//
// See ticket#40773 and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69960#c18
//
/*static const size_t hs_metrics_circ_build_time_buckets_size =*/
/*ARRAY_LENGTH(hs_metrics_circ_build_time_buckets);*/
/** The base metrics that is a static array of metrics that are added to every /** The base metrics that is a static array of metrics that are added to every
* single new stores. * single new stores.
@ -93,7 +101,7 @@ const hs_metrics_entry_t base_metrics[] =
.type = METRICS_TYPE_HISTOGRAM, .type = METRICS_TYPE_HISTOGRAM,
.name = METRICS_NAME(hs_intro_circ_build_time), .name = METRICS_NAME(hs_intro_circ_build_time),
.buckets = hs_metrics_circ_build_time_buckets, .buckets = hs_metrics_circ_build_time_buckets,
.bucket_count = hs_metrics_circ_build_time_buckets_size, .bucket_count = ARRAY_LENGTH(hs_metrics_circ_build_time_buckets),
.help = "The introduction circuit build time in milliseconds", .help = "The introduction circuit build time in milliseconds",
}, },
{ {
@ -101,7 +109,7 @@ const hs_metrics_entry_t base_metrics[] =
.type = METRICS_TYPE_HISTOGRAM, .type = METRICS_TYPE_HISTOGRAM,
.name = METRICS_NAME(hs_rend_circ_build_time), .name = METRICS_NAME(hs_rend_circ_build_time),
.buckets = hs_metrics_circ_build_time_buckets, .buckets = hs_metrics_circ_build_time_buckets,
.bucket_count = hs_metrics_circ_build_time_buckets_size, .bucket_count = ARRAY_LENGTH(hs_metrics_circ_build_time_buckets),
.help = "The rendezvous circuit build time in milliseconds", .help = "The rendezvous circuit build time in milliseconds",
}, },
{ {