pass in -fshort_wchar when build newlib

Weiyang Zhou weiyangz@codecorp.com
Thu Feb 23 16:58:00 GMT 2006


I have built a cross compile toolchain for mips-elf with binutils-2.16.1,
gcc-4.0.2, newlib-1.14.0 and gdb-6.4. It works fine and I can build the
application for the target system on my Windows machine. 

Now we have some third party code uses "unsigned short" to store Unicode
character. But the default size of wchar_t in GCC is 4 bytes. I tried to use
-fshort_wchar flag when build the application, but it crashes in wcslen on
startup. I think it is because the standard C library was built with
-fshort_wchar flag. Does anyone know how can pass that flag when I build
newlib? 

Here is the scripts I used to build the toolchain. 

INSTALL=/usr/local/comp
ARCHIVE=.

TARGET=mips-elf
BINUTILS=binutils-2.16.1
GCC=gcc-4.0.2
NEWLIB=newlib-1.14.0
GDB=gdb-6.4

PREFIX=${INSTALL}/${TARGET}/${GCC}

CFG="--target=${TARGET} --with-gnu-as --with-gnu-ld --with-newlib
--prefix=${PREFIX} --enable-languages=c,c++ --enable-gofast"

if [ ! -d ${BINUTILS} ]; then
    tar xvzf ${ARCHIVE}/${BINUTILS}.tar.gz
fi
if [ ! -d ${GCC} ]; then
    tar xvzf ${ARCHIVE}/${GCC}.tar.gz
fi
if [ ! -d ${NEWLIB} ]; then
    tar xvzf ${ARCHIVE}/${NEWLIB}.tar.gz
fi
if [ ! -d ${GDB} ]; then
    tar xvzf ${ARCHIVE}/${GDB}.tar.gz
fi

# binutils
mkdir ob ; cd ob
../${BINUTILS}/configure ${CFG}
make
make install
cd ..

# update PATH
PATH=${PREFIX}/bin:$PATH ; export PATH

# gcc/g++ - pass one
mkdir og ; cd og
../${GCC}/configure ${CFG}
make
make install
cd ..

# newlib
mkdir on ; cd on
../${NEWLIB}/configure ${CFG}
make
make install
cd ..

# gcc/g++ - pass two
rm -fr og
mkdir og ; cd og
../${GCC}/configure ${CFG}
make
make install
cd ..

# insight or gdb
mkdir od ; cd od
../${GDB}/configure ${CFG}
make
make install
cd ..

 
Thank you,
 
Weiyang Zhou





More information about the Newlib mailing list