* Dynamic lib loading & memory question
@ 2004-06-24 21:58 Smith, Craig
2004-06-24 22:39 ` Wolfgang Denk
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Smith, Craig @ 2004-06-24 21:58 UTC (permalink / raw)
To: linuxppc-embedded
Hello,
I have a simple hello world program I'm trying to compile and run on a
custom PPC(855T) board. It will work fine if I statically link the
executable with the necessary libs. However if I don't statically link
(relying on ld.so etc.), the program will core dump. My system has 16M of
SDRAM (I just upgraded it from 8M and I believe it's configured right).
Anyway, here's the output and other info that might help someone tell me
what I'm doing wrong...thanks so much!
Also, please see a question at the very bottom about memory...
########################################
### The "good" version:
########################################
root@raptorlinux->~ [9] ./hw_ppc-static
Hello world 1 times!
Hello world 2 times!
Hello world 3 times!
Hello world 4 times!
Hello world 5 times!
Hello world 6 times!
Hello world 7 times!
Hello world 8 times!
Hello world 9 times!
########################################
### strace of the "good" version:
########################################
root@raptorlinux->~ [13] strace hw_ppc-static
execve("./hw_ppc-static", ["hw_ppc-static"], [/* 9 vars */]) = 0
fcntl64(0, F_GETFD) = 0
fcntl64(1, F_GETFD) = 0
fcntl64(2, F_GETFD) = 0
geteuid() = 0
getuid() = 0
getegid() = 0
getgid() = 0
brk(0) = 0x1007d574
brk(0x1007e574) = 0x1007e574
brk(0x1007f000) = 0x1007f000
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(3, 0), ...}) = 0
ioctl(1, TCGETS or TCGETS, {B38400 opost isig icanon echo ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x30000000
write(1, "Hello world 1 times!\n", 21Hello world 1 times!) = 21
write(1, "Hello world 2 times!\n", 21Hello world 2 times!) = 21
write(1, "Hello world 3 times!\n", 21Hello world 3 times!) = 21
write(1, "Hello world 4 times!\n", 21Hello world 4 times!) = 21
write(1, "Hello world 5 times!\n", 21Hello world 5 times!) = 21
write(1, "Hello world 6 times!\n", 21Hello world 6 times!) = 21
write(1, "Hello world 7 times!\n", 21Hello world 7 times!) = 21
write(1, "Hello world 8 times!\n", 21Hello world 8 times!) = 21
write(1, "Hello world 9 times!\n", 21Hello world 9 times!) = 21
munmap(0x30000000, 4096) = 0
exit(0) = ?
########################################
### The "bad" version:
########################################
root@raptorlinux->~ [10] ./hw_ppc
Segmentation fault (core dumped)
########################################
### strace of the "bad" version:
########################################
root@raptorlinux->~ [11] strace ./hw_ppc
execve("./hw_ppc", ["./hw_ppc"], [/* 9 vars */]) = 0
brk(0) = 0x10010898
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\317"..., 1024)
= 1024
fstat64(3, {st_mode=S_IFREG|0777, st_size=1295844, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x30017000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV (core dumped) +++
########################################
### Here's my lib directory:
########################################
root@raptorlinux->~ [12] ls -l /lib
-rwxrwxrwx 1 root root 1272 Jun 8 2003 Mcrt1.o
-rwxrwxrwx 1 root root 8596 Jun 8 2003 crt1.o
-rwxrwxrwx 1 root root 2344 Jun 8 2003 crti.o
-rwxrwxrwx 1 root root 1956 Jun 8 2003 crtn.o
drwxrwxrwx 3 root root 512 Jan 12 18:32 gcc-lib
drwxrwxrwx 2 root root 4096 Jan 12 18:32 gconv
-rwxrwxrwx 1 root root 28977 Jun 8 2003 gcrt1.o
-rwxrwxrwx 1 root root 97916 Jun 21 13:48 ld-2.3.1.so
lrwxrwxrwx 1 root root 11 Jun 18 20:47 ld.so.1 ->
ld-2.3.1.so
drwxrwxrwx 2 root root 1024 Jan 12 18:32 ldscripts
-rwxrwxrwx 1 root root 5040 Jun 21 13:48
libBrokenLocale-2.3.1.so
-rwxrwxrwx 1 root root 30066 Jun 8 2003 libBrokenLocale.a
lrwxrwxrwx 1 root root 20 Jun 18 20:47 libBrokenLocale.so
-> libBrokenLocale.so.1
lrwxrwxrwx 1 root root 24 Jun 18 20:47 libBrokenLocale.so.1
-> libBrokenLocale-2.3.1.so
-rwxrwxrwx 1 root root 15100 Jun 21 13:48 libSegFault.so
-rwxrwxrwx 1 root root 11340 Jun 21 13:48 libanl-2.3.1.so
-rwxrwxrwx 1 root root 181068 Jun 8 2003 libanl.a
lrwxrwxrwx 1 root root 11 Jun 18 20:47 libanl.so ->
libanl.so.1
lrwxrwxrwx 1 root root 15 Jun 18 20:47 libanl.so.1 ->
libanl-2.3.1.so
-rwxrwxrwx 1 root root 2014 Jun 8 2003 libbsd-compat.a
-rwxrwxrwx 1 root root 1295844 Jun 21 13:48 libc-2.3.1.so
-rwxrwxrwx 1 root root 27451288 Jun 8 2003 libc.a
-rwxrwxrwx 1 root root 198 Jun 8 2003 libc.so
lrwxrwxrwx 1 root root 13 Jun 18 20:47 libc.so.6 ->
libc-2.3.1.so
-rwxrwxrwx 1 root root 58444 Jun 8 2003 libc_nonshared.a
-rwxrwxrwx 1 root root 21460 Jun 21 13:48 libcrypt-2.3.1.so
-rwxrwxrwx 1 root root 101658 Jun 8 2003 libcrypt.a
lrwxrwxrwx 1 root root 13 Jun 18 20:47 libcrypt.so ->
libcrypt.so.1
lrwxrwxrwx 1 root root 17 Jun 18 20:47 libcrypt.so.1 ->
libcrypt-2.3.1.so
-rwxrwxrwx 1 root root 10616 Jun 21 13:48 libdl-2.3.1.so
-rwxrwxrwx 1 root root 43032 Jun 8 2003 libdl.a
lrwxrwxrwx 1 root root 10 Jun 18 20:47 libdl.so ->
libdl.so.2
lrwxrwxrwx 1 root root 14 Jun 18 20:47 libdl.so.2 ->
libdl-2.3.1.so
-rwxrwxrwx 1 root root 19230 Oct 19 2003 libfrtbegin.a
-rwxrwxrwx 1 root root 2014 Jun 8 2003 libg.a
lrwxrwxrwx 1 root root 13 Jun 18 20:47 libgcc_s.so ->
libgcc_s.so.1
-rwxrwxrwx 1 root root 52796 Jun 21 13:48 libgcc_s.so.1
lrwxrwxrwx 1 root root 17 Jun 18 20:47 libgcc_s_nof.so ->
libgcc_s_nof.so.1
-rwxrwxrwx 1 root root 51768 Jun 21 13:48 libgcc_s_nof.so.1
-rwxrwxrwx 1 root root 854630 Oct 19 2003 libiberty.a
-rwxrwxrwx 1 root root 2412 Jun 8 2003 libieee.a
-rwxrwxrwx 1 root root 485568 Jun 21 13:48 libm-2.3.1.so
-rwxrwxrwx 1 root root 3031178 Jun 8 2003 libm.a
lrwxrwxrwx 1 root root 9 Jun 18 20:47 libm.so -> libm.so.6
lrwxrwxrwx 1 root root 13 Jun 18 20:47 libm.so.6 ->
libm-2.3.1.so
-rwxrwxrwx 1 root root 3268 Jun 8 2003 libmcheck.a
-rwxrwxrwx 1 root root 18820 Jun 21 13:48 libmemusage.so
-rwxrwxrwx 1 root root 79408 Jun 21 13:48 libnsl-2.3.1.so
-rwxrwxrwx 1 root root 1936802 Jun 8 2003 libnsl.a
lrwxrwxrwx 1 root root 11 Jun 18 20:47 libnsl.so ->
libnsl.so.1
lrwxrwxrwx 1 root root 15 Jun 18 20:47 libnsl.so.1 ->
libnsl-2.3.1.so
-rwxrwxrwx 1 root root 46708 Jun 21 13:48
libnss_compat-2.3.1.so
lrwxrwxrwx 1 root root 18 Jun 18 20:47 libnss_compat.so ->
libnss_compat.so.2
lrwxrwxrwx 1 root root 22 Jun 18 20:47 libnss_compat.so.2
-> libnss_compat-2.3.1.so
-rwxrwxrwx 1 root root 14832 Jun 21 13:48 libnss_dns-2.3.1.so
lrwxrwxrwx 1 root root 15 Jun 18 20:47 libnss_dns.so ->
libnss_dns.so.2
lrwxrwxrwx 1 root root 19 Jun 18 20:47 libnss_dns.so.2 ->
libnss_dns-2.3.1.so
-rwxrwxrwx 1 root root 43852 Jun 21 13:48
libnss_files-2.3.1.so
lrwxrwxrwx 1 root root 17 Jun 18 20:47 libnss_files.so ->
libnss_files.so.2
lrwxrwxrwx 1 root root 21 Jun 18 20:47 libnss_files.so.2 ->
libnss_files-2.3.1.so
-rwxrwxrwx 1 root root 17504 Jun 21 13:48
libnss_hesiod-2.3.1.so
lrwxrwxrwx 1 root root 18 Jun 18 20:47 libnss_hesiod.so ->
libnss_hesiod.so.2
lrwxrwxrwx 1 root root 22 Jun 18 20:47 libnss_hesiod.so.2
-> libnss_hesiod-2.3.1.so
-rwxrwxrwx 1 root root 40416 Jun 21 13:48 libnss_nis-2.3.1.so
lrwxrwxrwx 1 root root 15 Jun 18 20:47 libnss_nis.so ->
libnss_nis.so.2
lrwxrwxrwx 1 root root 19 Jun 18 20:47 libnss_nis.so.2 ->
libnss_nis-2.3.1.so
-rwxrwxrwx 1 root root 49148 Jun 21 13:48
libnss_nisplus-2.3.1.so
lrwxrwxrwx 1 root root 19 Jun 18 20:47 libnss_nisplus.so ->
libnss_nisplus.so.2
lrwxrwxrwx 1 root root 23 Jun 18 20:47 libnss_nisplus.so.2
-> libnss_nisplus-2.3.1.so
-rwxrwxrwx 1 root root 10504 Jun 21 13:48 libpcprofile.so
-rwxrwxrwx 1 root root 72808 Jun 21 13:48 libpthread-0.10.so
-rwxrwxrwx 1 root root 1529406 Jun 8 2003 libpthread.a
lrwxrwxrwx 1 root root 15 Jun 18 20:47 libpthread.so ->
libpthread.so.0
lrwxrwxrwx 1 root root 18 Jun 18 20:47 libpthread.so.0 ->
libpthread-0.10.so
-rwxrwxrwx 1 root root 64700 Jun 21 13:48 libresolv-2.3.1.so
-rwxrwxrwx 1 root root 685912 Jun 8 2003 libresolv.a
lrwxrwxrwx 1 root root 14 Jun 18 20:47 libresolv.so ->
libresolv.so.2
lrwxrwxrwx 1 root root 18 Jun 18 20:47 libresolv.so.2 ->
libresolv-2.3.1.so
-rwxrwxrwx 1 root root 27224 Jun 21 13:48 librt-2.3.1.so
-rwxrwxrwx 1 root root 643756 Jun 8 2003 librt.a
lrwxrwxrwx 1 root root 10 Jun 18 20:47 librt.so ->
librt.so.1
lrwxrwxrwx 1 root root 14 Jun 18 20:47 librt.so.1 ->
librt-2.3.1.so
-rwxrwxrwx 1 root root 4335778 Oct 19 2003 libstdc++.so.5.0.5
-rwxrwxrwx 1 root root 20336 Jun 21 13:48 libthread_db-1.0.so
lrwxrwxrwx 1 root root 17 Jun 18 20:47 libthread_db.so ->
libthread_db.so.1
lrwxrwxrwx 1 root root 19 Jun 18 20:47 libthread_db.so.1 ->
libthread_db-1.0.so
-rwxrwxrwx 1 root root 8964 Jun 21 13:48 libutil-2.3.1.so
-rwxrwxrwx 1 root root 127788 Jun 8 2003 libutil.a
lrwxrwxrwx 1 root root 12 Jun 18 20:47 libutil.so ->
libutil.so.1
lrwxrwxrwx 1 root root 16 Jun 18 20:47 libutil.so.1 ->
libutil-2.3.1.so
drwxrwxrwx 2 root root 512 Jun 18 20:47 nof
########################################
### Here's my startup info:
########################################
## Booting image at 00100000 ...
Image Name: Linux-2.4.27-pre2
Created: 2004-06-24 20:24:39 UTC
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 877125 Bytes = 856.6 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Linux version 2.4.27-pre2 (csmith@loch) (gcc version 3.3.2 (Debian)) #60 Thu
Jun 24 15:17:24 CDT 2004
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS root=/dev/nfs
nfsroot=192.168.1.99:/LinuxPPC,v3,tcp ip=192.168.1.13:192.168.1.99
init=/sbin/init rw
Decrementer Frequency = 150000000/60
Warning: real time clock seems stuck!
Calibrating delay loop... 39.83 BogoMIPS
Memory: 14112k available (1564k kernel code, 436k data, 68k init, 0k
highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Sangoma WANPIPE Router v1.1 (c) 1995-2000 Sangoma Technologies Inc.
Initializing RT netlink socket
Starting kswapd
Journalled Block Device driver loaded
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications
AB.
CPM UART driver version 0.04
ttyS0 at 0x0280 is on SMC1 using BRG}pty: 256 Unix98 ptys configured
Generic RTC Driver v1.07
eth0: FEC ENET Version 0.2, FEC irq 3, MII irq 4, addr 00:20:6f:0f:c1:d2
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
CPM ATM Found SAR
Trying to free free IRQ46
CPM ATM(serial) driver Version 2.1
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
device=eth0, addr=192.168.1.13, mask=255.255.255.0,
gw=255.255.255.255,
host=192.168.1.13, domain=, nis-domain=(none),
bootserver=192.168.1.99, rootserver=192.168.1.99, rootpath=
ip_conntrack version 2.1 (128 buckets, 1024 max) - 288 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
arp_tables: (C) 2002 David S. Miller
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
lec.c: Jun 24 2004 15:22:10 initialized
mpoa: /proc/mpoa initialized
mpc.c: Jun 24 2004 15:22:13 initialized
Looking up port of RPC 100003/3 on 192.168.1.99
Looking up port of RPC 100005/3 on 192.168.1.99
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 68k init
init started: BusyBox v1.00-pre10 (2004.06.18-16:33+0000) multi-Thu Jun 24
21:17:24 2004
Mounting local filesystems...
Setting up IP spoofing protection: rp_filter.
Configuring network interfaces...done.
Starting system log daemon: syslogd.
########################################
### More info (and question) about memory:
########################################
root@raptorlinux->~ [2] cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 14520320 4505600 10014720 0 0 2531328
Swap: 0 0 0
MemTotal: 14180 kB
MemFree: 9780 kB
MemShared: 0 kB
Buffers: 0 kB
Cached: 2472 kB
SwapCached: 0 kB
Active: 1088 kB
Inactive: 1792 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 14180 kB
LowFree: 9780 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Question: Why the total (and "available" value at startup) indicates
~14M...why doesn't it say 16M (and what is the ~2.5M "cached" value). Thanks
again in advance.
Regards,
-Craig
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Dynamic lib loading & memory question
2004-06-24 21:58 Dynamic lib loading & memory question Smith, Craig
@ 2004-06-24 22:39 ` Wolfgang Denk
2004-06-24 23:28 ` Jeff Angielski
2004-06-25 16:44 ` Joakim Tjernlund
2 siblings, 0 replies; 4+ messages in thread
From: Wolfgang Denk @ 2004-06-24 22:39 UTC (permalink / raw)
To: Smith, Craig; +Cc: linuxppc-embedded
Dear Craig,
in message <EA78B62757AF1E4799828249310AC4CA04E09F03@stca206a.bus.sc.rolm.com> you wrote:
>
> I have a simple hello world program I'm trying to compile and run on a
> custom PPC(855T) board. It will work fine if I statically link the
> executable with the necessary libs. However if I don't statically link
> (relying on ld.so etc.), the program will core dump. My system has 16M of
> SDRAM (I just upgraded it from 8M and I believe it's configured right).
> Anyway, here's the output and other info that might help someone tell me
> what I'm doing wrong...thanks so much!
Which type of board is this, which boot loader are you using, and
where is your toolchain coming from?
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd@denx.de
A Perl script is correct if it's halfway readable and gets the job
done before your boss fires you.
- L. Wall & R. L. Schwartz, _Programming Perl_
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Dynamic lib loading & memory question
2004-06-24 21:58 Dynamic lib loading & memory question Smith, Craig
2004-06-24 22:39 ` Wolfgang Denk
@ 2004-06-24 23:28 ` Jeff Angielski
2004-06-25 16:44 ` Joakim Tjernlund
2 siblings, 0 replies; 4+ messages in thread
From: Jeff Angielski @ 2004-06-24 23:28 UTC (permalink / raw)
To: Smith, Craig; +Cc: LinuxPPC
On Thu, 2004-06-24 at 17:58, Smith, Craig wrote:
> Memory: 14112k available (1564k kernel code, 436k data, 68k init, 0k
> highmem)
<snip>
> ########################################
> root@raptorlinux->~ [2] cat /proc/meminfo
> total: used: free: shared: buffers: cached:
> Mem: 14520320 4505600 10014720 0 0 2531328
> Swap: 0 0 0
> MemTotal: 14180 kB
> MemFree: 9780 kB
> MemShared: 0 kB
> Buffers: 0 kB
> Cached: 2472 kB
> SwapCached: 0 kB
> Active: 1088 kB
> Inactive: 1792 kB
> HighTotal: 0 kB
> HighFree: 0 kB
> LowTotal: 14180 kB
> LowFree: 9780 kB
> SwapTotal: 0 kB
> SwapFree: 0 kB
>
> Question: Why the total (and "available" value at startup) indicates
> ~14M...why doesn't it say 16M (and what is the ~2.5M "cached" value). Thanks
> again in advance.
The memory line from the boot sequence tells you why total is not 16MB.
The kernel is already using it... :)
You can find the answer to your cached question if you look at the code
from fs/proc/proc_misc.c
Jeff Angielski
The PTR Group
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: Dynamic lib loading & memory question
2004-06-24 21:58 Dynamic lib loading & memory question Smith, Craig
2004-06-24 22:39 ` Wolfgang Denk
2004-06-24 23:28 ` Jeff Angielski
@ 2004-06-25 16:44 ` Joakim Tjernlund
2 siblings, 0 replies; 4+ messages in thread
From: Joakim Tjernlund @ 2004-06-25 16:44 UTC (permalink / raw)
To: Smith, Craig, linuxppc-embedded
> Hello,
> I have a simple hello world program I'm trying to compile and run on a
> custom PPC(855T) board. It will work fine if I statically link the
> executable with the necessary libs. However if I don't statically link
> (relying on ld.so etc.), the program will core dump. My system has 16M of
> SDRAM (I just upgraded it from 8M and I believe it's configured right).
> Anyway, here's the output and other info that might help someone tell me
> what I'm doing wrong...thanks so much!
> ########################################
> ### The "bad" version:
> ########################################
> root@raptorlinux->~ [10] ./hw_ppc
> Segmentation fault (core dumped)
Examine the coredump with gdb. Disassemble the instructions around the
Seg. fault and post to the list.
Jocke
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-06-25 16:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-24 21:58 Dynamic lib loading & memory question Smith, Craig
2004-06-24 22:39 ` Wolfgang Denk
2004-06-24 23:28 ` Jeff Angielski
2004-06-25 16:44 ` Joakim Tjernlund
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).