Closed Bug 373245 (winable) Opened 15 years ago Closed 14 years ago

Building accessibility APIs with VC9 March CTP fails due to winable.h and oleacc.idl being in the wrong folder

Categories

(Core :: Disability Access APIs, defect)

x86
Windows Vista
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: netrolller.3d, Assigned: aaronlev)

References

(Blocks 1 open bug, )

Details

Attachments

(1 file)

Attempting to build with a default install of VC9 (March CTP) fails when building the Accessibility component (IA2). This is due to that the files winable.h and oleacc.idl are not part of the Windows SDK anymore. One can still build Mozilla with the new VC9 on the other hand, because the 2 include files are present in the folder <Visual Studio install path>\VC\include (they should be in C:\Program Files\Microsoft SDKs\Windows\6.0\include, copying the fiels there fixes the build), but it is likely that the presence of these files is simply an installer bug, and they will be completely removed from VC9 in a later CTP. (They are deprecated, see attached URL.)
A related note is that IA2 is now built automatically (it didn't build a few weeks ago with the January CTP), but this might be due to a Mozilla change, and not a VC9 change. (Note that I am still using my previously set up Cygwin build system, and not the new MozillaBuild, because I didn't want to lose my Cygwin hacks.)

A good solution would be removing references to these files and using the files described at the URL instead, or we might make the build system pick up the files from VC\include somehow, but the second approach may not be future-proof, since the 2 files are probably there by accident.
Blocks: ia2
winable.h is used not only in accessibility module and it wasn't introduced by IA2 support (http://lxr.mozilla.org/mozilla/search?string=winable.h). So winable.h related bug is rather common mozilla bug than bug in accessibility module. But oleacc.idl dependency has been introduced in IA2 interfaces. Since IA2 interface are distributed by FSO then I'll ask them to remove this dependency. After that we can do changes in mozilla code I guess.
Winuser.h is supposed to be used in place of winable.h, per MSDN. Is that feasible?
Stefanik, is this still a bug in recent VC 9's?
Unable to test due to lack of HDD space. I'm still waiting for my new 250GB HDD to arrive.
Stefanik, did you get your new hard drive yet? Any chance to test?
No, I think I will only get it next month, as I must first replace my broken motherboard.
It's still a bug, I just verified that.
(In reply to comment #2)
> Winuser.h is supposed to be used in place of winable.h, per MSDN. Is that
> feasible?

That builds, at least with VC9.

For some reason nsKeyboardLayout.cpp does it like this though:

#include <winuser.h>
#ifndef WINABLEAPI
#include <winable.h>
#endif

Is that necessary for older versions of VC?
I removed
 -  rpcndr.lib \

On MSDN I learned:

The Windows SDK no longer ships with rpcndr.lib. Try linking against rpcrt4.lib, it replaces the functionality of rpcndr.lib.

Will this change break us when we're linking against older SDKs?
Attachment #285926 - Attachment description: Some changes for VC9, need to test with older versions of VC → Some changes for VC9, still works in VC8, have not tested everywhere
Attachment #285926 - Flags: review?(benjamin)
Comment on attachment 285926 [details] [diff] [review]
Some changes for VC9, still works in VC8, have not tested everywhere

Does this patch continue to build with VC8?
Yes.
Benjamin, yes it works with VC8
Attachment #285926 - Flags: review?(benjamin) → review+
Comment on attachment 285926 [details] [diff] [review]
Some changes for VC9, still works in VC8, have not tested everywhere

It would be good to allow building Firefox 3 with the upcoming release of VC9.
Attachment #285926 - Flags: approval1.9?
Attachment #285926 - Flags: approval1.9? → approval1.9+
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.