Hi Johannes, > Looks good to me, although ultimately Iain has to decide of course.
fine, thanks. However, if we cannot find an acceptable solution for the lack of dlpi_tls_modid, the patch isn't of much use: * Solaris 11.5 will have all of dlpi_tls_modid and section bracketing. * Solaris 11.4 has ld section bracketing, but might or might not get dlpi_tls_modid by a patch. * Solaris 11.3 lacks ld section bracketing, won't get dlpi_tls_modid, and also needs this patch to link with -lsocket -lnsl separately: [build] Fix libgphobos linking on Solaris 11 https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02248.html > One nitpick: wouldn't you have to somehow mark __start/__stop _minfo as > hidden? This is important in the case where you have multiple shared > libraries and each library should have its own __start/__stop symbold to > braket the library's minfo section. Here's what I see in libgdruntime.so with various linkers/approaches for minfo bracketing, using readelf -s libgdruntime.so|grep __start: * gld 2.31 on x86_64-pc-linux-gnu (native gld section bracketing): 2: 000000000012b770 0 NOTYPE LOCAL DEFAULT 26 __start_minfo 1763: 000000000012b770 0 NOTYPE LOCAL DEFAULT 26 __start_minfo * Solaris ld on i386-pc-solaris2.11 (Solaris 11.4 where ld supports section bracketing natively): 136: 00147f40 836 OBJECT LOCAL HIDDEN 28 __start_minfo * Solaris ld on i386-pc-solaris2.11 (Solaris 11.3 with drtstuff patch): 150: 0014731c 0 OBJECT LOCAL HIDDEN 40 __start_minfo I guess it's enough that the symbols are local, irrespective of visibility. > Also 'if !DRUNTIME_OS_MINFO_BRACKETING' might be the wrong condition/name > in Makefile.am if we add back support for per-module constructor-based > module registration (instead of calling _d_dso_registry once per shared > library passing all ModuleInfos in that library, call another hook > _d_register_module once per module and pass only one ModuleInfo). But we > can fix that if we ever need to add back support for that second > approach. (If this startfile/endfile approach is portable enough, we may be > able to avoid that). It seemed natural to me to call the automake conditional similarly to the variable set by the DRUNTIME_OS_MINFO_BRACKETING macro. But I'm of course open to other names, although it's probably best to only think about renaming once section bracketing gets other uses. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University