Amiga.org
Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started 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
-
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.
-
you have not supplied the
-warpup
command during compiling and linking.
-
Ah, I missed to change one of the Makefile.
-
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
-
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
-
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
-
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;
}
-
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
-
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 :-)