2009/8/19 Henry Vermaak :
Show quoted text 6 lines
2009/8/19 Евгений :
> Thank you for your advice, I tried. A simple socket program written in C
> works. Now I don't know what to do with Pascal, i don't want to rewrite my
> large program in C.
Try using strace to get more information.
If you are using an EABI kernel, it will be the socketcall syscall that's failing. This is the code in unistd.h:
/*
* The following syscalls are obsolete and no longer available for EABI. */
#if defined(__ARM_EABI__) && !defined(__KERNEL__)
#undef __NR_time
#undef __NR_umount
#undef __NR_stime
#undef __NR_alarm
#undef __NR_utime
#undef __NR_getrlimit
#undef __NR_select
#undef __NR_readdir
#undef __NR_mmap
#undef __NR_socketcall
#undef __NR_syscall
#undef __NR_ipc
#endif
The fpc socket implementation tries to use socketcall for arm eabi, so you can try the following patch and recompile fpc (not tested):
Index: rtl/linux/unixsock.inc
=================================================================== --- rtl/linux/unixsock.inc (revision 13557)
+++ rtl/linux/unixsock.inc (working copy)
@@ -13,7 +13,7 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }
-{$ifndef cpux86_64}
+{$if not defined(cpux86_64) and not defined(FPC_ABI_EABI)}
{$define NEED_SOCKETCALL}
{$endif}
Henry