From f8cac037eea3e928b0d5e0c17990b6996159eec8 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 10 May 1996 22:55:26 +0000 Subject: Fri May 10 18:36:14 1996 Roland McGrath * FAQ: New file contributed by drepper. * time/Makefile (headers): Add timebits.h. * sysdeps/unix/sysv/linux/timebits.h: New file. * sysdeps/stub/timebits.h: New file. * time/time.h (CLK_TCK): Define to CLOCKS_PER_SEC. (CLOCKS_PER_SEC): Remove this macro. Instead #include . --- ChangeLog | 14 +++- FAQ | 140 +++++++++++++++++++++++++++++++++++++ sysdeps/stub/timebits.h | 25 +++++++ sysdeps/unix/sysv/linux/timebits.h | 26 +++++++ time/Makefile | 2 +- time/time.h | 9 ++- 6 files changed, 210 insertions(+), 6 deletions(-) create mode 100644 FAQ create mode 100644 sysdeps/stub/timebits.h create mode 100644 sysdeps/unix/sysv/linux/timebits.h diff --git a/ChangeLog b/ChangeLog index eafb3c4673..25c8235a7c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Fri May 10 18:36:14 1996 Roland McGrath + + * FAQ: New file contributed by drepper. + + * time/Makefile (headers): Add timebits.h. + * sysdeps/unix/sysv/linux/timebits.h: New file. + * sysdeps/stub/timebits.h: New file. + * time/time.h (CLK_TCK): Define to CLOCKS_PER_SEC. + (CLOCKS_PER_SEC): Remove this macro. Instead #include . + Fri May 10 16:22:44 1996 Michael I. Bushnell, p/BSG * string/argz-create.c (__argz_create): Restore const keyword to @@ -5,7 +15,7 @@ Fri May 10 16:22:44 1996 Michael I. Bushnell, p/BSG * string/argz.h (__argz_create, argz_create): Restore const keyword. * string/envz.c (envz_get): Don't declare ENTRY const. - + Fri May 10 11:48:03 1996 Miles Bader * string/argz.h (argz_create): Fix param type. @@ -18,7 +28,7 @@ Fri May 10 09:41:54 1996 Michael I. Bushnell, p/BSG from declaration of ARGV. * string/envz.h (envz_get): Omit const from declaration of return type. - + Thu May 9 09:17:46 1996 Roland McGrath * aclocal.m4 (AC_FD_MSG, AC_FD_CC): Fix these for autoconf weirdness. diff --git a/FAQ b/FAQ new file mode 100644 index 0000000000..9334108afa --- /dev/null +++ b/FAQ @@ -0,0 +1,140 @@ + Frequently Asked Question on GNU C Library + +As every FAQ this one also tries to answer the questions the user +might when using the pacakge. Please make sure you read this before +sending questions/bug reports to the maintainers. + +The GNU C Library is very complex. The building process exploits the +features available in tools generally available. But many things can +only be done using GNU tools. Also the code is sometimes hard to +understand because it has to be portable but on the other hand must be +fast. But you need not understand the details to use GNU C Library. +This will only be necessary if you intend to contribute or change it. + +If you have any question which you think might be worth answered in +this document let me know. + + --drepper@cygnus.com + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +[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. + +The systems glibc is known to work on in the moment and most probably +in the future are: + + *-*-gnu GNU Hurd + i[3456]86-*-linux Linux-2.0 on Intel + +Other Linux platforms are also on the way to be supported but I need +some success reports first. + +If you have a system not listed above (or in the `README' file) and +you are really interested in porting it, contact + + Roland McGrath +or Ulrich Drepper + + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +[Q2] ``What compiler do I need to translate GNU libc?'' + +[A2] {UD} It is (almost) impossible to compile GNU C Library using a +different compiler than GNU CC. A lot of extensions of GNU CC are +used to increase the portability and speed. + +But this does not mean you have to use GNU CC for using the GNU C +Library. In fact you should be able to use the native C compiler +because the success only depends on the binutils: the linker and +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. + +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. + What's wrong?'' + +[A3] {UD} You definitely need GNU make to translate GNU libc. No +other make program has the needed functionality. + +Versions before 3.74 have bugs which prevent correct execution so you +should upgrade to the latest version before starting the compilation. + + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +[Q4] ``After I changed configure.in I get `Autoconf version X.Y. + or higher is required for this script'. What can I do?'' + +[A4] {UD} You have to get the specified autoconf version (or a later) +from your favourite mirror of prep.ai.mit.edu. + + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +[Q5] ``Do I need a special linker or archiver?'' + +[A5] {UD} If your native versions are not too buggy you can work with +them. But GNU libc works best with GNU binutils. + +On systems where the native linker does not support weak symbols you +will not get a really ISO C compliant C library. Generally speaking +you should use the GNU binutils if they provide at least the same +functionality as your system's tools. + + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +[Q6] ``Do I need some more things to compile GNU C Library?'' + +[A6] {UD} Yes, there are some more :-). + +* lots of diskspace (for i386-linux this means, e.g., ~70MB) + + You should avoid compiling on a NFS mounted device. This is very + slow. + +* plenty of time (approx 1h for i386-linux on i586@133 or 2.5h or + i486@66). + + If you have some more interested measurements let me know. + + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +[Q7] ``When I run `nm libc.so|grep " U "' 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: + +* magic symbols automatically generated by the linker. Names are + often like __start_* and __stop_*- + +* symbols resolved by using libgcc.a + (__udivdi3, __umoddi3, or similar) + +* weak symbols, which need not be resolved at all + (currently fabs among others; this gets resolved if the program + is linked against libm, too.) + +Generally, you should make sure you find a real program which produces +errors while linking. + + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ + + + +Answers were given by: +{UD} Ulrich Drepper, + + +Local Variables: + mode:text +End: diff --git a/sysdeps/stub/timebits.h b/sysdeps/stub/timebits.h new file mode 100644 index 0000000000..8de0ebce8e --- /dev/null +++ b/sysdeps/stub/timebits.h @@ -0,0 +1,25 @@ +/* System-dependent timing definitions. Stub version. +Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _TIMEBITS_H +#define _TIMEBITS_H 1 + +#define CLOCKS_PER_SEC 60 + +#endif /* timebits.h */ diff --git a/sysdeps/unix/sysv/linux/timebits.h b/sysdeps/unix/sysv/linux/timebits.h new file mode 100644 index 0000000000..b5eaec91b0 --- /dev/null +++ b/sysdeps/unix/sysv/linux/timebits.h @@ -0,0 +1,26 @@ +/* System-dependent timing definitions. Linux version. +Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _TIMEBITS_H +#define _TIMEBITS_H 1 + +#include +#define CLOCKS_PER_SEC HZ /* XXX names not kosher */ + +#endif /* timebits.h */ diff --git a/time/Makefile b/time/Makefile index 5741853db4..8feb377dd4 100644 --- a/time/Makefile +++ b/time/Makefile @@ -21,7 +21,7 @@ # subdir := time -headers := time.h sys/time.h sys/timeb.h +headers := time.h sys/time.h sys/timeb.h timebits.h distribute := tzfile.h private.h scheck.c ialloc.c yearistype extra-objs = scheck.o ialloc.o zonenames $(tzfiles:%=z.%) diff --git a/time/time.h b/time/time.h index 5f9591419e..fda7f20387 100644 --- a/time/time.h +++ b/time/time.h @@ -40,11 +40,14 @@ __BEGIN_DECLS #ifdef _TIME_H -/* Processor clock ticks per second. */ -#define CLOCKS_PER_SEC 1 /* ??? */ +/* This defines CLOCKS_PER_SEC, which is the number of processor clock + ticks per second. */ +#include + +/* This is the obsolete POSIX.1-1988 name for the same constant. */ #ifdef __USE_POSIX -#define CLK_TCK 60 /* ??? */ +#define CLK_TCK CLOCKS_PER_SEC #endif #endif /* included. */ -- cgit 1.4.1