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


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

IOstreams from GNU on VXWORKS


Hi,

We are using vxWorks 5.2 and and our own downloaded and compiled GNU
compiler 2.7.2

When we try to load code that references iostream on the vxWorks board
(68K) leads to unresolved externals.

To get iostreams we first tried to build libg++ that includes iostreams.
Didnt get very far.

At about the same time we found at 
ftp://ftp.atd.ucar.edu/pub/vxworks/vx/

a package called iostreams.tar
The author Andreas H. Wolf had basically created JUST the iostreams
portion of libg++ for 68k and ppc platforms.
Inside this package there are a set of instructions that explain how to
build the iostreams library that he had compiled
(objMC68020gnudaq/libiostream.a
and objMC68020gnudaq/IOsetup.o) into the kernel.
The gist of it is that you replace the iostream specific headers in the 
the vxWorks/include area with the GNU supplied ones and then 

Quoting directly from the HOWTOINSTALL FILE
"(3) Add `IOsetup.o' and `libiostream.a' to your modules linked
 into the vxWorks kernel file and rebuild it.

(4) Add the call `IOsetup()' into your startup script. Now you have
 the standard iostream objects...
"

We tried to do this by modifying the Makefile so that it linked in the 
new object file and library when creating the kernel.

The link phase failed as there were numerous duplicate symbols 
between 
objMC68020gnudaq/libiostream.a
and
libCPU32gnuvx.a
My question is how am I supposed to rebuild the kernel using the 
new libiostream.a ????

Below I have describe how I attempted to merge the two libaraies 
but I dont think that I am going to succeed along this path!



The sysmbols that are duplicates appear to be related to iostream 

Therafter I used gar to remove all the objects in libCPU32gnudrv.a
that had sysmols that were having problems and then added them from
libiostream

Eventually I obtained a new version of libCPU32gnudrv.a that I hoped  
had basically the iostream library replaced inside libCPU32gnudrv.a

The problem I ran into at this point was that removing in all the object
filesI had to remove cplusInit which in turn is needed by another
library....

In any case I am pretty sure that removing cplusInit is NOT a good
idea:)

Any information comment would be greatly appreciated!

Thanks in advance
Aseem

-- 
-----------------------------------------------------------------------------
Aseem Bakshi                                     Phone: (801)9771574
Philips Broadcast Television Systems Inc                 Alias: Polka
Boy
Salt Lake City, UT                 
E-mail Abakshi@phbtsus.com