LINUX.ORG.RU

emerge, откуда взялся -fgnu-tm и -flto?

 , , ,


0

1

emerge --info | grep gnu-tm
grep -r gnu-tm /etc/portage
ничего на находит, херня какая то, ничего не понимаю

подозреваю что виновник ошибки -fgnu-tm

emerge -1Oav media-libs/libaom
...
>>> Configuring source in /var/tmp/portage/media-libs/libaom-3.2.0/work ...
 * abi_x86_32.x86: running multilib-minimal_abi_src_configure
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/media-libs/libaom-3.2.0/work"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/media-libs/libaom-3.2.0/work_build-abi_x86_32.x86"
cmake -C /var/tmp/portage/media-libs/libaom-3.2.0/work_build-abi_x86_32.x86/gentoo_common_config.cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_CCACHE=OFF -DENABLE_DOCS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_NASM=OFF -DENABLE_TESTS=OFF -DENABLE_TOOLS=ON -DENABLE_WERROR=OFF -DCONFIG_TUNE_BUTTERAUGLI=0 -DENABLE_NEON=OFF -DENABLE_MMX=ON -DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON -DENABLE_SSSE3=ON -DENABLE_SSE4_1=ON -DENABLE_SSE4_2=ON -DENABLE_AVX=ON -DENABLE_AVX2=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/media-libs/libaom-3.2.0/work_build-abi_x86_32.x86/gentoo_toolchain.cmake  /var/tmp/portage/media-libs/libaom-3.2.0/work
loading initial cache file /var/tmp/portage/media-libs/libaom-3.2.0/work_build-abi_x86_32.x86/gentoo_common_config.cmake
--- aom_configure: Detected CPU: x86
-- <<< Gentoo configuration >>>
Build type      RelWithDebInfo
Install path    /usr
Compiler flags:
C               -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu
C++             -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu
Linker flags:
Executable      -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm
Module          -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm
Shared          -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm

-- Configuring done

...
[37/339] /usr/bin/x86_64-pc-linux-gnu-gcc -m32  -I/var/tmp/portage/media-libs/libaom-3.2.0/work -I/var/tmp/portage/media-libs/libaom-3.2.0/work_build-abi_x86_32.x86 -I/var/tmp/portage/media-libs/libaom-3.2.0/work/apps -I/var/tmp/portage/media-libs/libaom-3.2.0/work/common -I/var/tmp/portage/media-libs/libaom-3.2.0/work/examples -I/var/tmp/portage/media-libs/libaom-3.2.0/work/stats -I/var/tmp/portage/media-libs/libaom-3.2.0/work/third_party/libyuv/include -I/var/tmp/portage/media-libs/libaom-3.2.0/work/third_party/libwebm  -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu  -std=c99 -Wall -Wdisabled-optimization -Wextra -Wfloat-conversion -Wimplicit-function-declaration -Wlogical-op -Wpointer-arith -Wsign-compare -Wtype-limits -Wuninitialized -Wunused -Wvla -Wstack-usage=100000 -Wshadow -Wundef -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -msse2 -MD -MT CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/highbd_loopfilter_sse2.c.o -MF CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/highbd_loopfilter_sse2.c.o.d -o CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/highbd_loopfilter_sse2.c.o -c /var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c
FAILED: CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/highbd_loopfilter_sse2.c.o 
/usr/bin/x86_64-pc-linux-gnu-gcc -m32  -I/var/tmp/portage/media-libs/libaom-3.2.0/work -I/var/tmp/portage/media-libs/libaom-3.2.0/work_build-abi_x86_32.x86 -I/var/tmp/portage/media-libs/libaom-3.2.0/work/apps -I/var/tmp/portage/media-libs/libaom-3.2.0/work/common -I/var/tmp/portage/media-libs/libaom-3.2.0/work/examples -I/var/tmp/portage/media-libs/libaom-3.2.0/work/stats -I/var/tmp/portage/media-libs/libaom-3.2.0/work/third_party/libyuv/include -I/var/tmp/portage/media-libs/libaom-3.2.0/work/third_party/libwebm  -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu  -std=c99 -Wall -Wdisabled-optimization -Wextra -Wfloat-conversion -Wimplicit-function-declaration -Wlogical-op -Wpointer-arith -Wsign-compare -Wtype-limits -Wuninitialized -Wunused -Wvla -Wstack-usage=100000 -Wshadow -Wundef -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -msse2 -MD -MT CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/highbd_loopfilter_sse2.c.o -MF CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/highbd_loopfilter_sse2.c.o.d -o CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/highbd_loopfilter_sse2.c.o -c /var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c: In function ‘highbd_filter_mask_dual’:
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:24:33: error: inlining failed in call to ‘always_inline’ ‘abs_diff16’: 
   24 | static AOM_FORCE_INLINE __m128i abs_diff16(__m128i a, __m128i b) {
      |                                 ^~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:87:22: note: called from here
   87 |   __m128i abs_p1q1 = abs_diff16(p[1], q[1]);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:24:33: error: inlining failed in call to ‘always_inline’ ‘abs_diff16’: 
   24 | static AOM_FORCE_INLINE __m128i abs_diff16(__m128i a, __m128i b) {
      |                                 ^~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:86:22: note: called from here
   86 |   __m128i abs_p0q0 = abs_diff16(p[0], q[0]);
      |                      ^~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:24:33: error: inlining failed in call to ‘always_inline’ ‘abs_diff16’: 
   24 | static AOM_FORCE_INLINE __m128i abs_diff16(__m128i a, __m128i b) {
      |                                 ^~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:102:11: note: called from here
  102 |     max = _mm_max_epi16(max, abs_diff16(q[i], q[i - 1]));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:24:33: error: inlining failed in call to ‘always_inline’ ‘abs_diff16’: 
   24 | static AOM_FORCE_INLINE __m128i abs_diff16(__m128i a, __m128i b) {
      |                                 ^~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:101:11: note: called from here
  101 |     max = _mm_max_epi16(max, abs_diff16(p[i], p[i - 1]));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:24:33: error: inlining failed in call to ‘always_inline’ ‘abs_diff16’: 
   24 | static AOM_FORCE_INLINE __m128i abs_diff16(__m128i a, __m128i b) {
      |                                 ^~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/highbd_loopfilter_sse2.c:102:11: note: called from here
  102 |     max = _mm_max_epi16(max, abs_diff16(q[i], q[i - 1]));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[38/339] /usr/bin/x86_64-pc-linux-gnu-gcc -m32  -I/var/tmp/portage/media-libs/libaom-3.2.0/work -I/var/tmp/portage/media-libs/libaom-3.2.0/work_build-abi_x86_32.x86 -I/var/tmp/portage/media-libs/libaom-3.2.0/work/apps -I/var/tmp/portage/media-libs/libaom-3.2.0/work/common -I/var/tmp/portage/media-libs/libaom-3.2.0/work/examples -I/var/tmp/portage/media-libs/libaom-3.2.0/work/stats -I/var/tmp/portage/media-libs/libaom-3.2.0/work/third_party/libyuv/include -I/var/tmp/portage/media-libs/libaom-3.2.0/work/third_party/libwebm  -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu  -std=c99 -Wall -Wdisabled-optimization -Wextra -Wfloat-conversion -Wimplicit-function-declaration -Wlogical-op -Wpointer-arith -Wsign-compare -Wtype-limits -Wuninitialized -Wunused -Wvla -Wstack-usage=100000 -Wshadow -Wundef -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -msse2 -MD -MT CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/intrapred_sse2.c.o -MF CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/intrapred_sse2.c.o.d -o CMakeFiles/aom_dsp_common_sse2_intrinsics.dir/aom_dsp/x86/intrapred_sse2.c.o -c /var/tmp/portage/media-libs/libaom-3.2.0/work/aom_dsp/x86/intrapred_sse2.c

...
ERROR: media-libs/libaom-3.2.0::gentoo failed (compile phase):
...
tail -F /var/tmp/portage/media-libs/libaom-3.2.0/temp/environment| grep fgnu-tm

tail: '/var/tmp/portage/media-libs/libaom-3.2.0/temp/environment' появился; новый файл
declare -a FLAG_FILTER_FORTRAN=([0]="-ansi" [1]="-fallow-parameterless-variadic-functions" [2]="-fcilkplus" [3]="-fcond-mismatch" [4]="-fdirectives-only" [5]="-ffreestanding" [6]="-fgimple" [7]="-fgnu-tm" [8]="-fgnu89-inline" [9]="-fhosted" [10]="-flax-vector-conversions" [11]="-fms-extensions" [12]="-fno-asm" [13]="-fno-builtin*" [14]="-fno-signed-bitfields" [15]="-fno-unsigned-bitfields" [16]="-fpermitted-flt-eval-methods*" [17]="-fplan9-extensions" [18]="-fsigned-*" [19]="-fsso-struct*" [20]="-funsigned-*" [21]="-Wchkp" [22]="-Wclobbered" [23]="-Wformat*" [24]="-Wvolatile-register-var")
tail: '/var/tmp/portage/media-libs/libaom-3.2.0/temp/environment' стал недоступен: Нет такого файла или каталога

Не известно откуда он взялся. Но больше подозрений на -march=native, который возможно не поддерживает sse2. И да ошибку обрезал на самом интересном месте.

anonymous ()

откуда взялся -fgnu-tm?

Скорее всего из сборочной системы твоего пакета.

подозреваю что виновник ошибки -fgnu-tm

Это вряд ли.

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от anonymous
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d

sse2 есть

nanosecond ()
Последнее исправление: nanosecond (всего исправлений: 2)
Ответ на: комментарий от anonymous

в /etc/portage/bashrc.d/10-flag.sh

FLAG_FILTER_FORTRAN=(
        ...
        '-fgnu-tm'
)

grep -rI --exclude \*.log --exclude build.ninja --exclude CMakeCache.txt --exclude environment fgnu-tm /var/tmp/portage/media-libs/libaom-3.2.0/ пусто

nanosecond ()
Последнее исправление: nanosecond (всего исправлений: 2)
Ответ на: комментарий от nanosecond

В общем, подозреваемый найден. Сам разбирайся, что этот bashrc.d/10-flag.sh делает, правильно ли делает, и откуда он, вообще, взялся.

anonymous ()

У media-libs/libaom известный баг сборки с включенным sse2. Просто отключи этот флаг для этого пакета. Хотя его, вроде как, должны были починить в 3.2.0.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)

emerge --info | grep lto и grep -r lto /etc/portage
тоже ничего на находит, херня какая то, ничего не понимаю

nanosecond ()
Ответ на: комментарий от grem

=media-libs/libaom-3.2.0 CPU_FLAGS_X86: -sse2 -ssse3

In file included from /var/tmp/portage/media-libs/libaom-3.2.0/work/av1/decoder/decodetxb.c:17:
/var/tmp/portage/media-libs/libaom-3.2.0/work/av1/decoder/decodetxb.c: In function ‘av1_read_coeffs_txb’:
/var/tmp/portage/media-libs/libaom-3.2.0/work/av1/common/txb_common.h:162:29: error: inlining failed in call to ‘always_inline’ ‘get_br_ctx_eob’: 
  162 | static AOM_FORCE_INLINE int get_br_ctx_eob(const int c,  // raster order
      |                             ^~~~~~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/av1/decoder/decodetxb.c:255:26: note: called from here
  255 |       const int br_ctx = get_br_ctx_eob(pos, bwl, tx_class);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/tmp/portage/media-libs/libaom-3.2.0/work/av1/decoder/decodetxb.c:17:
/var/tmp/portage/media-libs/libaom-3.2.0/work/av1/common/txb_common.h:162:29: error: inlining failed in call to ‘always_inline’ ‘get_br_ctx_eob’: 
  162 | static AOM_FORCE_INLINE int get_br_ctx_eob(const int c,  // raster order
      |                             ^~~~~~~~~~~~~~
/var/tmp/portage/media-libs/libaom-3.2.0/work/av1/decoder/decodetxb.c:255:26: note: called from here
  255 |       const int br_ctx = get_br_ctx_eob(pos, bwl, tx_class);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nanosecond ()

Попробуй выключить все оптимизации в make.conf, собирай с опциями

CFLAGS="-O2 -march=native -pipe"
CXXFLAGS="${CFLAGS}"

Строку с

LDFLAGS
можешь вообще закомментировать, там практически все опции мимо кассы.

Дальше

CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3" emerge media-libs/libaom

Оттуда уже и смотреть, соберётся или нет.

AbbaT ()
Ответ на: комментарий от grem

собирается 3.1.2
CFLAGS="-O2 -march=native -pipe" CXXFLAGS="${CFLAGS}" FEATURES="-fail-clean" emerge -1Oav =media-libs/libaom-3.1.2

--- aom_configure: Detected CPU: x86
-- Performing Test
-- Performing Test
-- <<< Gentoo configuration >>>
Build type      Gentoo
C -O2 -march=native -pipe

не собирается 3.2.0
CFLAGS="-O2 -march=native -pipe" CXXFLAGS="${CFLAGS}" FEATURES="-fail-clean" emerge -1Oav =media-libs/libaom-3.2.0

--- aom_configure: Detected CPU: x86
-- <<< Gentoo configuration >>>
Build type      RelWithDebInfo
C -O2 -pipe -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=4 -fuse-linker-plugin -march=native -falign-functions=32 -fgnu-tm -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu

declare -x CFLAGS="-O2 -march=native -pipe"

nanosecond ()

И да ошибку обрезал на самом интересном месте.

ладно каюсь, вот из-за этого IUSE="+examples" вся херня

nanosecond ()
Ответ на: комментарий от anonymous

gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1 включает -sse2
Но есть ли смысл sse включать? в avx вроде есть альтернативы sse, а совмещение на некоторых цп avx и sse приводит к тормозам или я попутал?
За меня уже все сделали и sse не включается если не надо, наверное

nanosecond ()
Последнее исправление: nanosecond (всего исправлений: 1)

Bug 671340 Ты словил эту багу. Суть баги что на проце без avx итструкции не собрать media-libs/libaom. А это всё процы 15 летней давности. Я тоже её ловила и решила её так.

/etc/portage/env/libaom.conf
CPU_FLAGS_X86="generic"
/etc/portage/package.env/libaom
media-libs/libaom libaom.conf

С генериком собирается.

With ★☆☆ ()
Ответ на: комментарий от With

из-за этого IUSE=«+examples»

Я здесь не шутил, -examples действительно решило мою проблему

Bug 671340

Нет, меня другой баг не связанный с ld.
Непонятно откуда берутся флаги компилятора,
предполагаю что из уже собранного другого пакета.
Эта always_inline ошибка получается из-за -fgnu-tm
которого нет в сборочном скрипте.
-examples все собралось с правильными флагами

nanosecond ()
Последнее исправление: nanosecond (всего исправлений: 1)
Ограничение на отправку комментариев: только для зарегистрированных пользователей