1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

Fri May 24 02:31:36 1996 Ulrich Drepper <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/speed.c: Add new speed value 460800.

Thu May 23 23:09:33 1996  Ulrich Drepper  <drepper@cygnus.com>

	* FAQ: Add answer for 100% source code compatibility to Linux
	libc by David Mosberger-Tang.

	Update from bind-4.3.4-T3B.
	* inet/arpa/inet.h: Add prototypes for inet_pton, inet_ntop,
	inet_nsap_addr, and inet_nsap_ntoa.
	* resolv/gethnamaddr.c: Correct compatibility problems (sprintf),
	remove fourth argument to inet_pton and correct handling of
	host_addr passing.
	* resolv/inet_ntop.c: Correct compatibility problems (sprintf).
	* resolv/inet_pton.c: Remove fourth argument.
	* resolv/resolv.h: Remove prototypes for inet_nsap_addr and
	inet_nsap_ntoa.  Now on <arpa/inet.h>.

	* stdlib/gmp-impl.h: Add prototypes for internal functions.

Thu May 23 22:49:15 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Rules (subdir_install): Remove dep on sor-$(subdir).
	(static-only-routines): Removed variable and associated rules.

	* sysdeps/unix/sysv/linux/alpha/Makefile (headers): Add
 	sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/ffs.S,
 	sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
 	sysdeps/unix/sysv/linux/alpha/start.S,
This commit is contained in:
Roland McGrath
1996-05-24 20:16:39 +00:00
parent 510ca033d6
commit 613a76ff52
15 changed files with 201 additions and 83 deletions

78
FAQ
View File

@ -19,6 +19,28 @@ this document let me know.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems the GNU C Library runs on?''
[Q2] ``What compiler do I need to translate GNU libc?''
[Q3] ``When starting make I get only errors messages.
What's wrong?''
[Q4] ``After I changed configure.in I get `Autoconf version X.Y.
or higher is required for this script'. What can I do?''
[Q5] ``Do I need a special linker or archiver?''
[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?''
[Q8] ``I expect GNU libc to be 100% source code compatible with
the old Linux based GNU libc. Why isn't it like this?''
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems the GNU C Library runs on?''
[A1] {UD} This is difficult to answer. The file `README' lists the
architectures GNU libc is known to run *at some time*. This does not
mean that it still can be compiled and run on them in the moment.
@ -128,11 +150,67 @@ errors while linking.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[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
thought. In fact it had a lot of problems with standard compliance
and cleanliness. With the introduction of a new version number these
errors now can be corrected. The following list shows a list of the
know source code incompatibilities.
* _GNU_SOURCE: glibc does not automatically define _GNU_SOURCE. Thus,
if a program depends on GNU extensions, it is necessary
to compile it with C compiler option -D_GNU_SOURCE. This difference
normally mainfests itself in the form of missing prototypes and/or
data type definitions. Thus, if you get such errors, the first thing you
should do is grep the header files in /usr/include and /usr/include/sys
to check whether the functions are really missing or whether it is
just necessary to add a define of _GNU_SOURCE. Similar comments apply
to _BSD_SOURCE, _POSIX_SOURCE, _SVID_SOURCE etc (see
/usr/include/features.h).
* reboot(): GNU libc sanitizes the interface of reboot() to be more
compatible with the interface used on other OSes. In particular,
reboot() as implemented in glibc takes just one argument. This argument
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).
* errno: If a program uses variable "errno", then it _must_ include header
file <errno.h>. The old libc often (erroneously) declared this variable
implicitly as a side-effect of including other libc header files. glibc
is careful to avoid such namespace pollution, which, in turn, means that
you really need to include the header files that you depend on. This
difference normally manifests itself in the form of the compiler
complaining about the references of the undeclared symbol "errno".
* Linux-specific syscalls: All Linux system calls now have appropriate
library wrappers and corresponding declarations in various header files.
This is because the syscall() macro that was traditionally used to
work around missing syscall wrappers are inherently non-portable and
error-prone. The following tables lists all the new syscall stubs,
the header-file declaring their interface and the system call name.
syscall name: wrapper name: declaring header file:
------------- ------------- ----------------------
bdflush bdflush <unistd.h>
create_module create_module <sys/module.h>
delete_module delete_module <sys/module.h>
get_kernel_syms get_kernel_syms <sys/module.h>
init_module init_module <sys/module.h>
syslog ksyslog_ctl <unistd.h>
To get the Linux-specific declarations in <unistd.h>, you'll need
to define C pre-processor macro _LINUX_SOURCE during compilation.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Answers were given by:
{UD} Ulrich Drepper, <drepper@cygnus.com>
{DMT} David Mosberger-Tang, <davidm@AZStarNet.com>
Local Variables: