#include <qb/qblog.h>
/* GNU ld script
This atypical arrangement enforces global visibility of boundary symbols
(QB_ATTR_SECTION_START, QB_ATTR_SECTION_STOP) for the custom section
QB_ATTR_SECTION used for compile-time offloading of the logging call sites
tracking. While libqb relies on these being global, default linker from
binutils change the visibility as of version 2.29, making the logging
unusable without artificial stimulus: https://bugzilla.redhat.com/1477354
NOTE: If -lqb not usable for linking (e.g. linker not compatible with
linker scripts ad-hoc modifying output sections), try recent
ld.bfd/binutils linker first when available, otherwise you can
try "-l:libqb.so.<digit>" link switch that bypasses said linker
script -- but beware, logging may be less efficient and may lack
possible future optimizations and extra features. Consequently,
logging issues (typically bound to QB_LOG_INIT_DATA macro) can be
mitigated with QB_KILL_ATTRIBUTE_SECTION macro defined for a build.
NOTE: When concerned about a warning coming from the build process like
warning: [...]libqb.so contains output sections; did you forget -T?
while it finishes OK, consider it merely a harmless side-effect.
*/
SECTIONS {
#ifdef QB_HAVE_ATTRIBUTE_SECTION
QB_ATTR_SECTION : {
QB_ATTR_SECTION_START = .;
*(QB_ATTR_SECTION);
QB_ATTR_SECTION_STOP = .;
}
#endif
}