From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22946 invoked from network); 14 Dec 1998 17:50:29 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 14 Dec 1998 17:50:29 -0000 Received: (from list@localhost) by math.gatech.edu (8.9.1/8.9.1) id MAA11466; Mon, 14 Dec 1998 12:45:52 -0500 (EST) Resent-Date: Mon, 14 Dec 1998 12:45:52 -0500 (EST) Message-Id: <9812141727.AA35544@ibmth.df.unipi.it> To: Bruce Stephens , zsh-workers@math.gatech.edu (Zsh hackers list) Subject: Re: Latest patched development version In-Reply-To: "Bruce Stephens"'s message of "14 Dec 1998 17:05:50 NFT." Date: Mon, 14 Dec 1998 18:27:49 +0100 From: Peter Stephenson Resent-Message-ID: <"m6CVu2.0.5p2.GxKTs"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/4779 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu Bruce Stephens wrote: > Undefined first referenced > symbol in file > wrappers exec.o > unload_module exec.o It's the problem Bart was complaining about when you compile without dynamic loading. The following will fix this; I have updated http://www.ifh.de/~pws/computing/zsh-3.1.5-pws-3.tar.gz as well. (I have now successfully compiled this statically linked, so after this you're on your own :-).) The module.c chunk may well be my fault, since I moved Sven's bits around to fit in with AIXDYNAMIC --- hence this chunk is not relevant if you are building your own 3.1.5 patched version. For the exec.c part, Sven will have to decide eventually where the #ifdef DYNAMIC should really go, but this does not currently affect use of the shell at all so anyone trying to get this version to compile doesn't need to worry about that. *** Src/exec.c.wrap Mon Dec 14 18:05:02 1998 --- Src/exec.c Mon Dec 14 18:03:12 1998 *************** *** 2777,2786 **** --- 2777,2788 ---- wrap->count--; if (!wrap->count) { wrap->module->flags &= ~MOD_WRAPPER; + #ifdef DYNAMIC if (wrap->module->flags & MOD_UNLOAD) { wrap->module->flags &= ~MOD_UNLOAD; unload_module(wrap->module, NULL); } + #endif } if (!cont) return; *** Src/module.c.wrap Mon Dec 14 18:05:23 1998 --- Src/module.c Mon Dec 14 18:04:27 1998 *************** *** 90,95 **** --- 90,124 ---- return hadf ? hads : 1; } + /* The list of function wrappers defined. */ + + /**/ + FuncWrap wrappers; + + /* This adds a definition for a wrapper. Return value is one in case of * + * error and zero if all went fine. */ + + /**/ + int + addwrapper(Module m, FuncWrap w) + { + FuncWrap p, q; + + if (w->flags & WRAPF_ADDED) + return 1; + for (p = wrappers, q = NULL; p; q = p, p = p->next); + if (q) + q->next = w; + else + wrappers = w; + w->next = NULL; + w->flags |= WRAPF_ADDED; + w->module = m; + w->count = 0; + + return 0; + } + #ifdef DYNAMIC /* $module_path ($MODULE_PATH) */ *************** *** 159,193 **** b->flags &= ~BINF_ADDED; } return hadf ? hads : 1; - } - - /* The list of function wrappers defined. */ - - /**/ - FuncWrap wrappers; - - /* This adds a definition for a wrapper. Return value is one in case of * - * error and zero if all went fine. */ - - /**/ - int - addwrapper(Module m, FuncWrap w) - { - FuncWrap p, q; - - if (w->flags & WRAPF_ADDED) - return 1; - for (p = wrappers, q = NULL; p; q = p, p = p->next); - if (q) - q->next = w; - else - wrappers = w; - w->next = NULL; - w->flags |= WRAPF_ADDED; - w->module = m; - w->count = 0; - - return 0; } /* This removes the given wrapper definition from the list. Returned is * --- 188,193 ---- -- Peter Stephenson Tel: +39 050 844536 WWW: http://www.ifh.de/~pws/ Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy