[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-----
- Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Alexander Hansen, 2011/11/04
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Alexander Hansen, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Ben Abbott, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one,
Alexander Hansen <=
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Ben Abbott, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Alexander Hansen, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Ben Abbott, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Alexander Hansen, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, c., 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Alexander Hansen, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, c., 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Ben Abbott, 2011/11/05
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Alexander Hansen, 2011/11/06
- Re: Can't install octave-forge packages in a 32-bit OS X build, but can in a 64-bit one, Ben Abbott, 2011/11/06