[fpc-pascal] Why is cthreads unit not included by default

Jonas Maebe jonas.maebe at elis.ugent.be
Thu Aug 27 13:09:21 CEST 2009

On 27 Aug 2009, at 12:49, Graeme Geldenhuys wrote:

> Is this an issue, even if your program doesn't use any
> procedures/functions from the dynamically linked C library. For  
> example,
> a console application that includes the cthreads unit (which  
> dynamically
> links to C Library), but doesn't actually use the C Library or  
> threads.
> Would such a console application not run on an 8 year old Linux  
> distro?

It would not run *on* an 8-year old Linux distro regardless of whether  
you use libc, because FPC nowadays uses Linux 2.4.x+ system calls.  
What Michael was talking about was about running 8-year old programs  
on a current kernel.

And that would probably work, although with some caveats. Programs  
that use the C library also require special startup code. This code is  
normally in crt1.o and shipped together with the C library, and is  
always linked statically into the program. FPC contains its own  
version of that code for Linux and *BSD, but slightly adapted. There  
are different versions for at least libc5, glibc 2.x and uclibc (and  
they are not interchangeable).

The switchover from libc5 to glibc 2.x happened more than 8 years ago,  
so you'd probably be safe in this particular scenario.


More information about the fpc-pascal mailing list