mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
6b90bd4ba4
This patch allows to build the whole kernel with GCC plugins. It was ported from grsecurity/PaX. The infrastructure supports building out-of-tree modules and building in a separate directory. Cross-compilation is supported too. Currently the x86, arm, arm64 and uml architectures enable plugins. The directory of the gcc plugins is scripts/gcc-plugins. You can use a file or a directory there. The plugins compile with these options: * -fno-rtti: gcc is compiled with this option so the plugins must use it too * -fno-exceptions: this is inherited from gcc too * -fasynchronous-unwind-tables: this is inherited from gcc too * -ggdb: it is useful for debugging a plugin (better backtrace on internal errors) * -Wno-narrowing: to suppress warnings from gcc headers (ipa-utils.h) * -Wno-unused-variable: to suppress warnings from gcc headers (gcc_version variable, plugin-version.h) The infrastructure introduces a new Makefile target called gcc-plugins. It supports all gcc versions from 4.5 to 6.0. The scripts/gcc-plugin.sh script chooses the proper host compiler (gcc-4.7 can be built by either gcc or g++). This script also checks the availability of the included headers in scripts/gcc-plugins/gcc-common.h. The gcc-common.h header contains frequently included headers for GCC plugins and it has a compatibility layer for the supported gcc versions. The gcc-generate-*-pass.h headers automatically generate the registration structures for GIMPLE, SIMPLE_IPA, IPA and RTL passes. Note that 'make clean' keeps the *.so files (only the distclean or mrproper targets clean all) because they are needed for out-of-tree modules. Based on work created by the PaX Team. Signed-off-by: Emese Revfy <re.emese@gmail.com> Acked-by: Kees Cook <keescook@chromium.org> Signed-off-by: Michal Marek <mmarek@suse.com>
260 lines
2.5 KiB
Text
260 lines
2.5 KiB
Text
*.a
|
|
*.aux
|
|
*.bc
|
|
*.bin
|
|
*.bz2
|
|
*.c.[012]*.*
|
|
*.cis
|
|
*.cpio
|
|
*.csp
|
|
*.dsp
|
|
*.dvi
|
|
*.elf
|
|
*.eps
|
|
*.fw
|
|
*.gcno
|
|
*.gcov
|
|
*.gen.S
|
|
*.gif
|
|
*.grep
|
|
*.grp
|
|
*.gz
|
|
*.html
|
|
*.i
|
|
*.jpeg
|
|
*.ko
|
|
*.ll
|
|
*.log
|
|
*.lst
|
|
*.lzma
|
|
*.lzo
|
|
*.mo
|
|
*.moc
|
|
*.mod.c
|
|
*.o
|
|
*.o.*
|
|
*.order
|
|
*.orig
|
|
*.out
|
|
*.patch
|
|
*.pdf
|
|
*.plist
|
|
*.png
|
|
*.pot
|
|
*.ps
|
|
*.rej
|
|
*.s
|
|
*.sgml
|
|
*.so
|
|
*.so.dbg
|
|
*.symtypes
|
|
*.tab.c
|
|
*.tab.h
|
|
*.tex
|
|
*.ver
|
|
*.xml
|
|
*.xz
|
|
*_MODULES
|
|
*_vga16.c
|
|
*~
|
|
\#*#
|
|
*.9
|
|
.*
|
|
.*.d
|
|
.mm
|
|
53c700_d.h
|
|
CVS
|
|
ChangeSet
|
|
GPATH
|
|
GRTAGS
|
|
GSYMS
|
|
GTAGS
|
|
Image
|
|
Module.markers
|
|
Module.symvers
|
|
PENDING
|
|
SCCS
|
|
System.map*
|
|
TAGS
|
|
aconf
|
|
af_names.h
|
|
aic7*reg.h*
|
|
aic7*reg_print.c*
|
|
aic7*seq.h*
|
|
aicasm
|
|
aicdb.h*
|
|
altivec*.c
|
|
asm-offsets.h
|
|
asm_offsets.h
|
|
autoconf.h*
|
|
av_permissions.h
|
|
bbootsect
|
|
bin2c
|
|
binkernel.spec
|
|
bootsect
|
|
bounds.h
|
|
bsetup
|
|
btfixupprep
|
|
build
|
|
bvmlinux
|
|
bzImage*
|
|
capability_names.h
|
|
capflags.c
|
|
classlist.h*
|
|
comp*.log
|
|
compile.h*
|
|
conf
|
|
config
|
|
config-*
|
|
config_data.h*
|
|
config.mak
|
|
config.mak.autogen
|
|
conmakehash
|
|
consolemap_deftbl.c*
|
|
cpustr.h
|
|
crc32table.h*
|
|
cscope.*
|
|
defkeymap.c
|
|
devlist.h*
|
|
dnotify_test
|
|
docproc
|
|
dslm
|
|
elf2ecoff
|
|
elfconfig.h*
|
|
evergreen_reg_safe.h
|
|
fixdep
|
|
flask.h
|
|
fore200e_mkfirm
|
|
fore200e_pca_fw.c*
|
|
gconf
|
|
gconf.glade.h
|
|
gen-devlist
|
|
gen_crc32table
|
|
gen_init_cpio
|
|
generated
|
|
genheaders
|
|
genksyms
|
|
*_gray256.c
|
|
hpet_example
|
|
hugepage-mmap
|
|
hugepage-shm
|
|
ihex2fw
|
|
ikconfig.h*
|
|
inat-tables.c
|
|
initramfs_list
|
|
int16.c
|
|
int1.c
|
|
int2.c
|
|
int32.c
|
|
int4.c
|
|
int8.c
|
|
kallsyms
|
|
kconfig
|
|
keywords.c
|
|
ksym.c*
|
|
ksym.h*
|
|
kxgettext
|
|
lex.c
|
|
lex.*.c
|
|
linux
|
|
logo_*.c
|
|
logo_*_clut224.c
|
|
logo_*_mono.c
|
|
lxdialog
|
|
mach-types
|
|
mach-types.h
|
|
machtypes.h
|
|
map
|
|
map_hugetlb
|
|
mconf
|
|
miboot*
|
|
mk_elfconfig
|
|
mkboot
|
|
mkbugboot
|
|
mkcpustr
|
|
mkdep
|
|
mkprep
|
|
mkregtable
|
|
mktables
|
|
mktree
|
|
modpost
|
|
modules.builtin
|
|
modules.order
|
|
modversions.h*
|
|
nconf
|
|
ncscope.*
|
|
offset.h
|
|
oui.c*
|
|
page-types
|
|
parse.c
|
|
parse.h
|
|
patches*
|
|
pca200e.bin
|
|
pca200e_ecd.bin2
|
|
perf.data
|
|
perf.data.old
|
|
perf-archive
|
|
piggyback
|
|
piggy.gzip
|
|
piggy.S
|
|
pnmtologo
|
|
ppc_defs.h*
|
|
pss_boot.h
|
|
qconf
|
|
r100_reg_safe.h
|
|
r200_reg_safe.h
|
|
r300_reg_safe.h
|
|
r420_reg_safe.h
|
|
r600_reg_safe.h
|
|
recordmcount
|
|
relocs
|
|
rlim_names.h
|
|
rn50_reg_safe.h
|
|
rs600_reg_safe.h
|
|
rv515_reg_safe.h
|
|
series
|
|
setup
|
|
setup.bin
|
|
setup.elf
|
|
sImage
|
|
sm_tbl*
|
|
split-include
|
|
syscalltab.h
|
|
tables.c
|
|
tags
|
|
test_get_len
|
|
tftpboot.img
|
|
timeconst.h
|
|
times.h*
|
|
trix_boot.h
|
|
utsrelease.h*
|
|
vdso-syms.lds
|
|
vdso.lds
|
|
vdso32-int80-syms.lds
|
|
vdso32-syms.lds
|
|
vdso32-syscall-syms.lds
|
|
vdso32-sysenter-syms.lds
|
|
vdso32.lds
|
|
vdso32.so.dbg
|
|
vdso64.lds
|
|
vdso64.so.dbg
|
|
version.h*
|
|
vmImage
|
|
vmlinux
|
|
vmlinux-*
|
|
vmlinux.aout
|
|
vmlinux.bin.all
|
|
vmlinux.lds
|
|
vmlinuz
|
|
voffset.h
|
|
vsyscall.lds
|
|
vsyscall_32.lds
|
|
wanxlfw.inc
|
|
uImage
|
|
unifdef
|
|
wakeup.bin
|
|
wakeup.elf
|
|
wakeup.lds
|
|
zImage*
|
|
zconf.hash.c
|
|
zoffset.h
|