diff options
34 files changed, 61 insertions, 4 deletions
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 36dd9aa8e..2d2cb1039 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -3,6 +3,7 @@ # # create a compressed vmlinuz image from the original vmlinux # +CFLAGS_decompress.o := -Os -fno-strict-aliasing -fno-graphite -fno-graphite-identity -fno-unsafe-loop-optimizations -fno-unsafe-math-optimizations -fno-loop-flatten -fno-tree-loop-linear -fno-loop-interchange -fno-loop-strip-mine -fno-loop-block -fno-loop-nest-optimize -fno-loop-unroll-and-jam -fno-loop-parallelize-all -ftree-parallelize-loops=0 -fno-openmp OBJS = diff --git a/arch/arm64/crypto/Makefile b/arch/arm64/crypto/Makefile index c6e63e650..1ff15437b 100644 --- a/arch/arm64/crypto/Makefile +++ b/arch/arm64/crypto/Makefile @@ -7,6 +7,7 @@ # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_CRYPTO_SHA1_ARM64_CE) += sha1-ce.o sha1-ce-y := sha1-ce-glue.o sha1-ce-core.o diff --git a/drivers/base/Makefile b/drivers/base/Makefile index 154bd4a5e..aa6689653 100644 --- a/drivers/base/Makefile +++ b/drivers/base/Makefile @@ -1,4 +1,5 @@ # Makefile for the Linux device tree +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-y := core.o bus.o dd.o syscore.o \ driver.o class.o platform.o \ diff --git a/drivers/input/Makefile b/drivers/input/Makefile index ee4c06520..f57537760 100644 --- a/drivers/input/Makefile +++ b/drivers/input/Makefile @@ -3,6 +3,7 @@ # # Each configuration option enables a list of files. +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_INPUT) += input-core.o input-core-y := input.o input-compat.o input-mt.o ff-core.o diff --git a/drivers/md/Makefile b/drivers/md/Makefile index 771180662..b774a8bc1 100644 --- a/drivers/md/Makefile +++ b/drivers/md/Makefile @@ -1,6 +1,7 @@ # # Makefile for the kernel software RAID and LVM drivers. # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing dm-mod-y += dm.o dm-table.o dm-target.o dm-linear.o dm-stripe.o \ dm-ioctl.o dm-io.o dm-kcopyd.o dm-sysfs.o diff --git a/drivers/media/v4l2-core/Makefile b/drivers/media/v4l2-core/Makefile index aa50c4631..7ecccb36d 100644 --- a/drivers/media/v4l2-core/Makefile +++ b/drivers/media/v4l2-core/Makefile @@ -1,6 +1,7 @@ # # Makefile for the V4L2 core # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing tuner-objs := tuner-core.o diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index 400756ec7..2e3a1a514 100644 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile @@ -1,6 +1,7 @@ # # Makefile for the kernel mmc device drivers. # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing subdir-ccflags-$(CONFIG_MMC_DEBUG) := -DDEBUG diff --git a/drivers/net/Makefile b/drivers/net/Makefile index ef3d090ef..04551a15c 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -1,7 +1,7 @@ # # Makefile for the Linux network device drivers. # - +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing # # Networking Core Drivers # diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile index 9645e389a..975c421a4 100644 --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile @@ -1,4 +1,5 @@ # Makefile for Linux PHY drivers +CFLAGS_KERNEL := -Os -fno-unsafe-math-optimizations -fno-strict-aliasing libphy-objs := phy.o phy_device.o mdio_bus.o diff --git a/drivers/of/Makefile b/drivers/of/Makefile index 8098b4dd3..f08047219 100644 --- a/drivers/of/Makefile +++ b/drivers/of/Makefile @@ -1,3 +1,5 @@ +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing + obj-y = base.o obj-$(CONFIG_OF_FLATTREE) += fdt.o obj-$(CONFIG_OF_PROMTREE) += pdt.o diff --git a/drivers/platform/Makefile b/drivers/platform/Makefile index 8a44a4cd6..7990aac1c 100644 --- a/drivers/platform/Makefile +++ b/drivers/platform/Makefile @@ -1,6 +1,7 @@ # # Makefile for linux/drivers/platform # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_X86) += x86/ obj-$(CONFIG_OLPC) += olpc/ diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile index b607ba4f5..4a470a086 100644 --- a/drivers/scsi/Makefile +++ b/drivers/scsi/Makefile @@ -12,7 +12,7 @@ # lastly SCSI peripheral drivers (disk/tape/cdrom/etc.) to # satisfy certain initialization assumptions in the SCSI layer. # *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*! - +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ -DGDTH_STATISTICS diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile index 082e607fb..874dab35e 100644 --- a/drivers/thermal/Makefile +++ b/drivers/thermal/Makefile @@ -1,6 +1,7 @@ # # Makefile for sensor chip drivers. # +CFLAGS_thermal_core.o := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_THERMAL) += thermal_sys.o thermal_sys-y += thermal_core.o diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile index c41feba8d..f875e7456 100644 --- a/drivers/usb/Makefile +++ b/drivers/usb/Makefile @@ -3,6 +3,7 @@ # # Object files in subdirectories +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_USB) += core/ diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile index f21aa18f3..33f5dc9fd 100644 --- a/drivers/usb/gadget/Makefile +++ b/drivers/usb/gadget/Makefile @@ -1,6 +1,8 @@ # # USB peripheral controller drivers # +CFLAGS_KERNEL := -Wno-unused-label + ccflags-$(CONFIG_USB_GADGET_DEBUG) := -DDEBUG include $(srctree)/drivers/misc/mediatek/Makefile.custom diff --git a/fs/Makefile b/fs/Makefile index 3f84895b8..f5e3ba300 100644 --- a/fs/Makefile +++ b/fs/Makefile @@ -4,6 +4,7 @@ # 14 Sep 2000, Christoph Hellwig <hch@infradead.org> # Rewritten to use lists instead of if-statements. # +CFLAGS_binfmt_elf.o := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-y := open.o read_write.o file_table.o super.o \ char_dev.o stat.o exec.o pipe.o namei.o fcntl.o \ diff --git a/fs/ext4/Makefile b/fs/ext4/Makefile index f52cf54f0..407af9689 100644 --- a/fs/ext4/Makefile +++ b/fs/ext4/Makefile @@ -1,6 +1,7 @@ # # Makefile for the linux ext4-filesystem routines. # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_EXT4_FS) += ext4.o diff --git a/fs/proc/Makefile b/fs/proc/Makefile index ab3071658..7f537d45c 100644 --- a/fs/proc/Makefile +++ b/fs/proc/Makefile @@ -1,6 +1,8 @@ # # Makefile for the Linux proc filesystem routines. # +CFLAGS_proc_net.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_namespaces.o := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-y += proc.o diff --git a/include/linux/compiler.h b/include/linux/compiler.h index a1df48993..9974e409e 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -3,6 +3,9 @@ #ifndef __ASSEMBLY__ +/* Make the optimizer believe the variable can be manipulated arbitrarily. */ +#define OPTIMIZER_HIDE_VAR(var) __asm__ ("" : "=r" (var) : "0" (var)) + #ifdef __CHECKER__ # define __user __attribute__((noderef, address_space(1))) # define __kernel __attribute__((address_space(0))) diff --git a/init/Makefile b/init/Makefile index 243f61de2..77111b940 100644 --- a/init/Makefile +++ b/init/Makefile @@ -1,6 +1,8 @@ # # Makefile for the linux kernel. # +CFLAGS_do_mounts.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_init_task.o := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-y := main.o version.o mounts.o obj-y += noinitramfs.o diff --git a/kernel/Makefile b/kernel/Makefile index 5a51e6c71..fdd731dcf 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -1,6 +1,19 @@ # # Makefile for the linux kernel. # +CFLAGS_fork.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_exit.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_sysctl_binary.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_sysctl.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_pid.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_signal.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_workqueue.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_cred.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_nsproxy.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_audit.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_auditfilter.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_cgroup.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_audit.o := -Wno-tautological-compare obj-y = fork.o exec_domain.o panic.o printk.o \ cpu.o exit.o itimer.o time.o softirq.o resource.o \ diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile index 078c9feb3..f79dfa7ac 100644 --- a/kernel/sched/Makefile +++ b/kernel/sched/Makefile @@ -1,3 +1,5 @@ +CFLAGS_cpuacct.o := -Wno-tautological-compare + ifdef CONFIG_FUNCTION_TRACER CFLAGS_REMOVE_clock.o = -pg endif diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile index 45012122f..bbe01d93e 100644 --- a/kernel/trace/Makefile +++ b/kernel/trace/Makefile @@ -1,4 +1,4 @@ - +CFLAGS_ring_buffer.o := -fno-unsafe-math-optimizations -fno-strict-aliasing # Do not instrument the tracer itself: ifdef CONFIG_FUNCTION_TRACER diff --git a/lib/Makefile b/lib/Makefile index 8db4b868a..ab58b6835 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -1,6 +1,12 @@ # # Makefile for some libs needed in the kernel. # +CFLAGS_libcrc32c.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_nlattr.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_klist.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_kobject_uevent.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_radix-tree.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_vsprintf.o := -fno-unsafe-math-optimizations -fno-strict-aliasing ifdef CONFIG_FUNCTION_TRACER ORIG_CFLAGS := $(KBUILD_CFLAGS) diff --git a/lib/mpi/Makefile b/lib/mpi/Makefile index 019a68c90..d76ac5ad8 100644 --- a/lib/mpi/Makefile +++ b/lib/mpi/Makefile @@ -1,6 +1,7 @@ # # MPI multiprecision maths library (from gpg) # +CFLAGS_KERNEL := -fno-graphite -fno-graphite-identity -fno-loop-flatten -fno-tree-loop-linear -fno-loop-interchange -fno-loop-strip-mine -fno-loop-block -fno-loop-nest-optimize -fno-loop-parallelize-all -ftree-parallelize-loops=0 -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_MPILIB) = mpi.o diff --git a/mm/Makefile b/mm/Makefile index 30e403700..59cd756ac 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -1,6 +1,7 @@ # # Makefile for the linux memory manager. # +CFLAGS_KERNEL := -Wno-implicit-function-declaration -Wno-discarded-qualifiers -Wno-int-conversion mmu-y := nommu.o mmu-$(CONFIG_MMU) := fremap.o highmem.o madvise.o memory.o mincore.o \ @@ -531,7 +531,7 @@ __vma_address(struct page *page, struct vm_area_struct *vma) } inline unsigned long -vma_address(struct page *page, struct vm_area_struct *vma) +static vma_address(struct page *page, struct vm_area_struct *vma) { unsigned long address = __vma_address(page, vma); diff --git a/net/Makefile b/net/Makefile index 67d460aa1..b26a4b5f4 100644 --- a/net/Makefile +++ b/net/Makefile @@ -4,6 +4,7 @@ # 2 Sep 2000, Christoph Hellwig <hch@infradead.org> # Rewritten to use lists instead of if-statements. # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-y := nonet.o diff --git a/net/ipv4/Makefile b/net/ipv4/Makefile index 5a9af0a9b..668013a63 100644 --- a/net/ipv4/Makefile +++ b/net/ipv4/Makefile @@ -1,6 +1,7 @@ # # Makefile for the Linux TCP/IP (INET) layer. # +CFLAGS_KERNEL := -Wno-array-bounds obj-y := route.o inetpeer.o protocol.o \ ip_input.o ip_fragment.o ip_forward.o ip_options.o \ diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile index d9655f6f3..577bd9c8a 100644 --- a/net/netfilter/Makefile +++ b/net/netfilter/Makefile @@ -1,3 +1,5 @@ +CFLAGS_KERNEL := -fno-graphite -fno-graphite-identity -fno-loop-flatten -fno-tree-loop-linear -fno-loop-interchange -fno-loop-strip-mine -fno-loop-block -fno-loop-nest-optimize -fno-loop-parallelize-all -ftree-parallelize-loops=0 -fno-openmp -fno-fast-math -fno-strict-aliasing -fno-unsafe-math-optimizations + netfilter-objs := core.o nf_log.o nf_queue.o nf_sockopt.o nf_conntrack-y := nf_conntrack_core.o nf_conntrack_standalone.o nf_conntrack_expect.o nf_conntrack_helper.o nf_conntrack_proto.o nf_conntrack_l3proto_generic.o nf_conntrack_proto_generic.o nf_conntrack_proto_tcp.o nf_conntrack_proto_udp.o nf_conntrack_extend.o nf_conntrack_acct.o diff --git a/security/Makefile b/security/Makefile index c26c81e92..bbbc54b9f 100644 --- a/security/Makefile +++ b/security/Makefile @@ -1,6 +1,8 @@ # # Makefile for the kernel security code # +CFLAGS_commoncap.o := -fno-unsafe-math-optimizations -fno-strict-aliasing +CFLAGS_lsm_audit.o := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_KEYS) += keys/ subdir-$(CONFIG_SECURITY_SELINUX) += selinux diff --git a/security/selinux/Makefile b/security/selinux/Makefile index ad5cd76ec..1306e009f 100644 --- a/security/selinux/Makefile +++ b/security/selinux/Makefile @@ -1,6 +1,7 @@ # # Makefile for building the SELinux module as part of the kernel tree. # +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_SECURITY_SELINUX) := selinux.o diff --git a/sound/Makefile b/sound/Makefile index ce9132b1c..981c8e663 100644 --- a/sound/Makefile +++ b/sound/Makefile @@ -1,5 +1,6 @@ # Makefile for the Linux sound card driver # +CFLAGS_KERNEL := -fno-graphite -fno-graphite-identity -fno-loop-flatten -fno-tree-loop-linear -fno-loop-interchange -fno-loop-strip-mine -fno-loop-block -fno-loop-nest-optimize -fno-loop-parallelize-all -ftree-parallelize-loops=0 -fno-unsafe-math-optimizations -fno-strict-aliasing obj-$(CONFIG_SOUND) += soundcore.o obj-$(CONFIG_SOUND_PRIME) += sound_firmware.o diff --git a/sound/soc/Makefile b/sound/soc/Makefile index 7ce86fd6e..a8ad24f3e 100644 --- a/sound/soc/Makefile +++ b/sound/soc/Makefile @@ -1,3 +1,5 @@ +CFLAGS_KERNEL := -fno-unsafe-math-optimizations -fno-strict-aliasing + snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-cache.o soc-utils.o snd-soc-core-objs += soc-pcm.o soc-compress.o soc-io.o |
