gm2
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Compiling main module | linking


From: Michael Riedl
Subject: Compiling main module | linking
Date: Thu, 11 May 2023 23:02:23 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

Gaius,

perhaps I am doing something wrong but I do not get my main programs finally compiled and linked:

Here, as a sample, the options for the final compilation of the main module. It takes unrealistic long time for the compilation (M2RHF.mod is bit longer than 500 lines of code) and then "strange" error messages are printed to the terminal and the compiler terminated:

user@hostname:~/.../Chemie/scf/quellen.gm2$time make
gm2 -c -fiso -flibs=m2iso,m2pim,m2log -I /usr/local/home/user/Modula-2/Numerik/quellen.gm2 -I /usr/local/home/user/Modula-2/InOut/quellen.gm2 -I /home/user/Modula-2/Numerik/TestRoutinen/LinAlg -I /home/user/Modula-2/StringHandler  -O1 -fscaffold-main  M2RHF.mod /usr/local/home/user/Modula-2/Numerik/quellen.gm2/LMathLib.mod:478:36: error: In procedure »sinh«: the constructor type is »ChebVek« and this is different from the constant constant set which has a type »BITSET«
  478 |           CONST ChebKoeff = ChebVek{ (* Slatex DSINH *)
      |                                    ^
/usr/local/home/user/Modula-2/Numerik/quellen.gm2/LMathLib.mod:518:36: error: In procedure »cosh«: the constructor type is »ChebVek« and this is different from the constant constructor which has a type »ChebVek«
  518 |           CONST ChebKoeff = ChebVek{ (* coshm1 *)
      |                                    ^
./PeriSys.mod:198:35: error: In procedure »NEdelGas«: the constructor type is »PrSy« and this is different from the constant constant set which has a type »GenOptSet«
  198 |           CONST EdelGasKern = PrSy{ 0 BY  2,  (* H  - He : (--) *)
      |                                   ^
./PeriSys.mod:198:44: error: cannot mix construction of a array with a set
  198 |           CONST EdelGasKern = PrSy{ 0 BY  2,  (* H  - He : (--) *)
      |                                            ^
Makefile:37: recipe for target 'M2RHF.o' failed
make: *** [M2RHF.o] Error 1

real    6m23,878s
user    6m13,243s
sys    0m0,958s
user@hostname:~/.../Chemie/scf/quellen.gm2$

--------

E.g. the module PeriSys.mod does compile without any issue

user@hostname:~/.../Chemie/scf/quellen.gm2$make PeriSys.o
gm2 -c -fiso -flibs=m2iso,m2pim,m2log -I /usr/local/home/user/Modula-2/Numerik/quellen.gm2 -I /usr/local/home/user/Modula-2/InOut/quellen.gm2 -I /home/user/Modula-2/Numerik/TestRoutinen/LinAlg -I /home/user/Modula-2/StringHandler  -O1 PeriSys.mod
user@hostname:~/.../Chemie/scf/quellen.gm2$ls PeriSys.o
PeriSys.o

user@hostname:~/.../Chemie/scf/quellen.gm2$

as does the module LMathLib.mod. Seems that the compiler re-compiles all modules involved in the project and has some internal buffer overflow or the like (all modules involved have approx 80.000 lines of code (not counting the Fortran parts) - bit "too much" to do all at the same time). And this although I did NOT use "-fm2-whole-program" :-)

Not splitting the compilation and linking of the main module makes no difference - same "error" messages and no executable.

Linking the smaller programs in the same way does not show this effect - but they are all in the range of 2000 - 10.000 lines of code and of lower complexity.

Any idea ?

Michael









reply via email to

[Prev in Thread] Current Thread [Next in Thread]