aboutsummaryrefslogtreecommitdiff
path: root/FAQ
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-22 15:00:08 +0000
committerRoland McGrath <roland@gnu.org>1996-06-22 15:00:08 +0000
commit78b5ba3eb73f9fce0eb72061747846c507fd6cd2 (patch)
treea4a538526a61661c0e4accf6475a4752731c781f /FAQ
parent* elf/dl-load.c (_dl_map_object_from_fd): Fix mapping and l_phdr (diff)
downloadglibc-78b5ba3eb73f9fce0eb72061747846c507fd6cd2.tar.gz
glibc-78b5ba3eb73f9fce0eb72061747846c507fd6cd2.tar.bz2
glibc-78b5ba3eb73f9fce0eb72061747846c507fd6cd2.zip
Sat Jun 22 10:44:09 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* rpm/template (Source): New field. (%prep, %build, %install): New sections. (%files): Add %doc FAQ NEWS NOTES README. * rpm/rpmrc (builddir): Removed.
Diffstat (limited to 'FAQ')
-rw-r--r--FAQ60
1 files changed, 48 insertions, 12 deletions
diff --git a/FAQ b/FAQ
index 2714779ae8..1a434d0c94 100644
--- a/FAQ
+++ b/FAQ
@@ -31,12 +31,14 @@ please let me know.
[Q6] ``Do I need some more things to compile GNU C Library?''
-[Q7] ``When I run `nm libc.so|grep " U "' on the produced library
- I still find unresolved symbols? Can this be ok?''
+[Q7] ``When I run `nm -u libc.so' on the produced library I still
+ find unresolved symbols? Can this be ok?''
[Q8] ``I expect GNU libc to be 100% source code compatible with
the old Linux based GNU libc. Why isn't it like this?''
+[Q9] ``Why does getlogin() always return NULL on my Linux box?''
+
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems does the GNU C Library run on?''
@@ -50,7 +52,8 @@ in the future are:
*-*-gnu GNU Hurd
i[3456]86-*-linux Linux-2.0 on Intel
- alpha-*-linux Linux on Alpha
+ m68k-*-linux Linux-2.0 on Motorola 680x0
+ alpha-*-linux Linux-2.0 on DEC Alpha
Other Linux platforms are also on the way to be supported but I need
some success reports first.
@@ -75,14 +78,14 @@ archiver.
The GNU CC is found like all other GNU packages on
ftp://prep.ai.mit.edu/pub/gnu
-or better one of the many mirrors.
+or better one of the many mirror sites.
You always should try to use the latest official release. Older
versions might not have all the features GNU libc could use.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
-[Q3] ``When starting make I get only errors messages.
+[Q3] ``When starting `make' I get only errors messages.
What's wrong?''
[A3] {UD} You definitely need GNU make to translate GNU libc. No
@@ -112,7 +115,8 @@ you should use the GNU binutils if they provide at least the same
functionality as your system's tools.
Always get the newest release of GNU binutils available.
-Older releases are known to have bugs that affect building the GNU C library.
+Older releases are known to have bugs that affect building the GNU C
+Library.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@@ -120,6 +124,11 @@ Older releases are known to have bugs that affect building the GNU C library.
[A6] {UD} Yes, there are some more :-).
+* GNU gettext; the GNU libc is internationalized and partly localized.
+ For bringing the messages for the different languages in the needed
+ form the tools from the GNU gettext package are necessary. See
+ ftp://prep.ai.mit.edu/pub/gnu or better any mirror site.
+
* lots of diskspace (for i386-linux this means, e.g., ~70MB).
You should avoid compiling on a NFS mounted device. This is very
@@ -128,7 +137,7 @@ Older releases are known to have bugs that affect building the GNU C library.
* plenty of time (approx 1h for i386-linux on i586@133 or 2.5h or
i486@66).
- If you are interested in some more measurements let me know.
+ If you have some more measurements let me know.
* Some files depend on special tools. E.g., files ending in .gperf
need a `gperf' program. The GNU version (part of libg++) is known
@@ -139,10 +148,13 @@ Older releases are known to have bugs that affect building the GNU C library.
+ the header files of the Linux kernel must be available in the
search path of the CPP as <linux/*.h> and <asm/*.h>.
+* Some files depend on special tools. E.g., files ending in .gperf
+ need a `gperf' program. The GNU version (part of libg++) is known
+ to work while some vendor versions do not.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
-[Q7] ``When I run `nm libc.so|grep " U "' on the produced library
- I still find unresolved symbols? Can this be ok?''
+[Q7] ``When I run `nm -u libc.so' on the produced library I still
+ find unresolved symbols? Can this be ok?''
[A7] {UD} Yes, this is ok. There can be several kinds of unresolved
symbols:
@@ -150,6 +162,8 @@ symbols:
* magic symbols automatically generated by the linker. Names are
often like __start_* and __stop_*
+* symbols starting with _dl_* come from the dynamic linker
+
* symbols resolved by using libgcc.a
(__udivdi3, __umoddi3, or similar)
@@ -165,7 +179,7 @@ errors while linking before deciding there is a problem.
[Q8] ``I expect GNU libc to be 100% source code compatible with
the old Linux based GNU libc. Why isn't it like this?''
-[A8] {DMT} Not every extension in Linux libc's history was well
+[A8] {DMT,UD} Not every extension in Linux libc's history was well
thought-out. In fact it had a lot of problems with standards compliance
and with cleanliness. With the introduction of a new version number these
errors now can be corrected. Here is a list of the known source code
@@ -190,6 +204,14 @@ incompatibilities:
corresponds to the third argument of the Linux reboot system call.
That is, a call of the form reboot(a, b, c) needs to be changed into
reboot(c).
+ Beside this the header <sys/reboot.h> defines the needed constants
+ for the argument. These RB_* constants should be used instead of the
+ cryptic magic numbers.
+
+* swapon(): the interface of this function didn't changed, but the
+ prototype is in a separate header file <sys/swap.h>. For the additional
+ argument of of swapon() you should use the SWAP_* constants from
+ <linux/swap.h>, which get defined when <sys/swap.h> is included.
* errno: If a program uses variable "errno", then it _must_ include header
file <errno.h>. The old libc often (erroneously) declared this variable
@@ -215,12 +237,26 @@ incompatibilities:
init_module init_module <sys/module.h>
syslog ksyslog_ctl <sys/klog.h>
-* lpd: Older versions of lpd depend on an routine called _validuser().
+* lpd: Older versions of lpd depend on a routine called _validuser().
The library does not provide this function, but instead provides
__ivaliduser() which has a slightly different interfaces. Simply
- upgrading to a newer lpd should fix this problem (e.g., the BSD 4.4
+ upgrading to a newer lpd should fix this problem (e.g., the 4.4BSD
lpd is known to be working).
+
+~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
+[Q9] ``Why does getlogin() always return NULL on my Linux box?''
+
+[A9] {UD} The GNU C library has a format for the UTMP and WTMP file
+which differs from what your system currently has. It was extended to
+fulfill the needs of the next years when IPv6 is introduced. So the
+record size is different, fields might have a different position and
+so reading the files written by functions from the one library cannot
+be read by functions from the other library. Sorry, but this is what
+a major release is for. It's better to have a cut now than having no
+means to support the new techniques later.
+
+
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~