Re: why doesn't libgcj link against libiconv?

Jack Howarth <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <[email protected]>
On Thu, Jun 16, 2011 at 10:33:19AM -0400, Jack Howarth wrote:
>    I am running into a very odd bug on darwin with both gcc-4_6-branch
> and gcc trunk. Last year I added a patch to insure that when gcc was
> built with -with-libiconv-prefix=/sw, that libgcj.spec would provide the
> necessary linkage "-L/sw/lib -liconv" to access the correct libiconv.
> For some unknown reason the installed libgcj.spec now loses LDLIBICONV.
> The weird part is that the libgcj.spec generated in the build directory
> still has it...
> 
> [MacPro:~] howarth% cd /sw/src/fink.build/gcc47-4.7.0-1000/darwin_objdir/x86_64-apple-darwin11.0.0/libjava
> [MacPro:darwin_objdir/x86_64-apple-darwin11.0.0/libjava] howarth% more libgcj.spec
> #
> # This spec file is read by gcj when linking.
> # It is used to specify the standard libraries we need in order
> # to link with libgcj.
> #
> %rename startfile startfileorig
> *startfile:  %(startfileorig)
> 
> %rename lib liborig
> *lib:  %{s-bc-abi:} -lgcj    -L/sw/lib -liconv    -lz %{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}  %(libgcc)  %(liborig) -no_pie
> 
> *jc1: -fhash-synchronization -fuse-divide-subroutine -fcheck-references -fuse-boehm-gc -fnon-call-exceptions     -fkeep-inline-functions
> 
> but the installed libgcc.spec doesn't...
> 
> [MacPro:~] howarth% cd /sw/lib/gcc4.7/lib
> [MacPro:lib/gcc4.7/lib] howarth% more libgcj.spec
> #
> # This spec file is read by gcj when linking.
> # It is used to specify the standard libraries we need in order
> # to link with libgcj.
> #
> %rename startfile startfileorig
> *startfile:  %(startfileorig)
> 
> %rename lib liborig
> *lib:  %{s-bc-abi:} -lgcj        -lz %{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}  %(libgcc)  %(liborig) -no_pie
> 
> *jc1: -fhash-synchronization -fuse-divide-subroutine -fcheck-references -fuse-boehm-gc -fnon-call-exceptions     -fkeep-inline-functions
> 
> 
> Note that I hardcoded -no_pie I added to libgcj.spec.in is retained.
>      I am wondering if we really need to have @LDLIBICONV@ in libgcj.spec.in to solve this. Why can't 
> we simply pass @LDLIBICONV@ to the linkage of libgcj itself so that libgcj,dylib is directly linked against the appropriate
> libiconv to resolve those iconv symbols? Would this approach be acceptable?
>               Jack

I've opened PR49441 as I suspect this breakage was caused by...

------------------------------------------------------------------------
r169822 | rwild | 2011-02-04 00:51:57 -0500 (Fri, 04 Feb 2011) | 12 lines

Fix PR java/21206: Unrecognized option '-Wl,-rpath' for jv-convert

libjava/:
        PR java/21206
        * configure.ac (LDLIBICONV): New substituted variable, with
        instances of '-Wl,' removed from LIBICONV.
        * configure: Regenerate.
        * libgcj.spec.in: Use @LDLIBICONV@ not @LIBICONV@.
        * Makefile.in: Regenerate.
        * gcj/Makefile.in: Likewise.
        * include/Makefile.in: Likewise.
        * testsuite/Makefile.in: Likewise.
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.