This is the mail archive of the crossgcc@sourceware.org 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]

Possibly OT: GCC 2.96 on PPC for VxWorks 5.5


Hi all;

I am trying to work up a host environment for Linux, for a product using
VxWorks 5.5 (Tornado 2.2) on a PPC target.  I have (and we are currently
using) the Solaris host environment.  This environment uses WRS GCC 2.96
without any of the newer patches: -v says only:

  $ ccppc -v
  gcc version gcc-2.96 (2.96+) 19990621 AltiVec VxWorks 5.5

I've obtained the code for GCC and compiled and installed it.  The
version I found had a slightly different version string:

  $ ccppc -v
  gcc version gcc-2.96 (2.96+) 19990621 AltiVec


(no additional VxWorks 5.5).  In order to verify that the new host won't
be an issue, I'm using cmp to compare every .o generated during the
build and requiring them to be byte-for-byte identical.  In order to do
this I had to modify GCC's version.c to add in the extra " VxWorks 5.5"
because that string appears in the .comment section.


As of now, most of my .o's are building identically.  However, there're
some objects which don't.  After much investigation I've discovered that
for some .c files, the Linux version of the compiler generates this
assembly code:

       mulli 9,0,100
       stw 9,28(31)

while the Solaris version generates this assembly code:

       mr 11,0
       slwi 9,11,1
       add 9,9,0
       slwi 11,9,5
       add 9,9,11
       add 0,9,0
       stw 0,28(31)

Other than these lines the objects are identical.  I've verified that
the output from the preprocessor is identical in both cases.  I've not
been able to determine exactly what code in the C file is being
assembled here.

I've tried to look up likely search terms on Google and Google Groups,
etc. but no joy so far.

Offhand I'd say that the compiler source I have is not the source for
the Solaris version of the compiler we're using.  I don't know where to
find the "right" source though :-/.

Does anyone have either (a) the "right" source, or (b) any thoughts or
hints about ways to move forward to resolve this issue?  I understand
one option is to ignore it, and another option is to build the same
source code for the Solaris system, but in order to sell this as an
alternative hosting solution for our work I need to be able to prove,
with a virtual 100% certainty, that switching will have zero (negative)
impact on the development.

In fact, since we use ClearCase and clearmake for builds, we need to be
able to say we can wink in a .o built on EITHER Solaris OR Linux, and
there will be zero problems.

FYI, I've done this before on another platform, using the even older GCC
2.7.2 that came with VxWorks 5.3.1, and I was able to get this
environment working and reliable.  I feel that I'm _almost_ there in
this new setup as well...

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <psmith@nortel.com>           HASMAT: HA Software Mthds & Tools
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist
-------------------------------------------------------------------------------
        These are my opinions--Nortel takes no responsibility for them.

--
For unsubscribe information see http://sourceware.org/lists.html#faq


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