On 16.04.2015 10:09, Andras Timar wrote: > Hi, > > In the past few days I made some experiments with LibreOffice 4.4. > configure suggests that SDK version 7.1A should be used for targetting > Windows XP. configure also says that SDK version 7.1A is not known to > work with VS2013, and it is true. I could not build LibreOffice 4.4 > with VS2013 and SDK 7.1A, there were many compilation errors.
that must be specific to the 4.4 branch? Win-x86_62-TDF on master builds with ´--with-windows-sdk=7.1A´ it's possible that the 4.4 branch does not actually fully support visual studio 2013. seems it's missing this commit - which should explain something: commit 5225cd46919a028add3772564fd0d63e99078820 Author: Christian Lohmaier <[email protected]> AuthorDate: Wed Dec 10 15:21:30 2014 +0100 define _USING_V110_SDK71_ when building with VS2013 against 7.1A SDK perhaps looking through master changelog and searching for "2013" will turn up more things... > I found an article: > https://tedwvc.wordpress.com/2014/01/01/how-to-target-xp-with-vc2012-or-vc2013-and-continue-to-use-the-windows-8-x-sdk/ > > It says: > "Say we’ve decided to use Windows 8.x SDK while still allowing our app > to run on XP. Are there any options available? i.e. can you keep using > the v110/v120 toolsets instead of the v110_xp/v120_xp toolsets? Yes, > it turns out that Microsoft left a nice loophole in the code to do > exactly that. Notice the mysterious define in the block of code above > named _ATL_XP_TARGETING. Turns out this is an alternative way to > support XP targeting while _USING_V110_SDK71_ is NOT defined. So if > you really want to support XP while using Windows 8.x SDK, we simply > need to ensure our code is built with _ATL_XP_TARGETING defined. The > easiest way to do this is to add a /D_ATL_XP_TARGETING flag to our > C/C++ command line options in project properties." hmm... relying on some undocumented macro with unspecified effect that could change in next VS service pack sounds a bit dubious... probably there are other things in the headers that the macro won't affect? > I added -D_ATL_XP_TARGETING flag to > solenv/gbuild/platform/com_MSC_defs.mk instead of the last conditional > flag $(if $(findstring > 110_70,$(VCVER)_$(WINDOWS_SDK_VERSION)),-D_USING_V110_SDK71_), and I > built LibreOffice 4.4 with VS2013 and SDK 8.1. It started on Windows > XP. Then I reverted my patch, and made a full build again. > Surprisingly, the resulting build also started on Windows XP. > > So my question is: how is that possible? What config does result a > built which does not start on Windows XP then? i don't think the problem was starting on Windows XP - more likely that in some obscure cases some function is called that doesn't exist on XP. i don't remember reading anywhere what exactly in the 8.x SDK would make the resulting programs fail to run (or crash or whatever) on XP. > I have not tried this with master. What is the difference between > master and 4.4 in this regard? master is very clear about it - with 8.x SDK, sal library will use Vista-or-later functions instead of older ones that were deprecated in the 8.1 SDK, so soffice will not start. _______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
