This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix linking with -findirect-dispatch
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Andreas Schwab <schwab at suse dot de>
- Cc: java-patches at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Tue, 16 Apr 2013 11:48:52 +0200
- Subject: Re: [PATCH] Fix linking with -findirect-dispatch
- References: <mvmy5ciub3i dot fsf at hawking dot suse dot de> <20130416083855 dot GM12880 at tucnak dot redhat dot com> <mvmppxuu9c0 dot fsf at hawking dot suse dot de> <20130416091929 dot GN12880 at tucnak dot redhat dot com> <mvmli8iu88s dot fsf at hawking dot suse dot de>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Apr 16, 2013 at 11:37:07AM +0200, Andreas Schwab wrote:
> Jakub Jelinek <jakub@redhat.com> writes:
>
> > at dynamic link time it is a dummy library with no symbols that just
> > adds DT_NEEDED of the latest and greatest libgcj.so.N, which provides
> > all the symbols.
>
> Which is exactly the problem. --no-copy-dt-needed-entries has been the
> default for a long time now.
Why would that be a problem? libgcj.so the linker sees (i.e. the dummy
library) doesn't intentionally have DT_NEEDED libgcj.so.N, programs and
shared libraries linked with -findirect-dispatch should be adding
libgcj_bc.so to DT_NEEDED, not libgcj.so.N.
If this is caused by some recent broken linker change, then that should be
better reverted.
Jakub