From bug-octave-request at bevo dot che dot wisc dot edu Mon Feb 2 11:30:28 2004 Subject: Build of Octave 2.1.50 failed under Tru64 V5.1B From: "John W. Eaton" To: hans dot ekkehard dot plesser at nlh dot no Cc: bug-octave at bevo dot che dot wisc dot edu Date: Mon, 2 Feb 2004 11:29:16 -0600 On 2-Feb-2004, Dr. Hans Ekkehard Plesser wrote: | -----BEGIN PGP SIGNED MESSAGE----- | Hash: SHA1 | | | Hi! | | I tried to build Ovtave 2.1.50 on a HP GS1280 running Tru64 V5.1B, with the | Compaq C++ Compiler V 6.5. I configured with | | CC=cc | MAKE=gmake | CXX=cxx | F77=f77 | CFLAGS=-ieee -O3 -arch ev7 -tune ev7 | CXXFLAGS=-ieee -O3 -arch ev7 -tune ev7 | | ./configure CPPFLAGS=-I/opt/nlh/include LDFLAGS=-L/opt/nlh/lib | - --prefix=/opt/nlh --enable-shared | | I use GNU Make 3.80. | | Compilation failed in libcruft/misc as follows | | cxx -c -I/opt/nlh/include -I. -I../.. -I../../liboctave -I../../src | - -I../../libcruft/misc -I../../glob -I../../glob -DHAVE_CONFIG_H -ieee -ieee | - -O3 -arch ev7 -tune ev7 quit.cc -o quit.o | cxx: Error: quit.cc, line 40: declaration is incompatible with | "void (*octave_interrupt_hook)() C" (declared at line 90 of | "quit.h") | void (*octave_interrupt_hook) (void) = 0; | - -------^ | cxx: Error: quit.cc, line 41: declaration is incompatible with | "void (*octave_bad_alloc_hook)() C" (declared at line 91 of | "quit.h") | void (*octave_bad_alloc_hook) (void) = 0; | - -------^ | | I found the following hack around this: | | 1. libcruft/misc/quit.cc compiles if the following lines (90-91) | in libcruft/misc/quit.h are commented out: | | extern void (*octave_interrupt_hook) (void); | extern void (*octave_bad_alloc_hook) (void); | | 2. After these changes, src/toplev.cc no longer compiles. toplev.cc does | compile once those two lines are restored in quit.h. | | Compilation then seems to get quite far, and creates an octave executable that | performs at least standard tasks (scalar and matrix arithmetic). | | The make process fails again in directory src with | | cxx -shared -Wl,-expect_unresolved -Wl,'*' -o kron.oct kron.o | ld (prelink): | so_locations: line #5: bad tag | ld: | so_locations: line #5: bad tag | | The initial part of src/so_locations looks like this: | | hess.oct \ | :st = .text 0x000003ffbffe0000, 0x0000000000020000:\ | :st = .data 0x000003ffffff0000, 0x0000000000010000:\ | | 000:\ | | besselj.oct \ | :st = .text 0x000003ffbf5a0000, 0x0000000000030000:\ | :st = .data 0x000003ffffc20000, 0x0000000000010000:\ | | After removing line 5, containing "000:\", the make process completed nicely, | and functions like eig() work as well. I'm not sure what is causing the problem with so_locations, but I think the other problems are fixed in 2.1.53. If not, can you please try the current CVS sources and see if there are still problem? Thanks, jwe ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------