mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Update.
* stdlib/strtol.c: Optimize inner loop of long long versions.
This commit is contained in:
34
FAQ
34
FAQ
@@ -226,8 +226,8 @@ to use EGCS. Comparing the sizes of glibc on Intel compiled with a recent
|
||||
EGCS and gcc 2.8.1 shows this:
|
||||
|
||||
text data bss dec hex filename
|
||||
egcs-2.93.10 862897 15944 12824 891665 d9b11 libc.so
|
||||
gcc-2.8.1 959965 16468 12152 988585 f15a9 libc.so
|
||||
egcs-2.93.10 862897 15944 12824 891665 d9b11 libc.so
|
||||
gcc-2.8.1 959965 16468 12152 988585 f15a9 libc.so
|
||||
|
||||
Make up your own decision.
|
||||
|
||||
@@ -838,7 +838,7 @@ ypbind. ypbind 3.3 and older versions don't always remove these files, so
|
||||
glibc will continue to use them. Other BSD versions seem to work correctly.
|
||||
Until ypbind 3.4 is released, you can find a patch at
|
||||
|
||||
ftp://ftp.kernel.org/pub/linux/utils/net/NIS/ypbind-3.3-glibc4.diff.gz
|
||||
<ftp://ftp.kernel.org/pub/linux/utils/net/NIS/ypbind-3.3-glibc4.diff.gz>
|
||||
|
||||
|
||||
2.14. Under Linux/Alpha, I always get "do_ypcall: clnt_call:
|
||||
@@ -929,7 +929,7 @@ gcc-2.8.1 together with libstdc++ 2.8.1.1. egcs 1.1 has the better C++
|
||||
support and works directly with glibc 2.1. If you use gcc-2.8.1 with
|
||||
libstdc++ 2.8.1.1, you need to modify libstdc++ a bit. A patch is available
|
||||
as:
|
||||
ftp://alpha.gnu.org/gnu/libstdc++-2.8.1.1-glibc2.1-diff.gz
|
||||
<ftp://alpha.gnu.org/gnu/libstdc++-2.8.1.1-glibc2.1-diff.gz>
|
||||
|
||||
Please note that libg++ 2.7.2 (and the Linux Versions 2.7.2.x) doesn't work
|
||||
very well with the GNU C library due to vtable thunks. If you're upgrading
|
||||
@@ -1071,7 +1071,7 @@ The glibc-compat add-on will provide the libcompat.a library, the older
|
||||
nss modules, and a few other files. Together, they should make it
|
||||
possible to do development with old static libraries on a glibc 2.1
|
||||
system. This add-on is still in development. You can get it from
|
||||
ftp://alpha.gnu.org/gnu/glibc-compat-2.1.tar.gz
|
||||
<ftp://alpha.gnu.org/gnu/glibc-compat-2.1.tar.gz>
|
||||
but please keep in mind that it is experimental.
|
||||
|
||||
|
||||
@@ -1346,7 +1346,7 @@ This disables the optimization for that specific call.
|
||||
stdin/stdout/stderr. Why?
|
||||
|
||||
{RM,AJ} Constructs like:
|
||||
static FILE *InPtr = stdin;
|
||||
static FILE *InPtr = stdin;
|
||||
|
||||
lead to this message. This is correct behaviour with glibc since stdin is
|
||||
not a constant expression. Please note that a strict reading of ISO C does
|
||||
@@ -1361,17 +1361,17 @@ this way were versioning problems with the size of the FILE structure.
|
||||
To fix those programs you've got to initialize the variable at run time.
|
||||
This can be done, e.g. in main, like:
|
||||
|
||||
static FILE *InPtr;
|
||||
int main(void)
|
||||
{
|
||||
InPtr = stdin;
|
||||
}
|
||||
static FILE *InPtr;
|
||||
int main(void)
|
||||
{
|
||||
InPtr = stdin;
|
||||
}
|
||||
|
||||
or by constructors (beware this is gcc specific):
|
||||
|
||||
static FILE *InPtr;
|
||||
static void inPtr_construct (void) __attribute__((constructor));
|
||||
static void inPtr_construct (void) { InPtr = stdin; }
|
||||
static FILE *InPtr;
|
||||
static void inPtr_construct (void) __attribute__((constructor));
|
||||
static void inPtr_construct (void) { InPtr = stdin; }
|
||||
|
||||
|
||||
3.10. I can't compile with gcc -traditional (or
|
||||
@@ -1380,9 +1380,9 @@ static void inPtr_construct (void) { InPtr = stdin; }
|
||||
{AJ} glibc2 does break -traditional and -traditonal-cpp - and will continue
|
||||
to do so. For example constructs of the form:
|
||||
|
||||
enum {foo
|
||||
#define foo foo
|
||||
}
|
||||
enum {foo
|
||||
#define foo foo
|
||||
}
|
||||
|
||||
are useful for debugging purposes (you can use foo with your debugger that's
|
||||
why we need the enum) and for compatibility (other systems use defines and
|
||||
|
||||
Reference in New Issue
Block a user