#1 2015-10-11 22:20:17

tudi_x
Member
Registered: 2015-02-01
Posts: 3

Undefined symbol: __endthreadex on FPC 3.1.1

Hi,
I am using the Lazarus version created with fpcup (Lazarus 1.5 32b on Win 7 64b).
I have downloaded the latest nightly build and the additional files based on the links in the documentation (http://synopse.info/files/html/Synopse% … l#TITL_113).

I am getting Undefined symbol: __endthreadex both when I try to run compilFPC.bat or when compiling 02 - Embedded SQLite3 ORM.
I did not get this error when compiling 01 - In Memory ORM.
Please advise what I am missing.

From D:\tempbuild\fpc\compilMsg file:

Free Pascal Compiler version 3.1.1 [2015/10/11] for i386
Copyright (c) 1993-2015 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling TestSQL3.dpr
Compiling ..\SynLZ.pas
SynLZ.pas(347,17) Warning: Calling an overload function in assembler
SynLZ.pas(505,21) Warning: Local variable "cache" does not seem to be initialized
SynLZ.pas(960,21) Warning: Local variable "cache" does not seem to be initialized
Compiling ..\SynLZO.pas
....
Compiling mORMotSelfTests.pas
mORMotSelfTests.pas(163,3) Warning: unreachable code
mORMotSelfTests.pas(80,3) Hint: Unit "SynBigTable" not used in mORMotSelfTests
TestSQL3.dpr(98,3) Hint: Unit "SynLZ" not used in TestSQL3
TestSQL3.dpr(99,3) Hint: Unit "SynLZO" not used in TestSQL3
TestSQL3.dpr(102,3) Hint: Unit "SynBidirSock" not used in TestSQL3
TestSQL3.dpr(105,3) Hint: Unit "SynTests" not used in TestSQL3
TestSQL3.dpr(117,3) Hint: Unit "dddInfraAuthRest" not used in TestSQL3
TestSQL3.dpr(118,3) Hint: Unit "dddInfraSettings" not used in TestSQL3
TestSQL3.dpr(120,3) Hint: Unit "dddInfraEmail" not used in TestSQL3
TestSQL3.dpr(122,3) Hint: Unit "dddInfraRepoUser" not used in TestSQL3
TestSQL3.dpr(128,3) Hint: Unit "SynSM" not used in TestSQL3
TestSQL3.dpr(130,3) Hint: Unit "SynBigTable" not used in TestSQL3
TestSQL3.dpr(140,3) Hint: Unit "mORMotHttpServer" not used in TestSQL3
TestSQL3.dpr(165,3) Hint: Unit "mORMotMongoDB" not used in TestSQL3
TestSQL3.dpr(168,3) Hint: Unit "SynZip" not used in TestSQL3
Linking d:\tempbuild\fpc\TestSQL3.exe
TestSQL3.dpr(187,1) Error: Undefined symbol: __endthreadex
TestSQL3.dpr(187,1) Error: Undefined symbol: __beginthreadex
TestSQL3.dpr(187,1) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
Error: c:\Development\fpc\bin\i386-win32\ppc386.exe returned an error exitcode

Thank you,
Tudor

Last edited by tudi_x (2015-10-11 22:23:07)

Offline

#2 2015-10-12 06:56:08

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,661
Website

Re: Undefined symbol: __endthreadex on FPC 3.1.1

Please try with the updated .o files from http://synopse.info/files/sqlite3fpc.7z

Note that we started supporting Win64 target, and include some sqlite3 static linking.
Not fully working yet, but we seem in a good path!

Offline

#3 2015-10-12 08:37:53

AOG
Member
Registered: 2014-02-24
Posts: 490

Re: Undefined symbol: __endthreadex on FPC 3.1.1

There are a few typos in SynSQLite3Static.pas ... sorry about that !

These two
-  {$ifdef FPC}{$ifdef CPU64}alias : '__imp__beginthreadex'{$else}alias : '__imp___beginthreadex'{$endif};{$endif}
+  {$ifdef FPC}{$ifdef CPU64}alias : '__imp__beginthreadex'{$else}alias : '__beginthreadex'{$endif};{$endif}

-  {$ifdef FPC}{$ifdef CPU64}alias : '__imp__endthreadex'{$else}alias : '__imp___endthreadex'{$endif};{$endif}
+  {$ifdef FPC}{$ifdef CPU64}alias : '__imp__endthreadex'{$else}alias : '__endthreadex'{$endif};{$endif}

and maybe:
-  {$ifdef FPC}{$ifdef CPU64}alias : 'localtime'{$else}alias : '__localtime32'{$endif};{$endif}
+  {$ifdef FPC}{$ifdef CPU64}alias : 'localtime'{$else}alias : '_localtime'{$endif};{$endif}

Offline

#4 2015-10-12 09:02:00

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,661
Website

Re: Undefined symbol: __endthreadex on FPC 3.1.1

@AOG It works on my side, with the .o supplied in the latest http://synopse.info/files/sqlite3fpc.7z
So it should not be necessary to change anything in SynSQLite3Static.pas.

AFAIR the exports of your mingw compiled .o are not the same.
I used the latest mingw 5.2 version (see the updated .bat files in the trunk).

Offline

#5 2015-10-12 11:21:58

tudi_x
Member
Registered: 2015-02-01
Posts: 3

Re: Undefined symbol: __endthreadex on FPC 3.1.1

Hi,
I am not having the message anymore with the new files.
I will go for the blog creation next.

Thank you very much,
Tudor

Offline

#6 2015-10-12 21:40:58

AOG
Member
Registered: 2014-02-24
Posts: 490

Re: Undefined symbol: __endthreadex on FPC 3.1.1

You're right Ab !
Thanks for providing the correct binaries !!
They work without changes on my side also.

Offline

Board footer

Powered by FluxBB