Re: Error building SID

Dave Brolley <[email protected]> Wed, 31 Oct 2007 10:55:51 -0400
Newsgroups gmane.comp.emulators.sid.devel
Message-ID <[email protected]>
badiu raz wrote:
> Hy,
> I am trying to build SID but I still get errors no matter what I do.
> edefinition of `struct _fpstate'
> /usr/include/cygwin/signal.h
> :18: error: previous definition of `struct _fpstate'
>
> make[8]: *** [wmFPUemu_glue.lo] Error 1
>   
This appears to be a genuine conflict between the struct tag in signal.h 
and the one in sid/component/bochs/cpu/fpu/stubs/asm/sigcontext.h. I 
suspect that _fpstate has recently been added to the cygwin header. I'll 
forward this problem on to the author (who probably no longer reads this 
list) and to get his opinion on renaming the one in sigcontext.h
> make[5]: Entering directory `/cygdrive/d/sid/src/sid/component/families'
> Making all in mep
> make[6]: Entering directory `/cygdrive/d/sid/src/sid/component/families/mep'
> if /bin/sh ./libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"\" -DPACKAGE_
> TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"
> \" -DPACKAGE=\"sidcomp\" -DVERSION=\"0.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
>  -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAV
> E_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
> -DHAVE_DLF
> CN_H=1  -I. -I../../../.././sid/component/families/mep -I. -I../.. -I../../../in
> clude -I../../../.././sid/component/families/mep/../../../include -I../../../../
> ./sid/component/families/mep/toshapi    -g -O2 -MT  components.lo -MD
> -MP -MF ".d
> eps/components.Tpo" -c -o components.lo components.cxx; \
>         then mv -f ".deps/components.Tpo" ".deps/components.Plo"; else rm -f ".d
> eps/components.Tpo"; exit 1; fi
>  g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE
> _STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"sidcomp\"
> -DVERSION=\" 0.1\" -D
> STDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE
> _STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDI
> NT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -I.
> -I../../../.././sid/component/fami
> lies/mep -I. -I../.. -I../../../include -I../../../.././sid/component/families/m
> ep/../../../include -I../../../.././sid/component/families/mep/toshapi -g -O2 -M
> T components.lo -MD -MP -MF .deps/components.Tpo -c  components.cxx -o
> components
> .o
> components.cxx:117: error: external linkage required for symbol 'mepfamily_compo
> nent_library' because of 'dllexport' attribute.
> make[6]: *** [components.lo] Error 1
> make[6]: Leaving directory `/cygdrive/d/sid/src/sid/component/families/mep'
>   
This one I can help you with. I've committed the attached patch which 
should correct the problem.

Dave
sid-dllexport.ChangeLog (text/plain, 145 B)
2007-10-31  Dave Brolley  <[email protected]>

        * components.cxx (mepfamily_component_library): Correct DLLEXPORT
        specification.
sid-dllexport.patch.txt (text/plain, 945 B)
Index: sid/component/families/mep/components.cxx
===================================================================
RCS file: /cvs/cvsfiles/devo/sid/component/families/mep/components.cxx,v
retrieving revision 1.15
diff -c -p -r1.15 components.cxx
*** sid/component/families/mep/components.cxx	22 Aug 2005 21:15:25 -0000	1.15
--- sid/component/families/mep/components.cxx	31 Oct 2007 14:42:02 -0000
*************** compMepFamilyDelete(component* c)
*** 112,120 ****
    // end-toshapi-destructors
  }
  
! extern const component_library mepfamily_component_library;
  
! const component_library mepfamily_component_library DLLEXPORT =
  {
    COMPONENT_LIBRARY_MAGIC,
    &compMepFamilyListTypes,
--- 112,120 ----
    // end-toshapi-destructors
  }
  
! DLLEXPORT extern const component_library mepfamily_component_library;
  
! const component_library mepfamily_component_library =
  {
    COMPONENT_LIBRARY_MAGIC,
    &compMepFamilyListTypes,