osdir.com
mailing list archive

Subject: Re: Preparing for another release.... - msg#00294

List: lib.uclibc.general

Date: Prev Next Index Thread: Prev Next Index
Jay Carlson wrote:

> On Mon, 26 Aug 2002, Erik Andersen wrote:
>
> > Within a couple of months we should be ready for a 1.0.0 release,
> > at which point the 1.0.x series will be guaranteed to retain
> > binary compatibility.
>
> One thing to start thinking about now is building explicit symbol
> export lists. That is, list every symbol you *intend* to export from
> the library. Although this is somewhat useful in the static link
> case, it can be quite useful for shared library users.

[...]

Indeed, this is a very good thing to do and I'm actually working on
this. Maybe I'll get it done until the 1.0 release, though the cris
port I'm working on has higher priority right now. Just got to fix
that damn linker! ;-)

--
tobba


Was this page helpful?
Yes No
Thread at a glance:

Previous Message by Date: click to view message preview

Re: TinyX/x86 compiles ok (was 0.9.15 and TinyX)

> I tried compiling the lot on my laptop and there it worked like a charm > (being a P3 600 Intel), but on the system I do most of my compiling sits an AMD > Thunderbirg 1.1 GHz with slackware 8.1 (ie GCC 2.95.2). > > After some trying last night I realized it segfaulted on some other > compilations with the wrapper for uClibc. How about forcing -march=i386 ?? 1.1 GHz ? You must be able to do 2 dozens of TinyX compile per day ! Lucky you... ;) Christian ___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com

Next Message by Date: click to view message preview

Re: Attempting to port pthreads to the ColdFire (was: RE: Status of POSIX Thread Support in uClibc)

Hi, David Chan schrieb: > So, from examining the errors and source: > > /* Spinlock implementation; required. */ > PT_EI int > testandset (int *spinlock) > { > char ret; > > __asm__ __volatile__("tas %1; sne %0" > : "=dm"(ret), "=m"(*spinlock) > : "m"(*spinlock) > : "cc"); > > return ret; > } > > Error: invalid instruction for this architecture; > needs 68000 or higher -- statement `tas (%a0)' ignored > > - The tas instruction was eliminated from all ColdFire cores except for > v4 cores. This 'test and set' routine is intended to guarantee an atomic > read, modify, set behavior. This statement is intended to compare the > operand (%a0) to zero and set the CC flags as necessary (N, Z), and then > set the most significant bit of the byte to 1. This is supposed to be > performed without interruption. Theoretically, we could replace this > statement with a series of tst and andi instructions. But doesn't this > lose the no-interruption behavior we want from the tas instruction? The BSET command (Test a Bit and Set) could be used instead? >From the ColdFire Family Programmer's Reference Manual: ~(<bit number> of destination) -> CCR[Z]; 1 -> <bit number> of destination Regards Frieder

Previous Message by Thread: click to view message preview

Re: Preparing for another release....

On Mon, 26 Aug 2002, Erik Andersen wrote: > On Mon Aug 26, 2002 at 02:55:34PM -0700, David Schleef wrote: > > Is it still the case that changing options in the Config will > > cause binary incompatibilities? I have no problem with this > > by itself, but if there's going to be a "standard" ABI, it > > would be nice to have the exact specifications of this > > documented somewhere. (With prodding, I can help with this.) > > Yes, changing the config can cause binary incompatibilities. > There really isn't too much of a standard, since (thus far) > uClibc has not ever been geared towards maintaining binary > compatibility. We are probably close now to the point where such > a thing may become worthwhile. But I don't want to be boxed into > that quite yet. > > Within a couple of months we should be ready for a 1.0.0 release, > at which point the 1.0.x series will be guaranteed to retain > binary compatibility. One thing to start thinking about now is building explicit symbol export lists. That is, list every symbol you *intend* to export from the library. Although this is somewhat useful in the static link case, it can be quite useful for shared library users. o You can run a partial link before building an executable, looking for symbols in the "unintentionally exported" list. (Static, dynamic links) o You can examine "nm --dynamic" on executables. (Dynamic only.) o You can use the symbol versioning mechanisms to enforce the list at both build and runtime. (Dynamic only, I think.) o Given the above, people adding new functions and globals must take explicit action to gain access to them. Useful as a "did you mean to do this" mechanism. (Dynamic only.) o You can build libc4-style statically-linked, dynamically-loaded jumptable libraries. OK, most people don't want to go back to those bad old days, but on some architectures, notably embedded MIPS, there are huge performance advantages. (Weirdos only.) Jay

Next Message by Thread: click to view message preview

ctype.h bug

There appears to be a small bug in ctype.h of 0.9.14 and 0.9.12. When HAS_LOCALE is false, ctype.h defines tolower(), toupper() to the macros __C_tolower and __C_toupper. The macro expansion can be a bit of a problem for example: -------------------------------- #include <ctype.h> main() { char buf[4] = {"test"}; int idx = 2; printf("idx = %d\n", idx); toupper((unsigned char) buf[--idx]); printf("idx = %d\n", idx); } --------------------------------- The macro toupper() expands to (((sizeof((unsigned char) buf[--idx]) == sizeof(char)) ? (((unsigned char)(((unsigned char) buf[--idx]) - 'a')) < 26) : (((unsigned int)(((unsigned char) buf[--idx]) - 'a')) < 26)) ? (((unsigned char) buf[--idx]) ^ 0x20) : ((unsigned char) buf[--idx])); This causes --idx to be called twice. Incidentally, when <ctype.h> is not included the macro expansion does not take place and the toupper() function stub works as expected. Would it be possible to either remove the macros from ctype.h or to include inline functions (like glibc) instead. Thanks. Diff for ctype.h included --------------------------------- --- ctype.h.original 2002-08-25 21:41:33.000000000 -0400 +++ ctype.h 2002-08-25 21:41:46.000000000 -0400 @@ -114,8 +114,10 @@ #define ispunct(c) __C_ispunct(c) #define isupper(c) __C_isupper(c) +#if 0 #define tolower(c) __C_tolower(c) #define toupper(c) __C_toupper(c) +#endif #endif /* __UCLIBC_HAS_LOCALE__ */
Sign up for updates to this mailing list. email:
Loading Comments...
Home | News | Patents | Sitemap | FAQ | advertise

Advertising by