From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pierre Saucourt-Harmel (r54698)" To: "Peter Barada (r1aaaa)" , dkorn@pixelpower.com, crossgcc@sourceware.cygnus.com Subject: Re: Build a short executable Date: Thu, 11 Jan 2001 05:37:00 -0000 Message-id: <3A5DB835.E50D29F3@motorola.com> References: <718D38CAB6E0D011B2C90060970C28A5642589@EXCHANGESERVER> <200101091706.MAA06423@hyper.wm.sps.mot.com> <3A5C37A7.22B3500C@motorola.com> X-SW-Source: 2001-01/msg00088.html "Pierre Saucourt-Harmel (r54698)" wrote: [ .... ] The "objdump -p" gave me the following "program headers" : Program Header:     LOAD off    0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15          filesz 0x00000060 memsz 0x00000060 flags r-x     LOAD off    0x00010000 vaddr 0x00100000 paddr 0x00100000 align 2**15          filesz 0x00000884 memsz 0x00000a08 flags rw-     LOAD off    0x00018000 vaddr 0x07800000 paddr 0x07800000 align 2**15          filesz 0x00002c14 memsz 0x00002c14 flags r-x private flags = 0: [interworking not enabled] [APCS-32] [floats passed in integer registers] [absolute position] Does any know if I can put all my sections in the same program header ? How can I start this program header to the minimal value ?   I found how to avoid the page-alignment, reducing the LOAD offset of each program header to the minimum. The --nmagic (the -n option does not seem to work) of the linker turns off the page-alignment. The ld.document about this option says: -------------clip--------------------------------- `-n' `--nmagic'      Turn off page alignment of sections, and mark the output as      `NMAGIC' if possible. -------------clip--------------------------------- And now I obtain: Program Header:     LOAD off    0x00000094 vaddr 0x00000000 paddr 0x00000000 align 2**2          filesz 0x00000060 memsz 0x00000060 flags r-x     LOAD off    0x000000f4 vaddr 0x00100000 paddr 0x00100000 align 2**2          filesz 0x00000884 memsz 0x00000a08 flags rw-     LOAD off    0x00000978 vaddr 0x07800000 paddr 0x07800000 align 2**2          filesz 0x00002c14 memsz 0x00002c14 flags r-x private flags = 0: [interworking not enabled] [APCS-32] [floats passed in integer registers] [absolute position] And my executable file contains now 14288 bytes against 110168 bytes (stripping all symbols for both generations) !! Pierre.   From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pierre Saucourt-Harmel (r54698)" To: "Peter Barada (r1aaaa)" , dkorn@pixelpower.com, crossgcc@sourceware.cygnus.com Subject: Re: Build a short executable Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-ID: <3A5DB835.E50D29F3@motorola.com> References: <718D38CAB6E0D011B2C90060970C28A5642589@EXCHANGESERVER> <200101091706.MAA06423@hyper.wm.sps.mot.com> <3A5C37A7.22B3500C@motorola.com> X-SW-Source: 2001-q1/msg00088.html Message-ID: <20010401000000.XYZD9CRkyMri3hLW_Bm4f8Cr9_tIrkOsnHT_mpN7F2k@z> "Pierre Saucourt-Harmel (r54698)" wrote: [ .... ] The "objdump -p" gave me the following "program headers" : Program Header:     LOAD off    0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15          filesz 0x00000060 memsz 0x00000060 flags r-x     LOAD off    0x00010000 vaddr 0x00100000 paddr 0x00100000 align 2**15          filesz 0x00000884 memsz 0x00000a08 flags rw-     LOAD off    0x00018000 vaddr 0x07800000 paddr 0x07800000 align 2**15          filesz 0x00002c14 memsz 0x00002c14 flags r-x private flags = 0: [interworking not enabled] [APCS-32] [floats passed in integer registers] [absolute position] Does any know if I can put all my sections in the same program header ? How can I start this program header to the minimal value ?   I found how to avoid the page-alignment, reducing the LOAD offset of each program header to the minimum. The --nmagic (the -n option does not seem to work) of the linker turns off the page-alignment. The ld.document about this option says: -------------clip--------------------------------- `-n' `--nmagic'      Turn off page alignment of sections, and mark the output as      `NMAGIC' if possible. -------------clip--------------------------------- And now I obtain: Program Header:     LOAD off    0x00000094 vaddr 0x00000000 paddr 0x00000000 align 2**2          filesz 0x00000060 memsz 0x00000060 flags r-x     LOAD off    0x000000f4 vaddr 0x00100000 paddr 0x00100000 align 2**2          filesz 0x00000884 memsz 0x00000a08 flags rw-     LOAD off    0x00000978 vaddr 0x07800000 paddr 0x07800000 align 2**2          filesz 0x00002c14 memsz 0x00002c14 flags r-x private flags = 0: [interworking not enabled] [APCS-32] [floats passed in integer registers] [absolute position] And my executable file contains now 14288 bytes against 110168 bytes (stripping all symbols for both generations) !! Pierre. Â