Hi, as usual I'm doing my quarterly package rebuilds, and one of the
failures is graphics/py-Pillow. Building fails with assembler messages
first, and then at the end a link failure when a library is built.
gcc -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -pthread -I/usr/include -I/usr/pkg/include -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include/freetype2 -fPIC -DHAVE_LIBJPEG -DHAVE_OPENJPEG -DHAVE_LIBZ -DHAVE_LIBIMAGEQUANT -DHAVE_LIBTIFF -DPILLOW_VERSION="4.3.0" -I/usr/pkg/include/freetype2 -I/usr/pkg/include/openjpeg-2.3 -I/pkg_comp/obj/pkgsrc/graphics/py-Pillow/default/Pillow-4.3.0/libImaging -I/usr/pkg/include -I/usr/X11R7/include/freetype2 -I/usr/include -I/usr/pkg/include/python2.7 -c libImaging/JpegEncode.c -o build/temp.netbsd-7.0-amd64-2.7/libImaging/JpegEncode.o
libImaging/ImagingUtils.h: Assembler messages:
libImaging/ImagingUtils.h:40: Error: operand type mismatch for `xorps'
libImaging/ImagingUtils.h:40: Error: operand type mismatch for `cvtsi2ss'
libImaging/ImagingUtils.h:40: Error: operand type mismatch for `xorps'
libImaging/ImagingUtils.h:40: Error: operand type mismatch for `cvtsi2ss'
libImaging/ImagingUtils.h:40: Error: operand type mismatch for `xorps'
libImaging/ImagingUtils.h:40: Error: operand type mismatch for `cvtsi2ss'
... many more repeats of that
and similar for some other files. Although the -j option may line up the file names with the errors incorrectly.
gcc: error: build/temp.netbsd-7.0-amd64-2.7/libImaging/Filter.o: No such file or directory
gcc: error: build/temp.netbsd-7.0-amd64-2.7/libImaging/FliDecode.o: No such file or directory
gcc: error: build/temp.netbsd-7.0-amd64-2.7/libImaging/Geometry.o: No such file or directory
gcc: error: build/temp.netbsd-7.0-amd64-2.7/libImaging/GetBBox.o: No such file or directory
error: command 'gcc' failed with exit status 1
*** Error code 1
Looking at libImaging/ImagingUtils.h:40:
/* This is to work around a bug in GCC prior 4.9 in 64 bit mode.
GCC generates code with partial dependency which is 3 times slower.
See: http://stackoverflow.com/a/26588074/253146 */
#if defined(__x86_64__) && defined(__SSE__) && ! defined(__NO_INLINE__) && \
! defined(__clang__) && defined(GCC_VERSION) && (GCC_VERSION < 40900)
static float __attribute__((always_inline)) inline _i2f(int v) {
float x;
__asm__("xorps %0, %0; cvtsi2ss %1, %0" : "=X"(x) : "r"(v) );
return x;
}
#else
static float inline _i2f(int v) { return (float) v; }
#endif
It seems the workaround is also wrong... I'm just going to try gcc 4.9.
GCC_REQD+= 4.9
makes it build.
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- Wayland: Those who don't understand X
\X/ rhialto/at/falu.nl -- are condemned to reinvent it. Poorly.
Attachment:
signature.asc
Description: PGP signature