[opensuse-arm] dietlibc status
Hi All, I spent some time with dietlibc on the weekend. Here's the story: * The attached patch is necessary to fix the immediate build error (doesn't recognize armv7a as a known architecture). * If you apply this patch, later, the build fails with: gcc -D__dietlibc__ -I. -isystem include -fmessage-length=0 -march=armv7-a -mtune=cortex-a9 -mlittle-endian -mfpu=vfpv3-d16 -mfloat-abi=hard -mthumb -mabi=aapcs-linux -Os -Wall -fstack-protector -g -fno-strict-aliasing -c arm/__longjmp.S -o bin-arm/__longjmp.o arm/__longjmp.S: Assembler messages: arm/__longjmp.S:9: Error: selected processor does not support ARM mode `lfm f4,4,[ip],#48' Apparently, FPU vfpv3-d16 doesn't include the lfm opcode (nor sfm, used in setjmp). I am unfortunately grossly unqualified to have an opinion on this, or to (re)implement a correct setjmp/longjmp. * I suspected an upgrade to dietlibc 0.32 may be good/useful (see changelog at http://www.fefe.de/dietlibc/changes-0.32.txt, it mentions some ARM fixes), but AFACIT even upgrading to 0.32 does not fix the above lfm/sfm opcode issue. * Unless other packages depend on it, I'm somewhat tempted to suggest dropping dietlibc if suitable fixes can't be located. The last upstream release was in 2009, and there's mention of it having "numerous unfixed bugs" on the busybox web site (http://busybox.net/FAQ.html#libc) Regards, Tim -- Tim Serong Senior Clustering Engineer SUSE tserong@suse.com
Le 05/10/2011 06:18, Tim Serong a écrit :
Hi All,
I spent some time with dietlibc on the weekend. Here's the story:
* The attached patch is necessary to fix the immediate build error (doesn't recognize armv7a as a known architecture).
* If you apply this patch, later, the build fails with:
gcc -D__dietlibc__ -I. -isystem include -fmessage-length=0 -march=armv7-a -mtune=cortex-a9 -mlittle-endian -mfpu=vfpv3-d16 -mfloat-abi=hard -mthumb -mabi=aapcs-linux -Os -Wall -fstack-protector -g -fno-strict-aliasing -c arm/__longjmp.S -o bin-arm/__longjmp.o arm/__longjmp.S: Assembler messages: arm/__longjmp.S:9: Error: selected processor does not support ARM mode `lfm f4,4,[ip],#48'
Apparently, FPU vfpv3-d16 doesn't include the lfm opcode (nor sfm, used in setjmp). I am unfortunately grossly unqualified to have an opinion on this, or to (re)implement a correct setjmp/longjmp.
* I suspected an upgrade to dietlibc 0.32 may be good/useful (see changelog at http://www.fefe.de/dietlibc/changes-0.32.txt, it mentions some ARM fixes), but AFACIT even upgrading to 0.32 does not fix the above lfm/sfm opcode issue.
Did you try it?
* Unless other packages depend on it, I'm somewhat tempted to suggest dropping dietlibc if suitable fixes can't be located. The last upstream release was in 2009, and there's mention of it having "numerous unfixed bugs" on the busybox web site (http://busybox.net/FAQ.html#libc)
Dietlibc is clearly unmaintened and buggy. Other more or less light libc can be used if nedded: uClibc, eglibc. Moreover, a quick search about packages which need dietlibc in YaST return me nothing! Only the dietlibc package is related to dietlibc. So, I would say, drop it! Cheers, Guillaume
Regards,
Tim
-- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-arm+help@opensuse.org
On 05/10/11 18:35, Guillaume Gardet wrote:
Apparently, FPU vfpv3-d16 doesn't include the lfm opcode (nor sfm, used in setjmp). I am unfortunately grossly unqualified to have an opinion on this, or to (re)implement a correct setjmp/longjmp.
* I suspected an upgrade to dietlibc 0.32 may be good/useful (see changelog at http://www.fefe.de/dietlibc/changes-0.32.txt, it mentions some ARM fixes), but AFACIT even upgrading to 0.32 does not fix the above lfm/sfm opcode issue.
Did you try it?
Yep. 0.32 doesn't help with lfm/sfm in setjmp/longjmp (that code didn't change...) Regards, Tim -- Tim Serong Senior Clustering Engineer SUSE tserong@suse.com -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
On Wednesday 05 October 2011, Tim Serong wrote:
* The attached patch is necessary to fix the immediate build error (doesn't recognize armv7a as a known architecture).
nice, thanks. can you osc sr it? I'll review and accept it.
* I suspected an upgrade to dietlibc 0.32 may be good/useful (see changelog at http://www.fefe.de/dietlibc/changes-0.32.txt, it mentions some ARM fixes), but AFACIT even upgrading to 0.32 does not fix the above lfm/sfm opcode issue.
feel free to include it.. even if it doesn't fix the problem fully.
* Unless other packages depend on it, I'm somewhat tempted to suggest dropping dietlibc if suitable fixes can't be located. The last upstream release was in 2009, and there's mention of it having "numerous unfixed bugs" on the busybox web site (http://busybox.net/FAQ.html#libc)
dietlibc is a standalone package and still it keeps reappearing (I used to be the maintainer of it a few years ago and dropped it, but it was kept adding back to factory by others..). as it doesn't block anything else in factory from building, we can just ignore this failure for now (or remove the architecture from support, e.g. add ExcludeArch: %arm to the spec file). that would also fix it. feel free to submit that. Thanks, Dirk -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-arm+help@opensuse.org
On 05/10/11 19:56, Dirk Müller wrote:
On Wednesday 05 October 2011, Tim Serong wrote:
* The attached patch is necessary to fix the immediate build error (doesn't recognize armv7a as a known architecture).
nice, thanks. can you osc sr it? I'll review and accept it.
* I suspected an upgrade to dietlibc 0.32 may be good/useful (see changelog at http://www.fefe.de/dietlibc/changes-0.32.txt, it mentions some ARM fixes), but AFACIT even upgrading to 0.32 does not fix the above lfm/sfm opcode issue.
feel free to include it.. even if it doesn't fix the problem fully.
* Unless other packages depend on it, I'm somewhat tempted to suggest dropping dietlibc if suitable fixes can't be located. The last upstream release was in 2009, and there's mention of it having "numerous unfixed bugs" on the busybox web site (http://busybox.net/FAQ.html#libc)
dietlibc is a standalone package and still it keeps reappearing (I used to be the maintainer of it a few years ago and dropped it, but it was kept adding back to factory by others..).
as it doesn't block anything else in factory from building, we can just ignore this failure for now (or remove the architecture from support, e.g. add ExcludeArch: %arm to the spec file).
that would also fix it. feel free to submit that.
I've submitted this: https://build.opensuse.org/request/show/86666 Which is the patch I mentioned previously, plus "ExcludeArch: %arm", plus some hopefully helpful notes to whomever is able to pick this up in future :) Regards, Tim -- Tim Serong Senior Clustering Engineer SUSE tserong@suse.com -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
participants (3)
-
Dirk Müller
-
Guillaume Gardet
-
Tim Serong