/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src/jsanalyze.cpp:7: # define MOZ_STATIC_ASSERT_GLUE(x, y) MOZ_STATIC_ASSERT_GLUE1(x, y)In file included from ./jsanalyze.h:13: In file included from ./jscompartment.h:19: In file included from ./vm/RegExpObject.h:21: In file included from ./yarr/YarrJIT.h:37: In file included from ./assembler/assembler/MacroAssembler.h:42: In file included from ./assembler/assembler/MacroAssemblerARM.h:39: ESC[1m./assembler/assembler/ARMAssembler.h:1070:34: error: no member named 'cacheFlush' in 'JSC::ExecutableAllocator' ^ ExecutableAllocator::cacheFlush(insn, sizeof(ARMWord)); [...] config/rules.mk:1017: recipe for target 'jsatom.o' failed gmake[3]: *** [jsatom.o] Error 1 gmake[3]: Leaving directory '/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src' config/rules.mk:576: recipe for target 'all' failed gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory '/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src' ===> Compilation failed unexpectedly.
This looks like it need similar treatment as we did for later revisions of spidermonkey, namely the clearCache instruction. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197058
I just ran into the same problem using poudriere to build for my beagle. Unfortunately polkit requires it :/
Created attachment 159916 [details] add cacheFlush() for arm Could you try this patch on arm? I copied it from the spidermonkey24 port.
Created attachment 159917 [details] armv6 fix Can you try the attached patch?
And now I'm able to get to a clang assertion on head: In file included from ./yarr/Yarr.h:37: ./yarr/YarrInterpreter.h:81:17: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types] struct { ^ ./yarr/YarrInterpreter.h:78:9: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types] struct { ^ ./yarr/YarrInterpreter.h:95:9: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types] struct { ^ Assertion failed: ((PartVT.isInteger() || PartVT == MVT::x86mmx) && ValueVT.isInteger() && "Unknown mismatch!"), function getCopyToParts, file /usr/src/lib/clang/libllvmselectiondag/../../../contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp, line 398. Stack dump: 0. Program arguments: /nxb-bin/usr/bin/c++ -cc1 -triple armv6--freebsd11.0-gnueabi -emit-obj -disable-free -main-file-name jsapi.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -relaxed-aliasing -masm-verbose -mconstructor-aliases -target-cpu arm1176jzf-s -target-feature +soft-float-abi -target-abi aapcs-linux -mfloat-abi soft -dwarf-column-info -ffunction-sections -fdata-sections -coverage-file /wrkdirs/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src/jsapi.o -resource-dir /nxb-bin/usr/bin/../lib/clang/3.6.1 -dependency-file .deps/jsapi.o.pp -MT jsapi.o -sys-header-deps -include ./js-confdefs.h -D ENABLE_YARR_JIT=1 -D IMPL_MFBT -D EXPORT_JS_API -D NO_NSPR_10_SUPPORT -D USE_ZLIB -D NDEBUG -D TRIMMED -D USE_SYSTEM_MALLOC=1 -D ENABLE_ASSEMBLER=1 -D ENABLE_JIT=1 -D MOZILLA_CLIENT -I ./../../mfbt/double-conversion -I . -I . -I ./dist/include -I /usr/local/include/nspr -I . -I ./assembler -I ./yarr -I /usr/local/include -I /usr/local/include -internal-isystem /usr/include/c++/v1 -O2 -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wno-ctor-dtor-privacy -Wno-overlength-strings -Wno-invalid-offsetof -Wno-variadic-macros -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-mismatched-tags -Wno-long-long -pedantic -fdeprecated-macro -fdebug-compilation-dir /wrkdirs/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src -ferror-limit 19 -fmessage-length 0 -fvisibility hidden -mstackrealign -fno-rtti -fno-signed-char -fobjc-runtime=gnustep -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o jsapi.o -x c++ /wrkdirs/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src/jsapi.cpp 1. <eof> parser at end of file 2. Code generation 3. Running pass 'Function Pass Manager' on module '/wrkdirs/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src/jsapi.cpp'. 4. Running pass 'ARM Instruction Selection' on function '@JS_DoubleToInt32' In file included from /wrkdirs/usr/ports/lang/spidermonkey170/work/mozjs17.0.0/js/src/jsopcode.cpp:44: In file included from ./vm/Debugger.h:19: In file included from ./jswrapper.h:14:
Created attachment 159925 [details] jsapi .c and .sh output files from clang crashes.
Created attachment 159926 [details] jsarray .c and .sh output files from clang crashes.
Created attachment 159927 [details] jsnum .c and .sh output files from clang crashes.
I have applied the Patch from Mikaël Urankar (https://bugs.freebsd.org/bugzilla/attachment.cgi?id=159917&action=diff). I have built lang/spidermonkey170 successfully with lang/gcc6-devel gcc version 6.0.0 20150802 (experimental) (FreeBSD Ports Collection)
This was already reported earlier in bug 199450, and filed upstream at: https://llvm.org/bugs/show_bug.cgi?id=23229
A commit references this bug: Author: kwm Date: Tue Aug 25 21:59:20 UTC 2015 New revision: 395317 URL: https://svnweb.freebsd.org/changeset/ports/395317 Log: Fix the build on ARM by adapting a patch from spidermonkey24. PR: 202229 Submitted by: mikael.urankar@gmail.com Changes: head/lang/spidermonkey170/files/patch-assembler_jit_ExecutableAllocator.h
Patch committed, thanks. Closing since the Clang assert on HEAD is already recorded in another bug and is already reported to clang upstream.