On Tue, 12 Feb 2013 16:36:48 +0900 RyōTa SimaMoto <[email protected]> wrote:
> Clang 3.2 causes a machine code error on qt4-webkit build > > Hi, > Compilation a C++ file of www/qt4-webkit fails with an error of "Bad > machine code". This happens on the base llvm/clang (3.2 of 9-STABLE). > I do not know whether it is an bug or not, and where it comes from. > > Two months ago, qt4-webkit-4.8.4 can be built successfully by Clang 3.1. > Now I tried it again with the upgraded version (3.2), it stops with a > fatal error message as following (wrapped snippet) during creation of a > object file from the source file > src/3rdparty/webkit/Source/WebCore/html/parser/HTMLScriptRunner.cpp: > > # Machine code for function > _ZN3WTF5DequeIN7WebCore13PendingScriptELj0EE14expand > CapacityEv: Post SSA > Frame Objects: > fi#-1: size=4, align=4, fixed, at location [SP+4] > > BB#0: derived from LLVM BB %entry > %vreg185<def> = MOVPC32r 0, %ESP<imp-use>; GR32:%vreg185 > %vreg77<def> = COPY %vreg185<kill>; GR32_NOSP:%vreg77 GR32:%vreg185 > ....Snip a long sequence of machine codes..... > ....Full log (784 lines) is in the attached archive file.... > BB#61: derived from LLVM BB %unwind_resume > Predecessors according to CFG: BB#17 BB#32 BB#54 > %vreg70<def> = COPY %vreg198<kill>; GR32:%vreg70,%vreg198 > ADJCALLSTACKDOWN32 4, %ESP<imp-def>, %EFLAGS<imp-def,dead>, > %ESP<imp-use> > %vreg178<def> = COPY %ESP; GR32:%vreg178 > MOV32mr %vreg178<kill>, 1, %noreg, 0, %noreg, %vreg70<kill>; \ > mem:ST4[Stack] GR32:%vreg178,%vreg70 > %EBX<def> = COPY %vreg77<kill>; GR32_NOSP:%vreg77 > CALLpcrel32 <ga:@_Unwind_Resume>[TF=6], <regmask>, %ESP<imp-use>, \ > %EBX<imp-use,kill>, %ESP<imp-def> > ADJCALLSTACKUP32 4, 0, %ESP<imp-def>, %EFLAGS<imp-def,dead>, > %ESP<imp-use> > > *** Bad machine code: Using an undefined physical register *** > - function: > _ZN3WTF5DequeIN7WebCore13PendingScriptELj0EE14expandCapacityEv > - basic block: BB#46 lpad7.i.i (0x2bc8a320) > - instruction: %vreg157<def> = COPY %EAX; GR32:%vreg157 > - operand 1: %EAX > fatal error: error in backend: Found 1 machine code errors. > > This can be reporduced in four steps: > $ cd /usr/ports/www/qt4-webkit > $ make configure > $ cd work/qt-everywhere-opensource-src-4.8.4/src/3rdparty/webkit/Source > $ gmake .obj/release-static/HTMLScriptRunner.o > > // I did a workaround as borrowing the same object file from another build > tree > // that was configured with qt4/mkspecs/freebsd-g++. src/3rdparty/webkit/Source/.obj/release-static/HTMLScriptRunner.o is not a make target (on the config created by ports). The error you are getting is likely a bug in clang, compiler-rt, or somewhere else in the clang world. Please file a bug report on this. Alonso _______________________________________________ kde-freebsd mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-freebsd See also http://freebsd.kde.org/ for latest information
