1 | Summary: build failure on Solaris/x86 with GCC and native assembler |
---|
2 | Reported by: joernc@gmail.com |
---|
3 | --- |
---|
4 | src/ops/experimental.ops tests for the compiler to choose appropriate |
---|
5 | assembler code: |
---|
6 | |
---|
7 | #if defined(__GNUC__) && defined(i386) |
---|
8 | __asm__("int3"); /* opcode 0xcc */ |
---|
9 | #endif |
---|
10 | |
---|
11 | This fails e.g. on Solaris, when using GCC with the native assembler |
---|
12 | /usr/ccs/bin/as. |
---|
13 | |
---|
14 | This 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 | |
---|
28 | does the trick for me, but may not work then using gas. How to implement |
---|
29 | the real fix (i.e. checking for the assembler, not the compiler in the |
---|
30 | first place) is unknown to me. |
---|
31 | |
---|
32 | As this file defines experimental opcodes, that are "implicitly deprecated", |
---|
33 | how about adding a configure flag to switch them off (or switch them off |
---|
34 | by default and add a flag to turn them on when needed) in Configure.pl? |
---|
35 | |
---|
36 | |
---|
37 | --- |
---|
38 | osname= solaris |
---|
39 | osvers= 2.10 |
---|
40 | arch= i86pc-solaris-64int |
---|
41 | cc= cc |
---|
42 | --- |
---|
43 | Flags: |
---|
44 | category=install |
---|
45 | severity=medium |
---|
46 | ack=no |
---|
47 | --- |
---|
48 | Summary 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 | --- |
---|
71 | Environment: |
---|
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 |
---|