Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - How to build for PowerPC e500 core ?: (7 Items)
   
How to build for PowerPC e500 core ?  
Hi,

I managed to build the source code under WinXP for the PPC target but the resulting librarys are using op-codes (e.g. 
FRM) that are invalid for my Processor (ppc8555e) because of the constraints of the e500 core instruction set.

If I try to set some gcc build options (like -mcpu=common or -msoftfloat), make produces errors (especially the linker 
misses some symbols)

I am new to gcc/make so please can someone help me to set/tweak the options/makefiles right ?

(I am using an Installation of QNX Momentics Development Suite 6.3.2 on Windows XP)
Re: How to build for PowerPC e500 core ?  
On Wed, Feb 27, 2008 at 03:00:32AM -0500, Helmut Franz wrote:
> Hi,
> 
> I managed to build the source code under WinXP for the PPC target but the resulting librarys are using op-codes (e.g. 
FRM) that are invalid for my Processor (ppc8555e) because of the constraints of the e500 core instruction set.
> 
> If I try to set some gcc build options (like -mcpu=common or -msoftfloat), make produces errors (especially the linker
 misses some symbols)
> 
> I am new to gcc/make so please can someone help me to set/tweak the options/makefiles right ?
> 
> (I am using an Installation of QNX Momentics Development Suite 6.3.2 on Windows XP)

Not sure on this one.  You might try posting in the tools
forum but even if you get the networking suite building
as described, other components may show the same symptoms
as they're all built with the same basic options.  eg libc
filesystems the kernel etc...

-seanb
RE: How to build for PowerPC e500 core ?  
Is this using the standard 2.95.3 compiler chain?  This seems very strange
since one of the platforms we regularly test with is the 8548, a newer core,
but that shouldn't matter.

Can you provide a snippet from your build log so we can see how the compiler
is being invoked?

	Robert.

-----Original Message-----
From: Helmut Franz [mailto:helmut.franz@man.eu] 
Sent: Wednesday, February 27, 2008 3:01 AM
To: builds-networking
Subject: How to build for PowerPC e500 core ?

Hi,

I managed to build the source code under WinXP for the PPC target but the
resulting librarys are using op-codes (e.g. FRM) that are invalid for my
Processor (ppc8555e) because of the constraints of the e500 core instruction
set.

If I try to set some gcc build options (like -mcpu=common or -msoftfloat),
make produces errors (especially the linker misses some symbols)

I am new to gcc/make so please can someone help me to set/tweak the
options/makefiles right ?

(I am using an Installation of QNX Momentics Development Suite 6.3.2 on
Windows XP)

_______________________________________________
Builds
http://community.qnx.com/sf/go/post5303
Re: RE: How to build for PowerPC e500 core ?  
i am using the "standard" compiler chain (2.95.3) that was installed with Momentics 6.3.2. 

Some additional words about my problem: I try to use the ppc-SEC unit for encryption of a TCP-socket with openssl. So I 
started with downloading the precompiled package "Custom Engineering SEC build" from the download area and embedded the 
new drivers (ip-pkt-v4-hc etc). Then I compiled a simple openSSL-Server example and encountered a SIGILL signal 
executing the "RAND_load_file()" function (no further debug-info available).
So i decided to download the source-code and compile the shared libraries (libssl and libcrypto) with debug-info. So far
 so good. 
I managed to trace down to the "RAND_Add()" function. The error is not IN the function it is the function call itself ! 
(there is a "double" parameter in the call and the compiler/assembler produces a "FMR F31,F1" op-code for this parameter
 when entering the function.

To compile the network source I simply used the command:

"make OSLIST=nto CPULIST=ppc DEBUG=-g install"

I also tried to "copy/paste" the mentioned functions directly into my source code and compiled it within the Momentics 
IDE. When calling these now "local" functions the compiler produces other code calling the "RAND_Add" function (without 
the FMR...).

I think the compiler configuration for shared library compilation differs a little bit from the configuration for exe/
static files (of course).

Unfortunately I am a beginner with gcc/make so it's hard for me to understand the building mechanism of the Momentics 
IDE system.
Can you give me a hint how to "tune" the configuration options for the e500 core ?

What kind of 
Attachment: Text snippet.txt 10.96 KB
Re: RE: How to build for PowerPC e500 core ?  
Include fpemu.so in your build image.

-seanb

On Fri, Feb 29, 2008 at 10:09:36AM -0500, Helmut Franz wrote:
> i am using the "standard" compiler chain (2.95.3) that was installed with Momentics 6.3.2. 
> 
> Some additional words about my problem: I try to use the ppc-SEC unit for encryption of a TCP-socket with openssl. So 
I started with downloading the precompiled package "Custom Engineering SEC build" from the download area and embedded 
the new drivers (ip-pkt-v4-hc etc). Then I compiled a simple openSSL-Server example and encountered a SIGILL signal 
executing the "RAND_load_file()" function (no further debug-info available).
> So i decided to download the source-code and compile the shared libraries (libssl and libcrypto) with debug-info. So 
far so good. 
> I managed to trace down to the "RAND_Add()" function. The error is not IN the function it is the function call itself 
! (there is a "double" parameter in the call and the compiler/assembler produces a "FMR F31,F1" op-code for this 
parameter when entering the function.
> 
> To compile the network source I simply used the command:
> 
> "make OSLIST=nto CPULIST=ppc DEBUG=-g install"
> 
> I also tried to "copy/paste" the mentioned functions directly into my source code and compiled it within the Momentics
 IDE. When calling these now "local" functions the compiler produces other code calling the "RAND_Add" function (without
 the FMR...).
> 
> I think the compiler configuration for shared library compilation differs a little bit from the configuration for exe/
static files (of course).
> 
> Unfortunately I am a beginner with gcc/make so it's hard for me to understand the building mechanism of the Momentics 
IDE system.
> Can you give me a hint how to "tune" the configuration options for the e500 core ?
> 
> What kind of 
> 
> _______________________________________________
> Builds
> http://community.qnx.com/sf/go/post5405

Content-Description: Sourceforge Attachment
> make -j 1 -Clib -fMakefile install 
> make[1]: Entering directory `D:/Development/QNX632/NetSource/trunk/lib'
> make -j 1 -Cnbutil -fMakefile install 
> make[2]: Entering directory `D:/Development/QNX632/NetSource/trunk/lib/nbutil'
> make -j 1 -Cppc -fMakefile install
> make[3]: Entering directory `D:/Development/QNX632/NetSource/trunk/lib/nbutil/ppc'
> make -j 1 -Ca.be -fMakefile install
> make[4]: Entering directory `D:/Development/QNX632/NetSource/trunk/lib/nbutil/ppc/a.be'
> D:/Development/QNX632/NetSource/trunk/sys/sys/md5.h -> d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h
> D:/Development/QNX632/host/win32/x86/usr/bin/ln-w -s  d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h d:
/Development/QNX632/NetSource/stage_g/usr/include/md5.h
> d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h -> d:/Development/QNX632/NetSource/stage_g/usr/include/
md5.h
> cp -vf d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h d:/Development/QNX632/NetSource/stage_g/usr/
include/md5.h 
> D:/Development/QNX632/NetSource/trunk/lib/nbutil/public/nbutil.h -> d:/Development/QNX632/NetSource/stage_g/usr/
include/nbutil.h
> D:/Development/QNX632/NetSource/trunk/lib/nbutil/public/stringlist.h -> d:/Development/QNX632/NetSource/stage_g/usr/
include/stringlist.h
> D:/Development/QNX632/host/win32/x86/usr/bin/qcc -Vgcc_ntoppc -c -O -Wc, -Wc,-Wall -Wc,-Wno-parentheses      -I. -ID:/
Development/QNX632/NetSource/trunk/lib/nbutil/public -Id:/Development/QNX632/NetSource/stage_g/usr/include -ID:/
Development/QNX632/target/qnx6/usr/include -g     -EB     -DVARIANT_a -DVARIANT_be  D:/Development/QNX632/NetSource/
trunk/lib/nbutil/asprintf.c 
> D:/Development/QNX632/host/win32/x86/usr/bin/qcc -Vgcc_ntoppc -c -O -Wc, -Wc,-Wall -Wc,-Wno-parentheses      -I. -ID:/
Development/QNX632/NetSource/trunk/lib/nbutil/public...
View Full Message
RE: RE: How to build for PowerPC e500 core ?  
That makes sense (of course!). The 85xx series of chips doesn't have support
for the hardware FPU engine given that it requires a non-compliant software
ABI to be used for libraries and applications.

As a side note, I don't believe that openSSL makes use of the hardware
crypto acceleration inside of the stack.  Given that it links into an
application that isn't part of the stack space, it uses only software
encryption.

	Robert.

-----Original Message-----
From: Sean Boudreau [mailto:seanb@qnx.com] 
Sent: Friday, February 29, 2008 11:04 AM
To: builds-networking
Subject: Re: RE: How to build for PowerPC e500 core ?


Include fpemu.so in your build image.

-seanb

On Fri, Feb 29, 2008 at 10:09:36AM -0500, Helmut Franz wrote:
> i am using the "standard" compiler chain (2.95.3) that was installed with
Momentics 6.3.2. 
> 
> Some additional words about my problem: I try to use the ppc-SEC unit for
encryption of a TCP-socket with openssl. So I started with downloading the
precompiled package "Custom Engineering SEC build" from the download area
and embedded the new drivers (ip-pkt-v4-hc etc). Then I compiled a simple
openSSL-Server example and encountered a SIGILL signal executing the
"RAND_load_file()" function (no further debug-info available).
> So i decided to download the source-code and compile the shared libraries
(libssl and libcrypto) with debug-info. So far so good. 
> I managed to trace down to the "RAND_Add()" function. The error is not IN
the function it is the function call itself ! (there is a "double" parameter
in the call and the compiler/assembler produces a "FMR F31,F1" op-code for
this parameter when entering the function.
> 
> To compile the network source I simply used the command:
> 
> "make OSLIST=nto CPULIST=ppc DEBUG=-g install"
> 
> I also tried to "copy/paste" the mentioned functions directly into my
source code and compiled it within the Momentics IDE. When calling these now
"local" functions the compiler produces other code calling the "RAND_Add"
function (without the FMR...).
> 
> I think the compiler configuration for shared library compilation differs
a little bit from the configuration for exe/static files (of course).
> 
> Unfortunately I am a beginner with gcc/make so it's hard for me to
understand the building mechanism of the Momentics IDE system.
> Can you give me a hint how to "tune" the configuration options for the
e500 core ?
> 
> What kind of 
> 
> _______________________________________________
> Builds
> http://community.qnx.com/sf/go/post5405

Content-Description: Sourceforge Attachment
> make -j 1 -Clib -fMakefile install 
> make[1]: Entering directory `D:/Development/QNX632/NetSource/trunk/lib'
> make -j 1 -Cnbutil -fMakefile install 
> make[2]: Entering directory
`D:/Development/QNX632/NetSource/trunk/lib/nbutil'
> make -j 1 -Cppc -fMakefile install
> make[3]: Entering directory
`D:/Development/QNX632/NetSource/trunk/lib/nbutil/ppc'
> make -j 1 -Ca.be -fMakefile install
> make[4]: Entering directory
`D:/Development/QNX632/NetSource/trunk/lib/nbutil/ppc/a.be'
> D:/Development/QNX632/NetSource/trunk/sys/sys/md5.h ->
d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h
> D:/Development/QNX632/host/win32/x86/usr/bin/ln-w -s
d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h
d:/Development/QNX632/NetSource/stage_g/usr/include/md5.h
> d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h ->
d:/Development/QNX632/NetSource/stage_g/usr/include/md5.h
> cp -vf d:/Development/QNX632/NetSource/stage_g/usr/include/sys/md5.h
d:/Development/QNX632/NetSource/stage_g/usr/include/md5.h 
> D:/Development/QNX632/NetSource/trunk/lib/nbutil/public/nbutil.h ->
d:/Development/QNX632/NetSource/stage_g/usr/include/nbutil.h
>...
View Full Message
Re: RE: How to build for PowerPC e500 core ?  
oops... accidentally saved the previous post to early...

I attached a little snipped from the console output of make.
The command was (as mentioned):

"make OSLIST=nto CPULIST=ppc DEBUG=-g install"

I got the full output file if you need it... ?


greetings
Helmut >8^)