home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.linux
- Path: sparky!uunet!cs.utexas.edu!zaphod.mps.ohio-state.edu!uwm.edu!rpi!usenet.coe.montana.edu!news.u.washington.edu!serval!hlu
- From: hlu@eecs.wsu.edu (H.J. Lu)
- Subject: Re: 0.98pl5 kills tcsh-6.02: Where can I find the tcsh source?
- Message-ID: <1992Nov20.190520.474@serval.net.wsu.edu>
- Sender: news@serval.net.wsu.edu (USENET News System)
- Organization: School of EECS, Washington State University
- References: <1ehbo8INN9kp@usenet.INS.CWRU.Edu>
- Date: Fri, 20 Nov 92 19:05:20 GMT
- Lines: 58
-
- In article <1ehbo8INN9kp@usenet.INS.CWRU.Edu>, sdh@po.CWRU.Edu (Scott D. Heavner) writes:
- |>
- |> I jumped from pl3 to pl5 and now I can't get tcsh-6.02 to
- |> work. At first I thought it was a big problem with pl5 because I
- |> couldn't log in as anyone. Then I dropped back to pl3 and changed all
- |> my login shells from tcsh to bash and pl5 at least lets me in.
- |>
- |> Now, where can I find sources for tcsh-6.02? I went and
- |> downloaded what I thought was the source, but it turned out to be a
- |> binary and a diff file.
- |>
- |> tcsh doesn't give me the recompile error that Linus warned of;
- |> however, my copy of kermit and man do (but kermit hasn't worked
- |> since pl1 -- anyone know where I can find these sources too).
- |>
- |> Scott
- |> sdh@po.cwru.edu
- |>
-
- That is caused by sigaction (sig, NULL, old). It has been fixed in
- libc 4.2. However, since it uses gcc 2.3.2 and libg++ 2.3, both of which
- are still in alpha, I cannot release them to public. You have a few choices
-
- 1. Join GCC channel and use alpha versions. They usually fixed old bugs but
- may have new ones. So far I haven't heard any.
-
- 2. Here is the new sigaction (), compile it yourself and make your own
- shared image.
-
- 3. Don't use tcsh.
-
- H.J.
- ---
- #include <syscall.h>
- #include <signal.h>
- #include <errno.h>
-
- /* There may be wrong. Do nm libc.a to see what we get there. */
- extern void ____sig_restore();
- extern void ____masksig_restore();
-
- int
- sigaction(int sig,struct sigaction * new, struct sigaction * old)
- {
- if (new) {
- if (new->sa_flags & SA_NOMASK)
- new->sa_restorer=____sig_restore;
- else
- new->sa_restorer=____masksig_restore;
- }
-
- __asm__("int $0x80":"=a" (sig)
- :"0" (__NR_sigaction),"b" (sig),"c" (new),"d" (old));
- if (sig>=0)
- return 0;
- errno = -sig;
- return -1;
- }
-