Subject: Re: Precompiled vax packages anyone?
To: Johnny Billquist <bqt@Update.UU.SE>
From: Christoph Martin <martin@uni-mainz.de>
List: port-vax
Date: 02/27/1998 14:31:48
Johnny Billquist <bqt@Update.UU.SE> writes:

> 
> > > The crash when emacs sumps is because of an error in an include
> > > file. I don't remember which right now, but I fixed it a long time
> > > ago, to that I do have a dumped emacs-19 here.
> > 
> > So do I, actually -- 'temacs' crashes while dumping 'emacs', but the
> > dumped 'emacs' is still runnable, and hasn't surprised me yet.  Can
> > you remember anything about _when_ it crashes?  That is, whether the
> > unexec'd image is complete or not?  If I'm running a risk by using it,
> > I wouldn't mind knowing about it...  :-)
> 
> Unfortunately I don't remember exactly what caused the crash, but I think
> it was something about the includes-files defining the format of a.out
> files.
> (This was too long ago... Like one and a half year ago...)
> Anyway, it is fixable, since I obviously managed to dump emacs correctly.
>

Ok, now. We looked into the code and did some debugging.

Because emacs has no defines for the combination netbsd + vax. So it
uses the unexec code for sunos. (unexec has to do the dumping of
temacs and the fixup to get executable on the various systems.) Now
here is the problem: netbsd-vax has no shared libraries, but this case
is not handeled. So temacs tries to "fix" the dumped emacs to get it
working with shared libraries (function calls etc..). This
"correction" fails on netbsd-vax und secfaults. The result is that no
fixes were made and so emacs can run correctly (I hope so.)

There are two tiny patches that get emacs working correctly. I append
them below.

Christoph

*** src/ecrt0.c.orig    Sat Sep 20 04:00:48 1997
--- src/ecrt0.c Thu Feb 19 12:37:32 1998
***************
*** 612,614 ****
--- 612,618 ----
  char *__progname;
  #endif
  #endif /* __bsdi__ */
+ 
+ #ifdef __NetBSD__
+ char *__progname;
+ #endif
*** src/s/netbsd.h.orig Wed Jun 11 03:09:55 1997
--- src/s/netbsd.h      Wed Feb 18 14:14:12 1998
***************
*** 3,9 ****
  /* Get most of the stuff from bsd4.3 */
  #include "bsd4-3.h"
  
! #if defined (__alpha__) && !defined (__ELF__)
  #define NO_SHARED_LIBS
  #endif
  
--- 3,9 ----
  /* Get most of the stuff from bsd4.3 */
  #include "bsd4-3.h"
  
! #if defined (__alpha__) && !defined (__ELF__) || defined(vax)
  #define NO_SHARED_LIBS
  #endif
  


-- 
============================================================================
Christoph Martin, Uni-Mainz, Germany
 Internet-Mail:  Christoph.Martin@Uni-Mainz.DE
--------------export-a-crypto-system-sig -RSA-3-lines-PERL------------------
#!/usr/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
#what's this? see http://www.dcs.ex.ac.uk/~aba/rsa/