This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] link libgcj directly to libiconv to resolve symbols


On 07/06/2013 04:58 AM, Jack Howarth wrote:
> On Fri, Jul 05, 2013 at 05:25:47PM +0100, Andrew Haley wrote:
>> On 07/05/2013 05:10 PM, Jack Howarth wrote:
>>>    Currently the build of the libgcj shared library in libjava
>>> omits a direct linkage against the libiconv shared library to
>>> resolve the undefined _libiconv, _libiconv_close and
>>> _libiconv_open symbols in libgcj. My understanding of shared
>>> library best practices is that shared libraries should always be
>>> linked directly to the those shared libraries required to resolve
>>> their undefined symbols rather than postponing this linkage until
>>> when the shared library is used (as is currently done in
>>> libjava/libgcj.spec.in).  The attached patch achieves this by
>>> removing the @LIBMATHSPEC@ from *lib: in libjava/libgcj.spec.in
>>> and moving it as $(LDLIBICONV) onto libgcj_la_LDFLAGS in
>>> libjava/Makefile.am and libjava/Makefile.in.
>>> Bootstrap and regression tested on x86_64-apple-darwin12 for gcc
>>> trunk and gcc-4_8-branch.
>>> Okay for gcc trunk and gcc-4_8-branch?
>>
>> No.  Some systems have iconv in libc, some have it in libiconv.
> 
>    I assume you are doing this to create binary tarball
> distributions which can be deployed on various linux distros,
> correct? Isn't this rather dangerous as you are compiling libgcj
> against the headers of some unknown libiconv release and then having
> it linked against a completely different one when deployed in the
> field.

It's never broken anything before.  Why would it do so now?

> Doesn't this require a lot of assumptions about the data structures
> on libiconv calls not changing between the various releases? It
> would seem to be safier if you just added an option to statically
> link libiconv.a into libgcj if such a portable tarball release was
> required.

It'd help a lot if you explained what problem you're trying to solve.
"shared library best practices" doesn't quite do it.

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]