Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2015-12

large project Win32 External Linker Error with 3.0

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Karoly Balogh (Charlie/SGR

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