This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>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