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

Re: fwd: Debian sparc32 on Ultra status report (also status of debian-sparc)



Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> writes:

> > BTW, Ultrapenguin now has a broken libc - they added the
> > register_frame_info bug for Red Hat compatibility - also the
> > sparc-linux Netscape doesn't run on Debian, probably a libstdc++/glibc
> > problem - the sparc-sunos one does work.  (Maybe if I pull the
> > libraries from RedHat 5.2 and use a LD_LIBRARY_PATH.)

> It was really chosen for Red Hat compatibility, because I doubt companies
> like Netscape will make their packages for something non-commercially
> backed. And last time I've tried mozilla it was behaving pretty badly on
> sparc/sparc64. I think this is solvable by symbol versioning in glibc 2.1,
> so we can keep the compatibility...

IMHO its inclusion in libc is a bug and should be fixed by Red Hat,
but fixing it is difficult because of backwards compatibility issues.
(This bug is one reason Debian 2.1 on i386 is delayed.)

I can't get Netscape to run anyways, I built a dummy library with
frame.o from libgcc.a, which makes vreg run fine, but Netscape itself
dies with the message "Abort".  It could be a glibc2.1 issue, as I see
that it is dynamically linked against libstdc++.  

According to strace (I deleted my magic cookie from the output):

writev(8, [{"B\0\0\v\0\0\0\22\0\20\0\0", 12}, 
         {"MIT-MAGIC-COOKIE-1", 18}, ...) = 48
fcntl(8, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
read(8, 0xefffe610, 8)                  = -1 EAGAIN (Resource temporarily unavailable)
_newselect(0x9, 0xefffe3e0, 0, 0, 0xefffdf68) = 0
SYS_103()                               = 0
gettimeofday({913740777, 978645}, NULL) = 0
SYS_103()                               = 0
SYS_103()                               = 0
getpid()                                = 6949
kill(6949, SIGABRT)                     = 0

I'm not sure what's wrong here (I obviously need to tweak strace).
According to the include header, __NR_rt_sigprocmask=103.  It looks
like Netscape is commiting hari kari for some unknown reason.  

The backtrace is:
#0  0x702cefc8 in kill ()
#1  0x702cecc0 in gsignal ()
#2  0x702d0304 in abort ()
#3  0x702cebc4 in longjmp ()
#4  0x700c0 in _start ()
#5  0x634cc in _start ()

The Debian glibc is stripped and I don't have glibc source handy.
Here it looks like it might be longjump invoking abort - perhaps it
doesn't like it's arguments? 


SunOS netscape runs fine after tweaking "namei.h", so I can live with
that while I deal with other problems.

> > The changes to modutils and binutils work on both systems, but
> > binutils needs to be compiled with egcs, due to a gcc problem.  I will
> > eventually want to merge them in with the main distribution (maybe
> > after slink).

> BTW: gcc 2.7.* is really completely unusable whenever a program uses long
> long, you just cannot trust them. If I remember well, it miscompiles e.g.
> unsigned long long l; void foo(void) { l += 0x80000000ULL; }

> BTW2: Don't expect 64bit very userland soon, there are really many
> places where egcs has to be fixed/optimized before 64bit userland
> can be done, and at the moment we're hacking the kernel to manage as
> much as possible into 2.2 (like A5000 support, E10k, and stuff like
> that).

I thought this was the case, that's why I chose to get the 32-bit
stuff running.  (Thanks for the confirmation.)  Not really a big deal,
32-bit userland runs fine.  


BTW, do you have a day job?  I see your name alot, on everything from
X to binutils and silo - it appears that you put an incredible amount
of time into Linux on the sparc.


Steve
dunham@cse.msu.edu



Reply to: