Hello
using a user defined section and placing it in the appropriate address is the only way you can get a function allocated at an absolute address.
There is no reason to manually adjust the size of the section to the function length.
In your PRM file you can tell that you want to place this section plus some others in that segment.
For instance in your placement BLOCK you can write:
COMPAT_40a2, AnotherSectio, OneMoreSection INTO COMPAT_40a2;
Further more you can even write
COMPAT_40a2, AnotherSection, OneMoreSection INTO COMPAT_40a2, AnotherSegment;
Function stored in COMPAT_40a2 will always be allocated in COMPAT_40a2. Then the linker will fill the rest of the code into the specified segments.
CrasyCat