I have made my own rootdisk derived from Slackware 9 by following the Bootdisk howto. I want to use it with a Pentium3 SBC having 128MB ram and 64MB IDE flash disk. I boot the 2.4.22 kernel from Slackware 9 using loadlin after booting dos from IDE flash disk and using the rootdisk as my initrd. Everything works fine and the system boots properly.
I've a c++ application using pthreads on my Slackware 9 desktop. It compiles and works properly on the desktop. However, when I put the executable on the SBC, it seg faults. I've used ldd to determine the shared libs. I've installed all the libs on the SBC and made sure that all libs come from my Slackware 9 desktop so that there isn't any conflict. When run from gdb, following errors appear.
Starting program: /root/main [New Thread 16384 (LWP 541)]
Program received signal SIGSEGV, Segmentation fault [Switching to Thread 16384 (LWP 541)]0x401bc299 in sYSMALLOc() from /lib/libc.so.6
I've compiled a c++ helloworld program, it works properly on the SBC. Similarly, producer consumer example from pthreads tutorial also works properly. Using free I can also see that the system has around 100MB of free ram.
Can anyone suggest what may be going wrong.