Add support for target specific, language specific object files.

From-SVN: r37726
This commit is contained in:
Nick Clifton 2000-11-25 00:33:04 +00:00 committed by Nick Clifton
parent 0a534f40cc
commit aac69a49c9
7 changed files with 315 additions and 249 deletions

View File

@ -1,3 +1,28 @@
2000-11-24 Nick Clifton <nickc@redhat.com>
* config.gcc (extra_objs): Remove duplicate description.
(c_target_objs): New variable. Contains target specific
object files for the gcc C compiler only.
(cxx_target_objs): New variable. Contains target specific
object files for the gxx C++ compiler only.
* configure.in (c_target_objs): Substitute in the makefile.
(cxx_target_objs): Substitute in the makefile.
* configure: Regenerate.
* Makefile.in (C_TARGET_OBJS): Define and initialise from
c_target_objs.
(CXX_TARGET_OBJS): Define and initialise from
cxx_target_objs.
(C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
* cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
* tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
about how the use of the 'c_lex' function requires the use of
the target specific, language specific object files feature of
the configuration mechanism.
Fri Nov 24 18:50:58 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.c (process_command): Use F_OK, not R_OK.

View File

@ -713,9 +713,16 @@ SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \
#
# Lists of files for various purposes.
# Target specific, C specific object file
C_TARGET_OBJS=@c_target_objs@
# Target specific, C++ specific object file
CXX_TARGET_OBJS=@cxx_target_objs@
# Language-specific object files for C and Objective C.
C_AND_OBJC_OBJS = c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
c-convert.o c-aux-info.o c-common.o c-semantics.o c-dump.o $(MAYBE_CPPLIB)
c-convert.o c-aux-info.o c-common.o c-semantics.o c-dump.o $(MAYBE_CPPLIB) \
$(C_TARGET_OBJS)
# Language-specific object files for C.
C_OBJS = c-parse.o c-lang.o $(C_AND_OBJC_OBJS)

View File

@ -87,12 +87,15 @@
# host_extra_objs List of extra host-dependant objects that should
# be linked into the compiler proper.
#
# extra_objs List of extra target-dependant objects that should
# be linked into the compiler proper.
#
# host_extra_gcc_objs List of extra host-dependant objects that should
# be linked into the gcc driver.
#
# c_target_objs List of extra target-dependant objects that be
# linked into the C compiler only.
#
# cxx_target_objs List of extra target-dependant objects that be
# linked into the C++ compiler only.
#
# build_xm_defines List of macros to define when compiling for the
# build machine.
#
@ -171,6 +174,8 @@ extra_programs=
extra_objs=
extra_host_objs=
extra_gcc_objs=
c_target_objs=
cxx_target_objs=
xm_defines=
float_format=
# Set this to force installation and use of collect2.

495
gcc/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1862,6 +1862,8 @@ AC_SUBST(symbolic_link)
AC_SUBST(thread_file)
AC_SUBST(tm_file_list)
AC_SUBST(will_use_collect2)
AC_SUBST(c_target_objs)
AC_SUBST(cxx_target_objs)
AC_SUBST_FILE(target_overrides)

View File

@ -90,7 +90,7 @@ $(DEMANGLER_PROG): cxxmain.o underscore.o $(LIBDEPS)
# The compiler itself.
# Shared with C front end:
CXX_C_OBJS = c-common.o c-pragma.o c-semantics.o c-lex.o c-dump.o
CXX_C_OBJS = c-common.o c-pragma.o c-semantics.o c-lex.o c-dump.o $(CXX_TARGET_OBJS)
# Language-specific object files.
CXX_OBJS = cp/call.o cp/decl.o cp/errfn.o cp/expr.o cp/pt.o cp/typeck2.o \

View File

@ -7905,6 +7905,18 @@ Note that both @var{space} and @var{name} are case sensitive.
For an example use of this routine, see @file{c4x.h} and the callback
routines defined in @file{c4x.c}.
Note that the use of @code{c_lex} is specific to the C and C++
compilers. It will not work in the Java or Fortran compilers, or any
other language compilers for that matter. Thus if @code{c_lex} is going
to be called from target-specific code, it must only be done so when
building hte C and C++ compilers. This can be done by defining the
variables @code{c_target_objs} and @code{cxx_target_objs} in the
target entry in the @code{config.gcc} file. These variables should name
the target-specific, language-specific object file which contains the
code that uses @code{c_lex}. Note it will also be necessary to add a
rule to the makefile fragment pointed to by @code{tmake_file} that shows
how to build this object file.
@end deftypefun
@deftypefun void cpp_register_pragma_space (cpp_reader *@var{pfile}, const char *@var{space})