Summary: | media-gfx/blender-2.48a-r3 fails to build with USE=openmp | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Daniel Black (RETIRED) <dragonheart> |
Component: | Current packages | Assignee: | Luca Barbato <lu_zero> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | arne_bab, azamat.hackimov, cweiske, jude.dcruz, toffanin.mauro |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
blender.2.48a-r3.ebuild.patch
blender-2.49a.ebuild.patch |
Description
Daniel Black (RETIRED)
![]() -fopenmp, ASAP, require gcc-4.2 with enabled USE-flag openmp, that because blender wont be compiled. I think, there must be USE-check against >=sys-devel/gcc-4.2[openmp] Bug confirmed. (In reply to comment #1) > -fopenmp, ASAP, require gcc-4.2 with enabled USE-flag openmp, that because > blender wont be compiled. > > I think, there must be USE-check against >=sys-devel/gcc-4.2[openmp] > running the following emerges gcc with the correct use flag and so blender should emerge properly with the flag enabled also: USE="openmp" emerge --newuse gcc ^ should force gcc to reinstall with the new useflag This error seems to happen because GCC was installed before openmp was added to the USE variable, so when blender goes to update it knows openmp is there, but gcc doesn't (and wasn't configured with it either). I'm having this problem with Blender as well, and I already have openmp compiled into gcc. Other programs with the openmp flag have not had this problem. (Imagemagick is currently compiled with openmp support.) Error: scons: done reading SConscript files. scons: Building targets ... Compiling ==> 'SND_DummyDevice.cpp' Compiling ==> 'SND_WaveSlot.cpp' cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++ cc1plus: error: unrecognized command line option "-fopenmp" cc1plus: error: unrecognized command line option "-fopenmp" cc1plus: error: unrecognized command line option "-fopenmp" cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++ cc1plus: error: unrecognized command line option "-fopenmp" cc1plus: error: unrecognized command line option "-fopenmp" cc1plus: error: unrecognized command line option "-fopenmp" scons: *** [/var/tmp/portage/media-gfx/blender-2.48a-r3/work/build/linux2/intern/SoundSystem/dummy/SND_DummyDevice.o] Error 1 scons: *** [/var/tmp/portage/media-gfx/blender-2.48a-r3/work/build/linux2/intern/SoundSystem/intern/SND_WaveSlot.o] Error 1 scons: building terminated because of errors. * * ERROR: media-gfx/blender-2.48a-r3 failed. * Call stack: * ebuild.sh, line 48: Called src_compile * environment, line 2697: Called die * The specific snippet of code: * scons ${MAKEOPTS/-l[0-9]} || die "!!! Please add ${S}/scons.config when filing bugs reports to bugs.gentoo.org"; * The die message: * !!! Please add /var/tmp/portage/media-gfx/blender-2.48a-r3/work/blender-2.48a/scons.config when filing bugs reports to bugs.gentoo.org * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-gfx/blender-2.48a-r3/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-gfx/blender-2.48a-r3/temp/environment'. * >>> Failed to emerge media-gfx/blender-2.48a-r3, Log file: >>> '/var/tmp/portage/media-gfx/blender-2.48a-r3/temp/build.log' * Messages for package media-gfx/blender-2.48a-r3: * enabling openmp * * ERROR: media-gfx/blender-2.48a-r3 failed. * Call stack: * ebuild.sh, line 48: Called src_compile * environment, line 2697: Called die * The specific snippet of code: * scons ${MAKEOPTS/-l[0-9]} || die "!!! Please add ${S}/scons.config when filing bugs reports to bugs.gentoo.org"; * The die message: * !!! Please add /var/tmp/portage/media-gfx/blender-2.48a-r3/work/blender-2.48a/scons.config when filing bugs reports to bugs.gentoo.org * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-gfx/blender-2.48a-r3/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-gfx/blender-2.48a-r3/temp/environment'. * emerge -pv gcc [ebuild R ] sys-devel/gcc-4.3.2-r3 USE="fortran gtk mudflap nls objc objc++ objc-gc openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj (-hardened) -ip28 -ip32r10k -libffi (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -test -vanilla" 0 kB I'm still unsure why Blender will not compile with openmp if other programs will. I was having the same problem. The simple fix was making sure the right gcc was selected with gcc-config. Be sure you're using >gcc-4.2. *** Bug 281214 has been marked as a duplicate of this bug. *** I can confirm blender compiled fine using gcc 4.3.2 and failed with gcc 4.1.2. Please add a gcc check to the ebuild! (In reply to comment #6) > I can confirm blender compiled fine using gcc 4.3.2 and failed with gcc 4.1.2. > Please add a gcc check to the ebuild! for @lu_zero (Luca Barbato): the OpenMP Standard v2.5 has been introduced into gcc from the version 4.2.0, so attached there is an ebuild patch for the blender ebuild that adds the gcc check. hope to be useful. Created attachment 201339 [details, diff]
blender.2.48a-r3.ebuild.patch
Created attachment 201341 [details, diff]
blender-2.49a.ebuild.patch
*** Bug 296283 has been marked as a duplicate of this bug. *** Is it possible to add another check, so the emerge prompts to use gcc-config to set the current gcc? If the user updated the gcc but didn't select the new version, the emerge just fails, even though gcc 4.3.x is installed (that error led me here :) ). I have update gcc to 4.3.2, even tried to re-emerge it with openmp, but still receive that error. However, if I run scons inside the unpacked source, it compiles just fine. Seems like scons keeps on using the old gcc, or some other misconfiguration happens, but only when running from emerge. This should be fixed with 2.63a and pkg_pretend checks. |