At 7:09 AM -0400 8/27/02, opendx-users-digest wrote:
Date: Fri, 23 Aug 2002 14:31:57 -0400
From: Randall Hopper <[EMAIL PROTECTED]>
Richard Cook:
|I've had some adventures trying to get OpenDX 4.2 to compile on our
|Compaq Tru64 Unix machines here. First, there were several errors of
|the type:
|ColorMapEditor.c: In function `SetValues':
|ColorMapEditor.c:889: `dx_l' undeclared (first use in this function)
|For the record, I fixed each of these by adding as the first line of
|the function in which the error occured the following:
|XtArgVal dx_l;
Good question. After doing a few quick greps, I'm not sure off-hand how DX
is compiling. I notice your solution in some spots:
#if defined(alphax)
XtArgVal dx_l;
#endif
but not others.
Yes, I did the same thing and that's how I came up with "my solution." :-)
|Unresolved:
|yylineno
|collect2: ld returned 1 exit status
|*** Exit 1
|
|In reference to earlier threads about this being caused by yacc or
|bison
...
|gps01{rcook}104: which yacc
|/usr/bin/yacc
Yep. Or flex. Do this after configure:
> grep LEX Makefile
tc03{rcook}111: grep LEX Makefile
LEX = flex
to see what DX is running. Here on our SGI net we're running flex, without
any special options. But with some flex's on other platforms, I've had to
add "-l" to the flex command-line in the post-configure Makefiles before
building to get this defined (easy with a recursive perl run:
find . -name Makefile | xargs perl -pi -e 's/flex/flex -l/'). Probably a flex
version-related problem, but I'm not a yacc/flex expert.
I tried your trick and now I got:
gcc -g -O2 -I/usr/local/tools/gnu/Mesa3D/4.0.3/include -D_GNU_SOURCE
edflex.c -o edflex
edflex.c:9:22: dxconfig.h: No such file or directory
edflex.c:12:19: dx/dx.h: No such file or directory
So I used your trick with a twist:
find . -name Makefile | xargs perl -pi -e
's/-D_GNU_SOURCE/-D_GNU_SOURCE -I\${prefix}\/include/'
And now I'm stuck with:
gcc -g -O2 -I/usr/local/tools/gnu/Mesa3D/4.0.3/include -D_GNU_SOURCE
-I/usr/local/tools/DX/OpenDX/src/4.2.0/dx-4.2.0/include edflex.c -o
edflex
In file included from
/usr/local/tools/DX/OpenDX/src/4.2.0/dx-4.2.0/include/dx/dx.h:45,
from edflex.c:12:
/usr/local/tools/DX/OpenDX/src/4.2.0/dx-4.2.0/include/dx/arch.h:667:1:
warning: "DXD_STANDARD_IEEE" redefined
/usr/local/tools/DX/OpenDX/src/4.2.0/dx-4.2.0/include/dx/arch.h:102:1:
warning: this is the location of the previous definition
/usr/bin/ld:
Unresolved:
main
_dxfputdict
_dxfiskeyword
_dxflookkeyword
_dxfdictname
DXAllocateLocal
DXFree
collect2: ld returned 1 exit status
How the heck is 'main' unresolved?
I'm going to try to just define yylineno and see if that works...
Well, yes, that cleaned up the "undefined error," but now I get
billions of warnings like this:
../base/libBASE.a(NoUndoHelpCmd.o): vtable for NoUndoCommand: weak
symbol multiply defined
../base/libBASE.a(NoUndoHelpCmd.o): VTT for NoUndoCommand: weak
symbol multiply defined
../base/libBASE.a(NoUndoHelpCmd.o): virtual thunk to
NoUndoCommand::~NoUndoCommand(): weak symbol multiply defined
../base/libBASE.a(NoUndoHelpCmd.o): virtual thunk to
NoUndoCommand::getClassName(): weak symbol multiply defined
../base/libBASE.a(NoUndoHelpCmd.o): construction vtable for
Command-in-NoUndoCommand: weak symbol multiply defined
../base/libBASE.a(NoUndoHelpCmd.o): construction vtable for
Server-in-NoUndoCommand: weak symbol multiply defined
followed by the kicker:
make_outbuf: mmap write failure(Not enough space)
collect2: ld returned 1 exit status
*** Exit 1
Now what? Thanks for your help, I know this is doable.
--
Richard Cook
Lawrence Livermore National Laboratory
Bldg-451 Rm-2043, Mail Stop L-561
7000 East Avenue, Livermore, CA, 94550, USA
phone (925) 423-9605 (work) fax (925) 423-8704
---
Information Management & Graphics Grp., Services & Development Div.,
Integrated Computing & Communications Dept.
(opinions expressed herein are mine and not those of LLNL)