about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--INSTALL19
-rw-r--r--manual/install.texi25
3 files changed, 41 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 9bc1c16d2a..c5696dbe36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2018-02-15  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #20980]
+	[BZ #21234]
+	* manual/install.texi (Configuring and compiling): Describe
+	passing CC and CFLAGS on configure command line, not as
+	environment variables.  Use @code markup on those variables.
+	Specify what options go in CC and what go in CFLAGS.  Note the
+	requirement to compile with optimization.
+	* INSTALL: Regenerated.
+
 	[BZ #18124]
 	* sysdeps/hppa/bsd-setjmp.S: Include <sysdep.h>.
 	(setjmp): Use HIDDEN_JUMPTARGET with __sigsetjmp.
diff --git a/INSTALL b/INSTALL
index 64dec3473e..052b1b6f89 100644
--- a/INSTALL
+++ b/INSTALL
@@ -36,9 +36,18 @@ normal setting to install as the standard system library is
 '--prefix=/usr' for GNU/Linux systems and '--prefix=' (an empty prefix)
 for GNU/Hurd systems.
 
-   It may also be useful to set the CC and CFLAGS variables in the
-environment when running 'configure'.  CC selects the C compiler that
-will be used, and CFLAGS sets optimization options for the compiler.
+   It may also be useful to pass 'CC=COMPILER' and 'CFLAGS=FLAGS'
+arguments to 'configure'.  'CC' selects the C compiler that will be
+used, and 'CFLAGS' sets optimization options for the compiler.  Any
+compiler options required for all compilations, such as options
+selecting an ABI or a processor for which to generate code, should be
+included in 'CC'.  Options that may be overridden by the GNU C Library
+build system for particular files, such as for optimization and
+debugging, should go in 'CFLAGS'.  The default value of 'CFLAGS' is '-g
+-O2', and the GNU C Library cannot be compiled without optimization, so
+if 'CFLAGS' is specified it must enable optimization.  For example:
+
+     $ ../glibc-VERSION/configure CC="gcc -m32" CFLAGS="-O3"
 
    The following list describes all of the available options for
 'configure':
@@ -210,7 +219,7 @@ will be used, and CFLAGS sets optimization options for the compiler.
      but you want to compile a library for 586es, give
      '--host=i586-pc-linux-gnu' or just '--host=i586-linux' and add the
      appropriate compiler flags ('-mcpu=i586' will do the trick) to
-     CFLAGS.
+     'CC'.
 
      If you specify just '--build', 'configure' will get confused.
 
@@ -304,7 +313,7 @@ makefiles.
 setting a few variables in 'configparms'.  Set 'CC' to the
 cross-compiler for the target you configured the library for; it is
 important to use this same 'CC' value when running 'configure', like
-this: 'CC=TARGET-gcc configure TARGET'.  Set 'BUILD_CC' to the compiler
+this: 'configure TARGET CC=TARGET-gcc'.  Set 'BUILD_CC' to the compiler
 to use for programs run on the build system as part of compiling the
 library.  You may need to set 'AR' to cross-compiling versions of 'ar'
 if the native tools are not configured to work with object files for the
diff --git a/manual/install.texi b/manual/install.texi
index 43dd8d6b81..4bbbfcffa5 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -59,10 +59,21 @@ but the normal setting to install as the standard system library is
 @samp{--prefix=/usr} for @gnulinuxsystems{} and @samp{--prefix=} (an
 empty prefix) for @gnuhurdsystems{}.
 
-It may also be useful to set the @var{CC} and @var{CFLAGS} variables in
-the environment when running @code{configure}.  @var{CC} selects the C
-compiler that will be used, and @var{CFLAGS} sets optimization options
-for the compiler.
+It may also be useful to pass @samp{CC=@var{compiler}} and
+@code{CFLAGS=@var{flags}} arguments to @code{configure}.  @code{CC}
+selects the C compiler that will be used, and @code{CFLAGS} sets
+optimization options for the compiler.  Any compiler options required
+for all compilations, such as options selecting an ABI or a processor
+for which to generate code, should be included in @code{CC}.  Options
+that may be overridden by the @glibcadj{} build system for particular
+files, such as for optimization and debugging, should go in
+@code{CFLAGS}.  The default value of @code{CFLAGS} is @samp{-g -O2},
+and @theglibc{} cannot be compiled without optimization, so if
+@code{CFLAGS} is specified it must enable optimization.  For example:
+
+@smallexample
+$ ../glibc-@var{version}/configure CC="gcc -m32" CFLAGS="-O3"
+@end smallexample
 
 The following list describes all of the available options for
  @code{configure}:
@@ -241,7 +252,7 @@ if @code{configure} guesses your machine as @code{i686-pc-linux-gnu} but
 you want to compile a library for 586es, give
 @samp{--host=i586-pc-linux-gnu} or just @samp{--host=i586-linux} and add
 the appropriate compiler flags (@samp{-mcpu=i586} will do the trick) to
-@var{CFLAGS}.
+@code{CC}.
 
 If you specify just @samp{--build}, @code{configure} will get confused.
 
@@ -339,8 +350,8 @@ It is easy to configure @theglibc{} for cross-compilation by
 setting a few variables in @file{configparms}.  Set @code{CC} to the
 cross-compiler for the target you configured the library for; it is
 important to use this same @code{CC} value when running
-@code{configure}, like this: @samp{CC=@var{target}-gcc configure
-@var{target}}.  Set @code{BUILD_CC} to the compiler to use for programs
+@code{configure}, like this: @samp{configure @var{target}
+CC=@var{target}-gcc}.  Set @code{BUILD_CC} to the compiler to use for programs
 run on the build system as part of compiling the library.  You may need to
 set @code{AR} to cross-compiling versions of @code{ar}
 if the native tools are not configured to work with