Re: [PATCH] Fix linking with -findirect-dispatch

Bryce McKinlay <[email protected]>
Newsgroups gmane.comp.gcc.java.patches,gmane.comp.gcc.patches
Message-ID <CALUNu-qUgdOt+Ut1_RsY2Yq4hcT-6eW4WzFbu_hYCX5j4FGGuA@mail.gmail.com>
On Tue, Apr 16, 2013 at 9:38 AM, Jakub Jelinek <[email protected]> wrote:
> On Tue, Apr 16, 2013 at 10:35:29AM +0200, Andreas Schwab wrote:
>> Linking with -findirect-dispatch fails with this error:
>>
>> x86_64-linux-gcj -o ecjx -findirect-dispatch --main=org.eclipse.jdt.internal.compiler.batch.GCCMain ../../../gcc/libjava/../ecj.jar ecjx.o
>> /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccppO92n.o: undefined reference to symbol '_Jv_MonitorExit'
>> /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: note: '_Jv_MonitorExit' is defined in DSO /usr/lib64/libgcj.so.13 so try adding it to the linker command line
>>
>> Andreas.
>>
>>       * configure.ac (LIBGCJ_SPEC_LGCJ_BC): Append -lgcj.
>>       (libgcj_spec_lgcj_bc_override): Likewise.
>>       * configure: Regenerate.
>
> That doesn't look right, if -findirect-dispatch now newly needs
> _Jv_MonitorExit (when has that been added?), then the symbol should
> be added to libgcj_bc.so.

That's right. -findirect-dispatch code should not link libgcj directly.

_Jv_MonitorExit has always been defined in libgcj_bc (see
libgcj_bc.c), so something else is going wrong here.

Bryce
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.