> On Nov 26, 2015, at 4:51 PM, Ryan Schmidt <[email protected]> wrote: > > > On Nov 26, 2015, at 9:03 AM, Mark Brethen wrote: > >> The error message: >> >> :info:build ld: symbol(s) not found for architecture x86_64 >> :info:build clang: error: linker command failed with exit code 1 (use -v to >> see invocation) >> :info:build make[1]: *** [astgen] Error 1 >> >> says "symbol(s) not found for architecture x86_64" instead of "symbol(s) not >> found for architecture i386”. Can I tweak my build settings to allow a >> 32-bit build? > > This error message means you are building for x86_64, and the symbols were > not found for that architecture. It does not make any statement as to whether > the symbols would be found for any other architecture nor whether the > software supports or does not support x86_64. It might mean you forgot to > specify the name of the library in which the symbols are found, or it could > indicate a libc++/libstdc++ incompatibility. Or it could mean there is an > architecture mismatch between the program and the library it's using, but > since Macs have been x86_64 for many years that's not the first place I'd > look. > >
The last update of elkhound by the original developer was in 2006. Since then, there have been a few updates by other parties. I think the one I was using has some issues. I tried building another today that is bundled with oink-stack (https://github.com/dsw/oink-stack). This one was updated in june and gets to the last build phase with these errors: :info:build /usr/bin/clang++ -o elkhound -DGRAMANL_MAIN -g -Wall -Wno-deprecated -D__UNIX__ -O2 -DNDEBUG -I. -I../smbase -I../ast -Ic -fno-strict-aliasing gramanl.cc gramexpl.o asockind.o grammar.o emitcode.o mlsstr.o genml.o gramast.ast.gen.o gramlex.yy.o grampar.o grampar.tab.o parsetables.o -g -Wall -Werror ../ast/libast.a ../smbase/libsmbase.a :info:build In file included from gramanl.cc:4: :info:build In file included from ./gramanl.h:20: :info:build ./grammar.h:197:18: error: 'Terminal::toString' hides overloaded virtual function [-Werror,-Woverloaded-virtual] :info:build virtual string toString(bool quoteAliases = false) const; :info:build ^ :info:build ./grammar.h:124:18: note: hidden overloaded virtual function 'Symbol::toString' declared here: different number of parameters (0 vs 1) :info:build virtual string toString() const { return string(name); } :info:build ^ :info:build ./grammar.h:299:16: error: 'Nonterminal::print' hides overloaded virtual function [-Werror,-Woverloaded-virtual] :info:build virtual void print(std::ostream &os, Grammar const *grammer = NULL) const; :info:build ^ :info:build ./grammar.h:115:16: note: hidden overloaded virtual function 'Symbol::print' declared here: different number of parameters (1 vs 2) :info:build virtual void print(std::ostream &os) const; :info:build ^ :info:build 2 errors generated. :info:build make[1]: *** [elkhound] Error 1 In the definition of the Terminal and Nonterminal classes below, I can add declarations to make the functions from Symbol visible: 'using Symbol::toString’ and 'using Symbol::print’ , right? class Terminal : public Symbol { // -------- representation --------- public: // data LocString alias; int precedence; AssocKind associativity; StringRef classifyParam; // name of parameter to 'classify' LocString classifyCode; // code to reclassify a token type // ------ annotation ------ public: // data // terminal class index - this terminal's id; -1 means unassigned int termIndex; protected: // funcs virtual void internalPrintDDM(std::ostream &os) const; public: // funcs Terminal(LocString const &name) // canonical name for terminal class : Symbol(name, true /*terminal*/), alias(), precedence(0), associativity(AK_NONASSOC), classifyParam(NULL), termIndex(-1) {} Terminal(Flatten &flat); void xfer(Flatten &flat); virtual void print(std::ostream &os) const; OSTREAM_OPERATOR(Terminal) virtual bool anyDDM() const; // return alias if defined, name otherwise virtual string toString(bool quoteAliases = false) const; }; class Nonterminal : public Symbol { // ---------- representation -------- public: StringRef mergeParam1; // param name for first alternative StringRef mergeParam2; // and 2nd alt LocString mergeCode; // code to resolve then StringRef keepParam; // name of parameter to 'keep' LocString keepCode; // code to decide whether to keep a reduction bool maximal; // if true, use maximal munch disambiguation SObjList<Nonterminal> subsets; // preferred subsets (for scannerless) protected: // funcs virtual void internalPrintDDM(std::ostream &os) const; public: // funcs Nonterminal(LocString const &name, bool isEmptyString=false); virtual ~Nonterminal(); Nonterminal(Flatten &flat); void xfer(Flatten &flat); void xferSerfs(Flatten &flat, Grammar &g); virtual void print(std::ostream &os, Grammar const *grammer = NULL) const; OSTREAM_OPERATOR(Nonterminal) virtual bool anyDDM() const; Mark _______________________________________________ macports-dev mailing list [email protected] https://lists.macosforge.org/mailman/listinfo/macports-dev
