EmbDev.net

Forum: ARM programming with GCC/GNU tools Newlib rebuild - "Making all in doc" fails.


von Clifford S. (clifford)


Rate this post
useful
not useful
I am attempting to rebuild Newlib from source with a view eventually to
rebuilding for VFP support. The build has created libc.a and libm.a, but
when it does "Making all in doc" the following occurs:

-START----------------------------------------
Making all in doc
make[2]: Entering directory
`/e/projects/newlib/newlib-1.14.0/newlib/doc'
gcc   -o makedoc makedoc.o
d:\winarm\arm-elf\bin\ld.exe: crti.o: No such file: No such file or
directory
-END----------------------------------------

I am running the build within the MSYS shell from mingw.org. The build
is executed using teh following script:

-START----------------------------------------
#!/bin/sh

#----------------------------------------------------------------------- 
----
#       Setup Environment for cross-development arm-elf
#----------------------------------------------------------------------- 
----
export TOOLDIR=/d/winarm ;
TARGET=arm-elf ;
GCC_VER=4.0.2 ;

export TARGET ;
echo Setting up Shell for $TARGET ;
export PATH=$TOOLDIR/$TARGET/bin:$TOOLDIR/bin:$PATH
export COMPILER_PATH=$TOOLDIR/$TARGET/bin
export GCC_EXEC_PREFIX=$TOOLDIR/libexec/gcc/$TARGET/
export LIBRARY_PATH=$TOOLDIR/lib/gcc/$TARGET/$GCC_VER
export
C_INCLUDE_PATH="$TOOLDIR/$TARGET/include:$TOOLDIR/lib/gcc/$TARGET/$GCC_V 
ER/include"
export CPLUS_INCLUDE_PATH=$TOOLDIR/include/c++/$GCC_VER
export XXGDB_DEBUGGER=$TOOLDIR/utils/bin/$TARGET-gdb
PS1=$TARGET$
alias addr2line=$TARGET-addr2line
alias ar=$TARGET-ar
alias as=$TARGET-as
alias c++=$TARGET-c++
alias c++filt=$TARGET-c++filt
alias g++=$TARGET-g++
alias gasp=$TARGET-gasp
alias gcc=$TARGET-gcc
alias gdb=$TARGET-gdb
alias gdbtk=$TARGET-gdbtk
alias ld=$TARGET-ld
alias objcopy=$TARGET-objcopy
alias objdump=$TARGET-objdump
alias ranlib=$TARGET-ranlib
alias run=$TARGET-run
alias sim=$TARGET-sim
alias size=$TARGET-size
alias strings=$TARGET-strings
alias strip=$TARGET-strip
echo $TARGET "MSYS Shell Ready..."

./configure -target=arm-elf -host=arm -build=i686
--disable-newlib-supplied-syscalls

gcc -v ;
make clean ;
make all
-START----------------------------------------

Some of the environment setup is redundant of course, but was 'lifted'
and modified from a MicroCross X-Tools BASH shell initialisation.

I suspect that the crti.o that it is attempting to find is for a native
(i386) gnu compiler (which I do not have installed).

My question is what is 'made' in doc? If it is just man pages, then I
probably don't care. How should I supress this step of the build?

Clifford

von Clifford S. (clifford)


Rate this post
useful
not useful
I have made someprogress on this. Currently I have suppressed the the
doc build by modifying the configure script thus:

Change:

if test -z "${with_multisubdir}"; then
  configdirs="${configdirs} doc"
  have_doc=yes
else
  have_doc=
fi

to:

if test -z "${with_multisubdir}"; then
#  configdirs="${configdirs} doc"
#  have_doc=yes
   have_doc=
else
  have_doc=
fi


This is of course a shameless hack. Is there a 'clean' way?

Anyhow, not that that is done, does anyone have any idea why my
libraries might be 5 times larger than any of thise supplied with
WinARM?


Clifford

von Martin Thomas (Guest)


Rate this post
useful
not useful
Clifford Slocombe wrote:
> I have made someprogress on this. Currently I have suppressed the the
> doc build by modifying the configure script thus:
>
> Change:
>
> if test -z "${with_multisubdir}"; then
>   configdirs="${configdirs} doc"
>   have_doc=yes
> else
>   have_doc=
> fi
>
> to:
>
> if test -z "${with_multisubdir}"; then
> #  configdirs="${configdirs} doc"
> #  have_doc=yes
>    have_doc=
> else
>   have_doc=
> fi
>
>
> This is of course a shameless hack. Is there a 'clean' way?

For the doc-files: IRC I have "makeinfo" installed on the
"WinARM-build-system" here. I don't remember where I have downloaded it
but maybe somewhere from the gnu-win32-project.

> Anyhow, not that that is done, does anyone have any idea why my
> libraries might be 5 times larger than any of thise supplied with
> WinARM?

Parts from the script I used to build the newlib for WinARM 6/06, maybe
the "Prefer size" and "Os" option will "help".

$SRCDIR/configure --prefix=$prefix --target=$target
--enable-target-optspace \
--enable-interwork --enable-multilib  --disable-newlib-supplied-syscalls
-v 2>&1 | tee r5_configure.log
make CFLAGS_FOR_TARGET="-DREENTRANT_SYSCALLS_PROVIDED
-DPREFER_SIZE_OVER_SPEED -Os" all 2>&1 | tee r5_make.log

Since you are building the newlib in the "mingw-environement": Could you
please verify if the --disable-newlib-supplied-syscalls is needed? IRC I
have included this option for the 3/06-Version since the build did not
work without but I have not checked again during the build for 6/06 if
it's still needed.


Martin Thomas

von Clifford S. (clifford)


Rate this post
useful
not useful
Martin Thomas wrote:
>
> Parts from the script I used to build the newlib for WinARM 6/06, maybe
> the "Prefer size" and "Os" option will "help".
>
> $SRCDIR/configure --prefix=$prefix --target=$target
> --enable-target-optspace \
> --enable-interwork --enable-multilib  --disable-newlib-supplied-syscalls
> -v 2>&1 | tee r5_configure.log
> make CFLAGS_FOR_TARGET="-DREENTRANT_SYSCALLS_PROVIDED
> -DPREFER_SIZE_OVER_SPEED -Os" all 2>&1 | tee r5_make.log

I just noticed in the build log that the -g option is set, that would
account for it. I can't see how to switch that off externally, I shall
just strip it perhaps (or ignore it).

>
> Since you are building the newlib in the "mingw-environement": Could you
> please verify if the --disable-newlib-supplied-syscalls is needed? IRC I
> have included this option for the 3/06-Version since the build did not
> work without but I have not checked again during the build for 6/06 if
> it's still needed.
>
I am using this option specifically because I am providing my own for a
custom board and we don't have either of the supported debug monitors or
use the simulator. However, since it will take little time, I'll test it
to see how it goes. I am also still using Version 20060117 with a
replacement sh.exe from unxutils.

Thanks for your assistance,

Clifford

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.