[Met_help] problems compiling MET

Michael Brennan Michael.J.Brennan at noaa.gov
Mon May 19 13:16:39 MDT 2008


John,

Ahh, it was the issue with the file in BUFRLIB being different from 
BUFRLIB/lib!  I think that was something I set up when I was having 
problems compiling this initially and forgot about it.

I think everything compiled successfully now.  Thank you *so* much for 
your help. I'm sorry it was such a silly error causing the problem in 
the end.

Thanks again.
Mike

John Halley Gotway wrote:
> Michael,
> 
> I'm pretty stumped.  It really seems like this should be working.
> 
> I was thinking that perhaps MET is linking to another version of BUFRLIB 
> on your system that you don't intend.  But the error message from the 
> linker indicates that it is in fact looking at the one in 
> /export/lnx274/mbrennan/BUFRLIB/lib.  Just to be certain, you don't have 
> 2 version of the file libbufr.a in /export/lnx274/mbrennan/BUFRLIB AND 
> in /export/lnx274/mbrennan/BUFRLIB/lib do you?
> 
> Another thing we could try... while I haven't heard of anyone having to 
> do this, we could try adding the "-fno-second-underscore" flag to the 
> compilation of PB2NC.  In the file METv1.0/src/pb2nc/Makefile, you could 
> add -fno-second-underscore to the OPT_FLAGS line.  Not sure if/why that 
> would help.
> 
> And lastly, doing a google search, I found the following reference: 
> https://lstsrv.ncep.noaa.gov/pipermail/ncep.list.bufrlib-support/2007-April/000078.html 
> 
> This was posted by someone with whom I work here at NCAR.  You could try 
> modifying the BUFRLIB header file in the way he describes.  However, the 
> -fno-second-underscore flag we're using is meant to address this issue.
> 
> John
> 
> Michael Brennan wrote:
>> John,
>>
>> I recompiled the BURFLIB the correct way, using the commands you 
>> suggested. I don't get the "__" when I run the nm command, as you can 
>> see here:
>>
>> mbrennan at lnx274> nm libbufr.a | grep bort_exit
>>                  U bort_exit_
>>                  U bort_exit_
>> bort_exit.o:
>> 0000000000000000 T bort_exit_
>>
>> However, I still get the same errors when trying to compile MET. I've 
>> attached the output from the "make" command as the file make_met.log.
>>
>> Mike
>>
>> John Halley Gotway wrote:
>>> Michael,
>>>
>>> I'm sorry this is still causing you problems.  I'm hoping there's 
>>> just some detail we're missing because this seems like it should be a 
>>> pretty straight-forward thing to fix.
>>>
>>> I replicated the exact error message you're getting be rebuilding 
>>> BUFRLIB the *wrong* way and then rebuilding MET linking to the bad 
>>> version of BUFRLIB.
>>>
>>> Here are the commands I used to build BUFRLIB the *wrong* way:
>>> gcc -c -DUNDERSCORE *.c
>>> g77 -c -DUNDERSCORE *.f
>>> ar crv libbufr.a *.o
>>>
>>> Running the 'nm' command on the library archive file, this is what I 
>>> find:
>>> Pigpen > nm *.a | grep bort_exit
>>>          U bort_exit__
>>> bort_exit.o:
>>> 00000000 T bort_exit_
>>>          U bort_exit__
>>>
>>> Those lines: "U bort_exit__" are INCORRECT and should not be there.  
>>> Instead, they should read: "U bort_exit_" with only one underscore.
>>>
>>> When I tried building MET linking to this incorrect version of 
>>> BUFRLIB, I got the exact same error you're getting:
>>>
>>> /nfs/pigpen_pd6/score/MET/MET_releases/external_libs/bufrlib_JHG/libbufr.a(bort2.o): 
>>> In function `bort2_':
>>> bort2.f:(.text+0x216): undefined reference to `bort_exit__'
>>> /nfs/pigpen_pd6/score/MET/MET_releases/external_libs/bufrlib_JHG/libbufr.a(bort.o): 
>>> In function `bort_':
>>> bort.f:(.text+0x1b6): undefined reference to `bort_exit__'
>>> collect2: ld returned 1 exit status
>>>
>>> So let's try rebuilding one more time and see if we can get it 
>>> working.  Please run the following commands:
>>>
>>> (1) cd /export/lnx274/mbrennan/BUFRLIB
>>> (2) rm *.o *.a
>>> (3) gcc -c -DUNDERSCORE *.c
>>> (4) g77 -c -DUNDERSCORE -fno-second-underscore *.f (the *CORRECT* way 
>>> to compile this)
>>> (5) ar crv libbufr.a *.o
>>> (6) nm libbufr.a | grep bort_exit (verify that all lines are 
>>> "bort_exit_" and NOT "bort_exit__")
>>> (7) cd /export/lnx274/MET/METv1.0
>>> (8) make clean
>>> (9) make
>>>
>>> And then keep your fingers crossed.  If this doesn't work, then there 
>>> may be some version or system configuration differences that are 
>>> causing issues.
>>>
>>> Please let me know how it goes.
>>>
>>> John
>>>
>>>
>>> Michael Brennan wrote:
>>>> John,
>>>>
>>>> I'm just sitting down to take a look at this again. I think in my 
>>>> last message to you, I looked at the output from this command:
>>>>
>>>> nm /export/lnx274/mbrennan/BUFRLIB/libbufr.a | grep bort
>>>>
>>>> and the line said "bort_exit_" (with one underscore).
>>>>
>>>> I still don't seem to have any luck compiling. I pasted the error 
>>>> string I get below. Do you have any other suggestions?
>>>>
>>>> Thanks,
>>>> Mike
>>>>
>>>> /usr/bin/g++ -o pb2nc pb2nc.cc pb2nc_Conf.o numpbmsg.o openpb.o 
>>>> readpb.o dumppb.o  \
>>>>         -g -Wall -Wshadow -static 
>>>> -DMET_BASE=\"/export/lnx274/MET/METv1.0\" \
>>>>         -I/export/lnx274/mbrennan/gsl/include \
>>>>         -I../../lib -I../../lib 
>>>> -I/export/lnx274/mbrennan/applications/netcdf-3.6.2/include 
>>>> -I/export/lnx274/mbrennan/BUFRLIB -I/export/lnx274/mbrennan/f2c \
>>>>         -L../../lib -L../../lib 
>>>> -L/export/lnx274/mbrennan/applications/netcdf-3.6.2/lib 
>>>> -L/export/lnx274/mbrennan/BUFRLIB/lib 
>>>> -L/export/lnx274/mbrennan/f2c/libf2c \
>>>>         -lbufr -lvx_grib_classes -lvx_wrfdata -lvx_econfig \
>>>>         -lvx_data_grids -lvx_math -lvx_cal -lvx_util -lvx_met_util 
>>>> -lm -lf2c \
>>>>         -lnetcdf_c++ -lnetcdf
>>>> ../../lib/vx_wrfdata/vx_wrfdata.h:41: warning: 'wrfdata_magic' 
>>>> defined but not used
>>>> ../../lib/vx_wrfdata/vx_wrfdata.h:64: warning: 'thresh_type_str' 
>>>> defined but not used
>>>> ../../lib/vx_wrfdata/vx_wrfdata.h:85: warning: 'step_direction_str' 
>>>> defined but not used
>>>> ../../lib/vx_met_util/constants.h:16: warning: 'proj_type' defined 
>>>> but not used
>>>> ../../lib/vx_met_util/constants.h:23: warning: 'na_str' defined but 
>>>> not used
>>>> ../../lib/vx_met_util/constants.h:26: warning: 'all_msg_typ_str' 
>>>> defined but not used
>>>> ../../lib/vx_met_util/constants.h:38: warning: 'all_interp_mthd_str' 
>>>> defined but not used
>>>> ../../lib/vx_met_util/constants.h:49: warning: 'mthd_str' defined 
>>>> but not used
>>>> ../../lib/vx_met_util/met_stats.h:20: warning: 'hdr_fmt_str' defined 
>>>> but not used
>>>> ../../lib/vx_grib_classes/grib_strings.h:20: warning: 'missing_str' 
>>>> defined but not used
>>>> ../../lib/vx_grib_classes/grib_strings.h:62: warning: 
>>>> 'grib_code_list' defined but not used
>>>> ../../lib/vx_grib_classes/grib_strings.h:94: warning: 
>>>> 'grib_code_list_str' defined but not used
>>>> ../../lib/vx_grib_classes/grib_strings.h:358: warning: 
>>>> 'grib_level_list' defined but not used
>>>> ../../lib/vx_grib_classes/grib_strings.h:377: warning: 
>>>> 'grib_level_flag' defined but not used
>>>> ../../lib/vx_grib_classes/grib_strings.h:391: warning: 
>>>> 'grib_level_list_str' defined but not used
>>>> ../../lib/vx_met_util/read_grib.h:64: warning: 'two_to_one_grib' 
>>>> defined but not used
>>>> /export/lnx274/mbrennan/BUFRLIB/lib/libbufr.a(bort.o)(.text+0xe9): 
>>>> In function `bort_':
>>>> : undefined reference to `bort_exit__'
>>>> /export/lnx274/mbrennan/BUFRLIB/lib/libbufr.a(bort2.o)(.text+0x124): 
>>>> In function `bort2_':
>>>> : undefined reference to `bort_exit__'
>>>> collect2: ld returned 1 exit status
>>>> make[3]: *** [pb2nc] Error 1
>>>> make[2]: *** [all] Error 2
>>>> make[1]: *** [targets] Error 2
>>>> make: *** [all] Error 2
>>>>
>>>> John Halley Gotway wrote:
>>>>> Mike,
>>>>>
>>>>> Hmmm.  That's odd.  The "-fno-second-underscore" option is meant to 
>>>>> address this exact issue.
>>>>>
>>>>> Please try doing the following command:
>>>>> nm /export/lnx274/mbrennan/BUFRLIB/libbufr.a | grep bort
>>>>>
>>>>> And then send me the output of the command.
>>>>>
>>>>> In the output of the "nm" command, look to see if there's a line 
>>>>> that says "bort_exit_" or does it say "bort_exit__"?
>>>>>
>>>>> We need to compile BUFRLIB in such a way that it says "bort_exit_" 
>>>>> rather than "bort_exit__".
>>>>>
>>>>> Sorry about these issues.  It's a result of mixing FORTRAN code 
>>>>> with C++ code.
>>>>>
>>>>> John
>>>>>
>>>>> Michael Brennan wrote:
>>>>>> John,
>>>>>>
>>>>>> I had not seen those suggestions in the User's Guide. I rebuilt 
>>>>>> the BUFRLIB as you suggested and rebuilt MET. I get the same error 
>>>>>> (have reattached the Makefile and make_met.log.  I'll spend some 
>>>>>> more time on it this afternoon and let you know if I make any 
>>>>>> progress.
>>>>>>
>>>>>> Thanks again for your help!
>>>>>> Mike
>>>>>>
>>>>>> John Halley Gotway wrote:
>>>>>>> Michael,
>>>>>>>
>>>>>>> When you compiled BUFRLIB, did you see the suggestions in the MET 
>>>>>>> User's Guide about it?  Please take a look in section 2.6 of the 
>>>>>>> MET User's Guide (METv1.0/doc/MET_Users_Guide.pdf).  Try 
>>>>>>> rebuilding BUFRLIB using the following commands that are listed 
>>>>>>> in there:
>>>>>>>
>>>>>>> cd /export/lnx274/mbrennan/BUFRLIB
>>>>>>> rm *.o *.a
>>>>>>> /usr/bin/gcc -c -DUNDERSCORE *.c
>>>>>>> /usr/bin/g77 -c -DUNDERSCORE -fno-second-underscore *.f
>>>>>>> ar crv libbufr.a *.o
>>>>>>>
>>>>>>> Then try rebuilding MET.  Hopefully, that'll fix that undefined 
>>>>>>> reference error you're seeing right now.
>>>>>>>
>>>>>>> Let me know how it goes.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> John
>>>>>>>
>>>>>>> Michael Brennan wrote:
>>>>>>>> John,
>>>>>>>>
>>>>>>>> Thanks very much for your suggestion. I definitely made it 
>>>>>>>> farther this time, but still ended up with an error, this time 
>>>>>>>> related to the BUFRLIB. I've again attached the Makefile and 
>>>>>>>> make_met.log. If you can take another look, I'd greatly 
>>>>>>>> appreciate it!
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Mike
>>>>>>>>
>>>>>>>> John Halley Gotway wrote:
>>>>>>>>> Michael,
>>>>>>>>>
>>>>>>>>> I apologize for not getting back to you sooner.  Most of the 
>>>>>>>>> people who provide support for MET were out of town last week.
>>>>>>>>>
>>>>>>>>> Thanks for sending along your Makefile and your log file.  It 
>>>>>>>>> makes diagnosing the problem a lot easier.
>>>>>>>>>
>>>>>>>>> This looks like a pretty simple problem.  The compiler is not 
>>>>>>>>> able to find the file "gsl/gsl_cdf.h".
>>>>>>>>>
>>>>>>>>> In your Makefile, change the following line...
>>>>>>>>> FROM: GSL_INCS = -I/export/lnx274/mbrennan/gsl/include/gsl
>>>>>>>>> TO:   GSL_INCS = -I/export/lnx274/mbrennan/gsl/include
>>>>>>>>>
>>>>>>>>> And then do a "make clean" followed by a "make >& make_met.log".
>>>>>>>>>
>>>>>>>>> I see why you set GSL_INCS the way you did - the comments in 
>>>>>>>>> the Makefile are a little misleading.
>>>>>>>>>
>>>>>>>>> That should solve that problem.  Please let me know if you run 
>>>>>>>>> into other issues.
>>>>>>>>>
>>>>>>>>> Thanks and sorry again for the delay,
>>>>>>>>> John Halley-Gotway
>>>>>>>>> johnhg at ucar.edu
>>>>>>>>>
>>>>>>>>> Michael Brennan wrote:
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I'm attempting to compile MET in user space on a Linux 
>>>>>>>>>> workstation. I have all the necessary other software installed 
>>>>>>>>>> (NETCDF, BURFLIB, GSL, and F2C), and I've updated the code 
>>>>>>>>>> suggested on the "known issues" page. However, I'm still 
>>>>>>>>>> having problems. I've attached make make_met.log file and my 
>>>>>>>>>> top level Makefile.
>>>>>>>>>>
>>>>>>>>>> I'm trying to use pre-compiled NETCDF libraries for compiling 
>>>>>>>>>> MET. Could that be part of the problem?
>>>>>>>>>>
>>>>>>>>>> I appreciate any advice you might have.
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>> Mike
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Met_help mailing list
>>>>>>>>>> Met_help at mailman.ucar.edu
>>>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/met_help
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Met_help mailing list
>>>>>>>> Met_help at mailman.ucar.edu
>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/met_help
>>>>>>
>>>> _______________________________________________
>>>> Met_help mailing list
>>>> Met_help at mailman.ucar.edu
>>>> http://mailman.ucar.edu/mailman/listinfo/met_help
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Michael_J_Brennan.vcf
Type: text/x-vcard
Size: 292 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/met_help/attachments/20080519/d42facef/Michael_J_Brennan.vcf


More information about the Met_help mailing list