[aspectc-user] Problem compiling Puma

Olaf Spinczyk Olaf.Spinczyk at informatik.uni-erlangen.de
Mon Nov 29 16:07:25 CET 2004


Hi Jérôme,

Jérôme Cornet wrote:
> Hello,
> 
> i am trying to compile aspect-c++ under Linux with gcc.
> 
> When i try to compile ac-0.9-Source-Woven, I get the following error :
> 
> Compiling PUMA for TARGET=linux
> 
> Making tools.
> Making library.
> Generating.
> Weaving.
> Copying sources not to weave.
> Compiling.
> Compiling PreAssertionEvaluator.cc.
> 
> ...
> 
> Compiling MatchCollector.cc.
> In file included 
> from /home/matthias/Projekte/Cvsdir/Puma/gen/step1/inc/Puma/Syntax.h:27,
>                  from /home/matthias/Projekte/Cvsdir/Puma/gen/step1/inc/Puma/Parser.h:23,
>                  from /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/MatchCollector.h:29,
>                  from /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/src/MatchCollector.cc:19:
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:38: 
> error: syntax
>    error before `:' token
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah: 
> In
>    function `void trace_rule(const char*)':
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:53: 
> error: `
>    trace' undeclared (first use this function)
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:53: 
> error: (Each
>    undeclared identifier is reported only once for each function it appears
>    in.)
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah: 
> At
>    global scope:
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:56: 
> error: syntax
>    error before `private'
> 
> etc. etc. (full error message available on request).
> 
> If I look at TraceSyntax.ah line 38, i get : 
> 
> aspect TraceSyntax : public Tracing {
>   int skipping;
> 
> How can the compiler encounter the "aspect" keyword in sources supposed to be 
> already woven?
> 
> Then i tried to compile the "unwoven" sources (ac-0.9-Sources) on a linux 
> machine allowing the linux ac++ binary to work. I get the following error :
> 
> Compiling PUMA for TARGET=linux
> 
> Making tools.
> Making library.
> Generating.
> Calling Orange on cpp/PreDirectiveTab.ora.
> Calling Orange on cpp/PreExprTab.ora.
> Calling Orange on cpp/PreTokenTab.ora.
> Calling Orange on scanner/ACCKeywordTab.ora.
> Calling Orange on scanner/CCKeywordTab.ora.
> Calling Orange on scanner/CCommentTab.ora.
> Calling Orange on scanner/CCoreTab.ora.
> Calling Orange on scanner/CDirectiveTab.ora.
> Calling Orange on scanner/CIdentifierTab.ora.
> Calling Orange on scanner/CKeywordTab.ora.
> Calling Orange on scanner/CMLCommentTab.ora.
> Calling Orange on scanner/CSLCommentTab.ora.
> Calling Orange on scanner/CStringTab.ora.
> Calling Orange on scanner/CWhitespaceTab.ora.
> Calling Orange on scanner/CWildcardTab.ora.
> Calling Lemon on cpp/PreExprParser.lem.
> Calling Lemon on cpp/PreParser.lem.
> Calling Lemon on manip/CMatchParser.lem.
> Weaving.
> Copying sources not to weave.
> Calling ac++ on PreFileIncluder.cc.
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/ListElement.h:29: 
> error: assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Printable.h:23: 
> error: iostream: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Array.h:24: error: 
> assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/VoidPtrArray.h:24: 
> error: assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Token.h:27: error: 
> stdlib.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Chain.h:28: error: 
> iostream: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/StrHashTable.h:25: 
> error: assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/DString.h:25: error: 
> assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Token.h:33: error: 
> assert.h: No such file or directory
> 
> ac++ is the static binary for linux. Can someone help?
> 
> By the way, it would be great to include a README file explaining how to 
> compile aspectc++ (the problem of mutual dependencies between ac++ and ac++) 
> in the source tarball and also specific informations about the differences 
> between woven/unwoven sources. The current README just explain you have to 
> type "make", which is a bit short for newbies like me.
> 
> Thanks for your help!
> 
> Jérôme Cornet

it should work if you compile with 'make TARGET=linux-release', because 
the weaving process (for the woven source code) was done with the 
linux-release configuration. The problem is that we don't want to make 
woven code for all possible configurations. We simply selected one.

If you want a non-release (debug) build, you have to weave Puma with the 
binary ac++ for linux on your own or ask for it directly.

Olaf



More information about the aspectc-user mailing list