cat hello_world.mod
MODULE Hello;
FROM StrIO IMPORT WriteString, WriteLn ;
BEGIN
WriteString ('Hello GNU Modula-2 World!') ; WriteLn
END Hello.
~/code/m2> gm2-11 hello_world.mod
/usr/bin/ld: /tmp/ccUBLMrG.a(a-hello_world_m2.o): in function `init(int, char**)':
cc938URm.cpp:(.text+0x154): undefined reference to `_M2_Hello_init'
/usr/bin/ld: /tmp/ccUBLMrG.a(a-hello_world_m2.o): in function `finish()':
cc938URm.cpp:(.text+0x196): undefined reference to `_M2_Hello_finish'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/m2/m2pim/libm2pim.so: undefined reference to `RTco_select'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/m2/m2pim/libm2pim.so: undefined reference to `RTco_initSemaphore'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/m2/m2pim/libm2pim.so: undefined reference to `RTco_wait'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/m2/m2pim/libm2pim.so: undefined reference to `RTco_signal'
collect2: error: ld returned 1 exit status
~/code/m2> gm2-12 hello_world.mod
/usr/bin/ld: /tmp/ccHx6VOQ.a(a-hello_world_m2.o): in function `init(int, char**)':
a-hello_world_m2.cpp:(.text+0x154): undefined reference to `_M2_Hello_init'
/usr/bin/ld: /tmp/ccHx6VOQ.a(a-hello_world_m2.o): in function `finish()':
a-hello_world_m2.cpp:(.text+0x196): undefined reference to `_M2_Hello_finish'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/12/m2/m2pim/libm2pim.so: undefined reference to `RTco_select'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/12/m2/m2pim/libm2pim.so: undefined reference to `RTco_initSemaphore'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/12/m2/m2pim/libm2pim.so: undefined reference to `RTco_wait'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/12/m2/m2pim/libm2pim.so: undefined reference to `RTco_signal'
collect2: error: ld returned 1 exit status
~/code/m2> ls -al
total 24
drwxrwxr-x 2 dashster dashster 4096 Jun 4 18:19 .
drwxrwxr-x 23 dashster dashster 4096 Jun 2 03:02 ..
-rw-rw-r-- 1 dashster dashster 193 Jun 4 18:18 hello_world.mod
-rw-rw-r-- 1 dashster dashster 1904 Jun 4 18:19 hello_world.o