zsh-workers
 help / color / mirror / code / Atom feed
* bugs in 3.0.6 (at least on Solaris 8)
@ 1999-10-27 20:08 Mike Sullivan
  1999-10-27 20:39 ` Zefram
  0 siblings, 1 reply; 2+ messages in thread
From: Mike Sullivan @ 1999-10-27 20:08 UTC (permalink / raw)
  To: zsh-workers


Apologies if this isn't the right place to report bugs, but it's pointed
to by the faq, so hopefully it is :-) And this is not an attack on zsh either,
I just read like that sometimes.

A couple things I found with zsh 3.0.6 in Solaris 8. Most important is
that since the signal names are extracted with an awk script run on
<sys/signal.h>, zsh is broken because the signal macros are not there
anymore. They're in <sys/iso/signal_iso.h>. The arrays in signames.h
become mostly empty and zsh pretty much dies when a child is killed by
a signal. I've made my version look at the new header, but it seems
particularly bad that the build succeeds, but we blindly index outside
the array. It would be nice if the build failed if no signals were
found, or we checked against the array bounds. This seems fixed in
3.1.6, as configure finds iso/signal_iso.h, but I thought it might be
useful to know for when 8 ships (useful for 3.0.7, if needed).

We're also currently worrying if we should undo the macro movement, but
we don't really expect you to be parsing the headers, so I don't know if
that will be undone (we had to do it for other reasons, I think C++-related).

I also had to fix builtin.c to handle rlim_t as an 'unsigned long long'. It
was trying to print rlim_t's (when compiled for large files) as "%qd", which
doesn't work on solaris. I have that hackish fix, which uses RLIM_T_IS_LONG_LONG
along with RLIM_T_IS_UNSIGNED if you want it. This seems to work in 3.1.6,
but it also doesn't seem to expect rlim_t to be 'unsigned long long', just
'long long'.

And one more thing - the #define'ing of HAVE_NIS or HAVE_NIS_PLUS based on
what the machine you're compiling on is running. Is that wise? At least around
here, you may be trying to use the same binary from /usr/local on machines
running different name services, and that breaks if it's trying to do NIS
calls on a NIS+ machine. I turned those off, so we fall back to getpwent. 
Direct nameservice calls are indeed faster, but this seems more portable in
light of the variety of nameservices around, and the various ways you can
order them.

I'm done now.

	Mike

--
Mike Sullivan - Solaris Kernel Group - Mike.Sullivan@Sun.COM
'And he smiled as he said, with a twinkle in his eye,
"Merry Christmas to all - now you're all gonna die!"'
    - The Night Santa Went Crazy


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: bugs in 3.0.6 (at least on Solaris 8)
  1999-10-27 20:08 bugs in 3.0.6 (at least on Solaris 8) Mike Sullivan
@ 1999-10-27 20:39 ` Zefram
  0 siblings, 0 replies; 2+ messages in thread
From: Zefram @ 1999-10-27 20:39 UTC (permalink / raw)
  To: Mike Sullivan; +Cc: zsh-workers

Mike Sullivan wrote:
>A couple things I found with zsh 3.0.6 in Solaris 8. Most important is
>that since the signal names are extracted with an awk script run on
><sys/signal.h>, zsh is broken because the signal macros are not there
>anymore. They're in <sys/iso/signal_iso.h>.

which reminds me, recent glibc has <bits/signum.h> and <bits/resource.h>.

-zefram

*** configure.in-	Wed Oct 27 21:24:33 1999
--- configure.in	Wed Oct 27 21:32:53 1999
***************
*** 838,849 ****
  if test -z "$sigfile_list"; then
    dnl In case we don't get the stuff from the preprocesor, use the old
    dnl list of standard places.
!   sigfile_list="/usr/include/bsd/sys/signal.h
  /usr/include/signum.h
  /usr/include/asm/signum.h
  /usr/include/asm/signal.h
  /usr/include/linux/signal.h
  /usr/include/sys/signal.h
  /dev/null"
  fi
  for SIGNAL_H in $sigfile_list
--- 838,851 ----
  if test -z "$sigfile_list"; then
    dnl In case we don't get the stuff from the preprocesor, use the old
    dnl list of standard places.
!   sigfile_list="/usr/include/sys/iso/signal_iso.h
! /usr/include/bsd/sys/signal.h
  /usr/include/signum.h
  /usr/include/asm/signum.h
  /usr/include/asm/signal.h
  /usr/include/linux/signal.h
  /usr/include/sys/signal.h
+ /usr/include/bits/signum.h
  /dev/null"
  fi
  for SIGNAL_H in $sigfile_list
***************
*** 856,861 ****
--- 858,866 ----
    wc -l | sed 's/[ 	]//g'`
    test "x$nsigs" != x && test "$nsigs" -ge 7 && break
  done
+ if test $SIGNAL_H = "/dev/null"; then
+   AC_MSG_ERROR(SIGNAL MACROS NOT FOUND:  please report to developers)
+ fi
  zsh_cv_path_signal_h=$SIGNAL_H
  ])
  SIGNAL_H=$zsh_cv_path_signal_h
***************
*** 870,875 ****
--- 875,881 ----
                     /usr/include/asm/resource.h	     dnl
                     /usr/include/linux/resource.h     dnl
                     /usr/include/sys/resource.h       dnl
+                    /usr/include/bits/resource.h      dnl
                     /usr/include/resourcebits.h       dnl
                     /dev/null;
  do
***************
*** 879,885 ****
  done
  zsh_cv_path_rlimit_h=$RESOURCE_H
  if test $RESOURCE_H = "/dev/null" -a $ac_cv_func_getrlimit = yes; then
!   echo "RLIMIT MACROS NOT FOUND:  please report to developers"
  fi])
  RLIMITS_INC_H=$zsh_cv_path_rlimit_h
  dnl rlimits.h only appears in dependencies if we are actually using it.
--- 885,891 ----
  done
  zsh_cv_path_rlimit_h=$RESOURCE_H
  if test $RESOURCE_H = "/dev/null" -a $ac_cv_func_getrlimit = yes; then
!   AC_MSG_WARN(RLIMIT MACROS NOT FOUND:  please report to developers)
  fi])
  RLIMITS_INC_H=$zsh_cv_path_rlimit_h
  dnl rlimits.h only appears in dependencies if we are actually using it.
END


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1999-10-27 20:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-10-27 20:08 bugs in 3.0.6 (at least on Solaris 8) Mike Sullivan
1999-10-27 20:39 ` Zefram

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).