Building media-libs/x265-1.0 for ABI=x32 give the following error : [ 21%] Building CXX object common/CMakeFiles/common.dir/x86/asm-primitives.cpp.o cd /var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source-x32/common && /usr/bin/x86_64-pc-linux-gnux32-g++ -DHIGH_BIT_DEPTH=1 -DLOG_CU_STATISTICS=0 -DX265_ARCH_X86=1 -DNDEBUG -march=native -O2 -pipe -fomit-frame-pointer -fPIC -I/var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source/. -I/var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source/Lib -I/var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source/common -I/var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source/encoder -I/var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source-x32 -Wall -Wextra -Wshadow -ffast-math -mstackrealign -march=i686 -o CMakeFiles/common.dir/x86/asm-primitives.cpp.o -c /var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source/common/x86/asm-primitives.cpp /var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source/common/x86/asm-primitives.cpp:1:0: error: CPU you selected does not support x86-64 instruction set /***************************************************************************** ^ common/CMakeFiles/common.dir/build.make:267: recipe for target 'common/CMakeFiles/common.dir/x86/asm-primitives.cpp.o' failed make[2]: *** [common/CMakeFiles/common.dir/x86/asm-primitives.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source-x32' CMakeFiles/Makefile2:266: recipe for target 'common/CMakeFiles/common.dir/all' failed make[1]: *** [common/CMakeFiles/common.dir/all] Error 2 make[1]: Leaving directory '/var/tmp/portage/media-libs/x265-1.0/work/multicoreware-x265-cea97c4d7945/source-x32' Makefile:116: recipe for target 'all' failed make: *** [all] Error 2 * ERROR: media-libs/x265-1.0::gentoo failed (compile phase): * emake failed Full log attached and emerge --info Reproducible: Always
Created attachment 377310 [details] build.log
Created attachment 377312 [details] emerge --info
I wonder if -DENABLE_ASSEMBLY=OFF to mycmakeargs should be passed for x32 builds, can you test?
Created attachment 381734 [details, diff] media-libs/x265/x265-1.2.ebuild (In reply to Samuli Suominen from comment #3) > I wonder if -DENABLE_ASSEMBLY=OFF to mycmakeargs should be passed for x32 > builds, can you test? I made a little patch on current ebuild for this as attached and result is quiet the same :/ [ 1%] Building CXX object encoder/CMakeFiles/encoder.dir/__/Lib/TLibEncoder/SyntaxElementWriter.cpp.o cd /var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source-abi_x86_x32.x32/encoder && /usr/bin/x86_64-pc-linux-gnux32-g++ -DHAVE_INT_TYPES_H=1 -DHIGH_BIT_DEPTH=1 -DX265_ARCH_X86=1 -D__STDC_LIMIT_MACROS=1 -DNDEBUG -march=native -O2 -pipe -fomit-frame-pointer -fPIC -I/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source/. -I/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source/Lib -I/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source/common -I/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source/encoder -I/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source-abi_x86_x32.x32 -Wall -Wextra -Wshadow -march=i686 -ffast-math -mstackrealign -fno-exceptions -Wno-sign-compare -o CMakeFiles/encoder.dir/__/Lib/TLibEncoder/SyntaxElementWriter.cpp.o -c /var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source/Lib/TLibEncoder/SyntaxElementWriter.cpp /var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source/Lib/TLibEncoder/SyntaxElementWriter.cpp:1:0: error: CPU you selected does not support x86-64 instruction set /* The copyright in this software is being made available under the BSD ^ encoder/CMakeFiles/encoder.dir/build.make:57: recipe for target 'encoder/CMakeFiles/encoder.dir/__/Lib/TLibEncoder/SyntaxElementWriter.cpp.o' failed make[2]: *** [encoder/CMakeFiles/encoder.dir/__/Lib/TLibEncoder/SyntaxElementWriter.cpp.o] Error 1 make[2]: Leaving directory '/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source-abi_x86_x32.x32' CMakeFiles/Makefile2:247: recipe for target 'encoder/CMakeFiles/encoder.dir/all' failed make[1]: *** [encoder/CMakeFiles/encoder.dir/all] Error 2 make[1]: Leaving directory '/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source-abi_x86_x32.x32' Makefile:116: recipe for target 'all' failed make: *** [all] Error 2 * ERROR: media-libs/x265-1.2::as29 failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=media-libs/x265-1.2::as29'`, * the complete build log and the output of `emerge -pqv '=media-libs/x265-1.2::as29'`. * The complete build log is located at '/var/log/portage/media-libs:x265-1.2:20140728-181852.log'. * For convenience, a symlink to the build log is located at '/var/tmp/portage/media-libs/x265-1.2/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-libs/x265-1.2/temp/environment'. * Working directory: '/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source-abi_x86_x32.x32' * S: '/var/tmp/portage/media-libs/x265-1.2/work/multicoreware-x265-d6257335c537/source' You will next found attached the complete build log refreshed
Created attachment 381736 [details] build.log
Issue come from source/CMakeLists.txt : if(GCC) add_definitions(-Wall -Wextra -Wshadow) add_definitions(-D__STDC_LIMIT_MACROS=1) if(X64 AND NOT WIN32) add_definitions(-fPIC) endif(X64 AND NOT WIN32) if(X86 AND NOT X64) add_definitions(-march=i686) endif() First, -march is forced for non X64, then no option for x32 arch.
https://github.com/gentoo/gentoo/pull/173 Please let us know if it's good to go.
Upstream report: https://bitbucket.org/multicoreware/x265/issues/198/assembly-code-fails-on-x32
https://github.com/gentoo/gentoo/pull/173 has been merged, resolving