3.2.0 compile error on FreeBSD 7.2/amd64 (sig_atomic_t != int on amd64)
Jaroslav Hajek
highegg at gmail.com
Wed Jun 24 01:19:23 CDT 2009
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.
thanks
--
RNDr. Jaroslav Hajek
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz
More information about the Bug-octave
mailing list