From: devet@adv.win.tue.nl (Arjan de Vet)
Newsgroups: comp.os.linux
Subject: [PATCH] Patches for elm 2.4.20 with gcc 2.3.3/jump 4.2
Keywords: elm, gcc
Date: 10 Jan 93 18:49:28 GMT
Followup-To: comp.os.linux
Organization: Eindhoven University of Technology, the Netherlands


Here are the patches required for elm 2.4 patchlevel 20. I used gcc 2.3.3
and jump table libs 4.2. I think there's a small bug in setjmp.h: the return
type of sigsetjmp should be int, not void:

-----------------------------------------------------------------------------
--- setjmp.h.org	Thu Dec 31 19:25:16 1992
+++ setjmp.h	Sun Jan 10 19:11:12 1993
@@ -57,7 +57,7 @@
 /* Linux uses sigsetjmp (). Store the calling environment in ENV,
    also saving the signal mask if SAVEMASK is nonzero.  Return 0.  */
 
-extern void sigsetjmp __P ((sigjmp_buf __env, int __savemask));
+extern int sigsetjmp __P ((sigjmp_buf __env, int __savemask));
 
 #else
 /* Store the calling environment in ENV, also saving the
-----------------------------------------------------------------------------

(I already reported this to H.J.).

Here's the full patch (which I submitted to the Elm maintainer):

-----------------------------------------------------------------------------
diff -cr elm-org/lib/ldstate.c elm/lib/ldstate.c
*** elm-org/lib/ldstate.c	Thu Dec 24 22:48:34 1992
--- elm/lib/ldstate.c	Sun Jan 10 17:03:57 1993
***************
*** 73,79 ****
--- 73,81 ----
      char buf[SLEN], *state_fname;
      int status, i;
      FILE *fp;
+ #ifndef linux		/* linux has atol() defined as a macro */
      extern long atol();
+ #endif /* linux */
  
      /* clear out the folder status record */
      fst->folder_name = NULL;
diff -cr elm-org/lib/ndbz.c elm/lib/ndbz.c
*** elm-org/lib/ndbz.c	Sat Dec 12 02:29:28 1992
--- elm/lib/ndbz.c	Sun Jan 10 17:04:11 1993
***************
*** 233,240 ****
--- 233,242 ----
  #define	MAPOUT(o)	((db->dbz_bytesame) ? (o) : bytemap((o), db->dbz_mybmap, db->dbz_conf.bytemap))
  
  /* externals used */
+ #ifndef linux		/* linux has atoi() and atol() defined as macros */
  extern int atoi();
  extern long atol();
+ #endif /* linux */
  
  /* misc. forwards */
  static long hash();
diff -cr elm-org/src/init.c elm/src/init.c
*** elm-org/src/init.c	Mon Dec  7 03:41:23 1992
--- elm/src/init.c	Sun Jan 10 19:39:05 1993
***************
*** 266,272 ****
--- 266,274 ----
  	  signal(SIGTERM, term_signal); 	/* Terminate signal         */
  	  signal(SIGILL,  ill_signal);		/* Illegal instruction      */
  	  signal(SIGFPE,  fpe_signal);		/* Floating point exception */
+ #ifndef linux		/* linux has no SIGBUS */
  	  signal(SIGBUS,  bus_signal);		/* Bus error  		    */
+ #endif /* linux */
  	  signal(SIGSEGV, segv_signal);		/* Segmentation Violation   */
  	  signal(SIGHUP,  hup_signal);		/* HangUp (line dropped)    */
  	  signal(SIGUSR1, usr1_signal);		/* User request 1	    */
diff -cr elm-org/src/leavembox.c elm/src/leavembox.c
*** elm-org/src/leavembox.c	Thu Dec 24 22:59:21 1992
--- elm/src/leavembox.c	Sun Jan 10 17:11:42 1993
***************
*** 102,107 ****
--- 102,108 ----
  
  #ifndef BSD
  # ifndef UTIMBUF
+ #  ifndef linux		/* linux defines utimbuf */
  
  struct utimbuf {
  	time_t	actime;		/** access time       **/ 
***************
*** 108,113 ****
--- 109,115 ----
  	time_t	modtime;	/** modification time **/
         };
  
+ #  endif /* linux */
  # endif /* UTIMBUF */
  #endif /* BSD */
  
diff -cr elm-org/utils/readmsg.c elm/utils/readmsg.c
*** elm-org/utils/readmsg.c	Fri Dec 11 02:45:45 1992
--- elm/utils/readmsg.c	Sun Jan 10 19:30:52 1993
***************
*** 129,135 ****
--- 129,137 ----
  extern char *optarg;			/* for parsing the ...		*/
  extern int   optind;			/*  .. starting arguments	*/
  
+ #ifndef linux		/* linux has atol() defined as a macro */
  extern long atol();
+ #endif /* linux */
  
  
  void usage_error()
-----------------------------------------------------------------------------

Send me a note if you want my config.sh file.

Arjan

--
Arjan de Vet                             <Arjan.de.Vet@adv.win.tue.nl> (home)
Eindhoven University of Technology, the Netherlands <devet@win.tue.nl> (work)
Newsgroups: comp.os.linux