Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on Windows

Date2008-04-16 02:31
From"Michael Gogins"
SubjectRe: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on Windows
Having gotten past the problems with the _CsoundAC.pyd, I am now finding TCL 
symbols undefined in the Java interfaces shared library.

To clarify my original intention in SConstruct, the basic idea is to build 
everything into a shared or static csnd and CsoundAC libraries that is not 
specific to any particular interface language. That includes csound.hpp, 
CppSound, CsoundFile, the associated utility classes (-lcsnd), and all the
CsoundAC C++ classes (-lCsoundAC). This is all pure C or C++ code.

Then, each interface language can have its own shared library on top of 
that, bringing in its own particular SWIG-generated wrapper file. That way, 
each language is encapsulated inside of its own shared library.

Regards,
Mike


----- Original Message ----- 
From: "Michael Gogins" 
To: "Developer discussions" 
Sent: Tuesday, April 15, 2008 9:05 PM
Subject: Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on Windows


> There is still a problem with multiple definitions. Perhaps you are not
> building all the parts that go into the installer. This is my build script
> with all the options required to build all the parts for the installer:
>
> #!/bin/sh
>
> scons custom=custom-mingw.py usePortMIDI=1 useBufferOverflowLibrary=1
> useJack=0 buildCsoundVST=1 buildvst4cs=1 buildInterfaces=1 buildCsoundAC=1
> buildJavaWrapper=1 useOSC=1 buildPythonOpcodes=1 buildLoris=0
> buildStkOpcodes=1 buildWinsound=1 noFLTKThreads=0 buildPDClass=1
> buildVirtual=1 buildCsound5GUI=1 buildTclcsound=1 buildLua=1 useDouble=1
> dynamicCsoundLibrary=1 buildCSEditor=1 gcc4opt=nocona buildRelease=0
> bufferoverflowu=1 noDebug=0 $1 $2 $3 $4
>
> The problems with link line start as shown below.
>
> Regards,
> Mike
>
> g++ --subsystem:windows -shared -mwindows -mno-cygwin -Wl,--enable-auto-import
> -Wl,--enable-runtime-pseudo-reloc -o _CsoundAC.pyd fr
> ontends\CsoundAC\CsoundAC_wrap.o -L. -L. -LD:\usr\local\lib -L. -L. -LU:\libsndfile-1_0_17
> -LU:\portaudio\build\msvc\Win32\Release -
> LU:\portmidi\pm_win -LU:\portmidi\porttime\Release -LU:\portmidi\pm_win\Release
> -LU:\fltk-mingw\lib -LU:\zlib -LU:\libpng-1.2.24\.li
> bs -LU:\Python25\libs -LU:\LuaJIT-1.1.4 -LU:\Tcl\lib -LU:\fluidsynth\winbuild
> -LU:\dxsdk\Lib\x86 -LU:\liblo -LU:\pthreads\Pre-built.
> 2\lib -LU:\pd\bin -lCsoundAC -lpython25 -lfltk -lfltk_images -lfltk_png -lfltk_jpeg
> -lfltk_z -lsndfile -lcsound64 _csnd.pyd lib_csnd
> .a
> _csnd.def -lpython25 -lsndfile -lportaudio -lportmidi -lfltk -llo -lpng -lstdc++
> -lsupc++ -ladvapi32 -lcomctl32 -lcomdlg32 -lglu3
> 2 -lkernel32 -lmsvcrt -lodbc32 -lodbccp32 -lole32 -loleaut32 -lshell32 -luser32
> -luuid -lwinmm -lwinspool -lws2_32 -lwsock32 -ladvap
> i32 -lcomctl32 -lcomdlg32 -lglu32 -lkernel32 -lodbc32 -lodbccp32 -lole32 -loleaut32
> -lshell32 -luser32 -luuid -lwinmm -lwinspool -lw
> s2_32 -lwsock32 -lbufferoverflowu -Wl,--out-implib,lib_CsoundAC.a -Wl,--output-def,_CsoundAC.def
> Creating library file: lib_CsoundAC.a
> _csnd.pyd:iostream-inst.cc:(.text+0x60): multiple definition of
> `DllMainCRTStartup@12'
> d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/../../../dllcrt2.o:dllcrt1.c:(.text+0x60):
> first defined here
> _csnd.pyd:iostream-inst.cc:(.text+0x110): multiple definition of `atexit'
> d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/../../../dllcrt2.o:dllcrt1.c:(.text+0x110):
> first defined here
> _csnd.pyd:iostream-inst.cc:(.text+0x140): multiple definition of `_onexit'
> d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/../../../dllcrt2.o:dllcrt1.c:(.text+0x140):
> first defined here
> _csnd.pyd:iostream-inst.cc:(.text+0x170): multiple definition of
> `__gcc_register_frame'
> d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/crtbegin.o:cygming-crtbegin.c:(.text+0x0):
> first defined here
> _csnd.pyd:iostream-inst.cc:(.text+0x1e0): multiple definition of
> `__gcc_deregister_frame'
> d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/crtbegin.o:cygming-crtbegin.c:(.text+0x70):
> first defined here
> _csnd.pyd:iostream-inst.cc:(.text+0x230): multiple definition of `__main'
> d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/crtbegin.o:cygming-crtbegin.c:(.text+0xc0):
> first defined here
> _csnd.pyd:interfaces/python_interface_wrap.cc:2613: multiple definition of
> `Swig::GCItem::get_own() const'
> frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:2613:
> first defined here
> _csnd.pyd:interfaces/python_interface_wrap.cc:2917: multiple definition of
> `Swig::Director::swig_get_inner(char const*) const'
> frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:2917:
> first defined here
> _csnd.pyd:interfaces/python_interface_wrap.cc:2920: multiple definition of
> `Swig::Director::swig_set_inner(char const*, bool) const'
>
> frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:2920:
> first defined here
> _csnd.pyd:d:\utah\home\mkg\projects\csound-mingw-release/H/csound.hpp:72:
> multiple definition of `Csound::GetCsound()'
> frontends\CsoundAC\CsoundAC_wrap.o:d:\utah\home\mkg\projects\csound-mingw-release/H/csound.hpp:72:
> first defined here
> _csnd.pyd:interfaces/python_interface_wrap.cc:4699: multiple definition of
> `swig::PySwigIteratorOpen_T<__gnu_cxx::__normal_iterator<
> double*, std::vector > >, double,
> swig::from_oper >::incr(unsigned int)'
> frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:4057:
> first defined here
> _csnd.pyd:interfaces/python_interface_wrap.cc:4707: multiple definition of
> `swig::PySwigIteratorOpen_T<__gnu_cxx::__normal_iterator<
> double*, std::vector > >, double,
> swig::from_oper >::decr(unsigned int)'
> frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:4065:
> first defined here
> _csnd.pyd:interfaces/python_interface_wrap.cc:4699: multiple definition of
> `swig::PySwigIteratorOpen_T xx::__normal_iterator std::allocator > > >, double, swig::from_oper 
>  >::incr(unsig
> ned int)'
>
>
>
>
> ----- Original Message ----- 
> From: "victor" 
> To: "Developer discussions" 
> Sent: Tuesday, April 15, 2008 7:19 PM
> Subject: Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on 
> Windows
>
>
>> Well, to be fair, I did make one change in SConstruct (line 2107):
>>
>>        if getPlatform() != 'win32':
>>         acEnvironment.Prepend(LIBS = csndModule)
>>        else:  acEnvironment.Prepend(LIBS = 'csnd')
>>
>> I did not think it made any difference, but on reverting, I got the
>> same errors as you. The linker was trying to link to _csnd.pyd
>> and failing miserably. Now it seems to be correct (linking to csnd.dll).
>>
>> I am committing the changes as we speak
>>
>> Victor
>>
>> ----- Original Message ----- 
>> From: "Michael Gogins" 
>> To: "Developer discussions" 
>> Sent: Tuesday, April 15, 2008 11:35 PM
>> Subject: Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on
>> Windows
>>
>>
>>> Yes, as I said before, I tried building with SConstruct and it failed in
>>> the
>>> same way. I am going to try it again right now, as thoroughly as I can.
>>> It
>>> doesn't make sense.
>>>
>>> Regards,
>>> Mike
>>> ----- Original Message ----- 
>>> From: "victor" 
>>> To: "Developer discussions" 
>>> Sent: Tuesday, April 15, 2008 6:01 PM
>>> Subject: Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on
>>> Windows
>>>
>>>
>>>> Did you try building with SConstruct? I can build CsoundAC here without
>>>> any
>>>> problems
>>>> (on Windows).
>>>>
>>>> Victor
>>>>
>>>> ----- Original Message ----- 
>>>> From: "Michael Gogins" 
>>>> To: "Developer discussions" 
>>>> Sent: Tuesday, April 15, 2008 3:26 AM
>>>> Subject: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on 
>>>> Windows
>>>>
>>>>
>>>>> _csnd.pyd fails to link:
>>>>>
>>>>> g++ -shared -mwindows -mno-cygwin -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc
>>>>> -module -Wl,--add-stdcall-alias -o _csn
>>>>> d.pyd
>>>>> interfaces\python_interface_wrap.o -L. -L. -LD:\usr\local\lib -L. -L.  
>>>>> -LU:\libsndfile-1_0_17
>>>>> -LU:\portaudio\build\msvc\Win32\R
>>>>> elease -LU:\portmidi\pm_win -LU:\portmidi\porttime\Release -LU:\portmidi\pm_win\Release
>>>>> -LU:\fltk-mingw\lib -LU:\zlib -LU:\libpng-1.
>>>>> 2.24\.libs -LU:\Python25\libs -LU:\LuaJIT-1.1.4 -LU:\Tcl\lib -LU:\fluidsynth\winbuild
>>>>> -LU:\dxsdk\Lib\x86 -LU:\liblo -LU:\pthreads\Pr
>>>>> e-built.2\lib -LU:\pd\bin -lpython25 -lstdc++ -lcsound64 -lsndfile -lportaudio
>>>>> -lportmidi -lfltk -llo -lsndfile -ladvapi32 -lcomctl3
>>>>> 2 -lcomdlg32 -lglu32 -lkernel32 -lmsvcrt -lodbc32 -lodbccp32 -lole32 -loleaut32
>>>>> -lshell32 -luser32 -luuid -lwinmm -lwinspool -lws2_3
>>>>> 2 -lwsock32 -ladvapi32 -lcomctl32 -lcomdlg32 -lglu32 -lkernel32 -lodbc32
>>>>> -lodbccp32
>>>>> -lole32 -loleaut32 -lshell32 -luser32 -luuid -lw
>>>>> inmm -lwinspool -lws2_32 -lwsock32 -lbufferoverflowu -lwinmm csnd.dll
>>>>> libcsnd.a csnd.def -Wl,--out-implib,lib_csnd.a -Wl,--output-de
>>>>> f,_csnd.def
>>>>> Creating library file: lib_csnd.a
>>>>> d000000.o:(.idata$2+0x0): multiple definition of `_head_csnd_dll'
>>>>> libcsnd.a(d000000.o):(.idata$2+0x0): first defined here
>>>>> d000160.o:(.idata$7+0x0): multiple definition of `csnd_dll_iname'
>>>>> libcsnd.a(d000406.o):(.idata$7+0x0): first defined here
>>>>> Cannot export _ZTV10CsoundFile: symbol not found
>>>>> Cannot export _ZTV8CppSound: symbol not found
>>>>> collect2: ld returned 1 exit status
>>>>> scons: *** [_csnd.pyd] Error 1
>>>>> scons: building terminated because of errors.
>>>>>
>>>>> If I try to fix that by making csnd a static library, then the Python
>>>>> message callback in csnd, which brings in Python, is linked with
>>>>> CsoundVST.
>>>>> However, CsoundVST must never link with Python.
>>>>>
>>>>> If I try to fix that, then there are multiple Python import symbols in
>>>>> the
>>>>> CsoundAC link.
>>>>>
>>>>> There may be more problems, but that is where I quit.
>>>>>
>>>>> Regards,
>>>>> Mike
>>>>>
>>>>>
>>>>> -------------------------------------------------------------------------
>>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>>>> Don't miss this year's exciting event. There's still time to save 
>>>>> $100.
>>>>> Use priority code J8TL2D2.
>>>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>>>> _______________________________________________
>>>>> Csound-devel mailing list
>>>>> Csound-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>
>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>>> Don't miss this year's exciting event. There's still time to save $100.
>>>> Use priority code J8TL2D2.
>>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>> Don't miss this year's exciting event. There's still time to save $100.
>>> Use priority code J8TL2D2.
>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>> Don't miss this year's exciting event. There's still time to save $100.
>> Use priority code J8TL2D2.
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel 


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net