I do not understand why cpiod.so linked against boost 1.69 and above does NOT reference symbols from libboost_system.so. But it does reference symbols from with older boost (< 1.69). Are the symbols found in libboost_system.so < 1.69 now statically linked starting with boost 1.69? Or are we just being lucky somehow?
The good example of such symbol is boost::system::system_category(). On Friday, October 4, 2019 at 12:02:13 AM UTC-4, Bot Droid wrote: > > From: Nadav Har'El <n...@scylladb.com <javascript:>> > Committer: Waldemar Kozaczuk <jwkoz...@gmail.com <javascript:>> > Branch: master > > elf.cc: if Boost libraries aren't visible to applications, don't report > them > > We have in elf.cc a list of libraries which are already fully included > inside the OSv kernel, so the user doesn't need to load another copy of > them. We have one Boost library in this list, but starting with Boost > version 1.69.0, Boost is compiled with hidden visibility - meaning that > the symbols in this library are *not* available to the application. > So if Boost is 1.69.0 or later, we shouldn't claim that the kernel > contains > this library. > > Refs #1040. > > Signed-off-by: Nadav Har'El <n...@scylladb.com <javascript:>> > Message-Id: <201910031009...@scylladb.com <javascript:>> > > --- > diff --git a/core/elf.cc b/core/elf.cc > --- a/core/elf.cc > +++ b/core/elf.cc > @@ -26,6 +26,7 @@ > #include <osv/stubbing.hh> > #include <sys/utsname.h> > #include <osv/demangle.hh> > +#include <boost/version.hpp> > > #include "arch.hh" > > @@ -1153,11 +1154,19 @@ program::program(void* addr) > "libm.so.6", > #ifdef __x86_64__ > "ld-linux-x86-64.so.2", > + // As noted in issue #1040 Boost version 1.69.0 and above is > + // compiled with hidden visibility, so even if the kernel uses > + // this library, it will not be visible for the application and > + // it will need to load its own version of this library. > +#if BOOST_VERSION < 106900 > "libboost_system.so.1.55.0", > +#endif > #endif /* __x86_64__ */ > #ifdef __aarch64__ > "ld-linux-aarch64.so.1", > +#if BOOST_VERSION < 106900 > "libboost_system-mt.so.1.55.0", > +#endif > #endif /* __aarch64__ */ > "libpthread.so.0", > "libdl.so.2", > -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to osv-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/8092839a-f3c8-407f-8449-371621ad2b48%40googlegroups.com.