https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88238
Bug ID: 88238 Summary: libphobos compile problems on Solaris 10 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: d Assignee: ibuclaw at gdcproject dot org Reporter: ro at gcc dot gnu.org Target Milestone: --- Target: *-*-solaris2.10 Created attachment 45109 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45109&action=edit Preliminary hacky patch Even with * the patch from PR d/88150 to use sections_elf_shared.d, * the patch from PR d/87864 to provide minfo bracketing if the linker doesn't, and * the patch to link the D runtime libs with -lsocket -lnsl for the networking functions from https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02248.html which allow libgdruntime.so and libgphobos.so to link on Solaris 11.3 without unresolved symbols, there are more on Solaris 10: * symbol not found: backtrace (libdruntime/.libs/libgdruntime.so) symbol not found: backtrace_symbols_fd (libdruntime/.libs/libgdruntime.so) symbol not found: backtrace_symbols (libdruntime/.libs/libgdruntime.so) Unlike Solaris 11, Solaris 10 lacks the backtrace functions in libc. When trying to use them, this failed because backtrace-supported.h wasn't found during configure. This is due to an error in m4/druntime/libraries.m4 which tries to add to CPPFLAGS with +=, which of course the shell doesn't understand. * symbol not found: dl_iterate_phdr (libdruntime/.libs/libgdruntime.so) Unlike Solaris 11, dl_iterate_phdr support was only backported to a late Solaris 10 update and even so only lives in libdl, not in libc. Not yet fixed. * symbol not found: getprogname (libdruntime/.libs/libgdruntime.so) Solaris 10 lacks getprogname or equivalent; for now I'm faking this by just returning "a.out". * symbol not found: posix_memalign (src/.libs/libgphobos.so) Also missing from Solaris 10. I've not yet checked what to do here. One might be able to use pagealign_alloc from gnulib instead?