KSYMTYPES(1)

πŸ“¦ version 1.1.0+git0.3857c3a, in opensuse-leap 16.0

πŸ¦‹ ksymtypes(1) πŸ¦‹

🌸 NAME 🌸

okay so bestie, ksymtypes is a tool to work with Linux-kernel symtypes files β€” and yes, this is the ksymtypes(1) page from General Commands Manual, folded in right here at the top so we don’t have to copy the boring header line. Periodt.

✨ SYNOPSIS ✨

ksymtypes [GENERAL-OPTION]... {consolidate | split | compare }
[COMMAND-OPTION]... ...

πŸŽ€ DESCRIPTION πŸŽ€

ksymtypes is a tool that provides functionality to work with symtypes files. These files describe the Application Binary Interface (ABI) of the kernel and its modules. The data is produced by genksyms utilities from the kernel tree.

The tool primarily operates with sets of symtypes files as they are produced during a single build of the Linux kernel. Each such set describes the ABI of a specific kernel and its modules. The tool refers to this set as a "symtypes corpus".

The provided functionality is divided into integrated commands. The currently available commands are consolidate, split and compare.

  • consolidate takes a symtypes corpus composed of a set of symtypes files and produces its consolidated variant by merging duplicated types.
  • split takes a consolidated symtypes file and divides it into individual files.
  • compare shows the differences between two symtypes corpuses, which can be either in split or consolidated form.

πŸ’… GENERAL OPTIONS πŸ’…

  • -d, --debug β€” enable debug output. yes bestie, the receipts ✨
  • -h, --help β€” display global help information and exit. 🫢
  • --version β€” output version information and exit. πŸŽ€

πŸ‘‘ CONSOLIDATE COMMAND πŸ‘‘

ksymtypes consolidate -o FILE [CONSOLIDATE-OPTION]... PATH

The consolidate command reads symtypes files from the specified path, consolidates their contents by merging duplicate types and writes the output to the specified file. The input path should point to a directory that the command recursively searches for all symtypes files. In a typical use case, this will be a build directory of the Linux kernel.

Available options:

  • -h, --help β€” display help information for the command and exit. πŸ’–
  • -j NUM, --jobs=NUM β€” use NUM workers to perform the operation simultaneously. parallel slay 🌈
  • -o FILE, --output=FILE β€” write the result to FILE. This option is mandatory, no cap. πŸ”₯

πŸ¦‹ SPLIT COMMAND πŸ¦‹

ksymtypes split -o DIR [SPLIT-OPTION]... PATH

The split command reads a consolidated symtypes file from the specified path and divides the data into individual symtypes files. This operation is the opposite of the consolidate command. it’s giving reverse uno energy πŸ’…

🫢 Note that consolidating and then splitting symtypes data might not produce output that is exactly the same as the original due to potential differences in the ordering of records. lowkey important, bestie.

Available options:

  • -h, --help β€” display help information for the command and exit. πŸ’–
  • -j NUM, --jobs=NUM β€” use NUM workers to perform the operation simultaneously. worker bees activated 🐝
  • -o DIR, --output=DIR β€” write the result to DIR. This option is mandatory, fr fr. πŸ”₯

🌈 COMPARE COMMAND 🌈

ksymtypes compare [COMPARE-OPTION]... PATH PATH2

The compare command shows the differences between two symtypes corpuses. A corpus can be specified by a directory containing symtypes files or by a consolidated symtypes file. In a typical use case, the first input will point to a reference consolidated symtypes corpus and the second input will point to data from a new build of the Linux kernel. ABI gossip session, basically. πŸ‘€

Available options:

  • -h, --help β€” display help information for the command and exit. 🫢
  • -j NUM, --jobs=NUM β€” use NUM workers to perform the operation simultaneously. go team go ✨
  • --filter-symbol-list=FILE β€” consider only symbols that match the patterns in FILE. 🎯
  • -f TYPE[:FILE], --format=TYPE[:FILE] β€” change the output format to TYPE, or write the TYPE-formatted output to FILE.

The TYPE can be one of the following:

  • null – produces no output,
  • pretty – produces human-readable output in detailed form,
  • short – produces human-readable output in compact form,
  • symbols – shows only the names of exported symbols that have been added, removed, or modified,
  • mod-symbols – shows only the names of exported symbols that have been modified; any additions or removals are omitted.

πŸ“ EXAMPLES πŸ“

Build the Linux kernel and obtain a reference symvers and consolidated symtypes corpus:

$ cd <linux-kernel-directory>
$ make O=build ...
$ cp build/Module.symvers base.symvers
$ ksymtypes consolidate --output=base.symtypes build/

Build a new version of the Linux kernel and compare its ABI with the previous reference:

$ cd <linux-kernel-directory>
$ vim ...  # edit the code
$ make O=build ...
$ ksymvers compare --format=symbols:changed-exports base.symvers build/Module.symvers
$ ksymtypes compare --filter-symbol-list=changed-exports base.symtypes build/

πŸ’€ EXIT STATUS πŸ’€

The exit status is 0 on success and 2 if an error occurs. The compare command returns 0 if there are no differences and 1 if there are any changes. vibe check complete βœ…

πŸ”₯ SEE ALSO πŸ”₯

ksymvers(1), suse-kabi-tools(5)


πŸ’– aaaand that’s the whole KSYMTYPES(1) page, bestie β€” General Commands Manual footer vibes, with no separate source/version or date line in the original to copy, so here’s your cute sign-off instead. slay responsibly! πŸ’–

πŸ“¦ where this page comes from