<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
   this thread has been really interesting. It has filled in my
understanding of the tactics behind fpc a bit more.<br>
<br>
Cheers,<br>
    Mark.<br>
<br>
<br>
Michael Van Canneyt wrote:
<blockquote
 cite="mid:Pine.LNX.4.64.0808101121290.29051@home.freepascal.org"
 type="cite">
  <pre wrap="">
On Sun, 10 Aug 2008, Boian Mitov wrote:

  </pre>
  <blockquote type="cite">
    <pre wrap="">   Hi Daniel,

Thank you!
As I mentioned I am very new, and still don't know the exact rules of the
purpose of specific units. I am not sure if the timers are available on other
systems than Linux yet. I am sure there is some form of equivalent. I actually
don't have any Kylix code. I am porting Windows code, actually making it cross
platform as we support Delphi 5-2007, and plan to support Lazarus for Windows
and Linux for now, and hopefully for other platforms in the future. Porting
huge code from Windows is slow and error prone process, so I am doing it in
stages. For now I have made everything to recompile under Lazarus in Linux,
and now I am filling the items I had to cut from the code during the
conversion. In Windows I use the Media Timers, and the only equivalent thing I
have found in Linux is the High Resolution timers. I have been studding the
FPC and Lazarus code, and I discovered the libc, and it seemed as the logical
place such timers to be implemented. If they belong to a different location,
this is fine. I can also keep them in my code, but I thought other people can
benefit from the translation.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
I think it is necessary to explain certain things a bit more:

FPC tries to be independent of the C library as much as possible. 

We do provide an interface to the Unix system which is very much 
like the C library (that is, adheres roughly to certain Posix 
standards), so you will find most LibC functionality in the 
BaseUnix, Unix, UnixTypes units. These units are cross platform
(for unix like systems), and, where possible, interface to the 
unix kernel. For some platforms they simply fall back to the C 
library of the system.

On the other hand, Kylix based itself on GNU Libc entirely. 
For compatibility reasons, we have created a similar unit as 
Kylix had. This unit can be used, but only on i386 and on
systems that use GNU libc (Linux, in casu), because the 
record and type definitions it contains are i386 and GNU Libc specific.

You have therefor 2 options:
- Continue with using Libc, and provide patches that keep it  up to date.

- Implement the functionality that you need in a Posix like way, and make
  sure it works accros processor architectures and operating systems.

Naturally, we prefer the latter - as explained by Daniel - but if you 
want to do the former (which is most likely less work): no problems, 
we accept patches.

Michael.
_______________________________________________
fpc-devel maillist  -  <a class="moz-txt-link-abbreviated" href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freepascal.org/mailman/listinfo/fpc-devel">http://lists.freepascal.org/mailman/listinfo/fpc-devel</a>

  </pre>
</blockquote>
<br>
</body>
</html>