Compiling OpenCV with PGI - assembler

Hi,

I’ve been looking at building the popular computer vision library OpenCV with PGI 11.3 on a 64-bit RHEL5 Linux platform and have been hitting a few problems.

Building the code from the trunk of their SVN repo (they only seem to want to debug this with that copy), I’m getting a couple of issues: one looks like a compiler bug, the other may be their code.

  1. Assembler messages that go away if I reduce the optimisation level - compiler bug?

[ 32%] Building CXX object modules/calib3d/CMakeFiles/opencv_calib3d.dir/src/modelest.o
cd /nobackup/issmcd/opencv/trunk/b2/modules/calib3d && /apps/compilers/pgi/11.3/1/default/linux86-64/11.3/bin/pgcpp -Dopencv_calib3d_EXPORTS -DHAVE_CONFIG_H -DCVAPI_EXPORTS -fast -O3 -Mipa=fast -DNDEBUG -fPIC -I/nobackup/issmcd/opencv/trunk/opencv/. -I/nobackup/issmcd/opencv/trunk/b2 -I/nobackup/issmcd/opencv/trunk/opencv/include -I/nobackup/issmcd/opencv/trunk/opencv/include/opencv -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/src -I/nobackup/issmcd/opencv/trunk/b2/modules/calib3d -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/…/core/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/…/imgproc/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/…/highgui/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/…/features2d/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/…/flann/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/test -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/…/calib3d/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/…/ts/include -o CMakeFiles/opencv_calib3d.dir/src/modelest.o -c /nobackup/issmcd/opencv/trunk/opencv/modules/calib3d/src/modelest.cpp
/tmp/pgcppNGtc12TM-L22.s: Assembler messages:
/tmp/pgcppNGtc12TM-L22.s:4434: Error: undefined symbol .LB4556' in operation /tmp/pgcppNGtc12TM-L22.s:4435: Error: undefined symbol .LB4556’ in operation


This seems to be caused by the “-Mvect=sse” option implied by -fast.


2) __jmp_buf not being defined when they include setjmp.h.


[ 34%] Building CXX object modules/ts/CMakeFiles/opencv_ts.dir/src/ts.o
cd /nobackup/issmcd/opencv/trunk/b2/modules/ts && /apps/compilers/pgi/11.3/1/default/linux86-64/11.3/bin/pgcpp -Dopencv_ts_EXPORTS -DHAVE_CONFIG_H -DGTEST_CREATE_SHARED_LIBRARY=1 -DCVAPI_EXPORTS -fast -O3 -Mipa=fast -DNDEBUG -fPIC -I/nobackup/issmcd/opencv/trunk/opencv/. -I/nobackup/issmcd/opencv/trunk/b2 -I/nobackup/issmcd/opencv/trunk/opencv/include -I/nobackup/issmcd/opencv/trunk/opencv/include/opencv -I/nobackup/issmcd/opencv/trunk/opencv/modules/ts/include -I/nobackup/issmcd/opencv/trunk/opencv/modules/ts/src -I/nobackup/issmcd/opencv/trunk/b2/modules/ts -I/nobackup/issmcd/opencv/trunk/opencv/modules/ts/…/core/include -o CMakeFiles/opencv_ts.dir/src/ts.o -c /nobackup/issmcd/opencv/trunk/opencv/modules/ts/src/ts.cpp
“/nobackup/issmcd/opencv/trunk/opencv/modules/ts/src/precomp.hpp”, line 12: warning:
last line of file ends without a newline
#endif
^

“/usr/include/setjmp.h”, line 42: error: identifier “__jmp_buf” is undefined
__jmp_buf __jmpbuf; /* Calling environment. */
^

1 error detected in the compilation of “/nobackup/issmcd/opencv/trunk/opencv/modules/ts/src/ts.cpp”.


Any ideas?

Thanks,

Mark

mark,

Have you tried the current 11.5 compiler? Your license is good for that and
the very soon to be released 11.6 compiler.


dave