Re: klibc sparc trouble with gcc > 4.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



== Mon, Nov 05, 2007 at 02:55:45PM +0100, maximilian attems ==
[]
> titan:~# strace -vfF /usr/lib/klibc/bin/fstype
> execve("/usr/lib/klibc/bin/fstype", ["/usr/lib/klibc/bin/fstype"],
> ["SHELL=/bin/bash", "TERM=xterm", "SSH_CLIENT=[myip] 39403"...,
> "SSH_TTY=/dev/pts/0", "USER=root",
> "LS_COLORS=no=00:fi=00:di=01;34:l"...,
> "PATH=/usr/local/sbin:/usr/local/"..., "MAIL=/var/mail/root",
> "PWD=/root", "LANG=en_US.UTF-8", "PS1=\\h:\\w\\$ ", "HOME=/root",
> "SHLVL=2", "LS_OPTIONS=--color=auto", "LOGNAME=root",
> "SSH_CONNECTION=[myip] 3"..., "_=/usr/bin/strace", "OLDPWD=/"]) = 0
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++

gdb doesn't work/help?

[]
> +++ b/usr/klibc/libgcc/__clzdi2.c
> @@ -0,0 +1,23 @@
> +/*
> + * __clzdi2 - Returns the leading number of 0 bits in the argument
> + */
> +
> +#include <stdint.h>
> +#include <stddef.h>
> +
> +uint64_t __clzdi2(uint64_t v)
> +{
> +	uint32_t vhi = (uint32_t) (v >> 32);

`v' is a data in memory loaded to register to perform shift, thus this
operation yields high 32-bits part of `v'

> +	uint32_t vx;
> +	int dp;
> +
> +	if (vhi) {
> +		vx = vhi;
> +		dp = 0;
> +	} else {
> +		vx = (uint32_t) v;

`v' is a data in memory, accessed with 32-bits cast, thus operation
yields high 32-bits part of `v'.

> +		dp = 32;
> +	}
> +
> +	return dp + __builtin_clz(vx);
> +}

While i didn't see/used any big-endian machine/asm_dump, i just
speculate, since noone replied yet.
____
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux