This patch makes the port safe for staging, fixes a bug when building the parser and lexer, fixes the old-style port references in LIB_DEPENDS, and adds LICENSE. This does not, to my knowledge, fix the build issue under clang mentioned in #189390.
Notify maintainer.
Created attachment 143807 [details] maude.patch.txt Huh. I just noticed I forgot to attach the patch. Better fix that! If the maintainer doesn't reply, I'll take over maintainership.
(In reply to Keith Gaughan from comment #0) > This patch makes the port safe for staging, fixes a bug when building the > parser and lexer, fixes the old-style port references in LIB_DEPENDS, and > adds LICENSE. [...] (In reply to Keith Gaughan from comment #2) > Created attachment 143807 [details] > maude.patch.txt > Huh. I just noticed I forgot to attach the patch. Better fix that! Thanx for the patch! For me it produced a usable maude on FreeBSD 9.2-STABLE amd64 with the base system's gcc42 as well as with ports/gcc46. I approve the patch. > If the maintainer doesn't reply, I'll take over maintainership. Great - thanx a lot for volunteering! So for me it would be nice if the committer who handles this PR will pass maintainership to you. In case you update your patch before the commit you might want to change the MAINTAINER line as well. > This does not, to my knowledge, fix the build issue under clang > mentioned in #189390. As mentioned there, I can't see an immediate solution for building maude with clang (i.e. without gcc's 'ext/rope'). If you also don't have a solution at hand, then I suggest that you add USE_GCC=any to the port's Makefile. This won't hurt, because gcc can't fail worse than clang does, but it would supply logs from the build cluster [1], which might help you in getting maude to compile (and link (and run;)) on FreeBSD 10 using gcc. (Unfortunately I failed to get it to work on 10-STABLE - I managed to compile it, but linking failed:-( If there's anything else I could do for the maude port, please let me know. Cheers! Johannes [1] <http://portsmon.freebsd.org/portoverview.py?category=lang&portname=maude>
This does not build on 10.0 amd64. First, the port Makefile needs USE_GCC because there is no ext/rope include in clang, but even after building with GCC, I get this: <stdout>: In function 'int yy_get_next_buffer()': <stdout>:4678:3: error: invalid initialization of reference of type 'int&' from expression of type 'yy_size_t {aka long unsigned int}' In file included from ./lexer.ll:46:0: lexerAux.hh:30:6: error: in passing argument 2 of 'void getInput(char*, int&, int)' *** [libmixfix_a-lexer.o] Error code 1 Could you take a look?
(In reply to Thomas Zander from comment #4) > This does not build on 10.0 amd64. Yes, same over here on 10.0-STABLE i386. > First, the port Makefile needs USE_GCC because there is no ext/rope include > in clang I agree. But maybe Keith is working on an ext/rope for clang? > but even after building with GCC, I get this: > > <stdout>: In function 'int yy_get_next_buffer()': > <stdout>:4678:3: error: invalid initialization of reference of type 'int&' > from expression of type 'yy_size_t {aka long unsigned int}' > In file included from ./lexer.ll:46:0: > lexerAux.hh:30:6: error: in passing argument 2 of 'void getInput(char*, > int&, int)' > *** [libmixfix_a-lexer.o] Error code 1 > > Could you take a look? As I mentioned briefly in comment #3, I could get past that point (by patching Mixfix/lexer.ll, Mixfix/lexerAux.cc, and Mixfix/lexerAux.hh - I'll try to attach that patch set after posting this comment.) But even successful compilation did not prevent that linking the final maude exectutable fails: g++46 -O2 -pipe -march=pentium-mmx -Wl,-rpath=/usr/local/lib/gcc46 -fno-strict-aliasing -Wl,-rpath=/usr/local/lib/gcc46 -L/usr/local/lib -Wl,-rpath=/usr/local/lib/gcc46 -L/usr/local/lib/gcc46 -o maude maude-main.o ../Mixfix/libmixfix.a ../StrategyLanguage/libstrategyLanguage.a ../Meta/libmeta.a ../ObjectSystem/libobjectSystem.a ../BuiltIn/libbuiltIn.a ../Higher/libhigher.a ../FreeTheory/libfreeTheory.a ../AU_Theory/libAU_Theory.a ../AU_Persistent/libAU_Persistent.a ../ACU_Theory/libACU_Theory.a ../ACU_Persistent/libACU_Persistent.a ../CUI_Theory/libCUI_Theory.a ../S_Theory/libS_Theory.a ../NA_Theory/libNA_Theory.a ../Variable/libvariable.a ../Interface/libinterface.a ../Core/libcore.a ../MSCP10/libmscp10.a ../Temporal/libtemporal.a ../IO_Stuff/libIO_Stuff.a ../Utility/libutility.a -lbdd -ltecla -lcurses -lsigsegv -lgmpxx -lgmp ../3rdParty/libdlmalloc.a ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o): In function `MixfixModule::handleDivision(std::basic_ostream<char, std::char_traits<char> >&, DagNode*, bool, char const*)': mixfixModule.cc:(.text+0x1018a): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, __mpz_struct const*)' mixfixModule.cc:(.text+0x101b7): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, __mpz_struct const*)' ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o): In function `MixfixModule::handleMinus(std::basic_ostream<char, std::char_traits<char> >&, DagNode*, bool, char const*)': mixfixModule.cc:(.text+0x102f4): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, __mpz_struct const*)' ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o): In function `MixfixModule::handleDivision(std::basic_ostream<char, std::char_traits<char> >&, Term*, bool, char const*)': mixfixModule.cc:(.text+0x1078f): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, __mpz_struct const*)' mixfixModule.cc:(.text+0x107bc): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, __mpz_struct const*)' ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o):mixfixModule.cc:(.text+0x108fb): more undefined references to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, __mpz_struct const*)' follow collect2: ld returned 1 exit status *** [maude] Error code 1 (I used gcc46 here because lang/gcc (4.7.3) does not compile on that (very slow;) FreeBSD 10.0-STABLE i386 machine. Maybe you'll be more lucky with better equipment ...) (Another side note is that Keith's patches to Mixfix/Makefile.am and Mixfix/lexer.ll do not seem to be necessary on FreeBSD 10, which is another difference to FreBSD 9.)
Created attachment 144463 [details] only use this on FreeBSD 10; fixes 'int&' compiler issues with Mixfix/lexer.ll
(In reply to joemann from comment #6) > Created attachment 144463 [details] > only use this on FreeBSD 10; fixes 'int&' compiler issues with > Mixfix/lexer.ll Sorry, but this patch does not build on any supported system. On 9.2 I get it to build only by adding MAKE_JOBS_UNSAFE=yes. On 10.0, however, this does not help: [...] g++47 -O2 -pipe -Wl,-rpath=/usr/local/lib/gcc47 -fno-strict-aliasing -Wl,-rpath=/usr/local/lib/gcc47 -L/usr/local/lib -Wl,-rpath=/usr/local/lib/gcc47 -L/usr/local/lib/gcc47 -o maude maude-main.o ../Mixfix/libmixfix.a ../StrategyLanguage/libstrategyLanguage.a ../Meta/libmeta.a ../ObjectSystem/libobjectSystem.a ../BuiltIn/libbuiltIn.a ../Higher/libhigher.a ../FreeTheory/libfreeTheory.a ../AU_Theory/libAU_Theory.a ../AU_Persistent/libAU_Persistent.a ../ACU_Theory/libACU_Theory.a ../ACU_Persistent/libACU_Persistent.a ../CUI_Theory/libCUI_Theory.a ../S_Theory/libS_Theory.a ../NA_Theory/libNA_Theory.a ../Variable/libvariable.a ../Interface/libinterface.a ../Core/libcore.a ../MSCP10/libmscp10.a ../Temporal/libtemporal.a ../IO_Stuff/libIO_Stuff.a ../Utility/libutility.a -lbdd -ltecla -lcurses -lsigsegv -lgmpxx -lgmp ../3rdParty/libdlmalloc.a ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o): In function `MixfixModule::handleDivision(std::ostream&, DagNode*, bool, char const*)': mixfixModule.cc:(.text+0xff23): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' mixfixModule.cc:(.text+0xff47): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o): In function `MixfixModule::handleMinus(std::ostream&, DagNode*, bool, char const*)': mixfixModule.cc:(.text+0x10070): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o): In function `MixfixModule::handleDivision(std::ostream&, Term*, bool, char const*)': mixfixModule.cc:(.text+0x10565): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' mixfixModule.cc:(.text+0x10589): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' ../Mixfix/libmixfix.a(libmixfix_a-mixfixModule.o):mixfixModule.cc:(.text+0x106b2): more undefined references to `operator<<(std::ostream&, __mpz_struct const*)' follow collect2: error: ld returned 1 exit status *** Error code 1 Stop. make[4]: stopped in /wrkdirs/usr/ports/lang/maude/work/Maude-2.6/src/Main *** Error code 1 Stop. make[3]: stopped in /wrkdirs/usr/ports/lang/maude/work/Maude-2.6/src *** Error code 1 Stop. make[2]: stopped in /wrkdirs/usr/ports/lang/maude/work/Maude-2.6 *** Error code 1 Stop. make[1]: stopped in /wrkdirs/usr/ports/lang/maude/work/Maude-2.6 *** Error code 1 Stop. make: stopped in /usr/ports/lang/maude Thanks for taking a look!
*** Bug 189390 has been marked as a duplicate of this bug. ***
I don't want to put pressure on you Keith, but this port could be deleted as soon as tomorrow. It's not staged.
(In reply to John Marino from comment #9) > I don't want to put pressure on you Keith, but this port could be deleted as > soon as tomorrow. It's not staged. I'm going to give up banging my head against the wall to get it working with clang. I had my Redports account approved a while back, so I'll see if I can find a version of GCC that'll be happy building Maude on FreeBSD 10.
Created attachment 146718 [details] fix build with clang The following patch - Add LICENSE_FILE. - Add DOCS option. - Fix build with clang. Tested on 11-CURRENT/i386. If no one provides the test build of the different platforms, I will.
(In reply to Carlos Jacobo Puga Medina from comment #11) > Created attachment 146718 [details] > fix build with clang > > The following patch > > - Add LICENSE_FILE. > - Add DOCS option. > - Fix build with clang. > > Tested on 11-CURRENT/i386. If no one provides the test build of the > different platforms, I will. Tested on 10-STABLE amd64 and 9.3-R i386, both builds fail here: c++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/Utility -I../../src/Temporal -I../../src/Interface -I../../src/Core -I../../src/Variable -I../../src/FullCompiler -I../../src/Higher -I../../src/CUI_Theory -I../../src/S_Theory -I../../src/NA_Theory -I../../src/FreeTheory -I../../src/ObjectSystem -I../../src/Mixfix -I../../src/BuiltIn -I../../src/MSCP10 -I../../src/IO_Stuff -I../../src/ACU_Persistent -I../../src/ACU_Theory -I../../src/AU_Persistent -I../../src/AU_Theory -I../../src/Meta -I../../src/3rdParty -I../../src/FullCompiler -I../../src/StrategyLanguage -I/usr/local/include -O2 -pipe -fno-strict-aliasing -MT libmixfix_a-lexer.o -MD -MP -MF .deps/libmixfix_a-lexer.Tpo -c -o libmixfix_a-lexer.o `test -f 'lexer.cc' || echo './'`lexer.cc ./lexer.ll: In function 'int yy_get_next_buffer()': ./lexer.ll:826: error: invalid initialization of reference of type 'size_t&' from expression of type 'int' lexerAux.hh:30: error: in passing argument 2 of 'void getInput(char*, size_t&, int)' *** [libmixfix_a-lexer.o] Error code 1
Adding MAKE_JOBS_UNSAFE gets it to build on 10, but not on 9.x.
(In reply to Thomas Zander from comment #13) > Adding MAKE_JOBS_UNSAFE gets it to build on 10, but not on 9.x. Maybe try using the ports flex instead of base flex?
Please, try after removing this couple of patches: - patch-src__Mixfix__lexerAux.cc - patch-src__Mixfix__lexerAux.hh
Looks like we are getting somewhere. Removal of said patches breaks the build on 10, but makes it compile on 9.3
Created attachment 146744 [details] fix build with clang Test-build via poudriere on 8.4-i386, 9.2-i386, and 10.0-i386. https://fbsd.es/~cpm/freebsd/poudriere/freebsd:8:x86:32/maude-2.6_1.log https://fbsd.es/~cpm/freebsd/poudriere/freebsd:9:x86:32/maude-2.6_1.log https://fbsd.es/~cpm/freebsd/poudriere/freebsd:10:x86:32/maude-2.6_1.log
A commit references this bug: Author: riggs Date: Wed Sep 3 19:58:39 UTC 2014 New revision: 367223 URL: http://svnweb.freebsd.org/changeset/ports/367223 Log: - Stagify - Fix build on clang - Add MAKE_JOBS_UNSAFE - Add LICENSE - Add DOCS option - Bump PORTREVISION - Pet portlint PR: 191049 Submitted by: k@stereochro.me Reviewed by: cpm@fbsd.es, joemann@beefree.free.de, marino, riggs Final patch by: cpm@fbsd.es, riggs MFH: 2014Q3 Changes: head/lang/maude/Makefile head/lang/maude/files/extra-patch-Mixfix-lexerAux head/lang/maude/files/patch-src__BuiltIn__stringOpSymbol.cc head/lang/maude/files/patch-src__Mixfix__bottom.yy head/lang/maude/files/patch-src__Mixfix__commands.yy head/lang/maude/files/patch-src__Mixfix__interact.cc head/lang/maude/files/patch-src__Mixfix__modules.yy head/lang/maude/files/patch-src__Mixfix__token.cc head/lang/maude/files/patch-src__Mixfix__top.yy head/lang/maude/files/patch-src__ObjectSystem__configSymbol.hh head/lang/maude/files/patch-src__ObjectSystem__objectMap.cc head/lang/maude/files/patch-src__ObjectSystem__objectSystemRewritingContext.hh head/lang/maude/files/patch-src__Utility__ropeStuff.hh
A commit references this bug: Author: riggs Date: Wed Sep 3 20:17:36 UTC 2014 New revision: 367226 URL: http://svnweb.freebsd.org/changeset/ports/367226 Log: MFH: r367223 - Stagify - Fix build on clang - Add MAKE_JOBS_UNSAFE - Add LICENSE - Add DOCS option - Bump PORTREVISION - Pet portlint PR: 191049 Submitted by: k@stereochro.me Reviewed by: cpm@fbsd.es, joemann@beefree.free.de, marino, riggs Final patch by: cpm@fbsd.es, riggs Approved by: portmgr (erwin) Changes: _U branches/2014Q3/ branches/2014Q3/lang/maude/Makefile branches/2014Q3/lang/maude/files/extra-patch-Mixfix-lexerAux branches/2014Q3/lang/maude/files/patch-src__BuiltIn__stringOpSymbol.cc branches/2014Q3/lang/maude/files/patch-src__Mixfix__bottom.yy branches/2014Q3/lang/maude/files/patch-src__Mixfix__commands.yy branches/2014Q3/lang/maude/files/patch-src__Mixfix__interact.cc branches/2014Q3/lang/maude/files/patch-src__Mixfix__modules.yy branches/2014Q3/lang/maude/files/patch-src__Mixfix__token.cc branches/2014Q3/lang/maude/files/patch-src__Mixfix__top.yy branches/2014Q3/lang/maude/files/patch-src__ObjectSystem__configSymbol.hh branches/2014Q3/lang/maude/files/patch-src__ObjectSystem__objectMap.cc branches/2014Q3/lang/maude/files/patch-src__ObjectSystem__objectSystemRewritingContext.hh branches/2014Q3/lang/maude/files/patch-src__Utility__ropeStuff.hh