Message ID | 1525617685-32083-1-git-send-email-vincentc@andestech.com |
---|---|
Headers | show |
Series | nds32 glibc Port v1 | expand |
On Sun, 6 May 2018, vincentc wrote: > Hi, this serious of patch contains glibc port for Andes nds32 ISA. To confirm: all the work on this port is covered by the copyright assignment GLIBC GDB GCC BINUTILS Andes Technology Taiwan 2009-12-16 Assigns Past and Future Changes ? > repository and people can use them to build nds32 glibc toolchain. By the way, > the patch of build-many-glibcs.py for Andes nds32 port does not be included in It's still useful to have the changes that just add builds for all relevant ABI or other variants, even if they don't work until those changes to the other components are upstream, because having the ABI variants there may help point to other things in the review. For example: what is the full list of incompatible ABIs supported by this port that would be listed at <https://sourceware.org/glibc/wiki/ABIList>? Based on the code in the port, it has at least big-endian and little-endian variants, so at least two ABIs. Those ABIs should have different dynamic linker names, as for AArch64 (see my recent comments on the C-Sky port) - and likewise any other incompatible ABI variants. > ii.The tst-cancel7 and tst-cancel7x fails because the 1 second timeout, at > 108-th line in tst-cancel7.c, is not enough for child thread to finish all > work before system(). In other words, parent thread executes > xpthread_cancel () before child thread executes system(). Therefore, child > thread cannot write self-pid on pidfile and error message 'could not read > pid' is got. The nds32 port can pass this testing after we extend the > timeout to 5 seconds. See bug 14232. > 2. misc (3 FAIL cases) > i. A new flag, RWF_APPEND, for preadv2/pwritev2 is added in Linux 4.16. This > change causes expected ENOTSUP does not be caught in misc/tst-preadvwritev2 > and misc/tst-preadvwritev64v2. The nds32 ports can pass these two cases > after adding the new flag RWF_APPEND to sysdeps/unix/sysv/linux/bits/uio-ext.h > and misc/ tst-preadvwritev2-common.c. But that's been fixed since commit f2652643d7234c08205b75f527191c2e2b35251f (3 Apr). Are you sure you are testing relative to a recent git version of glibc? (The ABI baselines need updating for my change to remove absolute symbols from ABI baselines, but that change went in two days before your patch series posting, whereas the RWF_SUPPORTED change went in a month ago.) As further examples of updates needed to reflect current glibc, patch 8 includes sigcontextinfo.h macros that I globally removed as unused in commit a44061398c3b531b37e134a6a97accb2251fa28a (22 Mar), while patch 7 includes a readahead implementation, but Adhemerval consolidated those in commit c57bf7c15ba179168d01f7c6acde7ecbf5dd9cd8 so there shouldn't be any such architecture-specific implementations needed any more. Patch 5 includes a math_private.h file that shouldn't be needed since my refactoring in February.
On Tue, May 08, 2018 at 10:45:57PM +0800, Joseph Myers wrote: > On Sun, 6 May 2018, vincentc wrote: > > > Hi, this serious of patch contains glibc port for Andes nds32 ISA. > > To confirm: all the work on this port is covered by the copyright > assignment > > GLIBC GDB GCC BINUTILS Andes Technology Taiwan 2009-12-16 > Assigns Past and Future Changes > > ? > Yes > > repository and people can use them to build nds32 glibc toolchain. By the way, > > the patch of build-many-glibcs.py for Andes nds32 port does not be included in > > It's still useful to have the changes that just add builds for all > relevant ABI or other variants, even if they don't work until those > changes to the other components are upstream, because having the ABI > variants there may help point to other things in the review. > > For example: what is the full list of incompatible ABIs supported by this > port that would be listed at <https://sourceware.org/glibc/wiki/ABIList>? > Based on the code in the port, it has at least big-endian and > little-endian variants, so at least two ABIs. Those ABIs should have > different dynamic linker names, as for AArch64 (see my recent comments on > the C-Sky port) - and likewise any other incompatible ABI variants. > Ok, we will add nds32 port to build-many-glibcs.py and re-name the dynamic linker based on support ABI in next version patch. In addition, we plan to remove big-endian support in next patch because we don't have stable platform to finishing the testing. By the way, does this port possibly go upstream before the latest nds32 port of gcc and binutil are upstream? > > ii.The tst-cancel7 and tst-cancel7x fails because the 1 second timeout, at > > 108-th line in tst-cancel7.c, is not enough for child thread to finish all > > work before system(). In other words, parent thread executes > > xpthread_cancel () before child thread executes system(). Therefore, child > > thread cannot write self-pid on pidfile and error message 'could not read > > pid' is got. The nds32 port can pass this testing after we extend the > > timeout to 5 seconds. > > See bug 14232. > > > 2. misc (3 FAIL cases) > > i. A new flag, RWF_APPEND, for preadv2/pwritev2 is added in Linux 4.16. This > > change causes expected ENOTSUP does not be caught in misc/tst-preadvwritev2 > > and misc/tst-preadvwritev64v2. The nds32 ports can pass these two cases > > after adding the new flag RWF_APPEND to sysdeps/unix/sysv/linux/bits/uio-ext.h > > and misc/ tst-preadvwritev2-common.c. > > But that's been fixed since commit > f2652643d7234c08205b75f527191c2e2b35251f (3 Apr). Are you sure you are > testing relative to a recent git version of glibc? > > (The ABI baselines need updating for my change to remove absolute symbols > from ABI baselines, but that change went in two days before your patch > series posting, whereas the RWF_SUPPORTED change went in a month ago.) > > As further examples of updates needed to reflect current glibc, patch 8 > includes sigcontextinfo.h macros that I globally removed as unused in > commit a44061398c3b531b37e134a6a97accb2251fa28a (22 Mar), while patch 7 > includes a readahead implementation, but Adhemerval consolidated those in > commit c57bf7c15ba179168d01f7c6acde7ecbf5dd9cd8 so there shouldn't be any > such architecture-specific implementations needed any more. Patch 5 > includes a math_private.h file that shouldn't be needed since my > refactoring in February. > The testing is based on glibc 2.27 released commit. (commit 406e7a023158b08a0908f381459f273a984c6fd328363cb) I will follow your comment to modify and test the port based on the latest glibc version again. Thanks Vincent Chen > -- > Joseph S. Myers > joseph@codesourcery.com
On Wed, 9 May 2018, Vincent Chen wrote: > By the way, does this port possibly go upstream before the latest nds32 port of > gcc and binutil are upstream? No. For a glibc port to go upstream, all the build dependencies must be upstream (generally meaning GCC, binutils, Linux kernel - and, likewise, if one of those ports is removed upstream, that means the glibc port will be removed as well, as recently happened to the tile port because that Linux kernel port was removed). They only need to be upstream in the respective development mainlines, not on release branches.
On Wed, May 09, 2018 at 08:10:37PM +0800, Joseph Myers wrote: > On Wed, 9 May 2018, Vincent Chen wrote: > > > By the way, does this port possibly go upstream before the latest nds32 port of > > gcc and binutil are upstream? > > No. For a glibc port to go upstream, all the build dependencies must be > upstream (generally meaning GCC, binutils, Linux kernel - and, likewise, > if one of those ports is removed upstream, that means the glibc port will > be removed as well, as recently happened to the tile port because that > Linux kernel port was removed). They only need to be upstream in the > respective development mainlines, not on release branches. > OK, I got it. Thanks for your reply. Best regards Vincent > -- > Joseph S. Myers > joseph@codesourcery.com