This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

doc/install.texi addition and marking cleanup


Untested, but makeinfo doesn't barf and produces an info file that
looks reasonable. I'll give a try at foolproof read it once Gerald
installs the stuff to build an ASCII file from it :).

Note that at a few place it is suggested that LANGUAGES="xxx yyy"
is no longer supported, but at one place there is still
a LANGUAGE="c c++" example which might need fixing:

  Now that GCC has been built and tested, you can install it with
! @samp{cd @emph{objdir}; make install} for a native compiler or
! @samp{cd @emph{objdir}; make install LANGUAGES="c c++"} for 
  a cross compiler (note installing cross compilers will be easier in the 
  next release!).

2001-05-24  Laurent Guerby  <guerby@acm.org>

	* doc/install.texi: define srcdir when sources come from CVS,
        use better marking.

Index: install.texi
===================================================================
RCS file: /cvs/gcc/egcs/gcc/doc/install.texi,v
retrieving revision 1.8
diff -c -3 -p -r1.8 install.texi
*** install.texi	2001/05/28 07:55:13	1.8
--- install.texi	2001/05/30 20:25:49
*************** The installation procedure itself is bro
*** 146,152 ****
  @end enumerate
  @end ifnotinfo
  
! Please note that GCC does not support `@code{make uninstall}' and probably
  won't do so in the near future as this would open a can of worms. Instead, 
  we suggest that you install GCC into a directory of its own and simply
  remove that directory when you do not need that specific version of GCC any longer. 
--- 146,152 ----
  @end enumerate
  @end ifnotinfo
  
! Please note that GCC does not support @samp{make uninstall} and probably
  won't do so in the near future as this would open a can of worms. Instead, 
  we suggest that you install GCC into a directory of its own and simply
  remove that directory when you do not need that specific version of GCC any longer. 
*************** Like most GNU software, GCC must be conf
*** 232,276 ****
  This document describes the recommended configuration procedure
  for both native and cross targets.
  
! We use @emph{srcdir} to refer to the toplevel source directory for
! GCC; we use @emph{objdir} to refer to the toplevel build/object directory.
  
  First, we @strong{highly} recommend that GCC be built into a
  separate directory than the sources which does @strong{not} reside
  within the source tree.  This is how we generally build GCC; building
! where @emph{srcdir} == @emph{objdir} should still work, but doesn't
! get extensive testing; building where @emph{objdir} is a subdirectory
! of @emph{srcdir} is unsupported.
  
! Second, when configuring a native system, either ``@command{cc}'' or
! ``@command{gcc}'' must be in your path or you must set @command{CC} in
  your environment before running configure.  Otherwise the configuration
  scripts may fail.
  
  To configure GCC:
  
  @example
!    % mkdir @emph{objdir}
!    % cd @emph{objdir}
!    % @emph{srcdir}/configure @strong{[target] [options]}
  @end example
  
  
  @strong{target specification}
  @itemize @bullet
  @item
! GCC has code to correctly determine the correct value for @strong{target}
  for nearly all native systems.  Therefore, we highly recommend you not 
  provide a configure target when configuring a native compiler.
  
  @item
! @strong{target} must be specified as @option{--target=}@emph{target}
  when configuring a cross compiler; examples of valid targets would be 
  i960-rtems, m68k-coff, sh-elf, etc.
  
  @item
! Specifying just @strong{target} instead of @option{--target=}@emph{target}
! implies that the host defaults to @strong{target}.
  @end itemize
  
  
--- 232,280 ----
  This document describes the recommended configuration procedure
  for both native and cross targets.
  
! We use @var{srcdir} to refer to the toplevel source directory for
! GCC; we use @var{objdir} to refer to the toplevel build/object directory.
  
+ If you obtained the sources via CVS, @var{srcdir} must refer to the top
+ @file{gcc} directory, the one where the @file{MAINTAINER} can be found,
+ and not its @file{gcc} subdirectory, otherwise the build will fail.
+ 
  First, we @strong{highly} recommend that GCC be built into a
  separate directory than the sources which does @strong{not} reside
  within the source tree.  This is how we generally build GCC; building
! where @var{srcdir} == @var{objdir} should still work, but doesn't
! get extensive testing; building where @var{objdir} is a subdirectory
! of @var{srcdir} is unsupported.
  
! Second, when configuring a native system, either @command{cc} or
! @command{gcc} must be in your path or you must set @env{CC} in
  your environment before running configure.  Otherwise the configuration
  scripts may fail.
  
  To configure GCC:
  
  @example
!    % mkdir @var{objdir}
!    % cd @var{objdir}
!    % @var{srcdir}/configure @strong{[target] [options]}
  @end example
  
  
  @strong{target specification}
  @itemize @bullet
  @item
! GCC has code to correctly determine the correct value for @var{target}
  for nearly all native systems.  Therefore, we highly recommend you not 
  provide a configure target when configuring a native compiler.
  
  @item
! @var{target} must be specified as @option{--target=}@var{target}
  when configuring a cross compiler; examples of valid targets would be 
  i960-rtems, m68k-coff, sh-elf, etc.
  
  @item
! Specifying just @var{target} instead of @option{--target=}@var{target}
! implies that the host defaults to @var{target}.
  @end itemize
  
  
*************** GCC.  A partial list of supported @optio
*** 281,303 ****
  
  @itemize @bullet
  @item
! @option{--prefix=}@emph{dirname} @minus{}@minus{} Specify the toplevel installation
  directory.  This is the recommended way to install the tools into a directory
  other than the default.  The toplevel installation directory defaults to
  @code{/usr/local}.
  
! We @strong{highly} recommend against @emph{dirname} being the same or a
! subdirectory of @emph{objdir} or vice versa.
  
  These additional options control where certain parts of the distribution
  are installed.  Normally you should not need to use these options.
  @itemize @bullet
  @item
! @option{--with-local-prefix=}@emph{dirname} @minus{}@minus{} Specify the installation
  directory for local include files.  The default is @code{/usr/local}.
  
  @item
! @option{--with-gxx-include-dir=}@emph{dirname} @minus{}@minus{} Specify the installation
  directory for g++ header files.  The default is @command{/usr/local/include/g++}.
    
  @end itemize
--- 285,307 ----
  
  @itemize @bullet
  @item
! @option{--prefix=}@var{dirname} @minus{}@minus{} Specify the toplevel installation
  directory.  This is the recommended way to install the tools into a directory
  other than the default.  The toplevel installation directory defaults to
  @code{/usr/local}.
  
! We @strong{highly} recommend against @var{dirname} being the same or a
! subdirectory of @var{objdir} or vice versa.
  
  These additional options control where certain parts of the distribution
  are installed.  Normally you should not need to use these options.
  @itemize @bullet
  @item
! @option{--with-local-prefix=}@var{dirname} @minus{}@minus{} Specify the installation
  directory for local include files.  The default is @code{/usr/local}.
  
  @item
! @option{--with-gxx-include-dir=}@var{dirname} @minus{}@minus{} Specify the installation
  directory for g++ header files.  The default is @command{/usr/local/include/g++}.
    
  @end itemize
*************** libraries were the default on all system
*** 313,334 ****
  assembler it finds is the GNU assembler. However, this does not modify the rules to find an
  assembler and will result in confusion if found assembler is not actually the GNU assembler.
  If you have more than one assembler installed on your system, you may want to use this option
! in connection with @option{--with-as=/path/to/gas}.
  
  @item
! @option{--with-as=@emph{/path/to/as}} @minus{}@minus{} Specify that the compiler should use the
! assembler pointed to by @emph{pathname}, rather than the one found by the standard rules to
  find an assembler, which are:
  @itemize @bullet
  @item
! Check the @emph{$exec_prefix/lib/gcc-lib/$target/$version} directory, where @emph{$exec_prefix}
! defaults to @emph{$prefix} which defaults to @file{/usr/local} unless overridden by the 
! @option{--prefix=/pathname} switch described above. @emph{$target} is the target system triple, 
! such as @emph{sparc-sun-solaris2.7}, and @emph{$version} denotes the GCC version, such as 2.95.2.
  @item
  Check operating system specific directories (e.g. @file{/usr/ccs/bin} on Sun Solaris).
  @end itemize
! Note that these rules do not check for the value of @emph{$PATH}. You may want to use 
  @option{--with-as} if no assembler is installed in the directories listed above, or if you have
  multiple assemblers installed and want to choose one that is not found by the above rules.
  
--- 317,338 ----
  assembler it finds is the GNU assembler. However, this does not modify the rules to find an
  assembler and will result in confusion if found assembler is not actually the GNU assembler.
  If you have more than one assembler installed on your system, you may want to use this option
! in connection with @option{--with-as=@file{/path/to/gas}}.
  
  @item
! @option{--with-as=@file{/path/to/as}} @minus{}@minus{} Specify that the compiler should use the
! assembler pointed to by @var{pathname}, rather than the one found by the standard rules to
  find an assembler, which are:
  @itemize @bullet
  @item
! Check the @file{@var{exec_prefix}/lib/gcc-lib/@var{target}/@var{version}} directory, where @var{exec_prefix}
! defaults to @var{prefix} which defaults to @file{/usr/local} unless overridden by the 
! @option{--prefix=/pathname} switch described above. @var{target} is the target system triple, 
! such as @var{sparc-sun-solaris2.7}, and @var{version} denotes the GCC version, such as 2.95.2.
  @item
  Check operating system specific directories (e.g. @file{/usr/ccs/bin} on Sun Solaris).
  @end itemize
! Note that these rules do not check for the value of @env{PATH}. You may want to use 
  @option{--with-as} if no assembler is installed in the directories listed above, or if you have
  multiple assemblers installed and want to choose one that is not found by the above rules.
  
*************** multiple assemblers installed and want t
*** 336,342 ****
  @option{--with-gnu-ld} @minus{}@minus{} Same as @option{--with-gnu-as} but for linker. 
  
  @item
! @option{--with-ld=@emph{/path/to/ld}} @minus{}@minus{} Same as @option{--with-as}, but for the
  linker.
  
  @item
--- 340,346 ----
  @option{--with-gnu-ld} @minus{}@minus{} Same as @option{--with-gnu-as} but for linker. 
  
  @item
! @option{--with-ld=@file{/path/to/ld}} @minus{}@minus{} Same as @option{--with-as}, but for the
  linker.
  
  @item
*************** This affects the Objective-C compiler an
*** 355,366 ****
  handling for other languages like C++ and Java.
  
  @item
! @option{--enable-threads=}@emph{lib} @minus{}@minus{} Specify that @emph{lib} is the thread
  support library.  This affects the Objective-C compiler and runtime library,
  and exception handling for other languages like C++ and Java.
  
  @item
! @option{--with-cpu=}@emph{cpu} @minus{}@minus{} Specify which cpu variant the
  compiler should generate code for by default.  This is currently
  only supported on the some ports, specifically arm, powerpc, and
  SPARC. If configure does not recognize the model name (e.g. arm700,
--- 359,370 ----
  handling for other languages like C++ and Java.
  
  @item
! @option{--enable-threads=}@var{lib} @minus{}@minus{} Specify that @var{lib} is the thread
  support library.  This affects the Objective-C compiler and runtime library,
  and exception handling for other languages like C++ and Java.
  
  @item
! @option{--with-cpu=}@var{cpu} @minus{}@minus{} Specify which cpu variant the
  compiler should generate code for by default.  This is currently
  only supported on the some ports, specifically arm, powerpc, and
  SPARC. If configure does not recognize the model name (e.g. arm700,
*************** newer releases will default to the fast 
*** 392,418 ****
  @item
  @option{--enable-version-specific-runtime-libs} @minus{}@minus{} Specify that runtime
  libraries should be installed in the compiler specific subdirectory
! (@option{$@{libsubdir@}}) rather than the usual places.
  In addition, libstdc++'s include files will be installed in
! @option{$@{libsubdir@}/include/g++} unless you overruled it by using
! @option{--with-gxx-include-dir=}@emph{dirname}.
  Using this option is particularly useful if you intend to use several
  versions of GCC in parallel. This is currently supported by @option{libf2c}
  and @option{libstdc++}.
  
  @item
! @option{--enable-languages=}@emph{lang1}@option{,}@emph{lang2}@option{,...}
  @minus{}@minus{} Specify that only a particular subset of compilers and their runtime libraries
! should be built. For a list of valid values for @emph{lang}@option{x} you can issue
! the following command in the @option{gcc} directory of your GCC source tree:@*
! @command{grep language= */config-lang.in}@*
  Currently, you can use any of the following: @code{c++}, @code{f77}, @code{java} and @code{objc}.
  @code{CHILL} is not currently maintained, and will almost
  certainly fail to compile.  Note that this switch does not work with
  EGCS 1.1.2 or older versions of egcs.  It is supported in GCC 2.95
  and newer versions.@*
! If you do not pass this flag, all languages available in the @code{gcc} sub-tree
! will be configured.  Re-defining LANGUAGES when calling @command{make bootstrap}
  @strong{*does not*} work anymore, as those language sub-directories might not have been
  configured!
  
--- 396,422 ----
  @item
  @option{--enable-version-specific-runtime-libs} @minus{}@minus{} Specify that runtime
  libraries should be installed in the compiler specific subdirectory
! (@file{@var{libsubdir}}) rather than the usual places.
  In addition, libstdc++'s include files will be installed in
! @file{@var{libsubdir}/include/g++} unless you overruled it by using
! @option{--with-gxx-include-dir=}@var{dirname}.
  Using this option is particularly useful if you intend to use several
  versions of GCC in parallel. This is currently supported by @option{libf2c}
  and @option{libstdc++}.
  
  @item
! @option{--enable-languages=}@var{lang1}@option{,}@var{lang2}@option{,...}
  @minus{}@minus{} Specify that only a particular subset of compilers and their runtime libraries
! should be built. For a list of valid values for @var{lang}@option{x} you can issue
! the following command in the @file{gcc} directory of your GCC source tree:@*
! @samp{grep language= */config-lang.in}@*
  Currently, you can use any of the following: @code{c++}, @code{f77}, @code{java} and @code{objc}.
  @code{CHILL} is not currently maintained, and will almost
  certainly fail to compile.  Note that this switch does not work with
  EGCS 1.1.2 or older versions of egcs.  It is supported in GCC 2.95
  and newer versions.@*
! If you do not pass this flag, all languages available in the @file{gcc} sub-tree
! will be configured.  Re-defining LANGUAGES when calling @samp{make bootstrap}
  @strong{*does not*} work anymore, as those language sub-directories might not have been
  configured!
  
*************** debugging information as the default.
*** 436,451 ****
  Some options which only apply to building cross compilers:
  @itemize @bullet
  @item
! @option{--with-headers=}@emph{dir} @minus{}@minus{} Specifies a directory which has
  target include files.
  @emph{This options is required} when building a cross
! compiler, if @code{$@{prefix@}/$@{target@}/sys-include} doesn't pre-exist.
! These include files will be copied into the @code{gcc} install directory.
  Fixincludes will be run on these files to make them compatible with @command{gcc}.
  @item
  @option{--with-libs=}@emph{``dir1 dir2 ... dirN''} @minus{}@minus{} Specifies a list of
  directories which contain the target runtime libraries.  These libraries will
! be copied into the @code{gcc} install directory.
  @item
  @option{--with-newlib} @minus{}@minus{} Specifies that ``newlib'' is being used as the target
  C library.   This causes @code{__eprintf} to be omitted from libgcc.a on the
--- 440,455 ----
  Some options which only apply to building cross compilers:
  @itemize @bullet
  @item
! @option{--with-headers=}@var{dir} @minus{}@minus{} Specifies a directory which has
  target include files.
  @emph{This options is required} when building a cross
! compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist.
! These include files will be copied into the @file{gcc} install directory.
  Fixincludes will be run on these files to make them compatible with @command{gcc}.
  @item
  @option{--with-libs=}@emph{``dir1 dir2 ... dirN''} @minus{}@minus{} Specifies a list of
  directories which contain the target runtime libraries.  These libraries will
! be copied into the @file{gcc} install directory.
  @item
  @option{--with-newlib} @minus{}@minus{} Specifies that ``newlib'' is being used as the target
  C library.   This causes @code{__eprintf} to be omitted from libgcc.a on the
*************** We @strong{highly} recommend that GCC be
*** 485,496 ****
  other versions may work, then again they might not.
  
  (For example, many broken versions of make will fail if you use the
! recommended setup where @emph{objdir} is different from @emph{srcdir}.)
  
  
  @section Building a native compiler
  
! For a native build issue the command `@code{make bootstrap}'.  This 
  will build the entire GCC system, which includes the following steps:
  
  @itemize @bullet
--- 489,500 ----
  other versions may work, then again they might not.
  
  (For example, many broken versions of make will fail if you use the
! recommended setup where @var{objdir} is different from @var{srcdir}.)
  
  
  @section Building a native compiler
  
! For a native build issue the command @samp{make bootstrap}.  This 
  will build the entire GCC system, which includes the following steps:
  
  @itemize @bullet
*************** Build runtime libraries using the stage3
*** 515,539 ****
   
  @end itemize
  
! If you are short on disk space you might consider `@code{make
! bootstrap-lean}' instead.  This is identical to `@code{make
! bootstrap}' except that object files from the stage1 and
  stage2 of the 3-stage bootstrap of the compiler are deleted as
  soon as they are no longer needed.
  
  
  If you want to save additional space during the bootstrap and in
  the final installation as well, you can build the compiler binaries
! without debugging information with ``@code{make CFLAGS='-O' LIBCFLAGS='-g
! -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap}''.  This will save
  roughly 40% of disk space both for the bootstrap and the final installation.
  (Libraries will still contain debugging information.)
  
! If you used the flag @code{--enable-languages=...} to restrict
  the compilers to be built, only those you've actually enabled will be
  built. This will of course only build those runtime libraries, for
  which the particular compiler has been built.  Please note,
! that re-defining LANGUAGES when calling `@code{make bootstrap}'
  @strong{*does not*} work anymore!
  
  
--- 519,543 ----
   
  @end itemize
  
! If you are short on disk space you might consider @samp{make
! bootstrap-lean} instead.  This is identical to @samp{make
! bootstrap} except that object files from the stage1 and
  stage2 of the 3-stage bootstrap of the compiler are deleted as
  soon as they are no longer needed.
  
  
  If you want to save additional space during the bootstrap and in
  the final installation as well, you can build the compiler binaries
! without debugging information with @samp{make CFLAGS='-O' LIBCFLAGS='-g
! -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap}.  This will save
  roughly 40% of disk space both for the bootstrap and the final installation.
  (Libraries will still contain debugging information.)
  
! If you used the flag @option{--enable-languages=...} to restrict
  the compilers to be built, only those you've actually enabled will be
  built. This will of course only build those runtime libraries, for
  which the particular compiler has been built.  Please note,
! that re-defining LANGUAGES when calling @samp{make bootstrap}
  @strong{*does not*} work anymore!
  
  
*************** native compiler.  You can then use the n
*** 552,558 ****
  cross compiler.
  
  Assuming you have already installed a native copy of GCC and configured
! your cross compiler, issue the command `@code{make}', which performs the
  following steps:
  
  @itemize @bullet
--- 556,562 ----
  cross compiler.
  
  Assuming you have already installed a native copy of GCC and configured
! your cross compiler, issue the command @samp{make}, which performs the
  following steps:
  
  @itemize @bullet
*************** Note that if an error occurs in any step
*** 577,585 ****
  
  @section Building in parallel
  
! If you have a multiprocessor system you can use `@code{make bootstrap
! MAKE="make -j 2" -j 2}' or just `@code{make -j 2 bootstrap}'
! for GNU Make 3.79 and above instead of just `@code{make bootstrap}'
  when building GCC.  You can use a bigger number instead of two if
  you like.  In most cases, it won't help to use a number bigger than
  the number of processors in your machine.
--- 581,589 ----
  
  @section Building in parallel
  
! If you have a multiprocessor system you can use @samp{make bootstrap
! MAKE="make -j 2" -j 2} or just @samp{make -j 2 bootstrap}
! for GNU Make 3.79 and above instead of just @samp{make bootstrap}
  when building GCC.  You can use a bigger number instead of two if
  you like.  In most cases, it won't help to use a number bigger than
  the number of processors in your machine.
*************** well as the C++ runtime libraries.
*** 659,665 ****
  @section How can I run the test suite on selected tests?
  
  As a first possibility to cut down the number of tests that are run it is
! possible to use `@code{make check-gcc}' or `@code{make check-g++}'
  in the gcc subdirectory of the object directory. To further cut down the
  tests the following is possible:
  
--- 663,669 ----
  @section How can I run the test suite on selected tests?
  
  As a first possibility to cut down the number of tests that are run it is
! possible to use @samp{make check-gcc} or @samp{make check-g++}
  in the gcc subdirectory of the object directory. To further cut down the
  tests the following is possible:
  
*************** matches 9805*.
*** 679,686 ****
  The *.exp files are located in the testsuite directories of the GCC
  source, the most important ones being compile.exp, execute.exp, dg.exp
  and old-deja.exp. To get a list of the possible *.exp files, pipe the
! output of `@code{make check}' into a file and look at the
! "@code{Running ...  .exp}" lines.
  
  @section How to interpret test results
  
--- 683,690 ----
  The *.exp files are located in the testsuite directories of the GCC
  source, the most important ones being compile.exp, execute.exp, dg.exp
  and old-deja.exp. To get a list of the possible *.exp files, pipe the
! output of @samp{make check} into a file and look at the
! @samp{Running ...  .exp} lines.
  
  @section How to interpret test results
  
*************** should look here first if you think your
*** 749,761 ****
  @end ifnothtml
  
  Now that GCC has been built and tested, you can install it with
! `@command{cd @emph{objdir}; make install}' for a native compiler or
! `@command{cd @emph{objdir}; make install LANGUAGES="c c++"}' for 
  a cross compiler (note installing cross compilers will be easier in the 
  next release!).
  
  That step completes the installation of GCC; user level binaries can
! be found in @code{@emph{prefix}/bin} where @code{@emph{prefix}} is the value you specified
  with the @option{--prefix} to configure (or @file{/usr/local} by default).
  
  If you don't mind, please quickly review the 
--- 753,765 ----
  @end ifnothtml
  
  Now that GCC has been built and tested, you can install it with
! @samp{cd @emph{objdir}; make install} for a native compiler or
! @samp{cd @emph{objdir}; make install LANGUAGES="c c++"} for 
  a cross compiler (note installing cross compilers will be easier in the 
  next release!).
  
  That step completes the installation of GCC; user level binaries can
! be found in @file{@var{prefix}/bin} where @var{prefix} is the value you specified
  with the @option{--prefix} to configure (or @file{/usr/local} by default).
  
  If you don't mind, please quickly review the 
*************** If your system is not listed, send a not
*** 764,770 ****
  @uref{mailto:gcc@@gcc.gnu.org,,gcc@@gcc.gnu.org} indicating
  that you successfully built and installed GCC.
  
! Include the output from running @code{@emph{srcdir}/config.guess}.  (Do not
  send us the config.guess file itself, just the output from running
  it!)
  
--- 768,774 ----
  @uref{mailto:gcc@@gcc.gnu.org,,gcc@@gcc.gnu.org} indicating
  that you successfully built and installed GCC.
  
! Include the output from running @file{@var{srcdir}/config.guess}.  (Do not
  send us the config.guess file itself, just the output from running
  it!)
  
*************** the least of which is incorrect linking 
*** 981,987 ****
  @end html
  
  If you install a shared libstdc++ and, when you link a non-trivial C++
! program (for example, @code{gcc/testsuite/g++.other/delete3.C}),
  the linker reports a couple of errors about multiply-defined symbols
  (for example, @code{nothrow}, @code{__throw} and
  @code{terminate(void)}), you've probably got a linker bug, for
--- 985,991 ----
  @end html
  
  If you install a shared libstdc++ and, when you link a non-trivial C++
! program (for example, @file{gcc/testsuite/g++.other/delete3.C}),
  the linker reports a couple of errors about multiply-defined symbols
  (for example, @code{nothrow}, @code{__throw} and
  @code{terminate(void)}), you've probably got a linker bug, for
*************** will have to be relinked.
*** 1001,1024 ****
  
  The magic spell is to add @code{-Wl,-all,-lgcc,-none} to the
  definition of macro @code{SHDEPS} in
! @code{libstdc++/config/dec-osf.ml} @emph{before}
! @code{alpha*-dec-osf*/libstdc++/Makefile} is created (a 
  @uref{dec-osf-shlibstdc++.patch,,patch} 
  that does just that is available).  If the Makefile already exists, run
! @code{./config.status} within directory
! @code{alpha*-dec-osf*/libstdc++} (and
! @code{alpha*-dec-osf*/ieee/libstdc++}, if it also exists).
! Remove any existing @code{libstdc++.so*} from such directories,
! and run @code{make all-target-libstdc++} in the top-level
! directory, then @code{make install-target-libstdc++}.
  
  If you have already removed the build tree, you may just remove
! @code{libstdc++.so.2.10.0} from the install tree and re-create
  it with the command 
! @code{gcc -shared -o libstdc++.so.2.10.0 -Wl,-all,-lstdc++,-lgcc,-none -lm}.
! If the @code{ieee}
  sub-directory exists, repeat this command in it, with the additional
! flag @code{-mieee}.
  
  @html
  </p>
--- 1005,1028 ----
  
  The magic spell is to add @code{-Wl,-all,-lgcc,-none} to the
  definition of macro @code{SHDEPS} in
! @file{libstdc++/config/dec-osf.ml} @emph{before}
! @file{alpha*-dec-osf*/libstdc++/Makefile} is created (a 
  @uref{dec-osf-shlibstdc++.patch,,patch} 
  that does just that is available).  If the Makefile already exists, run
! @file{./config.status} within directory
! @file{alpha*-dec-osf*/libstdc++} (and
! @file{alpha*-dec-osf*/ieee/libstdc++}, if it also exists).
! Remove any existing @file{libstdc++.so*} from such directories,
! and run @samp{make all-target-libstdc++} in the top-level
! directory, then @samp{make install-target-libstdc++}.
  
  If you have already removed the build tree, you may just remove
! @file{libstdc++.so.2.10.0} from the install tree and re-create
  it with the command 
! @samp{gcc -shared -o libstdc++.so.2.10.0 -Wl,-all,-lstdc++,-lgcc,-none -lm}.
! If the @file{ieee}
  sub-directory exists, repeat this command in it, with the additional
! flag @option{-mieee}.
  
  @html
  </p>
*************** We require GNU binutils 2.10 or newer.
*** 1034,1040 ****
  <h3><a name="avr">avr</a></h3>
  @end html
  
! Use `@command{configure} @option{--target=avr} 
  @option{--enable-languages="c"}' to configure GCC.
  
  Further installation notes and other useful information about AVR tools
--- 1038,1044 ----
  <h3><a name="avr">avr</a></h3>
  @end html
  
! Use @samp{configure --target=avr} 
  @option{--enable-languages="c"}' to configure GCC.
  
  Further installation notes and other useful information about AVR tools
*************** shared libraries from working.  Use the 
*** 1107,1113 ****
  
  
  The configuration scripts for GCC will also trigger a bug in the hpux9
! shell.  To avoid this problem set CONFIG_SHELL to @file{/bin/ksh} and SHELL 
  to @file{/bin/ksh} in your environment.
  
  
--- 1111,1117 ----
  
  
  The configuration scripts for GCC will also trigger a bug in the hpux9
! shell.  To avoid this problem set @env{CONFIG_SHELL} to @file{/bin/ksh} and @env{SHELL} 
  to @file{/bin/ksh} in your environment.
  
  
*************** Latin-America
*** 1138,1146 ****
  The HP assembler on these systems is much better than the hpux9 assembler,
  but still has some problems.  Most notably the assembler inserts timestamps
  into each object file it creates, causing the 3-stage comparison test to fail
! during a `@code{make bootstrap}'.  You should be able to continue by 
! saying `@code{make all}' after getting the failure from `@code{make 
! bootstrap}'.
  
  
  @html
--- 1142,1150 ----
  The HP assembler on these systems is much better than the hpux9 assembler,
  but still has some problems.  Most notably the assembler inserts timestamps
  into each object file it creates, causing the 3-stage comparison test to fail
! during a @samp{make bootstrap}.  You should be able to continue by 
! saying @samp{make all} after getting the failure from @samp{make 
! bootstrap}.
  
  
  @html
*************** may use either the UDK debugger or GDB t
*** 1193,1205 ****
  version of GCC.
  
  If you are building languages other than C, you must follow the instructions
! about invoking `@code{make bootstrap}' because the native OpenServer
! compiler will build a @code{cc1plus} that will not correctly parse many
! valid C++ programs including those in @code{libgcc.a}.  
! @strong{You must do a `@code{make bootstrap}' if you are building with the 
  native compiler.}
  
! Use of the `@option{-march-pentiumpro}' flag can result in
  unrecognized opcodes when using the native assembler on OS versions before
  5.0.6. (Support for P6 opcodes was added to the native ELF assembler in
  that version.)  While it's rather rare to see these emitted by GCC yet, 
--- 1197,1209 ----
  version of GCC.
  
  If you are building languages other than C, you must follow the instructions
! about invoking @samp{make bootstrap} because the native OpenServer
! compiler will build a @command{cc1plus} that will not correctly parse many
! valid C++ programs including those in @file{libgcc.a}.  
! @strong{You must do a @samp{make bootstrap} if you are building with the 
  native compiler.}
  
! Use of the @option{-march-pentiumpro} flag can result in
  unrecognized opcodes when using the native assembler on OS versions before
  5.0.6. (Support for P6 opcodes was added to the native ELF assembler in
  that version.)  While it's rather rare to see these emitted by GCC yet, 
*************** as the native assembler.
*** 1229,1235 ****
  Look in @file{gcc/config/i386/sco5.h} (search for "messy") for
  additional OpenServer-specific flags.
  
! Systems based on OpenServer before 5.0.4 (`@code{uname -X}'
  will tell you what you're running) require TLS597 from ftp.sco.com/TLS
  for C++ constructors and destructors to work right.
  
--- 1233,1239 ----
  Look in @file{gcc/config/i386/sco5.h} (search for "messy") for
  additional OpenServer-specific flags.
  
! Systems based on OpenServer before 5.0.4 (@samp{uname -X}
  will tell you what you're running) require TLS597 from ftp.sco.com/TLS
  for C++ constructors and destructors to work right.
  
*************** Although it's conceivable that the error
*** 1249,1259 ****
  code, only G77-compiled code has been observed to cause this abort.
  If you are getting core dumps immediately upon execution of your
  g77 program - and especially if it's compiled with -fPIC - try applying
! @uref{sco_osr5_g77.patch,,@code{`sco_osr5_g77.patch'}} to your libf2c and 
  rebuilding GCC.  
  Affected faults, when analyzed in a debugger, will show a stack
  backtrace with a fault occurring in @code{rtld()} and the program
! running as @code{/usr/lib/ld.so.1}.  This problem has been reported to SCO 
  engineering and will hopefully be addressed in later releases.
  
  
--- 1253,1263 ----
  code, only G77-compiled code has been observed to cause this abort.
  If you are getting core dumps immediately upon execution of your
  g77 program - and especially if it's compiled with -fPIC - try applying
! @uref{sco_osr5_g77.patch,,@file{sco_osr5_g77.patch}} to your libf2c and 
  rebuilding GCC.  
  Affected faults, when analyzed in a debugger, will show a stack
  backtrace with a fault occurring in @code{rtld()} and the program
! running as @file{/usr/lib/ld.so.1}.  This problem has been reported to SCO 
  engineering and will hopefully be addressed in later releases.
  
  
*************** GCC 2.95.2, when configured to use the G
*** 1267,1273 ****
  it with the @code{-s} switch, that GNU as up to 2.9.5.0.12 does
  not support.  If you'd rather not use a newer GNU as nor the native
  assembler, you'll need the patch 
! @uref{x86-sol2-gas.patch,,@code{`x86-sol2-gas.patch'}}.
  
  
  @html
--- 1271,1277 ----
  it with the @code{-s} switch, that GNU as up to 2.9.5.0.12 does
  not support.  If you'd rather not use a newer GNU as nor the native
  assembler, you'll need the patch 
! @uref{x86-sol2-gas.patch,,@file{x86-sol2-gas.patch}}.
  
  
  @html
*************** from the right place) while making the t
*** 1295,1310 ****
  building a cross compiler.   The easiest way to do this is with a configure
  command like this:
  
! @command{  CC=/udk/usr/ccs/bin/cc <i>/your/path/to/</i>gcc/configure 
  --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-}
  
  @emph{You should substitute 'i686' in the above command with the appropriate
  processor for your host.}
  
! You should follow this with a `@command{make bootstrap}'  then
! `@command{make install}'.  You can then access the UDK-targeted GCC 
! tools by adding @code{udk-} before the commonly known name.  For example, to 
! invoke the C compiler, you would use `@code{udk-gcc}'.  They will coexist 
  peacefully with any native-target GCC tools you may have installed.
  
  
--- 1299,1314 ----
  building a cross compiler.   The easiest way to do this is with a configure
  command like this:
  
! @samp{CC=/udk/usr/ccs/bin/cc <i>/your/path/to/</i>gcc/configure 
  --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-}
  
  @emph{You should substitute 'i686' in the above command with the appropriate
  processor for your host.}
  
! You should follow this with a @samp{make bootstrap}  then
! @samp{make install}.  You can then access the UDK-targeted GCC 
! tools by adding @command{udk-} before the commonly known name.  For example, to 
! invoke the C compiler, you would use @command{udk-gcc}.  They will coexist 
  peacefully with any native-target GCC tools you may have installed.
  
  
*************** AIX Make frequently has problems with GC
*** 1319,1330 ****
  newer is recommended to build on this platform.
  
  Errors involving "alloca" when building GCC generally are due
! to an incorrect definition of @command{CC} in the Makefile or mixing files
  compiled with the native C compiler and GCC.  During the stage1 phase of
  the build, the native AIX compiler @strong{must} be invoked as "cc"
  (not "xlc").  Once @command{configure} has been informed of
! "xlc", one needs to use "make distclean" to remove the
! configure cache files and ensure that @command{CC} environment variable
  does not provide a definition that will confuse @command{configure}.
  If this error occurs during stage2 or later, then the problem most likely
  is the version of Make (see above).
--- 1323,1334 ----
  newer is recommended to build on this platform.
  
  Errors involving "alloca" when building GCC generally are due
! to an incorrect definition of @var{CC} in the Makefile or mixing files
  compiled with the native C compiler and GCC.  During the stage1 phase of
  the build, the native AIX compiler @strong{must} be invoked as "cc"
  (not "xlc").  Once @command{configure} has been informed of
! "xlc", one needs to use @samp{make distclean} to remove the
! configure cache files and ensure that @env{CC} environment variable
  does not provide a definition that will confuse @command{configure}.
  If this error occurs during stage2 or later, then the problem most likely
  is the version of Make (see above).
*************** replacement that does can be obtained at
*** 1412,1418 ****
  If you try to build the integrated C++ & C++ runtime libraries on this system
  you will run into trouble with include files.  The way to get around this is
  to use the following sequence.  Note you must have write permission to
! the directory @emph{prefix} you specified in the configuration process of GCC
  for this sequence to work.
  
  @example
--- 1416,1422 ----
  If you try to build the integrated C++ & C++ runtime libraries on this system
  you will run into trouble with include files.  The way to get around this is
  to use the following sequence.  Note you must have write permission to
! the directory @var{prefix} you specified in the configuration process of GCC
  for this sequence to work.
  
  @example
*************** If you see:
*** 1503,1509 ****
  @end example
  
  then your version of @command{cc} uses the O32 ABI default.  You
! should set the environment variable @command{CC} to 'cc -n32'
  before configuring GCC.
  
  GCC does not currently support generating O32 ABI binaries in the
--- 1507,1513 ----
  @end example
  
  then your version of @command{cc} uses the O32 ABI default.  You
! should set the environment variable @env{CC} to @samp{cc -n32}
  before configuring GCC.
  
  GCC does not currently support generating O32 ABI binaries in the
*************** GCC version 2.95 is not able to compile 
*** 1688,1694 ****
  @code{sparc64} targets.  Users of the Linux kernel, at least,
  12~can use the @code{sparc32} program to start up a new shell
  invocation with an environment that causes @command{configure} to
! recognize (via @command{uname -a}) the system as @command{sparc-*-*} instead.
  
  
  @html
--- 1692,1698 ----
  @code{sparc64} targets.  Users of the Linux kernel, at least,
  12~can use the @code{sparc32} program to start up a new shell
  invocation with an environment that causes @command{configure} to
! recognize (via @samp{uname -a}) the system as @var{sparc-*-*} instead.
  
  
  @html
*************** system, and using it to compile a more r
*** 1749,1755 ****
  the vendor compiler.  Old releases of GCC 1 and GCC 2 are available in 
  the old-releases directory on the 
  @uref{../mirrors.html,,GCC mirror sites}.  Header bugs may generally 
! be avoided using @code{fixincludes}, but bugs or deficiencies in libraries and 
  the operating system may still cause problems.
   
  For some systems, old versions of GNU binutils may also be useful, 
--- 1753,1759 ----
  the vendor compiler.  Old releases of GCC 1 and GCC 2 are available in 
  the old-releases directory on the 
  @uref{../mirrors.html,,GCC mirror sites}.  Header bugs may generally 
! be avoided using @command{fixincludes}, but bugs or deficiencies in libraries and 
  the operating system may still cause problems.
   
  For some systems, old versions of GNU binutils may also be useful, 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]