Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
9fef1fe3
Commit
9fef1fe3
authored
Apr 12, 2002
by
Anthony Green
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add --extdirs support.
From-SVN: r52227
parent
395cb211
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
183 additions
and
20 deletions
+183
-20
gcc/java/ChangeLog
+28
-0
gcc/java/Make-lang.in
+2
-1
gcc/java/gcj.texi
+10
-1
gcc/java/gjavah.c
+19
-12
gcc/java/jcf-dump.c
+10
-3
gcc/java/jcf-path.c
+105
-3
gcc/java/jcf.h
+1
-0
gcc/java/jvspec.c
+1
-0
gcc/java/lang.c
+7
-0
No files found.
gcc/java/ChangeLog
View file @
9fef1fe3
2002-04-10 Andreas Jaeger <aj@suse.de>
* gcj.texi (Input Options): Fix extdirs patch.
2002-04-10 Anthony Green <green@redhat.com>
* jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
2002-04-09 Anthony Green <green@redhat.com>
* gcj.texi (Input Options): Add --extdirs documentation.
* jcf-dump.c (OPT_extdirs): New macro.
(options): Add extdirs option.
(help): Describe --extdirs.
(main): Handle OPT_extdirs.
* gjavah.c (OPT_extdirs): New macro.
(options): Add extdirs option.
(help): Describe --extdirs.
(main): Handle OPT_extdirs.
* jcf-path.c (jcf_path_init): Add extdirs support.
(jcf_path_extdirs_arg): New function.
(extensions): New variable to hold extensions path entries.
* jvspec.c: Remove -fextdirs= when compiling main().
* lang.c (java_decode_option): Handle -fextdirs=.
* jcf.h (jcf_path_extdirs_arg): Declare new function.
* Make-lang.in: Compile jcf-path with version info for use in
identifying the appropriate libgcj.jar.
2002-04-08 Tom Tromey <tromey@redhat.com>
For PR libgcj/5303:
...
...
gcc/java/Make-lang.in
View file @
9fef1fe3
...
...
@@ -315,7 +315,8 @@ java/jcf-io.o: java/jcf-io.c $(CONFIG_H) $(SYSTEM_H) $(JAVA_TREE_H)
# jcf-path.o needs a -D.
java/jcf-path.o
:
java/jcf-path.c $(CONFIG_H) $(SYSTEM_H) java/jcf.h
$(CC)
-c
$(ALL_CFLAGS)
$(ALL_CPPFLAGS)
$(INCLUDES)
\
-DLIBGCJ_ZIP_FILE
=
'"
$(prefix)
/share/libgcj.jar"'
\
-DLIBGCJ_ZIP_FILE
=
'"
$(prefix)
/share/java/libgcj-
$(version)
.jar"'
\
-DDEFAULT_TARGET_VERSION
=
\"
$(version)
\"
\
$(srcdir)
/java/jcf-path.c
$(OUTPUT_OPTION)
# Documentation
...
...
gcc/java/gcj.texi
View file @
9fef1fe3
...
...
@@ -257,6 +257,10 @@ Deprecated synonym for @code{--classpath}.
@
item
--
bootclasspath
=@
var
{
path
}
Where
to
find
the
standard
builtin
classes
,
such
as
@
code
{
java
.
lang
.
String
}.
@
item
--
extdirs
=@
var
{
path
}
For
each
directory
in
the
@
var
{
path
},
place
the
contents
of
that
directory
at
the
end
of
the
class
path
.
@
item
CLASSPATH
This
is
an
environment
variable
which
holds
a
list
of
paths
.
@
end
table
...
...
@@ -274,8 +278,13 @@ then its value is appended.
Otherwise
,
the
current
directory
(@
code
{
"."
})
is
appended
.
@
item
Finally
,
i
f
@
code
{--
bootclasspath
}
was
specified
,
append
its
value
.
I
f
@
code
{--
bootclasspath
}
was
specified
,
append
its
value
.
Otherwise
,
append
the
built
-
in
system
directory
,
@
file
{
libgcj
.
jar
}.
@
item
Finaly
,
if
@
code
{--
extdirs
}
was
specified
,
append
the
contents
of
the
specified
directories
at
the
end
of
the
class
path
.
Otherwise
,
append
the
contents
of
the
built
-
in
extdirs
at
@
code
{$(
prefix
)/
share
/
java
/
ext
}.
@
end
itemize
The
classfile
built
by
@
command
{
gcj
}
for
the
class
@
code
{
java
.
lang
.
Object
}
...
...
gcc/java/gjavah.c
View file @
9fef1fe3
...
...
@@ -2104,23 +2104,25 @@ DEFUN(process_file, (jcf, out),
#define OPT_classpath LONG_OPT (0)
#define OPT_CLASSPATH OPT_classpath
#define OPT_bootclasspath LONG_OPT (1)
#define OPT_HELP LONG_OPT (2)
#define OPT_TEMP LONG_OPT (3)
#define OPT_VERSION LONG_OPT (4)
#define OPT_PREPEND LONG_OPT (5)
#define OPT_FRIEND LONG_OPT (6)
#define OPT_ADD LONG_OPT (7)
#define OPT_APPEND LONG_OPT (8)
#define OPT_M LONG_OPT (9)
#define OPT_MM LONG_OPT (10)
#define OPT_MG LONG_OPT (11)
#define OPT_MD LONG_OPT (12)
#define OPT_MMD LONG_OPT (13)
#define OPT_extdirs LONG_OPT (2)
#define OPT_HELP LONG_OPT (3)
#define OPT_TEMP LONG_OPT (4)
#define OPT_VERSION LONG_OPT (5)
#define OPT_PREPEND LONG_OPT (6)
#define OPT_FRIEND LONG_OPT (7)
#define OPT_ADD LONG_OPT (8)
#define OPT_APPEND LONG_OPT (9)
#define OPT_M LONG_OPT (10)
#define OPT_MM LONG_OPT (11)
#define OPT_MG LONG_OPT (12)
#define OPT_MD LONG_OPT (13)
#define OPT_MMD LONG_OPT (14)
static
const
struct
option
options
[]
=
{
{
"classpath"
,
required_argument
,
NULL
,
OPT_classpath
},
{
"bootclasspath"
,
required_argument
,
NULL
,
OPT_bootclasspath
},
{
"extdirs"
,
required_argument
,
NULL
,
OPT_extdirs
},
{
"CLASSPATH"
,
required_argument
,
NULL
,
OPT_CLASSPATH
},
{
"help"
,
no_argument
,
NULL
,
OPT_HELP
},
{
"stubs"
,
no_argument
,
&
stubs
,
1
},
...
...
@@ -2163,6 +2165,7 @@ help ()
printf
(
" --classpath PATH Set path to find .class files
\n
"
);
printf
(
" -IDIR Append directory to class path
\n
"
);
printf
(
" --bootclasspath PATH Override built-in class path
\n
"
);
printf
(
" --extdirs PATH Set extensions directory path
\n
"
);
printf
(
" -d DIRECTORY Set output directory name
\n
"
);
printf
(
" -o FILE Set output file name
\n
"
);
printf
(
" -td DIRECTORY Set temporary directory name
\n
"
);
...
...
@@ -2246,6 +2249,10 @@ DEFUN(main, (argc, argv),
jcf_path_bootclasspath_arg
(
optarg
);
break
;
case
OPT_extdirs
:
jcf_path_extdirs_arg
(
optarg
);
break
;
case
OPT_HELP
:
help
();
break
;
...
...
gcc/java/jcf-dump.c
View file @
9fef1fe3
...
...
@@ -776,14 +776,16 @@ DEFUN(process_class, (jcf),
#define OPT_classpath LONG_OPT (0)
#define OPT_CLASSPATH OPT_classpath
#define OPT_bootclasspath LONG_OPT (1)
#define OPT_HELP LONG_OPT (2)
#define OPT_VERSION LONG_OPT (3)
#define OPT_JAVAP LONG_OPT (4)
#define OPT_extdirs LONG_OPT (2)
#define OPT_HELP LONG_OPT (3)
#define OPT_VERSION LONG_OPT (4)
#define OPT_JAVAP LONG_OPT (5)
static
const
struct
option
options
[]
=
{
{
"classpath"
,
required_argument
,
NULL
,
OPT_classpath
},
{
"bootclasspath"
,
required_argument
,
NULL
,
OPT_bootclasspath
},
{
"extdirs"
,
required_argument
,
NULL
,
OPT_extdirs
},
{
"CLASSPATH"
,
required_argument
,
NULL
,
OPT_CLASSPATH
},
{
"help"
,
no_argument
,
NULL
,
OPT_HELP
},
{
"verbose"
,
no_argument
,
NULL
,
'v'
},
...
...
@@ -811,6 +813,7 @@ help ()
printf
(
" --classpath PATH Set path to find .class files
\n
"
);
printf
(
" -IDIR Append directory to class path
\n
"
);
printf
(
" --bootclasspath PATH Override built-in class path
\n
"
);
printf
(
" --extdirs PATH Set extensions directory path
\n
"
);
printf
(
" -o FILE Set output file name
\n
"
);
printf
(
"
\n
"
);
printf
(
" --help Print this help, then exit
\n
"
);
...
...
@@ -881,6 +884,10 @@ DEFUN(main, (argc, argv),
jcf_path_bootclasspath_arg
(
optarg
);
break
;
case
OPT_extdirs
:
jcf_path_extdirs_arg
(
optarg
);
break
;
case
OPT_HELP
:
help
();
break
;
...
...
gcc/java/jcf-path.c
View file @
9fef1fe3
...
...
@@ -26,6 +26,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "config.h"
#include "system.h"
#include <dirent.h>
#include "jcf.h"
/* Some boilerplate that really belongs in a header. */
...
...
@@ -74,6 +76,7 @@ static void add_path PARAMS ((struct entry **, const char *, int));
-classpath option overrides $CLASSPATH
-CLASSPATH option is a synonym for -classpath (for compatibility)
-bootclasspath overrides built-in
-extdirs sets the extensions directory path (overrides built-in)
-I prepends path to list
We implement this by keeping several path lists, and then simply
...
...
@@ -92,6 +95,9 @@ static struct entry *classpath_user;
"system" flag set. */
static
struct
entry
*
sys_dirs
;
/* This holds the extensions path entries. */
static
struct
entry
*
extensions
;
/* This is the sealed list. It is just a combination of other lists. */
static
struct
entry
*
sealed
;
...
...
@@ -244,7 +250,7 @@ jcf_path_init ()
try
=
alloca
(
strlen
(
cp
)
+
50
);
/* The exec prefix can be something like
/usr/local/bin/../lib/gcc-lib/. We want to change this
into a pointer to the share directory. We support two
into a pointer to the share
/java
directory. We support two
configurations: one where prefix and exec-prefix are the
same, and one where exec-prefix is `prefix/SOMETHING'. */
strcpy
(
try
,
cp
);
...
...
@@ -256,11 +262,20 @@ jcf_path_init ()
strcpy
(
try
+
len
,
"share"
);
strcat
(
try
,
sep
);
strcat
(
try
,
"libgcj.jar"
);
strcat
(
try
,
"java"
);
strcat
(
try
,
sep
);
strcat
(
try
,
"libgcj-"
DEFAULT_TARGET_VERSION
".jar"
);
if
(
!
stat
(
try
,
&
stat_b
))
{
add_entry
(
&
sys_dirs
,
try
,
1
);
found
=
1
;
strcpy
(
&
try
[
strlen
(
try
)
-
strlen
(
"libgcj-"
DEFAULT_TARGET_VERSION
".jar"
)],
sep
);
strcat
(
try
,
"ext"
);
strcat
(
try
,
sep
);
if
(
!
stat
(
try
,
&
stat_b
))
jcf_path_extdirs_arg
(
try
);
}
else
{
...
...
@@ -268,18 +283,36 @@ jcf_path_init ()
strcat
(
try
,
sep
);
strcat
(
try
,
"share"
);
strcat
(
try
,
sep
);
strcat
(
try
,
"libgcj.jar"
);
strcat
(
try
,
"java"
);
strcat
(
try
,
sep
);
strcat
(
try
,
"libgcj-"
DEFAULT_TARGET_VERSION
".jar"
);
if
(
!
stat
(
try
,
&
stat_b
))
{
add_entry
(
&
sys_dirs
,
try
,
1
);
found
=
1
;
strcpy
(
&
try
[
strlen
(
try
)
-
strlen
(
"libgcj-"
DEFAULT_TARGET_VERSION
".jar"
)],
sep
);
strcat
(
try
,
"ext"
);
strcat
(
try
,
sep
);
if
(
!
stat
(
try
,
&
stat_b
))
jcf_path_extdirs_arg
(
try
);
}
}
}
if
(
!
found
)
{
/* Desperation: use the installed one. */
char
*
extdirs
;
add_entry
(
&
sys_dirs
,
LIBGCJ_ZIP_FILE
,
1
);
extdirs
=
(
char
*
)
alloca
(
strlen
(
LIBGCJ_ZIP_FILE
));
strcpy
(
extdirs
,
LIBGCJ_ZIP_FILE
);
strcpy
(
&
extdirs
[
strlen
(
LIBGCJ_ZIP_FILE
)
-
strlen
(
"libgcj-"
DEFAULT_TARGET_VERSION
".jar"
)],
"ext"
);
strcat
(
extdirs
,
sep
);
if
(
!
stat
(
extdirs
,
&
stat_b
))
jcf_path_extdirs_arg
(
extdirs
);
}
GET_ENV_PATH_LIST
(
cp
,
"CLASSPATH"
);
...
...
@@ -307,6 +340,73 @@ jcf_path_bootclasspath_arg (path)
add_path
(
&
sys_dirs
,
path
,
1
);
}
/* Call this when -extdirs is seen on the command line.
*/
void
jcf_path_extdirs_arg
(
cp
)
const
char
*
cp
;
{
const
char
*
startp
,
*
endp
;
free_entry
(
&
extensions
);
if
(
cp
)
{
char
*
buf
=
(
char
*
)
alloca
(
strlen
(
cp
)
+
3
);
startp
=
endp
=
cp
;
while
(
1
)
{
if
(
!
*
endp
||
*
endp
==
PATH_SEPARATOR
)
{
if
(
endp
==
startp
)
return
;
strncpy
(
buf
,
startp
,
endp
-
startp
);
buf
[
endp
-
startp
]
=
'\0'
;
{
DIR
*
dirp
=
NULL
;
int
dirname_length
=
strlen
(
buf
);
dirp
=
opendir
(
buf
);
if
(
dirp
==
NULL
)
return
;
for
(;;)
{
struct
dirent
*
direntp
=
readdir
(
dirp
);
if
(
!
direntp
)
break
;
if
(
direntp
->
d_name
[
0
]
!=
'.'
)
{
char
*
name
=
(
char
*
)
alloca
(
dirname_length
+
strlen
(
direntp
->
d_name
)
+
2
);
strcpy
(
name
,
buf
);
if
(
name
[
dirname_length
-
1
]
!=
DIR_SEPARATOR
)
{
name
[
dirname_length
]
=
DIR_SEPARATOR
;
name
[
dirname_length
+
1
]
=
0
;
}
strcat
(
name
,
direntp
->
d_name
);
add_entry
(
&
extensions
,
name
,
0
);
}
}
}
if
(
!
*
endp
)
break
;
++
endp
;
startp
=
endp
;
}
else
++
endp
;
}
}
}
/* Call this when -I is seen on the command line. */
void
jcf_path_include_arg
(
path
)
...
...
@@ -347,7 +447,9 @@ jcf_path_seal (print)
append_entry
(
&
sealed
,
secondary
);
append_entry
(
&
sealed
,
sys_dirs
);
append_entry
(
&
sealed
,
extensions
);
sys_dirs
=
NULL
;
extensions
=
NULL
;
if
(
print
)
{
...
...
gcc/java/jcf.h
View file @
9fef1fe3
...
...
@@ -273,6 +273,7 @@ extern void jcf_dependency_print_dummies PARAMS ((void));
extern
void
jcf_path_init
PARAMS
((
void
));
extern
void
jcf_path_classpath_arg
PARAMS
((
const
char
*
));
extern
void
jcf_path_bootclasspath_arg
PARAMS
((
const
char
*
));
extern
void
jcf_path_extdirs_arg
PARAMS
((
const
char
*
));
extern
void
jcf_path_include_arg
PARAMS
((
const
char
*
));
extern
void
jcf_path_seal
PARAMS
((
int
));
extern
void
*
jcf_path_start
PARAMS
((
void
));
...
...
gcc/java/jvspec.c
View file @
9fef1fe3
...
...
@@ -68,6 +68,7 @@ static const char jvgenmain_spec[] =
%{<findirect-dispatch} \
%{<fno-store-check} %{<foutput-class-dir}\
%{<fclasspath*} %{<fCLASSPATH*} %{<fbootclasspath*}\
%{<fextdirs*}\
%{<fuse-divide-subroutine} %{<fno-use-divide-subroutine}\
%{<fcheck-references} %{<fno-check-references}\
%{<ffilelist-file}\
...
...
gcc/java/lang.c
View file @
9fef1fe3
...
...
@@ -360,6 +360,13 @@ java_decode_option (argc, argv)
return
1
;
}
#undef CLARG
#define CLARG "-fextdirs="
if
(
strncmp
(
p
,
CLARG
,
sizeof
(
CLARG
)
-
1
)
==
0
)
{
jcf_path_extdirs_arg
(
p
+
sizeof
(
CLARG
)
-
1
);
return
1
;
}
#undef CLARG
else
if
(
strncmp
(
p
,
"-I"
,
2
)
==
0
)
{
jcf_path_include_arg
(
p
+
2
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment