Ticket #579: solbug.txt

File solbug.txt, 3.7 KB (added by joernc, 5 years ago)
Line 
1Summary: build failure on Solaris/x86 with GCC and native assembler
2Reported by: joernc@gmail.com
3---
4src/ops/experimental.ops tests for the compiler to choose appropriate
5assembler code:
6
7#if defined(__GNUC__) && defined(i386)
8    __asm__("int3");       /* opcode 0xcc */
9#endif
10
11This fails e.g. on Solaris, when using GCC with the native assembler
12/usr/ccs/bin/as.
13
14This change
15
16--- src/ops/experimental.ops    2009/04/24 11:33:01     1.1
17+++ src/ops/experimental.ops    2009/04/24 11:33:17
18@@ -45,7 +45,7 @@
19 =cut
20 
21 op trap() :deprecated {
22-#if defined(__GNUC__) && defined(i386)
23+#if defined(__GNUC__) && defined(i386) && !defined(__sun__)
24     __asm__("int3");       /* opcode 0xcc */
25 #endif
26 #if defined(__GNUC__) && defined(PPC)
27
28does the trick for me, but may not work then using gas. How to implement
29the real fix (i.e. checking for the assembler, not the compiler in the
30first place) is unknown to me.
31
32As this file defines experimental opcodes, that are "implicitly deprecated",
33how about adding a configure flag to switch them off (or switch them off
34by default and add a flag to turn them on when needed) in Configure.pl?
35
36
37---
38osname= solaris
39osvers= 2.10
40arch=   i86pc-solaris-64int
41cc=     cc
42---
43Flags:
44    category=install
45    severity=medium
46    ack=no
47---
48Summary of my parrot 1.1.0 (r0) configuration:
49  configdate='Fri Apr 24 11:16:30 2009 GMT'
50  Platform:
51    osname=solaris, archname=i386-solaris-thread-multi
52    jitcapable=1, jitarchname=i386-solaris,
53    jitosname=SOLARIS, jitcpuarch=i386
54    execcapable=0
55    perl=perl
56  Compiler:
57    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',
58  Linker and Libraries:
59    ld='gcc', ldflags='-Wl,-R/usr/pkgsrc/20090421/lib  -L/usr/pkgsrc/20090421/lib',
60    cc_ldflags='',
61    libs='-lm -ldl -lsocket -lnsl -lpthread -lrt -lreadline -lintl'
62  Dynamic Linking:
63    share_ext='.so', ld_share_flags='-Wl,-R/usr/pkgsrc/20090421/lib -G -L/usr/pkgsrc/20090421/lib',
64    load_ext='.so', ld_load_flags='-Wl,-R/usr/pkgsrc/20090421/lib -G -L/usr/pkgsrc/20090421/lib'
65  Types:
66    iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
67    ptrsize=4, ptr_alignment=1 byteorder=1234,
68    nv=double, numvalsize=8, doublesize=8, longdoublesize=12
69
70---
71Environment:
72    HOME =/home/joern
73    LANG  (unset)
74    LANGUAGE  (unset)
75    LC_CTYPE =en_US.ISO8859-1
76    LC_MESSAGES =C
77    LC_MONETARY =en_US.ISO8859-1
78    LC_NUMERIC =en_US.ISO8859-1
79    LC_TIME =en_US.ISO8859-1
80    LD_LIBRARY_PATH  (unset)
81    LOGDIR  (unset)
82    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
83    PERLLIB =/home/joern/perl/lib/perl5:/home/joern/perl/lib/perl5/site_perl/5.8.0
84    SHELL =/bin/tcsh