Bug 9265 - exception handling faulty wenn linking PIC objects to non PIC ones
Summary: exception handling faulty wenn linking PIC objects to non PIC ones
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 3.4.0
: P3 normal
Target Milestone: 3.4.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-01-10 10:56 UTC by Robert Schiele
Modified: 2003-07-25 17:33 UTC (History)
4 users (show)

See Also:
Host: i486-suse-linux-gnu
Target: i486-suse-linux-gnu
Build: i486-suse-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Schiele 2003-01-10 10:56:02 UTC
When linking a PIC object to a non PIC one that calls a function by a function pointer, exception handling is no longer working in the PIC object.

I could reproduce this on ia32 arch.  On sparc it did not happen for me.

Note, I am not abolutely sure whether this is a bug, as I do not now what the specs say about linking PIC to non PIC objects in C++.  But as I do not sea a reason, why this should not be allowed, I assume this is a bug.

The attached lines of code should output nothing, as the thrown exception is expected to be called immediately, but they print out an "Aborted".

Release:
3.2.1, 3.2.2 20030109 (prerelease), 3.3 20030109 (prerelease) and 3.4 20030109 (experimental)

Environment:
System: Linux scavenger 2.4.19-4GB #1 Mon Oct 14 22:11:39 UTC 2002 i686 unknown
Architecture: i686
host: i486-suse-linux-gnu
build: i486-suse-linux-gnu
target: i486-suse-linux-gnu
configured with: /home/schiele/gcccvs/gcc-3.2.1/configure --enable-threads=posix --prefix=/opt/Pkg/Linux/i686/gcc321 --enable-languages=c,c++,f77,objc --disable-libgcj --with-gxx-include-dir=/opt/Pkg/Linux/i686/gcc321/include/g++ --with-system-zlib --enable-shared --enable-__cxa_atexit i486-suse-linux

How-To-Repeat:
echo 'int main() { try { throw 0; } catch (...) {}}' | \
  g++ -fpic -c -x c++ -o pic.o -
echo 'void (*b)(); void a() { (*b)(); }' | g++ pic.o -x c++ -
a.out
Comment 1 Wolfgang Bangerth 2003-01-12 16:14:36 UTC
State-Changed-From-To: open->feedback
State-Changed-Why: Hm, I cannot reproduce the problem you have with a recent
    snapshot. What is the result for you when you call ./a.out?
    Is it an abort or a call to terminate()?
    
    Also, note that with you code you do not make any use of
    the symbols declared within the second file at all.
    
    W.
Comment 2 Wolfgang Bangerth 2003-01-13 17:36:53 UTC
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: Robert Schiele <rschiele@uni-mannheim.de>
Cc: cc@pi3.informatik.uni-mannheim.de, <gcc-bugs@gcc.gnu.org>,
   <gcc-gnats@gcc.gnu.org>, Andreas Jaeger <aj@suse.de>
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to
 non PIC ones
Date: Mon, 13 Jan 2003 17:36:53 -0600 (CST)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
   Send mail to mime@docserver.cac.washington.edu for more info.
 
 --1400906564-1057649632-1042501013=:14754
 Content-Type: TEXT/PLAIN; charset=US-ASCII
 
 
 > Wolfgang could you send me the crtbegin.o files from the compilers
 > that you tried?
 
 Attached is the crtbegin.o from the gcc3.2.2 snapshot (2002-12-13) I use, 
 compiled on the SuSE machine. This should be closest to your 
 configuration.
 
 W.
 
 -------------------------------------------------------------------------
 Wolfgang Bangerth             email:            bangerth@ticam.utexas.edu
                               www: http://www.ticam.utexas.edu/~bangerth/
 
 
 --1400906564-1057649632-1042501013=:14754
 Content-Type: APPLICATION/octet-stream; name="crtbegin.o"
 Content-Transfer-Encoding: BASE64
 Content-ID: <Pine.LNX.4.44.0301131736530.14754@gandalf.ticam.utexas.edu>
 Content-Description: 
 Content-Disposition: attachment; filename="crtbegin.o"
 
 f0VMRgEBAQAAAAAAAAAAAAEAAwABAAAAAAAAAAAAAADIAQAAAAAAADQAAAAA
 ACgAEgAPAAAAAAAAAAAAAAAAAFWJ5YPsCIA9AAAAAAB1QqEEAAAAixCF0nQb
 jbYAAAAAg8AEowQAAAD/0qEEAAAAixCF0nXruAAAAACFwHQMxwQkAAAAAOj8
 ////xgUAAAAAAcnDjbYAAAAAjbwnAAAAAFW4AAAAAInl6AAAAABagcIDAAAA
 g+wYhcB0IIlUJAzHRCQIAAAAAMdEJAQEAAAAxwQkAAAAAOj8////oQAAAACF
 wHQVuAAAAACFwHQMxwQkAAAAAOj8////iexdw412AAAAAAAEAAAA////////
 ///o/P///+hcAAAAAEdDQzogKEdOVSkgMy4yLjIgMjAwMjEyMTMgKHByZXJl
 bGVhc2UpAAAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC50ZXh0AC5yZWwu
 dGV4dAAuZGF0YQAucmVsLmRhdGEALmJzcwAuY3RvcnMALmR0b3JzAC5laF9m
 cmFtZQAuamNyAC5maW5pAC5yZWwuZmluaQAuaW5pdAAucmVsLmluaXQALmNv
 bW1lbnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 ABsAAAABAAAABgAAAAAAAABAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAhAAAA
 CQAAAAAAAAAAAAAALAcAAIgAAAAQAAAAAQAAAAQAAAAIAAAAKwAAAAEAAAAD
 AAAAAAAAAAABAAAIAAAAAAAAAAAAAAAEAAAAAAAAADEAAAAJAAAAAAAAAAAA
 AAC0BwAACAAAABAAAAADAAAABAAAAAgAAAA7AAAACAAAAAMAAAAAAAAACAEA
 ABwAAAAAAAAAAAAAAAQAAAAAAAAAQAAAAAEAAAADAAAAAAAAAAgBAAAEAAAA
 AAAAAAAAAAAEAAAAAAAAAEcAAAABAAAAAwAAAAAAAAAMAQAABAAAAAAAAAAA
 AAAABAAAAAAAAABOAAAAAQAAAAMAAAAAAAAAEAEAAAAAAAAAAAAAAAAAAAQA
 AAAAAAAAWAAAAAEAAAADAAAAAAAAABABAAAAAAAAAAAAAAAAAAAEAAAAAAAA
 AF0AAAABAAAABgAAAAAAAAAQAQAABQAAAAAAAAAAAAAAAQAAAAAAAABjAAAA
 CQAAAAAAAAAAAAAAvAcAAAgAAAAQAAAACgAAAAQAAAAIAAAAbQAAAAEAAAAG
 AAAAAAAAABUBAAAFAAAAAAAAAAAAAAABAAAAAAAAAHMAAAAJAAAAAAAAAAAA
 AADEBwAACAAAABAAAAAMAAAABAAAAAgAAAB9AAAAAQAAAAAAAAAAAAAAGgEA
 ACgAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAAEIBAACGAAAA
 AAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAACYBAAAoAEAABEAAAAV
 AAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAOAYAAPQAAAAAAAAAAAAAAAEA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAQA8f8AAAAAAAAA
 AAAAAAADAAEAAAAAAAAAAAAAAAAAAwADAAAAAAAAAAAAAAAAAAMABQAAAAAA
 AAAAAAAAAAADAAYADAAAAAAAAAAAAAAAAQAGAAAAAAAAAAAAAAAAAAMABwAa
 AAAAAAAAAAAAAAABAAcAAAAAAAAAAAAAAAAAAwAIACgAAAAAAAAAAAAAAAEA
 CAAAAAAAAAAAAAAAAAADAAkAOwAAAAAAAAAAAAAAAQAJAEgAAAAEAAAAAAAA
 AAEAAwBMAAAAAAAAAAEAAAABAAUAWAAAAAAAAAAAAAAAAgABAAAAAAAAAAAA
 AAAAAAMACgBuAAAABAAAABgAAAABAAUAdwAAAGAAAAAAAAAAAgABAAAAAAAA
 AAAAAAAAAAMADAAAAAAAAAAAAAAAAAADAA4AgwAAAAAAAAAAAAAAEQADAJAA
 AAAAAAAAAAAAACAAAACuAAAAAAAAAAAAAAAgAAAAygAAAAAAAAAAAAAAEAAA
 AOAAAAAAAAAAAAAAACAAAAAAY3J0c3R1ZmYuYwBfX0NUT1JfTElTVF9fAF9f
 RFRPUl9MSVNUX18AX19FSF9GUkFNRV9CRUdJTl9fAF9fSkNSX0xJU1RfXwBw
 LjAAY29tcGxldGVkLjEAX19kb19nbG9iYWxfZHRvcnNfYXV4AG9iamVjdC4y
 AGZyYW1lX2R1bW15AF9fZHNvX2hhbmRsZQBfX2RlcmVnaXN0ZXJfZnJhbWVf
 aW5mb19iYXNlcwBfX3JlZ2lzdGVyX2ZyYW1lX2luZm9fYmFzZXMAX0dMT0JB
 TF9PRkZTRVRfVEFCTEVfAF9Kdl9SZWdpc3RlckNsYXNzZXMACAAAAAEEAAAQ
 AAAAAQMAACQAAAABAwAAKwAAAAEDAAA2AAAAARYAAEEAAAABCQAARgAAAAIW
 AABMAAAAAQQAAGIAAAABFwAAcAAAAAoYAACLAAAAAQQAAJIAAAABCQAAlwAA
 AAIXAACcAAAAAQsAAKUAAAABGQAAsAAAAAELAAC1AAAAAhkAAAQAAAABBwAA
 AQAAAAICAAABAAAAAgIAAA==
 --1400906564-1057649632-1042501013=:14754--

Comment 3 Robert Schiele 2003-01-14 00:29:51 UTC
From: Robert Schiele <rschiele@uni-mannheim.de>
To: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
	gcc-gnats@gcc.gnu.org, Andreas Jaeger <aj@suse.de>,
	Volker Reichelt <reichelt@igpm.rwth-aachen.de>,
	Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Tue, 14 Jan 2003 00:29:51 +0100

 --azLHFNyN32YCQGCU
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Mon, Jan 13, 2003 at 04:42:07PM -0600, Wolfgang Bangerth wrote:
 >=20
 > > > I have mainline snapshots from the last two years for about every two=
 =20
 > > > weeks, and none of them shows the behavior you see.
 > >=20
 > > You still didn't answer my question, which binutils you use.  Might be
 > > this information is of some use to understand the problem.
 >=20
 > I'm sorry. For the RedHat machine with the snapshot collection, it's=20
 > 2.11.90.0.8, for the SuSE machine it's 2.11.92.0.10.
 
 Hmm, SuSE 8.1 has 2.12.90.0.12.  Is someone else with 2.12.x.x.x here
 to test this?
 
 > > > What do we do with this report?
 > >=20
 > > I hope you do not ignore it.  My colleague and I have invested some
 > > time to track this down to such a simple test case.  (The real world
 > > test case were megabytes of code.)
 >=20
 > I have no intention to _ignore_ the report, otherwise I would have closed=
 =20
 > it after not being able to reproduce it. On the other hand, we rely on=20
 > being able to reproduce a problem to fix it, right?
 
 Yes you are right.  Sorry, might be I was a bit too harsh here.  Hope
 you don't mind.
 
 > Volker, Christian, can one of you try to check this report on your=20
 > systems? I think I have to pull out of this since I can't contribute=20
 > anything any more...
 
 Well, I did some more testing and found the following:
 
 If I do compile and link with gcc 3.2.1, the resulting application is
 faulty.  Linking is done by:
 
 /opt/Pkg/Linux/i686/gcc321/lib/gcc-lib/i486-suse-linux/3.2.1/collect2 --eh-=
 frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /u=
 sr/lib/crti.o /opt/Pkg/Linux/i686/gcc321/lib/gcc-lib/i486-suse-linux/3.2.1/=
 crtbegin.o -L/opt/Pkg/Linux/i686/gcc321/lib/gcc-lib/i486-suse-linux/3.2.1 -=
 L/opt/Pkg/Linux/i686/gcc321/lib/gcc-lib/i486-suse-linux/3.2.1/../../.. pic.=
 o nopic.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /opt/Pkg/Linux/i686/=
 gcc321/lib/gcc-lib/i486-suse-linux/3.2.1/crtend.o /usr/lib/crtn.o
 
 If I replace _only_ crtbegin.o with the one from gcc 3.2 release, the
 resulting application works perfectly sane.  So the bug must be
 somewhere in crtstuff.  Well crtstuff.c itself was not changed, so
 this must be something in a file included from there.  Or the reason
 is that I have built the 3.2 release with binutils 2.11.x.x.x where I
 have built the other compilers with 2.12.x.x.x.
 
 Wolfgang could you send me the crtbegin.o files from the compilers
 that you tried?
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --azLHFNyN32YCQGCU
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPiNL7sQAnns5HcHpAQFzwAgA0afd+Q4xtOH4nQ4ezjDmlEimwM7UWTbC
 d8yHpKkhQxbdeDJe9FfTt72pt79JZ+JzbB0x9mxRXpJRMnPofB07FbV5T9BfmAsF
 yovdJrkFD5sCVkpCk3y6EU2/V4d78kiZGJa6v47t9/mEUKRP0q9I+7SN9JFx2Vem
 RMPEIICY/p8EgElYUn9FuctwUzvt8pPxYzn4SWC/07JD39lFnARjytP2CLS93jLV
 +OoLatLvxpXtsutic4nS6kJGILJ60xgPloOqKHwInNhuNaJ9izwABrHfmJysIySW
 PcJLUD2fPmqc6iOO44JW8cjZwd2FQwAH90JbwX+AKsSwC6eYBvpCLA==
 =PGEQ
 -----END PGP SIGNATURE-----
 
 --azLHFNyN32YCQGCU--
 

Comment 4 Robert Schiele 2003-01-14 08:03:01 UTC
From: Robert Schiele <rschiele@uni-mannheim.de>
To: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
	gcc-gnats@gcc.gnu.org, Andreas Jaeger <aj@suse.de>
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Tue, 14 Jan 2003 08:03:01 +0100

 --ReaqsoxgOBHFXBhH
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Mon, Jan 13, 2003 at 05:36:53PM -0600, Wolfgang Bangerth wrote:
 >=20
 > > Wolfgang could you send me the crtbegin.o files from the compilers
 > > that you tried?
 >=20
 > Attached is the crtbegin.o from the gcc3.2.2 snapshot (2002-12-13) I use,=
 =20
 > compiled on the SuSE machine. This should be closest to your=20
 > configuration.
 
 Thanks.  With your crtbegin.o it also works for me.  So I will try to
 build a gcc 3.2 with binutils 2.12.x.x.x to check whether it makes a
 difference which binutils are used to build the compiler.
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --ReaqsoxgOBHFXBhH
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPiO2JMQAnns5HcHpAQF2lggArq3QA+qoGTiXdMWasIqbuwI5VeSGgnqs
 fE8IEoWucvjixIN5XWuo47EV3c6G8K8/zH5oX698ynCmt76ecAkQgPPVJsK0rTQ9
 xF/VZVtQEhyb3tyXgwvpIbiczB+fdTwzqYltqmk3Xzx87GUS95uGSSIxxMfIYkYC
 3oWzhibp4cQlrrfEylZEOrcIBwl9qs/dbpBv/0mg3T/8BvNliY8q0ucS4Y/rvWRj
 boaOWKzUVhS6eeqT6Shhd+eEV0oZjYs6HvTNjuzPL6lSSmg9FOIrvuGwD0hPKZF/
 EtsD2jXxUH1EEbh44/d/yWytZCRPNS7NBc7fBU6J/AwULrb2MWkg/A==
 =SqDK
 -----END PGP SIGNATURE-----
 
 --ReaqsoxgOBHFXBhH--
 

Comment 5 Robert Schiele 2003-01-14 10:05:00 UTC
From: Robert Schiele <rschiele@uni-mannheim.de>
To: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
	gcc-gnats@gcc.gnu.org, Andreas Jaeger <aj@suse.de>
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Tue, 14 Jan 2003 10:05:00 +0100

 --wac7ysb48OaltWcw
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Tue, Jan 14, 2003 at 08:03:01AM +0100, Robert Schiele wrote:
 > Thanks.  With your crtbegin.o it also works for me.  So I will try to
 > build a gcc 3.2 with binutils 2.12.x.x.x to check whether it makes a
 > difference which binutils are used to build the compiler.
 
 Well, I got the switch that triggers it: HAVE_LD_EH_FRAME_HDR
 
 If this Macro was defined, the crtbegin code cannot handle the
 situation I described in the bug report.  Without it can handle the
 situation quite sane.  This is the case with _all_ compilers since 3.2
 release.  (I haven't an older one at hand to test.)
 
 Obviously this switched is on if you used binutils 2.12.x.x.x at
 configure time as they support this feature, but 2.11.x.x.x do not and
 such it is turned off there.  So it is perfectly clear now, why you
 couldn't reproduce the problem.
 
 This means the problem obviously is in the crtstuff code that handles
 eh_frame_hdr stuff.
 
 So we need some binutils gurus here.
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --wac7ysb48OaltWcw
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPiPSu8QAnns5HcHpAQF1UQf/cK/bEJaOYPATaPgcsPt/godwCs0tL96O
 iCjOlCBO1LOQwfrJ5TJ9SHPwNWyHCGCw7Oc5VJESF1/scmT82vhSCOc6VT/9sjrO
 zK9py1Cj4GHD4z2JqF2MPiL1P/fx1jgY/LdJftl/mz1vnr5tMqhUSej/UumNQlAX
 j392YqgESPqIDTsuFqIs0IjD0o84IMGvTFRXaySFE6FapbdP0IaDk9F131W1r7aM
 I4J19r7A63ksSaj5DCuiJe2yoaVRlyDTAt9Z46ncxvCzzBkN1my8sqgdhKbHp8Ti
 XhWU1uhS8m73kJGvmM+j5Dkx2YL2a/k4XmEQVuVPPKAjojlsZUy6MQ==
 =Bg1H
 -----END PGP SIGNATURE-----
 
 --wac7ysb48OaltWcw--
 

Comment 6 Robert Schiele 2003-01-14 23:37:22 UTC
From: Robert Schiele <rschiele@uni-mannheim.de>
To: Jakub Jelinek <jakub@redhat.com>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
	gcc-gnats@gcc.gnu.org
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Tue, 14 Jan 2003 23:37:22 +0100

 --dDRMvlgZJXvWKvBx
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 Hello Jakub.
 
 As you did some of the recent changes related to .eh_frame_hdr stuff
 in crtstuff, I expect you to be able to give some comments on c++/9265
 or at least can name a person that should have an idea what the
 problem could be.
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --dDRMvlgZJXvWKvBx
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPiSRIcQAnns5HcHpAQGLgwf8CtKMudamoS6UNfJP/y14BPqH86tB2hMx
 9ObQJx5VFZbG54xQRUZexMgVICS/akofVc7P2nSxdefqQv7k4cInjRI032ETcLVm
 xBHtv876safb9WZJiLwy3e+AaIkWN9BY83s4oBblXyc1Wc6I+aQWFCMSplAp2ogl
 NB7CRHpuKzrKv9ufIIypx6jbjqfLCIvV61YputtP4Eft/CbSDyCzxOum5v/R7KxJ
 5v0r9hsI/xsz7YCbHIYD7ZaKErSd2ctON/bBJ6odZWI193U8tXe6GBVMcbd3WPZr
 b/pjPbZUj3RVNgBCNEr2Rijc8g46f4QoKzcBZOdN9I4NY0trPo1XvQ==
 =DwOh
 -----END PGP SIGNATURE-----
 
 --dDRMvlgZJXvWKvBx--
 

Comment 7 Jakub Jelinek 2003-02-04 15:19:06 UTC
From: Jakub Jelinek <jakub@redhat.com>
To: Robert Schiele <rschiele@uni-mannheim.de>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
   gcc-gnats@gcc.gnu.org
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Tue, 4 Feb 2003 15:19:06 -0500

 On Tue, Feb 04, 2003 at 08:43:55PM +0100, Robert Schiele wrote:
 > On Tue, Jan 14, 2003 at 11:37:22PM +0100, Robert Schiele wrote:
 > > Hello Jakub.
 > 
 > Hello, did you miss my last message?  Could you give a comment on the
 > issue, or at least state that you can't/won't for any reason?
 > 
 > > As you did some of the recent changes related to .eh_frame_hdr stuff
 > > in crtstuff, I expect you to be able to give some comments on c++/9265
 > > or at least can name a person that should have an idea what the
 > > problem could be.
 
 Cannot reproduce this, works just fine with
 gcc version 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2)
 GNU ld version 2.13.90.0.16 20021126
 
 You obviously cannot mix crt* files between different gcc builds,
 particularly you should never use crt* files from gcc build
 which has
 #define HAVE_LD_EH_FRAME_HDR 1
 in auto-host.h
 in gcc which does not have it.
 gcc which has the above defined during configure will have:
 %{!static:--eh-frame-hdr}
 in specs and thus ensure PT_GNU_EH_FRAME is created:
 readelf -l a.out
 
 Elf file type is EXEC (Executable file)
 Entry point 0x80484ac
 There are 7 program headers, starting at offset 52
 
 Program Headers:
   Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
   PHDR           0x000034 0x08048034 0x08048034 0x000e0 0x000e0 R E 0x4
   INTERP         0x000114 0x08048114 0x08048114 0x00013 0x00013 R   0x1
       [Requesting program interpreter: /lib/ld-linux.so.2]
   LOAD           0x000000 0x08048000 0x08048000 0x00734 0x00734 R E 0x1000
   LOAD           0x000734 0x08049734 0x08049734 0x00130 0x00138 RW  0x1000
   DYNAMIC        0x000744 0x08049744 0x08049744 0x000e0 0x000e0 RW  0x4
   NOTE           0x000128 0x08048128 0x08048128 0x00020 0x00020 R   0x4
   GNU_EH_FRAME   0x000678 0x08048678 0x08048678 0x0001c 0x0001c R   0x4
 
 	Jakub

Comment 8 Robert Schiele 2003-02-04 20:43:55 UTC
From: Robert Schiele <rschiele@uni-mannheim.de>
To: Jakub Jelinek <jakub@redhat.com>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
   gcc-gnats@gcc.gnu.org
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Tue, 4 Feb 2003 20:43:55 +0100

 --W/nzBZO5zC0uMSeA
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Tue, Jan 14, 2003 at 11:37:22PM +0100, Robert Schiele wrote:
 > Hello Jakub.
 
 Hello, did you miss my last message?  Could you give a comment on the
 issue, or at least state that you can't/won't for any reason?
 
 > As you did some of the recent changes related to .eh_frame_hdr stuff
 > in crtstuff, I expect you to be able to give some comments on c++/9265
 > or at least can name a person that should have an idea what the
 > problem could be.
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --W/nzBZO5zC0uMSeA
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPkAX+sQAnns5HcHpAQEcQgf/VYoA2GaGReGBuCms4D7vXLJ4rh5ep+YF
 e8XAy+dDbB9v42ZVVJsfXvOYxewseduGW+X1Y+nXNXvGzTGWjV+wBCNmcB0QpZFv
 v4yr5rOO1cWHBUkv0mmOiZTtA2RMFw+LW9q0ARvO72mVqVu5u31Hd9O4MM4JiKIO
 D8I0wPAOTgC2IFOljFfiefKw3Fuw/lEvp9bHsDYUoQPoxOBHFqeYahL6j1fWhPFo
 vEwqUd+L0CsI/EtZWi+4ZpMQzkB+VezP+om12ANZ2RxpGxRphEtP38E/gjAa/GDr
 jZTvC5eFRvgmoHpRI3Ibk/N/BaGYpOy6vfPl+CCN/nEmnp27E7AaQg==
 =p8G7
 -----END PGP SIGNATURE-----
 
 --W/nzBZO5zC0uMSeA--
 

Comment 9 Wolfgang Bangerth 2003-02-04 22:40:19 UTC
State-Changed-From-To: feedback->closed
State-Changed-Why: Submitter states that the problem is apparently SuSE
    specific and that he will discuss the matter with them.
Comment 10 Robert Schiele 2003-02-04 23:28:27 UTC
From: Robert Schiele <rschiele@uni-mannheim.de>
To: Jakub Jelinek <jakub@redhat.com>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
   gcc-gnats@gcc.gnu.org, Andreas Jaeger <aj@suse.de>
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Tue, 4 Feb 2003 23:28:27 +0100

 --3V7upXqbjpZ4EhLz
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Tue, Feb 04, 2003 at 03:19:06PM -0500, Jakub Jelinek wrote:
 > Cannot reproduce this, works just fine with
 > gcc version 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2)
 > GNU ld version 2.13.90.0.16 20021126
 
 Thanks for checking this.
 
 > You obviously cannot mix crt* files between different gcc builds,
 
 This is perfectly clear to me. I did this only to track the problem
 down.
 
 Now, after I had the first report from someone with recent binutils
 where it was not reproducable, I did some further research and found
 that it seems to be a SuSE specific problem either with the shipped
 glibc or with some vendor patches on binutils.
 
 I compared SuSE 8.1 to Mandrake 9.0 that have both gcc-3.2,
 binutils-2.12.90.0.15 and glibc-2.2.5.  SuSE has the bug, Mandrake
 not.  So the problem seems to have been introduced by a SuSE specific
 change to either binutils or glibc.
 
 Andreas: This is the reason, why I have put you in CC again.
 
 So, from my point of view, we can close this bug here and I will do
 further discussions about this issue in the SuSE bugzilla.
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --3V7upXqbjpZ4EhLz
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPkA+isQAnns5HcHpAQGx2wf/dIe+eJDSrQlz0Y0U4j7PMJ8Ht9HqxBZm
 UYy7ujIL530tN1YOidPebdu9oWBpR6Ixjxk/q8UZ6kQpKtSxPPeogYMYJF7c/Yak
 yB1Ih4gC8heUTD1LeKjWOSP3Jg8rIR44V9puy5uAgqFjJnZeyNrDKr1knkL+6FJR
 WqeSAApQzDt2QICUQJAPmVOw7LY0MXsTVpNjw7gqZhmAiJemY/F7C9lC1IsSs2V8
 5RCvx5orUnbeMkIwXrgZ5cF1gYSZ/e29INojAqNZPOdHkQ+N/zI3h2Bs/ZI3Z4cT
 4pecuHJTqZU455nNvNh5UCvqUr2UPTkG1V/hQ3McvlmERRwlqU19Ug==
 =UFPd
 -----END PGP SIGNATURE-----
 
 --3V7upXqbjpZ4EhLz--
 
Comment 11 Robert Schiele 2003-02-06 10:44:10 UTC
From: Robert Schiele <rschiele@uni-mannheim.de>
To: Jakub Jelinek <jakub@redhat.com>
Cc: cc@pi3.informatik.uni-mannheim.de, gcc-bugs@gcc.gnu.org,
   gcc-gnats@gcc.gnu.org, Andreas Jaeger <aj@suse.de>,
   Andreas Schwab <schwab@suse.de>
Subject: Re: c++/9265: exception handling faulty wenn linking PIC objects to non PIC ones
Date: Thu, 6 Feb 2003 10:44:10 +0100

 --wq9mPyueHGvFACwf
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Tue, Feb 04, 2003 at 11:28:27PM +0100, Robert Schiele wrote:
 > Now, after I had the first report from someone with recent binutils
 > where it was not reproducable, I did some further research and found
 > that it seems to be a SuSE specific problem either with the shipped
 > glibc or with some vendor patches on binutils.
 
 Ok, it is definitively not a gcc bug, but a binutils bug, but not
 invented by SuSE specific patches, but by the fact that they configure
 with --enable-targets=3Dx86_64-suse-linux.  This seems to break either
 ld or libbfd, even on plain binutils 2.12.90.0.15.  I haven't yet
 tried later releases, but will do so.
 
 If you are interrested in having more information, feel free to
 contact me.
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --wq9mPyueHGvFACwf
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPkIuacQAnns5HcHpAQG1wgf/d6q7WNIiwENoZpcshL0LcEIPht/94zGr
 lHZgSNie8yCImgQcuhNfwImGrabdjqNDPrarnd/eTypbc0ZquO0h2w6NSxG8p7WP
 NwWwFCNhfeAqB9pE3pAKeUDasXC4VHKQsmYKLpNw58oAj5wg/0HzD+TKrSEsBlza
 5DLndC8acaoCKHIDVDMWrwMswyh0QqjZoLF3GYXNLL6e/JdzUJFqzCa+VjFhS2tz
 KIOig5+jiXc+0+0SDwAagL150GRdQYZ5Z4gEEJld1RB6t3aL5kqO+3dtkqEAqNLj
 h91OuLo17GRb6A2tFlcnZoe5wNNRwioBtb1rYQI4A4vb+8MLQ+o6hQ==
 =6Xsw
 -----END PGP SIGNATURE-----
 
 --wq9mPyueHGvFACwf--