octave-maintainers
[Top][All Lists]
Advanced

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

Aw: RE: RE: Octave 3.8.2 released - llvm


From: Stefan Mahr
Subject: Aw: RE: RE: Octave 3.8.2 released - llvm
Date: Tue, 26 Aug 2014 14:58:10 +0200

Following patch should fix the problem. I'm not sure if there's a reason why 
LLVM_LDFLAGS was set with library path only.


diff -r ec5413b3e53d configure.ac
--- a/configure.ac      Sun Mar 16 13:25:57 2014 +0100
+++ b/configure.ac      Tue Aug 26 14:47:22 2014 +0200
@@ -822,7 +822,7 @@
     dnl Use -isystem so we don't get warnings from llvm headers
     LLVM_CPPFLAGS="$LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
     LLVM_CXXFLAGS=
-    LLVM_LDFLAGS="-L`$LLVM_CONFIG --libdir`"
+    LLVM_LDFLAGS="`$LLVM_CONFIG --ldflags`"
 
     LDFLAGS="$LDFLAGS $LLVM_LDFLAGS"
     LLVM_SO=LLVM-`$LLVM_CONFIG --version`
diff -r ec5413b3e53d m4/acinclude.m4
--- a/m4/acinclude.m4   Sun Mar 16 13:25:57 2014 +0100
+++ b/m4/acinclude.m4   Tue Aug 26 14:47:22 2014 +0200
@@ -1840,7 +1840,7 @@
     [octave_cv_legacy_passmanager],
     [AC_LANG_PUSH(C++)
       save_LIBS="$LIBS"
-      LIBS="$LLVM_LIBS $LIBS"
+      LIBS="$LLVM_LDFLAGS $LLVM_LIBS $LIBS"
       AC_LINK_IFELSE(
         [AC_LANG_PROGRAM([[
           #include <llvm/IR/LegacyPassManager.h>


> Gesendet: Dienstag, 26. August 2014 um 13:51 Uhr
> Von: "John D" <address@hidden>
> An: "'Tatsuro MATSUOKA'" <address@hidden>, "'Stefan Mahr'" <address@hidden>
> Cc: address@hidden
> Betreff: RE: Aw: RE: Octave 3.8.2 released - llvm
>
> 
> 
> -----Original Message-----
> From: Tatsuro MATSUOKA [mailto:address@hidden 
> Sent: Tuesday, August 26, 2014 7:44 AM
> To: Stefan Mahr
> Cc: address@hidden; John D
> Subject: Re: Aw: RE: Octave 3.8.2 released - llvm
> 
> 
> 
> 
> 
> ----- 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.h
> >> t
> >>  > 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
> 
> ---
> 
> I believe Llvm is checked long before termlibs are- so any flags set for
> term lib wont be used yet during configure
> 
>



reply via email to

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