Mads Jeppe Tarp-Johansen
2011-Feb-09 08:23 UTC
[R] rimage package fftw breaks when freeing memory on openSUSE 11.3
Upon fresh installation of R-patched and rimage on openSUSE 11.3 box, simple fftw on renown lena image cause memory free failure. Quick: Go to the end of this mail and read the error message from R Thoruogh: Find detailed step-by-step how sopprt library fftw2 was installed and how rimage was installed. Regards Mads Jeppe VERSIONS ======= openSUSE -------- # cat /etc/SuSE-release openSUSE 11.3 (x86_64) VERSION = 11.3 # uname -a Linux host 2.6.34.7-0.7-default #1 SMP 2010-12-13 11:13:53 +0100 x86_64 x86_64 x86_64 GNU/Linux R - # R --version R version 2.12.1 Patched (2011-02-06 r54252) fftw2 (observe soft link at the end) ----- visit http://software.opensuse.org/113/en -> search for fftw2 -> download fftw2 and fftw2-devel install rpms # zypper install fftw2-2.1.5-245.1.x86_64.rpm Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: fftw2 1 new package to install. Overall download size: 285.0 KiB. After the operation, additional 895.0 KiB will be used. Continue? [y/n/?] (y): Retrieving package fftw2-2.1.5-245.1.x86_64 (1/1), 285.0 KiB (895.0 KiB unpacked) Installing: fftw2-2.1.5-245.1 [done] Additional rpm output: warning: /var/cache/zypp/packages/_tmpRPMcache_/fftw2-2.1.5-245.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 943d8bb8: NOKEY # zypper install fftw2-devel-2.1.5-245.1.x86_64.rpm Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: fftw2-devel 1 new package to install. Overall download size: 335.0 KiB. After the operation, additional 1.2 MiB will be used. Continue? [y/n/?] (y): Retrieving package fftw2-devel-2.1.5-245.1.x86_64 (1/1), 335.0 KiB (1.2 MiB unpacked) Installing: fftw2-devel-2.1.5-245.1 [done] Additional rpm output: warning: /var/cache/zypp/packages/_tmpRPMcache_/fftw2-devel-2.1.5-245.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 943d8bb8: NOKEY install-info: warning: no info dir entry in `/usr/share/info/fftw.info.gz' # ln -s /usr/lib64/libdfftw.so.2.0.7 /usr/lib64/libfftw.so rimage ------ # R> install.packages("rimage")--- Please select a CRAN mirror for use in this session --- Loading Tcl/Tk interface ... done trying URL 'http://mirrors.dotsrc.org/cran/src/contrib/rimage_0.5-8.1.tar.gz' Content type 'application/x-gzip' length 72163 bytes (70 Kb) opened URL =================================================downloaded 70 Kb * installing *source* package ?rimage? ... checking for g++... g++ checking for C++ compiler default output... a.out checking whether the C++ compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking fftw.h usability... yes checking fftw.h presence... yes checking for fftw.h... yes checking jpeglib.h usability... yes checking jpeglib.h presence... yes checking for jpeglib.h... yes checking for inline... inline checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes configure: creating ./config.status config.status: creating src/Makevars ** libs g++ -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c equalize.cpp -o equalize.o equalize.cpp: In function ?Matrix& computeEqualization(Matrix&)?: equalize.cpp:69:31: warning: comparison between signed and unsigned integer expressions gcc -std=gnu99 -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c fftw_access_func.c -o fftw_access_func.o g++ -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c freqfilters.cpp -o freqfilters.o g++ -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c interface.cpp -o interface.o gcc -std=gnu99 -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c jpegio.c -o jpegio.o jpegio.c: In function ?read_JPEG_file?: jpegio.c:108:5: warning: pointer targets in assignment differ in signedness gcc -std=gnu99 -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c laplacian.c -o laplacian.o laplacian.c: In function ?laplacian?: laplacian.c:15:9: warning: unused variable ?val? g++ -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c matrix.cpp -o matrix.o matrix.cpp: In member function ?void Matrix::removeRow(int)?: matrix.cpp:104:29: warning: comparison between signed and unsigned integer expressions gcc -std=gnu99 -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c smooth.c -o smooth.o gcc -std=gnu99 -I/usr/lib64/R/include -I/usr/local/include -fpic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c sobel.c -o sobel.o g++ -shared -L/usr/local/lib64 -o rimage.so equalize.o fftw_access_func.o freqfilters.o interface.o jpegio.o laplacian.o matrix.o smooth.o sobel.o -ljpeg -lfftw -L/usr/lib64/R/lib -lR installing to /usr/lib64/R/library/rimage/libs ** R ** data ** preparing package for lazy loading ** help *** installing help indices ** building package indices ... ** testing if installed package can be loaded * DONE (rimage) The downloaded packages are in ?/tmp/Rtmp9bdS7Z/downloaded_packages? Updating HTML index of packages in '.Library'>RIMAGE FAILURE ============= Retrieve sample image> wget http://www.ee.columbia.edu/~sfchang/course/dip/images/lena.jpgTry baisc fftw functionality in R with package rimage as plain user> R > library("rimage") > im <- read.jpeg("lena.jpg") > plot(im) > im.fft <- fftw(im,debug=TRUE)*** entered module fftw_access_func... getting dimensions of nx=256, ny=256 memory allocation successful creating a plan succeeded finished computing the fft freeing enslaved memory *** glibc detected *** /usr/lib64/R/bin/exec/R: free(): invalid next size (normal): 0x00000000022b1fc0 ***
Mads Jeppe Tarp-Johansen
2011-Feb-09 15:15 UTC
[R] rimage package fftw breaks when freeing memory on openSUSE 11.3
Turned out to be a matter of having consistent header and dynamiclibrary files - thus did # rm /usr/include/fftw.h # ln -s /usr/include/dfftw.h /usr/include/fftw.h # ln -s /usr/lib64/libdfftw.so.2.0.7 /usr/lib64/libfftw.so in order to get rid of fftw.h that hardlinked to single precision header file. Regards Mads Jeppe