octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build error w. JIT


From: Max Brister
Subject: Re: Build error w. JIT
Date: Sat, 25 Aug 2012 14:18:20 -0600

On Sat, Aug 25, 2012 at 2:09 PM, Philip Nienhuis <address@hidden> wrote:
> Philip Nienhuis wrote:
>>
>> Michael Goffioul wrote:
>>>
>>> On Sat, Aug 25, 2012 at 7:09 PM, Philip Nienhuis <address@hidden
>>> <mailto:address@hidden>> wrote:
>>>
>>> Max Brister wrote:
>>>
>>> On Sat, Aug 25, 2012 at 9:42 AM, Philip Nienhuis
>>> <address@hidden <mailto:address@hidden>> wrote:
>>>
>>> libtool: compile: g++ -DHAVE_CONFIG_H -I.
>>> -I../../octave/libinterp -I..
>>> -I../../octave/libcruft/misc -I../liboctave
>>> -I../../octave/liboctave
>>> -I../../octave/libinterp/__octave-value
>>> -I../../octave/libinterp/__operators
>>> -Iparse-tree -I../../octave/libinterp/__parse-tree -Iinterp-core
>>> -I../../octave/libinterp/__interp-core -Iinterpfcn
>>> -I../../octave/libinterp/__interpfcn -Icorefcn -I../libgnu
>>> -I../../octave/libgnu -g -O2 -pthread -mieee-fp -isystem
>>> /usr/include
>>> -I/usr/include/freetype2 -Wall -W -Wshadow -Wold-style-cast
>>> -Wformat
>>> -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g
>>> -O2 -pthread -MT
>>> parse-tree/pt-eval.lo -MD -MP -MF
>>> parse-tree/.deps/pt-eval.Tpo -c
>>> ../../octave/libinterp/parse-__tree/pt-eval.cc -fPIC -DPIC -o
>>> parse-tree/.libs/pt-eval.o
>>> In file included from
>>> ../../octave/libinterp/interp-__core/pt-jit.h:28,
>>> from
>>> ../../octave/libinterp/parse-__tree/pt-eval.cc:49:
>>> ../../octave/libinterp/interp-__core/jit-ir.h: In member
>>> function 'void
>>> jit_use::stash_value(jit___value*, jit_instruction*, size_t)':
>>> ../../octave/libinterp/interp-__core/jit-ir.h:308: error:
>>> 'template<class
>>> HOLDER_T, class SUB_T> class jit_internal_node' used
>>> without template
>>> parameters
>>> ../../octave/libinterp/interp-__core/jit-ir.h: In copy
>>> constructor
>>> 'jit_phi_incomming::jit_phi___incomming(const
>>> jit_phi_incomming&)':
>>> ../../octave/libinterp/interp-__core/jit-ir.h:799: error: class
>>> 'jit_phi_incomming' does not have any field named
>>> 'jit_internal_node'
>>> make[3]: *** [parse-tree/pt-eval.lo] Error 1
>>> make[3]: Leaving directory
>>> `/home/philip/devel/oct-3.7/__libinterp'
>>> make[2]: *** [all] Error 2
>>> make[2]: Leaving directory
>>> `/home/philip/devel/oct-3.7/__libinterp'
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory `/home/philip/devel/oct-3.7'
>>> make: *** [all] Error 2
>>>
>>> Mandriva 2010.2, LLVM 2.6
>>>
>>> The class name "......incomming" seems to be consistent.
>>>
>>> Philip
>>>
>>>
>>> Currently, only LLVM 3.0 and 3.1 are supported. The problem is that
>>> the configure check does not test for this [1]. I should have
>>> time to
>>> fix this today.
>>>
>>> [1] http://savannah.gnu.org/bugs/?__37050
>>> <http://savannah.gnu.org/bugs/?37050>
>>>
>>>
>>> Yep on my laptop (Mageia 2) where llvm-3.0 is installed from mageia
>>> repos I obtained a nice GUI build with JIT (trying it now).
>>> But my Mandriva 2012.2 box only has llvm 2.6.
>>>
>>> I d/led llvm and clang but the instructions from the llvm site only
>>> mention a build based on svn checked out sources. Nowhere do I read
>>> how to connect the separate llvm and clang stuff (and compiler-rt).
>>> Would you know where to find a concise build description?
>>>
>>>
>>> llvm uses cmake. So if you only need default options, it should be as
>>> simple as:
>>>
>>> cmake .
>>> make
>>>
>>> For octave purpose, you don't need clang of compiler-rt (except if you
>>> want to use clang as a compiler).
>>
>>
>> Thanks, Michael, indeed easy.
>>
>> I've built llvm 3.1, and now I get an other error:
>>
>> :
>> libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../octave/libinterp -I..
>> -I../../octave/libcruft/misc -I../liboctave -I../../octave/liboctave
>> -I../../octave/libinterp/octave-value -I../../octave/libinterp/operators
>> -Iparse-tree -I../../octave/libinterp/parse-tree -Iinterp-core
>> -I../../octave/libinterp/interp-core -Iinterpfcn
>> -I../../octave/libinterp/interpfcn -Icorefcn -I../libgnu
>> -I../../octave/libgnu -g -O2 -pthread -mieee-fp -isystem
>> /tmp/llvm-3.1.src/include -I/usr/include/freetype2 -Wall -W -Wshadow
>> -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align
>> -Wcast-qual -g -O2 -pthread -MT parse-tree/pt-eval.lo -MD -MP -MF
>> parse-tree/.deps/pt-eval.Tpo -c
>> ../../octave/libinterp/parse-tree/pt-eval.cc -fPIC -DPIC -o
>> parse-tree/.libs/pt-eval.o
>> In file included from ../../octave/libinterp/interp-core/pt-jit.h:28,
>> from ../../octave/libinterp/parse-tree/pt-eval.cc:49:
>> ../../octave/libinterp/interp-core/jit-ir.h: In member function 'void
>> jit_use::stash_value(jit_value*, jit_instruction*, size_t)':
>> ../../octave/libinterp/interp-core/jit-ir.h:308: error: 'template<class
>> HOLDER_T, class SUB_T> class jit_internal_node' used without template
>> parameters
>> ../../octave/libinterp/interp-core/jit-ir.h: In copy constructor
>> 'jit_phi_incomming::jit_phi_incomming(const jit_phi_incomming&)':
>> ../../octave/libinterp/interp-core/jit-ir.h:799: error: class
>> 'jit_phi_incomming' does not have any field named 'jit_internal_node'
>> make[3]: *** [parse-tree/pt-eval.lo] Error 1
>> make[3]: Leaving directory `/home/philip/devel/oct-3.7/libinterp'
>> make[2]: *** [all] Error 2
>> make[2]: Leaving directory `/home/philip/devel/oct-3.7/libinterp'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory `/home/philip/devel/oct-3.7'
>> make: *** [all] Error 2
>
>
> I think I had it wrong, it's the same error.
>
> Part of config.log:
>
> ====================================================================
> :
> Octave is now configured for i686-pc-linux-gnu
>
>   Source directory:            ../octave
>   Installation prefix:         /usr/local
>   C compiler:                  gcc  -mieee-fp  -Wall -W -Wshadow -Wformat
> -Wpointer-arith -Wmissing-prototypes
> -Wstrict-prototypes -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -pthread
>   C++ compiler:                g++  -mieee-fp   -isystem
> /tmp/llvm-3.1.src/include -I/usr/include/freetype2
>
> -Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings
> -Wcast-align -Wcast-qual -g -O2 -pt
> hread
>   Fortran compiler:            gfortran -O -mieee-fp
>   Fortran libraries: -L/usr/lib/gcc/i586-manbo-linux-gnu/4.4.3
> -L/usr/lib/gcc/i586-manbo-linux-gnu/4.4.3/../../.. -lgfortranbegin
> -lgfortran -lm
>   Lex libraries:
>   LIBS:                        -lutil -lm
> :
> <snip>
> :
>   LLVM CPPFLAGS:               -isystem /tmp/llvm-3.1.src/include
>   LLVM LDFLAGS:                -L/home/philip/devel/llvm/lib
>   LLVM libraries:              -lLLVMAsmParser -lLLVMInstrumentation
> -lLLVMLinker -lLLVMArchive -lLLVMBitReader -lLLVMDebugInfo -lLLVMJIT
> -lLLVMipo -lLLVMVectorize -lLLVMBitWriter -lLLVMTableGen -lLLVMXCoreCodeGen
> -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMX86AsmParser -lLLVMX86CodeGen
> -lLLVMX86Disassembler -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter
> -lLLVMX86Utils -lLLVMSparcCodeGen -lLLVMSparcDesc -lLLVMSparcInfo
> -lLLVMPTXCodeGen -lLLVMPTXDesc -lLLVMPTXInfo -lLLVMPTXAsmPrinter
> -lLLVMPowerPCCodeGen -lLLVMPowerPCDesc -lLLVMPowerPCInfo
> -lLLVMPowerPCAsmPrinter -lLLVMMSP430CodeGen -lLLVMMSP430Desc
> -lLLVMMSP430AsmPrinter -lLLVMMSP430Info -lLLVMMBlazeDisassembler
> -lLLVMMBlazeCodeGen -lLLVMMBlazeDesc -lLLVMMBlazeAsmPrinter
> -lLLVMMBlazeAsmParser -lLLVMMBlazeInfo -lLLVMMipsDisassembler
> -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsAsmPrinter
> -lLLVMMipsInfo -lLLVMHexagonCodeGen -lLLVMHexagonDesc -lLLVMHexagonInfo
> -lLLVMHexagonAsmPrinter -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo
> -lLLVMCellSPUCodeGen -lLLVMCellSPUDesc -lLLVMCellSPUInfo -lLLVMARMAsmParser
> -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter
> -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMMCDisassembler
> -lLLVMMCParser -lLLVMInterpreter -lLLVMCodeGen -lLLVMScalarOpts
> -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lgtest_main
> -lgtest -lLLVMMCJIT -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMTarget
> -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport
> :
> <snip>
> :
>   Do internal array bounds checking:  false
>   Use octave_allocator:               false
>   Build static libraries:             false
>   Build shared libraries:             true
>   Dynamic Linking:                    true (dlopen)
>   Include support for GNU readline:   true
>   64-bit array dims and indexing:     false
> :
> =====================================================
>
> so llvm 3.1 seems to be picked up (I had deinstalled llvm-2.6 anyway before
> configure and started with an empty build dir)
>
> Philip

Looking back at your original error message, it looks like these
problems are due to an old version of gcc. I have fixed both of the
problems as of 2c0259dc1a82. Additionally, I have added a configure
check to ensure llvm 3.0 or 3.1 is used. Can you try updating?

-- 
Max Brister


reply via email to

[Prev in Thread] Current Thread [Next in Thread]