On 08.03.2007 [16:43:03 +1100], David Gibson wrote:
> On Wed, Mar 07, 2007 at 08:29:08PM -0800, Nishanth Aravamudan wrote:
> > On 07.03.2007 [16:29:58 +1100], David Gibson wrote:
> > > Here's a revised version of my patch adding per-target syscall stubs
> > > to the library. This is now tested on x86_64.
> > >
> > > This patch adds a per-target module to the library, which can be used
> > > to hold any arch or target dependent code. It uses this module to
> > > provide a per-arch re-implementation of syscall(), which is used to
> > > (finally) provide reliable error messages from elflink.c if they occur
> > > while the program segments are unmapped.
> >
> > This does break the sparc64 and ia64 builds, btw, and I need the
>
> Um, yeah, I was kind of planning to fix that before we merged for
> real, but I'll need access to a suitable boxes.
Ok.
> > following on top. Another reason why I do prefer my original method of
> > having those variables to say we don't support something, since you're
> > now overloading the use of ELF{32,64}. Oh well.
>
> Well, yeah. After consideration, though, I thought what we're really
> doing here is per-target, rather than per-arch as such, so it seemed
> silly to invent new per-target names.
Yep.
> > I made a dummy elf64_sparc.S and am building the tests now (box is
> > slow).
>
> There should be no deep problem is getting the whole kaboodle working
> on sparc, so we should just do it: look at their default linker
> script, and whip up xB and xBDT versions. Likewise a sparc syscall
> stub, we can just copy out of libc (I wrote the stubs included already
> just by doing objdump -d on libc.a and libc.so and copying out the
> assembly for the syscall() function, leaving out the bit for frobbing
> errno.
I can probably work on this a bit. Although, I'm having trouble just
getting `make func` to run on the one sparc64 box I have access too. Not
sure if I'm killing the box, or if we're panic()'ing or what. Nothing is
showing up on the serial console, unfortunately.
> > I should also be able to try and test on ia64 tomorrow, I hope.
>
> ia64 is harder, since we can't do a linker script for it. Or, I
> suppose we could define ELF64 to point to a linker script that doesn't
> actually put anything in hugepages. Probably not a good idea, though.
Right, I meant just the functional part of the lib, excluding relinking.
> We should probably exclude elflink.o from the library on ia64 as well
> as not including any arch stub, thereby fixing the link error with
> direct_syscall().
Yep, I can make that change.
> > Note, that the the current versioning scheme resulted in an infinite
> > build loop, so I had to comment out those bits as well. Will look into
> > it more tomorrow.
>
> Hmm, odd. Whatever it was, I didn't notice it.
Sorry for the confusion, I am seeing an infinite loop on sparc period.
Not related to your patch.
> I can't actually see how the patch below would fix things - it should
> just change it from a make syntax error, to a link error trying to
> find direct_syscall().
Yep.
> I had thought about letting each arch's make stanza optionally define
> a LIBOBJS_TARGET32 and LIBOBJS_TARGET64, which would be folded into
> LIBOBJS32 and LIBOBJS64. They would default to the $(ELF32).o and
> $(ELF64).o if not explicitly given.
Hrm, yes, that may be a bit better, but I don't envision us adding more
archs than sparc and ia64 any time soon.
> > diff --git a/Makefile b/Makefile
> > index d3150ea..5103f48 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -71,8 +71,14 @@ ifdef CC64
> > OBJDIRS += obj64
> > endif
> >
> > -LIBOBJS32 = $(LIBOBJS:%=obj32/%) obj32/$(ELF32).o
> > -LIBOBJS64 = $(LIBOBJS:%=obj64/%) obj64/$(ELF64).o
> > +LIBOBJS32 = $(LIBOBJS:%=obj32/%)
> > +ifdef ELF32
> > +LIBOBJS32 += obj32/$(ELF32).o
> > +endif
> > +LIBOBJS64 = $(LIBOBJS:%=obj64/%)
> > +ifdef ELF64
> > +LIBOBJS64 += $(LIBOBJS:%=obj64/%)
>
> ^^^ This line is certainly wrong, too
Yep, this was diff'd locally, not on the sparc box itself.
Thanks,
Nish
--
Nishanth Aravamudan <[EMAIL PROTECTED]>
IBM Linux Technology Center
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Libhugetlbfs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel