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

Reply via email to