Bare Bone Arm-Elf-Gcc

J. Johnston jjohnstn@redhat.com
Thu Feb 6 17:08:00 GMT 2003


Dave,

   From the newlib/libgloss side, I have been thinking about this and I
propose that newlib adds a configuration option that tells newlib not to
supply low-level syscalls.  This would allow you to build newlib without
the RDI/RDP syscalls.  You should then place your new code
in the libgloss/arm directory and build a separate library, crt0, and ld
script which specifies both your library and your crt0.  You can then
use the compiler -T option to specify your ld script.

   The configuration options solves a long-standing problem regarding older
platforms that put the syscall code in newlib and it really should be
in libgloss.  We could copy the existing code over to libgloss and eventually
remove the problem by syncing up a default ld script with the compiler folks.

-- Jeff J.

David Mc Kenna wrote:
> Hi all,
> 
> I have successfully compiled gcc v3.2.1, binutils v2.13 and newlib v1.10 on
> cygwin for Arm-elf.
> 
> From these programs I have compiled and run, on hardware, several programs doing
> math functions,etc. . 
> 
> I have come across problems when I try to do printf and scanf statements. My
> main problem is that from delving into newlib/libc/sys/arm/syscalls.c that printf
> and scanf require RDI or RDP i.e. Angel or Demon, installed on the chip, which
> I don't have.
> 
> To get over this I have encoded a software UART using bit banging in assembly
> and I would like gcc to use this function by default for I/O from the chip.
> 
> 
> What is the easiest way to implement this? Is it by modifying syscalls.c or
> going in via libgloss?
> 
> Below is my compile script
> 
> Any help is appreciated
> 
> Thanks,
> Dave
> 
> 
> 
> cd $gccver
> ln -s ../$newlibver/newlib newlib
> ln -s ../$newlibver/libgloss libgloss
> 
> cp /home/PCAdmin/script/t-arm-elf $src_root/$gccver/gcc/config/arm
> 
> 
> cd $src_root/BUILD/binutils && \rm -rf *
> ../../$binutilsver/configure \
>     --with-included-gettext --enable-interwork --with-cpu=arm7tdmi \
>     --target=$target --host=$host --build=$build --enable-multilib -disable-shared
> \
>     --prefix=$prefix -v >  ../logs/$target-$binutilsver-configure.log 2>&1
> 
> # 	Make Binutils
> 
> make -w all install > ../logs/$target-$binutilsver-make.log 2>&1
> 
> 
> cd $src_root/BUILD/gcc && rm -rf *
> 
> $src_root/$gccver/configure \
>      	--with-newlib --without-headers --with-gnu-as --with-gnu-ld --enable-win32-registry
> \
>      	--target=$target --prefix=$prefix --exec-prefix=$prefix --host=$host 
>  \
>  	--enable-multilib --enable-interwork --disable-shared --enable-languages=c
> 
>>../logs/$target-$gccver-bootconf.log 2>&1
> 
> 
> make all-gcc install-gcc > ../logs/$target-$gccver-bootmake.log 2>&1
> 
> cd $src_root/BUILD/newlib
> $src_root/$newlibver/configure --target=$target --prefix=$prefix > ../logs/$target-$newlibver-conf.log
> 2>&1
> 
> make all install > ../logs/$target-$newlibver-make.log 2>&1
> 
> cd $src_root/BUILD/gcc && rm -rf *
> 
> $src_root/$gccver/configure \
>     --enable-languages=c,c++ \
>     --target=$target --host=$host --build=$build --enable-win32-registry \
>     --with-newlib \
>     --prefix=$prefix \
>     --exec-prefix=$prefix \
>      --enable-multilib --enable-interwork \
>     --with-gnu-as --with-gnu-ld  -v > ../logs/$target-$gccver-fullconf.log 2>&1
> 
> 
> make -w all-gcc install-gcc > ../logs/$target-$gccver-fullmake.log 2>&1
> 
> 
> 
> --
> http://www.iol.ie



------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com



More information about the crossgcc mailing list