summaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-17 01:03:21 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-17 01:03:21 +0000
commit919df38169fae42392ee8e62910bb49e53e62932 (patch)
tree95b7d3068d6d990fedb42e0c637b55e97c1f98bd /gcc/java
parentf98a9d6fc2fe2cdc5773a7a84aa1f0ea88912d73 (diff)
downloadgcc-919df38169fae42392ee8e62910bb49e53e62932.tar.gz
gcc/java/ChangeLog
* jvspec.c (lang_specific_driver): Add -s-bc-abi when needed. libjava/ChangeLog * configure, Makefile.in: Rebuilt. * Makefile.am (toolexeclib_LTLIBRARIES): Add libgcj_bc.la. (libgcj_bc_la_SOURCES): New variable. (libgcj_bc_la_LDFLAGS): Likewise. (libgcj_bc_la_LIBADD): Likewise. (libgcj_bc_la_DEPENDENCIES): Likewise. (libgcj_bc_la_LINK): Likewise. (libgcj_bc_dummy_LINK): Likewise. (libgcj_bc.la): New target. (install-exec-hook): Likewise. * libgcj.spec.in (*lib): Use LIBGCJ_SPEC. * libgcj_bc.c: New file. * configure.ac (LIBGCJ_SPEC): New subst. * configure.host (use_libgcj_bc): New variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116204 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/jvspec.c13
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index d1728f82b50..81970f5077f 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2006-08-16 Jakub Jelinek <jakub@redhat.com>
+ Bryce McKinlay <bryce@mckinlay.net.nz>
+
+ * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
+
2006-08-10 Simon Martin <simartin@users.sourceforge.net>
PR java/8923
diff --git a/gcc/java/jvspec.c b/gcc/java/jvspec.c
index 63f49ff74b3..f64d438807c 100644
--- a/gcc/java/jvspec.c
+++ b/gcc/java/jvspec.c
@@ -243,6 +243,9 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
/* The argument we use to specify the spec file. */
char *spec_file = NULL;
+ /* If linking, nonzero if the BC-ABI is in use. */
+ int link_for_bc_abi = 0;
+
argc = *in_argc;
argv = *in_argv;
added_libraries = *in_added_libraries;
@@ -365,6 +368,11 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
else if (strcmp (argv[i], "-static-libgcc") == 0
|| strcmp (argv[i], "-static") == 0)
shared_libgcc = 0;
+ else if (strcmp (argv[i], "-findirect-dispatch") == 0
+ || strcmp (argv[i], "--indirect-dispatch") == 0)
+ {
+ link_for_bc_abi = 1;
+ }
else
/* Pass other options through. */
continue;
@@ -490,6 +498,8 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
num_args += shared_libgcc;
+ num_args += link_for_bc_abi;
+
arglist = XNEWVEC (const char *, num_args + 1);
j = 0;
@@ -599,6 +609,9 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
if (shared_libgcc)
arglist[j++] = "-shared-libgcc";
+ if (link_for_bc_abi)
+ arglist[j++] = "-s-bc-abi";
+
arglist[j] = NULL;
*in_argc = j;