This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Well, for starters you haven't removed the problem of having the syscalls in newlib. Because they are in libc, you can't simply add your own library to replace them. I will soon be checking in a patch to add the configuration option I mention below. Now, regarding modifying libnosys. What modifications did you have in mind? It currently is a generic default stub library meant to patch up any library missing syscalls. It doesn't supply _exit so in itself is not complete. I don't see much value-add in making this platform-specific / board-specific as there is already a system in place for building platform-specific / board-specific libraries. -- Jeff J. David Mc Kenna wrote:
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 olderplatforms that put the syscall code in newlib and it really should be in libgloss. We could copy the existing code over to libgloss and eventuallyremove 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.10oncygwin for Arm-elf. From these programs I have compiled and run, on hardware, several programsdoingmath functions,etc. .
I have come across problems when I try to do printf and scanf statements.
Mymain problem is that from delving into newlib/libc/sys/arm/syscalls.c thatprintfand scanf require RDI or RDP i.e. Angel or Demon, installed on the chip,whichI don't have. To get over this I have encoded a software UART using bit banging in assemblyand 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.corgoing 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>&1make 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.log2>&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.log2>&1make -w all-gcc install-gcc > ../logs/$target-$gccver-fullmake.log 2>&1-- http://www.iol.ie-- http://www.iol.ie-- http://www.iol.ie
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |