* Compiling v1.8.5 on tru64 5.1b
@ 2008-05-12 17:36 Didier Godefroy
2008-05-12 20:20 ` Neil Jerram
0 siblings, 1 reply; 2+ messages in thread
From: Didier Godefroy @ 2008-05-12 17:36 UTC (permalink / raw
To: guile-user
Hi all,
Having trouble compiling guile 1.8.5 on tru64 unix v5.1b:
First at some point the file ltdl.h could not be found, so I just dropped a
copy of it in the root of the build tree from a same version distribution of
libtool (1.5.26 I think it was), so then the build was able to proceed
further, but then I get those errors now:
Making all in libguile
make all-am
source='eval.c' object='libguile_la-eval.lo' libtool=yes DEPDIR=.deps
depmode=tru64 /bin/bash ../build-aux/depcomp /bin/bash ../libtool --tag=CC
--mode=compile cc -pthread -DHAVE_CONFIG_H -I.. -I.. -I.. -D_REENTRANT
-O4 -g3 -I/usr/local/gmp/include -I/usr/local/readline/include -c -o
libguile_la-eval.lo `test -f 'eval.c' || echo './'`eval.c
cc -pthread -DHAVE_CONFIG_H -I.. -I.. -I.. -D_REENTRANT -O4 -g3
-I/usr/local/gmp/include -I/usr/local/readline/include -c -MD eval.c -DPIC
-o .libs/libguile_la-eval.o
cc: Error: eval.c, line 2363: In this statement, "*(SCM
...)0=(((SCM)((((0))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_AND)):
----------^
cc: Error: eval.c, line 2366: In this statement, "*(SCM
...)0=(((SCM)((((1))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_BEGIN)):
----------^
cc: Error: eval.c, line 2369: In this statement, "*(SCM
...)0=(((SCM)((((2))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_CASE)):
----------^
cc: Error: eval.c, line 2372: In this statement, "*(SCM
...)0=(((SCM)((((3))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_COND)):
----------^
cc: Error: eval.c, line 2375: In this statement, "*(SCM
...)0=(((SCM)((((19))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_DELAY)):
----------^
cc: Error: eval.c, line 2378: In this statement, "*(SCM
...)0=(((SCM)((((4))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_DO)):
----------^
cc: Error: eval.c, line 2381: In this statement, "*(SCM
...)0=(((SCM)((((5))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_IF)):
----------^
cc: Error: eval.c, line 2384: In this statement, "*(SCM
...)0=(((SCM)((((6))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_LAMBDA)):
----------^
cc: Error: eval.c, line 2387: In this statement, "*(SCM
...)0=(((SCM)((((7))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_LET)):
----------^
cc: Error: eval.c, line 2390: In this statement, "*(SCM
...)0=(((SCM)((((9))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_LETREC)):
----------^
cc: Error: eval.c, line 2393: In this statement, "*(SCM
...)0=(((SCM)((((8))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_LETSTAR)):
----------^
cc: Error: eval.c, line 2396: In this statement, "*(SCM
...)0=(((SCM)((((10))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_OR)):
----------^
cc: Error: eval.c, line 2399: In this statement, "*(SCM
...)0=(((SCM)((((11))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_QUOTE)):
----------^
cc: Error: eval.c, line 2402: In this statement, "*(SCM
...)0=(((SCM)((((12))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_SET_X)):
----------^
cc: Error: eval.c, line 2405: In this statement, "*(SCM
...)0=(((SCM)((((14))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_APPLY)):
----------^
cc: Error: eval.c, line 2408: In this statement, "*(SCM
...)0=(((SCM)((((25))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_BIND)):
----------^
cc: Error: eval.c, line 2411: In this statement, "*(SCM
...)0=(((SCM)((((15))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_CONT)):
----------^
cc: Error: eval.c, line 2414: In this statement, "*(SCM
...)0=(((SCM)((((21))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_CALL_WITH_VALUES)):
----------^
cc: Error: eval.c, line 2424: In this statement, "*(SCM
...)0=(((SCM)((((17))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_SLOT_REF)):
----------^
cc: Error: eval.c, line 2427: In this statement, "*(SCM
...)0=(((SCM)((((18))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_SLOT_SET_X)):
----------^
cc: Error: eval.c, line 2430: In this statement, "*(SCM
...)0=(((SCM)((((24))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_NIL_COND)):
----------^
cc: Error: eval.c, line 3342: In this statement, "*(SCM
...)0=(((SCM)((((0))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_AND)):
--------------^
cc: Error: eval.c, line 3355: In this statement, "*(SCM
...)0=(((SCM)((((1))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_BEGIN)):
--------------^
cc: Error: eval.c, line 3425: In this statement, "*(SCM
...)0=(((SCM)((((2))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_CASE)):
--------------^
cc: Error: eval.c, line 3458: In this statement, "*(SCM
...)0=(((SCM)((((3))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_COND)):
--------------^
cc: Error: eval.c, line 3519: In this statement, "*(SCM
...)0=(((SCM)((((4))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_DO)):
--------------^
cc: Error: eval.c, line 3590: In this statement, "*(SCM
...)0=(((SCM)((((5))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_IF)):
--------------^
cc: Error: eval.c, line 3606: In this statement, "*(SCM
...)0=(((SCM)((((7))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_LET)):
--------------^
cc: Error: eval.c, line 3624: In this statement, "*(SCM
...)0=(((SCM)((((9))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_LETREC)):
--------------^
cc: Error: eval.c, line 3640: In this statement, "*(SCM
...)0=(((SCM)((((8))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_LETSTAR)):
--------------^
cc: Error: eval.c, line 3661: In this statement, "*(SCM
...)0=(((SCM)((((10))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
context that requires a constant expression. (needconstexpr)
case (ISYMNUM (SCM_IM_OR)):
--------------^
cc: Severe: More than 30 errors were encountered in the course of
compilation. (toomanyerr)
*** Exit 1
Stop.
So I'm wondering, was my copying of the ltdl.h file in the root of the build
tree an ok thing to do?
And what to do about those errors now?
--
Didier Godefroy
mailto:dg@ulysium.net
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Compiling v1.8.5 on tru64 5.1b
2008-05-12 17:36 Compiling v1.8.5 on tru64 5.1b Didier Godefroy
@ 2008-05-12 20:20 ` Neil Jerram
0 siblings, 0 replies; 2+ messages in thread
From: Neil Jerram @ 2008-05-12 20:20 UTC (permalink / raw
To: Didier Godefroy; +Cc: guile-user
Didier Godefroy <ldg@ulysium.net> writes:
> Hi all,
>
> Having trouble compiling guile 1.8.5 on tru64 unix v5.1b:
> cc: Error: eval.c, line 2363: In this statement, "*(SCM
> ...)0=(((SCM)((((0))<<8)+scm_tc8_isym)))" is not constant, but occurs in a
> context that requires a constant expression. (needconstexpr)
> case (ISYMNUM (SCM_IM_AND)):
Are you using a somewhat dated compiler? scm_tc8_isym is defined
like this:
enum scm_tc8_tags
{
scm_tc8_flag = scm_tc3_imm24 + 0x00, /* special objects ('flags') */
scm_tc8_char = scm_tc3_imm24 + 0x08, /* characters */
scm_tc8_isym = scm_tc3_imm24 + 0x10, /* evaluator byte codes ('isyms') */
scm_tc8_iloc = scm_tc3_imm24 + 0x18 /* evaluator byte codes ('ilocs') */
};
and scm_tc3_imm24 is:
#define scm_tc3_imm24 4
So a clever enough compiler could deduce that scm_tc8_isym actually is
a constant, and hence the whole of the expression reported above is a
constant.
A fix should be to replace the enum above (in tags.h) by:
#define scm_tc8_flag (scm_tc3_imm24 + 0x00)
#define scm_tc8_char (scm_tc3_imm24 + 0x08)
#define scm_tc8_isym (scm_tc3_imm24 + 0x10)
#define scm_tc8_iloc (scm_tc3_imm24 + 0x18)
Can you try that out and report if it works, or if you then hit other
problems? Can you also tell us about your compiler, and if there is a
C preprocessor macro that can be used to detect it dynamically?
>
> So I'm wondering, was my copying of the ltdl.h file in the root of the build
> tree an ok thing to do?
I don't think the above has anything to do with ltdl.h.
Regards,
Neil
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-05-12 20:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-12 17:36 Compiling v1.8.5 on tru64 5.1b Didier Godefroy
2008-05-12 20:20 ` Neil Jerram
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).