Bug#790478: FTBFS with GCC 5 on !x86: invalid register name for ‘bestfit’

Martin Michlmayr tbm at hp.com
Mon Jun 29 17:21:49 UTC 2015


Package: aseprite
Version: 1.0.9+ds-2
Severity: serious
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-5

aseprite fails to build on arm64 (and presumably other non-x86 arches)
with GCC 5.

It complains about this line:

#ifdef __GNUC__
  register int bestfit asm("%eax");
#else

I believe eax is a x86 register, so I'm surprised this works with GCC 4.9.
In any case, GCC 5 produces an error.

> sbuild (Debian sbuild) 0.64.1 (13 Oct 2013) on m400-c2n1.hlinux.usa.hp.com
...
> [ 37%] Building CXX object src/raster/CMakeFiles/raster-lib.dir/palette_io.cpp.o
> cd /«BUILDDIR»/aseprite-1.0.9+ds/build/src/raster && /usr/bin/c++   -DALLEGRO_STATICLINK -DENABLE_SAVE -DHAVE_CONFIG_H -DNDEBUG -DPNG_NO_MMX_CODE -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -Wno-switch -std=gnu++11 -O2 -g -DNDEBUG -I/«BUILDDIR»/aseprite-1.0.9+ds/build/third_party/zlib -I/«BUILDDIR»/aseprite-1.0.9+ds/third_party/libpng -I/«BUILDDIR»/aseprite-1.0.9+ds/src/. -I/«BUILDDIR»/aseprite-1.0.9+ds/src/.. -I/«BUILDDIR»/aseprite-1.0.9+ds/src/../third_party -I/usr/include/pixman-1    -o CMakeFiles/raster-lib.dir/palette_io.cpp.o -c /«BUILDDIR»/aseprite-1.0.9+ds/src/raster/palette_io.cpp
> /«BUILDDIR»/aseprite-1.0.9+ds/src/raster/palette.cpp: In member function 'int raster::Palette::findBestfit(int, int, int, int) const':
> /«BUILDDIR»/aseprite-1.0.9+ds/src/raster/palette.cpp:431:16: error: invalid register name for 'bestfit'
>    register int bestfit asm("%eax");
>                 ^
> /usr/bin/cmake -E cmake_progress_report /«BUILDDIR»/aseprite-1.0.9+ds/build/CMakeFiles 

GCC 5:

(sid)359:tbm at m400-c2n1: ..-1.0.9+ds/build/src/raster] /usr/bin/g++-5   -DALLEGRO_STATICLINK -DENABLE_SAVE -DHAVE_CONFIG_H -DNDEBUG -DPNG_NO_MMX_CODE -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -Wno-switch -std=gnu++11 -O2 -g -DNDEBUG -I/home/tbm/aseprite-1.0.9+ds/build/third_party/zlib -I/home/tbm/aseprite-1.0.9+ds/third_party/libpng -I/home/tbm/aseprite-1.0.9+ds/src/. -I/home/tbm/aseprite-1.0.9+ds/src/.. -I/home/tbm/aseprite-1.0.9+ds/src/../third_party -I/usr/include/pixman-1    -o CMakeFiles/raster-lib.dir/palette.cpp.o -c /home/tbm/aseprite-1.0.9+ds/src/raster/palette.cpp
/home/tbm/aseprite-1.0.9+ds/src/raster/palette.cpp: In member function ‘int raster::Palette::findBestfit(int, int, int, int) const’:
/home/tbm/aseprite-1.0.9+ds/src/raster/palette.cpp:431:16: error: invalid register name for ‘bestfit’
   register int bestfit asm("%eax");
                ^
GCC 4.9:

(sid)360:tbm at m400-c2n1: ..-1.0.9+ds/build/src/raster] /usr/bin/g++-4.9  -DALLEGRO_STATICLINK -DENABLE_SAVE -DHAVE_CONFIG_H -DNDEBUG -DPNG_NO_MMX_CODE -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -Wno-switch -std=gnu++11 -O2 -g -DNDEBUG -I/home/tbm/aseprite-1.0.9+ds/build/third_party/zlib -I/home/tbm/aseprite-1.0.9+ds/third_party/libpng -I/home/tbm/aseprite-1.0.9+ds/src/. -I/home/tbm/aseprite-1.0.9+ds/src/.. -I/home/tbm/aseprite-1.0.9+ds/src/../third_party -I/usr/include/pixman-1    -o CMakeFiles/raster-lib.dir/palette.cpp.o -c /home/tbm/aseprite-1.0.9+ds/src/raster/palette.cpp
(sid)361:tbm at m400-c2n1: ..-1.0.9+ds/build/src/raster] 

-- 
Martin Michlmayr
Linux for HP Helion OpenStack, Hewlett-Packard



More information about the Pkg-games-devel mailing list