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 AT cygwin DOT com Subject: Re: executable = exe + data References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Reply-To: cygwin AT cygwin DOT com Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 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/