Skip to content

upx/upx-test-build-with-zig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

             ooooo     ooo  ooooooooo.  ooooooo  ooooo
             `888'     `8'  `888   `Y88. `8888    d8'
              888       8    888   .d88'   Y888..8P
              888       8    888ooo88P'     `8888'
              888       8    888           .8PY888.
              `88.    .8'    888          d8'  `888b
                `YbodP'     o888o       o888o  o88888o


                The Ultimate Packer for eXecutables
                       https://upx.github.io

Test building UPX with 'zig cc'

This repository consists of a single GitHub Actions workflow file that builds UPX with a recent Zig binary testing 124 different build targets.

See Actions for actual build results and logs.

And visit https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html for some background info about zig cc.

Noteworthy open zig issues

Noteworthy changes that did improve 'zig cc'

Other noteworthy changes

  • older Windows versions (XP and Vista)
    • 2023-10-02 https://github.com/ziglang/zig/commit/15ce965 define _WIN32_WINNT based on target
      • INFO: this reveals that libunwind cannot be compiled for XP and Vista (i386 only)
        • libunwind needs AcquireSRWLockShared() (>= Windows Vista aka Windows 6)
        • on i386 libunwind also needs EnumProcessModules() from PSABI_VERSION 2, i.e >= Windows 7
    • 2024-01-xx: zig now targets ucrt instead of msvcrt, so Windows 7 is required anyway
      • TODO: is this really true?

Closed zig issues