Opened 3 months ago

Last modified 3 months ago

#69149 new defect

lzma fails to build on 10.6 i386 with gcc: no such instruction: `xgetbv'

Reported by: barracuda156 Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: i386, snowleopard Cc: ryandesign (Ryan Carsten Schmidt)
Port: lzma

Description

Looks like it calls LLVM-specific assembler.

--->  Building lzma
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/lzma2301/CPP/7zip/Bundles/LzmaCon" && /usr/bin/gnumake -j2 -w all -f makefile.gcc LFLAGS_STRIP= CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cc/opt/local/bin/gcc-mp-13" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cxx/opt/local/bin/g++-mp-13" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/objc/opt/local/bin/gcc-mp-13" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/objcxx/opt/local/bin/g++-mp-13" FC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/fc/opt/local/bin/gfortran-mp-13" F77="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/f77/opt/local/bin/gfortran-mp-13" F90="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/f90/opt/local/bin/gfortran-mp-13" INSTALL="/usr/bin/install -c" 
gnumake: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/lzma2301/CPP/7zip/Bundles/LzmaCon'
mkdir -p _o
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cc/opt/local/bin/gcc-mp-13 -arch i386     -O2 -c -Wall -Wextra  -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o _o/7zCrc.o ../../../../C/7zCrc.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cc/opt/local/bin/gcc-mp-13 -arch i386     -O2 -c -Wall -Wextra  -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o _o/7zCrcOpt.o ../../../../C/7zCrcOpt.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cc/opt/local/bin/gcc-mp-13 -arch i386     -O2 -c -Wall -Wextra  -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o _o/Alloc.o ../../../../C/Alloc.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cc/opt/local/bin/gcc-mp-13 -arch i386     -O2 -c -Wall -Wextra  -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o _o/Bra86.o ../../../../C/Bra86.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cc/opt/local/bin/gcc-mp-13 -arch i386     -O2 -c -Wall -Wextra  -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o _o/CpuArch.o ../../../../C/CpuArch.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/compwrap/cc/opt/local/bin/gcc-mp-13 -arch i386     -O2 -c -Wall -Wextra  -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o _o/LzFind.o ../../../../C/LzFind.c
../../../../C/CpuArch.c:518:no such instruction: `xgetbv'
gnumake: *** [_o/CpuArch.o] Error 1
gnumake: *** Waiting for unfinished jobs....
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:376:no such instruction: `vpbroadcastd 8(%ebp), %ymm0'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:380:no such instruction: `vpmaxud (%eax), %ymm0,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:382:no such instruction: `vpsubd %ymm0, %ymm1,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:383:no such instruction: `vmovdqa %ymm1, -128(%eax)'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:384:no such instruction: `vpmaxud -96(%eax), %ymm0,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:385:no such instruction: `vpsubd %ymm0, %ymm1,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:386:no such instruction: `vmovdqa %ymm1, -96(%eax)'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:387:no such instruction: `vpmaxud -64(%eax), %ymm0,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:388:no such instruction: `vpsubd %ymm0, %ymm1,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:389:no such instruction: `vmovdqa %ymm1, -64(%eax)'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:390:no such instruction: `vpmaxud -32(%eax), %ymm0,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:391:no such instruction: `vpsubd %ymm0, %ymm1,%ymm1'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:392:no such instruction: `vmovdqa %ymm1, -32(%eax)'
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lzma/lzma/work/.tmp/ccrtui2M.s:395:no such instruction: `vzeroupper'
gnumake: *** [_o/LzFind.o] Error 1

Change History (3)

comment:1 Changed 3 months ago by barracuda156

Or maybe the issue is that this is on CoreDuo (32-bit) and those instructions do not exist.

Okay, I dunno what to do about this. The build system is retarded, and vector insns are generated even when I pass -mno-avx to gcc.

Last edited 3 months ago by barracuda156 (previous) (diff)

comment:2 Changed 3 months ago by kencu (Ken)

the xgetbv instruction is not understood by the assembler being used.

Last edited 3 months ago by kencu (Ken) (previous) (diff)

comment:3 Changed 3 months ago by barracuda156

Opened a ticket with upstream, since it is a clear regression: 22.01 builds fine as-is with no hacks, with a system compiler. Something got broken with detection of support for related instructions.

https://sourceforge.net/p/sevenzip/bugs/2447

Note: See TracTickets for help on using tickets.