octave-maintainers
[Top][All Lists]
Advanced

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

Re: Wrapper dylib to fix OSX libBLAS & libLAPACK with -m64 (Re: 3.5.0+ c


From: Richard Campbell
Subject: Re: Wrapper dylib to fix OSX libBLAS & libLAPACK with -m64 (Re: 3.5.0+ compiled on Mac OSX 10.6.6)
Date: Mon, 31 Jan 2011 01:53:03 -0500

On Jan 31, 2011, at 1:48 AM, Richard Campbell wrote:

> 
> On Jan 31, 2011, at 1:33 AM, Jarno Rajahalme wrote:
> 
>> 
>> On Jan 31, 2011, at 8:19 , ext Richard Campbell wrote:
>>>> 
>>>> You need to update the gnulib you are using. This exact bug has been fixed 
>>>> since November 24, 2010 (same problem with GCC 4.2, 4.3, and 4.4):
>>>> 
>>>> 2010-11-24  Paul Eggert  <address@hidden>
>>>> 
>>>>    stdint: port to GCC 4.3 + OSX + Octave
>>>>    On this platform, stdint.h is buggy and defines int64_t to long
>>>>    long int.  The replacement defined it to long int, causing
>>>>    problems with C++ style name mangling.  Instead, trust the system
>>>>    definition if INT64_MAX is defined, and likewise for the unsigned
>>>>    variant.   Problem reported by Jarno Rajahalme in
>>>>    <http://lists.gnu.org/archive/html/bug-gnulib/2010-04/msg00143.html>.
>>>>    * lib/stdint.in.h (GL_INT64_T): Define if INT64_MAX is defined,
>>>>    and don't mess with int64_t and INT64_MAX in this case.
>>>>    (GL_UINT64_T): Likewise for UINT64_MAX and uint64_t.
>>>> 
>>>> The procedure is like this:
>>>> 
>>>> cd <your-octave-source-directory>
>>>> make distclean
>>>> cd gnulib
>>>> git pull
>>>> cd ..
>>>> gnulib/gnulib-tool --add-import
>>>> ./autogen.sh
>>>> ./configure --prefix=<prefix-where-to-install-octave> <other config 
>>>> options>
>>>> make -j2 check
>>>> 
>>>> Jarno
>>>> 
>>>> 
>>> 
>>> 
>>> This is not going to work for me. As per my earlier messages, I am trying 
>>> to do this without any package managers and a minimum of third party 
>>> replacements for the libraries that come installed on every Mac. I am using 
>>> gcc 4.2.1 as released by Apple, and gfortran 4.2.3 as released by AT&T for 
>>> compatibility with Apple's gcc build. There should be a workaround within 
>>> the Octave source.
>>> 
>>> Campbell
>> 
>> Maybe you have misunderstood the role of gnulib in building Octave? Octave 
>> sources come with the gnulib, and Octave depends on gnulib (as in, does not 
>> compile without it). There are no package managers involved, and this 
>> problem is (=was) in gnulib, not in Octave. That is, there is nothing to fix 
>> in Octave source itself, but in the gnulib sources that are included with 
>> the Octave sources.
>> 
>> Released octave sources should contain the latest gnulib sources, but maybe 
>> that is not the case
>> 
>> Please note that in the procedure above, you "cd gnulib" while *in* your 
>> Octave source directory!
>> 
>> After you update gnulib, and remake, there are no extra libraries to 
>> install, as gnulib is always linked in as a static library. 
>> 
>> Jarno
>> 
> 
> 
> My apologies - I was misled by the 'git pull' line above. I'm testing 
> blaswrap.c on octave-3.3.90 now (plus the patch at 
> http://hg.savannah.gnu.org/hgweb/octave/rev/cb4ac5e4d987).
> 
> I will try it with and without --enable-64.
> 
> Campbell
> 

Okay, with -lBLASWRAP and octave 3.3.90 I can successfully build a 64-bit 
Octave without --enable-64. When I try --enable-64 I get:

Making all in src
make  all-am
/bin/sh ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  
-m64 -D_REENTRANT -I../libgnu -I../libgnu -I../libcruft/misc -I../liboctave 
-I../liboctave -I. -I.  -m64 -D_REENTRANT -arch x86_64 -D_REENTRANT  
-DHAVE_CONFIG_H -I/usr/X11/include/freetype2 -I/usr/X11/include -Wall -W 
-Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align 
-Wcast-qual -arch x86_64 -D_REENTRANT -D_THREAD_SAFE -pthread -arch x86_64 
-D_REENTRANT -MT liboctinterp_la-bitfcns.lo -MD -MP -MF 
.deps/liboctinterp_la-bitfcns.Tpo -c -o liboctinterp_la-bitfcns.lo `test -f 
'bitfcns.cc' || echo './'`bitfcns.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -m64 -D_REENTRANT -I../libgnu 
-I../libgnu -I../libcruft/misc -I../liboctave -I../liboctave -I. -I. -m64 
-D_REENTRANT -arch x86_64 -D_REENTRANT -DHAVE_CONFIG_H 
-I/usr/X11/include/freetype2 -I/usr/X11/include -Wall -W -Wshadow 
-Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align 
-Wcast-qual -arch x86_64 -D_REENTRANT -D_THREAD_SAFE -pthread -arch x86_64 
-D_REENTRANT -MT liboctinterp_la-bitfcns.lo -MD -MP -MF 
.deps/liboctinterp_la-bitfcns.Tpo -c bitfcns.cc  -fno-common -DPIC -o 
.libs/liboctinterp_la-bitfcns.o
bitfcns.cc: In function ‘octave_value_list Fsizemax(const octave_value_list&, 
int)’:
bitfcns.cc:701: error: no match for ‘operator=’ in ‘retval = octave_int<long 
int>(dim_vector::dim_max())’
ov.h:336: note: candidates are: octave_value& octave_value::operator=(const 
octave_value&)
make[3]: *** [liboctinterp_la-bitfcns.lo] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2




reply via email to

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