This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Building arm-elf cross under GCC 3.0.4 on HP-UX 11.00


Hello Albert

You wrote:

> I'm attempting to build an arm-elf cross-compiler with GCC 3.0.4 under
> HP-UX 11.00. 
  ...
> When trying to build newlib 1.9.0:
  ...
>   *** The command 'gcc -o conftest -g -O2   conftest.c' failed.
> 
> Any ideas? I believe that crt0 is part of newlib but if I cannot built
> newlib, how do I get crt0?

I also had problems building gcc-3.0.4 on HP-UX 10.20, although other
problems that then one you describe. At the end I succedded to build it with
a modified version af build-crossgcc.sh script, downloaded from
crossgcc.billgatliff.com.

The modified version is attached. It might help you.

Another thing is, that the version of gcc installed on the HP-UX host used
for building the cross compiler, has to be version 3.0.0 or higher. 

Yet another thing is, that when I try to build several times from the same
distro directory, the build failes with this error message:
gmake[3]: *** No rule to make target
`/home/hpj/work/gcc-3.0.4/libstdc++-v3/include/std/algorithm', needed by
`stamp-std'.  Stop.
gmake[3]: Leaving directory
`/home/hpj/work/build-gcc/arm-elf/libstdc++-v3/include'

I found that during the build some files where removed from the distro
directory structure. Maybe moved to the build directory structure.

Now a few comments on the most important modification to the build-crossgcc
script, which I did:

1. Added MYMAKE=gmake and replaced make with ${MYMAKE}
Because: The HP-UX make can not handle GNU Makefile extensions.

2. Untar-ing of gcc distro files allows that you have gcc-core-3.0.4.tar.gz
and 
gcc-g++-3.0.4.tar.gz in stead of gcc-3.0.4.tar.gz.

3. configure is called with absolut path, ie:
   ../${GCCDISTO}/configure --target=$TARGET .....
is replaced with
   ${ROOTDIR}/${GCCDISTO}/configure --target=$TARGET ...
This was needed because the original form made building of libstdc++ fail
likes this:
gmake[6]: Entering directory
`/home/hpj/work/build-gcc/arm-elf/thumb/libstdc++-v3/include'
gmake[6]: Nothing to be done for `install-exec-am'.
../../../../gcc-3.0.4/libstdc++-v3/../install-sh -c -d
/opt/local/gcc-3.0.4/arm-elf/tmp/include/g++-v3
gmake[6]: ../../../../gcc-3.0.4/libstdc++-v3/../install-sh: Command not
found

The problem is that the INSTALL macro in the Makefile in this directory is
overridden by an environment variable set in the Makefile in the parent
directory.


4. Configuration of gcc was extended with the option 
   --with-headers=${PREFIX}/${TARGET}/include
Without this I got the error:
In file included from
/home/hpj/work/build-gcc/arm-elf/libstdc++-v3/include/cstdlib:31,
                 from
/home/hpj/work/gcc-3.0.4/libstdc++-v3/libsupc++/eh_alloc.cc:34:
/home/hpj/work/build-gcc/arm-elf/libstdc++-v3/include/bits/std_cstdlib.h:75:
`div_t'
   not declared
and several similar lines.


kind regards

Hans Peter




Attachment: build-crossgcc.sh.tar.gz
Description: Binary data

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]