A c++ puzzle for you gurus

walt wa1ter at myrealbox.com
Wed Dec 13 07:48:38 PST 2006


In response to a post by Petr, I decided to take a stab at fixing
pkgsrc/wip/powerdns-recursor.

I was able to fix a few obvious #ifdefs, but I'm still getting this
c++ error (which doesn't happen in NetBSD):

c++ -O2 -I/usr/pkg/include -I/usr/include -Wall -O3  -I/usr/pkg/include
-I/usr/include  -c -o syncres.o syncres.cc
In file included from mtasker.hh:107,
                 from syncres.hh:20,
                 from syncres.cc:20:
mtasker.cc: In member function `void MTasker<EventKey, EventVal>::yield()':
mtasker.cc:196: error: there are no arguments to `swapcontext' that depend
on a template parameter, so a declaration of `swapcontext' must be available

My bonehead compiler question is:  how did we get from 'from syncres.cc' to
'mtasker.cc' with no intermediate steps?

Most of the time I can at least follow the chain of error messages back
far enough to locate the villain -- but not this time.

(BTW, I already tried changing the -O3 to -O2 and even -O, and nothing
changed.)

I'm really more interested in how a c++ expert would approach this bug
rather than just being given the fix.

Any takers?






More information about the Users mailing list