recent breakage on mips: hash.c?

J. Johnston
Fri Jun 21 08:36:00 GMT 2002 wrote:
> I ran into some problems on mips which seem to be caused by the patch
> from:
> 2002-06-20  Thomas Fitzsimmons  <>
> which adds the libc/search stuff.  (Amusing to see my re-implemented
> hcreate et al. show up someplace...  Is this the reason K.B. asked me
> about it a few weeks ago?  8-)  I didn't see any recent posting about
> that patch to the list...  Did i miss something, or is posting patches
> to the list not customary as it is for e.g. binutils?
> Anyway, compiling from sources as of ... earlier today, host
> sparc-solaris target mips-elf, i get:
> /projects/bbp_ext7/systems/cgd/proj/gcc-testing/work/ -B/projects/bbp_ext7/systems/cgd/proj/gcc-testing/work/ -nostdinc -B/projects/bbp_ext7/systems/cgd/proj/gcc-testing/work/ -isystem /projects/bbp_ext7/systems/cgd/proj/gcc-testing/work/ -isystem /home/cgd/proj/gcc-testing/combined/newlib/libc/include -B/home/cgd/proj/gcc-testing/work/mips-elf.install/mips-elf/bin/ -B/home/cgd/proj/gcc-testing/work/mips-elf.install/mips-elf/lib/ -isystem /home/cgd/proj/gcc-testing/work/mips-elf.install/mips-elf/include -L/projects/bbp_ext7/systems/cgd/proj/gcc-testing/work/  -msoft-float -DPACKAGE=\"newlib\" -DVERSION=\"1.10.0\"  -I. -I/home/cgd/proj/gcc-testing/combined/newlib/libc/search  -O2 -DMISSING_SYSCALL_NAMES -fno-builtin      -O2 -g -O2  -msoft-float -c /home/cgd/proj/gcc-testing/combined/newlib/libc/search/hash.c
> /home/cgd/proj/gcc-testing/combined/newlib/libc/search/hash.c: In function `init_hash':
> /home/cgd/proj/gcc-testing/combined/newlib/libc/search/hash.c:298: error: `BYTE_ORDER' undeclared (first use in this function)
> /home/cgd/proj/gcc-testing/combined/newlib/libc/search/hash.c:298: error: (Each undeclared identifier is reported only once
> /home/cgd/proj/gcc-testing/combined/newlib/libc/search/hash.c:298: error: for each function it appears in.)
> gmake[5]: *** [hash.o] Error 1
> Looks like this would normally be defined by
> libc/include/sys/param.h because of __IEEE_{BIG,LITTLE}_ENDIAN.
> In turn, those are defined in one of:
>         ./libc/include/machine/ieeefp.h
>         ./libc/include/sys/config.h
> it looks like MIPS currently only has the macros defined in the
> former.  The latter has the comment:
> /* ??? Why is much of this stuff duplicated with machine/ieeefp.h?  */
> so it looks like others have been confused by this in the past?
> I've copied the MIPSE{L,B} blocks from ieeefp.h to config.h, and am
> going to give it a go...  but does that sound like the right solution?
> The duplication ... does seem silly and harmful...

I have a patch which I am testing as we speak.  I have placed a default setting in
sys/param.h based on whether sys/config.h sets BYTE_ORDER or not.  The same default
setting goes in hash.h in libc/search.  Both are protected.  This seems to remove the 
problem and avoid conflict with Cygwin that defines BYTE_ORDER or the other systems that 
provide sys/param.h.

I will repost when my testing is completed and the patch is applied.

-- Jeff J.

More information about the Newlib mailing list