Skip to content

Commit 70dc7ad

Browse files
committed
MSVC 2012+: Permit linking to 32-bit, MinGW-built libraries.
Notably, this permits linking to the 32-bit Perl binaries advertised on perl.org, namely Strawberry Perl and ActivePerl. This has a side effect of permitting linking to binaries built with obsolete MSVC versions. By default, MSVC 2012 and later require a "safe exception handler table" in each binary. MinGW-built, 32-bit DLLs lack the relevant exception handler metadata, so linking to them failed with error LNK2026. Restore the semantics of MSVC 2010, which omits the table from a given binary if some linker input lacks metadata. This has no effect on 64-bit builds or on MSVC 2010 and earlier. Back-patch to 9.3 (all supported versions). Reported by Victor Wagner. Discussion: https://postgr.es/m/20160326154321.7754ab8f@wagner.wagner.home
1 parent 1886899 commit 70dc7ad

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

src/tools/msvc/MSBuildProject.pm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,8 @@ sub WriteItemDefinitionGroup
320320
<GenerateMapFile>false</GenerateMapFile>
321321
<MapFileName>.\\$cfgname\\$self->{name}\\$self->{name}.map</MapFileName>
322322
<RandomizedBaseAddress>false</RandomizedBaseAddress>
323+
<!-- Permit links to MinGW-built, 32-bit DLLs (default before VS2012). -->
324+
<ImageHasSafeExceptionHandlers/>
323325
<SubSystem>Console</SubSystem>
324326
<TargetMachine>$targetmachine</TargetMachine>
325327
EOF

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy