Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

(RESOLVED) symbol lookup error: ./ungrib.exe: undefined symbol: __libm_feature_flag

yutinghe

New member
Hi,
I am currently facing an issue while running ungrib.exe in the WPS-4.2. I would greatly appreciate any assistance or guidance you can provide.

When executing the ungrib.exe command, I encountered the following error message:
"symbol lookup error: ./ungrib.exe: undefined symbol: __libm_feature_flag"

I have thoroughly reviewed my environment settings, verified the installation of all required libraries and dependencies, and ensured that the necessary paths are correctly set. Despite these efforts, I have been unable to resolve the issue.

To assist in troubleshooting, please find attached the following files: compile.log and configure.wps.

Thank you for your time and expertise. I look forward to your valuable assistance.

Best regards,
Yuting
 

Attachments

  • compile.log
    95.1 KB · Views: 2
  • configure.wps
    3.3 KB · Views: 2
Hi Yuting,
This may sound silly, but if you haven't already, can you recompile WPS altogether to see if that fixes the issue? Let us know.
 
Hi Yuting,
This may sound silly, but if you haven't already, can you recompile WPS altogether to see if that fixes the issue? Let us know.
Thank you very much for your reply. After careful examination, I found that it was an error caused by I didn't set the environment variable JASPERLIB. Now I can run ungrib.exe normally. Thank you again for your advice.
 
Thank you very much for your reply. After careful examination, I found that it was an error caused by I didn't set the environment variable JASPERLIB. Now I can run ungrib.exe normally. Thank you again for your advice.
Hello, I have the same problem but I can't find where JASPERLIB has no set path, can you help me point out which document it is?
 
Hello, I have the same problem but I can't find where JASPERLIB has no set path, can you help me point out which document it is?
Hi, you can set these two environment variables in the .bashrc file in your home directory, just like this:
Code:
export JASPERINC=/full/path/to/your/jasper/installation/include
export JASPERLIB=/full/path/to/your/jasper/installation/lib
Here is an example I gave to you:
Code:
export JASPERINC=/home/heyt/libs/jasper/1.9/include
export JASPERLIB=/home/heyt/libs/jasper/1.9/lib
 
Hi, you can set these two environment variables in the .bashrc file in your home directory, just like this:
Code:
export JASPERINC=/full/path/to/your/jasper/installation/include
export JASPERLIB=/full/path/to/your/jasper/installation/lib
Here is an example I gave to you:
Code:
export JASPERINC=/home/heyt/libs/jasper/1.9/include
export JASPERLIB=/home/heyt/libs/jasper/1.9/lib
The change points out the paths to JASPERINC and JASPERLIB in./bashrc,the next:Recompile WPS
 
@ning wang

How did you install Jasper? Which version of Jasper are you using?

WRF has to use a specific version 1.900.1
 
You're correct.
I just took a look at your configure.wps, Find your that COMPRESSION_LIBS = - L/public/software/mathlib/libs - Intel/jasper 1.900.1 / lib - ljasper - LPNG - lz
COMPRESSION_INC = - I/public/software/mathlib/libs - Intel/jasper / 1.900.1 / include here only defines the path of jasper, Did you link the LIBPNG and ZLIB INCLUDE and LIB files to JASPER?
 
The compiler I use is the Intel compiler, not the GUN compiler, so this WRF installation tutorial does not apply to me.

A tutorial I wrote about intel compilers and then you can modify the Compiling WRF tutorial based on that.
 
@ning wang
You shouldn't need to reinstall everything, and I'm not certain you have to use version 1.900.1 to compile WPS - that is just the version we use for our compiling tutorial site.

Do you have the environment variable LD_LIBRARY_PATH set? If not, try setting it to that the "lib" folder where all your grib2 libraries are built. For e.g.,
Code:
export LD_LIBRARY_PATH=path-to-all-grib2-libraries/lib:$LD_LIBRARY_PATH

If you are still having trouble with the grib2 libraries, an easier option is simply to recompile WPS with the option that automatically builds those libraries for you, without you needing to install them, yourself. I know you're trying to compile V4.2, but beginning in WPSV4.4, this option exists, and then you don't need to point to any paths for them. Do you mind trying that version (it shouldn't make a difference which WPS version you use, as long as you're using a V4+ with any V4+ version of WRF)? To compile WPS with the automatic library build, configure with this command:
Code:
./configure --build-grib2-libs

and then recompile the code.
 
@ning wang
You shouldn't need to reinstall everything, and I'm not certain you have to use version 1.900.1 to compile WPS - that is just the version we use for our compiling tutorial site.

Do you have the environment variable LD_LIBRARY_PATH set? If not, try setting it to that the "lib" folder where all your grib2 libraries are built. For e.g.,
Code:
export LD_LIBRARY_PATH=path-to-all-grib2-libraries/lib:$LD_LIBRARY_PATH

If you are still having trouble with the grib2 libraries, an easier option is simply to recompile WPS with the option that automatically builds those libraries for you, without you needing to install them, yourself. I know you're trying to compile V4.2, but beginning in WPSV4.4, this option exists, and then you don't need to point to any paths for them. Do you mind trying that version (it shouldn't make a difference which WPS version you use, as long as you're using a V4+ with any V4+ version of WRF)? To compile WPS with the automatic library build, configure with this command:
Code:
./configure --build-grib2-libs

and then recompile the code.
Do you mean I link all dependencies to grib2 directory and set LD_LIBRARY_PATH
 
Do you mean I link all dependencies to grib2 directory and set LD_LIBRARY_PATH
Take a look at the instructions for building the libraries here. So, in that example, you would install libpng, zlib, and jasper all in a folder called "grib2. For e.g., these are the directories contained in my 'grib2' directory:

Code:
> ls /home/libraries/grib2/
bin  include  lib  man  share

and these are the files found in the "bin," "lib," and "include" directories (which are the ones we care about):

Code:
>ls bin/
imgcmp  imginfo  jasper  libpng12-config  libpng-config  tmrdemo

>ls lib/
libjasper.a  libjasper.la  libpng12.a  libpng12.la  libpng.a  libpng.la  libz.a  pkgconfig

>ls include
jasper/  libpng12/  pngconf.h  png.h  zconf.h  zlib.h

Then if I were setting my LD_LIBRARY_PATH, I would set

Code:
export LD_LIBRARY_PATH=/home/libraries/grib2/lib:$LD_LIBRARY_PATH
 
Top