bugGNU Octave - Bugs: bug #34030, make fails with "Missing...

 
 

bug #34030: make fails with "Missing message separator", "-lpcre: Command not found"

Submitter:  None
Submitted:  Tue 16 Aug 2011 08:37:49 PM UTC
   
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  None Assigned to:  None
Originator Name:  Alan Feuerbacher Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * 3.4.2
Operating System:  * GNU/Linux Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Sun 25 Sep 2011 07:22:06 PM UTC, comment #4: 

Issue reporter indicates problems have gone away.  Closing bug report.

Rik <rik5>
Group administrator
Fri 26 Aug 2011 09:20:36 PM UTC, comment #3: 


> Mon 22 Aug 2011 03:38:23 AM GMT, comment #2:


> I think the problem with the separator is fixed now, but I don't think it is actually possible to compile a statically linked version of Octave. Is that what you are trying to do? If so, why?


Only because I couldn't get shared libraries to work. However, it turns out that a number of other things were wrong with my environment and the way I was trying to compile stuff that cause various problems with shared libraries, but that all seems to work now. I had my sysadmin update Redhat 5 with the latest rpm's for a lot of stuff.

For example, I ran into a problem (a nice guy with the readline group helped with this) where my LD_LIBRARY_PATH contained several "~/" references, and these were not getting expanded properly. Once I replaced these with full pathnames, and recompiled a lot of stuff, it all began to work. I think this is why Octave was not finding libgfortran.so.3 at one point, for example.
 

> Mon 22 Aug 2011 03:32:46 AM GMT, comment #1:


> I strongly recommend against compiling with --enable-shared=no and --enable-dl=no. Why did you choose those options?


Out of desperation, because I couldn't figure out anything else. But this is now working.

> I think the missing separator problem is solved by this changeset:
> . . .


> You won't need this changeset at all with 3.4.2 if you don't disable shared libraries and dynamic loading.


I took your advice and this stuff seems to work fine now.

> Why did you need to set the --with-blas and --with-lapack options? Did the configure script not detect them correctly?


I think that the latest Redhat 5 rpm's for them are too old to work with the latest gcc compiler (gcc-4.6.1). To make a long story short, the rpm's contain libgfortran.so.1 whereas the latest software is looking for libgfortran.so.3 . That made anything to do with Fortran not work, which I wrongly interpreted as the Octave installer not being able to find the Fortran libraries at all. So I found out how to install the latest LAPACK and BLAS libraries using ATLAS (atlas3.8.4), which of course meant that I had to point Octave to them. Now it all seems to work fine.

> It might be simpler to add /home/afbacher/GCC/GCC_2_4.6.1/install/bin to your shell PATH before running configure. Then you should be able to skip setting CC, CXX, CPP, and F77 when you run Octave's configure script...


Thanks!

Alan Feuerbacher
 

Alan Feuerbacher <alanf>
Mon 22 Aug 2011 03:38:23 AM UTC, comment #2: 

Sorry, I forgot to paste the following URL in my previous comment:

http://hg.savannah.gnu.org/hgweb/octave/rev/fb69561e5901

But I also just noticed that this changeset had a mistake, and it is only the first hunk of the diff that fixes the Makefile line continuation problem.  The other unintended change was undone by this changeset:

http://hg.savannah.gnu.org/hgweb/octave/rev/18797a4b6174

I think the problem with the separator is fixed now, but I don't think it is actually possible to compile a statically linked version of Octave.  Is that what you are trying to do?  If so, why?

John W. Eaton <jwe>
Group administrator
Mon 22 Aug 2011 03:32:46 AM UTC, comment #1: 

I strongly recommend against compiling with --enable-shared=no and --enable-dl=no.  Why did you choose those options?

I think the missing separator problem is solved by this changeset:

To take advantage of this change with 3.4.2, you'll need to have devleloper tools like automake, autoconf, libtool, etc. installed.

You won't need this changeset at all with 3.4.2 if you don't disable shared libraries and dynamic loading.

Why did you need to set the --with-blas and --with-lapack options?  Did the configure script not detect them correctly?

It might be simpler to add /home/afbacher/GCC/GCC_2_4.6.1/install/bin to your shell PATH before running configure.  Then you should be able to skip setting CC, CXX, CPP, and F77 when you run Octave's configure script...

John W. Eaton <jwe>
Group administrator
Tue 16 Aug 2011 08:37:49 PM UTC, original submission:  

I'm reporting two separate but probably related bugs here. I think I've found the cause of one, but not the other.

I'm compiling Octave-3.4.2 on one of my company's servers which runs Redhat 5. It's a Dell 2-core Xeon machine.

Doing cat /proc/version yields:

Linux version 2.6.18-194.11.1.el5 (mockbuild@hs20-bc2-3.build.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Jul 27 05:45:06 EDT 2010

I'm using gcc-4.6.1 for the gcc, g++ and gfortran compilers.

To get Octave to configure, I had to install ncurses-5.9, readline-6.2, pcre-8.12, lapack-3.3.1 and the BLAS libraries with atlas3.8.4 .

I'm not the system administrator, so I'm installing everything in my own directory structure. Since I'm relatively new to compiling GNU stuff, all this is not terribly well organized, so please bear with me. I've done a lot of experimenting to get to the point where configure runs all the way through.

Configure script:

./configure --prefix=/home/afbacher/GCC/Octave/install --enable-shared=no --enable-dl=no --enable-extra-warning-flags --enable-strict-warning-flags --without-opengl --without-glpk --with-blas="-lcblas -lf77blas -latlas" --with-lapack="-llapack" CXX=/home/afbacher/GCC/GCC_2_4.6.1/install/bin/c++-4.6.1 CC=/home/afbacher/GCC/GCC_2_4.6.1/install/bin/gcc-4.6.1  CPP=/home/afbacher/GCC/GCC_2_4.6.1/install/bin/cpp-4.6.1 CPPFLAGS="-I/home/afbacher/GCC/PCRE/install/include -I/home/afbacher/GCC/Octave/install/include" F77=/home/afbacher/GCC/GCC_2_4.6.1/install/bin/gfortran-4.6.1 LDFLAGS="-L/home/afbacher/GCC/GCC_2_4.6.1/install/lib64 -L/home/afbacher/GCC/GCC_2_4.6.1/install/lib -L/home/afbacher/GCC/PCRE/install/lib -L/home/afbacher/GCC/LAPACK/ATLAS3.8.4/install/lib -L/home/afbacher/GCC/Octave/install/lib"

Note that when I use "..../" it means "Wherever I've installed the source code". At this point I'm also compiling Octave in a temporary directory.

FIRST BUG

When compiling in ..../octave-3.4.2/src the make script gives an error something like:

"Missing message separator"

I found a discussion online that pointed me in the right direction: the Makefile has spaces instead of a tab at the beginning of a command line.

In this case, ..../octave-3.4.2/src has a Makefile which at line 9684 has:


    $(QHULL_LDFLAGS) $(QHULL_LIBS) \


This has 4 spaces at the beginning -- they should be a TAB because that's what gmake requires.
I modified the Makefile accordingly and it got further along.

Here's the output of diff for the before and after Makefiles:


$ diff Makefile.original Makefile.modified
9684c9684,9685
<     $(QHULL_LDFLAGS) $(QHULL_LIBS) \
---
> #    $(QHULL_LDFLAGS) $(QHULL_LIBS) \The problem appears to be in the file Makefile.in on line 9684 which contains "    $(QHULL_LDFLAGS) $(QHULL_LIBS) \".
This contains the offending 4 spaces at the beginning of the line.  The lines 9682-9685 around it are:

+verbatim+
$(srcdir)/DLD-FUNCTIONS/module.mk: $(srcdir)/DLD-FUNCTIONS/config-module.sh $(srcdir)/DLD-FUNCTIONS/config-module.awk $(srcdir)/DLD-FUNCTIONS/module-files
        $(srcdir)/DLD-FUNCTIONS/config-module.sh $(top_srcdir)
@AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@    $(QHULL_LDFLAGS) $(QHULL_LIBS) \
@AMCOND_ENABLE_DYNAMIC_LINKING_FALSE@    $(QRUPDATE_LDFLAGS) $(QRUPDATE_LIBS) \


I suspect that the problem is in Makefile.am . Lines 541-543 are:


    ../libgnu/libgnu.la \
    $(FFTW_XLDFLAGS) $(FFTW_XLIBS)
    $(QHULL_LDFLAGS) $(QHULL_LIBS) \


I think there should be a "\" at the end of line 542.

The compressed Makefile is attached.


SECOND BUG

I suspect that this is related to the first bug.

After I corrected the above bug, make got to a certain point and gave an error message like so:


Making all in src
make[2]: Entering directory `/home/afbacher/GCC/Octave/Tempbuild/octave-3.4.2/src'
./DLD-FUNCTIONS/config-module.sh ..
../src/DLD-FUNCTIONS/module.mk is unchanged
\
      \
                  \
     -lpcre \
      \
      \
      \
      \
      \
        \
       \
    -lreadline -lncurses \
     \
    -llapack -lcblas -lf77blas -latlas \
      \
    -lm   \
    -L/home/afbacher/GCC/GCC_2_4.6.1/install/lib64 -L/home/afbacher/GCC/GCC_2_4.6.1/install/lib -L/home/afbacher/GCC/PCRE/install/lib -L/home/afbacher/GCC/LAPACK/ATLAS3.8.4/install/lib -L/home/afbacher/GCC/Octave/install/lib -L/home/afbacher/GCC/GCC_2_4.6.1/install/lib/gcc/x86_64-unknown-linux-gnu/4.6.1 -L/home/afbacher/GCC/GCC_2_4.6.1/install/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/home/afbacher/GCC/GCC_2_4.6.1/install/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../.. -lgfortran -lm -lquadmath
make[2]: -lpcre: Command not found
make[2]: *** [DLD-FUNCTIONS/module.mk] Error 127
make[2]: Leaving directory `/home/afbacher/GCC/Octave/Tempbuild/octave-3.4.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/afbacher/GCC/Octave/Tempbuild/octave-3.4.2'
make: *** [all] Error 2


I have no clue where to go from here. Any help will be appreciated.

>       $(QHULL_LDFLAGS) $(QHULL_LIBS) \

-verbatim-

Anonymous

 

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

Attach Files:
   
   
Comment:
   

Attached Files
file #23821:  Makefile.bz2 added by None (43KiB - application/x-bzip)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by alanf (Posted a comment)
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by None (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 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2011-09-25 rik5 Open/ClosedOpen Closed
    2011-08-16 None Attached File- Added Makefile.bz2, #23821

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code