bugGNU Octave - Bugs: bug #40705, Trouble compiling JIT on Ubuntu...

 
 

bug #40705: Trouble compiling JIT on Ubuntu 12.04

Submitter:  David Spies <dspyz>
Submitted:  Mon 25 Nov 2013 09:11:46 PM UTC
   
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Installation Failure
Status:  Works For Me Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Thu 19 Dec 2013 10:05:01 PM UTC, comment #20: 

Data: running 64bit Ubuntu 12.04

David, I thought I'd share a couple LLVM package-related tips.  Please check if the package is llvm-3.X or libllvm3.X. If it warns you that unrelated things like Xorg and ubuntu-desktop will be removed it's trying to remove libllvm and not just plain llvm.

I just purged my old llvm-3.0 and installed llvm-3.2 with this:

sudo apt-get purge llvm-3.0*
sudo apt-get install llvm-3.2 llvm-3.2-dev llvm-3.2-doc

No dependencies required like llvm-2.9 etc.

If you have a program somewhere called just plain "llvm-config", make sure it's the correct version. Sometimes it's a symlink to the old version instead of the latest version. Even better, specify llvm-config-3.2.

I updated my Octave config script to use 3.2 instead of 3.0:

../octave/configure [bunch of options here, ending with:] LLVM_CONFIG=`which llvm-config-3.2`

and configured and built it. Works fine. Can't tell any difference between llvm 3.0 and llvm 3.2 though.

Arun Giridhar <arungiridhar>
Group Member
Mon 09 Dec 2013 05:29:40 PM UTC, comment #19: 

The attached config.log shows no evidence of being called with LLVM_CONFIG either as an environment variable or as a command line argument. So what you see is the expected behavior with LLVM 2.9, which is what your invocation of configure detected and found to be too old to use.

Can you try configuring again with LLVM_CONFIG added to the environment or the configure command line and attach that config.log file?

Either


export LLVM_CONFIG=llvm-config-3.2
./configure --enable-jit ...


or


./configure --enable-jit LLVM_CONFIG=llvm-config-3.2 ...


should work and one or the other will be required for Ubuntu 12.04. I see now that Rik omitted the "export" in comment #15, if that's what you did then that might be why it wasn't found by configure.

Mike Miller <mtmiller>
Group Member
Mon 09 Dec 2013 05:11:25 PM UTC, comment #18: 

Sorry, no it didn't fix itself, I just gave up and didn't notice the most recent two comments.
I just now tried following Rik's instructions and the message is still there.  I've attached all the files you asked for.

(file #29822, file #29823, file #29824, file #29825)

David Spies <dspyz>
Mon 09 Dec 2013 04:40:20 PM UTC, comment #17: 

No response from original reporter.  I assume the problem has corrected itself.  Closing report.

Rik <rik5>
Group administrator
Thu 28 Nov 2013 02:29:39 AM UTC, comment #16: 

I just did a fresh clone and configure on an Ubuntu 12.04 VM and I don't get the error message reported here. It looks like it is finding LLVM 3.2 properly for me.

Mike Miller <mtmiller>
Group Member
Wed 27 Nov 2013 04:10:32 PM UTC, comment #15: 

This is just weird because Debian and Ubuntu are easy platforms for lots of people to build Octave on.

I think we need to start at the beginning.


dpkg -l > dpkg.list
hg clone http://www.octave.org/hg/octave
cd octave
sh bootstrap | tee bootstrap.dbg.log
LLVM_CONFIG=/usr/bin/llvm-config-3.2
./configure --enable-jit --disable-java 2>&1 | tee configure.dbg.log


This will grab brand new sources so there is no cruft around.  It attempts an in-tree build which is simpler than a VPATH build.  It also disables java, just in case this is an issue.  I gather you are using a Bourne sh equivalent so I've written the commands to also send stderr to the log files so we will have everything captured.  If the end of the configure summary still says that JIT is disabled then upload the following files.

dpkg.list
bootstrap.dbg.log
configure.dbg.log
config.log


Rik <rik5>
Group administrator
Wed 27 Nov 2013 01:57:27 PM UTC, comment #14: 

Ok, can you please attach the file config.log that is generated from this configure run with llvm-config-3.2 passed to it? There are more details in the log file than what is displayed on stdout and stderr.

Mike Miller <mtmiller>
Group Member
Wed 27 Nov 2013 05:44:41 AM UTC, comment #13: 

Rik re comment #10
So you don't have llvm or llvm-dev installed (as Mike suggested in comment #3).
I installed llvm-3.1-runtime and libllvm3.2-dbg (so now I have the exact same packages) and I'm still getting that warning message (from comment #0 , same stdout log as comment #2).  Could you please look at comment #9?  Is there anything else you did or that I might need to do?  If not, can you try repeating my steps?

Thank you,
David

David Spies <dspyz>
Wed 27 Nov 2013 05:16:30 AM UTC, comment #12: 

re comment #11

The warning message was printed to stderr

confdebug.log only contains stdout

David Spies <dspyz>
Wed 27 Nov 2013 02:00:21 AM UTC, comment #11: 

David, re comment #8, I don't see the warning message you mentioned in the config log that you posted as an attachment. That config output looks correct to me and it looks like LLVM 3.2 is detected and configured correctly. The log also says in the summary at the end that JIT is enabled. Can you check whether the log or the warning message are correct?

Mike Miller <mtmiller>
Group Member
Tue 26 Nov 2013 11:18:26 PM UTC, comment #10: 

So on my Mint 13 (Ubuntu 12.04 equivalent) machine I have the following llvm packages installed


dpkg -l | grep llvm

ii  libllvm3.1                            3.1-2ubuntu1~12.04.1                                Low-Level Virtual Machine (LLVM), runtime library
ii  libllvm3.2                            3.2-2ubuntu5~precise1                               Low-Level Virtual Machine (LLVM), runtime library
ii  libllvm3.2-dbg                        3.2-2ubuntu5~precise1                               Low-Level Virtual Machine (LLVM), debugging symbols library
ii  llvm-3.1-runtime                      3.1-2ubuntu1~12.04.1                                Low-Level Virtual Machine (LLVM), bytecode interpreter
ii  llvm-3.2                              3.2-2ubuntu5~precise1                               Low-Level Virtual Machine (LLVM)
ii  llvm-3.2-dev                          3.2-2ubuntu5~precise1                               Low-Level Virtual Machine (LLVM), libraries and headers
ii  llvm-3.2-runtime                      3.2-2ubuntu5~precise1                               Low-Level Virtual Machine (LLVM), bytecode interpreter


The -dbg package is optional.  You might check that you have these and no other packages.  Version 2.9 isn't a requirement for me.

Rik <rik5>
Group administrator
Tue 26 Nov 2013 10:52:36 PM UTC, comment #9: 

I noticed that the status of this bug is still set to "Works For Me" so I tried installing Octave on a fresh Amazon EC2 instance (Ubuntu 12.04 32-bit) and ran into the same problem.  Here's the full list of everything I installed on it:

mercurial gcc g++ gfortran libpcre3-dev libblas-dev liblapack-dev libqt4-opengl-dev libreadline6-dev libqhull-dev libfftw3-dev libglpk-dev libsuitesparse-dev libarpack++2-dev libgraphicsmagick++1-dev libqrupdate-dev flex bison gnuplot gperf ghostscript libfontconfig1-dev libfltk1.1-dev texinfo libqscintilla2-dev pstoedit epstool transfig texlive autoconf automake make openjdk-6-jdk libcurl4-openssl-dev libhdf5-serial-dev llvm-3.2 llvm-3.2-dev libgl2ps-dev

I also added
JAVA_HOME DEFAULT=/usr/lib/jvm/java-6-openjdk-i386
to .pam_environment

When I ran ./configure
I got

configure: WARNING: llvm-config utility not found.  JIT compiler is disabled.
configure: WARNING: llvm-config utility not found.  JIT compiler is disabled.

So then I added llvm
and still got the same error message

So then I added llvm-dev
and still got the same error message

Are you getting llvm from another non-standard PPA by any chance?  Have you changed anything in bin?  How can you have it installed without llvm-2.9 which is a dependency?

David Spies <dspyz>
Tue 26 Nov 2013 10:08:11 PM UTC, comment #8: 

I ran it with LLVM_CONFIG=llvm-config3.2 and got the following warning

configure: WARNING: llvm/Support/IRBuilder.h: present but cannot be compiled
configure: WARNING: llvm/Support/IRBuilder.h:     check for missing prerequisite headers?
configure: WARNING: llvm/Support/IRBuilder.h: see the Autoconf documentation
configure: WARNING: llvm/Support/IRBuilder.h:     section "Present But Cannot Be Compiled"
configure: WARNING: llvm/Support/IRBuilder.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------------------ ##
configure: WARNING:     ## Report this to http://octave.org/bugs.html ##
configure: WARNING:     ## ------------------------------------------ ##

I've attached confdebug.log again


(file #29719)

David Spies <dspyz>
Tue 26 Nov 2013 12:36:45 PM UTC, comment #7: 

If that's the case, then you're going to want to specify LLVM_CONFIG when you configure, for example


$ ../configure LLVM_CONFIG=llvm-config-3.2


if llvm-config-3.2 is in your PATH, or


$ ../configure LLVM_CONFIG=/usr/bin/llvm-config-3.2


to set the full path explicitly. Try that please and let us know if it works for you.

Mike Miller <mtmiller>
Group Member
Tue 26 Nov 2013 06:51:05 AM UTC, comment #6: 

When I do that, it removes llvm and llvm-dev as well.  Isn't there some way I can tell the configure script where I want it to look for llvm so that it will use the right one?

David Spies <dspyz>
Tue 26 Nov 2013 06:16:46 AM UTC, comment #5: 

llvm-2.9 is too old.  In some way you need to remove that package.  Maybe you can just use


apt-get remove llvm-2.9


to remove that one version but keep 3.1 and 3.2.

Rik <rik5>
Group administrator
Tue 26 Nov 2013 06:05:27 AM UTC, comment #4: 

I still get the same error message.  llvm has llvm-2.9 as a dependency.

I've attached the new confdebug.log


(file #29715)

David Spies <dspyz>
Tue 26 Nov 2013 01:51:14 AM UTC, comment #3: 

The log says you are missing the llvm-config program. On Debian, so probably also on your version of Ubuntu, llvm-config is provided by the llvm package, which is supposed to pull in and configure whichever version of LLVM is the default for your Ubuntu version. Try apt-get install llvm (and llvm-dev, same reason) and see if you get better results.

Mike Miller <mtmiller>
Group Member
Tue 26 Nov 2013 01:46:45 AM UTC, comment #2: 

Yes, I did have llvm-2.9-dev installed

I completely removed llvm-2.9-dev, but I'm still getting that error message.
(I also have libllvm3.1 installed but important things such as xorg depend on it so I can't remove it)

I've attached confdebug.log


(file #29714)

David Spies <dspyz>
Mon 25 Nov 2013 10:18:24 PM UTC, comment #1: 

I'm also building with on Ubuntu 12.04 with llvm-3.2-dev and it works for me.

Is it possible you have more than one llvm installation?  I have LLVM 3.1 and 3.2 installed, but only the -dev version for 3.2.  Maybe you have two -dev packages installed.

Also, if you do


./configure --YOUR_OPTIONS |& tee confdebug.log


are there any other lines in the log that contain llvm?  For example, it might say


Missing LLVM file IRBuilder.h.  JIT compiler is disabled."



Rik <rik5>
Group administrator
Mon 25 Nov 2013 09:11:46 PM UTC, original submission:  

Even with the most recent version of LLVM available in the Ubuntu repo (llvm-3.2-dev), I still get the warning: "configure: WARNING: LLVM was not found or is to old.  JIT compiler is disabled." when running ./configure
I can't find any documentation that lists the required version

David Spies <dspyz>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #29822:  config.log added by dspyz (1MiB - text/x-log)
file #29823:  configure.dbg.log added by dspyz (66KiB - text/x-log)
file #29824:  dpkg.list added by dspyz (90KiB - application/octet-stream)
file #29825:  bootstrap.dbg.log added by dspyz (27KiB - text/x-log)
file #29719:  confdebug.log added by dspyz (67KiB - text/x-log)
file #29715:  confdebug.log added by dspyz (67KiB - text/x-log)
file #29714:  confdebug.log added by dspyz (66KiB - text/x-log)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by arungiridhar (Posted a comment)
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by dspyz (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 12 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2014-01-02 rik5 Open/ClosedOpen Closed
    2013-12-09 mtmiller Open/ClosedClosed Open
    2013-12-09 dspyz Attached File- Added config.log, #29822
        Attached File- Added configure.dbg.log, #29823
        Attached File- Added dpkg.list, #29824
        Attached File- Added bootstrap.dbg.log, #29825
    2013-12-09 rik5 Open/ClosedOpen Closed
    2013-11-27 rik5 SummaryWhat version of LLVM is needed? Trouble compiling JIT on Ubuntu 12.04
    2013-11-26 dspyz Attached File- Added confdebug.log, #29719
    2013-11-26 dspyz Attached File- Added confdebug.log, #29715
    2013-11-26 dspyz Attached File- Added confdebug.log, #29714
    2013-11-25 rik5 StatusNone Works For Me

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code