I am trying to build Gem on Debian/stable with the default gcc 3.3.5 (Debian 1:3.3.5-13), and it dies with a compiler error. Its something to do with SSE2, because it works when I use the --disable- sse2 flag.
Here's the transcript:
pd@pd-debian-stable:src > ./configure --with-pd=/home/pd/auto-build/ pd-extended/pd && make checking for Base/configLinux.h.in... yes checking for g++... g++ checking for C++ compiler default output file name... a.out checking whether the C++ compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking for sin in -lm... yes checking for main in -lz... yes checking for dlopen in -ldl... yes checking how to run the C preprocessor... gcc -E checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for gethostbyname... yes checking for connect... yes checking for remove... yes checking for shmat... yes checking for IceConnectionNumber in -lICE... yes checking for main in -lX11... yes checking for main in -lXext... yes checking for XF86VidModeGetAllModeLines in -lXxf86vm... yes checking for main in -lXext... (cached) yes checking for glInitNames in -lGL... yes checking for gluLookAt in -lGLU... yes checking for "OpenGL"-framework... no checking for "AGL"-framework... no checking for "Carbon"-framework... no checking for "QuickTime"-framework... no checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for PKG_IMAGEMAGICK___CFLAGS... checking for PKG_IMAGEMAGICK___LIBS... -L/usr/X11R6/lib -llcms -ltiff -lfreetype -ljasper -ljpeg -lpng -ldpstk -ldps -lXext -lXt -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lpthread -lMagick++ -lMagick checking for PKG_TIFF_CFLAGS... checking for PKG_TIFF_LIBS... checking for tiff-config... no checking for TIFFOpen in -ltiff... yes checking for PKG_JPEG_CFLAGS... checking for PKG_JPEG_LIBS... checking for jpeg-config... no checking for jpeg_read_header in -ljpeg... yes checking for PKG_LIBQUICKTIME_CFLAGS... checking for PKG_LIBQUICKTIME_LIBS... checking for libquicktime-config... no checking for quicktime_init in -lquicktime... yes checking for PKG_LQT_CFLAGS... checking for PKG_LQT_LIBS... checking for lqt-config... yes checking for PKG_MPEG3_CFLAGS... checking for PKG_MPEG3_LIBS... checking for mpeg3-config... no checking for mpeg3_check_sig in -lmpeg3... yes checking for PKG_MPEG_CFLAGS... checking for PKG_MPEG_LIBS... checking for mpeg-config... no checking for OpenMPEG in -lmpeg... yes checking for PKG_AVIFILE_CFLAGS... checking for PKG_AVIFILE_LIBS... checking for avifile-config... no checking for CreateIAviReadFile in -laviplay... no checking for PKG_FFMPEG_CFLAGS... checking for PKG_FFMPEG_LIBS... checking for ffmpeg-config... yes checking whether (AVStream)->codec is of type "*AVCodecContext"... no checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking linux/videodev.h usability... yes checking linux/videodev.h presence... yes checking for linux/videodev.h... yes checking for PKG_IEEE1394_CFLAGS... checking for PKG_IEEE1394_LIBS... checking for ieee1394-config... no checking for main in -ldv... yes checking for PKG_FTGL_CFLAGS... -I/usr/include/freetype2 checking for PKG_FTGL_LIBS... -lGLU -lGL -lfreetype -lz -lftgl checking for PKG_GLTT_CFLAGS... checking for PKG_GLTT_LIBS... checking for gltt-config... no checking for GLTTFont in -lgltt... no checking for pthread_create in -lpthread... yes checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for ANSI C header files... (cached) yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking float.h usability... yes checking float.h presence... yes checking for float.h... yes checking for memory.h... (cached) yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking termios.h usability... yes checking termios.h presence... yes checking for termios.h... yes checking for unistd.h... (cached) yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking for size_t... yes checking whether time.h and sys/time.h may both be included... yes checking for GLsizeiptrARB... no checking for unsigned int... yes checking size of unsigned int... 4 checking for void *... yes checking size of void *... 4 checking for error_at_line... yes checking for pid_t... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking whether gcc needs -traditional... no checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for getpagesize... yes checking for working mmap... yes checking for bzero... yes checking for floor... yes checking for gettimeofday... yes checking for memset... yes checking for munmap... yes checking for pow... yes checking for sqrt... yes checking for strchr... yes checking for strdup... yes checking for strrchr... yes checking for strstr... yes checking for lqt_add_video_track... no checking for glBindProgramARB... no disabling ARB-extensions checking for glBindProgramNV... yes checking m_pd.h usability... no checking m_pd.h presence... no checking for m_pd.h... no checking whether compiler accepts "-freg-struct-return"... yes enabling "register struct return" allows to make use of FreeFrame-effects without recompiling them might break things, if you are using several different compilers checking whether compiler accepts "-O3"... yes checking whether compiler accepts "-fno-builtin"... yes checking whether compiler accepts "-falign-loops=16 -funroll- loops"... yes checking whether compiler accepts "-ffast-math"... yes checking whether compiler accepts "-mmmx"... yes checking whether compiler accepts "-msse2"... yes checking whether linker accepts "-shared -Wl,-export-dynamic"... yes checking whether linker accepts "-bundle -undefined suppress - flat_namespace"... no checking for strip... strip checking if strip is GNU strip... yes checking for dos2unix... no configure: creating ./config.status config.status: creating Make.config config.status: creating Base/configLinux.h config.status: Base/configLinux.h is unchanged
Result: Target : Gem.pd_linux Objects : Base Controls Geos Manips Nongeos Particles Pixes openGL Vertex
Configuration: Compiler : g++ CXXFLAGS : -g -O2 -freg-struct-return -O3 -fno- builtin -falign-loops=16 -funroll-loops -ffast-math -mmmx -msse2 -I/ usr/X11R6/include : -I/usr/include/ffmpeg -I/usr/include/ ffmpeg -I/usr/include/quicktime -I/usr/include/freetype2 INCLUDES : -I/usr/include/FTGL -I/usr/include/ freetype2 -I/home/pd/auto-build/pd-extended/pd/src DEFINES :
LIBS : -ldv -lmpeg -lmpeg3 -lquicktime -ljpeg - ltiff -lGLU -lGL -lXext -lXxf86vm -lXext -lX11 -ldl -lz -lm -L/usr/ X11R6/lib -lpthread -L/home/pd/auto-build/pd-extended/pd/bin : -lGLU -lGL -lfreetype -lz -lftgl - lvorbis -lvorbisenc -ldts_pic -la52 -lz -lm -L/usr/lib -lquicktime - lgthread -lz -ldl -L/usr/X11R6/lib -llcms -ltiff -lfreetype -ljasper - ljpeg -lpng -ldpstk -ldps -lXext -lXt -lSM -lICE -lX11 -lbz2 -lxml2 - lz -lm -lpthread -lMagick++ -lMagick LDFLAGS : -shared -Wl,-export-dynamic : -L/usr/X11R6/lib
Strip : strip --strip-unneeded
Install path : /usr/local
pure-data: version : 0.39
used optional libraries:
font-rendering : FTGL
image-support use ImageMagick : yes use TIFF : yes use JPEG : yes video-support use mpeg : yes use mpeg-3 : yes use QuickTime : yes use aviplay : no use ffmpeg : yes input-support use v4l : yes use ieee1394 : yes
misc using ARB-extensions : no using NV-extensions : yes using reg-struct-ret : yes
Now run make ...
make -C Base -f ../Makefile.subdir -j4 make[1]: Entering directory `/home/pd/auto-build/pd-extended/Gem/src/ Base' g++ -c -fPIC -g -O2 -freg-struct-return -O3 -fno-builtin -falign- loops=16 -funroll-loops -ffast-math -mmmx -msse2 -I/usr/X11R6/ include -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ quicktime -I/usr/include/freetype2 -I.. -I/usr/include/FTGL -I/ usr/include/freetype2 -I/home/pd/auto-build/pd-extended/pd/src GemGLUtil.cpp -o GemGLUtil.o g++ -c -fPIC -g -O2 -freg-struct-return -O3 -fno-builtin -falign- loops=16 -funroll-loops -ffast-math -mmmx -msse2 -I/usr/X11R6/ include -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ quicktime -I/usr/include/freetype2 -I.. -I/usr/include/FTGL -I/ usr/include/freetype2 -I/home/pd/auto-build/pd-extended/pd/src GemPixConvertSSE2.cpp -o GemPixConvertSSE2.o g++ -c -fPIC -g -O2 -freg-struct-return -O3 -fno-builtin -falign- loops=16 -funroll-loops -ffast-math -mmmx -msse2 -I/usr/X11R6/ include -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ quicktime -I/usr/include/freetype2 -I.. -I/usr/include/FTGL -I/ usr/include/freetype2 -I/home/pd/auto-build/pd-extended/pd/src GemPixDualObj.cpp -o GemPixDualObj.o g++ -c -fPIC -g -O2 -freg-struct-return -O3 -fno-builtin -falign- loops=16 -funroll-loops -ffast-math -mmmx -msse2 -I/usr/X11R6/ include -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ quicktime -I/usr/include/freetype2 -I.. -I/usr/include/FTGL -I/ usr/include/freetype2 -I/home/pd/auto-build/pd-extended/pd/src GemPixImageLoad.cpp -o GemPixImageLoad.o GemPixConvertSSE2.cpp: In function `void RGBA_to_UYVY_SSE2(unsigned char*, unsigned int, unsigned char*)': GemPixConvertSSE2.cpp:200: internal compiler error: in push_reload, at reload.c :1315 Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. For Debian GNU/Linux specific bug reporting instructions, see URL:file:///usr/share/doc/gcc-3.3/README.Bugs. make[1]: *** [GemPixConvertSSE2.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/home/pd/auto-build/pd-extended/Gem/src/ Base' make: *** [Base] Error 2
------------------------------------------------------------------------
Looking at things from a more basic level, you can come up with a more direct solution... It may sound small in theory, but it in practice, it can change entire economies. - Amy Smith