Skip to content
Permalink
Browse files

report: disambiguate glibc versions

- Give the glibc version entries more specific names.
- Group all of the glibc version reporting together.

PR-URL: #25781
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information...
cjihrig authored and addaleax committed Jan 29, 2019
1 parent f6c8820 commit b1e0c43abdc1ec69a03fa265d152b2f9f690c673
Showing with 14 additions and 10 deletions.
  1. +2 −2 doc/api/report.md
  2. +12 −8 src/node_report.cc
@@ -36,7 +36,8 @@ is provided below for reference.
"child"
],
"nodejsVersion": "v12.0.0-pre",
"glibcVersion": "2.17",
"glibcVersionRuntime": "2.17",
"glibcVersionCompiler": "2.17",
"wordSize": "64 bit",
"componentVersions": {
"node": "12.0.0-pre",
@@ -55,7 +56,6 @@ is provided below for reference.
"release": "node"
},
"osVersion": "Linux 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018",
"glibc": "2.17",
"machine": "Linux 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018test_machine x86_64"
},
"javascriptStack": {
@@ -323,11 +323,22 @@ static void PrintVersionInformation(JSONWriter* writer) {
buf << "v" << NODE_VERSION_STRING;
writer->json_keyvalue("nodejsVersion", buf.str());
buf.str("");

#ifndef _WIN32
// Report compiler and runtime glibc versions where possible.
const char* (*libc_version)();
*(reinterpret_cast<void**>(&libc_version)) =
dlsym(RTLD_DEFAULT, "gnu_get_libc_version");
if (libc_version != nullptr)
writer->json_keyvalue("glibcVersionRuntime", (*libc_version)());
#endif /* _WIN32 */

#ifdef __GLIBC__
buf << __GLIBC__ << "." << __GLIBC_MINOR__;
writer->json_keyvalue("glibcVersion", buf.str());
writer->json_keyvalue("glibcVersionCompiler", buf.str());
buf.str("");
#endif

// Report Process word size
writer->json_keyvalue("wordSize", sizeof(void*) * 8);

@@ -433,13 +444,6 @@ static void PrintVersionInformation(JSONWriter* writer) {
buf.str("");
buf << os_info.nodename << " " << os_info.machine;
writer->json_keyvalue("machine", buf.str());

const char* (*libc_version)();
*(reinterpret_cast<void**>(&libc_version)) =
dlsym(RTLD_DEFAULT, "gnu_get_libc_version");
if (libc_version != nullptr) {
writer->json_keyvalue("glibc", (*libc_version)());
}
}
#endif
}

0 comments on commit b1e0c43

Please sign in to comment.
You can’t perform that action at this time.