[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

19990325: mcidasX on FreeBSD (cont.)



>From: Steve Dixon <address@hidden>
>Organization: ABoM
>Keywords: 199903242326.QAA05043 McIDAS FreeBSD

Steve,

>Thanks for your early reply.
>
>As you know, I am trying to make mcidas 7.501 on a FreeBSD 2.2.6 machine.

Right.

>I am using f77 as a fortran compiler which basically runs f2c then passes
>the output to gcc - rather like fort77 on linux.

OK.  Is this a Bourne shell script?  The origins of the mcfc script that
I am using now was known either as 'fc' or 'f77'.  The 'fc' name is
bad since there are shell routines named 'fc' on a number of systems.

>I have altered mccomp in a very similar manner to the linux setup, and it
>seems that I can build libmcidas.a.

OK.  I see from the output below that you are using 'f77' as your linker
also.

>However, I have problems with linking. When I get to making mcenv from
>mcenv.o, I am told about heaps of Undefined symbol messages.
>
>I have included here a short excerpt from the makelog. You can see that the
>system happily links macro3, but has trouble with mcenv.

Well, macro3 is an easy one since its main job is translating McIDAS
macro code into Fortran.

>I'm interested in your mcfc.sh script. I can't find that in my distribution.

It is not in SSEC's McIDAS 7.5x distribution.  Their variant of it will
be in the 7.6 (May upgrade) distribution, however.  I got the original
code from Chad Johnson of SSEC and then modified it so it would correctly
search libraries and strip resultant executables.  I have included 
mcfc.sh at the end of this message.

>Thanks for your interest,

Like I said before, if I can get the mods you have to make to get 7.5x to
build on FreeBSD, then I can better support one of my sites.

>------------------------- makelog excerpt follows.....----------------------
>
>./mccomp -g -fp -o macro3 macro3.o -L. -lmcidas
>f77 -g -o macro3 macro3.o -L. -L/home/mcidas/lib -L/usr/X11/lib -lmcidas
>-lf2c -lm
>link    macro3:                 done
>./mccomp -g -I. -I../netcdf/libsrc -c mcenv.cp
>gcc -c -O -D_GNU_SOURCE -ansi -I/usr/X11/include -g -I. -I../netcdf/libsrc
>-I/us
>r/X11R6/include/ mcenv.c 
>compile mcenv.cp:               done
>./mccomp -g -o mcenv mcenv.o -L. -lmcidas
>f77 -g -o mcenv mcenv.o -L. -L/home/mcidas/lib -L/usr/X11/lib -lmcidas
>-lf2c -lm
>mcinit.c:146: Undefined symbol `_m0posuc' referenced from text segment
>mcinit.c:327: Undefined symbol `_M0posuc_size' referenced from text segment
>mcinit.c:501: Undefined symbol `_M0cacheflush' referenced from text segment
>mcinit.c:525: Undefined symbol `_M0posuc' referenced from text segment 

The Undefined symbols you list are defined in m0posuc.c:

/*
*| Name:
*|      M0posuc  - create the positive UC for a particular WS
*|
*| Interface:
*|      #include "mcidas.h"
*|      #include "m0glue.h"
*|
*|      int
*|      M0posuc(M0framereq *req, int extra)


The thing I don't understand is the leading underscore: _M0posuc.
                                                        ^

All of the McIDAS UC stuff (User Common) in X comes from shared
memory.  These Undefined symbols all relate to shared memory, so that
at least narrows down the search somewhat.

>mcinit.c:530: Undefined symbol `_M0neguc' referenced from text segment 
>mcinit.c:554: Undefined symbol `_M0cacheflush' referenced from text segment
>mcinit.c:572: Undefined symbol `_m0posuc' referenced from text segment
>mcinit.c:611: Undefined symbol `_M0waitpid' referenced from text segment
>mcinit.c:620: Undefined symbol `_m0posuc' referenced from text segment  
>mcinit.c:624: Undefined symbol `_M0shmctl' referenced from text segment    
>mcinit.c:643: Undefined symbol `_M0shmat' referenced from text segment  
>mcinit.c:643: Undefined symbol `_m0posuc' referenced from text segment
>mcinit.c:670: Undefined symbol `_M0neguc' referenced from text segment
>mcinit.c:678: Undefined symbol `_M0shmat' referenced from text segment
>.... and so it dgoes on for mckeyin.c, pathname.c,  puc_.c, etc

Hmm... I will have to think about this a little more and attack it again
tomorrow.

Tom