public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Dw2 CIE no longer contains personality routine augmentation?
@ 2009-10-01  0:33 Dave Korn
  2009-10-01  8:38 ` Richard Guenther
  0 siblings, 1 reply; 3+ messages in thread
From: Dave Korn @ 2009-10-01  0:33 UTC (permalink / raw)
  To: gcc


    Hi everyone,

  I'm using g++.old-deja/g++.brendan/new3.C as a testcase to investigate a
problem with dllimport at the moment, and noticed something a bit unusual:

  Here is the CIE data from new3.C as compiled with gcc-4.3.4

> 	.section	.eh_frame,"w"
> Lframe1:
> 	.long	LECIE1-LSCIE1
> LSCIE1:
> 	.long	0x0
> 	.byte	0x1
> 	.def	___gxx_personality_v0;	.scl	2;	.type	32;	.endef
> 	.ascii "zP\0"
> 	.uleb128 0x1
> 	.sleb128 -4
> 	.byte	0x8
> 	.uleb128 0x5
> 	.byte	0x0
> 	.long	___gxx_personality_v0
> 	.byte	0xc
> 	.uleb128 0x4
> 	.uleb128 0x4
> 	.byte	0x88
> 	.uleb128 0x1
> 	.align 4
> LECIE1:

  And now with gcc trunk@152230, I see that the generated CIE no longer has
any augmentation, particularly it doesn't point to the personality routine any
more:

> LFE21:
> 	.section	.eh_frame,"w"
> Lframe1:
> 	.long	LECIE1-LSCIE1
> LSCIE1:
> 	.long	0x0
> 	.byte	0x1
> 	.ascii "\0"
> 	.uleb128 0x1
> 	.sleb128 -4
> 	.byte	0x8
> 	.byte	0xc
> 	.uleb128 0x4
> 	.uleb128 0x4
> 	.byte	0x88
> 	.uleb128 0x1
> 	.align 4
> LECIE1:

  Is this intentional?

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Dw2 CIE no longer contains personality routine augmentation?
  2009-10-01  0:33 Dw2 CIE no longer contains personality routine augmentation? Dave Korn
@ 2009-10-01  8:38 ` Richard Guenther
  2009-10-01 12:40   ` Dave Korn
  0 siblings, 1 reply; 3+ messages in thread
From: Richard Guenther @ 2009-10-01  8:38 UTC (permalink / raw)
  To: Dave Korn; +Cc: gcc

On Thu, Oct 1, 2009 at 2:47 AM, Dave Korn
<dave.korn.cygwin@googlemail.com> wrote:
>
>    Hi everyone,
>
>  I'm using g++.old-deja/g++.brendan/new3.C as a testcase to investigate a
> problem with dllimport at the moment, and noticed something a bit unusual:
>
>  Here is the CIE data from new3.C as compiled with gcc-4.3.4
>
>>       .section        .eh_frame,"w"
>> Lframe1:
>>       .long   LECIE1-LSCIE1
>> LSCIE1:
>>       .long   0x0
>>       .byte   0x1
>>       .def    ___gxx_personality_v0;  .scl    2;      .type   32;     .endef
>>       .ascii "zP\0"
>>       .uleb128 0x1
>>       .sleb128 -4
>>       .byte   0x8
>>       .uleb128 0x5
>>       .byte   0x0
>>       .long   ___gxx_personality_v0
>>       .byte   0xc
>>       .uleb128 0x4
>>       .uleb128 0x4
>>       .byte   0x88
>>       .uleb128 0x1
>>       .align 4
>> LECIE1:
>
>  And now with gcc trunk@152230, I see that the generated CIE no longer has
> any augmentation, particularly it doesn't point to the personality routine any
> more:
>
>> LFE21:
>>       .section        .eh_frame,"w"
>> Lframe1:
>>       .long   LECIE1-LSCIE1
>> LSCIE1:
>>       .long   0x0
>>       .byte   0x1
>>       .ascii "\0"
>>       .uleb128 0x1
>>       .sleb128 -4
>>       .byte   0x8
>>       .byte   0xc
>>       .uleb128 0x4
>>       .uleb128 0x4
>>       .byte   0x88
>>       .uleb128 0x1
>>       .align 4
>> LECIE1:
>
>  Is this intentional?

Yes.  If it doesn't need one it doesn't get one.

Richard.

>    cheers,
>      DaveK
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Dw2 CIE no longer contains personality routine augmentation?
  2009-10-01  8:38 ` Richard Guenther
@ 2009-10-01 12:40   ` Dave Korn
  0 siblings, 0 replies; 3+ messages in thread
From: Dave Korn @ 2009-10-01 12:40 UTC (permalink / raw)
  To: Richard Guenther; +Cc: Dave Korn, gcc

Richard Guenther wrote:
> On Thu, Oct 1, 2009 at 2:47 AM, Dave Korn wrote:

>>  I'm using g++.old-deja/g++.brendan/new3.C as a testcase to investigate a
>> problem with dllimport at the moment, and noticed something a bit unusual:
>>
>>  Here is the CIE data from new3.C as compiled with gcc-4.3.4

>>  And now with gcc trunk@152230, I see that the generated CIE no longer has
>> any augmentation, particularly it doesn't point to the personality routine any
>> more:

>>  Is this intentional?
> 
> Yes.  If it doesn't need one it doesn't get one.

  Augh!  That was actually sooooo useful to me in making sure that my shared
libstdc++ dll got linked into the executable even when all other references
from the exe to the library got shunted aside by --wrap.

  Would it be reasonable to disable the optimisation on a target-specific
basis?  Either that or I'm going to have invent a modified version of --wrap,
or just shove some other dummy reference to the library into object files
unconditionally.  (Actually that might turn out to be as simple as adding a -u
option to the linker command line, so maybe it would even be better.  Haven't
tested that yet though.)

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-10-01 12:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-01  0:33 Dw2 CIE no longer contains personality routine augmentation? Dave Korn
2009-10-01  8:38 ` Richard Guenther
2009-10-01 12:40   ` Dave Korn

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).