From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20934 invoked from network); 8 Oct 1997 09:06:25 -0000 Received: from ns2.primenet.com.au (7795@203.24.36.3) by ns1.primenet.com.au with SMTP; 8 Oct 1997 09:06:25 -0000 Received: (qmail 914 invoked from network); 8 Oct 1997 09:06:23 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns2.primenet.com.au with SMTP; 8 Oct 1997 09:06:23 -0000 Received: (from list@localhost) by math.gatech.edu (8.8.5/8.8.5) id EAA18607; Wed, 8 Oct 1997 04:54:08 -0400 (EDT) Resent-Date: Wed, 8 Oct 1997 04:54:08 -0400 (EDT) Date: Wed, 8 Oct 1997 10:54:38 +0200 (MET DST) Message-Id: <199710080854.KAA21930@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@math.gatech.edu Subject: Alpha and 3.1.2 Resent-Message-ID: <"IvOD61.0.dY4.meqEq"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3558 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu Hi Dunno if there was a patch for this before... In 3.1.2 autoloaded functions are implemented by making them (internally) functions which load themselves. For this there is a new struct autofn and a corresponding description in utils.c. This descriptions says that the struct has one extra integer that should be copied in dupstruct2(). But in fact there is a pointer which should be copied directly. Due to sizeof(int) != sizeof(Shfunc) on an Alpha this doesn't copy the pointer, leaving it zero, causing a SEGV later on. The patch below is probably a bit simple (-minded), but it works. Bye Sven *** utils.c.old Wed Oct 8 10:48:31 1997 --- utils.c Wed Oct 8 09:04:20 1997 *************** *** 1668,1674 **** --- 1668,1678 ---- NT_SET(N_IF, 0, NT_NODE | NT_ARR, NT_NODE | NT_ARR, 0, 0), NT_SET(N_WHILE, 1, NT_NODE, NT_NODE, 0, 0), NT_SET(N_VARASG, 1, NT_STR, NT_STR, NT_STR | NT_LIST, 0), + #if SIZEOF_LONG == 8 + NT_SET(N_AUTOFN, 3, 0, 0, 0, 0), + #else NT_SET(N_AUTOFN, 1, 0, 0, 0, 0), + #endif }; /**/ -- Sven Wischnowsky wischnow@informatik.hu-berlin.de