mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-12 14:20:13 +00:00
62 lines
2.2 KiB
Plaintext
62 lines
2.2 KiB
Plaintext
This file documents Google's modified version of glibc, known as GRTE
|
|
(Google Run Time Environment). GRTE serves as the common C library for
|
|
internal Google applications running on production systems.
|
|
|
|
While GRTE is nearly identical to stock glibc, it does have a number
|
|
of local changes. These run the gamut from patches that were
|
|
submitted but not accepted for trunk glibc, to workarounds for quirks
|
|
of Google infrastructure, to extensions that are critical for the
|
|
proper functioning of applications. The ideal, however, is to have no
|
|
local changes at all.
|
|
|
|
GRTE versions are identified by a small integer, which generally
|
|
corresponds to a particular glibc version. GRTE v4 is based on
|
|
glibc-2.19, while GRTE v5 is based on glibc-2.27, for instance.
|
|
|
|
BUILDING GRTE WITH GCC
|
|
|
|
When using GCC, GRTE v4 and later will build with native
|
|
configure/make in the usual way for glibc. For v4, nscd does not
|
|
work, so add --disable-nscd when configuring.
|
|
|
|
Supported architectures include x86_64 and ppc64le.
|
|
|
|
Testsuites will likely have some additional failures.
|
|
|
|
BUILDING GRTE WITH CLANG
|
|
|
|
GRTE v5 and later can also be built with clang and (optionally) lld.
|
|
LLVM support for GNU source code continues to evolve (as of June
|
|
2018), so the process is less straightforward, and likely to change
|
|
from what is documented here. There are a number of glibc patches
|
|
that make this work, including additional configure options mentioned
|
|
below.
|
|
|
|
The minimum version of clang is 6.0.0. If lld is to be used for linking,
|
|
it needs to be newer than 6.0.0.
|
|
|
|
Configure:
|
|
|
|
CC=path-to-llvm/clang CXX=path-to-llvm/clang++ \
|
|
../glibc/configure --disable-werror --with-clang --disable-float128 \
|
|
--with-lld --with-default-link --disable-multi-arch --prefix=/something
|
|
|
|
To build with BFD ld as linker, omit the "--with-lld
|
|
--with-default-link". (Gold has had problems in the past.)
|
|
|
|
Build:
|
|
|
|
make
|
|
make install
|
|
|
|
Test:
|
|
|
|
make check
|
|
|
|
Testsuite results will show many unexpected failures beyond the
|
|
GCC-compiled results; about 390 for x86-64. These are a combination
|
|
of known bugs in clang, and issues with conformance to old standards
|
|
predating clang. Note that the clang build still needs symlinks to
|
|
libgcc and libstdc++ in the installed library directory, so that
|
|
thread cancellation tests pass.
|