Iain Sandoe <iains....@gmail.com> writes: > When I first made this patch I had a question as to what should be > done for registration CTORs generated by the compiler for .mod files. > I've now answered that question (the code that makes the GCC decl > has also be updated in a separately posted patch). > > tested on x86_64-linux-gnu, x86_64, aarch64-darwin21, > OK for master? > Thanks, > Iain > > --- 8< --- > > This reworks the mechanism used for module registration to use init- > time constructors. The order of registration is not important, the > actual initialization dependency tree will be computed early in the > execution (all that matters is that we have registered before that). > > This fixes a potential issue in which the external name known to the > m2 system is of the form _M2_XXXXXX_ctor() but the C++ code was > producing a static variable instance with the same name. > > Signed-off-by: Iain Sandoe <i...@sandoe.co.uk> > > PR modula2/108183 > > gcc/m2/ChangeLog: > > * gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Rework to use > an extern "C" function with 'constructor' attribute. > * gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Likewise. > * gm2-libs-ch/ldtoa.cc (_M2_ldtoa_ctor): Likewise. > > libgm2/ChangeLog: > > * libm2cor/KeyBoardLEDs.cc (_M2_KeyBoardLEDs_ctor): Rework to use > an extern "C" function with 'constructor' attribute. > * libm2iso/ErrnoCategory.cc (_M2_ErrnoCategory_ctor): Likewise. > * libm2iso/RTco.cc (_M2_RTco_ctor): Likewise. > * libm2pim/Selective.cc (_M2_Selective_ctor): Likewise. > * libm2pim/SysExceptions.cc (_M2_SysExceptions_ctor): Likewise. > * libm2pim/UnixArgs.cc (_M2_UnixArgs_ctor): Likewise. > * libm2pim/cgetopt.cc (_M2_cgetopt_ctor): Likewise. > * libm2pim/dtoa.cc (_M2_dtoa_ctor): Likewise. > * libm2pim/errno.cc (_M2_errno_ctor): Likewise. > * libm2pim/ldtoa.cc (_M2_ldtoa_ctor): Likewise. > * libm2pim/sckt.cc (_M2_sckt_ctor): Likewise. > * libm2pim/termios.cc (_M2_termios_ctor): Likewise. > * libm2pim/wrapc.c: Add a new line to the file end.
all LGTM (together with the other GCC decl patch), thanks, Gaius