[fpc-pascal] large project Win32 External Linker Error with 3.0

Karoly Balogh (Charlie/SGR) charlie at scenergy.dfmk.hu
Thu Dec 3 02:40:22 CET 2015


Hi,

I have a fairly large project, which links against a number of C-written
libraries. With 2.6.0-2.6.4, it compiles fine, but with 3.0, it fails to
link with:

`___tls_start__' referenced in section `.data.n___tls_used' of
C:\FPC\3.0.0\units\i386-win32\rtl\sysinitpas.o: defined in discarded
section `.tls' of demo.dll
`___tls_end__' referenced in section `.data.n___tls_used' of
C:\FPC\3.0.0\units\i386-win32\rtl\sysinitpas.o: defined in discarded
section `.tls' of demo.dll

Random Googling reveals nothing useful regarding this message, apart from
people upgrading GCC versions and waving a dead chicken over the code
until it works. I also tried to upgrade GNU LD from the FPC-bundled 2.22
to 2.25, but it didn't help.

The internal linker also fails to link the same project with a number of
unresolved symbols, but that was also the case with 2.6.x, and the
external linker still linked the project properly. I diff-ed the linker
scripts, generated by 2.6.4 and 3.0.0, they're basically the same apart
from the different paths (due to different paths the compilers are
installed to). So the difference must be in the .o files created by the
compiler.

Any ideas from a Win32/Linker expert?

Thanks,
--
Charlie



More information about the fpc-pascal mailing list