[Ecls-list] Problem building from git

Jeronimo Pellegrini jpn at aleph0.info
Fri Jan 30 01:48:36 UTC 2009


Hello;

I'm trying to compile ECL from the git repository (updated
until commit 60af256996e9848439686e3b78559e8c5d1001ec,
"The previous fix did not include all possible values of
structure-type."). This is on an amd64 Debian machine,
with gcc-4.3.3

This is what happens:

rm -rf build
./configure
... (no problems)
make clean
make
...
...
gcc -DECLDIR="\"/usr/local/lib/ecl-9.1.0\"" -c -DECL_API -I. -I/home/jeronimo/pkg/ecl/build -I/home/jeronimo/pkg/ecl/src/c -I../ecl/gc  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64  -g -O0 -fPIC -D_THREAD_SAFE  -Dlinux  -o file.o file.c
../../src/c/file.d: In function ‘ecl_make_file_stream_from_fd’:
../../src/c/file.d:3138: warning: cast to pointer from integer of different size
../../src/c/file.d: In function ‘ecl_stream_to_handle’:
../../src/c/file.d:3595: warning: cast from pointer to integer of different size
../../src/c/file.d:3601: warning: cast from pointer to integer of different size
../../src/c/file.d:3605: warning: cast from pointer to integer of different size
../../src/c/file.d: In function ‘ecl_off_t_to_integer’:
../../src/c/file.d:4430: warning: right shift count >= width of type
../../src/c/file.d: In function ‘ecl_integer_to_off_t’:
../../src/c/file.d:4461: warning: left shift count >= width of type
../../src/c/file.d: At top level:
../../src/c/file.d:4621: error: conflicting types for ‘invalid_codepoint’
../../src/c/file.d:97: error: previous declaration of ‘invalid_codepoint’ was here
make[2]: *** [file.o] Error 1
make[2]: Leaving directory `/home/jeronimo/pkg/ecl/build/c'
make[1]: *** [libeclmin.a] Error 2
make[1]: Leaving directory `/home/jeronimo/pkg/ecl/build'
make: *** [all] Error 2


In file.d:

static void invalid_codepoint(cl_object strm, int c);
...
static void 
invalid_codepoint(cl_object stream, cl_fixnum c)
{
        FEerror("When reading stream ~A with external format ~A,~%"
                "found an invalid character code, ~D.",
                3, stream, cl_stream_external_format(stream), MAKE_FIXNUM(c));
}

(Declaration and definition have different signatures)

Changing the definition of invalid_codepoint to

tatic void 
invalid_codepoint(cl_object stream, cl_fixnum c)
{
	...
}

Makes if compile again. (I actually suppose they both should be unsigned
char -- no?)

However, it breaks later:

cp /home/jeronimo/pkg/ecl/src/../contrib/unicode/ucd.dat .
if [ -f CROSS-COMPILER ]; then \
		./CROSS-COMPILER compile; \
	else \
		ECLDIR=`pwd`/ ./ecl_min compile; \
	fi

Internal or unrecoverable error in:
Got signal before environment was installed on our thread.
/bin/sh: line 4: 20478 Aborted                 ECLDIR=`pwd`/ ./ecl_min compile
make[1]: *** [bin/ecl] Error 134
make[1]: Leaving directory `/home/jeronimo/pkg/ecl/build'
make: *** [all] Error 2


I'm not sure if this is a known problem or not, so I'm reporting...

If I configure with --disable-unicode, it still happens:


ln -s /home/jeronimo/pkg/ecl/src/cmp/sysfun.lsp ./
echo "#" `uname -a` > BUILD-STAMP
head -8 config.log | tail -6 >> BUILD-STAMP
head: cannot open `config.log' for reading: No such file or directory
cp /home/jeronimo/pkg/ecl/src/../contrib/unicode/ucd.dat .
if [ -f CROSS-COMPILER ]; then \
		./CROSS-COMPILER compile; \
	else \
		ECLDIR=`pwd`/ ./ecl_min compile; \
	fi

Internal or unrecoverable error in:
Got signal before environment was installed on our thread.
/bin/sh: line 4: 31802 Aborted                 ECLDIR=`pwd`/ ./ecl_min compile
make[1]: *** [bin/ecl] Error 134
make[1]: Leaving directory `/home/jeronimo/pkg/ecl/build'
make: *** [all] Error 2


Is there a workaround?

Thanks!
J.





More information about the ecl-devel mailing list