]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - INSTALL
build-many-glibcs.py: Add openrisc hard float glibc variant
[thirdparty/glibc.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 6470cd3d253ed476adc7a9b3f78fb38ac94c586f..c8c524527b9fc17391ec2711273902638d1dc8ab 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -90,12 +90,6 @@ if 'CFLAGS' is specified it must enable optimization.  For example:
      library will still be usable, but functionality may be lost--for
      example, you can't build a shared libc with old binutils.
 
-'--with-default-link'
-     With '--with-default-link', the build system does not use a custom
-     linker script for linking shared objects.  The default is
-     '--without-default-link', because the custom linker script is
-     needed for full RELRO protection.
-
 '--with-nonshared-cflags=CFLAGS'
      Use additional compiler flags CFLAGS to build the parts of the
      library which are always statically linked into applications and
@@ -120,16 +114,6 @@ if 'CFLAGS' is specified it must enable optimization.  For example:
      compiler flags which target a later instruction set architecture
      (ISA).
 
-'--with-extra-version-id=STRING'
-     Use STRING as part of the fingerprint that is used by the dynamic
-     linker to detect an incompatible version of 'libc.so'.  For
-     example, STRING could be the full package version and release
-     string used by a distribution build of the GNU C Library.  This
-     way, concurrent process creation during a package update will fail
-     with an error message, _error while loading shared libraries:
-     /lib64/libc.so.6: ld.so/libc.so mismatch detected (upgrade in
-     progress?)_, rather than crashing mysteriously.
-
 '--with-timeoutfactor=NUM'
      Specify an integer NUM to scale the timeout of test programs.  This
      factor can be changed at run time using 'TIMEOUTFACTOR' environment
@@ -157,17 +141,13 @@ if 'CFLAGS' is specified it must enable optimization.  For example:
      indirect branch tracking (IBT) and shadow stack (SHSTK).  When CET
      is enabled, the GNU C Library is compatible with all existing
      executables and shared libraries.  This feature is currently
-     supported on i386, x86_64 and x32 with GCC 8 and binutils 2.29 or
-     later.  Note that when CET is enabled, the GNU C Library requires
-     CPUs capable of multi-byte NOPs, like x86-64 processors as well as
-     Intel Pentium Pro or newer.  With '--enable-cet', it is an error to
-     dlopen a non CET enabled shared library in CET enabled application.
-     With '--enable-cet=permissive', CET is disabled when dlopening a
-     non CET enabled shared library in CET enabled application.
-
-     NOTE: '--enable-cet' has been tested for i686, x86_64 and x32 on
-     non-CET processors.  '--enable-cet' has been tested for i686,
-     x86_64 and x32 on CET processors.
+     supported on x86_64 and x32 with GCC 8 and binutils 2.29 or later.
+     With '--enable-cet', it is an error to dlopen a non CET enabled
+     shared library in CET enabled application.  With
+     '--enable-cet=permissive', CET is disabled when dlopening a non CET
+     enabled shared library in CET enabled application.
+
+     NOTE: '--enable-cet' is only supported on x86_64 and x32.
 
 '--enable-memory-tagging'
      Enable memory tagging support if the architecture supports it.
@@ -244,42 +224,6 @@ if 'CFLAGS' is specified it must enable optimization.  For example:
      By default for x86_64, the GNU C Library is built with the vector
      math library.  Use this option to disable the vector math library.
 
-'--enable-tunables'
-     Tunables support allows additional library parameters to be
-     customized at runtime.  This feature is enabled by default.  This
-     option can take the following values:
-
-     'yes'
-          This is the default if no option is passed to configure.  This
-          enables tunables and selects the default frontend (currently
-          'valstring').
-
-     'no'
-          This option disables tunables.
-
-     'valstring'
-          This enables tunables and selects the 'valstring' frontend for
-          tunables.  This frontend allows users to specify tunables as a
-          colon-separated list in a single environment variable
-          'GLIBC_TUNABLES'.
-
-'--disable-crypt'
-     Do not install the passphrase-hashing library 'libcrypt' or the
-     header file 'crypt.h'.  'unistd.h' will still declare the function
-     'crypt'.  Using this option does not change the set of programs
-     that may need to be linked with '-lcrypt'; it only means that the
-     GNU C Library will not provide that library.
-
-     This option is for hackers and distributions experimenting with
-     independently-maintained implementations of libcrypt.  It may
-     become the default in a future release.
-
-'--disable-experimental-malloc'
-     By default, a per-thread cache is enabled in 'malloc'.  While this
-     cache can be disabled on a per-application basis using tunables
-     (set glibc.malloc.tcache_count to zero), this option can be used to
-     remove it from the build completely.
-
 '--disable-scv'
      Disable using 'scv' instruction for syscalls.  All syscalls will
      use 'sc' instead, even if the kernel supports 'scv'.  PowerPC only.
@@ -317,6 +261,14 @@ if 'CFLAGS' is specified it must enable optimization.  For example:
      the GNU C Library.  The default value refers to the main
      bug-reporting information for the GNU C Library.
 
+'--enable-fortify-source'
+'--enable-fortify-source=LEVEL'
+     Use -D_FORTIFY_SOURCE='LEVEL' to control hardening in the GNU C
+     Library.  If not provided, 'LEVEL' defaults to highest possible
+     value supported by the build compiler.
+
+     Default is to disable fortification.
+
    To build the library and related programs, type 'make'.  This will
 produce a lot of output, some of which may look like errors from 'make'
 but aren't.  Look for error messages from 'make' containing '***'.
@@ -510,15 +462,15 @@ build the GNU C Library:
 
    * GNU 'make' 4.0 or newer
 
-     As of relase time, GNU 'make' 4.3 is the newest verified to work to
-     build the GNU C Library.
+     As of release time, GNU 'make' 4.4.1 is the newest verified to work
+     to build the GNU C Library.
 
    * GCC 6.2 or newer
 
      GCC 6.2 or higher is required.  In general it is recommended to use
      the newest version of the compiler that is known to work for
      building the GNU C Library, as newer compilers usually produce
-     better code.  As of release time, GCC 12.1 is the newest compiler
+     better code.  As of release time, GCC 13.2 is the newest compiler
      verified to work to build the GNU C Library.
 
      For PowerPC 64-bits little-endian (powerpc64le), a GCC version with
@@ -534,6 +486,9 @@ build the GNU C Library:
      For s390x architecture builds, GCC 7.1 or higher is needed (See gcc
      Bug 98269).
 
+     For AArch64 architecture builds with mathvec enabled, GCC 10 or
+     higher is needed due to dependency on arm_sve.h.
+
      For multi-arch support it is recommended to use a GCC which has
      been built with support for GNU indirect functions.  This ensures
      that correct debugging information is generated for functions
@@ -553,7 +508,7 @@ build the GNU C Library:
 
      You must use GNU 'binutils' (as and ld) to build the GNU C Library.
      No other assembler or linker has the necessary functionality at the
-     moment.  As of release time, GNU 'binutils' 2.38 is the newest
+     moment.  As of release time, GNU 'binutils' 2.42 is the newest
      verified to work to build the GNU C Library.
 
      For PowerPC 64-bits little-endian (powerpc64le), 'objcopy' is
@@ -569,7 +524,7 @@ build the GNU C Library:
      need this version of the 'texinfo' package.  Earlier versions do
      not understand all the tags used in the document, and the
      installation mechanism for the info files is not present or works
-     differently.  As of release time, 'texinfo' 6.8 is the newest
+     differently.  As of release time, 'texinfo' 7.0.3 is the newest
      verified to work to build the GNU C Library.
 
    * GNU 'awk' 3.1.2, or higher
@@ -577,7 +532,7 @@ build the GNU C Library:
      'awk' is used in several places to generate files.  Some 'gawk'
      extensions are used, including the 'asorti' function, which was
      introduced in version 3.1.2 of 'gawk'.  As of release time, 'gawk'
-     version 5.1.1 is the newest verified to work to build the GNU C
+     version 5.2.2 is the newest verified to work to build the GNU C
      Library.
 
    * GNU 'bison' 2.7 or later
@@ -590,20 +545,20 @@ build the GNU C Library:
 
      Perl is not required, but if present it is used in some tests and
      the 'mtrace' program, to build the GNU C Library manual.  As of
-     release time 'perl' version 5.34.1 is the newest verified to work
+     release time 'perl' version 5.38.2 is the newest verified to work
      to build the GNU C Library.
 
    * GNU 'sed' 3.02 or newer
 
      'Sed' is used in several places to generate files.  Most scripts
      work with any version of 'sed'.  As of release time, 'sed' version
-     4.8 is the newest verified to work to build the GNU C Library.
+     4.9 is the newest verified to work to build the GNU C Library.
 
    * Python 3.4 or later
 
      Python is required to build the GNU C Library.  As of release time,
-     Python 3.10.5 is the newest verified to work for building and
-     testing the GNU C Library.
+     Python 3.11 is the newest verified to work for building and testing
+     the GNU C Library.
 
    * PExpect 4.0
 
@@ -613,13 +568,20 @@ build the GNU C Library:
      in your system.  As of release time PExpect 4.8.0 is the newest
      verified to work to test the pretty printers.
 
+   * The Python 'abnf' module.
+
+     This module is optional and used to verify some ABNF grammars in
+     the manual.  Version 2.2.0 has been confirmed to work as expected.
+     A missing 'abnf' module does not reduce the test coverage of the
+     library itself.
+
    * GDB 7.8 or later with support for Python 2.7/3.4 or later
 
      GDB itself needs to be configured with Python support in order to
      use the pretty printers.  Notice that your system having Python
      available doesn't imply that GDB supports it, nor that your
      system's Python and GDB's have the same version.  As of release
-     time GNU 'debugger' 12.1 is the newest verified to work to test the
+     time GNU 'debugger' 13.2 is the newest verified to work to test the
      pretty printers.
 
      Unless Python, PExpect and GDB with Python support are present, the
@@ -629,13 +591,13 @@ build the GNU C Library:
 
 If you change any of the 'configure.ac' files you will also need
 
-   * GNU 'autoconf' 2.69 (exactly)
+   * GNU 'autoconf' 2.71 (exactly)
 
 and if you change any of the message translation files you will need
 
    * GNU 'gettext' 0.10.36 or later
 
-     As of release time, GNU 'gettext' version 0.21 is the newest
+     As of release time, GNU 'gettext' version 0.21.1 is the newest
      version verified to work to build the GNU C Library.
 
 You may also need these packages if you upgrade your source tree using
@@ -646,15 +608,13 @@ Specific advice for GNU/Linux systems
 
 If you are installing the GNU C Library on GNU/Linux systems, you need
 to have the header files from a 3.2 or newer kernel around for
-reference.  (For the ia64 architecture, you need version 3.2.18 or newer
-because this is the first version with support for the 'accept4' system
-call.)  These headers must be installed using 'make headers_install';
-the headers present in the kernel source directory are not suitable for
-direct use by the GNU C Library.  You do not need to use that kernel,
-just have its headers installed where the GNU C Library can access them,
-referred to here as INSTALL-DIRECTORY.  The easiest way to do this is to
-unpack it in a directory such as '/usr/src/linux-VERSION'.  In that
-directory, run 'make headers_install
+reference.  These headers must be installed using 'make
+headers_install'; the headers present in the kernel source directory are
+not suitable for direct use by the GNU C Library.  You do not need to
+use that kernel, just have its headers installed where the GNU C Library
+can access them, referred to here as INSTALL-DIRECTORY.  The easiest way
+to do this is to unpack it in a directory such as
+'/usr/src/linux-VERSION'.  In that directory, run 'make headers_install
 INSTALL_HDR_PATH=INSTALL-DIRECTORY'.  Finally, configure the GNU C
 Library with the option '--with-headers=INSTALL-DIRECTORY/include'.  Use
 the most recent kernel you can get your hands on.  (If you are
@@ -683,7 +643,7 @@ components of the GNU C Library installation to be in '/lib' and some in
 Library with '--prefix=/usr'.  If you set some other prefix or allow it
 to default to '/usr/local', then all the components are installed there.
 
-   As of release time, Linux version 5.18 is the newest stable version
+   As of release time, Linux version 6.1.5 is the newest stable version
 verified to work to build the GNU C Library.
 
 Reporting Bugs