After update to current (as of now linux 4.17.14, and I just tested with
4.17.13 and the error is there too), valgrind fails with an 'impossible' error:
===== error start
$ valgrind ./bin/opendir_readdir_dyn_char_basic
==1196== Memcheck, a memory error detector
==1196== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==1196== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==1196== Command: ./bin/opendir_readdir_dyn_char_basic
valgrind: the 'impossible' happened:
Unsupported arch_prctl option
==1196== at 0x580441BA: show_sched_status_wrk (m_libcassert.c:355)
==1196== by 0x580442D4: report_and_quit (m_libcassert.c:426)
==1196== by 0x58044517: panic (m_libcassert.c:502)
==1196== by 0x58044517: vgPlain_core_panic_at (m_libcassert.c:507)
==1196== by 0x5804454A: vgPlain_core_panic (m_libcassert.c:512)
==1196== by 0x580DAE22: vgSysWrap_amd64_linux_sys_arch_prctl_before
==1196== by 0x580A0C23: vgPlain_client_syscall (syswrap-main.c:1857)
==1196== by 0x5809D48A: handle_syscall (scheduler.c:1126)
==1196== by 0x5809EBB6: vgPlain_scheduler (scheduler.c:1443)
==1196== by 0x580AED50: thread_wrapper (syswrap-linux.c:103)
==1196== by 0x580AED50: run_a_thread_NORETURN (syswrap-linux.c:156)
Thread 1: status = VgTs_Runnable (lwpid 1196)
==1196== at 0x401A1C5: ??? (in /usr/lib/ld-2.28.so)
==1196== by 0x178BFBFE: ???
Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.
If that doesn't help, please report this bug to: www.valgrind.org
In the bug report, send all the above text, the valgrind
version, and what OS and version you are using. Thanks.
===== error end
My question is does this look like an arch issue or is it just a kde upstream
I was answering a question on SO with a simple opendir/readdir of names into a
dynamically allocated pointer-to-pointer-to-char and was showing how to test
with valgrind. To my surprise valgrind croaked on Arch, but ran fine on SuSE
and an old Arch box, so there is something wrong in the current valgrind on
test source file at
(it just reads the contents of the directory given as the first argument ('.'
default) and qsorts and outputs the stored names before freeing the names and
David C. Rankin, J.D.,P.E.