For the complete documentation index, see llms.txt. This page is also available as Markdown.

IDAClang to TILIB Migration Guide

The three-line rule

Almost the whole migration is mechanical:

  1. idaclang <clang args> file.h becomes tilib -c -TC -hfile.h out.til

  2. Every clang argument gets a -CT prefix, one -CT per token: -isysroot /path -> -CT-isysroot -CT/path. Exceptions: -I and -D are native TILIB switches already forwarded to clang, so those move over unchanged (drop nothing, add nothing).

  3. --idaclang-tilname X becomes the positional output argument, --idaclang-tildesc "X" becomes -t"X". Most other --idaclang-* options either vanish or became the default.

Option mapping table

idaclang
tilib
note

<clang arg>

-CT<clang arg>

one -CT per token; unfiltered, same freedom as idaclang

-I dir, -Ddef

-Idir, -Ddef

native; TILIB appends them to the clang command line itself

-x c++

-P

-P only picks -xc++ over -xc in the language guess; a no-op if you pass -CT-x... yourself

--idaclang-tilname <path>

positional out.til

mandatory now, there is no <header>.til default

--idaclang-tildesc <desc>

-t<desc>

if omitted, the description defaults to the header filename

--idaclang-macros <path>

-m<path>

plus -M<path> to generate the .mac file, which idaclang could not do

--idaclang-mangle-format <f>

-G<f>

same underlying mangling-format mechanism

--idaclang-log-argv

-v

prints CLANG command line: ...

--idaclang-log-ast, -macros, -udts, -files, -target, -predefined, -warnings, -all

gone

no replacement; -v and -z are the debugging tools

--idaclang-parse-static

default

functions with internal linkage are always stored

--idaclang-opaqify-objc

default

in Objective-C modes id and Class become void *, SEL becomes const char *. NSString is no longer remapped

--idaclang-smptrs <list>

none

TILIB has no smart-pointer flattening switch, and does not read CLANG_SMART_POINTERS from idaclang.cfg

--idaclang-extra-c-mangling

none

removed together with the old parser API

Last updated

Was this helpful?