From 83f6a99044e85962c9d87b8b89734154096a0087 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 31 Jul 1999 22:27:07 +0000 Subject: [PATCH] Update. 1999-07-31 H.J. Lu * string/bits/string2.h (__strcpy_small): Fix a typo. --- ChangeLog | 4 ++++ FAQ | 36 ++++++++++++++++++++++++++---------- FAQ.in | 38 +++++++++++++++++++++++++++----------- string/bits/string2.h | 2 +- 4 files changed, 58 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 52ee4db..7ef75a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +1999-07-31 H.J. Lu + + * string/bits/string2.h (__strcpy_small): Fix a typo. + 1999-07-31 Ulrich Drepper * Makeconfig (link-libc): Always define it, not only for shared diff --git a/FAQ b/FAQ index 799be81..d412f8e 100644 --- a/FAQ +++ b/FAQ @@ -234,6 +234,9 @@ EGCS and gcc 2.8.1 shows this: Make up your own decision. +GNU CC versions 2.95 and above are derived from egcs, and they may do even +better. + 1.3. When I try to compile glibc I get only error messages. What's wrong? @@ -267,16 +270,8 @@ them. 1.5. Which compiler should I use for powerpc? -{GK} You want to use egcs 1.1 or later (together with the right versions -of all the other tools, of course). - -In fact, egcs 1.1 has a bug that causes linuxthreads to be -miscompiled, resulting in segmentation faults when using condition -variables. There is a temporary patch at: - - - -Later versions of egcs may fix this problem. +{GK} You want to use at least gcc 2.95 (together with the right versions +of all the other tools, of course). See also question question 2.8. 1.6. Which tools should I use for ARM? @@ -333,6 +328,9 @@ Binutils 2.9.1.0.16 or later is also required. reports 22h48m on Atari TT030 (Motorola 68030 @ 32 Mhz, 34 Mb memory) + A full build of the PowerPC library took 1h on a PowerPC 750@400Mhz w/ + 64MB of RAM, and about 9h on a 601@60Mhz w/ 72Mb. + If you have some more measurements let me know. @@ -784,6 +782,24 @@ newer since we have explicitly add references to the functions causing the problem. But you nevertheless should use EGCS for other reasons (see question 1.2). +{GK} On some Linux distributions for PowerPC, you can see this when you have +built gcc or egcs from the Web sources (gcc versions 2.95 or earlier), then +re-built glibc. This happens because in these versions of gcc, exception +handling is implemented using an older method; the people making the +distributions are a little ahead of their time. + +A quick solution to this is to find the libgcc.a file that came with the +distribution (it would have been installed under /usr/lib/gcc-lib), do +`ar x libgcc.a frame.o' to get the frame.o file out, and add a line saying +`LDLIBS-c.so += frame.o' to the file `configparms' in the directory you're +building in. You can check you've got the right `frame.o' file by running +`nm frame.o' and checking that it has the symbols defined that you're +missing. + +This will let you build glibc with the C compiler. The C++ compiler +will still be binary incompatible with any C++ shared libraries that +you got with your distribution. + 2.9. How can I compile gcc 2.7.2.1 from the gcc source code using glibc 2.x? diff --git a/FAQ.in b/FAQ.in index fa4606d..e9e2215 100644 --- a/FAQ.in +++ b/FAQ.in @@ -73,6 +73,9 @@ EGCS and gcc 2.8.1 shows this: Make up your own decision. +GNU CC versions 2.95 and above are derived from egcs, and they may do even +better. + ?? When I try to compile glibc I get only error messages. What's wrong? @@ -103,16 +106,8 @@ them. ??powerpc Which compiler should I use for powerpc? -{GK} You want to use egcs 1.1 or later (together with the right versions -of all the other tools, of course). - -In fact, egcs 1.1 has a bug that causes linuxthreads to be -miscompiled, resulting in segmentation faults when using condition -variables. There is a temporary patch at: - - - -Later versions of egcs may fix this problem. +{GK} You want to use at least gcc 2.95 (together with the right versions +of all the other tools, of course). See also question ?excpt. ??arm Which tools should I use for ARM? @@ -167,6 +162,9 @@ Binutils 2.9.1.0.16 or later is also required. reports 22h48m on Atari TT030 (Motorola 68030 @ 32 Mhz, 34 Mb memory) + A full build of the PowerPC library took 1h on a PowerPC 750@400Mhz w/ + 64MB of RAM, and about 9h on a 601@60Mhz w/ 72Mb. + If you have some more measurements let me know. ?? What version of the Linux kernel headers should be used? @@ -568,7 +566,7 @@ not a symlink to libc.so.6. It should look something like this: GROUP ( libc.so.6 libc_nonshared.a ) -?? When I run an executable on one system which I compiled on +??excpt When I run an executable on one system which I compiled on another, I get dynamic linker errors. Both systems have the same version of glibc installed. What's wrong? @@ -599,6 +597,24 @@ newer since we have explicitly add references to the functions causing the problem. But you nevertheless should use EGCS for other reasons (see ?binsize). +{GK} On some Linux distributions for PowerPC, you can see this when you have +built gcc or egcs from the Web sources (gcc versions 2.95 or earlier), then +re-built glibc. This happens because in these versions of gcc, exception +handling is implemented using an older method; the people making the +distributions are a little ahead of their time. + +A quick solution to this is to find the libgcc.a file that came with the +distribution (it would have been installed under /usr/lib/gcc-lib), do +`ar x libgcc.a frame.o' to get the frame.o file out, and add a line saying +`LDLIBS-c.so += frame.o' to the file `configparms' in the directory you're +building in. You can check you've got the right `frame.o' file by running +`nm frame.o' and checking that it has the symbols defined that you're +missing. + +This will let you build glibc with the C compiler. The C++ compiler +will still be binary incompatible with any C++ shared libraries that +you got with your distribution. + ?? How can I compile gcc 2.7.2.1 from the gcc source code using glibc 2.x? diff --git a/string/bits/string2.h b/string/bits/string2.h index d81f02f..4d27a44 100644 --- a/string/bits/string2.h +++ b/string/bits/string2.h @@ -441,7 +441,7 @@ __strcpy_small (char *__dest, case 8: __u->__ui = __src0_4; __u = (void *) __u + 4; - __u->__usi = __src4_4; + __u->__ui = __src4_4; break; } return __dest; -- 2.7.4