X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fjavacomp.c;h=7d0a94273e643b82184a0b6c507d9b084e98e5c9;hb=4cd8485e904c1a98470eb548fe6ac0f04e343c4e;hp=37d72c21c95b00ef40e6d8d2e9dd95547c1852c6;hpb=21a1b7219c0e0df46e3a6af7433d7aee4851f47a;p=gnulib.git diff --git a/lib/javacomp.c b/lib/javacomp.c index 37d72c21c..7d0a94273 100644 --- a/lib/javacomp.c +++ b/lib/javacomp.c @@ -1,11 +1,11 @@ /* Compile a Java program. - Copyright (C) 2001-2003, 2006-2007 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc. Written by Bruno Haible , 2001. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include #include @@ -41,9 +40,8 @@ #include "binary-io.h" #include "safe-read.h" #include "xalloc.h" -#include "xallocsa.h" -#include "getline.h" -#include "pathname.h" +#include "xmalloca.h" +#include "concat-filename.h" #include "fwriteerror.h" #include "clean-temp.h" #include "error.h" @@ -230,7 +228,7 @@ compile_using_envjavac (const char *javac, command_length += 1 + shell_quote_length (java_sources[i]); command_length += 1; - command = (char *) xallocsa (command_length); + command = (char *) xmalloca (command_length); p = command; /* Don't shell_quote $JAVAC, because it may consist of a command and options. */ @@ -270,10 +268,10 @@ compile_using_envjavac (const char *javac, argv[2] = command; argv[3] = NULL; exitstatus = execute (javac, "/bin/sh", argv, false, false, false, - null_stderr, true, true); + null_stderr, true, true, NULL); err = (exitstatus != 0); - freesa (command); + freea (command); return err; } @@ -303,7 +301,7 @@ compile_using_gcj (const char * const *java_sources, 2 + (no_assert_option ? 1 : 0) + (fsource_option ? 1 : 0) + (ftarget_option ? 1 : 0) + (optimize ? 1 : 0) + (debug ? 1 : 0) + (directory != NULL ? 2 : 0) + java_sources_count; - argv = (char **) xallocsa ((argc + 1) * sizeof (char *)); + argv = (char **) xmalloca ((argc + 1) * sizeof (char *)); argp = argv; *argp++ = "gcj"; @@ -312,7 +310,7 @@ compile_using_gcj (const char * const *java_sources, *argp++ = "-fno-assert"; if (fsource_option) { - fsource_arg = (char *) xallocsa (9 + strlen (source_version) + 1); + fsource_arg = (char *) xmalloca (9 + strlen (source_version) + 1); memcpy (fsource_arg, "-fsource=", 9); strcpy (fsource_arg + 9, source_version); *argp++ = fsource_arg; @@ -321,7 +319,7 @@ compile_using_gcj (const char * const *java_sources, fsource_arg = NULL; if (ftarget_option) { - ftarget_arg = (char *) xallocsa (9 + strlen (target_version) + 1); + ftarget_arg = (char *) xmalloca (9 + strlen (target_version) + 1); memcpy (ftarget_arg, "-ftarget=", 9); strcpy (ftarget_arg + 9, target_version); *argp++ = ftarget_arg; @@ -352,14 +350,14 @@ compile_using_gcj (const char * const *java_sources, } exitstatus = execute ("gcj", "gcj", argv, false, false, false, null_stderr, - true, true); + true, true, NULL); err = (exitstatus != 0); if (ftarget_arg != NULL) - freesa (ftarget_arg); + freea (ftarget_arg); if (fsource_arg != NULL) - freesa (fsource_arg); - freesa (argv); + freea (fsource_arg); + freea (argv); return err; } @@ -385,7 +383,7 @@ compile_using_javac (const char * const *java_sources, argc = 1 + (source_option ? 2 : 0) + (target_option ? 2 : 0) + (optimize ? 1 : 0) + (debug ? 1 : 0) + (directory != NULL ? 2 : 0) + java_sources_count; - argv = (char **) xallocsa ((argc + 1) * sizeof (char *)); + argv = (char **) xmalloca ((argc + 1) * sizeof (char *)); argp = argv; *argp++ = "javac"; @@ -423,10 +421,10 @@ compile_using_javac (const char * const *java_sources, } exitstatus = execute ("javac", "javac", argv, false, false, false, - null_stderr, true, true); + null_stderr, true, true, NULL); err = (exitstatus != 0); - freesa (argv); + freea (argv); return err; } @@ -450,7 +448,7 @@ compile_using_jikes (const char * const *java_sources, argc = 1 + (optimize ? 1 : 0) + (debug ? 1 : 0) + (directory != NULL ? 2 : 0) + java_sources_count; - argv = (char **) xallocsa ((argc + 1) * sizeof (char *)); + argv = (char **) xmalloca ((argc + 1) * sizeof (char *)); argp = argv; *argp++ = "jikes"; @@ -478,10 +476,10 @@ compile_using_jikes (const char * const *java_sources, } exitstatus = execute ("jikes", "jikes", argv, false, false, false, - null_stderr, true, true); + null_stderr, true, true, NULL); err = (exitstatus != 0); - freesa (argv); + freea (argv); return err; } @@ -566,7 +564,7 @@ is_envjavac_gcj (const char *javac) /* Setup the command "$JAVAC --version". */ command_length = strlen (javac) + 1 + 9 + 1; - command = (char *) xallocsa (command_length); + command = (char *) xmalloca (command_length); p = command; /* Don't shell_quote $JAVAC, because it may consist of a command and options. */ @@ -607,12 +605,13 @@ is_envjavac_gcj (const char *javac) fclose (fp); /* Remove zombie process from process list, and retrieve exit status. */ - exitstatus = wait_subprocess (child, javac, true, true, true, false); + exitstatus = + wait_subprocess (child, javac, true, true, true, false, NULL); if (exitstatus != 0) envjavac_gcj = false; failed: - freesa (command); + freea (command); envjavac_tested = true; } @@ -647,7 +646,7 @@ is_envjavac_gcj43 (const char *javac) /* Setup the command "$JAVAC --version". */ command_length = strlen (javac) + 1 + 9 + 1; - command = (char *) xallocsa (command_length); + command = (char *) xmalloca (command_length); p = command; /* Don't shell_quote $JAVAC, because it may consist of a command and options. */ @@ -691,12 +690,13 @@ is_envjavac_gcj43 (const char *javac) fclose (fp); /* Remove zombie process from process list, and retrieve exit status. */ - exitstatus = wait_subprocess (child, javac, true, true, true, false); + exitstatus = + wait_subprocess (child, javac, true, true, true, false, NULL); if (exitstatus != 0) envjavac_gcj43 = false; failed: - freesa (command); + freea (command); envjavac_tested = true; } @@ -741,7 +741,7 @@ is_envjavac_gcj43_usable (const char *javac, return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet (source_version))) { @@ -751,7 +751,7 @@ is_envjavac_gcj43_usable (const char *javac, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -785,9 +785,9 @@ is_envjavac_gcj43_usable (const char *javac, free (conftest_file_name); conftest_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, failcode)) { free (conftest_file_name); @@ -797,9 +797,9 @@ is_envjavac_gcj43_usable (const char *javac, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -890,7 +890,7 @@ is_envjavac_oldgcj_14_14_usable (const char *javac, bool *usablep) return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet ("1.4"))) { @@ -900,7 +900,7 @@ is_envjavac_oldgcj_14_14_usable (const char *javac, bool *usablep) } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -927,7 +927,7 @@ is_envjavac_oldgcj_14_14_usable (const char *javac, bool *usablep) Return a failure indicator (true upon error). */ static bool is_envjavac_oldgcj_14_13_usable (const char *javac, - bool *usablep, bool *need_no_assert_option_p) + bool *usablep, bool *need_no_assert_option_p) { static bool envjavac_tested; static bool envjavac_usable; @@ -951,7 +951,7 @@ is_envjavac_oldgcj_14_13_usable (const char *javac, return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet ("1.3"))) { @@ -961,7 +961,7 @@ is_envjavac_oldgcj_14_13_usable (const char *javac, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -994,8 +994,8 @@ is_envjavac_oldgcj_14_13_usable (const char *javac, if (javac_works && javac_noassert_works) { conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftestfail.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, "conftestfail.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, get_failcode_snippet ("1.3"))) { @@ -1006,8 +1006,8 @@ is_envjavac_oldgcj_14_13_usable (const char *javac, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftestfail.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, "conftestfail.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1091,7 +1091,7 @@ is_envjavac_nongcj_usable (const char *javac, return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet (source_version))) { @@ -1101,7 +1101,7 @@ is_envjavac_nongcj_usable (const char *javac, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1135,9 +1135,9 @@ is_envjavac_nongcj_usable (const char *javac, free (conftest_file_name); conftest_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, failcode)) { free (conftest_file_name); @@ -1147,9 +1147,9 @@ is_envjavac_nongcj_usable (const char *javac, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1219,9 +1219,9 @@ is_envjavac_nongcj_usable (const char *javac, free (conftest_file_name); conftest_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, failcode)) { @@ -1233,9 +1233,9 @@ is_envjavac_nongcj_usable (const char *javac, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1369,7 +1369,7 @@ is_gcj_present (void) /* Remove zombie process from process list, and retrieve exit status. */ exitstatus = - wait_subprocess (child, "gcj", false, true, true, false); + wait_subprocess (child, "gcj", false, true, true, false, NULL); if (exitstatus != 0) gcj_present = false; } @@ -1387,8 +1387,8 @@ is_gcj_present (void) char *conftest_file_name; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftestlib.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, "conftestlib.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, "public class conftestlib {\n" " public static void main (String[] args) {\n" @@ -1401,9 +1401,9 @@ is_gcj_present (void) const char *java_sources[1]; compiled_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestlib.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestlib.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1484,7 +1484,7 @@ is_gcj_43 (void) /* Remove zombie process from process list, and retrieve exit status. */ exitstatus = - wait_subprocess (child, "gcj", false, true, true, false); + wait_subprocess (child, "gcj", false, true, true, false, NULL); if (exitstatus != 0) gcj_43 = false; } @@ -1531,7 +1531,7 @@ is_gcj43_usable (const char *source_version, return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet (source_version))) { @@ -1541,7 +1541,7 @@ is_gcj43_usable (const char *source_version, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1571,9 +1571,9 @@ is_gcj43_usable (const char *source_version, free (conftest_file_name); conftest_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, failcode)) { free (conftest_file_name); @@ -1582,9 +1582,9 @@ is_gcj43_usable (const char *source_version, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1670,7 +1670,7 @@ is_oldgcj_14_14_usable (bool *usablep) return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet ("1.4"))) { @@ -1680,7 +1680,7 @@ is_oldgcj_14_14_usable (bool *usablep) } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1727,7 +1727,7 @@ is_oldgcj_14_13_usable (bool *usablep, bool *need_no_assert_option_p) return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet ("1.3"))) { @@ -1737,7 +1737,7 @@ is_oldgcj_14_13_usable (bool *usablep, bool *need_no_assert_option_p) } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1793,7 +1793,7 @@ is_javac_present (void) argv[0] = "javac"; argv[1] = NULL; exitstatus = execute ("javac", "javac", argv, false, false, true, true, - true, false); + true, false, NULL); javac_present = (exitstatus == 0 || exitstatus == 1 || exitstatus == 2); javac_tested = true; } @@ -1835,7 +1835,7 @@ is_javac_usable (const char *source_version, const char *target_version, return true; conftest_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.java", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL); if (write_temp_file (tmpdir, conftest_file_name, get_goodcode_snippet (source_version))) { @@ -1845,7 +1845,7 @@ is_javac_usable (const char *source_version, const char *target_version, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, "conftest.class", NULL); + xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1878,9 +1878,9 @@ is_javac_usable (const char *source_version, const char *target_version, free (conftest_file_name); conftest_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, failcode)) { free (conftest_file_name); @@ -1889,9 +1889,9 @@ is_javac_usable (const char *source_version, const char *target_version, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -1959,9 +1959,9 @@ is_javac_usable (const char *source_version, const char *target_version, free (conftest_file_name); conftest_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.java", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.java", + NULL); if (write_temp_file (tmpdir, conftest_file_name, failcode)) { @@ -1971,9 +1971,9 @@ is_javac_usable (const char *source_version, const char *target_version, } compiled_file_name = - concatenated_pathname (tmpdir->dir_name, - "conftestfail.class", - NULL); + xconcatenated_filename (tmpdir->dir_name, + "conftestfail.class", + NULL); register_temp_file (tmpdir, compiled_file_name); java_sources[0] = conftest_file_name; @@ -2057,7 +2057,7 @@ is_jikes_present (void) argv[0] = "jikes"; argv[1] = NULL; exitstatus = execute ("jikes", "jikes", argv, false, false, true, true, - true, false); + true, false, NULL); jikes_present = (exitstatus == 0 || exitstatus == 1); jikes_tested = true; }