[sword-devel] Compile Error: extern DELPHITHREAD TIdThread* ThreadSelf;

Bruce Ramsland sword-devel@crosswire.org
Mon, 16 Apr 2001 18:10:12 -0400


Troy,

No, not from the Borland site.  This morning I
downloaded gsIdVersion "8.1.0-A"  from the
ftp.nevrona.com site using the indy81 userid.

Let me explain what I do so that you can pick
up any errors as you read the steps.

I have built a batch file that peforms the
following steps:
1. Download all the changed files from the Indy
   site using the "WS_FTP Syncronize Utility"
   These original files are saved in C:\Data\Indy81
   directory.
2. Copy all the files to a newly recreated working
   directory (C:\Data\Indy81 to C:\Data\Indy).
3. Fixes the PATH to include the C:\Data\Indy
   and C:\Data\Indy\INSTAL~1\ADDITI~1 paths.
4. Compile the Indy50.dpk Package by calling the
   FullC5.bat batch file.
5. Remove the "Internet Direct (Indy) for D5
   Property and Component Editors" listing in
   the Install Package Dialog.
   (Note that D4 comes with Borland C++ Builder 5.0)
6. Add the newly created dclIndy50.bpl package.

The following is a copy of the compile output:

*************** Begin of Output ***************
Saving Original PATH

Deleting C:\Data\Indy...
Deleting C:\Data\C5...

Copying files from C:\Data\Indy81 to C:\Data\Indy
900 File(s) copied

PATH is now appended with C:\Data\Indy;C:\Data\Indy\INSTAL~1\ADDITI~1

The following listing is the Compilation stage performed
by Calling FullC5.bat from the C:\Data\Indy directory

Borland Delphi  Version 13.0  Copyright (c) 1983,99 Inprise Corporation
IdCompilerDefines.inc(42)
IdException.pas(87)
IdResourceStrings.pas(354)
IdWinsock.pas(1236)
IdStackConsts.pas(166)
IdStack.pas(314)
IdStackWinsock.pas(519)
IdURI.pas(173)
IdGlobal.pas(1234)
IdBaseComponent.pas(30)
IdAntiFreezeBase.pas(84)
IdAntiFreeze.pas(56)
IdAssignedNumbers.pas(1127)
IdComponent.pas(161)
IdSocketHandle.pas(362)
IdIntercept.pas(75)
IdIOHandler.pas(27)
IdTCPStream.pas(50)
IdStream.pas(60)
IdIOHandlerSocket.pas(58)
IdTCPConnection.pas(929)
IdThread.pas(177)
IdThreadMgrDefault.pas(44)
IdTCPServer.pas(459)
IdThreadMgr.pas(77)
IdChargenServer.pas(67)
IdCoder.pas(70)
IdCoder3To4.pas(156)
IdEMailAddress.pas(630)
IdCoderHeader.pas(662)
IdCoderMIME.pas(53)
IdCoderQuotedPrintable.pas(167)
IdCoderUUE.pas(102)
IdCoderXXE.pas(53)
IdCookie.pas(731)
idCookieManager.pas(201)
IdStrings.pas(81)
IdDateTimeStamp.pas(1382)
IdSocks.pas(81)
IdTCPClient.pas(325)
IdDayTime.pas(51)
IdDayTimeServer.pas(54)
IdDICTServer.pas(173)
IdDiscardServer.pas(52)
IdUDPBase.pas(218)
IdUDPClient.pas(36)
IdDNSResolver.pas(1581)
IdEcho.pas(75)
IdEchoServer.pas(51)
IdFinger.pas(109)
IdFingerServer.pas(78)
IdFtpList.pas(438)
IdSimpleServer.pas(127)
IdFTP.pas(600)
IdHeaderList.pas(372)
IdGopherConsts.pas(115)
IdGopher.pas(647)
IdGopherServer.pas(158)
IdHash.pas(50)
IdHashCRC.pas(138)
IdHashElf.pas(38)
IdHashMessageDigest.pas(36) Warning: Return value of function
'TIdHashMessageDig
est2.HashValue' might be undefined
IdHashMessageDigest.pas(43) Warning: Return value of function
'TIdHashMessageDig
est4.HashValue' might be undefined
IdHashMessageDigest.pas(50) Warning: Return value of function
'TIdHashMessageDig
est5.HashValue' might be undefined
IdHashMessageDigest.pas(53)
IdHostnameServer.pas(123)
IdSSLIntercept.pas(31)
IdHTTP.pas(1044)
IdHTTPServer.pas(991)
IdRawBase.pas(142)
IdRawClient.pas(21)
IdRawHeaders.pas(325)
IdIcmpClient.pas(229)
IdIdent.pas(165)
IdIdentServer.pas(105)
IdIMAP4Server.pas(496)
IdIOHandlerStream.pas(65)
IdIPWatch.pas(321)
IdIrcServer.pas(476)
IdLogBase.pas(91)
IdLogDebug.pas(98)
IdMappedPortTCP.pas(109)
IdUDPServer.pas(229)
IdMappedPortUDP.pas(70)
IdMessageCoder.pas(252)
IdMessageCoderMIME.pas(197)
IdMessage.pas(685)
IdMessageClient.pas(390)
IdMessageCoderUUE.pas(135)
IdMessageCoderXXE.pas(46)
IdMIMETypes.pas(150)
IdNetworkCalculator.pas(529)
IdNNTP.pas(701)
IdNNTPServer.pas(358)
IdPOP3.pas(214)
IdPOP3Server.pas(241)
IdQotd.pas(49)
IdQotdServer.pas(61)
IdRawFunctions.pas(495)
IdRemoteCMDClient.pas(201)
IdRemoteCMDServer.pas(76)
IdRexec.pas(64)
IdRexecServer.pas(58)
IdRSH.pas(66)
IdRSHServer.pas(69)
IdSMTP.pas(282)
IdSMTPServer.pas(1016)
idsnmp.pas(618)
IdSNTP.pas(194)
IdSSLOpenSSLHeaders.pas(4591)
IdSSLOpenSSL.pas(1218)
IdTelnet.pas(528)
IdTelnetServer.pas(152)
IdThreadMgrPool.pas(107)
IdTime.pas(140)
IdTimeServer.pas(74)
IdTrivialFTPBase.pas(105)
IdTrivialFTP.pas(269)
IdTrivialFTPServer.pas(349)
IdTunnelCommon.pas(381)
IdTunnelMaster.pas(779)
IdTunnelSlave.pas(998)
IdVCard.pas(1344)
IdWhois.pas(57)
IdWhoIsServer.pas(81)
Indy50.dpk(155)
Indy50.dpk(156) Warning: Unit 'IdStrings' implicitly imported into package
'Indy
50'
Indy50.dpk(156) Warning: Exported package threadvar 'IdThread.ThreadSelf'
cannot
 be used outside of this package
41603 lines, 19.41 seconds, 1267 bytes code, 0 bytes data.
Borland Delphi  Version 13.0  Copyright (c) 1983,99 Inprise Corporation
Indy50.dpk(155)
Warning: Unit 'IdStrings' implicitly imported into package 'Indy50'
Warning: Exported package threadvar 'IdThread.ThreadSelf' cannot be used
outside
 of this package
Hint: Package 'Indy50' does not use or export 'IdCookie.IsTopDomain'
Hint: Package 'Indy50' does not use or export 'IdCookie.IsDomain'
Hint: Package 'Indy50' does not use or export 'IdCookie.IsFQDN'
156 lines, 2.12 seconds, 469700 bytes code, 8021 bytes data.
Creating Indy50.LIB file, please wait...
DOS-reported error: Permission denied
DOS-reported error: Permission denied
DOS-reported error: Permission denied
Could Not Find C:\Data\C5\Indy50.bak
Borland Delphi  Version 13.0  Copyright (c) 1983,99 Inprise Corporation
IdAbout.pas(855)
IdDsnBaseCmpEdt.pas(46)
IdDsnPropEdBinding.pas(292)
IdDsnRegister.pas(35)
IdRegister.pas(123)
dclIndy50.dpk(41)
1398 lines, 2.23 seconds, 24628 bytes code, 197 bytes data.

Original PATH restored.
**************** End of Output ****************

Plese notice the warning:
	"Indy50.dpk(156) Warning: Exported package
	threadvar 'IdThread.ThreadSelf' cannot
	be used outside of this package"

Do you suppose that this is the problem?

Best Regards,
Bruce Ramsland


-----Original Message-----
From: owner-sword-devel@crosswire.org
[mailto:owner-sword-devel@crosswire.org]On Behalf Of Troy A. Griffitts
Sent: Monday, April 16, 2001 4:24 PM
To: sword-devel@crosswire.org
Subject: Re: [sword-devel] Compile Error: extern DELPHITHREAD TIdThread*
ThreadSelf;


Bruce,
	Are you using the free version downloadable from Borland's site?  Are
you saying that you sucessfully got some things compiled before a couple
weeks ago?  No one has yet reported attempting to compile with that
compiler, so I'd love to hear about your experiences.

		-Troy.

PS.  I have not clue about that error?  Maybe it has something to do
with our WIN32 ifdefs we added, but I wouldn't think so.  Seems the
error is happening in one of borland's headers, but that could just be
because we're including something of ours that wrongly defines something
they need FIRST.  You might follow the compile stack back up and put the
borland include first in our cpp on which the compile fails.



Bruce Ramsland wrote:
>
> I have been getting this error for a couple of weeks
> now.  At first I hoped it would go away in subsequent
> builds.  However, this morning I downloaded the most
> recent version and still get the same error.  I am
> using Borland C++ Builder 5.0 which comes with a
> Delphi 4.0 compiler.
>
> When using IdNNTP (News Client Component), I get the
> following compile error for file IdThread.hpp.
>
> [C++ Error] IdThread.hpp(73): E2141 Declaration syntax error
>
> The declaration causing the error is:
>         "extern DELPHITHREAD TIdThread* ThreadSelf;"
>
> Can anyone explain what is going on?
>
> Best Regards,
> Bruce Ramsland