Amiga.org

Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started by: Jose on May 07, 2006, 01:00:35 AM

Title: nonexisting symbol in SASC...(probably very basic stupid error)
Post by: Jose on May 07, 2006, 01:00:35 AM
Hi. This afternoon I tried to get an ImageFX gui for that HAM8 "friendlyness of a picture statistics" (whatever..) routine I made sometime ago. Since IFX docs and includes are all inclined towards SASC I decided to give it a try (mostly use VBCC here). I'm getting something like a link error about a missing symbol first referenced from sc.lib. The symbol's name is somewhat like __XCEXIT ...

Any ideas ? Already trying linking with sdtlib but same results...
Title: Re: nonexisting symbol in SASC...(probably very basic stupid error)
Post by: PiR on May 11, 2006, 02:51:19 PM
Hi Jose

I've checked this in the documentation this morning (unluckilly paper, so I cannot share it...)

This function is defined in the startup code and is used internally by the functions that are supposed to interrupt the process, like abort() and exit(). It shouldn't be called directly from the code.

If you experiance linking errors with __XCEXIT missing, it may happen only if you're not linking with the startup code (ie. making library), but you use, directly or indirectly, functions that may interrupt the proces. If so, such thing is not allowed, as the library is not allowed to terminate the process that called it, so it is good warning.

From myself - I think functions that can interrupt the process may be also io from stdlib, like printf(), as they check CTRL+C and by default terminate the process, if such detected.


Cheers
PiR
Title: Re: nonexisting symbol in SASC...(probably very basic stupid error)
Post by: Jose on May 16, 2006, 03:50:55 PM
Hi. Only saw your reply now. Solved this last week by linking with c.o. That function was apparently being called by the IFX startup module itself.

Cheers