unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* 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).