Mailinglist Archive: opensuse-arm (88 mails)

< Previous Next >
[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@xxxxxxxx
Index: Makefile
===================================================================
--- Makefile.orig
+++ Makefile
@@ -8,7 +8,7 @@ LIBDIR=${prefix}/lib
BINDIR=${prefix}/bin
MAN1DIR=${prefix}/man/man1

-MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e
's/armv[3-6]t\?e\?[lb]/arm/')
+MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e
's/armv[3-7]t\?e\?[lb]/arm/')

# This extra-ugly cruft is here so make will not run uname and sed each
# time it looks at $(OBJDIR). This alone sped up running make when
< Previous Next >