Summary: | SSE2 builds don't work for 32 bit Linux | ||
---|---|---|---|
Product: | Ghostscript | Reporter: | Marcos H. Woehrmann <marcos.woehrmann> |
Component: | Build Process | Assignee: | Marcos H. Woehrmann <marcos.woehrmann> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | henry.stiles, michael.vrhel |
Priority: | P4 | ||
Version: | master | ||
Hardware: | PC | ||
OS: | All | ||
Customer: | Word Size: | --- |
Description
Marcos H. Woehrmann
2011-02-28 17:07:30 UTC
likely a problem with the sse2 auto configuration that I didn't do correctly the first time. (In reply to comment #1) > likely a problem with the sse2 auto configuration that I didn't do correctly > the first time. Woops the autoconf stuff is correct. ghostpdl does not have autoconf so that leaves users to set USE_SSE2 (the default defines it) on their own. We do plan to have minimal autoconf support for ghostpdl by next release, but as the code is now it is working as expected. This does happen on my VMWare Ubuntu 32 bit build of ghostscript also. I have to do a make with HAVE_SSE2_DEFINE="" to avoid the issue. Talking with Robin it is likely an issue with how I installed Ubuntu since my machine does have SSE2. (In reply to comment #2) > > Woops the autoconf stuff is correct. ghostpdl does not have autoconf so that > leaves users to set USE_SSE2 (the default defines it) on their own. We do plan > to have minimal autoconf support for ghostpdl by next release, but as the code > is now it is working as expected. Not sure why you are talking about ghostpdl in comment #2. This not a GhostPDL bug; it's filed under Product:Ghostscript and Ghostscript is explicitly mentioned in the Description. Not sure why you are talking about ghostpdl in comment #2. This not a GhostPDL bug; it's filed under Product:Ghostscript and Ghostscript is explicitly mentioned in the Description. (In reply to comment #4) > This not a GhostPDL > bug; it's filed under Product:Ghostscript and Ghostscript is explicitly > mentioned in the Description. Sorry, I reread my initial Description and now realize that I wasn't clear. The Ghostscript bug is that the availability of SSE2 is not being detected on i686 machines; I should not have mentioned the GhostPDL issue in the description. BTW, Ghostscript also fail on non-Intel cpus (this is from my iMac G5, where as you can see SSE2 is correctly not being detected): gcc -DHAVE_MKSTEMP -DHAVE_HYPOT -DHAVE_SETLOCALE -O2 -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -Wno-strict-aliasing -Wdeclaration-after-statement -fno-builtin -fno-common -DHAVE_STDINT_H -DGX_COLOR_INDEX_TYPE="unsigned long long" -DUSE_LIBICONV_GNU -I./obj -I./base -o ./obj/gximono.o -c ./base/gximono.c ./base/gximono.c: In function 'threshold_row_bit': ./base/gximono.c:997: error: 'threshold_inverts' undeclared (first use in this function) ./base/gximono.c:997: error: (Each undeclared identifier is reported only once ./base/gximono.c:997: error: for each function it appears in.) ./base/gximono.c: In function 'threshold_landscape': ./base/gximono.c:1172: warning: 'align' attribute directive ignored ./base/gximono.c: In function 'image_render_mono_ht': ./base/gximono.c:1442: warning: assignment discards qualifiers from pointer target type ./base/gximono.c:1291: warning: unused variable 'i' make: *** [obj/gximono.o] Error 1 gcc -m32 does not enable SSE2 I am not sure why, but that is a gcc issue. Did you set the flags before ran configure? CFLAGS=-m32 LDFLAGS=-m32 ./configure Certainly you would have to do that. SSE2 is checked by running a small C program, the program should fail to compile if the CFLAGS include -m32 resulting in no -DHAVE_SSE2 flag. I suspect you are setting CFLAGS after the SSE2 autoconf program runs or not at all, using your CC=gcc -m32 trick, that would foil the autoconf sse2 test. If this isn't it can you tell me exactly how you set -m32. comment #6 looks like a separate bug - just a syntax error in michael's code when sse2 is disabled. Assigning back to reporter to see everything is resolved before closing. Everything is resolved. Closing. |