[syslog] Change 'static inline' to normal linkage
These methods are a pain to work with; they are compiled with different
warnings in tree and in SDK, which makes it difficult to convincingly
produce warning-free code.
Change-Id: Ic87bbe39c1e2a911a6c885265691d2f1a6ebd2aa
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/674662
Reviewed-by: Adam Barth <abarth@google.com>
Fuchsia-Auto-Submit: Tamir Duberstein <tamird@google.com>
Reviewed-by: Miguel Flores <miguelfrde@google.com>
API-Review: Adam Barth <abarth@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Reviewed-by: Christopher Johnson <crjohns@google.com>
diff --git a/sdk/lib/syslog-headers/syslog-headers.api b/sdk/lib/syslog-headers/syslog-headers.api
index 8ca48f4..d8c6e5c 100644
--- a/sdk/lib/syslog-headers/syslog-headers.api
+++ b/sdk/lib/syslog-headers/syslog-headers.api
@@ -1,5 +1,5 @@
{
- "pkg/syslog-headers/include/lib/syslog/global.h": "f938c26a14e33904884774dbdd3b9fc4",
+ "pkg/syslog-headers/include/lib/syslog/global.h": "32d2b6ee8025f18829e03749f7da574a",
"pkg/syslog-headers/include/lib/syslog/logger.h": "f09c375255e2c876648ab72770258f76",
"pkg/syslog-headers/include/lib/syslog/wire_format.h": "a0898347fbde08832e36e7c69d1b7c00"
}
\ No newline at end of file
diff --git a/sdk/lib/syslog/cpp/macros.cc b/sdk/lib/syslog/cpp/macros.cc
index 8bcaaf2..66db1b3 100644
--- a/sdk/lib/syslog/cpp/macros.cc
+++ b/sdk/lib/syslog/cpp/macros.cc
@@ -110,3 +110,20 @@
}
} // namespace syslog
+
+syslog::LogSeverity GetSeverityFromVerbosity(int verbosity) {
+ // Clamp verbosity scale to the interstitial space between INFO and DEBUG
+ if (verbosity < 0) {
+ verbosity = 0;
+ } else {
+ int max_verbosity = (syslog::LOG_INFO - syslog::LOG_DEBUG) / syslog::LogVerbosityStepSize;
+ if (verbosity > max_verbosity) {
+ verbosity = max_verbosity;
+ }
+ }
+ int severity = syslog::LOG_INFO - (verbosity * syslog::LogVerbosityStepSize);
+ if (severity < syslog::LOG_DEBUG + 1) {
+ return syslog::LOG_DEBUG + 1;
+ }
+ return static_cast<syslog::LogSeverity>(severity);
+}
diff --git a/sdk/lib/syslog/cpp/macros.h b/sdk/lib/syslog/cpp/macros.h
index 13c822c..603494d 100644
--- a/sdk/lib/syslog/cpp/macros.h
+++ b/sdk/lib/syslog/cpp/macros.h
@@ -330,29 +330,7 @@
// Get the severity corresponding to the given verbosity. Note that
// verbosity relative to the default severity and can be thought of
// as incrementally "more vebose than" the baseline.
-static inline syslog::LogSeverity GetSeverityFromVerbosity(int verbosity) {
- // Clamp verbosity scale to the interstitial space between INFO and DEBUG
- if (verbosity < 0) {
- verbosity = 0;
- } else {
- int max_verbosity = (syslog::LOG_INFO - syslog::LOG_DEBUG) / syslog::LogVerbosityStepSize;
- if (verbosity > max_verbosity) {
- verbosity = max_verbosity;
- }
- }
- int severity = syslog::LOG_INFO - (verbosity * syslog::LogVerbosityStepSize);
- if (severity < syslog::LOG_DEBUG + 1) {
- return syslog::LOG_DEBUG + 1;
- }
- return static_cast<syslog::LogSeverity>(severity);
-}
-
-// this class exists solely to fix a compilation error.
-// we can't use __UNUSED here because it has to compile for both host and device code.
-class FixCompilationErrorCausedByUnusedGetSeverityFromVerbosity {
- public:
- FixCompilationErrorCausedByUnusedGetSeverityFromVerbosity() { GetSeverityFromVerbosity(0); }
-};
+syslog::LogSeverity GetSeverityFromVerbosity(int verbosity);
#define FX_VLOG_IS_ON(verbose_level) (verbose_level <= ::syslog::GetVlogVerbosity())
diff --git a/sdk/lib/syslog/syslog.api b/sdk/lib/syslog/syslog.api
index fdaa951..2d28af6 100644
--- a/sdk/lib/syslog/syslog.api
+++ b/sdk/lib/syslog/syslog.api
@@ -1,5 +1,5 @@
{
- "pkg/syslog/include/lib/syslog/global.h": "f938c26a14e33904884774dbdd3b9fc4",
+ "pkg/syslog/include/lib/syslog/global.h": "32d2b6ee8025f18829e03749f7da574a",
"pkg/syslog/include/lib/syslog/logger.h": "f09c375255e2c876648ab72770258f76",
"pkg/syslog/include/lib/syslog/wire_format.h": "a0898347fbde08832e36e7c69d1b7c00"
}
\ No newline at end of file
diff --git a/sdk/lib/syslog/syslog.symbols.api b/sdk/lib/syslog/syslog.symbols.api
index b416ea3..bd9ef31 100644
--- a/sdk/lib/syslog/syslog.symbols.api
+++ b/sdk/lib/syslog/syslog.symbols.api
@@ -1,5 +1,7 @@
fx_log_get_logger
+fx_log_is_enabled
fx_log_reconfigure
+fx_log_severity_from_verbosity
fx_logger_activate_fallback
fx_logger_create
fx_logger_create_internal
@@ -17,3 +19,4 @@
fx_logger_reconfigure_structured
fx_logger_set_connection
fx_logger_set_min_severity
+fx_vlog_is_enabled
diff --git a/zircon/system/ulib/syslog/global.cc b/zircon/system/ulib/syslog/global.cc
index 19f72a4..e0f379c 100644
--- a/zircon/system/ulib/syslog/global.cc
+++ b/zircon/system/ulib/syslog/global.cc
@@ -62,5 +62,28 @@
config->log_sink_socket == ZX_HANDLE_INVALID));
}
-// This is here to force a definition to be included here for C99.
-extern inline bool fx_log_is_enabled(fx_log_severity_t severity);
+SYSLOG_EXPORT
+bool fx_log_is_enabled(fx_log_severity_t severity) {
+ fx_logger_t* logger = fx_log_get_logger();
+ return severity >= fx_logger_get_min_severity(logger);
+}
+
+SYSLOG_EXPORT
+fx_log_severity_t fx_log_severity_from_verbosity(int verbosity) {
+ if (verbosity < 0) {
+ verbosity = 0;
+ }
+ // verbosity scale sits in the interstitial space between INFO and DEBUG
+ int severity = FX_LOG_INFO - (verbosity * FX_LOG_VERBOSITY_STEP_SIZE);
+ if (severity < FX_LOG_DEBUG + 1) {
+ return FX_LOG_DEBUG + 1;
+ }
+ return severity;
+}
+
+SYSLOG_EXPORT
+bool fx_vlog_is_enabled(int verbosity) {
+ fx_logger_t* logger = fx_log_get_logger();
+ return logger && (verbosity >= 0) &&
+ fx_log_severity_from_verbosity(verbosity) >= fx_logger_get_min_severity(logger);
+}
diff --git a/zircon/system/ulib/syslog/include/lib/syslog/global.h b/zircon/system/ulib/syslog/include/lib/syslog/global.h
index 6aa9569..5bf6456 100644
--- a/zircon/system/ulib/syslog/include/lib/syslog/global.h
+++ b/zircon/system/ulib/syslog/include/lib/syslog/global.h
@@ -22,33 +22,16 @@
// Returns true if writing messages with the given severity is enabled in the
// global logger.
-static inline bool fx_log_is_enabled(fx_log_severity_t severity) {
- fx_logger_t* logger = fx_log_get_logger();
- return severity >= fx_logger_get_min_severity(logger);
-}
+bool fx_log_is_enabled(fx_log_severity_t severity);
// Get the severity corresponding to the given verbosity. Note that
// verbosity relative to the default severity and can be thought of
// as incrementally "more vebose than" the baseline.
-static inline fx_log_severity_t fx_log_severity_from_verbosity(int verbosity) {
- if (verbosity < 0) {
- verbosity = 0;
- }
- // verbosity scale sits in the interstitial space between INFO and DEBUG
- int severity = FX_LOG_INFO - (verbosity * FX_LOG_VERBOSITY_STEP_SIZE);
- if (severity < FX_LOG_DEBUG + 1) {
- return FX_LOG_DEBUG + 1;
- }
- return severity;
-}
+fx_log_severity_t fx_log_severity_from_verbosity(int verbosity);
// Returns true if writing messages with the given verbosity is enabled
// in the global logger.
-static inline bool fx_vlog_is_enabled(int verbosity) {
- fx_logger_t* logger = fx_log_get_logger();
- return logger && (verbosity >= 0) &&
- fx_log_severity_from_verbosity(verbosity) >= fx_logger_get_min_severity(logger);
-}
+bool fx_vlog_is_enabled(int verbosity);
// Reconfigures the global logger for this process with the specified
// configuration.
diff --git a/zircon/system/ulib/syslog/syslog_tests.cc b/zircon/system/ulib/syslog/syslog_tests.cc
index f2accc8..d77c9a4 100644
--- a/zircon/system/ulib/syslog/syslog_tests.cc
+++ b/zircon/system/ulib/syslog/syslog_tests.cc
@@ -47,7 +47,16 @@
FAIL("did not find unused FD");
}
-} // namespace
+zx_status_t init_helper(int fd, const char** tags, size_t ntags) {
+ fx_logger_config_t config = {
+ .min_severity = FX_LOG_INFO,
+ .console_fd = fd,
+ .tags = tags,
+ .num_tags = ntags,
+ };
+
+ return fx_log_reconfigure(&config);
+}
// Ensure accessing the global logger is safe when a global object is being torn down.
class LogDuringTeardownTest {
@@ -89,16 +98,6 @@
}
}
-static inline zx_status_t init_helper(int fd, const char** tags, size_t ntags) {
- fx_logger_config_t config = {.min_severity = FX_LOG_INFO,
- .console_fd = fd,
- .log_sink_socket = ZX_HANDLE_INVALID,
- .tags = tags,
- .num_tags = ntags};
-
- return fx_log_reconfigure(&config);
-}
-
TEST(SyslogTests, test_log_simple_write) {
int pipefd[2];
EXPECT_NE(pipe2(pipefd, O_NONBLOCK), -1, "");
@@ -550,3 +549,5 @@
EXPECT_STATUS(ZX_ERR_BAD_HANDLE, zx_handle_close(passed_handle));
}
#endif
+
+} // namespace