Skip to content

i2f() work around for GCC < 4.9 does not compile #2956

@moubctez

Description

@moubctez

What did you do?

As discussed here http://mail-index.netbsd.org/pkgsrc-users/2018/01/11/msg026118.html the work around for i2f() located in src/libImaging/ImagingUtils.h does not compile with GCC 4.8 (at least on NetBSD).

What did you expect to happen?

Assembler code in src/libImaging/ImagingUtils.h compiled correctly.

What actually happened?

Compilation failed with

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="5.0.0" -I/usr/pkg/include/openjpeg-2.3 -I/usr/pkgsrc/graphics/py-Pillow/work/Pillow-5.0.0/src/libImaging -I/usr/pkg/include -I/usr/X11R7/include/freetype2 -I/usr/include -I/usr/pkg/include/python2.7 -c src/libImaging/JpegDecode.c -o build/temp.netbsd-7.1.1-amd64-2.7/src/libImaging/JpegDecode.o
src/libImaging/ImagingUtils.h: Assembler messages:
src/libImaging/ImagingUtils.h:40: Error: operand type mismatch for `xorps'
src/libImaging/ImagingUtils.h:40: Error: operand type mismatch for `cvtsi2ss'
src/libImaging/ImagingUtils.h:40: Error: operand type mismatch for `xorps'
src/libImaging/ImagingUtils.h:40: Error: operand type mismatch for `cvtsi2ss'
...

What versions of Pillow and Python are you using?

5.0.0

The safest fix would be to remove the assembler code completely. :-)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions