exception error using SSE extensions with gcc3.1/cygwin
Dylan Cuthbert
dylan@q-games.com
Sun Mar 31 02:17:00 GMT 2002
Hi there,
I've attached some very simplified (and *very* crap) source code that causes
an exception error using gcc 3.1 (March 25th snapshot), specs are at bottom
of mail.
I'm at a loss at how to debug this - as the version of gdb I've got (5.1)
doesn't like the SSE instructions, (or maybe gcc 3.1's object file format,
I'm not sure which but it seems pretty flakey).
compile with the following:
$ g++ -L /usr/local/lib -msse math.cpp -o math.exe
$ ./math.exe
Start test
set mUnitMatrix
set_x
set_y
set_z
set_w
set_x
set_y
set_z
set_w
set_x
set_y
set_z
set_w
set_x
set_y
set_z
set_w
Illegal instruction (core dumped)
Any help much appreciated!
Regards
---------------------------------
Q-Games, Dylan Cuthbert.
http://www.q-games.com
$ gcc -dumpspecs
*asm:
--traditional-format
*asm_debug:
%{g*:--gstabs}
*asm_final:
*asm_options:
%a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}
*invoke_as:
%{!S:-o %{|!pipe:%g.s} |
as %(asm_options) %{!pipe:%g.s} %A }
*cpp:
%(cpp_cpu)
posix:-D_POSIX_SOURCE} -D__stdcall=__attribute__((__stdcall__)) -D__cdec
l=__attribute__((__cdecl__))
%{!ansi:-D_stdcall=__attribute__((__stdcall__)) -D_cdecl=__attribute__((
__cdecl__))} -D__declspec(x)=__attribute__((x)) -D__i386__ -D__i386
%{mno-win32:%{mno-cygwin: %emno-cygwin and mno-win32 are not compatible}}
%{mno-cygwin:-D__MSVCRT__ -D__MINGW32__ %{mthreads:-D_MT}
%{!nostdinc:-isystem /usr/include/mingw/g++-3 -isystem
/usr/include/mingw/g++ -isystem /usr/local/include/mingw -idirafter
/usr/local/i686-pc-cygwin/include/mingw -idirafter /usr/include/mingw}}
%{!mno-cygwin:-D__CYGWIN32__ -D__CYGWIN__
%{!ansi:-Dunix} -D__unix__ -D__unix %{!nostdinc:-isystem
/usr/local/include -idirafter /usr/local/i686-pc-cygwin/include -idirafter
/usr/include}} %{mwin32|mno-cygwin:-DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__
%{!ansi:-DWINNT}} %{!mno-win32:%{!nostdinc:-idirafter
/usr/local/i686-pc-cygwin/include/w32api -idirafter /usr/include/w32api}}
*cpp_options:
%(cpp_unique_options) %{std*} %{d*} %{W*} %{w} %{pedantic*} %{fshow-column}
%{fno-show-column} %{fsigned-char&funsigned-char} %{fleading-underscore}
%{fno-leading-underscore} %{fno-operator-names} %{ftabstop=*}
*cpp_unique_options:
%{C:%{!E:%eGNU C does not support -C without using -E}} %{nostdinc*} %{C}
%{v} %{I*} %{P} %{$} %I %{MD:-MD %W{!o: %b.d}%W{o*:%.d%*}} %{MMD:-MMD %W{!o:
%b.d}%W{o*:%.d%*}} %{M} %{MM} %W{MF*} %{MG} %{MP} %{MQ*} %{MT*}
%{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ %*}}}}}
%{!no-gcc:-D__GNUC__=%v1 -D__GNUC_MINOR__=%v2 -D__GNUC_PATCHLEVEL__=%v3}
%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}
%{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}
%{fno-inline|O0|!O*:-D__NO_INLINE__} %{ffast-math:-D__FAST_MATH__}
%{fshort-wchar:-U__WCHAR_TYPE__ -D__WCHAR_TYPE__=short\ unsigned\ int}
%{ffreestanding:-D__STDC_HOSTED__=0} %{fno-hosted:-D__STDC_HOSTED__=0}
%{!ffreestanding:%{!fno-hosted:-D__STDC_HOSTED__=1}} %{remap} %{g3:-dD} %{H}
%C %{D*&U*&A*} %{i*} %Z %i %{E|M|MM:%W{o*}}
*trad_capable_cpp:
%{traditional|ftraditional|traditional-cpp:trad}cpp0
*cc1:
%(cc1_cpu)
*cc1_options:
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}
%1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*} %{g*} %{O*} %{W*} %{w}
%{pedantic*} %{std*} %{ansi} %{traditional} %{v:-version} %{pg:-p} %{p}
%{f*} %{Qn:-fno-ident} %{--help:--help} %{--target-help:--target-help}
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}} %{fsyntax-only:-o %j} %{-param*}
*cc1plus:
*endfile:
*link:
-L/usr/local/i686-pc-cygwin/lib/w32api/ -L/usr/lib/w32api/
%{mwindows:--subsystem windows} %{mconsole:--subsystem console}
%{shared: %{mdll: %eshared and mdll are not compatible}}
%{shared: --shared} %{mdll:--dll} %{static:-Bstatic}
%{!static:-Bdynamic} %{shared|mdll: -e
%{mno-cygwin:_DllMainCRTStartup@12}
%{!mno-cygwin:__cygwin_dll_entry@12}} --dll-search-prefix=cyg
*lib:
%{pg:-lgmon} %{!mno-cygwin:-lcygwin}
%{mno-cygwin:%{mthreads:-lmingwthrd} -lmingw32} %{mwindows:-lgdi32 -lcomdl
g32} -luser32 -lkernel32 -ladvapi32 -lshell32
*libgcc:
%{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} -lgcc
%{mno-cygwin:-lmoldname -lmsvcrt}
*startfile:
%{shared|mdll: %{mno-cygwin:-L/usr/local/lib/mingw -L/usr/lib/mingw
dllcrt2%O%s}} %{!shared: %{!mdll: %{!mno-cygwin:crt0%O%s}
%{mno-cygwin:-L/usr/local/lib/mingw -L/usr/lib/mingw crt2%O%s}
%{pg:gcrt0%O%s}}}
*switches_need_spaces:
*predefines:
-D_X86_=1 -Asystem=winnt
*cross_compile:
0
*version:
3.1
*multilib:
. ;
*multilib_defaults:
*multilib_extra:
*multilib_matches:
*multilib_exclusions:
*linker:
collect2
*link_libgcc:
%D
*md_exec_prefix:
*md_startfile_prefix:
/usr/lib/
*md_startfile_prefix_1:
*cpp_cpu_default:
-D__tune_i686__ -D__tune_pentiumpro__
*cpp_cpu:
%(cpp_cpu32) %(cpp_cpucommon)
*cpp_cpu32:
-Acpu=i386 -Amachine=i386
%{!ansi:%{!std=c*:%{!std=i*:-Di386}}} -D__i386 -D__i386__ %(cpp_cpu32sizet)
*cpp_cpu64:
-Acpu=x86_64 -Amachine=x86_64 -D__x86_64 -D__x86_64__ %(cpp_cpu64sizet)
*cpp_cpu32sizet:
*cpp_cpu64sizet:
*cpp_cpucommon:
%{march=i386:%{!mcpu*:-D__tune_i386__ }}%{march=i486:-D__i486 -D__i486__
%{!mcpu*:-D__tune_i486__ }}%{march=pentium|march=i586:-D__i586 -D__i586__ -D
__pentium -D__pentium__
%{!mcpu*:-D__tune_i586__ -D__tune_pentium__ }}%{march=pentium-mmx:-D__i586 -
D__i586__ -D__pentium -D__pentium__ -D__pentium__mmx__
%{!mcpu*:-D__tune_i586__ -D__tune_pentium__ -D__tune_pentium_mmx__}}%{march=
pentiumpro|march=i686:-D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__
%{!mcpu*:-D__tune_i686__ -D__tune_pentiumpro__ }}%{march=k6:-D__k6 -D__k6__
%{!mcpu*:-D__tune_k6__ }}%{march=k6-2:-D__k6 -D__k6__ -D__k6_2__
%{!mcpu*:-D__tune_k6__ -D__tune_k6_2__ }}%{march=k6-3:-D__k6 -D__k6__ -D__k6
_3__
%{!mcpu*:-D__tune_k6__ -D__tune_k6_3__ }}%{march=athlon|march=athlon-tbird:-
D__athlon -D__athlon__
%{!mcpu*:-D__tune_athlon__ }}%{march=athlon-4|march=athlon-xp|march=athlon-m
p:-D__athlon -D__athlon__ -D__athlon_sse__
%{!mcpu*:-D__tune_athlon__ -D__tune_athlon_sse__ }}%{march=pentium4:-D__pent
ium4 -D__pentium4__
%{!mcpu*:-D__tune_pentium4__ }}%{m386|mcpu=i386:-D__tune_i386__ }%{m486|mcpu
=i486:-D__tune_i486__ }%{mpentium|mcpu=pentium|mcpu=i586|mcpu=pentium-mmx:-D
__tune_i586__ -D__tune_pentium__ }%{mpentiumpro|mcpu=pentiumpro|mcpu=i686|cp
u=pentium2|cpu=pentium3:-D__tune_i686__ -D__tune_pentiumpro__ }%{mcpu=k6|mcp
u=k6-2|mcpu=k6-3:-D__tune_k6__ }%{mcpu=athlon|mcpu=athlon-tbird|mcpu=athlon-
4|mcpu=athlon-xp|mcpu=athlon-mp:-D__tune_athlon__ }%{mcpu=athlon-4|mcpu=athl
on-xp|mcpu=athlon-mp:-D__tune_athlon_sse__ }%{mcpu=pentium4:-D__tune_pentium
4__ }%{march=athlon-tbird|march=athlon-xp|march=athlon-mp|march=pentium3|mar
ch=pentium4:-D__SSE__ }%{march=pentium-mmx|march=k6|march=k6-2|march=k6-3|ma
rch=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp|march=athlon-mp
|march=pentium2|march=pentium3|march=pentium4: -D__MMX__ }%{march=k6-2|march
=k6-3|march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp|march=a
thlon-mp: -D__3dNOW__ }%{march=athlon|march=athlon-tbird|march=athlon-4|marc
h=athlon-xp|march=athlon-mp: -D__3dNOW_A__ }%{march=pentium4: -D__SSE2__ }%{
!march*:%{!mcpu*:%{!m386:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}}}
*cc1_cpu:
%{!mcpu*: %{m386:-mcpu=i386 %n`-m386' is deprecated. Use `-march=i386' or
`-mcpu=i386' instead.
} %{m486:-mcpu=i486 %n`-m486' is deprecated. Use `-march=i486' or
`-mcpu=i486' instead.
} %{mpentium:-mcpu=pentium %n`-mpentium' is deprecated. Use `-march=pentium'
or `-mcpu=pentium' instead.
} %{mpentiumpro:-mcpu=pentiumpro %n`-mpentiumpro' is deprecated. Use
`-march=pentiumpro' or `-mcpu=pentiumpro' instead.
}} %{mintel-syntax:-masm=intel %n`-mintel-syntax' is deprecated. Use
`-masm=intel' instead.
} %{mno-intel-syntax:-masm=att %n`-mno-intel-syntax' is deprecated. Use
`-masm=att' instead.
}
*mingw_include_path:
i686-pc-cygwin
*link_command:
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %l %X %{o*} %{A}
%{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z}
%{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %(link_libgcc) %o
%{!nostdlib:%{!nodefaultlibs:%G %L %G}}
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: math.cpp
Type: application/octet-stream
Size: 5992 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20020331/f3f8d9c6/attachment.obj>
More information about the Gcc
mailing list