Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


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 <lohmaier+LibreOffice@googlemail.com>
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.



Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.