---
name: "secilc"
section: "8"
platform: "linux"
package: "secilc"
version: "3.8.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/secilc"
---

# secilc(8)

invoke the SELinux Common Intermediate Language (CIL) Compiler

## NAME

secilc - invoke the SELinux Common Intermediate Language (CIL) Compiler

## SYNOPSIS

**secilc** \[*OPTION*...\] *file*

## DESCRIPTION

*secilc* invokes the CIL compiler with the specified *argument*s to build a kernel binary policy. A **file\_contexts** file will also be built as described in the **FILE FORMAT** section of [**file\_contexts**(5)](/file_contexts/5.md).

## OPTIONS

- **-o, --output=\<file\>**

  Write binary policy to *file* (default: policy.*version*)

- **-f, --filecontext=\<file\>**

  Write file contexts to *file* (default: **file\_contexts**)

- **-t, --target=\<type\>**

  Specify target architecture. May be **selinux** or **xen** (default: **selinux**)

- **-M, --mls true\|false**

  Build an mls policy. Must be **true** or **false**. This will override the **(mls** *boolean***)** statement if present in the policy.

- **-c, --policyvers=\<version\>**

  Build a binary policy with a given *version* (default: depends on the systems SELinux policy *version*, see [**sestatus**(8)](/sestatus/8.md))

- **-U, --handle-unknown=\<action\>**

  How to handle unknown classes or permissions. May be **deny**, **allow**, or **reject** (default: **deny**). This will override the **(handleunknown** *action***)** statement if present in the policy.

- **-D, --disable-dontaudit**

  Do not add **dontaudit** rules to the binary policy.

- **-P, --preserve-tunables**

  Treat tunables as booleans.

- **-Q, --qualified-names**

  Allow names containing dots (qualified names). Blocks, blockinherits, blockabstracts, and in-statements will not be allowed.

- **-m, --multiple-decls**

  Allow some statements to be re-declared.

- **-N, --disable-neverallow**

  Do not check **neverallow** rules.

- **-G, --expand-generated**

  Expand and remove auto-generated attributes

- **-X, --attrs-size \<size\>**

  Expand type attributes with fewer than **\<SIZE\>** members.

- **-O, --optimize**

  Optimize final policy (remove redundant rules).

- **-v, --verbose**

  Increment verbosity level.

- **-h, --help**

  Display usage information.

## SEE ALSO

[**file\_contexts**(5)](/file_contexts/5.md), [**sestatus**(8)](/sestatus/8.md)

HTML documentation describing the CIL language statements is available starting with *docs/html/index.html*.

PDF documentation describing the CIL language statements is available at: *docs/pdf/CIL\_Reference\_Guide.pdf*.

There is a CIL Design Wiki at: **http://github.com/SELinuxProject/cil/wiki** that describes the goals and features of the CIL language.

## AUTHOR

**Richard Haines**
