|
|
Subject: Re: clisp & [sparc|m68k]-linux - msg#00182
List: lisp.clisp.general
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
Was this page helpful?
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
|
|