failed build with current mercurial sources

Ben Abbott bpabbott at mac.com
Sun Mar 9 13:20:16 CDT 2008


On Mar 9, 2008, at 2:06 PM, Marius Schamschula wrote:

>
> On Mar 9, 2008, at 12:31 PM, Jaroslav Hajek wrote:
>
>> On Sun, Mar 9, 2008 at 5:16 PM, Ben Abbott <bpabbott at mac.com> wrote:
>>>
>>>  On Mar 9, 2008, at 5:57 AM, Jaroslav Hajek wrote:
>>>
>>>> On Sat, Mar 8, 2008 at 5:18 PM, Ben Abbott <bpabbott at mac.com>  
>>>> wrote:
>>>>>
>>>>> On Mar 8, 2008, at 5:08 AM, Jaroslav Hajek wrote:
>>>>>
>>>>>>>
>>>>>>> I have access to an older Fedora 4 system with gcc 4.0.2 -  
>>>>>>> I'll try
>>>>>>> to
>>>>>>> compile Octave there and reproduce the segfault.
>>>>>>>
>>>>>> I compiled Octave on a Fedora 4 Linux box with gcc/gfortran  
>>>>>> 4.0.2,
>>>>>> but
>>>>>> the relevant qr test passes OK. Unless someone confirms the
>>>>>> problem on
>>>>>> a different platform, I'm inclined to attribute it to a bug in
>>>>>> gfortran 4.0.1.
>>>>>
>>>>> hmmm ... since I'm compiling with gfortran4.2.2, I assume our  
>>>>> mean a
>>>>> bug in gcc 4.0.1, or in gfortran 4.2.2?
>>>>>
>>>>
>>>> So you're mixing two different gcc versions? Which libgcc_s does
>>>> libcruft link to, the system version or the 4.2 version?
>>>
>>>  Unfortunately, don't know where to begin looking to answer that
>>>  question.
>>>
>>>  How might I go about determining that?
>>>
>>>  Ben
>>>
>>
>> After you compile Octave, use
>>
>> ldd /path/to/octave
>
> The Mac equivalent of ldd is otool -L, i.e. use
>
> otool -L path/to/octave
>
>> one of the many references output should be to
>> libgcc_s.so.1
>>
>> this will probably refer either to /System/Library/.../libgcc_s.so.1
>> or to /sw/gcc42/lib/libgcc_s.so.1.
>> The former case may cause problems, as your gfortran 4.2 expects the
>> 4.2 version of libgcc_s (if there were changes, which I think is
>> likely). libgcc should be backward compatible (so linking with 4.0.x
>> to 4.2.x version should be safe), but obviously forward compatibility
>> is uncertain.

Here's the result

$ otool -L ./octave
./octave:
	/sw/lib/octave-3.0.0+/liboctinterp.dylib (compatibility version  
0.0.0, current version 0.0.0)
	/sw/lib/octave-3.0.0+/liboctave.dylib (compatibility version 0.0.0,  
current version 0.0.0)
	/sw/lib/octave-3.0.0+/libcruft.dylib (compatibility version 0.0.0,  
current version 0.0.0)
	/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate  
(compatibility version 1.0.0, current version 4.0.0)
	/sw/lib/libfftw3.3.dylib (compatibility version 5.0.0, current  
version 5.1.0)
	/sw/lib/libreadline.5.dylib (compatibility version 5.0.0, current  
version 5.0.0)
	/sw/lib/ncurses/libncurses.5.dylib (compatibility version 5.0.0,  
current version 5.0.0)
	/sw/lib/libhdf5.0.dylib (compatibility version 1.0.0, current version  
1.0.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version  
1.2.3)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current  
version 111.0.0)
	/sw/lib/gcc4.2/lib/libgfortran.2.dylib (compatibility version 3.0.0,  
current version 3.0.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current  
version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current  
version 1.0.0)

Ben



More information about the Bug-octave mailing list