Fixproto and VxWorks headers
Geir Frode Raanes (geirfrs@invalid.ed.ntnu.no)
Wed, 24 Nov 1999 10:50:18 +0100
I am struggelig to compile a `i486-linux' to `powerpc-wrs-vxworks'
gcc-2.95.2 crosscompiler. Minor annoyance, as usual, the compiler
will not automatically find the cross-binutils in the obvious
`$(prefix)/bin' location. Cross-binutils which, btw, had to be
configured and compiled as `powerpc-wrs-elf32.'
(I am not even confident elf32 is correct for VxWorks, especially
since the vxworks docs mention some "munching" technique for
C++ constructor/destructor lists. This sounds suspiciously like
collect2 to me. ELF otoh supports `.init' sections containing
pointers to constructors/destructors functions the program loader
is supposed to handle before/after running main(). Whatever.)
Anyway, I patched the `vxworks-' part of the xgcc Makefile entry
`program_transform_name = -e s,^,powerpc-wrs-vxworks-' to read
`elf32-' rather than change the `exec-prefix' in binutils and then
put `/prefix/bin' into the path. Meaning change of policy request?
Unfortunately, somewhere in the Makefile xgcc use the plain vanilla
'as' name rather than `powerpc-wrs-elf32-as.' Meaning bug report.
But this I can handle as `i486-as' and `powerpc-as' will strympe
on each others assembly files, giving me a chance to supply/not
supply a `as -> powerpc-wrs-elf32-as' soft link and rerun make.
What I do not get at all is how I am supposed to supply the large
amounts of vxworks header files. The gcc documentation states that
they are supposed to go into the `/usr/local/target/include'
directory. I have placed the vxworks header files into the directory
`/usr/local/powerpc-wrs-elf32/include' and made a soft link from
`/usr/local/powerpc-wrs-vxworks' to `/usr/local/powerpc-wrs-elf32.'
Neither works. Neither does `/prefix/include.' That I can understand.
But given that `/usr/local' is the default prefix choise, then
`/prefix/target/include' ougth to work too. Does not. Apparently,
fixproto is never run. How do I find what string is actually used
for `target' from the Makefile or various `configure' files?
The only location that does work is in the (separate) build
directory `/gcc-install/gcc-obj/gcc-2.95.2-ppc/gcc/.....'
This is not where I want to place the bulk of vxworks header
files. I would rather prefer fixproto to extract only the ones
I actually need. How do I find out what fixproto does from the
Makefile? I would like to patch the controlling variables rather
than change every cross compilation include path.
******************************************************
Never ever underestimate the power of human stupidity.
-Robert Anson Heinlein
GeirFRS@invalid.and.so.forth
******************************************************
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com