#1 2019-07-26 14:49:31

itSDS
Member
From: Germany
Registered: 2014-04-24
Posts: 516

Error Linking new 3.29 sqlite.obj to my Project

Hi AB

i get this error:
[dcc32 Fehler] SynSQlite3Static.pas(1294): E2065 Ungenügende Forward- oder External-Deklaration: '__ieee_32_p_inf'
linking latest (self build) sqlite3.obj

Here is my build command
"c:\Program Files (x86)\Embarcadero\Studio\20.0\bin\bcc32.exe" -6 -Oi -O2 -c -d -u- -I"c:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\shared" sqlite3.c


do you have any idea whats missing ? (With your sqlite3.obj i can link successfully)


Rad Studio 12.1 Santorini

Offline

#2 2019-07-26 15:13:57

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

Re: Error Linking new 3.29 sqlite.obj to my Project

Because we are using good old free BCC 5.5 for building.

Offline

#3 2019-07-26 22:38:42

itSDS
Member
From: Germany
Registered: 2014-04-24
Posts: 516

Re: Error Linking new 3.29 sqlite.obj to my Project

But i do not get this error using compiled SQLite 3.28 obj. It came with 3.29.
Normally i would say that the linker is missing a lib file with the named function...

Embarcadero made a lot changes to bcc in 10.3.2 and it may be a solution to use an older Version but why - if its only a missing function ?


Rad Studio 12.1 Santorini

Offline

#4 2019-07-27 07:32:20

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

Re: Error Linking new 3.29 sqlite.obj to my Project

__ieee_32_p_inf seems like some low-level 32-bit floating-point (single) conversion function, needed by the latest version of the BCC compiler, and not needed before.
I don't have it to reproduce here.

What is wrong with using the sqlite.obj file we supply?

Offline

#5 2019-07-27 11:11:00

itSDS
Member
From: Germany
Registered: 2014-04-24
Posts: 516

Re: Error Linking new 3.29 sqlite.obj to my Project

Oh nothing wrong with, but i build them by myself because i also build the 64Bit Versions


Rad Studio 12.1 Santorini

Offline

#6 2019-07-28 15:05:19

itSDS
Member
From: Germany
Registered: 2014-04-24
Posts: 516

Re: Error Linking new 3.29 sqlite.obj to my Project

Hi AB, just to close this issue.
the external symbol __ieee_32_p_inf is defined in math.h if INFINITY is not defined

in 3.28 there seems to be INFINTY defined (i can not find out where ..)
in 3.29 it is not defined resulting in using the definition from math.h

in Line 30821 of 3.29 sqlite.c it is used. In 3.28 the constant and in 3.29 the external definition.
As work around in changed the code to use the constant in 3.29 as in 3.28 - Now i can link it again.

          }else{
// #ifdef INFINITY  // auskommentiert by itSDS
//            result = INFINITY*s;  // auskommentiert by itSDS
//#else  // auskommentiert by itSDS
            result = 1e308*1e308*s;  /* Infinity */
//#endif  // auskommentiert by itSDS
          }

Rad Studio 12.1 Santorini

Offline

#7 2019-07-29 07:44:32

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

Re: Error Linking new 3.29 sqlite.obj to my Project

Worth a bug report to the SQLite3 team, I guess.
They used to keep Borland C++ compatibility.

Offline

#8 2019-07-29 20:46:24

itSDS
Member
From: Germany
Registered: 2014-04-24
Posts: 516

Re: Error Linking new 3.29 sqlite.obj to my Project

yes i'm in contact with bruneau from embarcadero who found the reason in sqlite.c. SQLite 3.29 includes math.h but 3.28 does not.
if you have access to the embarcadero discourse page you can read about it

Last edited by itSDS (2019-07-29 20:47:09)


Rad Studio 12.1 Santorini

Offline

Board footer

Powered by FluxBB