gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] Re: GCL 2.7.0 t3 progress, and a configure problem


From: Camm Maguire
Subject: Re: [Gcl-devel] Re: GCL 2.7.0 t3 progress, and a configure problem
Date: 15 Jul 2005 16:43:49 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings, and thank you so much for bringing up this report!

You apparently have the first system I've run across which loads the
shared libraries way up just beneath the stack.  

> checking for shared library/C stack ceiling to heap... 0xb75eb000

This is the 'holy grail' we've been looking for for quite a while, as
it allows a contiguous heap up to 2.7Gb on 32bit Linux, even using
shared libraries.  I'm separately working on a static compilation
option which should produce the same result on 'generic Linux', which
you apparently do not have, but you clearly will have the first
opportunity to test big heap on 32bit, and avoid all the bugs I'll no
doubt introduce in early static linking versions.  It would be most
helpful if you could describe in as much detail as possible your
system configuration -- even the kernel patches which enable this
behavior.  I had heard that some flavor of redhat did this by default,
but I don't yet know how.  When I do, I'd like to upload a
kernel-patch package into the Debian archive achieving the same, to
extend this ability to Debian based users.  If you have a support
contract with Redhat and could give them a call requesting a minimal
kernel-patch, which must be GPL'el by definition, that would be
fantastic!

As this is a new and as yet untested configuration which is not
accessible to me, let me suggest a patch to try.  Perhaps you can
provide feedback and we can converge via email.  Normally I'd test on
my own system before suggesting anything.

=============================================================================
Index: configure.in
===================================================================
RCS file: /cvsroot/gcl/gcl/configure.in,v
retrieving revision 1.190
diff -u -r1.190 configure.in
--- configure.in        18 Jun 2005 22:09:26 -0000      1.190
+++ configure.in        15 Jul 2005 20:31:54 -0000
@@ -1355,7 +1355,7 @@
   j=((unsigned long)$enable_maxpage <<$PAGEWIDTH) + $dbegin;
   j=$heap_ceiling && j>$heap_ceiling ? $heap_ceiling : j;
   j-=$dbegin;
-  for (i=1;i<=j;i<<=1);
+  for (i=1;i<<1 && i<=j;i<<=1);
   if (i>j) i>>=1;
   fprintf(fp,"%ld",i>>$PAGEWIDTH);
   fclose(fp);
Index: configure
===================================================================
RCS file: /cvsroot/gcl/gcl/configure,v
retrieving revision 1.184
diff -u -r1.184 configure
--- configure   18 Jun 2005 22:09:26 -0000      1.184
+++ configure   15 Jul 2005 20:31:55 -0000
@@ -4710,7 +4710,7 @@
   j=((unsigned long)$enable_maxpage <<$PAGEWIDTH) + $dbegin;
   j=$heap_ceiling && j>$heap_ceiling ? $heap_ceiling : j;
   j-=$dbegin;
-  for (i=1;i<=j;i<<=1);
+  for (i=1;i<<1 && i<=j;i<<=1);
   if (i>j) i>>=1;
   fprintf(fp,"%ld",i>>$PAGEWIDTH);
   fclose(fp);
=============================================================================

At first, this should limit the heap to 2Gb, even though you could go
higher.  I'll have to rework the constraints on heap size being a
power of two separately.

Take care,


<address@hidden> writes:

> Camm Maguire wrote:
> > OK, I cannot reproduce with 524288, but can see how there could
> > possibly be a problem here.  Perhaps you could post your full
> > configure log before the hang.  Here is the program doing the test --
> > I need the values of the shell variables prefixed by $ especially:
> >
> > main()
> > {
> >   char *b;
> >   unsigned long i,j;
> >   FILE *fp = fopen("conftest1","w");
> >   j=((unsigned long)$enable_maxpage <<$PAGEWIDTH) + $dbegin;
> >   j=$heap_ceiling && j>$heap_ceiling ? $heap_ceiling : j;
> >   j-=$dbegin;
> >   for (i=1;i<=j;i<<=1);
> >   if (i>j) i>>=1;
> >   fprintf(fp,"%ld",i>>$PAGEWIDTH);
> >   fclose(fp);
> >   return 0;
> > }],tmp_maxpage=`cat conftest1`,tmp_maxpage=0,tmp_maxpage=0)
> >
> OK, here is the complete output from the failed configure.  I don't have the 
> config.log from that build anymore, but I can
> recreate it if need be.
> 
> ./configure --enable-maxpage=524288
> loading cache ./config.cache
> checking host system type... i686-pc-linux-gnu
> host=i686-pc-linux-gnu
> enable_machine=
> use=386-linux
> checking for gcc... (cached) gcc
> checking whether the C compiler (gcc    ) works... yes
> checking whether the C compiler (gcc    ) is a cross-compiler... no
> checking whether we are using GNU C... (cached) yes
> checking whether gcc accepts -g... (cached) yes
> checking how to run the C preprocessor... (cached) gcc -E
> checking for gawk... (cached) gawk
> checking system version (for dynamic loading)... checking for makeinfo... 
> (cached) makeinfo
> Linux-2.4.21-4.ELsmp
> checking for unistd.h... (cached) yes
> checking for sysconf in -lc... (cached) yes
> checking for _SC_CLK_TCK... 100
> checking for gmp.h... (cached) yes
> checking for __gmpz_init in -lgmp... (cached) yes
> checking for external gmp version... checking for leading underscore in 
> object symbols... no
> checking for GNU ld option -Map... yes
> checking for size of gmp limbs... 4
> checking _SHORT_LIMB... no
> checking _LONG_LONG_LIMB... no
> checking for X... (cached) no
> checking for main in -lXmu... (cached) no
> checking for main in -lXt... (cached) no
> checking for main in -lXext... (cached) no
> checking for main in -lXaw... (cached) no
> checking for main in -lX11... (cached) no
> missing x libraries -- cannot compile xgcl
> checking for bfd.h... (cached) yes
> checking for bfd_init in -lbfd... (cached) yes
> checking if need to define CONST for bfd... no
> checking for useable bfd_boolean... yes
> checking size of long... (cached) 4
> checking size of int... (cached) 4
> checking size of short... (cached) 2
> checking size of char... (cached) 1
> checking for number of bits in char... 8
> checking for endian.h... (cached) yes
> checking endianness... little
> checking for sbrk... yes
> checking for randomized sbrk... no
> checking for required object alignment... 8
> checking for C extension variable alignment... __attribute__ ((aligned (8)))
> checking TYPE_BITS macro... 0xff09
> checking sizeof struct contblock... 8
> checking DBEGIN... 0x8000000
> checking for pagewidth... 12
> checking CSTACK_ADDRESS... 0xbfffffff
> checking NEG_CSTACK_ADDRESS... yes
> checking finding CSTACK_ALIGNMENT... 16
> checking CSTACK_DIRECTION... -1
> checking finding default linker script... got it
> checking trying to lower heap start... checking linker script... done
> checking revised DBEGIN... 0x0
> checking for shared library/C stack ceiling to heap... 0xb75eb000
> checking for maxpage revision...
> Thanks in advance,
> David Hardin
> _______________________________________________
> Gcl-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gcl-devel

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]