public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Dave Korn" <dave.korn@artimi.com>
To: "'David Daney'" <ddaney@avtrex.com>,
		"'Tom Quarendon'" <tom@quarendon.net>
Cc: <gcc@gcc.gnu.org>, 	"'gcc help'" <gcc-help@gcc.gnu.org>
Subject: RE: Exception handling tables for function generated on the fly
Date: Tue, 12 Aug 2008 17:58:00 -0000	[thread overview]
Message-ID: <004401c8fca2$b8980090$9601a8c0@CAM.ARTIMI.COM> (raw)
In-Reply-To: <48A1C606.8090109@avtrex.com>

David Daney wrote on 12 August 2008 18:19:

> Questions like this should probably go to gcc-help@gcc.gnu.org

  Questions about deep compiler internals and EH abis?  Seems a bit intense
for the where's-the-any-key list to me...

>> I'm porting some code that does a kind of JIT 

> You don't say how you get them into memory.  Are you building a shared
> library and then loading it with dlopen()? 

  "JIT" normally implies poking opcodes straight into memory at runtime.
Otherwise it wouldn't be Just-In-Time compilation, it would be
Way-Ages-In-Advance compilation!

> If you pass -funwind-tables to gcc it will generate the necessary
> unwinding information.  If you put the code in a shared library and
> dlopen() it it should just work.  

  No compiler.  No library.  No dlopen.
 
> If you are loading the code some other way

  http://en.wikipedia.org/wiki/Just-in-time_compilation

> then you may have to call
> some of the __register_frame* family of functions (in libgcc) passing
> pointers to the appropriate .eh_frame sections of the generated code.  

  Yes.  The OP's question is "How do I generate .eh_frame data at runtime
for an arbitrary function that has no throws and no catches but may call
functions that throw".

  Tom, did you read the Dwarf spec?  That should have more info than just
the abi docs.


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

  reply	other threads:[~2008-08-12 17:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <48A1B059.1040400@quarendon.net>
2008-08-12 17:42 ` David Daney
2008-08-12 17:58   ` Dave Korn [this message]
2008-08-12 18:06     ` David Daney
2008-08-12 18:08       ` David Daney
2008-08-12 18:41       ` Dave Korn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='004401c8fca2$b8980090$9601a8c0@CAM.ARTIMI.COM' \
    --to=dave.korn@artimi.com \
    --cc=ddaney@avtrex.com \
    --cc=gcc-help@gcc.gnu.org \
    --cc=gcc@gcc.gnu.org \
    --cc=tom@quarendon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).