X-Spam-Check-By: sourceware.org Message-ID: <43B7186A.8CE0CB91@dessent.net> Date: Sat, 31 Dec 2005 15:46:50 -0800 From: Brian Dessent MIME-Version: 1.0 To: cygwin@cygwin.com Subject: Re: executable = exe + data References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Reply-To: cygwin@cygwin.com Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Delivered-To: mailing list cygwin@cygwin.com Sam Steingold wrote: > Is it possible? > > simply put, it it possible to write something like this: > > int main () { > size_t my_length; > > printf("exe size=%lld\n",my_length); > return 0; > } All the methods mentioned so far are essentially hacks working against the linker, doing stuff behind its back. Why not go with the flow? Put your data in its own section, and write a linker script to handle that section in the desired way. You can access the address by referencing the linker script variables in your source code. See section 3 of the ld manual, particularly 3.5.3. This should work on any platform that uses ld. Brian -- 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/