Re: __ARCH_WANT_SYSCALL_DEPRECATED

Guan Xuetao
2011-08-24T02:59:25Z

Hi, Linas,
For unicore32, we have our own porting version of glibc, so conflict
problems are solved when one abi defined. We will modify the code of
kernel and glibc together to maintain the consistence.
So, sadly, you must choose one to modify (patching and re-building),
otherwise you must choose old good-matched versions.
For getdents (or other deprecated syscalls), we select getdents64 to
replace getdent, though we have not verified it on unicore32 platform. I
think it's reasonable, and perhaps modifying/rebuilding glibc is enough
for the whole file-system (there are always some applications which do
do syscalls and handle structs by themselves).
Another words, compatibility is very important, so making the decision
with your team.

Guan Xuetao

On Mon, 2011-08-22 at 22:43 +0200, Arnd Bergmann wrote:
> On Monday 22 August 2011 14:36:02 Linas Vepstas wrote:
> >
> > So: What's the latest on asm-generic support on glibc?
> > I just pulled glibc-2.14 and note that Chris Metcalf's
> > generic implementation hasn't been folded in yet.
> > It seems to work well for me, so can we expect it
> > anytime soon?
> >
> > Another problem: If I don't define __ARCH_WANT_SYSCALL_DEPRECATED
> > in the kernel asm/unistd.h then glibc won't build: currently,
> > I get
> > ../sysdeps/unix/sysv/linux/getdents.c:105: error: ‘__NR_getdents’ undeclared (first use in this function)
> >
> > A very quick grep tells me that asm-generic defines a getdents64
> > but that is not what glibc is looking for. Is there any chance
> > that there are glibc patches floating around somewhere that heal
> > this and any remaining __ARCH_WANT_SYSCALL_DEPRECATED issues?
>
> I don't know the answer to your question, but I've added Mark Salter,
> Guan Xuetao and Tobias Klauser to the list, since they probably have
> the same issue on c64x, unicore32 and nios2. c64x is currently nommu,
> but there is a similar problem with uclibc and I expect that architecture
> to grow an mmu at some point.
>
> As far as I can tell, there is now a total of six architectures using
> the generic syscalls (not counting s*core, because that relies on
> the deprecated calls) and at least two unnamed ones waiting to have
> their coming-out, plus a few stagnated ports (lm32, arc, mmix, meta, ...)
> that would need to get converted if someone wanted to push kernel
> support upstream.
>
> Arnd