Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/configs: Replace pseries_le_defconfig with a Makefile target using merge_config

Rather than continuing to maintain a copy of pseries_defconfig with
CONFIG_CPU_LITTLE_ENDIAN enabled, use the generic merge_config script
and use an le.config to enable little endian on top of pseries_defconfig
without the need for a duplicated _defconfig file.

This method will require less maintenance in the future and will ensure
that both 'defconfigs' are always in sync.

It is worth noting that the seemingly more simple approach of:

pseries_le_defconfig: pseries_defconfig
$(Q)$(MAKE) le.config

Will not work when building using O=builddir.

The obvious fix to that:

pseries_le_defconfig:
$(Q)$(MAKE) -f $(srctree)/Makefile pseries_defconfig le.config

Also does not work. This is because if we have for example:

config FOO
depends on CPU_BIG_ENDIAN
select BAR

Then BAR will be enabled by the first call to kconfig (via
pseries_defconfig), and then will remain enabled after we merge
le.config, even though FOO will have been turned off.

The solution is to ensure to only invoke the kconfig logic once, after
we have merged all the config fragments. This ensures nothing is
select'ed on that should then be disabled by the later merged configs.
This is done through the explicit call to make olddefconfig

Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
Reviewed-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
[mpe: Massage change log, fix white space and use ARCH not SRCARCH]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

authored by

Cyril Bur and committed by
Michael Ellerman
ea4d1a87 a1c97df2

+16 -319
+15
arch/powerpc/Makefile
··· 269 269 %.dtb: scripts 270 270 $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) 271 271 272 + # Used to create 'merged defconfigs' 273 + # To use it $(call) it with the first argument as the base defconfig 274 + # and the second argument as a space separated list of .config files to merge, 275 + # without the .config suffix. 276 + define merge_into_defconfig 277 + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \ 278 + -m -O $(objtree) $(srctree)/arch/$(ARCH)/configs/$(1) \ 279 + $(foreach config,$(2),$(srctree)/arch/$(ARCH)/configs/$(config).config) 280 + +$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig 281 + endef 282 + 283 + PHONY += pseries_le_defconfig 284 + pseries_le_defconfig: 285 + $(call merge_into_defconfig,pseries_defconfig,le) 286 + 272 287 define archhelp 273 288 @echo '* zImage - Build default images selected by kernel config' 274 289 @echo ' zImage.* - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
+1
arch/powerpc/configs/le.config
··· 1 + CONFIG_CPU_LITTLE_ENDIAN=y
-319
arch/powerpc/configs/pseries_le_defconfig
··· 1 - CONFIG_PPC64=y 2 - CONFIG_SMP=y 3 - CONFIG_NR_CPUS=2048 4 - CONFIG_CPU_LITTLE_ENDIAN=y 5 - CONFIG_SYSVIPC=y 6 - CONFIG_POSIX_MQUEUE=y 7 - CONFIG_FHANDLE=y 8 - CONFIG_AUDIT=y 9 - CONFIG_AUDITSYSCALL=y 10 - CONFIG_IRQ_DOMAIN_DEBUG=y 11 - CONFIG_NO_HZ=y 12 - CONFIG_HIGH_RES_TIMERS=y 13 - CONFIG_TASKSTATS=y 14 - CONFIG_TASK_DELAY_ACCT=y 15 - CONFIG_TASK_XACCT=y 16 - CONFIG_TASK_IO_ACCOUNTING=y 17 - CONFIG_IKCONFIG=y 18 - CONFIG_IKCONFIG_PROC=y 19 - CONFIG_NUMA_BALANCING=y 20 - CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y 21 - CONFIG_CGROUPS=y 22 - CONFIG_CGROUP_FREEZER=y 23 - CONFIG_CGROUP_DEVICE=y 24 - CONFIG_CPUSETS=y 25 - CONFIG_CGROUP_CPUACCT=y 26 - CONFIG_MEMCG=y 27 - CONFIG_MEMCG_SWAP=y 28 - CONFIG_CGROUP_PERF=y 29 - CONFIG_CGROUP_SCHED=y 30 - CONFIG_USER_NS=y 31 - CONFIG_BLK_DEV_INITRD=y 32 - # CONFIG_COMPAT_BRK is not set 33 - CONFIG_PROFILING=y 34 - CONFIG_OPROFILE=y 35 - CONFIG_KPROBES=y 36 - CONFIG_JUMP_LABEL=y 37 - CONFIG_MODULES=y 38 - CONFIG_MODULE_UNLOAD=y 39 - CONFIG_MODVERSIONS=y 40 - CONFIG_MODULE_SRCVERSION_ALL=y 41 - CONFIG_PARTITION_ADVANCED=y 42 - CONFIG_PPC_SPLPAR=y 43 - CONFIG_SCANLOG=m 44 - CONFIG_PPC_SMLPAR=y 45 - CONFIG_DTL=y 46 - # CONFIG_PPC_PMAC is not set 47 - CONFIG_RTAS_FLASH=m 48 - CONFIG_IBMEBUS=y 49 - CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y 50 - CONFIG_HZ_100=y 51 - CONFIG_BINFMT_MISC=m 52 - CONFIG_PPC_TRANSACTIONAL_MEM=y 53 - CONFIG_KEXEC=y 54 - CONFIG_IRQ_ALL_CPUS=y 55 - CONFIG_MEMORY_HOTPLUG=y 56 - CONFIG_MEMORY_HOTREMOVE=y 57 - CONFIG_KSM=y 58 - CONFIG_TRANSPARENT_HUGEPAGE=y 59 - CONFIG_PPC_64K_PAGES=y 60 - CONFIG_PPC_SUBPAGE_PROT=y 61 - CONFIG_SCHED_SMT=y 62 - CONFIG_HOTPLUG_PCI=y 63 - CONFIG_HOTPLUG_PCI_RPA=m 64 - CONFIG_HOTPLUG_PCI_RPA_DLPAR=m 65 - CONFIG_NET=y 66 - CONFIG_PACKET=y 67 - CONFIG_UNIX=y 68 - CONFIG_XFRM_USER=m 69 - CONFIG_NET_KEY=m 70 - CONFIG_INET=y 71 - CONFIG_IP_MULTICAST=y 72 - CONFIG_NET_IPIP=y 73 - CONFIG_SYN_COOKIES=y 74 - CONFIG_INET_AH=m 75 - CONFIG_INET_ESP=m 76 - CONFIG_INET_IPCOMP=m 77 - # CONFIG_IPV6 is not set 78 - CONFIG_NETFILTER=y 79 - # CONFIG_NETFILTER_ADVANCED is not set 80 - CONFIG_BRIDGE=m 81 - CONFIG_VLAN_8021Q=m 82 - CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 83 - CONFIG_DEVTMPFS=y 84 - CONFIG_DEVTMPFS_MOUNT=y 85 - CONFIG_PARPORT=m 86 - CONFIG_PARPORT_PC=m 87 - CONFIG_BLK_DEV_FD=m 88 - CONFIG_BLK_DEV_LOOP=y 89 - CONFIG_BLK_DEV_NBD=m 90 - CONFIG_BLK_DEV_RAM=y 91 - CONFIG_BLK_DEV_RAM_SIZE=65536 92 - CONFIG_VIRTIO_BLK=m 93 - CONFIG_IDE=y 94 - CONFIG_BLK_DEV_IDECD=y 95 - CONFIG_BLK_DEV_GENERIC=y 96 - CONFIG_BLK_DEV_AMD74XX=y 97 - CONFIG_BLK_DEV_SD=y 98 - CONFIG_CHR_DEV_ST=y 99 - CONFIG_BLK_DEV_SR=y 100 - CONFIG_BLK_DEV_SR_VENDOR=y 101 - CONFIG_CHR_DEV_SG=y 102 - CONFIG_SCSI_CONSTANTS=y 103 - CONFIG_SCSI_FC_ATTRS=y 104 - CONFIG_SCSI_CXGB3_ISCSI=m 105 - CONFIG_SCSI_CXGB4_ISCSI=m 106 - CONFIG_SCSI_BNX2_ISCSI=m 107 - CONFIG_BE2ISCSI=m 108 - CONFIG_SCSI_MPT2SAS=m 109 - CONFIG_SCSI_IBMVSCSI=y 110 - CONFIG_SCSI_IBMVFC=m 111 - CONFIG_SCSI_SYM53C8XX_2=y 112 - CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 113 - CONFIG_SCSI_IPR=y 114 - CONFIG_SCSI_QLA_FC=m 115 - CONFIG_SCSI_QLA_ISCSI=m 116 - CONFIG_SCSI_LPFC=m 117 - CONFIG_SCSI_VIRTIO=m 118 - CONFIG_SCSI_DH=m 119 - CONFIG_SCSI_DH_RDAC=m 120 - CONFIG_SCSI_DH_ALUA=m 121 - CONFIG_ATA=y 122 - CONFIG_SATA_AHCI=y 123 - # CONFIG_ATA_SFF is not set 124 - CONFIG_MD=y 125 - CONFIG_BLK_DEV_MD=y 126 - CONFIG_MD_LINEAR=y 127 - CONFIG_MD_RAID0=y 128 - CONFIG_MD_RAID1=y 129 - CONFIG_MD_RAID10=m 130 - CONFIG_MD_RAID456=m 131 - CONFIG_MD_MULTIPATH=m 132 - CONFIG_MD_FAULTY=m 133 - CONFIG_BLK_DEV_DM=y 134 - CONFIG_DM_CRYPT=m 135 - CONFIG_DM_SNAPSHOT=m 136 - CONFIG_DM_THIN_PROVISIONING=m 137 - CONFIG_DM_MIRROR=m 138 - CONFIG_DM_ZERO=m 139 - CONFIG_DM_MULTIPATH=m 140 - CONFIG_DM_MULTIPATH_QL=m 141 - CONFIG_DM_MULTIPATH_ST=m 142 - CONFIG_DM_UEVENT=y 143 - CONFIG_BONDING=m 144 - CONFIG_DUMMY=m 145 - CONFIG_MACVLAN=m 146 - CONFIG_MACVTAP=m 147 - CONFIG_VXLAN=m 148 - CONFIG_NETCONSOLE=y 149 - CONFIG_TUN=m 150 - CONFIG_VETH=m 151 - CONFIG_VIRTIO_NET=m 152 - CONFIG_VHOST_NET=m 153 - CONFIG_VORTEX=y 154 - CONFIG_ACENIC=m 155 - CONFIG_ACENIC_OMIT_TIGON_I=y 156 - CONFIG_PCNET32=y 157 - CONFIG_TIGON3=y 158 - CONFIG_CHELSIO_T1=m 159 - CONFIG_BE2NET=m 160 - CONFIG_S2IO=m 161 - CONFIG_IBMVETH=y 162 - CONFIG_EHEA=y 163 - CONFIG_E100=y 164 - CONFIG_E1000=y 165 - CONFIG_E1000E=y 166 - CONFIG_IXGB=m 167 - CONFIG_IXGBE=m 168 - CONFIG_MLX4_EN=m 169 - CONFIG_MYRI10GE=m 170 - CONFIG_QLGE=m 171 - CONFIG_NETXEN_NIC=m 172 - CONFIG_PPP=m 173 - CONFIG_PPP_BSDCOMP=m 174 - CONFIG_PPP_DEFLATE=m 175 - CONFIG_PPPOE=m 176 - CONFIG_PPP_ASYNC=m 177 - CONFIG_PPP_SYNC_TTY=m 178 - # CONFIG_INPUT_MOUSEDEV_PSAUX is not set 179 - CONFIG_INPUT_EVDEV=m 180 - CONFIG_INPUT_MISC=y 181 - CONFIG_INPUT_PCSPKR=m 182 - # CONFIG_SERIO_SERPORT is not set 183 - CONFIG_DEVPTS_MULTIPLE_INSTANCES=y 184 - CONFIG_SERIAL_8250=y 185 - CONFIG_SERIAL_8250_CONSOLE=y 186 - CONFIG_SERIAL_ICOM=m 187 - CONFIG_SERIAL_JSM=m 188 - CONFIG_HVC_CONSOLE=y 189 - CONFIG_HVC_RTAS=y 190 - CONFIG_HVCS=m 191 - CONFIG_VIRTIO_CONSOLE=m 192 - CONFIG_IBM_BSR=m 193 - CONFIG_GEN_RTC=y 194 - CONFIG_RAW_DRIVER=y 195 - CONFIG_MAX_RAW_DEVS=1024 196 - CONFIG_FB=y 197 - CONFIG_FIRMWARE_EDID=y 198 - CONFIG_FB_OF=y 199 - CONFIG_FB_MATROX=y 200 - CONFIG_FB_MATROX_MILLENIUM=y 201 - CONFIG_FB_MATROX_MYSTIQUE=y 202 - CONFIG_FB_MATROX_G=y 203 - CONFIG_FB_RADEON=y 204 - CONFIG_FB_IBM_GXT4500=y 205 - CONFIG_LCD_PLATFORM=m 206 - # CONFIG_VGA_CONSOLE is not set 207 - CONFIG_FRAMEBUFFER_CONSOLE=y 208 - CONFIG_LOGO=y 209 - CONFIG_HID_GYRATION=y 210 - CONFIG_HID_PANTHERLORD=y 211 - CONFIG_HID_PETALYNX=y 212 - CONFIG_HID_SAMSUNG=y 213 - CONFIG_HID_SUNPLUS=y 214 - CONFIG_USB_HIDDEV=y 215 - CONFIG_USB=y 216 - CONFIG_USB_MON=m 217 - CONFIG_USB_EHCI_HCD=y 218 - # CONFIG_USB_EHCI_HCD_PPC_OF is not set 219 - CONFIG_USB_OHCI_HCD=y 220 - CONFIG_USB_STORAGE=m 221 - CONFIG_INFINIBAND=m 222 - CONFIG_INFINIBAND_USER_MAD=m 223 - CONFIG_INFINIBAND_USER_ACCESS=m 224 - CONFIG_INFINIBAND_MTHCA=m 225 - CONFIG_INFINIBAND_EHCA=m 226 - CONFIG_INFINIBAND_CXGB3=m 227 - CONFIG_INFINIBAND_CXGB4=m 228 - CONFIG_MLX4_INFINIBAND=m 229 - CONFIG_INFINIBAND_IPOIB=m 230 - CONFIG_INFINIBAND_IPOIB_CM=y 231 - CONFIG_INFINIBAND_SRP=m 232 - CONFIG_INFINIBAND_ISER=m 233 - CONFIG_VIRTIO_PCI=m 234 - CONFIG_VIRTIO_BALLOON=m 235 - CONFIG_EXT2_FS=y 236 - CONFIG_EXT2_FS_XATTR=y 237 - CONFIG_EXT2_FS_POSIX_ACL=y 238 - CONFIG_EXT2_FS_SECURITY=y 239 - CONFIG_EXT2_FS_XIP=y 240 - CONFIG_EXT3_FS=y 241 - CONFIG_EXT3_FS_POSIX_ACL=y 242 - CONFIG_EXT3_FS_SECURITY=y 243 - CONFIG_EXT4_FS=y 244 - CONFIG_EXT4_FS_POSIX_ACL=y 245 - CONFIG_EXT4_FS_SECURITY=y 246 - CONFIG_REISERFS_FS=y 247 - CONFIG_REISERFS_FS_XATTR=y 248 - CONFIG_REISERFS_FS_POSIX_ACL=y 249 - CONFIG_REISERFS_FS_SECURITY=y 250 - CONFIG_JFS_FS=m 251 - CONFIG_JFS_POSIX_ACL=y 252 - CONFIG_JFS_SECURITY=y 253 - CONFIG_XFS_FS=m 254 - CONFIG_XFS_POSIX_ACL=y 255 - CONFIG_BTRFS_FS=m 256 - CONFIG_BTRFS_FS_POSIX_ACL=y 257 - CONFIG_NILFS2_FS=m 258 - CONFIG_AUTOFS4_FS=m 259 - CONFIG_FUSE_FS=m 260 - CONFIG_OVERLAY_FS=m 261 - CONFIG_ISO9660_FS=y 262 - CONFIG_UDF_FS=m 263 - CONFIG_MSDOS_FS=y 264 - CONFIG_VFAT_FS=y 265 - CONFIG_PROC_KCORE=y 266 - CONFIG_TMPFS=y 267 - CONFIG_TMPFS_POSIX_ACL=y 268 - CONFIG_HUGETLBFS=y 269 - CONFIG_CRAMFS=m 270 - CONFIG_SQUASHFS=m 271 - CONFIG_SQUASHFS_XATTR=y 272 - CONFIG_SQUASHFS_LZO=y 273 - CONFIG_SQUASHFS_XZ=y 274 - CONFIG_PSTORE=y 275 - CONFIG_NFS_FS=y 276 - CONFIG_NFS_V3_ACL=y 277 - CONFIG_NFS_V4=y 278 - CONFIG_NFSD=m 279 - CONFIG_NFSD_V3_ACL=y 280 - CONFIG_NFSD_V4=y 281 - CONFIG_CIFS=m 282 - CONFIG_CIFS_XATTR=y 283 - CONFIG_CIFS_POSIX=y 284 - CONFIG_NLS_DEFAULT="utf8" 285 - CONFIG_NLS_CODEPAGE_437=y 286 - CONFIG_NLS_ASCII=y 287 - CONFIG_NLS_ISO8859_1=y 288 - CONFIG_NLS_UTF8=y 289 - CONFIG_MAGIC_SYSRQ=y 290 - CONFIG_DEBUG_KERNEL=y 291 - CONFIG_DEBUG_STACK_USAGE=y 292 - CONFIG_DEBUG_STACKOVERFLOW=y 293 - CONFIG_LOCKUP_DETECTOR=y 294 - CONFIG_LATENCYTOP=y 295 - CONFIG_SCHED_TRACER=y 296 - CONFIG_BLK_DEV_IO_TRACE=y 297 - CONFIG_CODE_PATCHING_SELFTEST=y 298 - CONFIG_FTR_FIXUP_SELFTEST=y 299 - CONFIG_MSI_BITMAP_SELFTEST=y 300 - CONFIG_XMON=y 301 - CONFIG_CRYPTO_TEST=m 302 - CONFIG_CRYPTO_PCBC=m 303 - CONFIG_CRYPTO_HMAC=y 304 - CONFIG_CRYPTO_MICHAEL_MIC=m 305 - CONFIG_CRYPTO_TGR192=m 306 - CONFIG_CRYPTO_WP512=m 307 - CONFIG_CRYPTO_ANUBIS=m 308 - CONFIG_CRYPTO_BLOWFISH=m 309 - CONFIG_CRYPTO_CAST6=m 310 - CONFIG_CRYPTO_KHAZAD=m 311 - CONFIG_CRYPTO_SALSA20=m 312 - CONFIG_CRYPTO_SERPENT=m 313 - CONFIG_CRYPTO_TEA=m 314 - CONFIG_CRYPTO_TWOFISH=m 315 - CONFIG_CRYPTO_LZO=m 316 - # CONFIG_CRYPTO_ANSI_CPRNG is not set 317 - CONFIG_VIRTUALIZATION=y 318 - CONFIG_KVM_BOOK3S_64=m 319 - CONFIG_KVM_BOOK3S_64_HV=m