diff options
author | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-12 20:36:22 +0000 |
---|---|---|
committer | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-12 20:36:22 +0000 |
commit | e6d8e09b053d672669aca1be0dd466c06605e662 (patch) | |
tree | a587c099c78feb50efa9b68cae3c6c15fed6d69a /gcc/java | |
parent | f5d9353e41cd14f0e5fbb101ca48182433d7ed30 (diff) | |
download | gcc-e6d8e09b053d672669aca1be0dd466c06605e662.tar.gz |
Revert Rainer Orth's Java and gcc.c patch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44834 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/java/jvgenmain.c | 13 | ||||
-rw-r--r-- | gcc/java/jvspec.c | 18 |
3 files changed, 22 insertions, 22 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 0356cb7a2af..4dd5132af96 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,16 @@ +2001-08-12 David Edelsohn <edelsohn@gnu.org> + + Revert: + 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks + ASM_FINAL_SPEC. + (lang_specific_pre_link): Use set_input to set input_filename. + Append `main' here. + * jvgenmain.c (usage): Append literal `main' to CLASSNAME. + (main): Fix definition. + Strip `main' from classname. + Fixes PR java/227. + 2001-08-11 Zack Weinberg <zackw@panix.com> * lex.h: Don't include setjmp.h. Don't define diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c index 9a425715066..ab43ddda3f9 100644 --- a/gcc/java/jvgenmain.c +++ b/gcc/java/jvgenmain.c @@ -61,14 +61,14 @@ static void usage (const char *) ATTRIBUTE_NORETURN; static void usage (const char *name) { - fprintf (stderr, "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n", name); + fprintf (stderr, "Usage: %s [OPTIONS]... CLASSNAME [OUTFILE]\n", name); exit (1); } int -main (int argc, char **argv) +main (int argc, const char **argv) { - char *classname, *p; + const char *classname; FILE *stream; const char *mangled_classname; int i, last_arg; @@ -92,13 +92,6 @@ main (int argc, char **argv) classname = argv[i]; - /* gcj always appends `main' to classname. We need to strip this here. */ - p = strrchr (classname, 'm'); - if (p == NULL || p == classname || strcmp (p, "main") != 0) - usage (argv[0]); - else - *p = '\0'; - gcc_obstack_init (mangle_obstack); mangled_classname = do_mangle_classname (classname); diff --git a/gcc/java/jvspec.c b/gcc/java/jvspec.c index 761c580310d..44342cf401a 100644 --- a/gcc/java/jvspec.c +++ b/gcc/java/jvspec.c @@ -52,8 +52,8 @@ int lang_specific_extra_outfiles = 0; int shared_libgcc = 1; const char jvgenmain_spec[] = - "jvgenmain %{D*} %b %{!pipe:%u.i} |\n\ - cc1 %{!pipe:%U.i} %1 \ + "jvgenmain %{D*} %i %{!pipe:%umain.i} |\n\ + cc1 %{!pipe:%Umain.i} %1 \ %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\ %{g*} %{O*} \ %{v:-version} %{pg:-p} %{p}\ @@ -68,8 +68,8 @@ const char jvgenmain_spec[] = %{f*} -fdollars-in-identifiers\ %{aux-info*}\ %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ - %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%U.s}} |\n\ - %{!S:as %a %Y -o %d%w%u%O %{!pipe:%U.s} %A\n }"; + %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%Umain.s}} |\n\ + %{!S:as %a %Y -o %d%w%umain%O %{!pipe:%Umain.s} %A\n }"; /* Return full path name of spec file if it is in DIR, or NULL if not. */ @@ -529,14 +529,8 @@ lang_specific_pre_link () int err; if (main_class_name == NULL) return 0; - /* Append `main' to make the filename unique and allow - - gcj --main=hello -save-temps hello.java - - to work. jvgenmain needs to strip this `main' to arrive at the correct - class name. Append dummy `.c' that can be stripped by set_input so %b - is correct. */ - set_input (concat (main_class_name, "main.c", NULL)); + input_filename = main_class_name; + input_filename_length = strlen (main_class_name); err = do_spec (jvgenmain_spec); if (err == 0) { |