[all-commits] [llvm/llvm-project] 3bdbf4: [z/OS] Add z/OS archive reading support (#187110)

Uyiosa Iyekekpolor via All-commits all-commits at lists.llvm.org
Tue May 12 06:44:33 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3bdbf49065ee3b97606d22ba69399a1548011cb0
      https://github.com/llvm/llvm-project/commit/3bdbf49065ee3b97606d22ba69399a1548011cb0
  Author: Uyiosa Iyekekpolor <96444432+uyoyo0 at users.noreply.github.com>
  Date:   2026-05-12 (Tue, 12 May 2026)

  Changed paths:
    M llvm/include/llvm/Object/Archive.h
    M llvm/lib/Object/Archive.cpp
    M llvm/lib/Object/ArchiveWriter.cpp
    A llvm/test/Object/Inputs/generate_zos_archive.py
    A llvm/test/Object/zos-archive-read.test

  Log Message:
  -----------
  [z/OS] Add z/OS archive reading support (#187110)

Add support for reading `z/OS` archives, which use EBCDIC-encoded header
fields and an EBCDIC magic string. The `z/OS` archive format shares the
same structural layout as traditional Unix archives but all text fields
(member names, timestamps, permissions, and symbol names) are in EBCDIC.
This patch adds:

 - `K_ZOS` archive kind 
- `ZOSArchiveMemberHeader`: converts EBCDIC header fields to ASCII on
read
- `ZOSArchive`: parses the __.SYMDEF symbol table, converting EBCDIC
symbol names to ASCII
- Updates to symbol table traversal for `K_ZOS`, which uses big-endian
4-byte offsets paired with 4-byte attribute words per symbol
 
 This is part 2 of a patch series adding `z/OS` archive support to LLVM.
 
 Part 1: #186854



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list