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

* [Bug c++/27053] symbol2.c:2102: internal error: Segmentation fault when i try to compile gSOAP in  cross compilation
  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 ` pinskia at gcc dot gnu dot org
  2006-04-07  3:18 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-06 16:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2006-04-06 16:45 -------
3.2.1 is over 3 years old.  Can you try a newer compiler like 4.0.3?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27053


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug c++/27053] symbol2.c:2102: internal error: Segmentation fault when i try to compile gSOAP in  cross compilation
  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
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-07  3:18 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|blocker                     |normal


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27053


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug c++/27053] symbol2.c:2102: internal error: Segmentation fault when i try to compile gSOAP in  cross compilation
  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
  3 siblings, 0 replies; 5+ messages in thread
From: bangerth at dealii dot org @ 2006-04-18  3:50 UTC (permalink / raw)
  To: gcc-bugs



-- 

bangerth at dealii dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27053


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug c++/27053] symbol2.c:2102: internal error: Segmentation fault when i try to compile gSOAP in  cross compilation
  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
                   ` (2 preceding siblings ...)
  2006-04-18  3:50 ` bangerth at dealii dot org
@ 2006-07-19  3:55 ` pinskia at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-07-19  3:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2006-07-19 03:55 -------
No feedback in 3 months so closing.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |INVALID


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).