Can you tar up your module and send it to me and I will see if I can
determine what you may be having problems with?
David
David,
Thanks for the info on linux shared libraries. I
compiled and linked using the Makefile below.
Unfortunately, on execution the results are the same as
with inlining; same "ignoring redefinition" messages
and same "function does not exist" message.
-Ned
# Makefile to generate a new dxexec executable with
# the OTI spin routines as loadable modules.
OBJ = ColorList.o \
CylArea.o \
EditCamera.o \
FixContourOrientation.o \
Insideout.o \
ProcessBnd.o \
RemovePlane.o \
ShiftCamera.o \
SortLoops.o \
SpinLines.o \
SweepCylinder.o \
user_loadable.o
BASE = /usr/local/dx
ARCH = linux
CFLAGS= -I$(BASE)/include
LDFLAGS = -Wall -I/usr/X11R6/include -D_GNU_SOURCE --shared -eDXEntry
LIBS_1 = -L$(BASE)/lib_$(ARCH) -L/usr/lib -L/usr/X11R6/lib
-L/usr/local/lib -lDX
LIBS_2 = /home/ned/a.cvs/dx/src/exec/hwrender/opengl/.libs/libOPENGL.a
LIBS_3 = -lnsl -lXpm -ldl -lXm -lXp -lGLU -lGL
LIBS_4 = -lMagick -ltiff -lfreetype -ljpeg -lpng -ldpstk -ldps -lXext
LIBS_5 = -lXt -lSM -lICE -lX11 -lz -lpthread -lm
LIBS = $(LIBS_1) $(LIBS_2) $(LIBS_3) $(LIBS_4) $(LIBS_5)
CC = gcc
dxexec: $(OBJ)
$(CC) $(LDFLAGS) $(OBJ) $(OBJ2) $(LIBS) -o dxexec
user_loadable.c: OTI_loadable.mdf
$(BASE)/bin/mdf2c -m OTI_loadable.mdf > user_loadable.c
clean:
-rm -f core $(OBJ) user_loadable.c
===============================================================
David Thompson wrote:
For Linux its actually quite easy. Using a similar setup, shown below:
BASE = /usr/local/dx
LDFLAGS = --shared -eDXEntry
CFLAGS = -I$(BASE)/include
LIBS = "$LIBS -L$(BASE)/lib_$ARCH"
CC = cc
OTI_loadable: $(OBJ)
$(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o OTI_loadable
Of course you may need to add more libraries.
David
>On the broader question; no, I'm not wedded to the use
>of inboard modules. I used loadables on the DEC ALPHA
>under OSF1 but the last time I visited this question
>for linux, sharable modules were not an option. Below
>are the linker options that I used for the ALPHA, can
>you tell me what the syntax is for linux?
>
>BASE = /usr/lpp/dx
>LDFLAGS = -shared -all -e DXEntry -expect_unresolved main
>-expect_unresolved DX*
>CFLAGS= -O -Dalphax -I$(BASE)/include
>LIBS = -lDX -ly -ll -lm -lX11
>SYSLIBS = -lm -lc
>CC = cc
>
>OTI_loadable: $(OBJ)
> $(CC) $(LDFLAGS) $(OBJ) $(SYSLIBS) -o OTI_loadable
>
>Best,
>Ned
>
--
.............................................................................
David L. Thompson Visualization and Imagery
Solutions, Inc.
mailto:[EMAIL PROTECTED] 5515 Skyway Drive, Missoula, MT 59804
Phone : (406)756-7472
--
.............................................................................
David L. Thompson Visualization and Imagery Solutions, Inc.
mailto:[EMAIL PROTECTED] 5515 Skyway Drive, Missoula, MT 59804
Phone : (406)756-7472