public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/27053] New: symbol2.c:2102: internal error: Segmentation fault when i try to compile gSOAP in cross compilation
@ 2006-04-06 8:07 sauvageon dot y at voila dot fr
2006-04-06 16:45 ` [Bug c++/27053] " pinskia at gcc dot gnu dot org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: sauvageon dot y at voila dot fr @ 2006-04-06 8:07 UTC (permalink / raw)
To: gcc-bugs
hi
I've got a problem when I try to make a cross compilation of the gSOAP toolkit
from a i686-pc-cygwin to i586-hadhat-linux.
I downloaded the gSOAP toolkit from
here:http://sourceforge.net/project/showfiles.php?group_id=52781&package_id=68161&release_id=394790
it's the version : gSOAP 2.7.6e
for the error, it told me :
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
So, it's what i am doing, cause i don't find how to correct the error.
So i give you :
-the exact version of GCC :
GNU CPP version 3.2.1 20020930 (MontaVista) (cpplib) (i386 Linux/ELF)
GNU C version 3.2.1 20020930 (MontaVista) (i586-hardhat-linux)
-the options given when GCC was configured/built:
Configured with: /opt/src/gcc-3.2/configure -v --host=i686-pc-cygwin
--build=i686-pc-cygwin --target=i586-hardhat-linux
--prefix=/opt/hardhat/devkit/x86/586_mv30
--exec-prefix=/opt/hardhat/devkit/x86/586_mv30
--bindir=/opt/hardhat/devkit/x86/586_mv30/bin
--sbindir=/opt/hardhat/devkit/x86/586_mv30/sbin
--sysconfdir=/opt/hardhat/devkit/x86/586_mv30/etc
--datadir=/opt/hardhat/devkit/x86/586_mv30/share
--includedir=/opt/hardhat/devkit/x86/586_mv30/include
--libdir=/opt/hardhat/devkit/x86/586_mv30/lib
--libexecdir=/opt/hardhat/devkit/x86/586_mv30/libexec
--localstatedir=/opt/hardhat/devkit/x86/586_mv30/var
--sharedstatedir=/opt/hardhat/devkit/x86/586_mv30/share
--mandir=/opt/hardhat/devkit/x86/586_mv30/man
--infodir=/opt/hardhat/devkit/x86/586_mv30/info
--program-transform-name=s,^,586-, --enable-cross --enable-shared
--enable-languages=c,c++ --enable-threads
--with-gxx-include-dir=/opt/hardhat/devkit/x86/586_mv30/i586-hardhat-linux/include/g++-3
--with-fp --with-cpu=i386
--with-local-prefix=/opt/hardhat/devkit/x86/586_mv30/i586-hardhat-linux
-the compiler output (error messages, warnings, etc.):
make[4]: Entering directory
`/cygdrive/c/Stage/workspacegSOAP/gSOAP/soapcpp2/src'
if i586-hardhat-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -DWITH_BISON
-DWITH_FLEX -DLINUX -v -save-temps -g -O2 -MT soapcpp2-symbol2.o -MD -MP -MF
".deps/soapcpp2-symbol2.Tpo" -c -o soapcpp2-symbol2.o `test -f 'symbol2.c' ||
echo './'`symbol2.c; \
then mv -f ".deps/soapcpp2-symbol2.Tpo" ".deps/soapcpp2-symbol2.Po"; else rm -f
".deps/soapcpp2-symbol2.Tpo"; exit 1; fi
Reading specs from /usr/bin/../lib/gcc-lib/i586-hardhat-linux/3.2.1/specs
Configured with: /opt/src/gcc-3.2/configure -v --host=i686-pc-cygwin
--build=i686-pc-cygwin --target=i586-hardhat-linux
--prefix=/opt/hardhat/devkit/x86/586_mv30
--exec-prefix=/opt/hardhat/devkit/x86/586_mv30
--bindir=/opt/hardhat/devkit/x86/586_mv30/bin
--sbindir=/opt/hardhat/devkit/x86/586_mv30/sbin
--sysconfdir=/opt/hardhat/devkit/x86/586_mv30/etc
--datadir=/opt/hardhat/devkit/x86/586_mv30/share
--includedir=/opt/hardhat/devkit/x86/586_mv30/include
--libdir=/opt/hardhat/devkit/x86/586_mv30/lib
--libexecdir=/opt/hardhat/devkit/x86/586_mv30/libexec
--localstatedir=/opt/hardhat/devkit/x86/586_mv30/var
--sharedstatedir=/opt/hardhat/devkit/x86/586_mv30/share
--mandir=/opt/hardhat/devkit/x86/586_mv30/man
--infodir=/opt/hardhat/devkit/x86/586_mv30/info
--program-transform-name=s,^,586-, --enable-cross --enable-shared
--enable-languages=c,c++ --enable-threads
--with-gxx-include-dir=/opt/hardhat/devkit/x86/586_mv30/i586-hardhat-linux/include/g++-3
--with-fp --with-cpu=i386
--with-local-prefix=/opt/hardhat/devkit/x86/586_mv30/i586-hardhat-linux
Thread model: posix
gcc version 3.2.1 20020930 (MontaVista)
/usr/bin/../lib/gcc-lib/i586-hardhat-linux/3.2.1/cpp0.exe -lang-c -v -I. -I.
-I../.. -iprefix /usr/bin/../lib/gcc-lib/i586-hardhat-linux/3.2.1/ -MD
soapcpp2-symbol2.d -MF .deps/soapcpp2-symbol2.Tpo -MP -MT soapcpp2-symbol2.o
-MQ soapcpp2-symbol2.o -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=1
-D__GXX_ABI_VERSION=102 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__
-D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix
-D__OPTIMIZE__ -D__STDC_HOSTED__=1 -Acpu=i386 -Amachine=i386 -Di386 -D__i386
-D__i386__ -D__tune_i386__ -DHAVE_CONFIG_H -DWITH_BISON -DWITH_FLEX -DLINUX
symbol2.c symbol2.i
GNU CPP version 3.2.1 20020930 (MontaVista) (cpplib) (i386 Linux/ELF)
ignoring nonexistent directory "/usr/target/usr/include"
ignoring duplicate directory "."
#include "..." search starts here:
#include <...> search starts here:
.
../..
/usr/lib/gcc-lib/i586-hardhat-linux/3.2.1/include
/usr/i586-hardhat-linux/include
End of search list.
/usr/bin/../lib/gcc-lib/i586-hardhat-linux/3.2.1/cc1.exe -fpreprocessed
symbol2.i -quiet -dumpbase symbol2.c -mcpu=i386 -g -O2 -version -o symbol2.s
GNU CPP version 3.2.1 20020930 (MontaVista) (cpplib) (i386 Linux/ELF)
GNU C version 3.2.1 20020930 (MontaVista) (i586-hardhat-linux)
compiled by GNU C version 3.2 20020927 (prerelease).
symbol2.c: In function `gen_wsdl':
symbol2.c:2102: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make[4]: *** [soapcpp2-symbol2.o] Error 1
-the preprocessed file (*.i*) that triggers the bug:
# 1 "symbol2.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "symbol2.c"
# 47 "symbol2.c"
# 1 "soapcpp2.h" 1
# 45 "soapcpp2.h"
# 1 "/usr/i586-hardhat-linux/include/stdio.h" 1 3
# 28 "/usr/i586-hardhat-linux/include/stdio.h" 3
# 1 "/usr/i586-hardhat-linux/include/features.h" 1 3
# 283 "/usr/i586-hardhat-linux/include/features.h" 3
# 1 "/usr/i586-hardhat-linux/include/sys/cdefs.h" 1 3
# 284 "/usr/i586-hardhat-linux/include/features.h" 2 3
# 312 "/usr/i586-hardhat-linux/include/features.h" 3
# 1 "/usr/i586-hardhat-linux/include/gnu/stubs.h" 1 3
# 313 "/usr/i586-hardhat-linux/include/features.h" 2 3
# 29 "/usr/i586-hardhat-linux/include/stdio.h" 2 3
If anyone have any idea.
Thank u.
-Here is the fonction where it said there is the internal error in
gSOAP\soapcpp2\src\symbol2.c :
void
gen_wsdl(FILE *fd, Table *t, char *ns, char *name, char *URL, char *executable,
char *URI, char *style, char *encoding)
{ Entry *p, *q, *r;
Symbol *s;
Service *sp, *sp2;
Method *m;
int mimein, mimeout;
char *action, *comment, *method_style = NULL, *method_encoding = NULL,
*method_response_encoding = NULL;
char *binding;
fprintf(fd, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
for (sp = services; sp; sp = sp->next)
if (!strcmp(sp->ns, ns))
break;
if (sp && sp->definitions)
fprintf(fd, "<definitions name=\"%s\"\n", sp->definitions);
else
fprintf(fd, "<definitions name=\"%s\"\n", name);
if (sp && sp->WSDL)
fprintf(fd, " targetNamespace=\"%s\"\n xmlns:tns=\"%s\"", sp->WSDL,
sp->WSDL);
else
fprintf(fd, " targetNamespace=\"%s/%s.wsdl\"\n xmlns:tns=\"%s/%s.wsdl\"",
URL, name, URL, name);
if (sp && sp->binding)
binding = ns_cname(sp->binding, NULL);
else
binding = name;
for (s = nslist; s; s = s->next)
{ for (sp2 = services; sp2; sp2 = sp2->next)
if (!strcmp(sp2->ns, s->name) && sp2->URI)
break;
if (sp2)
fprintf(fd, "\n xmlns:%s=\"%s\"", ns_convert(s->name), sp2->URI);
else if (!strcmp(s->name, "SOAP-ENV"))
fprintf(fd, "\n xmlns:SOAP-ENV=\"%s\"", envURI);
else if (!strcmp(s->name, "SOAP-ENC"))
fprintf(fd, "\n xmlns:SOAP-ENC=\"%s\"", encURI);
else if (!strcmp(s->name, "xsi"))
fprintf(fd, "\n xmlns:xsi=\"%s\"", xsiURI);
else if (!strcmp(s->name, "xsd"))
fprintf(fd, "\n xmlns:xsd=\"%s\"", xsdURI);
else
fprintf(fd, "\n xmlns:%s=\"%s/%s.xsd\"", ns_convert(s->name), tmpURI,
ns_convert(s->name));
}
if (is_soap12())
fprintf(fd, "\n xmlns:SOAP=\"http://schemas.xmlsoap.org/wsdl/soap12/\"");
else
fprintf(fd, "\n xmlns:SOAP=\"http://schemas.xmlsoap.org/wsdl/soap/\"");
fprintf(fd, "\n xmlns:MIME=\"http://schemas.xmlsoap.org/wsdl/mime/\"");
fprintf(fd, "\n
xmlns:DIME=\"http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/\"");
fprintf(fd, "\n xmlns:WSDL=\"http://schemas.xmlsoap.org/wsdl/\"");
fprintf(fd, "\n xmlns=\"http://schemas.xmlsoap.org/wsdl/\">\n\n");
fprintf(fd, "<types>\n\n");
for (s = nslist; s; s = s->next)
gen_schema(fd, t, ns, s->name, !strcmp(s->name, ns), 1, URL, URI, style,
encoding);
fprintf(fd, "</types>\n\n");
fflush(fd);
if (t)
{ for (p = t->list; p; p = p->next)
{ if (p->info.typ->type == Tfun && !(p->info.sto & Sextern) &&
has_ns_eq(ns, p->sym->name))
{ mimein = 0;
mimeout = 0;
comment = NULL;
method_style = style;
method_encoding = encoding;
method_response_encoding = NULL;
if (sp)
{ for (m = sp->list; m; m = m->next)
{ if (is_eq_nons(m->name, p->sym->name))
{ if (m->mess&MIMEIN)
mimein = 1;
if (m->mess&MIMEOUT)
mimeout = 1;
if (m->mess == ENCODING)
method_encoding = m->part;
else if (m->mess == RESPONSE_ENCODING)
method_response_encoding = m->part;
else if (m->mess == STYLE)
method_style = m->part;
else if (m->mess == COMMENT)
comment = m->part;
}
}
}
if (!method_response_encoding)
method_response_encoding = method_encoding;
if (get_response(p->info.typ))
fprintf(fd, "<message name=\"%sRequest\">\n",
ns_remove(p->sym->name));
else
fprintf(fd, "<message name=\"%s\">\n", ns_remove(p->sym->name));
fflush(fd);
if (is_document(method_style))
{ if (is_invisible(p->sym->name))
{ q = entry(classtable, p->sym);
if (q)
{ q = ((Table*)q->info.typ->ref)->list;
if (q)
{ if (is_invisible(q->sym->name))
{ r = entry(classtable, q->sym);
if (r)
{ r = ((Table*)r->info.typ->ref)->list;
if (r)
fprintf(fd, " <part name=\"parameters\"
element=\"%s\"/>\n", ns_add(r->sym->name, ns));
}
}
else
fprintf(fd, " <part name=\"parameters\" element=\"%s\"/>\n",
ns_add(q->sym->name, ns));
}
}
}
else
fprintf(fd, " <part name=\"parameters\" element=\"%s\"/>\n",
ns_add(p->sym->name, ns));
}
else
{ q = entry(classtable, p->sym);
if (q)
for (q = ((Table*)q->info.typ->ref)->list; q; q = q->next)
{ if (!is_transient(q->info.typ) && !(q->info.sto & Sattribute) &&
q->info.typ->type != Tfun && !is_repetition(q) && !is_anytype(q))
{ if (is_literal(method_encoding))
fprintf(fd, " <part name=\"%s\" element=\"%s\"/>\n",
ns_remove(q->sym->name), ns_add(q->sym->name, ns));
else if (is_XML(q->info.typ))
fprintf(fd, " <part name=\"parameters\"
type=\"xsd:anyType\"/>\n");
else
fprintf(fd, " <part name=\"%s\" type=\"%s\"/>\n",
ns_remove(q->sym->name), wsdl_type(q->info.typ, ns));
}
}
}
if (mimein)
fprintf(fd, " <part name=\"attachments\"
type=\"xsd:base64Binary\"/>\n");
fprintf(fd, "</message>\n\n");
fflush(fd);
q = (Entry*)p->info.typ->ref;
if (q && is_transient(q->info.typ))
;
else if (q && !is_response(q->info.typ))
{ fprintf(fd, "<message name=\"%sResponse\">\n",
ns_remove(p->sym->name));
if (is_document(method_style))
fprintf(fd, " <part name=\"parameters\"
element=\"%sResponse\"/>\n", ns_add(p->sym->name, ns));
else if (is_literal(method_response_encoding))
fprintf(fd, " <part name=\"%s\" element=\"%s\"/>\n",
ns_remove(q->sym->name), ns_add(q->sym->name, ns));
else if (is_XML(q->info.typ->ref))
fprintf(fd, " <part name=\"parameters\" type=\"xsd:anyType\"/>\n");
else
fprintf(fd, " <part name=\"%s\" type=\"%s\"/>\n",
ns_remove(q->sym->name), wsdl_type(q->info.typ, ns));
if (mimeout)
fprintf(fd, " <part name=\"attachments\"
type=\"xsd:base64Binary\"/>\n");
fprintf(fd, "</message>\n\n");
}
else if (q && q->info.typ->wsdl == False)
{ q->info.typ->wsdl = True;
fprintf(fd, "<message name=\"%s\">\n",
ns_remove(((Tnode*)q->info.typ->ref)->id->name));
if (is_document(method_style))
{ if (has_ns_eq(NULL, ((Entry*)p->info.typ->ref)->sym->name))
fprintf(fd, " <part name=\"parameters\" element=\"%s\"/>\n",
ns_convert(((Entry*)p->info.typ->ref)->sym->name));
else if (is_invisible(((Tnode*)q->info.typ->ref)->id->name))
{ r = ((Table*)((Tnode*)q->info.typ->ref)->ref)->list;
if (r)
fprintf(fd, " <part name=\"parameters\" element=\"%s\"/>\n",
ns_add(r->sym->name, ns));
}
else
fprintf(fd, " <part name=\"parameters\" element=\"%s\"/>\n",
ns_convert(((Tnode*)q->info.typ->ref)->id->name));
}
else
{ if (((Tnode*)q->info.typ->ref)->ref)
{ for (q = ((Table*)((Tnode*)q->info.typ->ref)->ref)->list; q; q =
q->next)
{ if (!is_transient(q->info.typ) && !(q->info.sto & Sattribute)
&& q->info.typ->type != Tfun && !is_repetition(q) && !is_anytype(q))
if (is_literal(method_response_encoding))
fprintf(fd, " <part name=\"%s\" element=\"%s\"/>\n",
ns_remove(q->sym->name), ns_add(q->sym->name, ns));
else if (is_XML(q->info.typ))
fprintf(fd, " <part name=\"parameters\"
type=\"xsd:anyType\"/>\n");
else
fprintf(fd, " <part name=\"%s\" type=\"%s\"/>\n",
ns_remove(q->sym->name), wsdl_type(q->info.typ, ns));
}
}
}
if (mimeout)
fprintf(fd, " <part name=\"attachments\"
type=\"xsd:base64Binary\"/>\n");
fprintf(fd, "</message>\n\n");
}
fflush(fd);
}
}
if (custom_header)
{ Table *r;
fprintf(fd, "<message name=\"%sHeader\">\n", name);
r = entry(classtable, lookup("SOAP_ENV__Header"))->info.typ->ref;
if (r)
for (q = r->list; q; q = q->next)
if (!is_transient(q->info.typ) && !(q->info.sto & Sattribute) &&
q->info.typ->type != Tfun && !is_repetition(q) && !is_anytype(q))
fprintf(fd, " <part name=\"%s\" element=\"%s\"/>\n",
ns_remove(q->sym->name), ns_add(q->sym->name, ns));
fprintf(fd, "</message>\n\n");
}
if (custom_fault)
{ Table *r;
fprintf(fd, "<message name=\"%sFault\">\n", name);
r = entry(classtable, lookup("SOAP_ENV__Detail"))->info.typ->ref;
if (r)
for (q = r->list; q; q = q->next)
if (!is_transient(q->info.typ) && !is_repetition(q) && !is_anytype(q)
&& !(q->info.sto & Sattribute) && q->info.typ->type != Tfun && has_ns_eq(NULL,
q->sym->name))
fprintf(fd, " <part name=\"%s\" element=\"%s\"/>\n",
ns_remove(q->sym->name), ns_add(q->sym->name, ns));
fprintf(fd, "</message>\n\n");
}
if (sp)
{ for (m = sp->list; m; m = m->next)
{ if (m->mess&FAULT)
{ Method *m2;
int flag = 0;
for (m2 = sp->list; m2 && m2 != m; m2 = m2->next)
if (m2->mess&FAULT && !strcmp(m2->part, m->part))
flag = 1;
if (!flag)
{ if (typetable)
for (p = typetable->list; p; p = p->next)
if ((m->mess&FAULT) && is_eq(m->part, p->info.typ->sym->name))
break;
if (!p && classtable)
for (p = classtable->list; p; p = p->next)
if ((m->mess&FAULT) && is_eq(m->part, p->info.typ->id->name))
break;
if (p)
{ fprintf(fd, "<message name=\"%sFault\">\n", ns_remove(m->part));
fprintf(fd, " <part name=\"fault\" element=\"%s\"/>\n",
ns_convert(m->part));
fprintf(fd, "</message>\n\n");
}
else
{ sprintf(errbuf, "//gsoap %s method-fault %s %s directive does not
refer to class or typedef", sp->ns, m->name, m->part);
semwarn(errbuf);
}
}
}
}
}
fflush(fd);
if (sp && sp->port)
fprintf(fd, "<portType name=\"%s\">\n", sp->port);
else
fprintf(fd, "<portType name=\"%s\">\n", ns_cname(name, "PortType"));
for (p = t->list; p; p = p->next)
{ if (p->info.typ->type == Tfun && !(p->info.sto & Sextern) &&
has_ns_eq(ns, p->sym->name))
{ comment = NULL;
if (sp)
for (m = sp->list; m; m = m->next)
if (m->mess == COMMENT && is_eq_nons(m->name, p->sym->name))
comment = m->part;
fprintf(fd, " <operation name=\"%s\">\n", ns_remove(p->sym->name));
if (comment)
fprintf(fd, " <documentation>%s</documentation>\n", comment);
else
fprintf(fd, " <documentation>Service definition of function
%s</documentation>\n", p->sym->name);
if (get_response(p->info.typ))
fprintf(fd, " <input message=\"tns:%sRequest\"/>\n",
ns_remove(p->sym->name));
else
fprintf(fd, " <input message=\"tns:%s\"/>\n",
ns_remove(p->sym->name));
q = (Entry*)p->info.typ->ref;
if (q && is_transient(q->info.typ))
;
else if (q && !is_response(q->info.typ))
fprintf(fd, " <output message=\"tns:%sResponse\"/>\n",
ns_remove(p->sym->name));
else if (q)
fprintf(fd, " <output message=\"tns:%s\"/>\n",
ns_remove(((Tnode*)q->info.typ->ref)->id->name));
if (sp)
for (m = sp->list; m; m = m->next)
if ((m->mess&FAULT) && is_eq_nons(m->name, p->sym->name))
fprintf(fd, " <fault name=\"%s\" message=\"tns:%sFault\"/>\n",
ns_remove(m->part), ns_remove(m->part));
fprintf(fd, " </operation>\n");
}
}
fprintf(fd, "</portType>\n\n");
fprintf(fd, "<binding name=\"%s\" ", binding);
if (is_document(style))
if (sp && sp->port)
fprintf(fd, "type=\"tns:%s\">\n <SOAP:binding style=\"document\"",
sp->port);
else
fprintf(fd, "type=\"tns:%s\">\n <SOAP:binding style=\"document\"",
ns_cname(name, "PortType"));
else
if (sp && sp->port)
fprintf(fd, "type=\"tns:%s\">\n <SOAP:binding style=\"rpc\"",
sp->port);
else
fprintf(fd, "type=\"tns:%s\">\n <SOAP:binding style=\"rpc\"",
ns_cname(name, "PortType"));
if (sp && sp->transport)
fprintf(fd, " transport=\"%s\"/>\n", sp->transport);
else
fprintf(fd, " transport=\"http://schemas.xmlsoap.org/soap/http\"/>\n");
fflush(fd);
for (p = t->list; p; p = p->next)
{ if (p->info.typ->type == Tfun && !(p->info.sto & Sextern) &&
has_ns_eq(ns, p->sym->name))
{ action = "";
mimein = 0;
mimeout = 0;
method_style = style;
method_encoding = encoding;
method_response_encoding = NULL;
if (sp)
{ for (m = sp->list; m; m = m->next)
{ if (is_eq_nons(m->name, p->sym->name))
{ if (m->mess&MIMEIN)
mimein = 1;
if (m->mess&MIMEOUT)
mimeout = 1;
if (m->mess == ENCODING)
method_encoding = m->part;
else if (m->mess == RESPONSE_ENCODING)
method_response_encoding = m->part;
else if (m->mess == STYLE)
method_style = m->part;
else if (m->mess == ACTION)
action = m->part;
}
}
}
if (!method_response_encoding)
method_response_encoding = method_encoding;
fprintf(fd, " <operation name=\"%s\">\n", ns_remove(p->sym->name));
if (is_document(style))
{ if (is_document(method_style))
{ if (is_soap12())
fprintf(fd, " <SOAP:operation/>\n");
else if (*action == '"')
fprintf(fd, " <SOAP:operation soapAction=%s/>\n", action);
else
fprintf(fd, " <SOAP:operation soapAction=\"%s\"/>\n", action);
}
else if (is_soap12())
fprintf(fd, " <SOAP:operation style=\"rpc\"/>\n");
else if (*action == '"')
fprintf(fd, " <SOAP:operation style=\"rpc\" soapAction=%s/>\n",
action);
else
fprintf(fd, " <SOAP:operation style=\"rpc\"
soapAction=\"%s\"/>\n", action);
}
else
{ if (is_document(method_style))
{ if (is_soap12())
fprintf(fd, " <SOAP:operation style=\"document\"/>\n");
else if (*action == '"')
fprintf(fd, " <SOAP:operation style=\"document\"
soapAction=%s/>\n", action);
else
fprintf(fd, " <SOAP:operation style=\"document\"
soapAction=\"%s\"/>\n", action);
}
else if (is_soap12())
fprintf(fd, " <SOAP:operation style=\"rpc\"/>\n");
else if (*action == '"')
fprintf(fd, " <SOAP:operation style=\"rpc\" soapAction=%s/>\n",
action);
else
fprintf(fd, " <SOAP:operation style=\"rpc\"
soapAction=\"%s\"/>\n", action);
}
fprintf(fd, " <input>\n");
if (mimein)
fprintf(fd, " <MIME:multipartRelated>\n <MIME:part>\n");
q = entry(classtable, p->sym);
if (is_literal(method_encoding) || q && (q =
(((Table*)q->info.typ->ref)->list)) && q && is_XML(q->info.typ))
{ if (is_document(method_style))
fprintf(fd, " <SOAP:body parts=\"parameters\"
use=\"literal\"/>\n");
else
fprintf(fd, " <SOAP:body parts=\"parameters\" use=\"literal\"
namespace=\"%s\"/>\n", URI);
}
else
{ if (encoding && *encoding)
fprintf(fd, " <SOAP:body use=\"encoded\" namespace=\"%s\"
encodingStyle=\"%s\"/>\n", URI, encoding);
else if (method_encoding && *method_encoding)
fprintf(fd, " <SOAP:body use=\"encoded\" namespace=\"%s\"
encodingStyle=\"%s\"/>\n", URI, method_encoding);
else
fprintf(fd, " <SOAP:body use=\"encoded\" namespace=\"%s\"
encodingStyle=\"%s\"/>\n", URI, encURI);
if (!eflag)
{ sprintf(errbuf, "operation '%s' is not compliant with WS-I Basic
Profile 1.0a, reason: uses SOAP encoding", p->sym->name);
compliancewarn(errbuf);
}
}
if (custom_header)
{ int f = 0;
m = NULL;
if (sp)
for (m = sp->list; m; m = m->next)
if (is_eq_nons(m->name, p->sym->name) && (m->mess&HDRIN))
{ f = 1;
if (chkhdr(m->part))
fprintf(fd, " <SOAP:header use=\"literal\"
message=\"tns:%sHeader\" part=\"%s\"/>\n", name, ns_remove(m->part));
}
}
if (mimein)
{ if (sp)
{ for (m = sp->list; m; m = m->next)
{ if (is_eq_nons(m->name, p->sym->name) && (m->mess&MIMEIN))
fprintf(fd, " </MIME:part>\n <MIME:part>\n
<MIME:content part=\"attachments\" type=\"%s\"/>\n", m->part);
}
}
fprintf(fd, " </MIME:part>\n </MIME:multipartRelated>\n");
}
fprintf(fd, " </input>\n");
q = (Entry*)p->info.typ->ref;
if (!q || !q->info.typ->ref)
{ fprintf(fd, " </operation>\n");
continue;
}
fprintf(fd, " <output>\n");
if (mimeout)
fprintf(fd, " <MIME:multipartRelated>\n <MIME:part>\n");
if (is_literal(method_response_encoding) || is_XML(q->info.typ->ref))
{ if (is_document(method_style))
fprintf(fd, " <SOAP:body parts=\"parameters\"
use=\"literal\"/>\n");
else
fprintf(fd, " <SOAP:body parts=\"parameters\" use=\"literal\"
namespace=\"%s\"/>\n", URI);
}
else if (encoding && *encoding)
fprintf(fd, " <SOAP:body use=\"encoded\" namespace=\"%s\"
encodingStyle=\"%s\"/>\n", URI, encoding);
else if (method_response_encoding && *method_response_encoding)
fprintf(fd, " <SOAP:body use=\"encoded\" namespace=\"%s\"
encodingStyle=\"%s\"/>\n", URI, method_response_encoding);
else
fprintf(fd, " <SOAP:body use=\"encoded\" namespace=\"%s\"
encodingStyle=\"%s\"/>\n", URI, encURI);
if (custom_header)
{ int f = 0;
if (sp)
for (m = sp->list; m; m = m->next)
if (is_eq_nons(m->name, p->sym->name) && (m->mess&HDROUT))
{ f = 1;
if (chkhdr(m->part))
fprintf(fd, " <SOAP:header use=\"literal\"
message=\"tns:%sHeader\" part=\"%s\"/>\n", name, ns_remove(m->part));
}
}
if (mimeout)
{ if (sp)
{ for (m = sp->list; m; m = m->next)
{ if (is_eq_nons(m->name, p->sym->name) && (m->mess&MIMEOUT))
fprintf(fd, " </MIME:part>\n <MIME:part>\n
<MIME:content part=\"attachments\" type=\"%s\"/>\n", m->part);
}
}
fprintf(fd, " </MIME:part>\n </MIME:multipartRelated>\n");
}
fprintf(fd, " </output>\n");
if (sp)
for (m = sp->list; m; m = m->next)
if ((m->mess&FAULT) && is_eq_nons(m->name, p->sym->name))
fprintf(fd, " <fault name=\"%s\">\n <SOAP:fault name=\"%s\"
use=\"literal\"/>\n </fault>\n", ns_remove(m->part), ns_remove(m->part));
fprintf(fd, " </operation>\n");
fflush(fd);
}
}
fprintf(fd, "</binding>\n\n");
}
fprintf(fd, "<service name=\"%s\">\n", name);
if (sp && sp->documentation)
fprintf(fd, " <documentation>%s</documentation>\n", sp->documentation);
else
fprintf(fd, " <documentation>gSOAP "VERSION" generated service
definition</documentation>\n");
if (executable)
fprintf(fd, " <port name=\"%s\" binding=\"tns:%s\">\n <SOAP:address
location=\"%s/%s\"/>\n </port>\n</service>\n\n</definitions>\n", name, binding,
URL, executable);
else
fprintf(fd, " <port name=\"%s\" binding=\"tns:%s\">\n <SOAP:address
location=\"%s\"/>\n </port>\n</service>\n\n</definitions>\n", name, binding,
URL);
}
--
Summary: symbol2.c:2102: internal error: Segmentation fault when
i try to compile gSOAP in cross compilation
Product: gcc
Version: 3.2.1
Status: UNCONFIRMED
Severity: blocker
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sauvageon dot y at voila dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27053
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-07-19 3:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-06 8:07 [Bug c++/27053] New: symbol2.c:2102: internal error: Segmentation fault when i try to compile gSOAP in cross compilation sauvageon dot y at voila dot fr
2006-04-06 16:45 ` [Bug c++/27053] " pinskia at gcc dot gnu dot org
2006-04-07 3:18 ` pinskia at gcc dot gnu dot org
2006-04-18 3:50 ` bangerth at dealii dot org
2006-07-19 3:55 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).