File: release.libc

package info (click to toggle)
libc-sparc 5.3.12-2
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 18,664 kB
  • ctags: 53,237
  • sloc: ansic: 181,379; asm: 5,080; makefile: 3,340; lex: 521; sh: 439; yacc: 401; awk: 28
file content (260 lines) | stat: -rw-r--r-- 9,447 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
Hi, Gals and Guys,

0. The .rhosts bug is fixed.
1. A bunch of IEEE Std 1003.1b-1993 functions are added.
2. nanosleep () is commented out in sysdeps/pthreads/mit/sleep.c due to
   the conflict with IEEE Std 1003.1b-1993.

Important Notes:

0. libieee.a is removed. The default is IEEE now.
1. If OLD_GCC is not set to "true", libgcc, crtbegin[S]/crtend[S].o
   will be removed from the Linux C library and you need to use the
   ones compiled from the next gcc source.
2. I used a new malloc from Doug Lea. It seems better than the one
   currently used in libc. You can set MALLOC to malloc-930716
   to use the GNU malloc.
3. I used the Linux kernel 1.3.86 to compile this C library. The MIT
   pthread part may not compile with other kernels since struct
   timespec in linux/include/linux/time.h in the kernel keeps changing.
   You can remove pthreads from DIRS in libc/sysdeps/Makefile to
   avoid building the MIT pthread kernel.

I put some of my patches for other packages at:

	ftp://ftp.cviog.uga.edu/fixes

This is the beta release of the Linux C library 5.3.12. Please read
the ChangeLog for details regarding changes/bug fixes.

DISTRIBUTION SITES:

The primary FTP sites for the compiler/C library are:

*	ftp://tsx-11.mit.edu/pub/linux/packages/GCC/private/tofu
*	ftp://sunsite.unc.edu/pub/Linux/GCC/private/tofu

The secondary FTP sites are:

*	ftp://linux.nrao.edu/pub/linux/packages/GCC_private/tofu
*	ftp://i44ftp.info.uni-karlsruhe.de/pub/linux/libc/private/dontuse
*	ftp://ftp.ctd.comsat.com/pub/linux/private/GCC
 
Due to the slow link, secondary ftp sites may not be updated as quickly
as the primaries.
 
DISTRIBUTION FILES:

1.	libc-5.3.12.bin.tar.gz

REQUIRED. This package contains the header files for libc, shared and
static ELF libraries libc and libm, and the static ELF library libbsd.a. 
The header files in libc-5.3.12.bin.tar.gz are not complete. You need to
install the kernel source tree for the system-dependent header files.

The header files are in lib-x.y.z.bin.tar.gz and libc-x.y.z.tar.gz. You
can do

# gzip -dc lib-x.y.z.bin.tar.gz | tar xvvf - usr/include

to extract the header files without the binaries files. A separate
tar file for the header files may cause unnecessary confusion.

2.	libc-5.3.12.tar.gz
 
Source tree for libc and header files.

3.	libc-5.3.11-5.3.12.diff.gz

Context diffs against the source tree from the previous libc release.
Please make sure the empty libc/regex/rx.h is deleted.

MISSING LIBRARIES:

The only libraries included in this package are the Linux C library, libc 
and the math library, libm.

ELF versions of libraries formerly included in the libc package can be 
found at the following FTP sites:

* gdbm		ftp://sunsite.unc.edu/pub/Linux/libs/db/gdbm-1.7.3-ELF.tar.gz
* db		ftp://sunsite.unc.edu/pub/Linux/libs/db/db-1.85.2.bin.tar.gz
* ncurses	ftp://ftp.tos.net/pub/linux/ncurses
* termcap	ftp://tsx-11.mit.edu/pub/linux/packages/GCC
		ftp://sunsite.unc.edu/pub/Linux/GCC

Gertjan van Wingerde (gertjan@cs.vu.nl) maintains the ELF db package.

Christopher Wiles (wileyc@moscow.com) maintains the ELF gdbm and
curses.

MacGyver <macgyver@tos.net> maintains the ELF ncurses.

NOTE: I strongly suggest using ncurses to replace curses/termcap. The
current ncurses supports ELF.

SYSTEM REQUIREMENTS:

* 	kernel 1.1.92 or above.  It may work with an older kernel if
	the QMAGIC format is supported. If you use the kernel 1.3.x,
	you should upgrade to 1.3.40 or above. Otherwise readv/writev
	system calls won't work right.
	To compile the MIT pthread kernel, you need to install the
	Linux kernel source code 1.3.57 or above. You can comment out
	pthreads in DIRS in libc/sysdeps/Makefile.
*	gcc-2.7.2 or above and binutils-2.6.0.12 or above.
*	ld.so-1.7.14 or above.  The latest version can be obtained from 
	ftp://ftp.ods.com/pub/linux
*	libg++ 2.7.1.4 or above.  This is only necessary for development 
	using c++.

BINARY INSTALLATION:

Ensure that /usr/include/asm and /usr/include/linux are a symlinks to 
their counterparts in the kernel source tree.  For example, if your kernel
source resides within /usr/src/linux, execute: 

ln -s -f /usr/src/linux/include/asm /usr/include/asm
ln -s -f /usr/src/linux/include/linux /usr/include/linux

As some programs need <linux/autoconf.h>, the following two commands may 
be necessary to generate that header file:
			  
cd /usr/src/linux
make config

Verify that /var/run/utmp and /var/log/wtmp exist.  Replace all other 
occurances of utmp and wtmp (/etc/utmp, for example) with symlinks.

Assuming the libc binary tarfile is in /, and as root, execute:
			       
cd /
rm -f /lib/libc.so /lib/libm.so
rm -f /usr/lib/libc.so /usr/lib/libm.so
rm -f /usr/include/iolibio.h /usr/include/iostdio.h 
rm -f /usr/include/ld_so_config.h /usr/include/localeinfo.h
rm -rf /usr/include/netinet /usr/include/net /usr/include/pthread
gzip -dc libc-5.3.12.bin.tar.gz | tar xvf -

SOURCE INSTALLATION:

Unpack the libc source tarfile in your source directory.  Refer to the 
README for compilation instructions.

COMPATIBILITY NOTES:

If your kernel uses system call numbers 135 to 146 for unintended
purposes, this library may not work for you. One example is the kswap
kernel patch for 1.2.x uses the same system call numbers for other
uses. That breaks this library. Please compare/check <sys/syscall.h>,
<asm/unistd.h> and <linux/unistd.h>. You have to make sure those
system call numbers are consistent from libc to your kernel.

There is no support for a.out libraries in this source tree.  The latest
version of the a.out library suite is libc-4.7.5, which can be obtained
from one of the ftp sites listed below. 

The structure DIR, defined in sysdeps/linux/dirstream.h, was changed in
release 5.2.0.  If you upgrade from release 5.1.4 or earlier to release
5.2.0 or later, you must reboot after installing the new libraries.  If
you compile your own library, *do not* "make install".  Instead, copy the
new libc.so* to /lib, do "ldconfig -v", reboot, then do "make install" 

A dirent bug, which erroneously defined d->reclen to d->namlen if USE_GNU
was defined, has been fixed.  Unfortunately, some GNU packages depend on
this bug.  GNU make 3.xx is one of them.  A patch is included here.

A back door has been added for the file descriptor in DIR.  You need to
define DIRENT_ILLEGAL_ACCESS to access the dd_fd field.  You should use
dirfd () to get the the file descriptor in DIR.  Use this at your own
risk. 

A new dirent bug is fixed. The ELF nfsd should work fine. 

<iostdio.h> and <iolibio.h> have been removed.

PTHREAD NOTES:

The MIT pthread library 1.60 beta4 seems to work.  It passed most of tests
in the MIT pthread package. The pthread libraries are not installed by
default, nor are binaries included.  You may want to remove "-g" from the
default CFLAGS for the pthread library.  You need to install the
library "elfshared/libpthread.so.1.60.beta4" in either /usr/local/lib
or /usr/lib manually.  You must run ldconfig after installing them. 

To compile pthread programs, you need to add -D_MIT_POSIX_THREADS to
CFLAGS and -lpthread to LDFLAGS.  The network _r functions are still
missing. Due to the limitation of the static ELF library, pthread only
works with the shared libpthread and libc. It is very tricky to make
static libpthread and libc work.

NYS NOTES:

NYS binaries are not provided this time.  NYS 0.27.4 is included in the 
source tree as a compile-time option.  Please consult README.nys and other 
applicable NYS documents before attempting NYS installation. I disabled
DBM for NYS. Some changes are needed to support non-builtin dbm. 

INFORMATION/DOCUMENTATION:

ELF related WWW pages:

*	http://www.intac.com/~cully/elf.html
*	http://www.sjc.ox.ac.uk/users/barlow/linux-gcc.html
*	http://www.blackdown.org/elf/elf.html

ELF documentation:

*	ftp://sunsite.unc.edu/pub/Linux/GCC/elf.ps.gz
*	ftp://sunsite.unc.edu/pub/Linux/GCC/elf.latex.tar.gz
*	ftp://sunsite.unc.edu/pub/Linux/GCC/ELF.doc.tar.gz

H.J.
hjl@gnu.ai.mit.edu
04/24/96
----
RCS file: /home/cvs/gnu/make/dir.c,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 dir.c
*** 1.1.1.1	1995/06/25 03:27:16
--- dir.c	1995/06/25 03:55:22
***************
*** 20,26 ****
  
  #if	defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
  #include <dirent.h>
! #ifndef	__GNU_LIBRARY__
  #define D_NAMLEN(d) strlen((d)->d_name)
  #else	/* GNU C library.  */
  #define D_NAMLEN(d) ((d)->d_namlen)
--- 20,26 ----
  
  #if	defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
  #include <dirent.h>
! #ifndef	__BAD_GNU_LIBRARY__
  #define D_NAMLEN(d) strlen((d)->d_name)
  #else	/* GNU C library.  */
  #define D_NAMLEN(d) ((d)->d_namlen)
===================================================================
RCS file: /home/cvs/gnu/make/glob/glob.c,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 glob.c
*** 1.1.1.1	1995/06/25 03:27:18
--- glob/glob.c	1995/06/25 03:56:01
***************
*** 64,70 ****
  
  #if	defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
  #include <dirent.h>
! #ifndef	__GNU_LIBRARY__
  #define D_NAMLEN(d) strlen((d)->d_name)
  #else	/* GNU C library.  */
  #define D_NAMLEN(d) ((d)->d_namlen)
--- 64,70 ----
  
  #if	defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__)
  #include <dirent.h>
! #ifndef	__BAD_GNU_LIBRARY__
  #define D_NAMLEN(d) strlen((d)->d_name)
  #else	/* GNU C library.  */
  #define D_NAMLEN(d) ((d)->d_namlen)