bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/16127] New: NOLOAD section data contents inclusion in output fil


From: elbartoglm4 at gmail dot com
Subject: [Bug ld/16127] New: NOLOAD section data contents inclusion in output file
Date: Wed, 06 Nov 2013 15:17:36 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=16127

            Bug ID: 16127
           Summary: NOLOAD section data contents inclusion in output file
           Product: binutils
           Version: 2.18
            Status: NEW
          Severity: critical
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: elbartoglm4 at gmail dot com

Hi,

I am reporting something I consider incorrect in LD v2.18 regarding the
documentation about the "NOLOAD" section attribute. I tested this on LD v2.17
but I didn't notice the problem I found with v2.18. 

In the linker command file, I define (among other sections) an output section
in which I put uninitialized data input sections and one initialized data input
section at the end. For information, the initialized data input section
contains only zeros, and its size is 0x720.
I define this output section as "NOLOAD" because I only want this memory
allocated and the symbols mapped in the memory region I specify, but I don't
want the contents of any of the input sections to be loaded in the output file
(.elf in my case).

But in my output file, I can find the zeros of the initialized data input
section in an other section where resides code: a hole of zeros with a size of
0x720 is present in the middle of it.

I checked the addresses and the ELF sections offsets and my assumptions seem
correct:
in the ELF file section headers dump, I can see the ELF sections offsets:
.NOLOAD_SECTION: ELF_offset = 0x0000F3C0
.CODE_SECTION; ELF_offset = 0x00010000
In the ELF file, the zeros are found at 0x00011640, which is an offset of
0x2280 from the NOLOAD_SECTION ELF_Offset. This offset corresponds to the
offset between the Virtual Memory Address (VMA) of the NOLOAD_SECTION beginning
(0x0180f3c0) and the first initialized data input section symbol VMA
(0x01811640).

To summarize: I assume LD puts the contents of the input sections (data or
code) in the output file even if the output section is set to NOLOAD (and we
see it only ALLOCATABLE when we dump the ELF file).

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]