On Wednesday 11 April 2007 8:42 am, Will Newton wrote: > Hi all, > > I noticed there was a change here: > > http://www.busybox.net/cgi-bin/viewcvs.cgi/trunk/uClibc/Rules.mak?rev=13205&r1=13200&r2=13205 > > that enabled -fsigned-char for all arches. What was the reasoning > behind this decision? I'm reliably informed that it generates > suboptimal code on our architecture.
Because when it varies it's a source of bugs, and we got tired of hitting them. (And yes, we hit them.) You can specify "signed char" or "unsigned char" when you declare them, and lots of places do. But gcc 4.x produces warnings whenever things "differ in signedness", and filling the code with typecasts to make this shut up would make the code brittle and unreadable and eventually introduce new bugs (because that thing you're typecasting to (signed char) got turned into an unsigned int elsewhere and all the references that produced an error or warning were fixed up, but the typecast prevents this one from complaining...) BusyBox chose -funsigned-char because we liked being 8-bit clean. (Makes things like UTF-8 a whole lot easier). But tinycc won't work if you build it with -funsigned-char, which also means it won't work if you build it on an architecture that defaults to -funsigned-char (arm, for example). I haven't tracked down the problem there yet... Which architecture are you referring to? Rob -- Penguicon 5.0 Apr 20-22, Linux Expo/SF Convention. Bruce Schneier, Christine Peterson, Steve Jackson, Randy Milholland, Elizabeth Bear, Charlie Stross... _______________________________________________ uClibc mailing list uClibc@uclibc.org http://busybox.net/cgi-bin/mailman/listinfo/uclibc