Ton van Overbeek wrote:
On 2006-08-21, JamesSturdevant <[EMAIL PROTECTED]> wrote:
Now that I am able to get a memory map, I've identified one issue:
libgcc.a loads into the initial segment, using about 28K and not leaving
room for much else. Is there a way to specify that this library should
be loaded in its own segment or is that only a compile time option?
This will be very difficult to accomplish.
It is a compile time option. So you would need to recompile and rebuild
libgcc.a.
But you will also need to modify gcc itself to generate the correct inter
segment calls for the functions in libgcc.a.
My advice: Forget it for 68k apps. If you write very large apps go to ARM
native where you do not have the segmentation problem.
Ton van Overbeek
That's what I thought but I figured it was worth asking.
And since I'm asking, can someone explain what I'm not understanding in
this part of the map? I have defined a number of segments: main (all of
AppMain except PilotMain), list (DataList), tdoc(TextDoc), and strx
(StringExtension). It looks to me like space is still being used in the
first segment for the other segments.
.text 0x00000000 0x9904
*(.text)
.text 0x00000000 0x98 /usr/m68k-palmos/lib/crt0.o
0x00000000 start
.text 0x00000098 0x94 /usr/m68k-palmos/lib/gdbstub.o
.text 0x0000012c 0x58 src/AppMain.o
0x0000012c PilotMain
.text 0x00000184 0x1d86 src/DataList.o
*fill* 0x00001f0a 0x2 00
.text 0x00001f0c 0x1c58 src/TextDoc.o
.text 0x00003b64 0x2a2a src/StringExtension.o
*fill* 0x0000658e 0x2 00
.text 0x00006590 0x4 multiple_code_sections.o
0x00006590 _GccRelocateData
.text 0x00006594 0x812
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(_eh.o)
0x000065ac __throw_type_match
0x00006624 __get_eh_info
0x00006d14 __rethrow
0x00006616 __get_eh_context
0x00006682 __sjthrow
0x00006c8c __throw
...
.text 0x000098cc 0x26
/usr/m68k-palmos/lib/libcrt.a(reloc_chain.o)
0x000098cc _RelocateChain
0x000098f4 . = ALIGN (0x4)
*fill* 0x000098f2 0x2 00
0x000098f4 bhook_start = .
*(bhook)
bhook 0x000098f4 0x4 /usr/m68k-palmos/lib/gdbstub.o
...
OUTPUT(EvTest coff-m68k)
list 0x00000000 0x1bcc
*(list)
list 0x00000000 0x1bca src/DataList.o
0x00000a42
DataList::getListInfo(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> >)
0x0000002c
DataEntry::getElement(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> > &)
0x000012a6
DataList::LoadFromTable(_STL::basic_string<char,
_STL::char_traits<char>, _STL::allocator<char> >)
0x00000780
DataEntry::LoadFromRow(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> >)
0x00001b5c DataList::cleanUp(void)
strx 0x00000000 0xd04
*(strx)
strx 0x00000000 0x7e src/TextDoc.o
0x00000000 fileText
*fill* 0x0000007e 0x2 00
strx 0x00000080 0xc84 src/StringExtension.o
0x00000080
findNoCase(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> >, _STL::basic_string<char,
_STL::char_traits<char>, _STL::allocator<char> >)
0x00000586 ItoString(unsigned long, int)
0x00000ba8
makeLower(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> > &)
0x00000a92
replaceAll(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> > &, _STL::basic_string<char,
_STL::char_traits<char>, _STL::allocator<char> >,
_STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >)
0x00000224
findNoCaseFrom(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> >, _STL::basic_string<char,
_STL::char_traits<char>, _STL::allocator<char> >, unsigned long)
0x000003ca
rfindNoCase(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> >, _STL::basic_string<char,
_STL::char_traits<char>, _STL::allocator<char> >)
0x00000822
trimRight(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> >, _STL::basic_string<char,
_STL::char_traits<char>, _STL::allocator<char> >)
0x0000095c
trimLeft(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> >, _STL::basic_string<char,
_STL::char_traits<char>, _STL::allocator<char> >)
0x00000c5a
makeUpper(_STL::basic_string<char, _STL::char_traits<char>,
_STL::allocator<char> > &)
text
*(text)
.reloc 0x00000000 0x1920
.reloc 0x00000000 0x60 src/AppMain.o
.reloc 0x00000060 0x57c src/DataList.o
.reloc 0x000005dc 0x498 src/TextDoc.o
.reloc 0x00000a74 0x678 src/StringExtension.o
.reloc 0x000010ec 0x138
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(_eh.o)
.reloc 0x00001224 0x18c
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(exception.o)
.reloc 0x000013b0 0x18
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(opvnew.o)
.reloc 0x000013c8 0x18
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(opvdel.o)
.reloc 0x000013e0 0x18
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(opdel.o)
.reloc 0x000013f8 0x210
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(tinfo.o)
.reloc 0x00001608 0x18
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(opnew.o)
.reloc 0x00001620 0x294
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(tinfo2.o)
.reloc 0x000018b4 0x6c
/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/libgcc.a(new.o)
--
For information on using the PalmSource Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/