This is the mail archive of the
newlib@sources.redhat.com
mailing list for the newlib project.
Re: Bare Bone Arm-Elf-Gcc
- From: "David Mc Kenna" <mckennad at esatclear dot ie>
- To: crossgcc at sources dot redhat dot com, newlib at sources dot redhat dot com
- Date: Fri, 7 Feb 2003 10:28:12 GMT
- Subject: Re: Bare Bone Arm-Elf-Gcc
- Reply-to: mckennad at esatclear dot ie
Jeff,
What would the difference be in just modifying the libnosys directory and then
you could just pass the -lnosys option to gcc?
Dave
>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
>>
>>
>--
>http://www.iol.ie
>
--
http://www.iol.ie