diff options
author | Tom Tromey <tromey@cygnus.com> | 1998-11-12 08:50:52 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1998-11-12 08:50:52 +0000 |
commit | dfded5c3ba94beb16fc5ecc5baeb978972d7c7fb (patch) | |
tree | c3777b4b90cddd89b110abc7f6a1e5b4eb4cea05 /gcc/java/jvspec.c | |
parent | 83c078ddbc8bdb53af82f52caa2ec550e2ab6252 (diff) | |
download | gcc-dfded5c3ba94beb16fc5ecc5baeb978972d7c7fb.tar.gz |
jvspec.c (lang_specific_driver): Correctly handle case where GC_NAME not defined.
* jvspec.c (lang_specific_driver): Correctly handle case where
GC_NAME not defined.
From-SVN: r23614
Diffstat (limited to 'gcc/java/jvspec.c')
-rw-r--r-- | gcc/java/jvspec.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/java/jvspec.c b/gcc/java/jvspec.c index 4b44ba0635a..ba17d092918 100644 --- a/gcc/java/jvspec.c +++ b/gcc/java/jvspec.c @@ -172,6 +172,9 @@ lang_specific_driver (fn, in_argc, in_argv, in_added_libraries) */ int need_thread = 1; + /* By default, we throw in the gc library (if one is required). */ + int need_gc = 1; + /* The total number of arguments with the new stuff. */ int argc; @@ -235,8 +238,13 @@ lang_specific_driver (fn, in_argc, in_argv, in_added_libraries) saw_libjava = 1; else if (strcmp (argv[i], "-lc") == 0) args[i] |= WITHLIBC; +#ifdef GC_NAME else if (strcmp (argv[i], GC_NAME) == 0) - args[i] |= GCLIB; + { + args[i] |= GCLIB; + need_gc = 0; + } +#endif #ifdef THREAD_NAME else if (strcmp (argv[i], THREAD_NAME) == 0) { @@ -333,7 +341,7 @@ lang_specific_driver (fn, in_argc, in_argv, in_added_libraries) num_args = argc + added; if (will_link) - num_args += need_math + need_thread; + num_args += need_math + need_thread + need_gc; if (saw_C) { num_args += 3; @@ -376,7 +384,7 @@ lang_specific_driver (fn, in_argc, in_argv, in_added_libraries) { lang_specific_extra_outfiles++; } - arglist = (char **) xmalloc ((num_args + 4) * sizeof (char *)); + arglist = (char **) xmalloc ((num_args + 1) * sizeof (char *)); for (i = 0, j = 0; i < argc; i++, j++) { |