pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

graphics/py-Pillow fails to build on 7.0 unless gcc is 4.9+



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



Home | Main Index | Thread Index | Old Index