1.0.2-15 - Evolution of the previous (rhbz#1478089)
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
This commit is contained in:
parent
1799fc0be2
commit
93fffaf298
@ -1,4 +1,4 @@
|
||||
From 47f007a9bbdbfcdb1df6736dddde64f9c6381b58 Mon Sep 17 00:00:00 2001
|
||||
From 5e5370134377bbec66060d9adb5673973239981b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
|
||||
Date: Fri, 6 Oct 2017 17:17:26 +0200
|
||||
Subject: [PATCH 1/6] Med: qblog.h: better explanation + behaviour of
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
|
||||
1 file changed, 40 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/include/qb/qblog.h b/include/qb/qblog.h
|
||||
index 3cb4eef..4954932 100644
|
||||
index 3cb4eef..99ead1b 100644
|
||||
--- a/include/qb/qblog.h
|
||||
+++ b/include/qb/qblog.h
|
||||
@@ -42,6 +42,10 @@ extern "C" {
|
||||
@ -110,11 +110,11 @@ index 3cb4eef..4954932 100644
|
||||
+ /* our own (target's) sanity, or possibly that of higher priority \
|
||||
+ symbol resolution site (unless target equals end executable) \
|
||||
+ or even the lower one if no such predecessor defines these */ \
|
||||
+ assert("non-empty implicit callsite section" \
|
||||
+ && QB_ATTR_SECTION_START != QB_ATTR_SECTION_STOP); } \
|
||||
+ assert("implicit callsite section is populated" \
|
||||
+ && QB_ATTR_SECTION_START != QB_ATTR_SECTION_STOP); } \
|
||||
void __attribute__ ((constructor)) name(void);
|
||||
#else
|
||||
#define QB_LOG_INIT_DATA(name)
|
||||
--
|
||||
2.15.0
|
||||
2.15.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f400d33a3ce8ca04248a6602441a40b878eadf2c Mon Sep 17 00:00:00 2001
|
||||
From 454610697b9790da14c6115b0dd8b9fe3754dd0f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
|
||||
Date: Fri, 6 Oct 2017 17:17:26 +0200
|
||||
Subject: [PATCH 3/6] tests: new sort of tests dubbed "functional", cover
|
||||
@ -95,11 +95,11 @@ can observe a somewhat simpler story (DEP ~ "depends"):
|
||||
[*3] both client and interlib logging not working
|
||||
|
||||
[*A] boils down to [*1], unless QB_LOG_INIT_DATA used on client side,
|
||||
which fails on 'non-empty implicit callsite section' assertion
|
||||
which fails on 'implicit callsite section is populated' assertion
|
||||
[*B] boils down to [*1], unless QB_LOG_INIT_DATA used on interlib side,
|
||||
which fails on 'non-empty implicit callsite section' assertion
|
||||
which fails on 'implicit callsite section is populated' assertion
|
||||
[*C] boils down to [*3], unless QB_LOG_INIT_DATA used on interlib side,
|
||||
which fails on 'non-empty implicit callsite section' assertion
|
||||
which fails on 'implicit callsite section is populated' assertion
|
||||
[*D] boils down to [*3], unless QB_LOG_INIT_DATA used on interlib side,
|
||||
which makes it boil down just to [*1] (hypothesis: mere internal
|
||||
self-reference to the section's boundary symbols makes them
|
||||
@ -1067,5 +1067,5 @@ index 0000000..145b9f4
|
||||
+ "- results stored in '_results/<timestamp>_<input_name>[_<tag>]'" \
|
||||
+ || do_proceed "$@"
|
||||
--
|
||||
2.15.0
|
||||
2.15.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 260768d94017023771af9e7f1bddcff91883617a Mon Sep 17 00:00:00 2001
|
||||
From b36464c9487ec2b56caa1e99e58bc74c43774577 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
|
||||
Date: Fri, 6 Oct 2017 17:17:26 +0200
|
||||
Subject: [PATCH 4/6] Med: add extra run-time (client, libqb) checks that
|
||||
@ -82,41 +82,41 @@ change (and extending log_test_mock.sh so as to capture syslog
|
||||
stream within the container), not much changes with the table above,
|
||||
i.e., X(b) .. ld.bfd = 2.29:
|
||||
[*A] in addition, unless QB_LOG_INIT_DATA used on client side,
|
||||
syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section not observed by libqb,
|
||||
target's and/or libqb's linkage at fault and logging of the target
|
||||
will not work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context, or target chain built purposefully without
|
||||
callsite section)"
|
||||
syslog carries this notice:
|
||||
"(libqb) log module hasn't observed target chain supplied callsite
|
||||
section, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly, or target chain built purposefully without
|
||||
these sections)"
|
||||
logged by libqb proper
|
||||
[*C] in addition, unless QB_LOG_INIT_DATA used on interlib side,
|
||||
syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section not observed by libqb,
|
||||
target's and/or libqb's linkage at fault and logging of the target
|
||||
will not work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context, or target chain built purposefully without
|
||||
callsite section)"
|
||||
syslog carries this notice:
|
||||
"(libqb) log module hasn't observed target chain supplied callsite
|
||||
section, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly, or target chain built purposefully without
|
||||
these sections)"
|
||||
logged by libqb proper
|
||||
[*E] in addition, unless QB_LOG_INIT_DATA used on client side,
|
||||
syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section empty, target's and/or
|
||||
libqb's linkage at fault and logging of the target will not
|
||||
work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context)"
|
||||
"(libqb) log module has observed target chain supplied section
|
||||
unpopulated, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly)"
|
||||
logged by libqb proper
|
||||
[*F] in addition, unless QB_LOG_INIT_DATA used on interlib side,
|
||||
syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section empty, target's and/or
|
||||
libqb's linkage at fault and logging of the target will not
|
||||
work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context)"
|
||||
"(libqb) log module has observed target chain supplied section
|
||||
unpopulated, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly)"
|
||||
logged by libqb proper
|
||||
[*G] in addition, unless QB_LOG_INIT_DATA used on interlib side,
|
||||
syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section empty, target's and/or
|
||||
libqb's linkage at fault and logging of the target will not
|
||||
work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context)"
|
||||
"(libqb) log module has observed target chain supplied section
|
||||
unpopulated, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly)"
|
||||
logged by libqb proper
|
||||
|
||||
but desirably changes with "X(b) .. ld.bfd = 2.29.1" one
|
||||
@ -139,33 +139,33 @@ but desirably changes with "X(b) .. ld.bfd = 2.29.1" one
|
||||
|
||||
[*A] boils down to [*1], unless QB_LOG_INIT_DATA used on client side,
|
||||
which then fails on
|
||||
"non-empty implicit callsite section, otherwise target's linkage at
|
||||
fault and logging would not work reliably"
|
||||
"implicit callsite section is populated, otherwise target's build
|
||||
is at fault, preventing reliable logging"
|
||||
assertion
|
||||
[*B] boils down to [*1], unless QB_LOG_INIT_DATA used on interlib side,
|
||||
which then fails on
|
||||
"non-empty implicit callsite section, otherwise target's linkage at
|
||||
fault and logging would not work reliably"
|
||||
"implicit callsite section is populated, otherwise target's build
|
||||
is at fault, preventing reliable logging"
|
||||
assertion
|
||||
[*C] boils down to [*3], unless QB_LOG_INIT_DATA used on interlib side,
|
||||
which then fails on
|
||||
"non-empty implicit callsite section, otherwise target's linkage at
|
||||
fault and logging would not work reliably"
|
||||
"implicit callsite section is populated, otherwise target's build
|
||||
is at fault, preventing reliable logging"
|
||||
assertion
|
||||
[*E] boils down to [*1], unless QB_LOG_INIT_DATA used on client side,
|
||||
which then fails on
|
||||
"implicit callsite section self-observable, otherwise target's and/or
|
||||
libqb's linkage at fault and logging would not work reliably"
|
||||
"implicit callsite section is self-observable, otherwise target's
|
||||
and/or libqb's build is at fault, preventing reliable logging"
|
||||
assertion
|
||||
[*F] boils down to [*3], unless QB_LOG_INIT_DATA used on interlib side,
|
||||
which then fails on
|
||||
"libqb's callsite section non-empty, otherwise libqb's linkage at
|
||||
fault and logging would not work reliably"
|
||||
"libqb's callsite section is populated, otherwise libqb's build is
|
||||
at fault, preventing reliable logging"
|
||||
assertion
|
||||
[*G] boils down to [*3], unless QB_LOG_INIT_DATA used on interlib side,
|
||||
which then fails on
|
||||
"implicit callsite section self-observable, otherwise target's and/or
|
||||
libqb's linkage at fault and logging would not work reliably"
|
||||
"implicit callsite section is self-observable, otherwise target's
|
||||
and/or libqb's build is at fault, preventing reliable logging"
|
||||
assertion
|
||||
|
||||
[*I] boils down to [*1], unless QB_LOG_INIT_DATA used on client side,
|
||||
@ -175,30 +175,30 @@ libqb's linkage at fault and logging would not work reliably"
|
||||
which makes it, likely through self-reference keepalive (see
|
||||
below), work OK
|
||||
[*K] boils down to [*3]
|
||||
in addition, syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section not observed by libqb,
|
||||
target's and/or libqb's linkage at fault and logging of the target
|
||||
will not work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context, or target chain built purposefully without
|
||||
callsite section)"
|
||||
in addition, syslog carries this notice:
|
||||
"(libqb) log module hasn't observed target chain supplied callsite
|
||||
section, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly, or target chain built purposefully without
|
||||
these sections)"
|
||||
logged by libqb proper
|
||||
[*L] boils down to [*3], unless QB_LOG_INIT_DATA used on interlib side
|
||||
(sufficient?), which makes it, likely through self-reference
|
||||
keepalive (see below), boil down just to [*1];
|
||||
in addition, syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section not observed by libqb,
|
||||
target's and/or libqb's linkage at fault and logging of the target
|
||||
will not work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context, or target chain built purposefully without
|
||||
callsite section)"
|
||||
in addition, syslog carries this notice:
|
||||
"(libqb) log module hasn't observed target chain supplied callsite
|
||||
section, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly, or target chain built purposefully without
|
||||
these sections)"
|
||||
logged by libqb proper
|
||||
[*M] boils down to [*1];
|
||||
in addition, syslog carries this warning:
|
||||
"(LOG@QB) target chain supplied section not observed by libqb,
|
||||
target's and/or libqb's linkage at fault and logging of the target
|
||||
will not work reliably (unless qb_log_init function used unexpectedly
|
||||
in no-logging context, or target chain built purposefully without
|
||||
callsite section)"
|
||||
in addition, syslog carries this notice:
|
||||
"(libqb) log module hasn't observed target chain supplied callsite
|
||||
section, target's and/or libqb's build is at fault, preventing
|
||||
reliable logging (unless qb_log_init invoked in no-custom-logging
|
||||
context unexpectedly, or target chain built purposefully without
|
||||
these sections)"
|
||||
logged by libqb proper
|
||||
[*N] boils down to [*M], unless QB_LOG_INIT_DATA used on client side,
|
||||
which makes it, likely through self-reference keepalive (see
|
||||
@ -235,15 +235,15 @@ which the current build system/code shake is all about.
|
||||
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
include/qb/qblog.h | 111 ++++++++++++++++++++++--------
|
||||
include/qb/qblog.h | 108 ++++++++++++++++++++++--------
|
||||
lib/libqb.pc.in | 3 +-
|
||||
lib/log.c | 53 ++++++++++++++
|
||||
lib/log.c | 51 ++++++++++++++
|
||||
tests/functional/Makefile.am | 3 +-
|
||||
tests/functional/log.am | 2 +-
|
||||
tests/functional/log_external/Makefile.am | 8 ++-
|
||||
tests/functional/log_test_mock.sh | 13 +++-
|
||||
tests/functional/syslog-stdout.py | 51 ++++++++++++++
|
||||
9 files changed, 209 insertions(+), 36 deletions(-)
|
||||
9 files changed, 205 insertions(+), 35 deletions(-)
|
||||
create mode 100755 tests/functional/syslog-stdout.py
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
@ -259,7 +259,7 @@ index 8c588cb..fdcd93c 100644
|
||||
fi
|
||||
|
||||
diff --git a/include/qb/qblog.h b/include/qb/qblog.h
|
||||
index 4954932..a9a9ef2 100644
|
||||
index d09b21c..7be1390 100644
|
||||
--- a/include/qb/qblog.h
|
||||
+++ b/include/qb/qblog.h
|
||||
@@ -1,9 +1,10 @@
|
||||
@ -305,7 +305,7 @@ index 4954932..a9a9ef2 100644
|
||||
*
|
||||
* @par Configuring log targets.
|
||||
* A log target can be syslog, stderr, the blackbox, stdout, or a text file.
|
||||
@@ -283,35 +285,86 @@ typedef void (*qb_log_filter_fn)(struct qb_log_callsite * cs);
|
||||
@@ -283,35 +285,85 @@ typedef void (*qb_log_filter_fn)(struct qb_log_callsite * cs);
|
||||
extern struct qb_log_callsite QB_ATTR_SECTION_START[];
|
||||
extern struct qb_log_callsite QB_ATTR_SECTION_STOP[];
|
||||
|
||||
@ -345,11 +345,11 @@ index 4954932..a9a9ef2 100644
|
||||
+ dlsym(work_handle, QB_ATTR_SECTION_START_STR); \
|
||||
+ work_s2 = (struct qb_log_callsite *) \
|
||||
+ dlsym(work_handle, QB_ATTR_SECTION_STOP_STR); \
|
||||
+ assert("libqb's callsite section observable, otherwise libqb's \
|
||||
+linkage at fault and logging would not work reliably" \
|
||||
+ assert("libqb's callsite section is observable, otherwise \
|
||||
+libqb's build is at fault, preventing reliable logging" \
|
||||
+ && work_s1 != NULL && work_s2 != NULL); \
|
||||
+ assert("libqb's callsite section non-empty, otherwise libqb's \
|
||||
+linkage at fault and logging would not work reliably" \
|
||||
+ assert("libqb's callsite section is populated, otherwise \
|
||||
+libqb's build is at fault, preventing reliable logging" \
|
||||
+ && work_s1 != work_s2); \
|
||||
+ dlclose(work_handle); } }
|
||||
+#endif /* _GNU_SOURCE */
|
||||
@ -386,24 +386,22 @@ index 4954932..a9a9ef2 100644
|
||||
/* our own (target's) sanity, or possibly that of higher priority \
|
||||
symbol resolution site (unless target equals end executable) \
|
||||
or even the lower one if no such predecessor defines these */ \
|
||||
- assert("non-empty implicit callsite section" \
|
||||
- && QB_ATTR_SECTION_START != QB_ATTR_SECTION_STOP); } \
|
||||
- assert("implicit callsite section is populated" \
|
||||
+ if ((work_handle = dlopen(NULL, RTLD_LOCAL|RTLD_LAZY)) != NULL) { \
|
||||
+ work_s1 = (struct qb_log_callsite *) \
|
||||
+ dlsym(work_handle, QB_ATTR_SECTION_START_STR); \
|
||||
+ work_s2 = (struct qb_log_callsite *) \
|
||||
+ dlsym(work_handle, QB_ATTR_SECTION_STOP_STR); \
|
||||
+ assert("implicit callsite section observable, otherwise \
|
||||
+target's and/or libqb's linkage at fault and logging would not work \
|
||||
+reliably" \
|
||||
+ assert("implicit callsite section is observable, otherwise \
|
||||
+target's and/or libqb's build is at fault, preventing reliable logging" \
|
||||
+ && work_s1 != NULL && work_s2 != NULL); \
|
||||
+ dlclose(work_handle); /* perhaps overly eager thing to do */ } \
|
||||
+ /* better targeted attestations when available */ \
|
||||
+ QB_NONAPI_LOG_INIT_DATA_EXTRA_; \
|
||||
+ /* finally, original, straightforward check */ \
|
||||
+ assert("non-empty implicit callsite section, otherwise target's \
|
||||
+linkage at fault and logging would not work reliably" \
|
||||
+ && QB_ATTR_SECTION_START != QB_ATTR_SECTION_STOP); } \
|
||||
+ assert("implicit callsite section is populated, otherwise \
|
||||
+target's build is at fault, preventing reliable logging" \
|
||||
&& QB_ATTR_SECTION_START != QB_ATTR_SECTION_STOP); } \
|
||||
void __attribute__ ((constructor)) name(void);
|
||||
#else
|
||||
#define QB_LOG_INIT_DATA(name)
|
||||
@ -425,7 +423,7 @@ index 8a8d0ba..37d27b7 100644
|
||||
+Libs.private: @LIBS@
|
||||
Cflags: -I${includedir}
|
||||
diff --git a/lib/log.c b/lib/log.c
|
||||
index bfd218f..eb35d6f 100644
|
||||
index bfd218f..c5fecc5 100644
|
||||
--- a/lib/log.c
|
||||
+++ b/lib/log.c
|
||||
@@ -853,6 +853,18 @@ qb_log_init(const char *name, int32_t facility, uint8_t priority)
|
||||
@ -474,36 +472,34 @@ index bfd218f..eb35d6f 100644
|
||||
qb_log_callsites_register(QB_ATTR_SECTION_START, QB_ATTR_SECTION_STOP);
|
||||
dl_iterate_phdr(_log_so_walk_callback, NULL);
|
||||
_log_so_walk_dlnames();
|
||||
@@ -884,6 +916,27 @@ qb_log_init(const char *name, int32_t facility, uint8_t priority)
|
||||
@@ -884,6 +916,25 @@ qb_log_init(const char *name, int32_t facility, uint8_t priority)
|
||||
_log_target_state_set(&conf[QB_LOG_SYSLOG], QB_LOG_STATE_ENABLED);
|
||||
(void)qb_log_filter_ctl(QB_LOG_SYSLOG, QB_LOG_FILTER_ADD,
|
||||
QB_LOG_FILTER_FILE, "*", priority);
|
||||
+
|
||||
+ if (preinit_err == preinit_err_target_sec)
|
||||
+ qb_util_log(LOG_WARNING, "(LOG@QB) target chain supplied"
|
||||
+ " section not observed by libqb,"
|
||||
+ " target's and/or libqb's linkage"
|
||||
+ " at fault and logging of the target"
|
||||
+ " will not work reliably (unless"
|
||||
+ " qb_log_init function used"
|
||||
+ " unexpectedly in no-logging"
|
||||
+ " context, or target chain built"
|
||||
+ " purposefully without callsite"
|
||||
+ " sections)");
|
||||
+ qb_util_log(LOG_NOTICE, "(libqb) log module hasn't observed"
|
||||
+ " target chain supplied callsite"
|
||||
+ " section, target's and/or libqb's"
|
||||
+ " build is at fault, preventing"
|
||||
+ " reliable logging (unless qb_log_init"
|
||||
+ " invoked in no-custom-logging context"
|
||||
+ " unexpectedly, or target chain built"
|
||||
+ " purposefully without these sections)");
|
||||
+ else if (preinit_err == preinit_err_target_empty) {
|
||||
+ qb_util_log(LOG_WARNING, "(LOG@QB) target chain supplied"
|
||||
+ " section empty, target's and/or"
|
||||
+ " libqb's linkage at fault and"
|
||||
+ " logging of the target will not"
|
||||
+ " work reliably (unless qb_log_init"
|
||||
+ " function used unexpectedly in"
|
||||
+ " no-logging context)");
|
||||
+ qb_util_log(LOG_WARNING, "(libqb) log module has observed"
|
||||
+ " target chain supplied section"
|
||||
+ " unpopulated, target's and/or libqb's"
|
||||
+ " build is at fault, preventing"
|
||||
+ " reliable logging (unless qb_log_init"
|
||||
+ " invoked in no-custom-logging context"
|
||||
+ " unexpectedly)");
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
||||
diff --git a/tests/functional/Makefile.am b/tests/functional/Makefile.am
|
||||
index 0d34ae8..522fb61 100644
|
||||
index 33dde48..4d9071f 100644
|
||||
--- a/tests/functional/Makefile.am
|
||||
+++ b/tests/functional/Makefile.am
|
||||
@@ -19,5 +19,6 @@
|
||||
@ -515,11 +511,10 @@ index 0d34ae8..522fb61 100644
|
||||
+ log_test_mock.sh syslog-stdout.py
|
||||
SUBDIRS = log_external log_internal
|
||||
diff --git a/tests/functional/log.am b/tests/functional/log.am
|
||||
index e8e4740..80bccb0 100644
|
||||
index 8976b6c..f2c6fbc 100644
|
||||
--- a/tests/functional/log.am
|
||||
+++ b/tests/functional/log.am
|
||||
@@ -20,7 +20,7 @@
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
@@ -21,6 +21,6 @@ MAINTAINERCLEANFILES = Makefile.in
|
||||
CLEANFILES = log_test_client.err.real log_test_interlib_client.err.real
|
||||
|
||||
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
@ -528,7 +523,7 @@ index e8e4740..80bccb0 100644
|
||||
noinst_PROGRAMS = log_client log_interlib_client
|
||||
# cannot use {check,noinst}_LTLIBRARIES because it leads to solely static lib
|
||||
diff --git a/tests/functional/log_external/Makefile.am b/tests/functional/log_external/Makefile.am
|
||||
index 36aa0af..ca1c8a5 100644
|
||||
index 018c836..b1b568a 100644
|
||||
--- a/tests/functional/log_external/Makefile.am
|
||||
+++ b/tests/functional/log_external/Makefile.am
|
||||
@@ -19,5 +19,9 @@
|
||||
@ -627,5 +622,5 @@ index 0000000..64baf4c
|
||||
+if __name__ == '__main__':
|
||||
+ main(*argv)
|
||||
--
|
||||
2.15.0
|
||||
2.15.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From cd5d104895f018cf90480dc84f09f32f6dcc2b3c Mon Sep 17 00:00:00 2001
|
||||
From ae47b6941efa0565de5e1187585a2ee54132e653 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
|
||||
Date: Fri, 6 Oct 2017 17:17:26 +0200
|
||||
Subject: [PATCH 5/6] High: bare fix for libqb logging not working with
|
||||
@ -543,9 +543,9 @@ index a9a9ef2..00adb3a 100644
|
||||
{ Dl_info work_dli; \
|
||||
/* libqb sanity (locating libqb by it's relatively unique \
|
||||
-- and currently only such per-linkage global one -- \
|
||||
@@ -310,6 +314,23 @@ linkage at fault and logging would not work reliably" \
|
||||
assert("libqb's callsite section non-empty, otherwise libqb's \
|
||||
linkage at fault and logging would not work reliably" \
|
||||
@@ -310,6 +314,23 @@ libqb's build is at fault, preventing reliable logging" \
|
||||
assert("libqb's callsite section is populated, otherwise \
|
||||
libqb's build is at fault, preventing reliable logging" \
|
||||
&& work_s1 != work_s2); \
|
||||
+ dlclose(work_handle); } \
|
||||
+ /* sanity of the target site originating this check alone */ \
|
||||
@ -567,16 +567,16 @@ index a9a9ef2..00adb3a 100644
|
||||
dlclose(work_handle); } }
|
||||
#endif /* _GNU_SOURCE */
|
||||
|
||||
@@ -355,8 +376,7 @@ target's and/or libqb's linkage at fault and logging would not work \
|
||||
reliably" \
|
||||
@@ -354,8 +375,7 @@ libqb's build is at fault, preventing reliable logging" \
|
||||
target's and/or libqb's build is at fault, preventing reliable logging" \
|
||||
&& work_s1 != NULL && work_s2 != NULL); \
|
||||
dlclose(work_handle); /* perhaps overly eager thing to do */ } \
|
||||
- /* better targeted attestations when available */ \
|
||||
- QB_NONAPI_LOG_INIT_DATA_EXTRA_; \
|
||||
+ QB_NONAPI_LOG_INIT_DATA_EXTRA_(name); \
|
||||
/* finally, original, straightforward check */ \
|
||||
assert("non-empty implicit callsite section, otherwise target's \
|
||||
linkage at fault and logging would not work reliably" \
|
||||
assert("implicit callsite section is populated, otherwise \
|
||||
target's build is at fault, preventing reliable logging" \
|
||||
diff --git a/lib/Makefile.am b/lib/Makefile.am
|
||||
index 0bebeb5..1572cff 100644
|
||||
--- a/lib/Makefile.am
|
||||
@ -788,5 +788,5 @@ index 0000000..f037fca
|
||||
@@ -0,0 +1 @@
|
||||
+/* this is an empty linker script having a role of a NO-OP link object */
|
||||
--
|
||||
2.15.0
|
||||
2.15.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8ae46f6c7a2e9c518fec635b8f7afb1b1dbc710f Mon Sep 17 00:00:00 2001
|
||||
From 5ae933f0c3bf1685cf7251ee3db96fe401030be0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
|
||||
Date: Fri, 6 Oct 2017 17:17:26 +0200
|
||||
Subject: [PATCH 6/6] Low: fix internal object symbol's leak & expose run-time
|
||||
@ -193,5 +193,5 @@ index 19fca2c..98df44c 100644
|
||||
+[MAIN |debug] ../log_client.c:69:hello
|
||||
[libqb|error] log_blackbox.c:196:qb_log_blackbox_print_from_file:
|
||||
--
|
||||
2.15.0
|
||||
2.15.1
|
||||
|
||||
|
12
libqb.spec
12
libqb.spec
@ -2,7 +2,7 @@
|
||||
|
||||
Name: libqb
|
||||
Version: 1.0.2
|
||||
Release: 14%{?dist}
|
||||
Release: 15%{?dist}
|
||||
Summary: An IPC library for high performance servers
|
||||
|
||||
Group: System Environment/Libraries
|
||||
@ -30,9 +30,6 @@ and polling.
|
||||
%prep
|
||||
%autosetup -p1 -S git_am
|
||||
|
||||
## Make sure the timestamps are correct
|
||||
#find . -exec touch \{\} \;
|
||||
|
||||
%build
|
||||
./autogen.sh
|
||||
%configure --disable-static
|
||||
@ -40,8 +37,8 @@ make %{?_smp_mflags} V=1
|
||||
|
||||
%if 0%{?with_check}
|
||||
%check
|
||||
make V=1 check \
|
||||
&& make -C tests/functional/log_internal V=1 check
|
||||
make VERBOSE=1 check \
|
||||
&& make -C tests/functional/log_internal VERBOSE=1 check
|
||||
%endif
|
||||
|
||||
%install
|
||||
@ -78,6 +75,9 @@ developing applications that use %{name}.
|
||||
%{_mandir}/man3/qb*3*
|
||||
|
||||
%changelog
|
||||
* Tue Dec 12 2017 Jan Pokorný <jpokorny+rpm-libqb@redhat.com> - 1.0.2-15
|
||||
- Evolution of the previous (rhbz#1478089)
|
||||
|
||||
* Wed Nov 15 2017 Jan Pokorný <jpokorny+rpm-libqb@redhat.com> - 1.0.2-14
|
||||
- Evolution of the previous (rhbz#1478089)
|
||||
- Make -devel package dependency on the main package arch-qualified
|
||||
|
Loading…
Reference in New Issue
Block a user