octave-maintainers
[Top][All Lists]
Advanced

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

Re: Aw: RE: Octave 3.8.2 released - llvm


From: Tatsuro MATSUOKA
Subject: Re: Aw: RE: Octave 3.8.2 released - llvm
Date: Tue, 26 Aug 2014 20:43:46 +0900 (JST)




----- Original Message -----
> From: Stefan Mahr 
> To: 'Tatsuro MATSUOKA' 
> Cc: address@hidden; John D 
> Date: 2014/8/26, Tue 19:49
> Subject: Aw: RE: Octave 3.8.2 released - llvm
> 
> 
> 
>>  Gesendet: Dienstag, 26. August 2014 um 12:26 Uhr
>>  Von: "John D" <address@hidden>
>>  An: "'Tatsuro MATSUOKA'" <address@hidden>, 
> address@hidden
>>  Betreff: RE: Octave 3.8.2 released - llvm
>> 
>> 
>> 
>>  -----Original Message-----
>>  From: Tatsuro MATSUOKA [mailto:address@hidden 
>>  Sent: Tuesday, August 26, 2014 2:44 AM
>>  To: address@hidden; John D; address@hidden
>>  Subject: Re: Octave 3.8.2 released - llvm
>> 
>>  ----- Original Message -----
>> 
>>  > From: Tatsuro MATSUOKA
>>  > To: John D ; "address@hidden" 
> <address@hidden>
>>  > Cc: 
>>  > Date: 2014/8/26, Tue 12:35
>>  > Subject: Re: Octave 3.8.2 released - llvm
>>  > 
>>  > ----- Original Message -----
>>  > 
>>  >>  From: John D
>>  >>  To: 'Tatsuro MATSUOKA'; address@hidden
>>  >>  Cc: 
>>  >>  Date: 2014/8/26, Tue 09:23
>>  >>  Subject: RE: Octave 3.8.2 released - llvm
>>  >> 
>>  >> 
>>  >> 
>>  >>  -----Original Message-----
>>  >>  From: Tatsuro MATSUOKA [mailto:address@hidden
>>  >>  Sent: Monday, August 25, 2014 7:41 PM
>>  >>  To: John D; address@hidden
>>  >>  Subject: Re: Octave 3.8.2 released - llvm
>>  >> 
>>  >>  ----- Original Message -----
>>  >> 
>>  >>>   From: John D
>>  >>>   To: 'Tatsuro MATSUOKA' ; address@hidden
>>  >>>   Cc: 
>>  >>>   Date: 2014/8/26, Tue 08:29
>>  >>>   Subject: RE: Octave 3.8.2 released - llvm -----Original 
>>  >>> Message-----
>>  >>>   From: Tatsuro MATSUOKA [mailto:address@hidden
>>  >>>   Sent: Monday, August 25, 2014 7:27 PM
>>  >>>   To: John D; address@hidden
>>  >>>   Subject: Re: Octave 3.8.2 released - llvm
>>  >>>   ----- Original Message -----
>>  >>> 
>>  >>>>    From: John D
>>  >>>>    To: 'Tatsuro MATSUOKA' ; 
> address@hidden
>>  >>>>    Cc: 
>>  >>>>    Date: 2014/8/25, Mon 19:39
>>  >>>>    Subject: RE: Octave 3.8.2 released - llvm -----Original
>>  > Message-----
>>  >>>>    From: Tatsuro MATSUOKA [mailto:address@hidden
>>  >>>>    Sent: Monday, August 25, 2014 5:21 AM
>>  >>>>    To: John D; address@hidden
>>  >>>>    Subject: Re: Octave 3.8.2 released - llvm
>>  >>>> 
>>  >>>>>>     To my knowledge, Octave-3.8 does not support 
> llvm-3.4.I
>>  > am
>>  >>  using
>>  >>>>>>     llvm-3.2
>>  >>>> 
>>  >>>>>>     built myself. Perhaps, llvm-3.3 is OK for 
> Octave-3.8
>>  > though I
>>  >> 
>>  >>>>>>   have
>>  >>>>>>     not tested yet.
>>  >>>>>>     The develepment version octave perhaps 
> supports
>>  > llvm-3.4. 
>>  >>  Perhaps
>>  >>>>>>     much experienced persons will give the correct 
> replies.
>>  >>>>>     ---
>>  >>>>> 
>>  >>>>>     It was fixed in the devel version [1]
>>  >>>>> 
>>  >>>>>     [1] http://savannah.gnu.org/bugs/?41061
>>  >>>>> 
>>  >>>> 
>>  >>>>    As I wrote, I could not build the develoment soource of 
> octave
>>  >>>>   (changeset
>>  >>>>    19048:ec28b7216501) with llvm-3.4.2.
>>  >>>> 
>>  >>>>    
>>  >>>>   
>>  > http://octave.1599824.n4.nabble.com/Octave-3-8-1-Released-td4662831.h
>>  >>>>   t
>>  >>>>    ml#a4666164
>>  >>>> 
>>  >>>>    The configration
>>  >>>>    cd ~/work/Octave/develop/build
>>  >>>> 
>>  >>>>    PATH=$PATH:/opt/clang+llvm-3.4.2/bin 
> ../octave/configure
>>  >>>>   --enable-jit  --prefix=/opt/octave-dev \
>>  >>>>   LLVM_CONFIG=/opt/clang+llvm-3.4.2/bin/llvm-config
>>  >>>>    \ CPPFLAGS="-I/usr/include/mpi 
> -DMPICH_SKIP_MPICXX
>>  >>>   -DOMPI_SKIP_MPICXX"
>>  >>>> 
>>  >>>>    PATH=$PATH:/opt/clang+llvm-3.4.2/bin LC_ALL=C make
>>  >>>> 
>>  >>>>    7-zipped config.log is attached.
>>  >>>>    Perhaps my build of clang+llvm-3.4.2 might be wrong.
>>  >>>> 
>>  >>>>    Any suggestions?
>>  >>>> 
>>  >>>>    # If I use clang+llvm-3.3, octave build was done w/o 
> problem.
>>  >>>> 
>>  >>>>    Tatsuro
>>  >>>> 
>>  >>>>    --
>>  >>>>    What was the hg head changeset and which branch?
>>  >>> 
>>  >>>   I do not know what is hg head changeset and branch name.
>>  >>> 
>>  >>>   How can I see from the cloned source?
>>  >>> 
>>  >>> 
>>  >>>   I cloned repository at Aug.25, 2014 by:
>>  >>>   hg clone http://www.octave.org/hg/octave (perhaps I have 
> cloned 
>>  >>> the
>>  >>>   default branch? Right?)
>>  >>> 
>>  >>>   At the time I accessed http://www.octave.org/hg/octave I 
> found 
>>  >>> that
>>  >>>   top of the changeset.
>>  >>>   changeset 19048:ec28b7216501
>>  >>>   test.m: Overhaul function (also fixes bug #39703).
>>  >>> 
>>  >>>   I used gcc-4.8.2 (Ubuntu 14.04 LTS amd64).
>>  >>> 
>>  >>>   Tatsuro
>>  >>> 
>>  >>>   --
>>  >>>   hg head  - which would show the top change set hg branch - 
> show 
>>  >>> the
>>  >>>   current branch
>>  >> 
>>  >>  Hmmm. I failed the above commands because ".hg" is 
> missing in the
>>  > 
>>  >>  cloned
>>  >>  directory.
>>  >> 
>>  >> 
>>  >>>   Do you have the config.log from running configure
>>  >> 
>>  >>  That was already attached (7-zipped) in the first mail.
>>  >>  I show the Nabble address to get it.
>>  >> 
>>  >> 
>>  >
>> 
> http://octave.1599824.n4.nabble.com/Re-Octave-3-8-2-released-llvm-td4666106.
>>  >>  html#a4666195
>>  >>  The last part of the pointed post you can see:
>>  >>  (config.log.7z (92K) Download Attachment)
>>  >> 
>>  >>  Tatsuro
>>  >> 
>>  >> 
>>  >>  ----
>>  >> 
>>  >>  configure:15052: checking for LLVMBuildAdd in -lLLVM-3.4.2
>>  >>  configure:15085: gcc -o conftest -g -O2 -pthread 
> -I/usr/include/mpi  
>>  >> -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX  
> -L/opt/clang+llvm-3.4.2/lib  
>>  >> conftest.c -lLLVM-3.4.2  -lm   >&5
>>  >>  /usr/bin/ld: cannot find -lLLVM-3.4.2
>>  >>  collect2: error: ld returned 1 exit statu
>>  >> 
>>  >> 
>>  >>  It cant find the library
>>  > 
>>  > For llvm-3.3 config.log (7-zipped archive attatched 
>>  > config.log.llvm33.7z), similar results found in config.log
>>  > 
>>  > configure:15052: checking for LLVMBuildAdd in -lLLVM-3.3
>>  > configure:15085: gcc -o conftest -g -O2 -pthread -I/usr/include/mpi 
>>  > -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX  -L/opt/clang+llvm-3.3/lib 
>>  > conftest.c
>>  > -lLLVM-3.3  -lm   >&5
>>  > /usr/bin/ld: cannot find -lLLVM-3.3
>>  > 
>>  > However, jit build is fine.
>>  > 
>>  > Quick check from octave prompt.
>>  >>>  a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; 
> end; end; 
>>  >>> toc
>>  > Elapsed time is 4.28941 seconds.
>>  >>>  jit_enable(1)
>>  >>>  a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; 
> end; end; 
>>  >>> toc
>>  > Elapsed time is 0.0362439 seconds.
>>  > 
>>  > Thus the configure fail the above seems not to be an origin of 
>>  > octave-dev +
>>  > llvm-3.4.2 build fail for my case.
>>  > 
>>  > The build failure happened in compling pt-jit.cc but not link prcess.
>>  > 
>>  > Full errors is given the below
>>  > http://octave.1599824.n4.nabble.com/Octave-3-8-1-Released-td4662831.ht
>>  > ml#a4666164
>>  > 
>>  > One of the error is shown:
>>  > 
>>  > /opt/clang+llvm-3.4.2/include/llvm/PassManager.h:34:15: error: 
>>  > 'PassManager' is already declared in this scope
>>  >  using legacy::PassManager;
>>  > 
>>  > Tatsuro
>> 
>>  Looking into the error messages and pt-jit.cc.
>> 
>>  I added "-DLEGACY_PASSMANAGER" flag to CPPFLAGS, development 
> source +
>>  llvm-3.4.2 build went well.
>>  In addtion a simple test went well:
>> 
>>  >> a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; 
> end; 
>>  >> toc
>>  Elapsed time is 4.0523 seconds.
>>  >> jit_enable(1)
>>  >> a = 1; b = 1; tic; for i=1:1000; for j=1:1000; a = a + b; end; 
> end; 
>>  >> toc
>>  Elapsed time is 0.0166121 seconds.
>> 
>>  Thank you for your advised and paticince.
>> 
>>  Tatsuro
>>  --
>> 
>>  There is a function I configure that should be checking for legacy
>>  passmanager, which appears to be failing and not setting the define for
>>  LEGACY_PASSMANAGER:
>> 
>>  configure:15446: checking check for LLVM::legacy::PassManager
>>  configure:15486: g++ -o conftest  -g -O2 -pthread -D__STDC_CONSTANT_MACROS
>>  -D__STDC_LIMIT_MACROS -isystem /opt/clang+llvm-3.4.2/include
>>  -I/usr/include/mpi -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX
>>  -L/opt/clang+llvm-3.4.2/lib conftest.cpp -lLLVMInstrumentation
>>  -lLLVMIRReader -lLLVMAsmParser -lLLVMDebugInfo -lLLVMOption -lLLVMLTO
>>  -lLLVMLinker -lLLVMipo -lLLVMVectorize -lLLVMBitWriter -lLLVMBitReader
>>  -lLLVMTableGen -lLLVMR600CodeGen -lLLVMR600Desc -lLLVMR600Info
>>  -lLLVMR600AsmPrinter -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen
>>  -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo
>>  -lLLVMSystemZAsmPrinter -lLLVMHexagonCodeGen -lLLVMHexagonAsmPrinter
>>  -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc
>>  -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMCppBackendCodeGen
>>  -lLLVMCppBackendInfo -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info
>>  -lLLVMMSP430AsmPrinter -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen
>>  -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter 
> -lLLVMMipsDisassembler
>>  -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo
>>  -lLLVMMipsAsmPrinter -lLLVMARMDisassembler -lLLVMARMCodeGen
>>  -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter
>>  -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser
>>  -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter
>>  -lLLVMAArch64Utils -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser
>>  -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter
>>  -lLLVMSparcCodeGen -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMX86Disassembler
>>  -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter
>>  -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils
>>  -lLLVMMCDisassembler -lLLVMMCParser -lLLVMInterpreter -lLLVMMCJIT -lLLVMJIT
>>  -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts -lLLVMInstCombine
>>  -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMRuntimeDyld
>>  -lLLVMExecutionEngine -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore
>>  -lLLVMSupport -lm   >&5
>>  /opt/clang+llvm-3.4.2/lib/libLLVMSupport.a(Signals.o): In function
>>  `llvm::sys::PrintStackTrace(_IO_FILE*)':
>>  Signals.cpp:(.text+0x834): undefined reference to `dladdr'
>>  Signals.cpp:(.text+0x965): undefined reference to `dladdr'
>>  /opt/clang+llvm-3.4.2/lib/libLLVMSupport.a(Process.o): In function
>>  `llvm::sys::Process::FileDescriptorHasColors(int)':
>>  Process.cpp:(.text+0x687): undefined reference to `setupterm'
>>  Process.cpp:(.text+0x6b0): undefined reference to `tigetnum'
>>  Process.cpp:(.text+0x6b9): undefined reference to `set_curterm'
>>  Process.cpp:(.text+0x6c1): undefined reference to `del_curterm'
>>  collect2: error: ld returned 1 exit status
>> 
> 
> In LLVM header files (/usr/include/llvm-3.4/llvm/Config/config.h in my case) 
> there are some options that may be related to your error message:
> 
> #define ENABLE_BACKTRACES 1
> #define HAVE_TERMINFO 1
> #define HAVE_TERMIOS_H 1
> 
> Could you check if these options are defined in your build?
> 
> Stefan

#define ENABLE_BACKTRACES 1
#define HAVE_TERMINFO 1
#define HAVE_TERMIOS_H 1

Yes, they are defined.

Some googling appears that -ldl and -ltinfo are required to overcome 'undefined 
reference' errors.

$ /opt/clang+llvm-3.4.2/bin/llvm-config --ldflags
-L/opt/clang+llvm-3.4.2/lib  -lz -lpthread -ltinfo -ldl -lm

Perhaps if these flag in the configure process in octave for  
LEGACY_PASSMANAGER check is added, configure correclty check the 
LEGACY_PASSMANAGER for my case.

Is it better to file to the bug tracker?

Tatsuro

Tatsuro




reply via email to

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