3.2.0 compile error on FreeBSD 7.2/amd64 (sig_atomic_t != int on amd64)

Maho NAKATA chat95 at mac.com
Wed Jun 24 05:14:59 CDT 2009


From: Jaroslav Hajek <highegg at gmail.com>
Subject: Re: 3.2.0 compile error on FreeBSD 7.2/amd64 (sig_atomic_t != int on amd64)
Date: Wed, 24 Jun 2009 08:19:23 +0200

> On Sat, Jun 20, 2009 at 11:00 AM, Maho NAKATA<chat95 at mac.com> wrote:
>> Hello, John W. Eaton and all,
>>
>> I have encountered Octave 3.2.0 compilation error
>> * octave 3.2.0
>> * FreeBSD 7.2/amd64 [amd64 specific]
>> * 3.1.55 was okay both on i386/amd64.
>> * error log is following.
>> ---------------------------------------------------------------------------
>> gmake -C src all
>> gmake[2]: Entering directory `/work/ports/math/octave/work/octave-3.2.0/src'
>> making defaults.h from defaults.h.in
>> defaults.h is unchanged
>> gmake[2]: --cppflags: Command not found
>> gmake[2]: --ldflags: Command not found
>> making oct-conf.h from oct-conf.h.in
>> oct-conf.h is unchanged
>> g++43 -c -I/usr/local/include -fPIC -I. -I.. -I../liboctave -I../src -I../libcruft/misc  -DHAVE_CONFIG_H -I/usr/local/include/freetype2 -I/usr/local/include  -O2 -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/local/include/metis -I/usr/local/include -I/usr/local/include/metis pt-eval.cc -o pic/pt-eval.o
>> pt-eval.cc: In function 'void do_unwind_protect_cleanup_code(void*)':
>> pt-eval.cc:920: error: no matching function for call to 'unwind_protect::save_int(sig_atomic_t*, sig_atomic_t&)'
>> unwind-prot.h:104: note: candidates are: static void unwind_protect::save_int(int*, int)
>> gmake[2]: *** [pic/pt-eval.o] Error 1
>> gmake[2]: Leaving directory `/work/ports/math/octave/work/octave-3.2.0/src'
>> gmake[1]: *** [src] Error 2
>> gmake[1]: Leaving directory `/work/ports/math/octave/work/octave-3.2.0'
>> gmake: *** [all] Error 2
>> *** Error code 1
>> ---------------------------------------------------------------------------
>> * possible reason
>> It happens on amd64 only, (not i386).
>> and relevant part pt-eval.cc:920 is:
>>
>>>  unwind_protect_int (octave_interrupt_state);
>>>  octave_interrupt_state = 0;
>>
>> however,
>> on amd64 sig_atomic_t is defined as
>> /usr/include/machine/signal.h:typedef long sig_atomic_t;
>> and on i386.
>> /usr/include/machine/signal.h:typedef int sig_atomic_t;
>>
>> In this case, unwind_protect_long ? I'm not sure.
>>
>> Thanks,
>> -- Nakata Maho http://accc.riken.jp/maho/ , http://ja.openoffice.org/
>>   Nakata Maho's PGP public keys: http://accc.riken.jp/maho/maho.pgp.txt
>> _______________________________________________
>> Bug-octave mailing list
>> Bug-octave at octave.org
>> https://www-old.cae.wisc.edu/mailman/listinfo/bug-octave
>>
> 
> I fixed this in the development branch by revamping the unwind_protect
> completely. 3.2.x got a special fix.

Hello, Jaroslav Hajek
thanks for the fix.
I'll wait for 3.2.x.
Best regards,
-- Nakata Maho http://accc.riken.jp/maho/ , http://ja.openoffice.org/ 
   Nakata Maho's PGP public keys: http://accc.riken.jp/maho/maho.pgp.txt



More information about the Bug-octave mailing list