X-Spam-Check-By: sourceware.org From: "Dave Korn" To: Subject: RE: Need information about data and bss segment address access in cygwin Date: Fri, 20 Jan 2006 11:23:49 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In-Reply-To: <46ca01fa0601200308r100244eerd9fc2ce933af6f51@mail.gmail.com> Message-ID: Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Sudhahar wrote: > from parent process to child process. After trying to find where the > data_start and data_end get the address of running process data and > bss segment, I ended up with a declaration of > > extern char _data_start__, _data_end__, _bss_start__, _bss_end__; in > file Winsup.h > > There is no other place where _data_start__, _data_end__, > _bss_start__, _bss_end__ are defined they act as external symbols for > cygwin. > > Can anyone through some light on where these variables are actually > declared and how they get the running process segment addresses. They are generated by the linker. Take a look at the linker script by running "ld --verbose". dk AT espanola /usr/build/src-binutils/bfd> ld --verbose | grep _start to include this between __data_start__ and __data_end__, but that __data_start__ = . ; __bss_start__ = . ; ___crt_xc_start__ = . ; ___crt_xi_start__ = . ; ___crt_xl_start__ = . ; ___crt_xp_start__ = . ; ___crt_xt_start__ = . ; ___tls_start__ = . ; dk AT espanola /usr/build/src-binutils/bfd> ld --verbose | grep _end to include this between __data_start__ and __data_end__, but that ".data_cygwin_nocopy" and explictly include it after __data_end__. */ __data_end__ = . ; __bss_end__ = . ; ___crt_xc_end__ = . ; ___crt_xi_end__ = . ; /* ___crt_xl_end__ is defined in the TLS Directory support code */ ___crt_xp_end__ = . ; ___crt_xt_end__ = . ; ___tls_end__ = . ; PROVIDE ( _end = .); __end__ = .; dk AT espanola /usr/build/src-binutils/bfd> cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/