manifest files not installed under visual C++ 8

Bug #541266 reported by Jeff Hill
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
Fix Released
Wishlist
Janet B. Anderson

Bug Description

> But if I tried to build shared libraried, I
> must copy the manifest specification file for
> each exe or dll file into bin/win32-x86 manually.

This probably needs to be delt with.

Jeff

Dear Dr. Jeff and Dr. Vladimir,

Thank you very much.

I succeeded in the compilation after removing the TD from the fdopen specification. If I tried to build static libraries, there was no problem. But if I tried to build shared libraried, I must copy the manifest specification file for each exe or dll file into
bin/win32-x86 manually.

I also found that I can not execute the catools such as caget/cainfo/camonitor correctly. The only error message is "caget.exe has encountered a problem and needs to close."

Can you give any suggestion?

Thanks again.

Best Regards,

Guobao Shen
J-PARC Control Group

>
> I looked into this "w+bTD" verses "W+B".
>
> The purpose of this code is to open an identical type of
> temporary file on all OS. This particular problem is, of
> course, in Microsoft specific code working with previous
> versions, but not with Visual C++ 2005.
>
> The very latest documentation at MS with a 2005 time stamp on
> it lists "T"
> and "D" as valid Microsoft specific options to _fdopen. This
> therefore smells like a bug at MS. Nevertheless, the proposed
> change appears to work - not creating any permanent files on
> the disk. This is probably because roughly equivalent options
> are specified to the preceding open().
>
> We have committed the suggested change - ETA R3.14.8.
>
> Jeff
>
> > -----Original Message-----
> > From: Vladimir Sirotenko
> > Sent: Tuesday, November 22, 2005 9:34 AM
> > To: guobao shen; <email address hidden>
> > Subject: Re: EPICS base compiling using Visual C++ 2005 Express
> >
> > Try to do the following, it worked for us:
> >
> > Antelope failed to run correctly because it could not create a
> > temporary file.
> > Modify srclibComosiWIN32epicsTempFile.cpp and remove
> the TD from
> > the fdopen specification.
> >
> > pNewFile = _fdopen ( fd, "w+b" ); instead of pNewFile =
> > _fdopen ( fd, "w+bTD" );
> >
> > Vladimir
> >

Original Mantis Bug: mantis-231
    http://www.aps.anl.gov/epics/mantis/view_bug_page.php?f_id=231

Tags: 3.14 build
Revision history for this message
Jeff Hill (johill-lanl) wrote :

MS warning about manifest files:

Due to the requirement that Visual C++ projects produce an embedded (by default) Windows SxS manifest, manifest files in the project are automatically excluded from building with the Manifest Tool. It is recommended that the dependency information contained in any manifest files be converted to "#pragma comment(linker,"<insert dependency here>")" in a header file that is included from your source code. If your project already embeds a manifest in the RT_MANIFEST resource section through a resource (.rc) file, the line will need to be commented out before the project will build correctly.

Revision history for this message
Jeff Hill (johill-lanl) wrote :

Another one:

The single-threaded run-time library switches (/MLd, /ML) have been removed from the C++ compiler. The project has been automatically converted to use the corresponding multi-threaded run-time library switches (/MTd, /MT).

Revision history for this message
Jeff Hill (johill-lanl) wrote :

Do we have to have config files specific to each release of the bleeping ms compiler?

Revision history for this message
Janet B. Anderson (jba-aps) wrote :

Made the following changes to RULES_BUILD to install and clean manifest files.
These changes will appear in R3.14.8

146c146
< *.out MakefileInclude $(LOADABLE_SHRLIBNAME) \
---
> *.out MakefileInclude $(LOADABLE_SHRLIBNAME) *.manifest *.exp \
320a321,323
> ifdef WIN32
> @$(INSTALL_PRODUCT) -d -m 555 $<* $(INSTALL_BIN)
> else
321a325
> endif
345a350
>

Revision history for this message
Andrew Johnson (anj) wrote :

R3.14.8 released.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.