Page MenuHomeSolus

Adopt AVX2 GLibc Changes from Clear Linux
Closed, ResolvedPublic

Assigned To
Authored By
ikey
Sep 7 2016, 4:23 PM
Referenced Files
None
Tokens
"Doubloon" token, awarded by andresclari."Doubloon" token, awarded by Timalex."Burninate" token, awarded by sunnyflunk."Love" token, awarded by DataDrake.

Description

Solus currently builds everything with -mtune=generic -march=x86-64, which means in multiple cases where we'd really, really, like to, we can't leverage new CPU features.

By adopting the Clear Linux patch(s) we can supply avx2 variants of the libraries into /usr/lib64/avx2 and have glibc automatically load them instead.
This will enable us to attack performance-sensitive packages such as mesalib, providing avx2 versions of the libs that would put us at Haswell+
to leverage the modern features, all without breaking the main libraries for our existing users that do not have this hardware support.

Event Timeline

Quick verification that it all works as intended:

 ikey@solus-bdw  ~/Solus/glibc   master  sudo cp --no-dereference /usr/lib64/libmagic.so.* -a /usr/lib64/avx2/.

 ikey@solus-bdw  ~/Solus/glibc   master  ldd /usr/bin/file
	linux-vdso.so.1 (0x00007ffc7e5dd000)
	libmagic.so.1 => /usr/lib64/avx2/libmagic.so.1 (0x00007fe78897a000)
	libc.so.6 => /usr/lib64/libc.so.6 (0x00007fe7885b4000)
	libz.so.1 => /usr/lib64/libz.so.1 (0x00007fe788397000)
	/usr/lib64/ld-linux-x86-64.so.2 (0x00007fe788b9a000)

Simple test program WITHOUT /usr/lib64/avx2 in cache:

ikey@solus-bdw  ~/Solus/glibc   master  LD_DEBUG=all ./a.out 2>&1 |grep -i avx             
     3188:	  AVX2 bit is set
     3188:	  AVX2 support enabled
     3188:	  adding avx2 cap support
     3188:	  AVX2 bit is set
     3188:	  AVX2 support enabled
     3188:	  AVX2 bit is set
     3188:	  AVX2 support enabled
     3188:	  AVX2 bit is set
     3188:	  AVX2 support enabled

Simple test program WITH files in /usr/lib64/avx2 in cache:

ikey@solus-bdw  ~/Solus/glibc   master  gcc -Wall -lmagic crap.c
ikey@solus-bdw  ~/Solus/glibc   master  LD_DEBUG=all ./a.out 2>&1 |grep -i avx
     3106:	  AVX2 bit is set
     3106:	  AVX2 support enabled
     3106:	  adding avx2 cap support
     3106:	  AVX2 bit is set
     3106:	  AVX2 support enabled
     3106:	  trying file=/usr/lib64/avx2/libmagic.so.1
     3106:	  AVX2 bit is set
     3106:	  AVX2 support enabled
     3106:	file=libz.so.1 [0];  needed by /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	  AVX2 bit is set
     3106:	  AVX2 support enabled
     3106:	checking for version `GLIBC_2.14' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	checking for version `GLIBC_2.8' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	checking for version `GLIBC_2.15' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	checking for version `GLIBC_2.7' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	checking for version `GLIBC_2.4' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	checking for version `GLIBC_2.3.4' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	checking for version `GLIBC_2.2.5' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	checking for version `GLIBC_2.3' in file /usr/lib64/libc.so.6 [0] required by file /usr/lib64/avx2/libmagic.so.1 [0]
     3106:	 scope 0: ./a.out /usr/lib64/avx2/libmagic.so.1 /usr/lib64/libc.so.6 /usr/lib64/libz.so.1 /usr/lib64/ld-linux-x86-64.so.2
     3106:	 scope 0: ./a.out /usr/lib64/avx2/libmagic.so.1 /usr/lib64/libc.so.6 /usr/lib64/libz.so.1 /usr/lib64/ld-linux-x86-64.so.2
     3106:	object=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	 scope 0: ./a.out /usr/lib64/avx2/libmagic.so.1 /usr/lib64/libc.so.6 /usr/lib64/libz.so.1 /usr/lib64/ld-linux-x86-64.so.2
     3106:	 scope 0: ./a.out /usr/lib64/avx2/libmagic.so.1 /usr/lib64/libc.so.6 /usr/lib64/libz.so.1 /usr/lib64/ld-linux-x86-64.so.2
     3106:	 scope 0: ./a.out /usr/lib64/avx2/libmagic.so.1 /usr/lib64/libc.so.6 /usr/lib64/libz.so.1 /usr/lib64/ld-linux-x86-64.so.2
     3106:	symbol=_res;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=error_one_per_line;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__morecore;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__key_encryptsession_pk_LOCAL;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__progname_full;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__ctype32_tolower;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_environ;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_rtld_global;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__progname;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=argp_err_exit_status;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=mallwatch;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__rcmd_errstr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=svcauthdes_stats;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__libc_enable_secure;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_res_hconf;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=malloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=getdate_err;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__tzname;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__timezone;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_rtld_global_ro;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__malloc_initialize_hook;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=optarg;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__ctype_tolower;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__ctype_toupper;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=svc_max_pollfd;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__ctype_b;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=argp_program_version_hook;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__after_morecore_hook;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__environ;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__ctype32_b;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__curbrk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=argp_program_version;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__daylight;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__memalign_hook;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__malloc_hook;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__free_hook;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=svc_pollfd;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_nl_domain_bindings;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_nl_msg_cat_cntr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=argp_program_bug_address;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__key_decryptsession_pk_LOCAL;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=h_errlist;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=program_invocation_short_name;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=optind;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_dl_starting_up;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=stdout;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=obstack_alloc_failed_handler;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=error_print_progname;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=optopt;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_IO_funlockfile;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=obstack_exit_failure;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=error_message_count;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=svc_fdset;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=program_invocation_name;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=free;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__fpu_control;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=re_syntax_options;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=stdin;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__check_rhosts_file;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=opterr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__ctype32_toupper;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__realloc_hook;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_dl_argv;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=rpc_createerr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_IO_2_1_stderr_;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_IO_2_1_stdout_;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_IO_2_1_stdin_;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=realloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=malloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__tls_get_addr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=memalign;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_dl_find_dso_for_object;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=calloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=free;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_ITM_deregisterTMCloneTable;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__gmon_start__;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_Jv_RegisterClasses;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_ITM_registerTMCloneTable;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__cxa_finalize;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__snprintf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=free;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__errno_location;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=write;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=strlen;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__stack_chk_fail;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=snprintf;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=memset;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=close;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=memchr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=read;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__gmon_start__;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=memcpy;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=malloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__vsnprintf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=open;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=lseek64;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=strerror;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__cxa_finalize;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	relocation processing: /usr/lib64/avx2/libmagic.so.1
     3106:	symbol=_ITM_deregisterTMCloneTable;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=stdout;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `stdout' [GLIBC_2.2.5]
     3106:	symbol=__gmon_start__;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_Jv_RegisterClasses;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=daylight;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `daylight' [GLIBC_2.2.5]
     3106:	symbol=_ITM_registerTMCloneTable;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__cxa_finalize;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.2.5]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to ./a.out [0]: normal symbol `stderr' [GLIBC_2.2.5]
     3106:	symbol=__ctype_toupper_loc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__ctype_toupper_loc' [GLIBC_2.3]
     3106:	symbol=getenv;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `getenv' [GLIBC_2.2.5]
     3106:	symbol=__snprintf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__snprintf_chk' [GLIBC_2.3.4]
     3106:	symbol=free;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `free' [GLIBC_2.2.5]
     3106:	symbol=__vfprintf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__vfprintf_chk' [GLIBC_2.3.4]
     3106:	symbol=abort;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `abort' [GLIBC_2.2.5]
     3106:	symbol=__errno_location;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__errno_location' [GLIBC_2.2.5]
     3106:	symbol=unlink;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `unlink' [GLIBC_2.2.5]
     3106:	symbol=strncmp;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strncmp' [GLIBC_2.2.5]
     3106:	symbol=_exit;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `_exit' [GLIBC_2.2.5]
     3106:	symbol=inflate;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libz.so.1 [0]: normal symbol `inflate'
     3106:	symbol=__read_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__read_chk' [GLIBC_2.4]
     3106:	symbol=puts;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `puts' [GLIBC_2.2.5]
     3106:	symbol=qsort;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `qsort' [GLIBC_2.2.5]
     3106:	symbol=strtod;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strtod' [GLIBC_2.2.5]
     3106:	symbol=readlink;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `readlink' [GLIBC_2.2.5]
     3106:	symbol=fcntl;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `fcntl' [GLIBC_2.2.5]
     3106:	symbol=write;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `write' [GLIBC_2.2.5]
     3106:	symbol=__open_2;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__open_2' [GLIBC_2.7]
     3106:	symbol=fclose;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `fclose' [GLIBC_2.2.5]
     3106:	symbol=opendir;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `opendir' [GLIBC_2.2.5]
     3106:	symbol=regfree;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `regfree' [GLIBC_2.2.5]
     3106:	symbol=strlen;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strlen' [GLIBC_2.2.5]
     3106:	symbol=__lxstat;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__lxstat' [GLIBC_2.2.5]
     3106:	symbol=magic_file;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/avx2/libmagic.so.1 [0]: normal symbol `magic_file'
     3106:	symbol=__stack_chk_fail;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__stack_chk_fail' [GLIBC_2.4]
     3106:	symbol=mmap;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `mmap' [GLIBC_2.2.5]
     3106:	symbol=freelocale;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `freelocale' [GLIBC_2.3]
     3106:	symbol=mbrtowc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `mbrtowc' [GLIBC_2.2.5]
     3106:	symbol=dup2;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `dup2' [GLIBC_2.2.5]
     3106:	symbol=strchr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strchr' [GLIBC_2.2.5]
     3106:	symbol=__fdelt_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__fdelt_chk' [GLIBC_2.15]
     3106:	symbol=newlocale;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `newlocale' [GLIBC_2.3]
     3106:	symbol=snprintf;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `snprintf' [GLIBC_2.2.5]
     3106:	symbol=strrchr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strrchr' [GLIBC_2.2.5]
     3106:	symbol=dup;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `dup' [GLIBC_2.2.5]
     3106:	symbol=lseek;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `lseek' [GLIBC_2.2.5]
     3106:	symbol=__assert_fail;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__assert_fail' [GLIBC_2.2.5]
     3106:	symbol=strtof;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strtof' [GLIBC_2.2.5]
     3106:	symbol=ioctl;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `ioctl' [GLIBC_2.2.5]
     3106:	symbol=close;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `close' [GLIBC_2.2.5]
     3106:	symbol=pipe;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `pipe' [GLIBC_2.2.5]
     3106:	symbol=closedir;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `closedir' [GLIBC_2.2.5]
     3106:	symbol=regcomp;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `regcomp' [GLIBC_2.2.5]
     3106:	symbol=fputc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `fputc' [GLIBC_2.2.5]
     3106:	symbol=__strdup;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__strdup' [GLIBC_2.2.5]
     3106:	symbol=memchr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `memchr' [GLIBC_2.2.5]
     3106:	symbol=read;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `read' [GLIBC_2.2.5]
     3106:	symbol=memcmp;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `memcmp' [GLIBC_2.2.5]
     3106:	symbol=strtoull;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strtoull' [GLIBC_2.2.5]
     3106:	symbol=__asprintf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__asprintf_chk' [GLIBC_2.8]
     3106:	symbol=utimes;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `utimes' [GLIBC_2.2.5]
     3106:	symbol=calloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `calloc' [GLIBC_2.2.5]
     3106:	symbol=__getdelim;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__getdelim' [GLIBC_2.2.5]
     3106:	symbol=strcmp;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strcmp' [GLIBC_2.2.5]
     3106:	symbol=signal;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `signal' [GLIBC_2.2.5]
     3106:	symbol=__strndup;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__strndup' [GLIBC_2.2.5]
     3106:	symbol=__memcpy_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__memcpy_chk' [GLIBC_2.3.4]
     3106:	symbol=__gmon_start__;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=strtol;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strtol' [GLIBC_2.2.5]
     3106:	symbol=memcpy;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `memcpy' [GLIBC_2.14]
     3106:	symbol=regerror;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `regerror' [GLIBC_2.2.5]
     3106:	symbol=inflateEnd;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libz.so.1 [0]: normal symbol `inflateEnd'
     3106:	symbol=magic_setflags;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/avx2/libmagic.so.1 [0]: normal symbol `magic_setflags'
     3106:	symbol=select;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `select' [GLIBC_2.2.5]
     3106:	symbol=__xstat;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__xstat' [GLIBC_2.2.5]
     3106:	symbol=readdir;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `readdir' [GLIBC_2.2.5]
     3106:	symbol=uselocale;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `uselocale' [GLIBC_2.3]
     3106:	symbol=malloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.2.5]
     3106:	symbol=fflush;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `fflush' [GLIBC_2.2.5]
     3106:	symbol=ctime_r;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `ctime_r' [GLIBC_2.2.5]
     3106:	symbol=__vasprintf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__vasprintf_chk' [GLIBC_2.8]
     3106:	symbol=__fxstat;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__fxstat' [GLIBC_2.2.5]
     3106:	symbol=regexec;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `regexec' [GLIBC_2.3.4]
     3106:	symbol=mktime;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `mktime' [GLIBC_2.2.5]
     3106:	symbol=mkstemp;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `mkstemp' [GLIBC_2.2.5]
     3106:	symbol=realloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `realloc' [GLIBC_2.2.5]
     3106:	symbol=magic_getpath;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/avx2/libmagic.so.1 [0]: normal symbol `magic_getpath'
     3106:	symbol=munmap;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `munmap' [GLIBC_2.2.5]
     3106:	symbol=__printf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__printf_chk' [GLIBC_2.3.4]
     3106:	symbol=asctime_r;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `asctime_r' [GLIBC_2.2.5]
     3106:	symbol=open;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `open' [GLIBC_2.2.5]
     3106:	symbol=access;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `access' [GLIBC_2.2.5]
     3106:	symbol=__pread_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__pread_chk' [GLIBC_2.4]
     3106:	symbol=fopen;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `fopen' [GLIBC_2.2.5]
     3106:	symbol=inflateInit2_;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libz.so.1 [0]: normal symbol `inflateInit2_'
     3106:	symbol=strcasestr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strcasestr' [GLIBC_2.2.5]
     3106:	symbol=gmtime;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `gmtime' [GLIBC_2.2.5]
     3106:	symbol=strtoul;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strtoul' [GLIBC_2.2.5]
     3106:	symbol=execvp;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `execvp' [GLIBC_2.2.5]
     3106:	symbol=pread;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `pread' [GLIBC_2.2.5]
     3106:	symbol=exit;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `exit' [GLIBC_2.2.5]
     3106:	symbol=fwrite;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `fwrite' [GLIBC_2.2.5]
     3106:	symbol=__fprintf_chk;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__fprintf_chk' [GLIBC_2.3.4]
     3106:	symbol=strerror;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strerror' [GLIBC_2.2.5]
     3106:	symbol=iswprint;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `iswprint' [GLIBC_2.2.5]
     3106:	symbol=wait;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `wait' [GLIBC_2.2.5]
     3106:	symbol=__cxa_finalize;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.2.5]
     3106:	symbol=fork;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `fork' [GLIBC_2.2.5]
     3106:	symbol=strstr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `strstr' [GLIBC_2.2.5]
     3106:	symbol=__ctype_tolower_loc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__ctype_tolower_loc' [GLIBC_2.3]
     3106:	symbol=__ctype_b_loc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	binding file /usr/lib64/avx2/libmagic.so.1 [0] to /usr/lib64/libc.so.6 [0]: normal symbol `__ctype_b_loc' [GLIBC_2.3]
     3106:	symbol=_ITM_deregisterTMCloneTable;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__libc_start_main;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__gmon_start__;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_Jv_RegisterClasses;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_ITM_registerTMCloneTable;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=stderr;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=_r_debug;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=free;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=__libc_memalign;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=malloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=calloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=realloc;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	symbol=free;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	calling init: /usr/lib64/avx2/libmagic.so.1
     3106:	symbol=fwrite;  lookup in file=/usr/lib64/avx2/libmagic.so.1 [0]
     3106:	calling fini: /usr/lib64/avx2/libmagic.so.1 [0]
ikey@solus-bdw  ~/Solus/glibc   master 

Note that files in /usr/lib64/avx2 will actually be harware optimized to make use of AVX2, i.e. Westmere+

Implementation to enable this by setting avx2: yes in the package.yml has landed in ypkg:
https://github.com/solus-project/ypkg/commit/2a2ba3d98079d9bb16c70c46261d23e15bd757d4

So I found this for reference: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html#x86-Options

According to this, enabling -march=haswell enables -mpopcnt and -mrdrnd which appear to be 2 instructions not supported by all the AMD cpus with avx2 (bdver4, znver1).