Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] MSVC build for 5.08 installer progress report

Date2008-02-16 22:05
FromMichael Gogins
SubjectRe: [Cs-dev] MSVC build for 5.08 installer progress report
The manifests are automatically generated by the Microsoft compiler. But they are not automatically embedded. 

I added the SCons rules mentioned below to SConstruct so that SConstruct does automatically embed the manifests in the binaries. It is quick and painless.

There may also be a linker option to mark the executable as not using manifests or side by side assemblies. I am not sure which is the best way to go. I probably would lean towards a local side by side assembly cache.

I have installed Visual C++ 2008 and am rebuilding with that now. So far the rebuild is sailing along without errors. I am curious whether Csound will run faster with 2008.

Regards,
Mike

-----Original Message-----
>From: victor 
>Sent: Feb 16, 2008 3:59 PM
>To: Michael Gogins , Developer discussions 
>Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>
>Did you have to write all these manifests? What's involved?
>----- Original Message ----- 
>From: "Michael Gogins" 
>To: "Developer discussions" 
>Sent: Saturday, February 16, 2008 8:41 PM
>Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>
>
>>I don't know if we need one for every .exe and .dll -- but with the new 
>>MSVC build, we are getting one for every .exe and .dll.
>>
>> The manifest is needed because to quote Microsoft:
>>
>> Side-by-side assemblies are Win32 assemblies described by manifests and 
>> authored so that multiple versions may run at the same time without 
>> conflicting with each other. When developers author manifests and write 
>> applications to use side-by-side assembly sharing, multiple assembly 
>> versions can run on the system and each application can specify which 
>> assembly version it should use.
>>
>> Translation: 'assemblies' are 'binaries,' 'side-by-side assemblies' means 
>> directories with GUIDs in directory names so that different directories 
>> can each contain their own version of the same library.
>>
>> In other words, an embedded manifest does pretty much the same thing as an 
>> soname on a Posix system. The difference is that because the actual 
>> filenames for the different side by side assemblies are identical, each 
>> has to be in its own uniquely named directory. The manifest tells the OS 
>> which version comes from what directory.
>>
>> Hope this helps,
>> Mike
>>
>> -----Original Message-----
>>>From: victor 
>>>Sent: Feb 16, 2008 2:04 PM
>>>To: Michael Gogins , Developer discussions 
>>>
>>>Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>>>
>>>yes, that is strange, because both _csnd and _CsoundAC are also
>>>dynamic loaded by the executable (rather than linked).
>>>
>>>I am confused as to why the manifest is needed. Could you explain
>>>it a little more. Would we need one for  every DLL built with
>>>MSVC?
>>>
>>>Victor
>>>
>>>
>>>----- Original Message ----- 
>>>From: "Michael Gogins" 
>>>To: "Developer discussions" 
>>>Sent: Saturday, February 16, 2008 6:44 PM
>>>Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>>>
>>>
>>>> Because they are dynamically loaded, and the runtime libraries would
>>>> already have been loaded by the host. Just guessing.
>>>>
>>>> Regards,
>>>> Mike
>>>>
>>>> -----Original Message-----
>>>>>From: victor 
>>>>>Sent: Feb 16, 2008 8:09 AM
>>>>>To: Developer discussions 
>>>>>Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>>>>>
>>>>>And another question, do the opcodes require the same
>>>>>type of thing? If not why, as they are DLL modules as well.
>>>>>
>>>>>Victor
>>>>>----- Original Message ----- 
>>>>>From: "victor" 
>>>>>To: "Developer discussions" 
>>>>>Sent: Saturday, February 16, 2008 1:06 PM
>>>>>Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>>>>>
>>>>>
>>>>>>I see, and gcc does that extra bit of linking itself, does it?
>>>>>>
>>>>>> Victor
>>>>>> ----- Original Message ----- 
>>>>>> From: "Michael Gogins" 
>>>>>> To: "Developer discussions" 
>>>>>> Sent: Saturday, February 16, 2008 12:59 PM
>>>>>> Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>>>>>>
>>>>>>
>>>>>>> The problem with Python modules failing to import was that the older
>>>>>>> SConstruct did not embed the manifest into the binaries. For that you
>>>>>>> need
>>>>>>> run mt, the manifest tool.
>>>>>>>
>>>>>>> The updated SConstruct does embed the manifests, and csnd and 
>>>>>>> CsoundAC
>>>>>>> do
>>>>>>> now import. The following lines do the trick (all build environments
>>>>>>> inherit
>>>>>>> from commonEnvironment):
>>>>>>>
>>>>>>> commonEnvironment['LINKCOM'] = [commonEnvironment['LINKCOM'],
>>>>>>> 'mt.exe -nologo -manifest
>>>>>>> ${TARGET}.manifest -outputresource:$TARGET;1']
>>>>>>> commonEnvironment['SHLINKCOM'] = [commonEnvironment['SHLINKCOM'],
>>>>>>> 'mt.exe -nologo -manifest
>>>>>>> ${TARGET}.manifest -outputresource:$TARGET;2']
>>>>>>>
>>>>>>> Regards,
>>>>>>> Mike
>>>>>>>
>>>>>>>
>>>>>>> ----- Original Message ----- 
>>>>>>> From: "victor" 
>>>>>>> To: "Developer discussions" 
>>>>>>> Sent: Saturday, February 16, 2008 5:23 AM
>>>>>>> Subject: Re: [Cs-dev] MSVC build for 5.08 installer progress report
>>>>>>>
>>>>>>>
>>>>>>>> What are/were the problems with the Python module (cnsd and/or
>>>>>>>> CsoundAC)?
>>>>>>>> ----- Original Message ----- 
>>>>>>>> From: "Michael Gogins" 
>>>>>>>> To: "Developer discussions" 
>>>>>>>> Sent: Saturday, February 16, 2008 4:03 AM
>>>>>>>> Subject: [Cs-dev] MSVC build for 5.08 installer progress report
>>>>>>>>
>>>>>>>>
>>>>>>>>> Basically, everything is going fairly fast now.
>>>>>>>>>
>>>>>>>>> Everything builds except the OSC opcodes and the Pure Data 
>>>>>>>>> external.
>>>>>>>>> I
>>>>>>>>> am
>>>>>>>>> confident that I will also be able to build both of these.
>>>>>>>>>
>>>>>>>>> Csound runs, makes sound, and is debuggable -- it is true it is 
>>>>>>>>> much
>>>>>>>>> more
>>>>>>>>> easily debuggable than the MinGW build. csound5gui runs and makes
>>>>>>>>> sound.
>>>>>>>>> winsound runs.
>>>>>>>>>
>>>>>>>>> The Python interface runs.
>>>>>>>>>
>>>>>>>>> I now need to test the other stuff to see if it still works, and 
>>>>>>>>> try
>>>>>>>>> debugging a Python module, and fix up the installer Python issue.
>>>>>>>>>
>>>>>>>>> There also will be a manifest/runtime library DLL issue, but I 
>>>>>>>>> think
>>>>>>>>> I
>>>>>>>>> can
>>>>>>>>> fix it this time by including the runtime DLLs in properly named
>>>>>>>>> directories
>>>>>>>>> in the installation tree.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -------------------------------------------------------------------------
>>>>>>>>> This SF.net email is sponsored by: Microsoft
>>>>>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>>>>>> _______________________________________________
>>>>>>>>> Csound-devel mailing list
>>>>>>>>> Csound-devel@lists.sourceforge.net
>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>>>>>
>>>>>>>>
>>>>>>>> -------------------------------------------------------------------------
>>>>>>>> This SF.net email is sponsored by: Microsoft
>>>>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>>>>> _______________________________________________
>>>>>>>> Csound-devel mailing list
>>>>>>>> Csound-devel@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>>>>
>>>>>>>
>>>>>>> -------------------------------------------------------------------------
>>>>>>> This SF.net email is sponsored by: Microsoft
>>>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>>>> _______________________________________________
>>>>>>> Csound-devel mailing list
>>>>>>> Csound-devel@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>>>
>>>>>>
>>>>>> -------------------------------------------------------------------------
>>>>>> This SF.net email is sponsored by: Microsoft
>>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>>> _______________________________________________
>>>>>> Csound-devel mailing list
>>>>>> Csound-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>>
>>>>>
>>>>>-------------------------------------------------------------------------
>>>>>This SF.net email is sponsored by: Microsoft
>>>>>Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>>http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>>_______________________________________________
>>>>>Csound-devel mailing list
>>>>>Csound-devel@lists.sourceforge.net
>>>>>https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>
>>>>
>>>>
>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by: Microsoft
>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>>
>>>-------------------------------------------------------------------------
>>>This SF.net email is sponsored by: Microsoft
>>>Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>_______________________________________________
>>>Csound-devel mailing list
>>>Csound-devel@lists.sourceforge.net
>>>https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>>
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel 
>
>
>-------------------------------------------------------------------------
>This SF.net email is sponsored by: Microsoft
>Defy all challenges. Microsoft(R) Visual Studio 2008.
>http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>_______________________________________________
>Csound-devel mailing list
>Csound-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/csound-devel




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net