Summary: build failure on Solaris/x86 with GCC and native assembler Reported by: joernc@gmail.com --- src/ops/experimental.ops tests for the compiler to choose appropriate assembler code: #if defined(__GNUC__) && defined(i386) __asm__("int3"); /* opcode 0xcc */ #endif This fails e.g. on Solaris, when using GCC with the native assembler /usr/ccs/bin/as. This change --- src/ops/experimental.ops 2009/04/24 11:33:01 1.1 +++ src/ops/experimental.ops 2009/04/24 11:33:17 @@ -45,7 +45,7 @@ =cut op trap() :deprecated { -#if defined(__GNUC__) && defined(i386) +#if defined(__GNUC__) && defined(i386) && !defined(__sun__) __asm__("int3"); /* opcode 0xcc */ #endif #if defined(__GNUC__) && defined(PPC) does the trick for me, but may not work then using gas. How to implement the real fix (i.e. checking for the assembler, not the compiler in the first place) is unknown to me. As this file defines experimental opcodes, that are "implicitly deprecated", how about adding a configure flag to switch them off (or switch them off by default and add a flag to turn them on when needed) in Configure.pl? --- osname= solaris osvers= 2.10 arch= i86pc-solaris-64int cc= cc --- Flags: category=install severity=medium ack=no --- Summary of my parrot 1.1.0 (r0) configuration: configdate='Fri Apr 24 11:16:30 2009 GMT' Platform: osname=solaris, archname=i386-solaris-thread-multi jitcapable=1, jitarchname=i386-solaris, jitosname=SOLARIS, jitcpuarch=i386 execcapable=0 perl=perl Compiler: cc='gcc', ccflags='-D_REENTRANT -pipe -I/usr/pkgsrc/20090421/include -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -funit-at-a-time -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces -Wno-missing-format-attribute -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DHAS_GETTEXT', Linker and Libraries: ld='gcc', ldflags='-Wl,-R/usr/pkgsrc/20090421/lib -L/usr/pkgsrc/20090421/lib', cc_ldflags='', libs='-lm -ldl -lsocket -lnsl -lpthread -lrt -lreadline -lintl' Dynamic Linking: share_ext='.so', ld_share_flags='-Wl,-R/usr/pkgsrc/20090421/lib -G -L/usr/pkgsrc/20090421/lib', load_ext='.so', ld_load_flags='-Wl,-R/usr/pkgsrc/20090421/lib -G -L/usr/pkgsrc/20090421/lib' Types: iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, ptrsize=4, ptr_alignment=1 byteorder=1234, nv=double, numvalsize=8, doublesize=8, longdoublesize=12 --- Environment: HOME =/home/joern LANG (unset) LANGUAGE (unset) LC_CTYPE =en_US.ISO8859-1 LC_MESSAGES =C LC_MONETARY =en_US.ISO8859-1 LC_NUMERIC =en_US.ISO8859-1 LC_TIME =en_US.ISO8859-1 LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH =/usr/pkgsrc/head/bin:/usr/pkgsrc/head/sbin:/usr/pkgsrc/head/gcc34/bin:/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/dt/bin:/usr/ccs/bin PERLLIB =/home/joern/perl/lib/perl5:/home/joern/perl/lib/perl5/site_perl/5.8.0 SHELL =/bin/tcsh