qpdf / qpdf

qpdf: A content-preserving PDF document transformer
https://qpdf.sourceforge.io/
Apache License 2.0
3.4k stars 271 forks source link

5.1.1 binaries wont load on WinXP #35

Closed bulk88 closed 10 years ago

bulk88 commented 10 years ago

VC 2012 SP0 (?, but not SP1, google it) dropped WinXP support. 5.1.1 gives a "is not a valid win32 application" popup on WinXP. This specifically is because of " 6.00 operating system version" in the PE header of the binary. Going backwards through the sourceforge releases, 5.0.1 is the newest version I could run on WinXP. Could you please restore WinXP support in your distributed binaries?

C:\sources\qpdf-5.1.1\bin>dumpbin /headers qpdf.exe
Microsoft (R) COFF/PE Dumper Version 7.10.6030
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file qpdf.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
             14C machine (x86)
               4 number of sections
        52D5A7D7 time date stamp Tue Jan 14 16:10:47 2014
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             102 characteristics
                   Executable
                   32 bit word machine

OPTIONAL HEADER VALUES
             10B magic # (PE32)
           12.00 linker version
           10A00 size of code
            8200 size of initialized data
               0 size of uninitialized data
           10426 entry point (00410426)
            1000 base of code
           12000 base of data
          400000 image base (00400000 to 0041AFFF)
            1000 section alignment
             200 file alignment
            6.00 operating system version
            0.00 image version
            6.00 subsystem version
               0 Win32 version
           1B000 size of image
             400 size of headers
               0 checksum
               3 subsystem (Windows CUI)
            8140 DLL characteristics
                   RESERVED - UNKNOWN
                   RESERVED - UNKNOWN
                   Terminal Server Aware
          100000 size of stack reserve
            1000 size of stack commit
          100000 size of heap reserve
            1000 size of heap commit
               0 loader flags
              10 number of directories
               0 [       0] RVA [size] of Export Directory
           1708C [      64] RVA [size] of Import Directory
               0 [       0] RVA [size] of Resource Directory
               0 [       0] RVA [size] of Exception Directory
               0 [       0] RVA [size] of Certificates Directory
           1A000 [     D74] RVA [size] of Base Relocation Directory
           122A0 [      38] RVA [size] of Debug Directory
               0 [       0] RVA [size] of Architecture Directory
               0 [       0] RVA [size] of Global Pointer Directory
               0 [       0] RVA [size] of Thread Storage Directory
           15A78 [      40] RVA [size] of Load Configuration Directory
               0 [       0] RVA [size] of Bound Import Directory
           12000 [     274] RVA [size] of Import Address Table Directory
               0 [       0] RVA [size] of Delay Import Directory
               0 [       0] RVA [size] of COM Descriptor Directory
               0 [       0] RVA [size] of Reserved Directory

***CUT***
C:\sources\qpdf-5.0.1\bin>dumpbin /headers qpdf.exe
Microsoft (R) COFF/PE Dumper Version 7.10.6030
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file qpdf.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
             14C machine (x86)
               4 number of sections
        52617C56 time date stamp Fri Oct 18 14:22:14 2013
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             102 characteristics
                   Executable
                   32 bit word machine

OPTIONAL HEADER VALUES
             10B magic # (PE32)
           10.00 linker version
           14400 size of code
            8400 size of initialized data
               0 size of uninitialized data
           13C06 entry point (00413C06)
            1000 base of code
           16000 base of data
          400000 image base (00400000 to 0041EFFF)
            1000 section alignment
             200 file alignment
            5.01 operating system version
            0.00 image version
            5.01 subsystem version
               0 Win32 version
           1F000 size of image
             400 size of headers
               0 checksum
               3 subsystem (Windows CUI)
            8140 DLL characteristics
                   RESERVED - UNKNOWN
                   RESERVED - UNKNOWN
                   Terminal Server Aware
          100000 size of stack reserve
            1000 size of stack commit
          100000 size of heap reserve
            1000 size of heap commit
               0 loader flags
              10 number of directories
               0 [       0] RVA [size] of Export Directory
           1B1FC [      64] RVA [size] of Import Directory
               0 [       0] RVA [size] of Resource Directory
               0 [       0] RVA [size] of Exception Directory
               0 [       0] RVA [size] of Certificates Directory
           1E000 [     C90] RVA [size] of Base Relocation Directory
           162C0 [      1C] RVA [size] of Debug Directory
               0 [       0] RVA [size] of Architecture Directory
               0 [       0] RVA [size] of Global Pointer Directory
               0 [       0] RVA [size] of Thread Storage Directory
           199B0 [      40] RVA [size] of Load Configuration Directory
               0 [       0] RVA [size] of Bound Import Directory
           16000 [     29C] RVA [size] of Import Address Table Directory
               0 [       0] RVA [size] of Delay Import Directory
               0 [       0] RVA [size] of COM Descriptor Directory
               0 [       0] RVA [size] of Reserved Directory
**CUT**
jberkenbilt commented 10 years ago

I wasn't aware of this issue. I have a clean XP virtual machine for testing, but I guess I haven't tested since I upgraded the compiler. I'll make sure 5.1.2 works on XP if I can. Sounds like it's just a question of getting SP1. I hope to get 5.1.2 out soon.