View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0000012 | mercury | Bug | public | 2007-10-03 14:15 | 2007-10-05 13:31 | ||||
Reporter | petdr | ||||||||
Assigned To | |||||||||
Priority | low | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | won't fix | ||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0000012: ./configure doesn't correctly identify that my compiler is not recent enough | ||||||||
Description | With todays compiler (2007-10-03) and using the rotd 2007-09-08 I got the following error: ../scripts/mgnuc --grade asm_fast.gc.decldebug -- -c tree234.c -o tree234.o tree234.c:67542: warning: initialisation makes pointer from integer without a cast tree234.c:67543: warning: initialisation makes integer from pointer without a cast tree234.c:67544: warning: initialisation makes pointer from integer without a cast tree234.c:67545: warning: initialisation makes integer from pointer without a cast tree234.c:67546: warning: initialisation makes pointer from integer without a cast tree234.c:67547: error: incompatible types in initialisation tree234.c:67547: error: initialiser element is not constant tree234.c:67547: error: (near initialisation for `mercury_data__module_layout__tree234.MR_ml_trace_level') tree234.c:67549: warning: initialisation makes integer from pointer without a cast tree234.c:67550: warning: initialisation makes pointer from integer without a cast tree234.c:67552: warning: initialisation makes pointer from integer without a cast tree234.c:67553: warning: initialisation makes integer from pointer without a cast tree234.c:67553: error: initialiser element is not computable at load time tree234.c:67553: error: (near initialisation for `mercury_data__module_layout__tree234.MR_ml_user_event_max_num_attr') tree234.c:67554: warning: initialisation makes integer from pointer without a cast tree234.c:67556: warning: excess elements in struct initialiser tree234.c:67556: warning: (near initialisation for `mercury_data__module_layout__tree234') tree234.c:67557: warning: excess elements in struct initialiser tree234.c:67557: warning: (near initialisation for `mercury_data__module_layout__tree234') tree234.c:67559: warning: excess elements in struct initialiser tree234.c:67559: warning: (near initialisation for `mercury_data__module_layout__tree234') make: *** [tree234.o] Error 1 I think the problem is that I need a newer ROTD to compile. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files |
|
Notes | |
anonymous (viewer) 2007-10-05 12:54 |
What does line 67547 (and nearby) of tree234.c say? What C compiler version are you using? The error is coming from the C compiler, which makes me think that you're using a C compiler not supported by the rotd 2007-09-08 mercury compiler you're using to produce that C file, rather than a problem of the 2007-10-03 compiler using a construct not supported by the rotd 2007-09-08 mercury compiler. That's just an outsider's guess, though. |
zs (developer) 2007-10-05 13:31 |
The configure script is only required to detect whether the installed compiler is recent enough to compile a workspace in asm_fast.gc, none.gc or hlc.gc grades. The problem you are complaining about was caused by a change in the layout structures that affected only the grades using layout structures, namely debug grades and deep profiling grades. The reason for the policy is that users already complain about their installed compilers being reported as not recent enough, and we felt that imposing a small cost on developers (who are the only ones who compile the compiler itself in debug or profiler grades) was better than imposing a bigger cost on ordinary users. |