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: Memory Violation With Windres and Shared Data Segments


Chris Faylor <cgf@cygnus.com> writes:
> On Fri, Aug 06, 1999 at 02:57:23PM +0000, Harold Weissfield wrote:
> >On a different note, I have been searching through the documentation for GCC
>  
> >for information on how to created a shared data segment in a DLL, but so far
>  
> >have been unable to come up with anything.  Under Visual C++, this was done 
> >with a #pragma comment(linker, "-section:Shared,rws") and then a #pragma 
> >data_seg("Shared").  Is there any equivalent construct in GCC?
> I don't think that there is a way to do this currently with gcc/binutils tool
> s,
> unfortunately.  I used to use Visual C tools to make a section sharable when
> I needed to do this.

You can create these named sections, but there is a bug the linker that
causes these sections to be readonly. I fixed this in the development
sources a while back, so the next release will work as expected. However, 
I don't what the exact semantics of this "shared" segment is, but if it's 
just a named section like .tls (thread local storage), then it should work
fine.

The construct is like this:
  
  int foo __attribute__((section("shared"))) = 0;

now the *initialized* variable `foo' goes into a special section `shared'; 
the `shared' section should be marked r/w, but currently GNU binutils will 
mark it readonly due to a tiny bug.

Regards,
Mumit


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


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