On Fri, Jul 03, 2009 at 03:56:54PM -0400, Mike Frysinger wrote:
> On Tuesday 14 April 2009 14:13:21 Lennart Sorensen wrote:
> > Commit 26002 attemps to implement the deamon() call on nommu systems.
> > It unfortunately did so using INTENAL_SYSCALL which doesn't exist on m68k,
> > and hence compiles of m68k nommu now fail.
> >
> > I suspect it should be using something similar to _exit.c to access
> > the clone and exit syscalls, or one of the _syscall# functions, but I
> > can't quite make sense of what INTERNAL_SYSCALL actually does on other
> > architectures enough to actually fix it.
> >
> > Maybe someone with a clue about syscalls can propose a simple fix
> > for this.
> 
> INTERNAL_SYSCALL() only does the system call.  it does not interpret the 
> return value in any way.
> 
> INLINE_SYSCALL() calls INTERNAL_SYSCALL(), and then handles the normal 
> return/errno semantics.
> 
> the classic _syscall#() macros do the same thing, but create a function in 
> the 
> process.  so afaik, we should be able to move the _syscall#() macros out of 
> the arch-specific headers and into the common header and have it be based off 
> of the INLINE_SYSCALL() macro.  and if we really wanted to, we could even 
> move 
> INLINE_SYSCALL() to common code and just require people to implement the 4 
> INTERNAL_SYSCALL aspects.
> 
> check out the Blackfin header ... i think it's fairly straightforward ... but 
> if you're still in doubt, you should be able to copy & paste the 
> implementation from glibc

Well so far I am just #ifdef'ing out the daemon feature, so that I can
actually compile for m68knommu.

Hopefully someone that knows how can fix it before another release
is made.

-- 
Len Sorensen
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to