__ARCH_WANT_SYSCALL_DEPRECATED
Hi,
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?
--linas
--
To unsubscribe from this list: send the line "unsubscribe linux-hexagon" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Arnd Bergmann
maintainerQuoted 12 lines · 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 kernelasm/unistd.hthen glibc won't build: currently,
I get../sysdeps/unix/sysv/linux/getdents.c:105: error: ‘__NR_getdents’ undeclared (first use in this function)
Quoted 4 lines
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_DEPRECATEDissues?
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
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
Quoted 32 lines · Arnd Bergmann
Quoted 12 lines · 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 kernelasm/unistd.hthen glibc won't build: currently,
I get../sysdeps/unix/sysv/linux/getdents.c:105: error: ‘__NR_getdents’ undeclared (first use in this function)Quoted 4 lines
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_DEPRECATEDissues?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
Quoted 2 lines · Guan Xuetao
For getdents (or other deprecated syscalls), we select getdents64 to
replace getdent, though we have not verified it on unicore32 platform.
Do you have a publically-available version? Have you considered submitting it to the FSF? Have you signed the copyright-transfer forms with the FSF?
My goal with the hexagon archiecture is to have the kernel asm/unistd.h include asm-generic/unistd.h, and have glibc compile (on hexagon) with no further #defines in asm/unistd.h. This "almost" works today; with Chris Metcalf's generic syscall patches for glibc, I am able to compile glibc (and pass the glibc test suite). However, I have to #define __ARCH_WANT_SYSCALL_DEPRECATED to do this. If I don't, then the getdents syscall fails to compile; I don't know how many others there are.
As to the "API": I just want to use Arnd's "generic" kernel support; that will be the API. No changing, porting, hacking :-)
-- Linas
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Quoted 7 lines · Linas Vepstas (Code Aurora)
Quoted 2 lines · Guan Xuetao
For getdents (or other deprecated syscalls), we select getdents64 to
replace getdent, though we have not verified it on unicore32 platform.Do you have a publically-available version? Have you considered submitting it to the FSF? Have you signed the copyright-transfer forms with the FSF?
Firstly, what I said for getdents64 in unicore is just in developing, not ready yet.
And for glibc part, it need much time to prepare for submitting.
Quoted 8 lines
My goal with the hexagon archiecture is to have the kernel
asm/unistd.hincludeasm-generic/unistd.h, and have glibc compile (on hexagon) with no further #defines inasm/unistd.h. This "almost" works today; with Chris Metcalf's generic syscall patches for glibc, I am able to compile glibc (and pass the glibc test suite). However, I have to #define__ARCH_WANT_SYSCALL_DEPRECATEDto do this. If I don't, then the getdents syscall fails to compile; I don't know how many others there are.
It's also my goal. And you have walked further than me.
I guess, Chris don't need getdent for tile, since he didn't export the syscall in kernel.
IMO, it's better to add one syscall instead of __ARCH_WANT_SYSCALL_DEPRECATED in your own unistd.h:
#define __NR_getdents 1065
#define __ARCH_WANT_SYS_GETDENTS__SYSCALL(__NR_getdents, sys_getdents)
Quoted 6 lines
As to the "API": I just want to use Arnd's "generic" kernel support; that will be the API. No changing, porting, hacking :-)
-- Linas
Regards
Guan Xuetao
Quoted 6 lines · Linas Vepstas (Code Aurora)
Quoted 2 lines · Guan Xuetao
For getdents (or other deprecated syscalls), we select getdents64 to
replace getdent, though we have not verified it on unicore32 platform.Do you have a publically-available version? Have you considered submitting it to the FSF? Have you signed the copyright-transfer forms with the FSF?
I apologize for the slow-motion return of our glibc port to the community. We have a signed FSF copyright-transfer on file, which we've already used for binutils, and gcc is in progress, but glibc is not quite at the top of the stack yet. It's the curse of being a small company with new features to write, bugs to fix, and customers to keep happy :-)
Our 2.11.2 port is here:
http://www.tilera.com/scm/glibc-2.11.2.tar.bz2
Wwe are using 2.12 for our upcoming release, which is based around RHEL 6. We have not tried to return this to the community yet because there are plenty of small cleanups to do: another pass through the code to make sure there are no lingering minor issues, sync up to the git tip, check all the code style issues, update copyrights, write changelogs, etc.
Quoted 7 lines
My goal with the hexagon archiecture is to have the kernel
asm/unistd.hincludeasm-generic/unistd.h, and have glibc compile (on hexagon) with no further #defines inasm/unistd.h. This "almost" works today; with Chris Metcalf's generic syscall patches for glibc, I am able to compile glibc (and pass the glibc test suite). However, I have to #define__ARCH_WANT_SYSCALL_DEPRECATEDto do this. If I don't, then the getdents syscall fails to compile; I don't know how many others there are.
For getdents in particular, we use this patch:
unix/sysv/linux/getdents.c 2010-10-12 14:28:47.026114000 -0400 renamed from unix/sysv/linux/getdents.c~ 2010-05-04 07:27:23.000000000 -0400 +2 -0
@@ -236,6 +236,7 @@ # endif } #endif +#if !defined __NR_getdents64 || !defined __ASSUME_GETDENTS64_SYSCALL { size_t red_nbytes; struct kernel_dirent *skdp, *kdp;
@@ -295,4 +296,5 @@ return (char *) dp - buf; } +#endif }
Quoted 2 lines
As to the "API": I just want to use Arnd's "generic" kernel support; that will be the API. No changing, porting, hacking :-)
Indeed.
Signature · 2 lines
Chris Metcalf, Tilera Corp. http://www.tilera.com
Quoted 18 lines · Arnd Bergmann
Quoted 12 lines · 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 kernelasm/unistd.hthen glibc won't build: currently,
I get../sysdeps/unix/sysv/linux/getdents.c:105: error: ???__NR_getdents??? undeclared (first use in this function)Quoted 4 lines
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_DEPRECATEDissues?
Quoted 5 lines
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.
On nios2 we're using an outdated eglibc version (based on glibc 2.5) right now and thus we still rely on our own non-asm-generic version of asm/unistd.h
I'm currently in the process of converting our arch to solely use asm-generic header wherever possible one of which is the syscall ABI. This will also mean we'll have to redo the libc parts.
Tobias
Quoted 3 lines · Tobias Klauser
On nios2 we're using an outdated eglibc version (based on glibc 2.5) right now and thus we still rely on our own non-asm-generic version of
asm/unistd.h
As I noted before
<http://sourceware.org/ml/libc-ports/2010-09/msg00014.html> Nios II has the problem for upstream submission of the unassigned nature of the binutils and GCC ports - unless you know of any progress on that issue at Altera.
Signature · 2 lines
Joseph S. Myers [email protected]
Quoted 11 lines · Joseph S. Myers
Quoted 3 lines · Tobias Klauser
On nios2 we're using an outdated eglibc version (based on glibc 2.5) right now and thus we still rely on our own non-asm-generic version of
asm/unistd.hAs I noted before
<http://sourceware.org/ml/libc-ports/2010-09/msg00014.html> Nios II has the problem for upstream submission of the unassigned nature of the binutils and GCC ports - unless you know of any progress on that issue at Altera.
Thanks, I wasn't aware of the discussion in this thread. Unfortunately I do not know of any progress wrt this matter at Altera.
My primary interest at the moment is getting the kernel port ready for mainline submission. One of the requirements for this to happen seems to be the convertion to the asm-generic syscall ABI which I'm currently working on. For this an updated glibc port will be needed.
Joseph: Are the sources of the improved CodeSourcery port availbale somewhere publicly or are they only available if one buys/evaluates CodeBench?
I'd like to base my glibc work to come on the most recent and mature version of glibc, so it would be nice to start off CodeSourcey's version.
Thanks
Tobias
Quoted 1 line · Linas Vepstas (Code Aurora)
So: What's the latest on asm-generic support on glibc?
No-one has submitted a patch (to libc-ports). If a patch doesn't get submitted by someone with current FSF paperwork, it won't get in.
Signature · 2 lines
Joseph S. Myers [email protected]