Hi Frank, On Thu, 2021-12-09 at 10:47 -0500, Frank Ch. Eigler via Elfutils-devel wrote: > > debuginfod.cxx:3472:12: runtime error: reference binding to > > misaligned > > address 0x00561ec9 for type '<unknown>', which requires 2 byte > > alignment > > [...] > > But I don't understand why. It might be a bug in gcc/libasan (this > > is > > gcc 8.3.0 Debian 10.11 - Buster). [...] > > It must be a bug in gcc/libasan or something.
Yeah, I'll try to see if an gcc upgrade on the machine will help (but that has to wait a couple of days). > > Also, do we really want to right align the log here? We don't seem > > to > > align the log text anywhere else. > > This one just prettifies the messages because there is a sequence > metrics & values being printed at startup, so it makes the numbers > line up. But no great loss to drop; we export those as prometheus > metrics too. I am not proud of needing this workaround, but I did push the attached. Thanks, Mark
From 7fc69582efcfb5f005f04c818a7aab76ff1090be Mon Sep 17 00:00:00 2001 From: Mark Wielaard <m...@klomp.org> Date: Thu, 9 Dec 2021 18:00:05 +0100 Subject: [PATCH] debuginfod: Don't format clog using 'right' or 'setw(20)'. Keep the logs just plain unformatted text. This really is a workaround for an apparent bug with gcc 8.3 -fsanitizer=undefined on arm32, which complains about the 'right' formatter: debuginfod.cxx:3472:12: runtime error: reference binding to misaligned address 0x00561ec9 for type '<unknown>', which requires 2 byte alignment Signed-off-by: Mark Wielaard <m...@klomp.org> --- debuginfod/ChangeLog | 5 +++++ debuginfod/debuginfod.cxx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 7a4840ff..df373201 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,8 @@ +2021-12-09 Mark Wielaard <m...@klomp.org> + + * debuginfod.cxx (database_stats_report): Don't format clog + using 'right' and 'setw(20)'. + 2021-12-04 Mark Wielaard <m...@klomp.org> * debuginfod.cxx (main): Call debuginfod_pool_groom before exit. diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 35424e47..887e4f5a 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -3469,7 +3469,7 @@ database_stats_report() throw sqlite_exception(rc, "step"); obatched(clog) - << right << setw(20) << ((const char*) sqlite3_column_text(ps_query, 0) ?: (const char*) "NULL") + << ((const char*) sqlite3_column_text(ps_query, 0) ?: (const char*) "NULL") << " " << (sqlite3_column_text(ps_query, 1) ?: (const unsigned char*) "NULL") << endl; -- 2.18.4