* [parisc-linux] 64 userspace
@ 2003-01-15 18:14 FARINATI,LEANDRO (HP-Brazil,ex1)
2003-01-15 18:40 ` John David Anglin
0 siblings, 1 reply; 11+ messages in thread
From: FARINATI,LEANDRO (HP-Brazil,ex1) @ 2003-01-15 18:14 UTC (permalink / raw)
To: Parisc-Linux List (E-mail)
Hi people,
Where am I find the to do list to 64 userspace (to compile 64 bits
applications)?
Thanks in advance,
-----------------------------------------------------------------------
Leandro Marcondes Farinati
Software Developer
* leandro.farinati@hp.com
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 18:14 [parisc-linux] 64 userspace FARINATI,LEANDRO (HP-Brazil,ex1)
@ 2003-01-15 18:40 ` John David Anglin
2003-01-15 18:46 ` Matthew Wilcox
2003-01-15 19:01 ` Carlos O'Donell
0 siblings, 2 replies; 11+ messages in thread
From: John David Anglin @ 2003-01-15 18:40 UTC (permalink / raw)
To: FARINATI, LEANDRO; +Cc: parisc-linux
> Hi people,
>
> Where am I find the to do list to 64 userspace (to compile 64 bits
> applications)?
To my knowledge, there isn't one. Roughly what is required is:
1) Kernel -- design and implement 64-bit system calls.
2) Binutils -- port hpux 64-bit tools to linux.
3) Gdb -- same as binutils.
4) GCC -- same as binutils.
5) Glibc -- implement 64-bit specific parts of ABI and system calls.
The ABI hasn't been discussed in detail other than it was to be generally
similar to that used under 64-bit hpux. There are significant differences
between 64-bit hpux and 32-bit linux. They use different linkers and
differ in the handling of function pointers. The 32-bit linker was
ported from the 386 code while the 64-bit linker used by hpux was written
from scratch. As a result, the 64-bit code is less tested and has more bugs.
Are you offering support from HP? It's taken a number of years to
get to the current state of development on the 32-bit port given the
level of volunteer effort and support from HP. What you are asking
won't happen for months, if not years. The time to implement a 64-bit
userspace won't be as great as for the 32-bit port, but it still a
very significant effort.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 18:40 ` John David Anglin
@ 2003-01-15 18:46 ` Matthew Wilcox
2003-01-15 18:54 ` Carlos O'Donell
2003-01-15 19:01 ` Carlos O'Donell
1 sibling, 1 reply; 11+ messages in thread
From: Matthew Wilcox @ 2003-01-15 18:46 UTC (permalink / raw)
To: John David Anglin; +Cc: FARINATI, LEANDRO, parisc-linux
On Wed, Jan 15, 2003 at 01:40:28PM -0500, John David Anglin wrote:
> To my knowledge, there isn't one. Roughly what is required is:
>
> 1) Kernel -- design and implement 64-bit system calls.
Another piece of the kernelside puzzle is designing the VM layout for
64-bit processes. Do we want to (as ia64 does) reserve parts of the address
space for the kernel? Map shared libraries in different quadrants from
the user process? Keep data in yet another quadrant?
It's a lot of work, and I'm not sure the will is there to make it happen.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 18:46 ` Matthew Wilcox
@ 2003-01-15 18:54 ` Carlos O'Donell
0 siblings, 0 replies; 11+ messages in thread
From: Carlos O'Donell @ 2003-01-15 18:54 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: John David Anglin, FARINATI, LEANDRO, parisc-linux
> > 1) Kernel -- design and implement 64-bit system calls.
>
> Another piece of the kernelside puzzle is designing the VM layout for
> 64-bit processes. Do we want to (as ia64 does) reserve parts of the address
> space for the kernel? Map shared libraries in different quadrants from
> the user process? Keep data in yet another quadrant?
>
> It's a lot of work, and I'm not sure the will is there to make it happen.
>
We are swamped with a 32-bit userspace, and 32/64-bit kernel, creating a
full 64-bit userspace is extremely difficult. I'm currently trying to
workout the bits to get a static 64-bit Glibc, though currently fixing
the 32-bit Glibc we have is time consuming enough.
c.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 18:40 ` John David Anglin
2003-01-15 18:46 ` Matthew Wilcox
@ 2003-01-15 19:01 ` Carlos O'Donell
2003-01-15 19:09 ` John David Anglin
2003-01-15 19:17 ` John David Anglin
1 sibling, 2 replies; 11+ messages in thread
From: Carlos O'Donell @ 2003-01-15 19:01 UTC (permalink / raw)
To: John David Anglin; +Cc: FARINATI, LEANDRO, parisc-linux
> To my knowledge, there isn't one. Roughly what is required is:
>
> 1) Kernel -- design and implement 64-bit system calls.
Currently, 64-bit kernels return bogus sigcontext structures to our
32-bit userspace, they stuff the sigcontext with 64-bit registers when
it is only expecting 32-bits. It seems like sigcontext should be
expanded to have 64-bits per register for both 32 and 64 bit kernels?
This is definately an ABI breakage. Though it's funny that not many
programs are broken under 64-bit kernels, but I guess that without
*context() calls implemented for HPPA in glibc, the returned ucontext is
not used (except for that weird LISP interpreter that Krystof was
porting).
> 2) Binutils -- port hpux 64-bit tools to linux.
I thought we had a 64-bit binutils port?
> 3) Gdb -- same as binutils.
This would require some work.
> 4) GCC -- same as binutils.
hppa64-linux-gcc?
> 5) Glibc -- implement 64-bit specific parts of ABI and system calls.
This is a biggie, 64-bit SHLIBS being the large headache.
> Are you offering support from HP? It's taken a number of years to
> get to the current state of development on the 32-bit port given the
> level of volunteer effort and support from HP. What you are asking
> won't happen for months, if not years. The time to implement a 64-bit
> userspace won't be as great as for the 32-bit port, but it still a
> very significant effort.
Perhaps we will see it's emergence in the next few years :)
c.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 19:01 ` Carlos O'Donell
@ 2003-01-15 19:09 ` John David Anglin
2003-01-15 19:26 ` Carlos O'Donell
2003-01-15 19:31 ` Carlos O'Donell
2003-01-15 19:17 ` John David Anglin
1 sibling, 2 replies; 11+ messages in thread
From: John David Anglin @ 2003-01-15 19:09 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: leandro.farinati, parisc-linux
> > To my knowledge, there isn't one. Roughly what is required is:
> >
> > 1) Kernel -- design and implement 64-bit system calls.
>
> Currently, 64-bit kernels return bogus sigcontext structures to our
> 32-bit userspace, they stuff the sigcontext with 64-bit registers when
> it is only expecting 32-bits. It seems like sigcontext should be
> expanded to have 64-bits per register for both 32 and 64 bit kernels?
> This is definately an ABI breakage. Though it's funny that not many
> programs are broken under 64-bit kernels, but I guess that without
> *context() calls implemented for HPPA in glibc, the returned ucontext is
> not used (except for that weird LISP interpreter that Krystof was
> porting).
I wonder if this isn't the problem with expect.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 19:01 ` Carlos O'Donell
2003-01-15 19:09 ` John David Anglin
@ 2003-01-15 19:17 ` John David Anglin
2003-01-15 19:27 ` Carlos O'Donell
1 sibling, 1 reply; 11+ messages in thread
From: John David Anglin @ 2003-01-15 19:17 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: leandro.farinati, parisc-linux
> > 2) Binutils -- port hpux 64-bit tools to linux.
>
> I thought we had a 64-bit binutils port?
There enough to build kernels, static binaries, ... The linker is really
the problem. First, we would need the processor/os specific ELF
specification. The handling of function pointers is another key part
as it affects how shared libraries are implemented and the dynamic loader.
I don't see the gcc issues as major as we have the code generation part
pretty much under control.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 19:09 ` John David Anglin
@ 2003-01-15 19:26 ` Carlos O'Donell
2003-01-15 19:31 ` Carlos O'Donell
1 sibling, 0 replies; 11+ messages in thread
From: Carlos O'Donell @ 2003-01-15 19:26 UTC (permalink / raw)
To: John David Anglin; +Cc: parisc-linux
> > > 1) Kernel -- design and implement 64-bit system calls.
> >
> > Currently, 64-bit kernels return bogus sigcontext structures to our
> > 32-bit userspace, they stuff the sigcontext with 64-bit registers when
> > it is only expecting 32-bits. It seems like sigcontext should be
> > expanded to have 64-bits per register for both 32 and 64 bit kernels?
> > This is definately an ABI breakage. Though it's funny that not many
> > programs are broken under 64-bit kernels, but I guess that without
> > *context() calls implemented for HPPA in glibc, the returned ucontext is
> > not used (except for that weird LISP interpreter that Krystof was
> > porting).
>
> I wonder if this isn't the problem with expect.
>
Shazam! Ballz in your court. I ran across this problem in the summer
when working with Krystof. He actually caused my C3K to crash, different
issue though :}
If you look at parisc/kernel/signal.c and look for the word "HACK"
you'll see what I mean. There are few expletives that need to be cleaned
up. Randolph had suggested adding thread personalities so we can tell
what the userspace looks like and choose the right sigcontext to send
back. However, it seems that truncating the 64-bit regs is a crazy thing
to do since you might lose information.
I'm all for expanding the sigcontext to 64-bits. As a matter of fact
I'll try rebuilding glibc with an expanded sigcontext (remembering that
it has to be changed in the kernel definition and the glibc definition).
Added to that will be the minor hack to your ldwc_align code to fdce the
lock cacheline before usage.
c.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 19:17 ` John David Anglin
@ 2003-01-15 19:27 ` Carlos O'Donell
0 siblings, 0 replies; 11+ messages in thread
From: Carlos O'Donell @ 2003-01-15 19:27 UTC (permalink / raw)
To: John David Anglin; +Cc: leandro.farinati, parisc-linux
> > I thought we had a 64-bit binutils port?
>
> There enough to build kernels, static binaries, ... The linker is really
> the problem. First, we would need the processor/os specific ELF
> specification. The handling of function pointers is another key part
> as it affects how shared libraries are implemented and the dynamic loader.
Okay. Were on the same page :)
> I don't see the gcc issues as major as we have the code generation part
> pretty much under control.
Yup :)
c.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 19:09 ` John David Anglin
2003-01-15 19:26 ` Carlos O'Donell
@ 2003-01-15 19:31 ` Carlos O'Donell
2003-01-15 19:49 ` John David Anglin
1 sibling, 1 reply; 11+ messages in thread
From: Carlos O'Donell @ 2003-01-15 19:31 UTC (permalink / raw)
To: John David Anglin; +Cc: parisc-linux
>
> I wonder if this isn't the problem with expect.
>
> Dave
On another note, if expect calls code that uses atomic_add,
compare_and_swap, and exchange_and_add, they are currently generic and
not guaranteed to be atomic under any situation.
See atomicity.h.
Damn, I should really get around to implementing these.
c.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] 64 userspace
2003-01-15 19:31 ` Carlos O'Donell
@ 2003-01-15 19:49 ` John David Anglin
0 siblings, 0 replies; 11+ messages in thread
From: John David Anglin @ 2003-01-15 19:49 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: parisc-linux
> > I wonder if this isn't the problem with expect.
> >
> > Dave
>
> On another note, if expect calls code that uses atomic_add,
> compare_and_swap, and exchange_and_add, they are currently generic and
> not guaranteed to be atomic under any situation.
>
> See atomicity.h.
I doubt it. It does a lot of waiting around with alarm signals going off.
As I recall, when it is filling the syslog, there are two expect processes
running and killing the child fixes the problem. This causes dejagnu to
abort the current testsuite.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2003-01-15 19:49 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-15 18:14 [parisc-linux] 64 userspace FARINATI,LEANDRO (HP-Brazil,ex1)
2003-01-15 18:40 ` John David Anglin
2003-01-15 18:46 ` Matthew Wilcox
2003-01-15 18:54 ` Carlos O'Donell
2003-01-15 19:01 ` Carlos O'Donell
2003-01-15 19:09 ` John David Anglin
2003-01-15 19:26 ` Carlos O'Donell
2003-01-15 19:31 ` Carlos O'Donell
2003-01-15 19:49 ` John David Anglin
2003-01-15 19:17 ` John David Anglin
2003-01-15 19:27 ` Carlos O'Donell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.