>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
NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.