jvspec.c (lang_specific_driver): Correctly handle case where GC_NAME not defined.
authorTom Tromey <tromey@cygnus.com>
Thu, 12 Nov 1998 08:50:52 +0000 (08:50 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Thu, 12 Nov 1998 08:50:52 +0000 (08:50 +0000)
* jvspec.c (lang_specific_driver): Correctly handle case where
GC_NAME not defined.

From-SVN: r23614

gcc/java/ChangeLog
gcc/java/jvspec.c

index 061016083399898117550cc245430b60908e9407..8e331ee630ab319ad3bcbf41bfd73c4f1d853f53 100644 (file)
@@ -1,3 +1,8 @@
+1998-11-12  Tom Tromey  <tromey@cygnus.com>
+
+       * jvspec.c (lang_specific_driver): Correctly handle case where
+       GC_NAME not defined.
+
 1998-11-11  Tom Tromey  <tromey@cygnus.com>
 
        * jvspec.c (GC_NAME): New define.
index 4b44ba0635a6d8438963397e7db11d9d74f7bd70..ba17d09291864189dd07860bd8fdf0d191b0bf08 100644 (file)
@@ -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++)
     {