This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


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

Fixproto and VxWorks headers



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


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