32-bit builds?

Mark Brethen mark.brethen at gmail.com
Thu Nov 26 07:40:34 PST 2015


> On Nov 26, 2015, at 9:28 AM, Brandon Allbery <allbery.b at gmail.com> wrote:
> 
> On Thu, Nov 26, 2015 at 10:24 AM, Brandon Allbery <allbery.b at gmail.com> wrote:
> On Thu, Nov 26, 2015 at 10:16 AM, Mark Brethen <mark.brethen at gmail.com> wrote:
> I suspect the source does not support 64-bit builds. How do I tweak the port to build universal? Is there an example port I could look at?
> 
> Most ports will "just work", because there's a default +universal variant. Otherwise look for ports using the muniversal PortGroup, I think. Unfortunately, for things that don't "just work", the changes needed tend to be very port-specific; and there's far more ports that just disable universal builds than tweak it to work, in at least some cases because untangling the changes needed for universal builds turned out to be too difficult / not worth the effort.
> 
> Also, if a given port will only build 32 bit, there's the supported_archs Portfile keyword (see for example wine, which will probably never work 64 bit because of a register conflict between Windows' and Apple's x86_64 ABIs).
> 
> -- 
> brandon s allbery kf8nh                               sine nomine associates
> allbery.b at gmail.com                                  ballbery at sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

The link error occurs here:

:info:build /usr/bin/clang++ -c -o astgen.o astgen.cc -g -Wall -Wno-deprecated -D__UNIX__ -O2 -DNDEBUG -I../smbase
:info:build /usr/bin/clang++ -o astgen gramlex.o agrampar.tab.o ccsstr.o agramlex.yy.o reporterr.o embedded.o ast.hand.o asthelp.o xmlhelp.o agrampar.o astgen.o -g -Wall -Werror ../smbase/libsmbase.a
:info:build Undefined symbols for architecture x86_64:
:info:build   "agrampar_yyerror(void*, char const*)", referenced from:
:info:build       agrampar_yyparse(void*) in agrampar.tab.o
:info:build   "StringTable::add(char const*)", referenced from:
:info:build       GrammarLexer::yylexInc() in gramlex.o
:info:build       GrammarLexer::curFuncBody() const in gramlex.o
:info:build       GrammarLexer::curToken() const in gramlex.o
:info:build       GrammarLexer::addString(char*, int) const in gramlex.o
:info:build       GrammarLexer::curDeclName() const in gramlex.o
:info:build   "StringTable::StringTable()", referenced from:
:info:build       __GLOBAL__sub_I_agrampar.cc in agrampar.o
:info:build   "StringTable::~StringTable()", referenced from:
:info:build       __GLOBAL__sub_I_agrampar.cc in agrampar.o

It seems like its not finding the object files, which are part of the build in ../ast.

Mark






More information about the macports-dev mailing list