Message ID | d7731ad73ed06ae83273de4ba302bdaa5d791943.1344706801.git.thomas.petazzoni@free-electrons.com |
---|---|
State | RFC |
Headers | show |
I've discovered only today that this toolchain has already the rpc library... so the test fail because the rpc/rpc.h header it's present. getting-started.pdf: A.1.1. Changes in Sourcery CodeBench Lite 2012.03-57 ... RPC library functions. GLIBC has been changed so that programs may again be built to use its RPC library functions. The ability to build programs using these functions had previously been dis- abled. IMHO there are two solutions: a) update this patch to enable the BR2_TOOLCHAIN_HAS_NATIVE_RPC b) apply as is directly on the next branch and change accordingly the commit: commit 80f89c34315be739c52935f1b0606dc5531e6eb3 Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Date: Sat Aug 11 18:50:42 2012 +0200 toolchain-external: improve glibc support to test availability of RPC Let me know which one solution you prefer. Best regards
Le Wed, 22 Aug 2012 10:46:49 +0200, Fabio Porcedda <fabio.porcedda@gmail.com> a écrit : > I've discovered only today that this toolchain has already the rpc library... > so the test fail because the rpc/rpc.h header it's present. > > getting-started.pdf: > A.1.1. Changes in Sourcery CodeBench Lite 2012.03-57 > ... > RPC library functions. GLIBC has been changed so that programs may > again be built to use its > RPC library functions. The ability to build programs using these > functions had previously been dis- > abled. Argh, so they brought back RPC support into glibc... sigh. > IMHO there are two solutions: > a) update this patch to enable the BR2_TOOLCHAIN_HAS_NATIVE_RPC > b) apply as is directly on the next branch and change accordingly the commit: > commit 80f89c34315be739c52935f1b0606dc5531e6eb3 > Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > Date: Sat Aug 11 18:50:42 2012 +0200 > > toolchain-external: improve glibc support to test availability of RPC > > Let me know which one solution you prefer. I'm a bit hesitant here. If newer glibc toolchains re-include the RPC support, is it worth supporting libtirpc and do all the changes I had proposed? Or should we just give up and say we only support glibc toolchains that include RPC support? Maybe not nice, since libtirpc brings quite a few features compared to in-toolchain RPC support. Comments from others? Thomas
Thomas, Fabio, All, On Wednesday 22 August 2012 15:51:22 Thomas Petazzoni wrote: > Le Wed, 22 Aug 2012 10:46:49 +0200, > Fabio Porcedda <fabio.porcedda@gmail.com> a écrit : > > > I've discovered only today that this toolchain has already the rpc library... > > so the test fail because the rpc/rpc.h header it's present. > > > > getting-started.pdf: > > A.1.1. Changes in Sourcery CodeBench Lite 2012.03-57 > > ... > > RPC library functions. GLIBC has been changed so that programs may > > again be built to use its > > RPC library functions. The ability to build programs using these > > functions had previously been dis- > > abled. > > Argh, so they brought back RPC support into glibc... sigh. Yes, since the change in maintainership, they've reinstated RPC support: http://sourceware.org/git/?p=glibc.git;a=commit;h=021db4be6f1f4189f66feee066a495d49e92b93e In fact, RPC was not gone. The RPC libraries were still built and installed, so programs already built would still run, but the headers were not installed, so no new package could be compiled. That's just the headers insallation that was reinstated. > > IMHO there are two solutions: > > a) update this patch to enable the BR2_TOOLCHAIN_HAS_NATIVE_RPC > > b) apply as is directly on the next branch and change accordingly the commit: > > commit 80f89c34315be739c52935f1b0606dc5531e6eb3 > > Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > Date: Sat Aug 11 18:50:42 2012 +0200 > > > > toolchain-external: improve glibc support to test availability of RPC > > > > Let me know which one solution you prefer. > > I'm a bit hesitant here. If newer glibc toolchains re-include the RPC > support, is it worth supporting libtirpc and do all the changes I had > proposed? Or should we just give up and say we only support > glibc toolchains that include RPC support? Maybe not nice, since > libtirpc brings quite a few features compared to in-toolchain RPC > support. > > Comments from others? In glibc, RPC is now considered obsolete, and still planned for removal, albeit no time-line exists AFAIK. So, although glibc now again installs RPC headers, I think working on the libtirpc replacement is still the way to go. It's just that it's less critical for now. Also, there is currently no provision in crosstool-NG to build glibc/eglibc with --enable-obsolete-rpc (although that should be easy to add; will do shortly). In the end, I don not think that your work on libtirpc is still valuable, because at the very least, it offers some insights on the road to go, and even provides a good overview of the issues at hand, and how to possibly solve those. Regards, Yann E. MORIN.
On 08/22/12 16:36, Yann E. MORIN wrote: >> > I'm a bit hesitant here. If newer glibc toolchains re-include the RPC >> > support, is it worth supporting libtirpc and do all the changes I had >> > proposed? Or should we just give up and say we only support >> > glibc toolchains that include RPC support? Maybe not nice, since >> > libtirpc brings quite a few features compared to in-toolchain RPC >> > support. >> > >> > Comments from others? > In glibc, RPC is now considered obsolete, and still planned for removal, > albeit no time-line exists AFAIK. > > So, although glibc now again installs RPC headers, I think working on > the libtirpc replacement is still the way to go. It's just that it's less > critical for now. > > Also, there is currently no provision in crosstool-NG to build glibc/eglibc > with --enable-obsolete-rpc (although that should be easy to add; will do > shortly). > > In the end, I don not think that your work on libtirpc is still valuable, ^^^^^^^not??? > because at the very least, it offers some insights on the road to go, and > even provides a good overview of the issues at hand, and how to possibly > solve those. At the very least it is useful to be able to use tirpc instead of uClibc RPC. And I agree that this patch set is good for the future. Also, it's in such a good state already that it would be a real shame to discard it. Some of the preparatory patches (1-4, 7-10) can definitely be applied in the short term, even if libtirpc isn't included. Especially patch 4 is a good one to make sure people don't run into the issue anymore with locally installed external toolchains. Regards, Arnout
Arnout, Thomas, All, On Wednesday 29 August 2012 00:45:06 Arnout Vandecappelle wrote: > On 08/22/12 16:36, Yann E. MORIN wrote: > >> > I'm a bit hesitant here. If newer glibc toolchains re-include the RPC > >> > support, is it worth supporting libtirpc and do all the changes I had > >> > proposed? Or should we just give up and say we only support > >> > glibc toolchains that include RPC support? Maybe not nice, since > >> > libtirpc brings quite a few features compared to in-toolchain RPC > >> > support. > >> > > >> > Comments from others? > > In the end, I don not think that your work on libtirpc is still valuable, > ^^^^^^^not??? Of course, I meant: I *do* think it is valuable. Regards, Yann E. MORIN.
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in index 83be75a..ede1a3b 100644 --- a/toolchain/toolchain-external/Config.in +++ b/toolchain/toolchain-external/Config.in @@ -82,6 +82,27 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_2012_02 Thumb 2, with the softfp calling convention, and uses the VFPv3-D16 FPU instructions. +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201203 + bool "Sourcery CodeBench ARM 2012.03" + depends on BR2_arm + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_INSTALL_LIBSTDCPP + help + Sourcery CodeBench toolchain for the ARM architecture, from + Mentor Graphics. It uses gcc 4.6.3, binutils 2.21.53, glibc + 2.15 and gdb 7.2.50, kernel headers 3.2.10. It has support + for the following variants: + - ARMv5TE, little endian, soft-float, glibc + Select ARM926T, ARM10T, XScale or another ARMv5 core + Select BR2_SOFT_FLOAT + - ARMv4T, little endian, soft-float, glibc + Select ARM720T, ARM920T, ARM922T or another ARMv4 core + Select BR2_SOFT_FLOAT + - ARMv7-A, Thumb 2, little endian, soft-float, glibc + Select Cortex-A8, Cortex-A9 or another ARMv7-A core + Select BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mthumb + config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109 bool "Sourcery CodeBench ARM 2011.09" depends on BR2_arm @@ -678,6 +699,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009 default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201103 default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109 + default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201203 default "microblazeel-unknown-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2 default "microblaze-unknown-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2 default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS44 diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk index 0d4c022..f8a730e 100644 --- a/toolchain/toolchain-external/ext-tool.mk +++ b/toolchain/toolchain-external/ext-tool.mk @@ -187,6 +187,9 @@ TOOLCHAIN_EXTERNAL_SOURCE=arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gn else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y) TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/ TOOLCHAIN_EXTERNAL_SOURCE=arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201203),y) +TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/ +TOOLCHAIN_EXTERNAL_SOURCE=arm-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_2012_02),y) TOOLCHAIN_EXTERNAL_SITE=http://launchpad.net/linaro-toolchain-binaries/trunk/2012.02/+download/ TOOLCHAIN_EXTERNAL_SOURCE=gcc-linaro-arm-linux-gnueabi-2012.02-20120222_linux.tar.bz2