Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Pascal Misc > Re: compiling c...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 6 of 8 Topic 786 of 811
Post > Topic >>

Re: compiling curl wrappers

by Marco van de Voort <marcov@[EMAIL PROTECTED] > Apr 13, 2008 at 08:24 PM

On 2008-04-13, P.A.C.Nunnink@[EMAIL PROTECTED]
 <P.A.C.Nunnink@[EMAIL PROTECTED]
> wrote:
> Free Pascal Compiler version 2.0.2 [2005/11/17] for

Note that this version is pretty old. 2.2.0 is the most recent version.

> Target OS: FreeBSD/ELF for i386

Also noted.

> Compiling
> curlobj.pas
> ocurlprv.inc(112,17) Error: Identifier not found "pIOFile"
> ocurlprv.inc(112,24) Error: Error in type definition
> ocurlprt.inc(160,44) Error: Identifier not found "pIOFile"
> ocurlpub.inc(80,33) Error: Identifier not found "pIOFile"
> curlobj.pas(74,3) Fatal: There were 4 errors compiling module,  stopping
> curlobj.pas(74,3) Fatal: Compilation aborted
> gmake[1]: Leaving directory `/usr/home/u204056/curl/curlpas-2005-11-05/
> src'

These are a problem, since the functions that use these types (FILE * in
C)
are more part of the C runtime of libc (rather than the OS interface).
There
is no ready to use substitute in the FPC rtl. One can also see in this
example why we don't sup****t the libc unit. If you look up the relevant
declarations in libc unit, they reveals too much detail (you can see glibc
specific fields in these declarations that will never work with non
glibc's,
and have some version risk associated for glibc itself even)

If I had to solve this, I would try one of these solutions, in this order
(first one first), or a combination.

1. Try to rewrite it so that I don't need getc and similar C functions.
2. Try to see if it is used as an opague pointer (a handle so to speak),
and
just define it as "pointer".
3. Try to copy the needed functions from libc.pp and adapt them with OS
specific defines. 

Personally I think that 3 will work always, but will require adaptation
every so often, and for each new OS (and mixing with Pascal IO might
break),
which is why we don't expose these functions by default.

Note that if you can't avoid this all together (iow if FILE is part of the
curl library interface), that indicates that libCurl is not really
designed
as a library with a well defined API, but a binary they quickly tried to
transform to a lib.  If you notice that, file a bug with them. It won't
solve your problems, but at least they'll rethink it, helping the next
poor
guy that tries it.
 




 8 Posts in Topic:
compiling curl wrappers
P.A.C.Nunnink@[EMAIL PROT  2008-04-12 17:51:25 
Re: compiling curl wrappers
Marco van de Voort <ma  2008-04-13 10:04:58 
Re: compiling curl wrappers
P.A.C.Nunnink@[EMAIL PROT  2008-04-13 10:00:37 
Re: compiling curl wrappers
Marco van de Voort <ma  2008-04-13 17:17:24 
Re: compiling curl wrappers
P.A.C.Nunnink@[EMAIL PROT  2008-04-13 10:23:34 
Re: compiling curl wrappers
Marco van de Voort <ma  2008-04-13 20:24:29 
Re: compiling curl wrappers
P.A.C.Nunnink@[EMAIL PROT  2008-04-14 05:18:57 
Re: compiling curl wrappers
Marco van de Voort <ma  2008-04-14 13:09:03 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Thu Jul 24 12:52:48 CDT 2008.