Amiga.org

Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started by: on March 20, 2003, 11:31:29 PM

Title: GCC linking with warpos
Post by: on March 20, 2003, 11:31:29 PM
I get some errors when linking with GCC warpos.

Error: Undefined Symbol: PPCAllocVec
Error: Undefined Symbol: PPCFreeVec
Error: Error processing Elffile !

Is there anything I can do about this? Why is it not compilrd with warpos functions only?

JJ
Title: Re: GCC linking with warpos
Post by: Karlos on March 21, 2003, 10:48:23 AM
Hmm, that doesnt look correct :-(

PPCAllocVec() / PPCFreeVec() are ppc.library (powerup)  function calls. The equivalent WarpOS functions are AllocVecPPC() and FreeVecPPC(), along with companion 68K functions AllocVec32() / FreeVec32().

Assuming youre aiming for powerpc.library (warpOS), the output suggests one of several things

1) One of your sources, if using free/example stuff from the net was written for ppc.library.

2) You have an object, or link library that was compiled for ppc.library in your overall project somewhere.

3) You have cross compiled for a ppc.library target.

Examine your code to see what is #included and ensure that your not using any powerup related stuff. Check your compiler settings, make sure your compiling for warpos. Finally check your lib documentation, make sure your using the correct link libraries etc.

Title: Re: GCC linking with warpos
Post by: trgse on March 21, 2003, 02:18:33 PM
you have not supplied the
-warpup
command during compiling and linking.
Title: Re: GCC linking with warpos
Post by: on March 28, 2003, 03:34:07 AM
Ah, I missed to change one of the Makefile.
Title: Re: GCC linking with warpos
Post by: cygnusEd on March 30, 2003, 05:23:44 PM
Hi,

just a question: which version of gcc do I need for WarpOS?
I have installed 2.95.3, but there is no option "-warpup".

Where can I download this version of gcc?

Thanx
  CygnusEd
Title: Re: GCC linking with warpos
Post by: Karlos on March 30, 2003, 06:16:19 PM
On a related matter,

Has anybody created shared libraries with gcc?

Does anybody know if a StormC v3 shared library project can use .o files generated by gcc?

Sombody answer or I'll stick another groaner in the EMINEM thread :-D

Cheers
Title: Re: GCC linking with warpos
Post by: Karlos on March 31, 2003, 11:40:38 AM
Quote

Karlos wrote:

Sombody answer or I'll stick another groaner in the EMINEM thread :-D

Cheers


Don't say I didn't warn ya! (http://www.amiga.org/forums/showthread.php?t=1419)

:-D
Title: Re: GCC linking with warpos
Post by: on April 01, 2003, 01:04:03 AM
So do I need to change this??

{
 /* Set first ticks value */
 if(!MyTimer)
  PPC_TimerInit();

 PPCGetTimerObject(MyTimer,PPCTIMERTAG_CURRENTTICKS,start);
 start[1]>>=10;
 start[1]|=((result[0]&0x3ff)<<22);
 start[0]>>=10;
}

Title: Re: GCC linking with warpos
Post by: on April 01, 2003, 01:14:32 AM


On a related matter,

Has anybody created shared libraries with gcc?

Does anybody know if a StormC v3 shared library project can use .o files generated by gcc?

Sombody answer or I'll stick another groaner in the EMINEM thread

Cheers

--------------

What the h*ll do you mean by that?? Explain
Title: Re: GCC linking with warpos
Post by: Karlos on April 01, 2003, 01:00:42 PM
Quote

JoJo wrote:
So do I need to change this??

{
 /* Set first ticks value */
 if(!MyTimer)
  PPC_TimerInit();

 PPCGetTimerObject(MyTimer,PPCTIMERTAG_CURRENTTICKS,start);
 start[1]>>=10;
 start[1]|=((result[0]&0x3ff)<<22);
 start[0]>>=10;
}



Hi jo jo,

Hmmm. That looks suspiciously like ppc.library dependent code.
You can ususally tell ppc.library stuff - the ppc native  function are named like 'PPCSomethingOrOther()'.
The ppc.library and its associated functions are from phase5's powerUP kernel.

WarpOS is a rival kernel was developed by Haage&partner and is not directly comaptible with powerUP (there is an emulation available though).

WarpOS ppc native function names are ususally named like 'SomethingOrOtherPPC()'.

What you seem to have here is case 1 in my original answer - there is ppc.library dependent code in your project.

So, to answer your question, yes, you will need to change the above code to use the equivalent resources available in the WarpOS kernel.

I don't have access to my dev info just now, but WarpOS has also has a ppc native timer function that morror the 68k's timer.device's 'GetSysTime()' - called, unsurprisingly, GetSysTimePPC().

Creating delays with warpOS is also relatively easy. It has a function that behaves like exec.library's Wait(), but with an additional timeout argument. I think it's called WaitTimePPC().

Anyway, don't worry about my post about the linked library stuff - it was just a general gcc linking question and nothing to do with your code :-)