90 lines
4.1 KiB
Plaintext
90 lines
4.1 KiB
Plaintext
Before I forget! This code, binaries, etc. all fall under the GNU
|
|
software license. I have included a copy of it in this directory, for
|
|
your reading pleasure. The sources are also covered by additional
|
|
copyrights.
|
|
|
|
This is a preliminary port of libc-4.6.27 for the Alpha. The code has
|
|
been taken from several sources, including the original Linux libc,
|
|
the version of 4.x that was released for the 32-bit port of Linux to
|
|
the Alpha, and glibc-1.0.9. In particular, the math routines are the
|
|
generic version found in glibc, and much of the system-specific code
|
|
was taken from the 32-bit Alpha libc. Much credit goes to Jim Paradis
|
|
for making gcc available & putting up the source to the 1.0 libc!
|
|
|
|
The library has been tested fairly extensively; all of the tests
|
|
included with the library have passed, and it has been used to
|
|
successfully build many small and large apps, including emacs and gcc;
|
|
perl needs to be tested, not because it's useful but because it's
|
|
evil.
|
|
|
|
You'll need to be using at least kernel version 1.3.1 for this to work
|
|
properly, and preferably the latest 1.3.x kernel release.
|
|
|
|
Several system calls are still non-functional because they are missing
|
|
from the kernel. These calls currently invoke the appropriate syscall
|
|
in the kernel, but if it's not currently implemented you will see a
|
|
message on the console containing a string like
|
|
sc<num,x,x>
|
|
|
|
where num is the number of the syscall.
|
|
|
|
A few others have been emulated a la the OSF/1 way: time, stime,
|
|
alarm, times, nice and creat. pause() has been faked with a while
|
|
loop and a long sleep(). utimes and utime do the correct things.
|
|
|
|
I/O calls (outb, outw, inb, inw, ioperm) have been implemented by
|
|
David Mosberger-Tang (davidm@cs.arizona.edu). They currently only work
|
|
on the Noname systems, and any programs compiled with this library
|
|
will also only work on a Noname system. We hope to eventually have
|
|
this issue resolved, however, with runtime detection of the machine &
|
|
doing the appropriate thing depending on what platform the program is
|
|
running on.
|
|
|
|
Probably the biggest lack is that the IEEE FPU code doesn't work,
|
|
because I haven't been able to come up with a fpu_control.h header
|
|
with the appropriate defines. I haven't noticed any problems, but...
|
|
|
|
Most of the necessary changes to the library made were because stabs
|
|
aren't working, so a lot of the aliasing had to be redone (and
|
|
unfortunately, there is some overhead because many of the calls are
|
|
being done with an additional level of indirection). Many of the
|
|
makefiles had to be altered to accomodate the new configuration
|
|
issues. And not a few bugs got fixed in the process.
|
|
|
|
INSTALLATION
|
|
|
|
You'll need to install a copy of gcc-2.7.0 from grocne.enc.org in
|
|
/pub/alpha. Grab the gcc-2.7.0-bins.tar.gz file, su to root, and
|
|
extract it from /. If you installed Jim Paradis' gcc-2.6.0, you'll
|
|
need to remove it first, along with gas and ld.
|
|
|
|
Once gcc is installed, su to root and untar this file from /. It'll
|
|
put includes in /usr/include & libraries in /usr/lib.
|
|
|
|
In theory, you now have a working "linux" development environment.
|
|
99% of the headers are unchanged from the standard libc-4.6.27
|
|
installation, and the libraries work almost the same, so configuring
|
|
software for linux will *usually* allow it to build without any
|
|
problems.
|
|
|
|
The biggest difficulty I've run into is software that tries to work
|
|
with both OSF/1 and Linux. Many programs also assume that if __alpha__
|
|
or __alpha is defined it's on a box running OSF/1, but they also see
|
|
that linux is defined. So the programs try to configure themselves
|
|
for both OSes, with varying degrees of success.
|
|
|
|
Emacs requires a little bit of mangling to work correctly, as well as
|
|
tcsh; I can make diffs available if desired. Most of the linux-specific
|
|
programs (such as util-linux) require no changes. And GNU textutils,
|
|
shellutils, and fileutils built right out of the box for me--no
|
|
changes were needed at all.
|
|
|
|
The networking code is very similar to the Linux one currently. This
|
|
will probably be changing in the near future to be as fully BSD
|
|
compatible as possible--gratuitous changes for the sake of Linux seem
|
|
foolish to me.
|
|
|
|
Good luck! If you find problems, or fix things, please let me know.
|
|
Bob
|
|
manson@magnus.acs.ohio-state.edu
|