Re: 64bits & df
On Wed, Nov 12, 2003 at 01:46:20PM -0500, Ben Collins wrote:
> On Tue, Nov 11, 2003 at 07:40:34PM -0600, Otto Solares wrote:
> > Hi!
> >
> > i am trying to compile an app with 64bits on a ultrasparc,
> > so i installed lib6-dev-sparc64 package, kernel 2.6.0-test9-bk16:
> >
> > solca@netra1:~$ gcc -o hello hello.c
> > solca@netra1:~$ file hello
> > hello: ELF 64-bit MSB executable, SPARC V9, version 1 (SYSV), for GNU/Linux 2.4.18, dynamically linked (uses shared libs), not stripped
> > solca@netra1:~$ ./hello
> > ./hello: error while loading shared libraries: /lib64/libc.so.6: unexpected reloc type 0x08
>
> Something is currently broken with glibc for 64-bit. I'm not sure what
> or why, but I have to look at it this week.
i was trying to compile glibc to figure out something but is too big to my poor sparcs :(
> > and this 'df' problem:
> >
> > solca@netra1:~$ df -h
> > Filesystem Size Used Avail Use% Mounted on
> > df: `/': Invalid argument
> > df: `/proc': Invalid argument
> > df: `/dev/pts': Invalid argument
> > df: `/sys': Invalid argument
>
> df is working fine for me. Is something broken in your /etc/fstab?
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/md0 / ext3 errors=remount-ro,noatime 0 1
/dev/md1 none swap sw 0 0
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
proc /proc proc defaults 0 0
sys /sys sysfs defaults 0 0
strace on x86 sid show that df uses statfs:
statfs64("/", 84, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=984313, f_bfree=686620, f_bavail=636618, f_files=500960, f_ffree=418223, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
write(1, "/dev/hda2 3.8G 1.2G"..., 46) = 46
statfs64("/proc", 84, {f_type="PROC_SUPER_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/dev/pts", 84, {f_type="DEVPTS_SUPER_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/var/spool/squid", 84, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=4810951, f_bfree=789964, f_bavail=545575, f_files=2448000, f_ffree=1509469, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
write(1, "/dev/hdc1 19G 16G"..., 61) = 61
statfs64("/sys", 84, {f_type=0x62656572, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
strace on sparc sid uses nis_syscall:
---
> nis_syscall(0x29240, 0x58) = -1 EINVAL (Invalid argument)
> write(2, "df: ", 4) = 4
> write(2, "`/\'", 3) = 3
> write(2, ": Invalid argument", 18) = 18
> write(2, "\n", 1) = 1
> nis_syscall(0x29298, 0x58) = -1 EINVAL (Invalid argument)
> write(2, "df: ", 4) = 4
> write(2, "`/proc\'", 7) = 7
> write(2, ": Invalid argument", 18) = 18
> write(2, "\n", 1) = 1
> nis_syscall(0x292f0, 0x58) = -1 EINVAL (Invalid argument)
> write(2, "df: ", 4) = 4
> write(2, "`/dev/pts\'", 10) = 10
> write(2, ": Invalid argument", 18) = 18
> write(2, "\n", 1) = 1
> nis_syscall(0x29348, 0x58) = -1 EINVAL (Invalid argument)
> write(2, "df: ", 4) = 4
> write(2, "`/sys\'", 6) = 6
> write(2, ": Invalid argument", 18) = 18
> write(2, "\n", 1) = 1
i can confirm this behavior on 3 differents sparcs with sid, woody uses statfs.
-solca
Reply to: