_ELIX_LEVEL problems

Joern RENNECKE joern.rennecke@st.com
Tue May 9 20:45:00 GMT 2006


Jeff Johnston wrote:

> When _ELIX_LEVEL is undefined (i.e. 0), there are no restrictions.  
> The _ELIX_LEVEL is not supposed to always be defined in newlib.h.  
> This allows the possibility of the maximum level (currently 4) to 
> exclude functionality it does not wish to support and to allow future 
> additional maximums.   Conceivably, yes, the level could be set to 0 
> and the tests could be made to reflect it, but it seems more intuitive 
> that if no level is being set, there are no restrictions.  This vs 
> "why does level 0 have more functionality than level 3".
>
> There is quite possibly some missing restrictions in the code as you 
> have noted regarding vfscanf.c.
>
> What specific problems are you seeing in your build that you alluded 
> to in your other note?

For an sh-elf build, _ELIX_LEVEL is not defined.  We refer to some of 
the symbols reserved for higher elix levels, and we used to build all 
the files required.  In particular:

bash-2.05b$ grep LIB_OBJS 
/mnt/scratch/nightly/2006-02-18/sh-elf/sh-elf/newlib/libc/ctype/Makefile
#LIB_OBJS =
LIB_OBJS =      isascii.$(oext)         isblank.$(oext)         
iswalnum.$(oext)        iswalpha.$(oext)        iswblank.$(oext)        
iswcntrl.$(oext)       iswctype.$(oext)         iswdigit.$(oext)        
iswgraph.$(oext)        iswlower.$(oext)        iswprint.$(oext)        
iswpunct.$(oext)        iswspace.$(oext)        iswupper.$(oext)        
iswxdigit.$(oext)       jp2uc.$(oext)   toascii.$(oext)         
_tolower.$(oext)        _toupper.$(oext)        towctrans.$(oext)       
towlower.$(oext)        towupper.$(oext)        wctrans.$(oext)        
wctype.$(oext)
#libctype_la_LIBADD = $(LIB_OBJS)
#libctype_la_DEPENDENCIES = $(LIB_OBJS)
lib_a_LIBADD = $(LIB_OBJS)
lib_a_DEPENDENCIES = $(LIB_OBJS)

This is no longer the case now:

bash-2.05b$ grep lib_a_OBJECTS 
/mnt/scratch/nightly/2006-05-03/sh-elf/sh-elf/newlib/libc/ctype/Makefile
am_lib_a_OBJECTS = $(am__objects_1)
lib_a_OBJECTS = $(am_lib_a_OBJECTS)
lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
        $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)

Not surprisingly, is isw* files are not included in am__objects_1; they 
are in am__objects_3.



More information about the Newlib mailing list