From: Jack Howarth <howarth@bromo.med.uc.edu>
To: java@gcc.gnu.org
Cc: per@bothner.com, aph@redhat.com, tromey@redhat.com
Subject: [PATCH] link libgcj directly to libiconv to resolve symbols
Date: Fri, 05 Jul 2013 13:51:00 -0000 [thread overview]
Message-ID: <20130705135122.GA10261@bromo.med.uc.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 868 bytes --]
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?
Jack
[-- Attachment #2: link_libgcj_to_libiconv.diff --]
[-- Type: text/plain, Size: 2336 bytes --]
2013-07-05 Jack Howarth <howarth@bromo.med.uc.edu>
libjava/
PR java/49441
* libgcj.spec.in (*lib:): Remove @LDLIBICONV@.
* Makefile.am (libgcj_la_LDFLAGS): Add $(LDLIBICONV).
* Makefile.in (libgcj_la_LDFLAGS): Regenerated.
Index: libjava/libgcj.spec.in
===================================================================
--- libjava/libgcj.spec.in (revision 200713)
+++ libjava/libgcj.spec.in (working copy)
@@ -7,6 +7,6 @@
*startfile: @THREADSTARTFILESPEC@ %(startfileorig)
%rename lib liborig
-*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ @LIBMATHSPEC@ @LDLIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
+*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ @LIBMATHSPEC@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ @ATOMICSPEC@ @LIBGCJ_BC_SPEC@ -fkeep-inline-functions
Index: libjava/Makefile.am
===================================================================
--- libjava/Makefile.am (revision 200713)
+++ libjava/Makefile.am (working copy)
@@ -492,7 +492,7 @@ xlib_nat_files = $(xlib_nat_source_files
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
$(LIBLTDL) $(SYS_ZLIBS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
- $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBGCJ_LD_EXPORT_ALL)
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBGCJ_LD_EXPORT_ALL) $(LDLIBICONV)
libgcj_la_LIBADD = \
classpath/native/fdlibm/libfdlibm.la \
java/lang/Object.lo \
Index: configure
===================================================================
--- configure (revision 200713)
+++ configure (working copy)
@@ -7416,6 +7416,13 @@ if test x${is_cross_compiler} = xyes ; t
target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
fi
+# Pass --with-sysroot on darwin without SDK in /
+case "${target}" in
+ x86_64-*-darwin1[3-9]*)
+ host_configargs="--with-sysroot=\"`xcrun --show-sdk-path`\" ${host_configargs}"
+ ;;
+esac
+
# Default to --enable-multilib.
if test x${enable_multilib} = x ; then
target_configargs="--enable-multilib ${target_configargs}"
reply other threads:[~2013-07-05 13:51 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130705135122.GA10261@bromo.med.uc.edu \
--to=howarth@bromo.med.uc.edu \
--cc=aph@redhat.com \
--cc=java@gcc.gnu.org \
--cc=per@bothner.com \
--cc=tromey@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).