linking error when generic crc differ
Original Reporter info from Mantis: BeniBela @benibela
-
Reporter name: Benito van der Zander
Original Reporter info from Mantis: BeniBela @benibela
- Reporter name: Benito van der Zander
Description:
I use some source files in multiple projects in the same directory and now FPC has created two different object files for this file:
/usr/local/bin/fpc -MObjFPC -Scgi -Cg -O1 -g -gl -l -vewnhibq -Fu../../../../../benito/hg/components/pascal/import/synapse -Fu../../../../../benito/hg/components/pascal/import/regexpr/Source -Fu../../../../../benito/hg/components/pascal/internet -Fu. -Fu../../../components/pascal/import/bigint -Fu../../../../opt/lazarus/lcl/units/x86_64-linux -Fu../../../../opt/lazarus/components/lazutils/lib/x86_64-linux -Fu../../../components/pascal/lib/x86_64-linux -Fu../../../../opt/lazarus/packager/units/x86_64-linux -oxidelcgi
made a file xquery.namespace.o containing this method:
0000000000000000 g F .text.n_xquery.namespaces_
tfastinterfacelist1
crc0a34dd37___
$_deletelongint 00000000000000d9 XQUERY.NAMESPACES
_$TFASTINTERFACELIST1
CRC0A34DD37___
$_DELETE$LONGINT
while
/usr/local/bin/fpc -MObjFPC -Scaghi -CX -Cg -Cr -O2 -g -gl -gv -XX -l -vewnhibq -Filib/x86_64-linux -Fu../../../components/pascal/import/synapse -Fu../../../components/pascal/internet -Fu../../../components/pascal/data -Fu../../../components/pascal/system -Fu../../../components/pascal/import/regexpr/source -Fu../../../components/pascal/import/utf8tools -Fu../../../components/pascal/lib/x86_64-linux -Fu../../../../opt/lazarus/packager/units/x86_64-linux -Fu. -FUlib/x86_64-linux -FE. -oxidel
made a file lib/x86_64-linux/xquery.namespace.o containing method:
0000000000000000 g F .text.n_xquery.namespaces_
tfastinterfacelist1
crc7b637175___
$_deletelongint 00000000000000cc XQUERY.NAMESPACES
_$TFASTINTERFACELIST1
CRC7B637175___
$_DELETE$LONGINT
Since I made both fpc calls in the same directory, the second call finds the xquery.namespace.o of the first call, and uses the CRC0A34DD37 method. But in the link.res it refers to its input lib/x86_64-linux/xquery.namespace.o, so it does not link:
/home/theo/hg/programs/internet/xidel//../../../components/pascal/data/simplehtmltreeparser.pas:1797: undefined reference to `XQUERY.NAMESPACES_
TFASTINTERFACELIST1
CRC0A34DD37___
$_DELETE$LONGINT'
Mantis conversion info:
- Mantis ID: 35608
- OS: linux
- OS Build: opensuse
- Build: r40721
- Platform: amd64
- Version: 3.3.1