This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Section attributes from ld


Jon Thackray writes:
 > ian@cygnus.com writes:
 >  > >How does ld determine which attributes sections are to have? By
 >  > >attributes, I mean things like:-
 >  > 
 >  > >Contains code, contains initialised data, should be laoded with
 >  > >execute permission, should be loaded with read permission, should be
 >  > >loaded with write permission etc.
 >  > 
 >  > The attributes are based on the attributes of the input sections which
 >  > are mapped into the output sections.  Take a look at
 >  > gas/config/obj-coff.c to see how to use the .section directive in an
 >  > assembler file.
 > 
 > As far as I can see, this allows me no control over the flags I'm
 > talking about. The ones I mean are documented in MSDN as:-
 > 
 > IMAGE_SCN_MEM_DISCARDABLE	0x02000000
 > IMAGE_SCN_MEM_NOT_CACHED	0x04000000
 > IMAGE_SCN_MEM_NOT_PAGED		0x08000000
 > IMAGE_SCN_MEM_SHARED		0x10000000
 > IMAGE_SCN_MEM_EXECUTE		0x20000000
 > IMAGE_SCN_MEM_READ		0x40000000
 > IMAGE_SCN_MEM_WRITE		0x80000000
 > 
 > It would appear that as automatcially puts MEM_READ and MEM_EXECUTE on
 > the .text section, MEM_READ and MEM_WRITE on the .data section and the
 > same on the .bss section. For sections it doesn't know about (eg I
 > have one called .dyfix), it outs none of these. However, my compiler,
 > when generating these sections, does add attributes such as MEM_READ
 > and MEM_WRITE, but then ld appears to throw them away (at least binary
 > editing the resulting executable or looking at it with any of the
 > tools available shows them to have gone away).

As an experiment, I made an object file without the MEM_EXECUTE flag
for the .text section, and then linked it (with nothing else at all).
ld put the MEM_EXECUTE flag back on the .text section, which suggests
that the attributes aren't entirely based on those incoming.
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]