[Openmcl-devel] Release co, update, build - again...

Jon S. Anthony j-anthony at comcast.net
Sat Oct 24 11:51:55 PDT 2009


Hi,

I'm trying to make sure I'm squared up on getting the most recent
release for a given version and having it actually running.

I'm fine with just checking out the latest (not need for update), for
example:

svn co http://svn.clozure.com/publicsvn/openmcl/release/1.3/linuxx86/ccl
> svn.out

My understanding is that this then has the latest kernel binaries and
the latest source for the release.  But to get the latest version
actually running, you need to rebuild ccl via (rebuild-ccl :full t).

This seems to be confirmed by the output in svn.out (from the co
command), which states that everything came over fine (all files notated
with A or U) and is at r13098 as evidenced by these statements:

"Checked out external at revision 13098."

And when ccl is run, it still says it is  1.3-r11936:

$ ./lx86cl
Welcome to Clozure Common Lisp Version 1.3-r11936  (LinuxX8632)!
? (quit)

or 

$ ccl
Welcome to Clozure Common Lisp Version 1.3-r11936  (LinuxX8632)!
? 

OK, so this is where/when you are supposed to evaluate
(rebuild-ccl :full t) to ensure the binaries (fasls) reflect the latest
source that came over in the CO.  Also, since this is a fresh complete
co, the latest kernel binaries and image to be able to do this are
supposed to be there, right?  Or is this the goof up - the latest
required binaries aren't really here??

OTOH, I can't think of a reason why I actually need to rebuild the
kernel, so maybe I don't need the :full t?

This is on Fedora lx8632 box.  It has (I believe) the full gcc
functionality available, including gcc 4.1, m4 and as (certainly, I've
done all sorts of other C compilation and builds for all sorts of other
things with no problems).

I know you've been waiting for the but, and here it is:

$ ./lx86cl
Welcome to Clozure Common Lisp Version 1.3-r11936  (LinuxX8632)!
? (rebuild-ccl :full t)
Rebuilding Clozure Common Lisp using Version 1.3-r11936  (LinuxX8632)
;Building lisp-kernel ...
> Error: Error(s) during kernel compilation.
>        make: Entering directory
`/opt/CCL/ccl-1.3-r13098/ccl/lisp-kernel/linuxx8632'
>        m4 -DLINUX -DX86 -DX8632 -DHAVE_TLS -I../ ../pad.s | as  --32
-o pad.o
>        m4 -DLINUX -DX86 -DX8632 -DHAVE_TLS -I../ ../x86-spjump32.s |
as  --32 -o x86-spjump32.o
>        m4 -DLINUX -DX86 -DX8632 -DHAVE_TLS -I../ ../x86-spentry32.s |
as  --32 -o x86-spentry32.o
>        m4 -DLINUX -DX86 -DX8632 -DHAVE_TLS -I../ ../x86-subprims32.s |
as  --32 -o x86-subprims32.o
>        cc -c ../pmcl-kernel.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o pmcl-kernel.o
>        cc -c ../gc-common.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o gc-common.o
>        cc -c ../x86-gc.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o x86-gc.o
>        cc -c ../bits.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o bits.o
>        cc -c ../x86-exceptions.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o x86-exceptions.o
>        cc -c ../image.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o image.o
>        cc -c ../thread_manager.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o thread_manager.o
>        cc -c ../lisp-debug.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o lisp-debug.o
>        ../thread_manager.c: In function ‘setup_tcr_extra_segment’:
>        ../thread_manager.c:966: error: variable ‘u’ has initializer
but incomplete type
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: warning: excess elements in struct
initializer
>        ../thread_manager.c:966: warning: (near initialization for ‘u’)
>        ../thread_manager.c:966: error: storage size of ‘u’ isn’t known
>        ../thread_manager.c:985: error: invalid application of ‘sizeof’
to incomplete type ‘struct user_desc’ 
>        ../thread_manager.c: In function ‘free_tcr_extra_segment’:
>        ../thread_manager.c:998: error: variable ‘u’ has initializer
but incomplete type
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: warning: excess elements in struct
initializer
>        ../thread_manager.c:998: warning: (near initialization for ‘u’)
>        ../thread_manager.c:998: error: storage size of ‘u’ isn’t known
>        ../thread_manager.c:1006: error: invalid application of
‘sizeof’ to incomplete type ‘struct user_desc’ 
>        make: *** [thread_manager.o] Error 1
>        cc -c ../memory.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o memory.o
>        cc -c ../unix-calls.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o unix-calls.o
>        m4 -DLINUX -DX86 -DX8632 -DHAVE_TLS -I../ ../x86-asmutils32.s |
as  --32 -o x86-asmutils32.o
>        m4 -DLINUX -DX86 -DX8632 -DHAVE_TLS -I../ ../imports.s | as
--32 -o imports.o
>        cc -c ../lispdcmd.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o lispdcmd.o
>        cc -c ../plprint.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o plprint.o
>        cc -c ../plsym.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o plsym.o
>        cc -c ../xlbt.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o xlbt.o
>        cc -c ../x86_print.c -DLINUX -D_REENTRANT -DX86 -DX8632
-D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX  -g  -m32 -o x86_print.o
>        make: Target `all' not remade because of errors.
>        make: Leaving directory
`/opt/CCL/ccl-1.3-r13098/ccl/lisp-kernel/linuxx8632'
>        
> While executing: REBUILD-CCL, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > 

It seems that somewhere along the way, I'm missing the full definition
for user_desc and possibly some other stuff.

I also tried the "manual" approach:

shell> cd ccl/lisp-kernel/PLATFORM
shell> make

Exact same results (not surprising...).

I've gone back over

<http://clozure.com/pipermail/openmcl-devel/2009-September/010361.html>

and went over

<http://ccl.clozure.com/manual/chapter2.2.html#obtaining-via-svn>

and

<http://trac.clozure.com/openmcl/wiki/UpdatingFromSource>

I don't think the updating one actually applies here as I am going
against a completely fresh latest release check out.  But I've been
wrong before...

Clearly I'm missing something, but I haven't noticed what it is.  But,
as I mentioned before, maybe there is no need to rebuild the kernel in
this case anyway.  If not, what keys should I give to REBUILD-CCL?  Just
take the defaults: (rebuild-ccl)?  If I do that, it does complete and
then says it is indeed r13098, so maybe that's just fine?

Any help (including, or even especially, "you missed this obvious bit:
'.....'") appreciated.


/Jon





More information about the Openmcl-devel mailing list