From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@9fans.net Date: Wed, 9 Sep 2009 08:36:13 +0000 From: comeau@panix.com (Greg Comeau) Message-ID: References: <1d5d51400909080844q1bee4c3s114ccc5e51ce52f5@mail.gmail.com> Subject: Re: [9fans] porting help please Topicbox-Message-UUID: 6b29457a-ead5-11e9-9d60-3106f5b1d025 In article <1d5d51400909080844q1bee4c3s114ccc5e51ce52f5@mail.gmail.com>, Fernan Bolando wrote: >...error: initializer is not a constant: F0_Prelude_46primLeave >--h file --- >#define VAP_TAG 1 >#define WORDSHIFT 5 >#define WORDSIZE (1<#define WORDMASK (WORDSIZE-1) >#define NS (WORDSIZE>>3) >#define ZAP_BIT (1L<<(WORDSIZE-1)) >-- c file ---- >unsigned F0_Prelude_46primLeave[] = { > CAPTAG(FN_Prelude_46primLeave,1) >#ifdef PROFILE >, useLabel(PROF_primLeave) >, 0 >, 0 >, 0 >#endif The initializers to some things need to be constants. In your case, it appears that either CAPTAG or useLabel (or both) have ended up not being #define'd. Probably the header they are #define'd in is not being #include'd (you don't show it above, but then you don't show enough of your code to even reproduce it). On a relate note, you can see the results of preprocessing from pcc by using the -E and/or -P options, that way you can see whether the macro ended up getting substituted and what it was substituted to -- or not in your case. Some compilers also have options which will emit the trail of files #include'd but I don't see that option for pcc. -- Greg Comeau / 4.3.10.1 with C++0xisms now in beta! Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90. Comeau C/C++ with Dinkumware's Libraries... Have you tried it?