Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6523947
Votes 1
Synopsis Specific manifest required for bin/*.exe files if build was performed using VS2005/VS2008
Category java:build
Reported Against
Release Fixed
State 7-Fix in Progress, bug
Priority: 3-Medium
Related Bugs 6722527 , 6754862 , 6759959 , 6759984 , 6764892 , 6779412 , 6779491 , 6816366 , 6816374
Submit Date 12-FEB-2007
Description
The J2SE source code is completely ready to be built in VS2005. However, the binaries are not executable because of the lack of appropriate manifests in every bin/*.exe file if the build is performed using VS2005.

According to MSDN: "Any C/C++ program built in Visual C++ 2005 has to include a manifest..." (see http://msdn2. customer .com/en-us/library/ms235342.aspx).

The sample contents of the required manifest is as follows:

***************************************
<assembly xmlns="urn:schemas- customer -com:asm.v1" manifestVersion="1.0">
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name=" customer .VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
    </dependency>
</assembly>
***************************************

Please note that the CRT version and the publicKeyToken of the CRT DLL is provided here for  VS2005 Express Edition SP1.

It means that our Makefiles should find out the VS version used (be it 2003 or 2005, as well as the exact version number) while building, and supply the correct version number and the publicKeyToken to the manifest that should be linked into every *.exe file if the build is performed using VS2005.
Posted Date : 2007-02-12 15:10:00.0
Work Around
One may create a java.exe.manifest file of the following contents (CRT version number from VS2005 SP1):

************************************
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
	<dependency>
		<dependentAssembly>
			<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
		</dependentAssembly>
	</dependency>
</assembly>
************************************

and put the file into the bin/ directory (where the java.exe binary located). Having the manifest at that directory, it's possible to run the java.exe executable. To run other *.exe files (javac.exe, javaws.exe, etc.) it's necessary to create similar manifest files with appropriate file-names and put all of them into the bin/ directory.
Evaluation
VS2005 provides a manifest tool, mt.exe, which will allow us to insert the .manifest file generated by link.exe into the .dll.

It looks promising.

So far all the .manifest files generated by link.exe during the build depend on msvcr80.dll, so we are OK if we can cover that.
Posted Date : 2008-03-04 06:33:39.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang