Recompilation fails (unit loading problem?)
Original Reporter info from Mantis: Flawless
-
Reporter name: Christian Iversen
Original Reporter info from Mantis: Flawless
- Reporter name: Christian Iversen
Description:
When a certain set of units have changed, recompilation of a certain project fails.
It looks like this:
fpc -I../../config -I../../LibX/string/unicode -I../../LibX/core/osinc -I../../LibX/header -I../../LibX/ext/header -I../../LibX/ext/install -Fu../../LibX/header -Fu../../LibX/core -Fu../../LibX/math -Fu../../LibX/string -Fu../../LibX/ext/install -Fu../../LibX/ext/header -FE. -FUunits installer.pas
Free Pascal Compiler version 2.1.1 [2007/01/22] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Linux for i386
Compiling installer.pas
Compiling /home/chrivers/tech/source/LibX/header/LibX.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXOS.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXClasses.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXLog.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXArray.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXMemory.pas
Compiling /home/chrivers/tech/source/LibX/math/LibXMath.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXSort.pas
Compiling /home/chrivers/tech/source/LibX/string/LibXString.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXType.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXSearch.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXPlugin.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXStrings.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXParameter.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXFormat.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXDynArg.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXTypeParser.pas
LibXTypeParser.pas(116,35) Warning: Mixing signed expressions and longwords gives a 64bit result
Compiling /home/chrivers/tech/source/LibX/core/LibXMessage.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXError.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXCore.pas
Compiling /home/chrivers/tech/source/LibX/ext/header/LibXInstall.pas
Compiling /home/chrivers/tech/source/LibX/ext/install/LibXInstallCore.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXStreams.pas
LibXInstallCore.pas(284,5) Warning: unreachable code
LibXInstallCore.pas(454,2) Warning: User defined: NI
Compiling /home/chrivers/tech/source/LibX/ext/install/LibXInstallPlugins.pas
[...]
Doing a straight recompile breaks nothing:
fpc -I../../config -I../../LibX/string/unicode -I../../LibX/core/osinc -I../../LibX/header -I../../LibX/ext/header -I../../LibX/ext/install -Fu../../LibX/header -Fu../../LibX/core -Fu../../LibX/math -Fu../../LibX/string -Fu../../LibX/ext/install -Fu../../LibX/ext/header -FE. -FUunits installer.pas
Free Pascal Compiler version 2.1.1 [2007/01/22] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Linux for i386
Compiling installer.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXType.pas
[...]
However, doing a touch ../../LibX/core/* (a subset of the source files), does something odd:
fpc -I../../config -I../../LibX/string/unicode -I../../LibX/core/osinc -I../../LibX/header -I../../LibX/ext/header -I../../LibX/ext/install -Fu../../LibX/header -Fu../../LibX/core -Fu../../LibX/math -Fu../../LibX/string -Fu../../LibX/ext/install -Fu../../LibX/ext/header -FE. -FUunits installer.pas
Free Pascal Compiler version 2.1.1 [2007/01/22] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Linux for i386
Compiling installer.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXOS.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXClasses.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXLog.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXArray.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXMemory.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXSort.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXType.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXSearch.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXPlugin.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXStrings.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXParameter.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXFormat.pas
Compiling /home/chrivers/tech/source/LibX/core/LibXDynArg.pas
LibXDynArg.pas(327,11) Error: identifier idents no member "_AddRef"
LibXDynArg.pas(327,18) Error: Illegal expression
LibXDynArg.pas(341,15) Error: identifier idents no member "_AddRef"
LibXDynArg.pas(341,22) Error: Illegal expression
LibXDynArg.pas(358,4) Fatal: There were 4 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
make: *** [all] Error 1
Now, suddenly, a file that had no problems before contains a syntax error!
I'm putting a link to the testcase on core.
Mantis conversion info:
- Mantis ID: 8180
- OS: Linux
- OS Build: 2.6
- Platform: i386
- Version: 2.2.0
- Fixed in version: 2.2.4
- Fixed in revision: 12098 (#7b25cbb3)