osdir.com
mailing list archive

Subject: Re: clisp & [sparc|m68k]-linux - msg#00182

List: lisp.clisp.general

Date: Prev Next Index Thread: Prev Next Index
On Wednesday 26 Jun 2002 8:02 pm, Sam Steingold wrote:

> You need the following change (no patch yet! :-)

I made the change but still get the same crash on the Sourceforge Sparc/Linux
machine. Is there something I'm missing? I have attached the diff I made.

Attachment: lispbibl.diff
Description: Text Data

Was this page helpful?
Yes No
Thread at a glance:

Previous Message by Date: click to view message preview

Re: clisp & [sparc|m68k]-linux

On Wednesday 26 Jun 2002 8:02 pm, Sam Steingold wrote: > You need the following change (no patch yet! :-) I made the change but still get the same crash on the Sourceforge Sparc/Linux machine. Is there something I'm missing? I have attached the diff I made. lispbibl.diff Description: Text Data

Next Message by Date: click to view message preview

Re: clisp & [sparc|m68k]-linux

> * In message <E17NNV3-0002xt-00.2002-06-27-01-51-06@xxxxxxxxxxxxxxxxxxx> > * On the subject of "Re: [clisp-list] clisp & [sparc|m68k]-linux" > * Sent on Thu, 27 Jun 2002 01:54:05 +0100 > * Honorable Will Newton <will@xxxxxxxxxxxxxxxxxxxx> writes: > > On Wednesday 26 Jun 2002 8:02 pm, Sam Steingold wrote: > > > You need the following change (no patch yet! :-) I appended the patch. > I made the change but still get the same crash on the Sourceforge > Sparc/Linux machine. Is there something I'm missing? I guess the struggle is not over yet. :-( CLISP _does_ build with the appended patch, but only --with-debug. This setting turns off assembly and registers. I.e., one has to figure out what registers are now grabbed by glibc on sparc (and probably on m68k) and thus are unavailable... -- Sam Steingold (http://www.podval.org/~sds) running RedHat7.2 GNU/Linux <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.palestine-central.com/links.html> In C you can make mistakes, while in C++ you can also inherit them! --- lispbibl.d.~1.277.~ Wed Jun 26 13:59:20 2002 +++ lispbibl.d Wed Jun 26 16:03:59 2002 @@ -2364,7 +2364,10 @@ # For pointers, the address takes the full word (with type info in the # lowest two bits). For immediate objects, we use 24 bits for the data # (but exclude the highest available bit, which is the garcol_bit). - #if !((defined(MC680X0) && defined(UNIX_LINUX)) || (defined(I80386) && defined(UNIX_BEOS)) || (defined(SPARC) && defined(UNIX_LINUX))) + #if defined(SPARC) && defined(UNIX_LINUX) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)) + #define LINUX_SPARC_OLD_GLIBC + #endif + #if !((defined(MC680X0) && defined(UNIX_LINUX)) || (defined(I80386) && defined(UNIX_BEOS)) || defined(LINUX_SPARC_OLD_GLIBC)) #define oint_type_shift 0 #define oint_type_len 8 #define oint_type_mask 0x0000007FUL @@ -2382,9 +2385,10 @@ #define oint_data_len 24 #define oint_data_mask 0x3FFFFFC0UL #define garcol_bit_o 30 - #elif (defined(MC680X0) && defined(UNIX_LINUX)) || (defined(SPARC) && defined(UNIX_LINUX)) - # On Sparc-Linux, malloc()ed addresses are of the form 0x0....... or - # 0xe........ Bits 31..29 are therefore part of an address and cannot + #elif (defined(MC680X0) && defined(UNIX_LINUX)) || defined(LINUX_SPARC_OLD_GLIBC)) + # On Sparc-Linux with glibc 2.1 and older: + # malloc()ed addresses are of the form 0x0....... or 0xe........ + # Bits 31..29 are therefore part of an address and cannot # be used as garcol_bit. We therefore choose bit 28 as garcol_bit. # Now, the 24 data bits of an immediate value must not intersect the # garcol_bit, so we use bits 27..4 for that (we could use bits 26..3 @@ -2850,7 +2854,7 @@ #define immediate_bias 7 # mod 8 # Immediate objects have a second type field. - #if defined(SPARC) && defined(UNIX_LINUX) + #if defined(LINUX_SPARC_OLD_GLIBC) #define imm_type_shift 29 #else #define imm_type_shift 3

Previous Message by Thread: click to view message preview

Re: clisp & [sparc|m68k]-linux

On Wednesday 26 Jun 2002 8:02 pm, Sam Steingold wrote: > You need the following change (no patch yet! :-) I made the change but still get the same crash on the Sourceforge Sparc/Linux machine. Is there something I'm missing? I have attached the diff I made. lispbibl.diff Description: Text Data

Next Message by Thread: click to view message preview

Re: clisp & [sparc|m68k]-linux

> * In message <E17NNV3-0002xt-00.2002-06-27-01-51-06@xxxxxxxxxxxxxxxxxxx> > * On the subject of "Re: [clisp-list] clisp & [sparc|m68k]-linux" > * Sent on Thu, 27 Jun 2002 01:54:05 +0100 > * Honorable Will Newton <will@xxxxxxxxxxxxxxxxxxxx> writes: > > On Wednesday 26 Jun 2002 8:02 pm, Sam Steingold wrote: > > > You need the following change (no patch yet! :-) I appended the patch. > I made the change but still get the same crash on the Sourceforge > Sparc/Linux machine. Is there something I'm missing? I guess the struggle is not over yet. :-( CLISP _does_ build with the appended patch, but only --with-debug. This setting turns off assembly and registers. I.e., one has to figure out what registers are now grabbed by glibc on sparc (and probably on m68k) and thus are unavailable... -- Sam Steingold (http://www.podval.org/~sds) running RedHat7.2 GNU/Linux <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.palestine-central.com/links.html> In C you can make mistakes, while in C++ you can also inherit them! --- lispbibl.d.~1.277.~ Wed Jun 26 13:59:20 2002 +++ lispbibl.d Wed Jun 26 16:03:59 2002 @@ -2364,7 +2364,10 @@ # For pointers, the address takes the full word (with type info in the # lowest two bits). For immediate objects, we use 24 bits for the data # (but exclude the highest available bit, which is the garcol_bit). - #if !((defined(MC680X0) && defined(UNIX_LINUX)) || (defined(I80386) && defined(UNIX_BEOS)) || (defined(SPARC) && defined(UNIX_LINUX))) + #if defined(SPARC) && defined(UNIX_LINUX) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)) + #define LINUX_SPARC_OLD_GLIBC + #endif + #if !((defined(MC680X0) && defined(UNIX_LINUX)) || (defined(I80386) && defined(UNIX_BEOS)) || defined(LINUX_SPARC_OLD_GLIBC)) #define oint_type_shift 0 #define oint_type_len 8 #define oint_type_mask 0x0000007FUL @@ -2382,9 +2385,10 @@ #define oint_data_len 24 #define oint_data_mask 0x3FFFFFC0UL #define garcol_bit_o 30 - #elif (defined(MC680X0) && defined(UNIX_LINUX)) || (defined(SPARC) && defined(UNIX_LINUX)) - # On Sparc-Linux, malloc()ed addresses are of the form 0x0....... or - # 0xe........ Bits 31..29 are therefore part of an address and cannot + #elif (defined(MC680X0) && defined(UNIX_LINUX)) || defined(LINUX_SPARC_OLD_GLIBC)) + # On Sparc-Linux with glibc 2.1 and older: + # malloc()ed addresses are of the form 0x0....... or 0xe........ + # Bits 31..29 are therefore part of an address and cannot # be used as garcol_bit. We therefore choose bit 28 as garcol_bit. # Now, the 24 data bits of an immediate value must not intersect the # garcol_bit, so we use bits 27..4 for that (we could use bits 26..3 @@ -2850,7 +2854,7 @@ #define immediate_bias 7 # mod 8 # Immediate objects have a second type field. - #if defined(SPARC) && defined(UNIX_LINUX) + #if defined(LINUX_SPARC_OLD_GLIBC) #define imm_type_shift 29 #else #define imm_type_shift 3
Sign up for updates to this mailing list. email:
Loading Comments...
Home | News | Patents | Sitemap | FAQ | advertise

Advertising by