arm 임베디드에서 openmp 컴파일 및 사용해보신분 계신가요?
arm보드에서 openmp를 사용해보려고하는데요
현재 사용중인 컴파일러 정보를 보면 아래와 같습니다.
-----------------------------------------------------------------------------
arm-none-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/root/CodeSourcery-2012.03.57/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../libexec/gcc/arm-none-linux-gnueabi/4.6.3/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /scratch/nsidwell/arm/linux/src/gcc-4.6-2012.03/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2012 -D__CS_SOURCERYGXX_MIN__=3 -D__CS_SOURCERYGXX_REV__=57 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2012.03-57' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/nsidwell/arm/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/nsidwell/arm/linux/obj/host-libs-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/nsidwell/arm/linux/obj/host-libs-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpc=/scratch/nsidwell/arm/linux/obj/host-libs-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/nsidwell/arm/linux/obj/host-libs-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/nsidwell/arm/linux/obj/host-libs-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-libelf=/scratch/nsidwell/arm/linux/obj/host-libs-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/nsidwell/arm/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/nsidwell/arm/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-57)
-----------------------------------------------------------------------------
질문1) 컴파일러 정보를 보면 '--disable-libgomp' 이라고 나와있는데 해당 컴파일러는 openmp를 지원하지 않는건가요? 저 옵션을 enable로 설정하여 사용할수 있는건가요?
질문2) 차선책으로 해당 컴파일러를 갖고 직접 openmp 라이브러리를 만들어보려고하다가
gcc-master 라는것을 찾아 컴파일을 하려고하느데 제대로 되지 않네요
(https://github.com/gcc-mirror/gcc)
gcc-master에 보면 libgomp도 같이 있어서 크로스컴파일해서 만들수 있지 않을까하는데 에러가 납니다. gcc-master 크로스컴파일 해보신분 좀 알려주세요
gcc-master# ./configure --host arm-none-linux-gnueab
checking for arm-none-linux-gnueabi-gnatmake... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
http://gcc.gnu.org/install/prerequisites.html for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.
이렇게 나오고 진행을 못하고 있습니다.
댓글 달기