[fpc-pascal] support for FreeBSD4 broken in fpc 2.0.4

Marc Santhoff M.Santhoff at t-online.de
Fri Jan 26 16:58:27 CET 2007


Hi,

I haven't noticed up to now, but using fpc-2.0.4 on FreeBSD does not
work completely in FreeBSD 4.11 any more.

Observations:

- Compiling fpc 2.0.4 works.

- Compiling programs does not work with the new startup
  code (rtl/freebsd/i386/cprto.as)
  error: failure in _init_tls()
  couldn't find info on what that is ...

- blindly switching to fpc 2.0.2s cprt0.as does make most
  things work again ...

- ... but multitasking isn't possible, the old cprt0.as
  does not work with threads at all
  errors:

(gdb) bt
#0  0x2821e88b in pth_cancel_point () from /usr/local/lib/pth/libpthread.so.20
#1  0x28217938 in pthread_testcancel () from /usr/local/lib/pth/libpthread.so.20
#2  0x28536768 in _thread_enter_cancellation_point () from /usr/lib/libc_r.so.4
#3  0x2852a954 in fcntl () from /usr/lib/libc_r.so.4
#4  0x2821da45 in pth_fdmode () from /usr/local/lib/pth/libpthread.so.20
#5  0x2821a86f in __pth_scheduler_init () from /usr/local/lib/pth/libpthread.so.20
#6  0x2821ca76 in pth_init () from /usr/local/lib/pth/libpthread.so.20
#7  0x28217fa0 in pthread_mutex_init () from /usr/local/lib/pth/libpthread.so.20
#8  0x285020c2 in _thread_init () from /usr/lib/libc_r.so.4
#9  0x285384a8 in _thread_init_invoker::_thread_init_invoker () from /usr/lib/libc_r.so.4
#10 0x285384e1 in _thread_init_invoker::_thread_init_invoker () from /usr/lib/libc_r.so.4
#11 0x2853850a in _thread_init_invoker::_thread_init_invoker () from /usr/lib/libc_r.so.4
#12 0x28538538 in _thread_init_invoker::_thread_init_invoker () from /usr/lib/libc_r.so.4
#13 0x284bd6d6 in _init () from /usr/lib/libc_r.so.4
#14 0x281ecb5c in _rtld () from /usr/libexec/ld-elf.so.1

Is there any chance of having support for FreeBSD 4 integrated into
newer compilers?

What would it require to do so?

If the difference in initializing threads between 2.0.2 and 2.0.4 would
be put into makefiles or ifdef's I think it could work ... but my
knowledge of compiler internals and startup code is very limited.

TIA,
Marc





More information about the fpc-pascal mailing list