>From the CodeWarrior for Palm FAQ http://www.metrowerks.com/pda/palm/faq:

7.2 When building my application the linker reports "16-bit reference out of
range." How do I fix this? (Typically this occurs to users who have had a
large application working for some time and have just added "a little more
code" to the application.)

Due to limitations in the Palm OS, applications cannot make jumps of more
than 32K (usually called "near" or "small" model on 68K series processors).
The error message indicates that someplace in your code you are calling a
function in another block of code that is more than 32K away in the compiled
application. Since the jump is further than the Palm OS allows, the linker
cannot resolve the reference. Here are ways to work around the limitation:

a.       Change the link order of the application

The linker error message will tell you what function in your code was
calling for the function which was too far away. You can determine what
source file the calling and called functions are in and move the source
files closer together in the link order (place the files closer together in
the Segments view of the project, under the Segments tab of the project
window). In many cases a little reorganization of the link order can solve
the problem. However, as you continue to write code for the app and its gets
larger eventually it may not be possible to reorganize the source file link
order to eliminate the problem.

b.       Set the compiler to "Smart" code model

Set the Code Model popup menu of the 68K processor preference panel (in the
Target settings window) to "Smart." This will allow the compiler to resolve
the out of range references itself. There is a size penalty associated with
this, for more info see the explanation of code models in "What does the
Code Model popup do?" below.

c.        Reorganize/Rewrite your code itself

Palm makes several suggestions on how to write your application to avoid
these issues by using jump islands or jump tables. For information see the
following document from Palm
http://oasis.palm.com/devzone/knowledgebasearticle.cfm?article_id=1418.

Rgds,
Jun-Kiat Lam
Metrowerks Technical Support

----- Original Message -----
From: "Christian Vandendorpe" <[EMAIL PROTECTED]>
To: "Palm Dev List" <[EMAIL PROTECTED]>
Sent: Thursday, December 02, 1999 4:39 PM
Subject: CW Link error


> Hi,
>
> I just added one function and suddenly I get this strange link error:
>
> network.c: 'SomeFunction'  16-bit code reference to 'StdPrintF' is out of
> range.
>
> Any ideas? How can I solve this? My app is only 50K
>
> Any help much appreciated
>
> Chris
> ---
> Christian Vandendorpe ([EMAIL PROTECTED])
> http://www.zorglub.com
>

Reply via email to