help-octave
[Top][All Lists]
Advanced

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

Re: Can't install octave-forge packages in a 32-bit OS X build, but can


From: Alexander Hansen
Subject: Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one
Date: Sat, 05 Nov 2011 12:09:04 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/5/11 11:57 AM, Ben Abbott wrote:
> On Nov 5, 2011, at 8:54 AM, Alexander Hansen wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>> 
>> On 11/4/11 9:03 PM, Alexander Hansen wrote:
>>> Hi.  I'm the maintainer for Octave for the Fink project,
>>> serving Mac OS X.
>>> 
>>> One of our users reported a problem in Octave-3.4.3, built as 
>>> 32-bit, on Mac OS 10.6.8, which I confirmed, wherein 'pkg' was 
>>> unable to install anything, e.g :
>>> 
>>> octave:1> pkg -verbose install physicalconstants-0.1.7.tar.gz
>>> mkdir (/var/tmp/oct-2rjbOh) untar
>>> (physicalconstants-0.1.7.tar.gz, /var/tmp/oct-2rjbOh) invalid
>>> assignment to cs-list outside multiple assignment error: called
>>> from `dir' in file 
>>> /sw32/share/octave/3.4.3/m/miscellaneous/dir.m near line 115, 
>>> column 26 error: called from: error: 
>>> /sw32/share/octave/3.4.3/m/pkg/pkg.m at line 832, column 5
>>> error: /sw32/share/octave/3.4.3/m/pkg/pkg.m at line 361, column
>>> 9
>>> 
>>> I've tried removing some semicolons to see if I can debug
>>> where this goes awry, but it appears to be simply the
>>> assignment on line 115 of dir.m:
>>> 
>>> info(i,1).name = fn;
>>> 
>>> 
>>> In contrast, a 64-bit build on the same machine works
>>> properly. The two builds use the same C and C++ compilers:
>>> 
>>> octave:4> octave_config_info('CC_VERSION') ans = 4.2.1 (Apple
>>> Inc. build 5666) (dot 3) octave:5>
>>> octave_config_info('CXX_VERSION') ans = 4.2.1
>>> 
>>> (Xcode tools 3.2.6) but different Fortran compilers:  a 32-bit
>>>  gfortran and a 64-bit gfortran, respectively, for the 32-bit
>>> and 64-bit Octave.
>>> 
>>> Apart from the expected differences I'd naively expect from 32
>>> vs. 64 bits, I also saw a few other things.  The 64-bit
>>> build's configuration had:
>>> 
>>> checking for working mktime... no
>>> 
>>> vs. "yes" on the 32-bit one.  Also, the 64-bit build had
>>> 
>>> checking for working nanosleep... no (mishandles large
>>> arguments)
>>> 
>>> whereas the 32-bit one had "yes".  Only the 32-bit build was
>>> given the -mieee-fp modifier ("flag-sort -r" is a Perl script
>>> that we use that changes the ordering of arguments to the
>>> compiler--it was needed in this case because of a conflict with
>>> another package):
>>> 
>>> checking whether flag-sort -r gcc accepts -mieee-fp... yes 
>>> configure: adding -mieee-fp to XTRA_CFLAGS checking whether 
>>> flag-sort -r g++ accepts -mieee-fp... yes configure: adding 
>>> -mieee-fp to XTRA_CXXFLAGS ... checking whether 
>>> /sw32/bin/gfortran-fsf-4.6 accepts -mieee-fp... yes adding 
>>> -mieee-fp to FFLAGS configure: defining FFLAGS to be -O3
>>> -mieee-fp
>>> 
>>> 
>>> In the build output, the only thing that seemed to be different
>>>  between the two cases was the presence of the -mieee-fp flag.
>>> 
>>> I'm stumped here, so I'd appreciate any suggestions, and I'll 
>>> gladly provide any additional information.
>> 
>> A couple of addenda:
>> 
>> 1) Just to be clear:  the 32-bit and 64-bit builds use the same 
>> configuration instructions on my end.
>> 
>> 2) I see the same thing on OS X 10.5:  64-bit works properly,
>> 32-bit doesn't.
>> 
>> 3) The user who reported the problem to me has a simple test case
>> to illustrate the failure:
>> 
>> On my 64-bit build:
>> 
>> octave-3.4.3:1> info = struct (zeros (0, 1), {"name", "date",
>> "bytes", "isdir","datenum", "statinfo"}); octave-3.4.3:2>
>> info(1,1).name = "asdf" info =
>> 
>> scalar structure containing the fields:
>> 
>> name = asdf date = [](0x0) bytes = [](0x0) isdir = [](0x0) 
>> datenum = [](0x0) statinfo = [](0x0)
>> 
>> On the 32-bit build:
>> 
>> octave-3.4.3:1> info = struct (zeros (0, 1), {"name", "date",
>> "bytes", "isdir","datenum", "statinfo"}); octave-3.4.3:2>
>> info(1,1).name = "asdf" error: invalid assignment to cs-list
>> outside multiple assignment
> 
> Alex,
> 
> Does this only fail after you've tried to load an octave-forge
> package?
> 

See the above.  That doesn't involve an octave-forge package at all,
but just assigning an entry to a structure--inspired by dir.m, but
still just a structure.

> I am currently able to build Octave with 64bits on MacOS 10.7 using
> MacPorts for dependencies (I haven't tried to build the 32 bit
> version there), and am able to build a 32bit version on 10.6 using
> Fink for dependencies. My Mac with Fink installed is currently
> being updated (the packages are a few months old now). I hope to
> confirm I'm able to build the developers sources and that I don't
> encounter the cs-list error later today.
> 

I tried to build it by hand on 10.5/i386 but the compiler choked:

libtool: compile:  gcc-4.2 -DHAVE_CONFIG_H -I. -I.. -I/sw/include
- -I../libgnu -I../libgnu -I../libcruft/misc -I../liboctave
- -I../liboctave -I. -I. -I/sw/include -I/sw/include -DHAVE_CONFIG_H
- -mieee-fp -I/sw/include -Wall -W -Wshadow -Wold-style-cast -Wformat
- -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -I/sw/include
- -D_THREAD_SAFE -pthread -I/sw/include -MT liboctinterp_la-oct-fstrm.lo
- -MD -MP -MF .deps/liboctinterp_la-oct-fstrm.Tpo -c oct-fstrm.cc
- -fno-common -DPIC -o .libs/liboctinterp_la-oct-fstrm.o
oct-fstrm.cc: In constructor 'octave_fstream::octave_fstream(const
std::string&, std::_Ios_Openmode, oct_mach_info::float_format)':
oct-fstrm.cc:54: error: no matching function for call to
'std::basic_fstream<char, std::char_traits<char> >::open(const char*,
std::_Ios_Openmode&, int)'
/usr/include/c++/4.0.0/fstream:758: note: candidates are: void
std::basic_fstream<_CharT, _Traits>::open(const char*,
std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
make[3]: *** [liboctinterp_la-oct-fstrm.lo] Error 1


I'll try 10.6.

> I plan to compare Fink's info file to the build script I use for
> the developers sources on 10.6.
> 
> http://pdb.finkproject.org/pdb/package.php/octave
> 
> At first glance I notice you've made a lot of changes in Fink's
> support of Octave.  I'll update the etc/README.MacOS file to
> reflect that.
> 
> Ben
> 


- -- 
Alexander Hansen
Fink User Liaison
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk61X6AACgkQB8UpO3rKjQ+7nQCeL3eTPpEWRVw6vgvKj2c7vvs8
C28AoJ/bCICsvvs59HAPtqmjsMCf6V9W
=7jP/
-----END PGP SIGNATURE-----


reply via email to

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