LINUX.ORG.RU

Байты складываются в инструкцию bextr. Она из BMI1, который в Haswell и более новых. Но вроде как Valgrind 3.13.0 умеет её обрабатывать. Возможно, ему не нравятся конкретные аргументы.

Попробуй пересобрать glibc так, чтобы не использовались эти инструкции. Или чини обработку этих инструкций в Valgrind. Но сначала надо выяснить, работает ли этот код просто на процессоре.

У Valgrind какие-то свои о том, что подсосывать приложению во время исполнения cpuid. Поэтому может получиться так, что под Valgrind выполняется код, до которого при обычном запуске дело не доходит.

i-rinat ★★★★★ ()
Ответ на: комментарий от creazero

Попробуй убрать sse4a из CPU_FLAGS_X86.

Я не уверен, но есть одно предположение.

p.s. или пересобрать с дефолтными, например.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Найс поведение для инструмента отладки.

anonymous ()

Тоже gentoo и с valgrind valgrind-3.13.0 (sys-libs/glibc-2.25-r9) - проблем нет ни каких (правда у меня везде Intel - AMD нету).

glibc собран с дефолтными флагами но есть 2 файла:

/etc/portage/package.env:

sys-libs/glibc     glibc.env

/etc/portage/env/glibc.env

FEATURES="$FEATURES splitdebug"

ну и основное из make.conf:

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer -fno-stack-protector"
CXXFLAGS="${CFLAGS}"

CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

zaz ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.