Compare commits

...

No commits in common. "46d76e48e24671129facfbf2f5518c79400be140" and "526187a05448e42637cce87967c64627d329b913" have entirely different histories.

7 changed files with 3240 additions and 381 deletions

View File

@ -1,18 +1,16 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.12.5-gentoo Kernel Configuration
# Linux/x86 5.11.22-gentoo Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="x86_64-pc-linux-gnu-gcc (Gentoo 11.1.0 p1) 11.1.0"
CONFIG_CC_VERSION_TEXT="x86_64-pc-linux-gnu-gcc (Gentoo 10.2.0-r5 p6) 10.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=110100
CONFIG_GCC_VERSION=100200
CONFIG_LD_VERSION=235020000
CONFIG_CLANG_VERSION=0
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=23502
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@ -333,7 +331,6 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_MEXCAVATOR is not set
# CONFIG_MZEN is not set
# CONFIG_MZEN2 is not set
# CONFIG_MZEN3 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
@ -353,13 +350,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_MCASCADELAKE is not set
# CONFIG_MCOOPERLAKE is not set
# CONFIG_MTIGERLAKE is not set
# CONFIG_MSAPPHIRERAPIDS is not set
# CONFIG_MROCKETLAKE is not set
# CONFIG_MALDERLAKE is not set
CONFIG_GENERIC_CPU=y
# CONFIG_GENERIC_CPU2 is not set
# CONFIG_GENERIC_CPU3 is not set
# CONFIG_GENERIC_CPU4 is not set
# CONFIG_MNATIVE_INTEL is not set
# CONFIG_MNATIVE_AMD is not set
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
@ -398,6 +389,7 @@ CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_THERMAL_VECTOR=y
#
# Performance monitoring
@ -513,7 +505,6 @@ CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACPI_FPDT is not set
CONFIG_ACPI_LPIT=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
@ -534,7 +525,6 @@ CONFIG_ACPI_IPMI=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_PLATFORM_PROFILE=m
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
@ -561,6 +551,7 @@ CONFIG_ACPI_APEI_EINJ=m
# CONFIG_ACPI_CONFIGFS is not set
# CONFIG_PMIC_OPREGION is not set
CONFIG_X86_PM_TIMER=y
# CONFIG_SFI is not set
#
# CPU Frequency scaling
@ -692,7 +683,6 @@ CONFIG_KVM=y
CONFIG_KVM_WERROR=y
CONFIG_KVM_INTEL=m
# CONFIG_KVM_AMD is not set
# CONFIG_KVM_XEN is not set
CONFIG_KVM_MMU_AUDIT=y
CONFIG_AS_AVX512=y
CONFIG_AS_SHA1_NI=y
@ -706,6 +696,9 @@ CONFIG_CRASH_CORE=y
CONFIG_KEXEC_CORE=y
CONFIG_HOTPLUG_SMT=y
CONFIG_GENERIC_ENTRY=y
# CONFIG_OPROFILE is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
@ -758,9 +751,6 @@ CONFIG_HAVE_ARCH_STACKLEAK=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
CONFIG_LTO_NONE=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y
@ -775,8 +765,6 @@ CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
@ -801,10 +789,8 @@ CONFIG_ARCH_USE_MEMREMAP_PROT=y
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
CONFIG_HAVE_STATIC_CALL=y
CONFIG_HAVE_STATIC_CALL_INLINE=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
#
# GCOV-based kernel profiling
@ -841,7 +827,7 @@ CONFIG_MODULE_SIG_SHA1=y
CONFIG_MODULE_SIG_HASH="sha1"
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_UNUSED_SYMBOLS=y
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
CONFIG_BLK_SCSI_REQUEST=y
@ -978,6 +964,7 @@ CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_ARCH_HAS_PTE_DEVMAP=y
CONFIG_HMM_MIRROR=y
CONFIG_VMAP_PFN=y
CONFIG_FRAME_VECTOR=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
CONFIG_ARCH_HAS_PKEYS=y
# CONFIG_PERCPU_STATS is not set
@ -1321,7 +1308,6 @@ CONFIG_IP_VS_SH=m
# CONFIG_IP_VS_MH is not set
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
# CONFIG_IP_VS_TWOS is not set
#
# IPVS SH scheduler
@ -1496,7 +1482,6 @@ CONFIG_NET_DSA=m
# CONFIG_NET_DSA_TAG_LAN9303 is not set
# CONFIG_NET_DSA_TAG_SJA1105 is not set
CONFIG_NET_DSA_TAG_TRAILER=m
# CONFIG_NET_DSA_TAG_XRS700X is not set
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
# CONFIG_VLAN_8021Q_MVRP is not set
@ -1625,7 +1610,6 @@ CONFIG_NET_SWITCHDEV=y
# CONFIG_NET_NCSI is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_SOCK_RX_QUEUE_MAPPING=y
CONFIG_XPS=y
# CONFIG_CGROUP_NET_PRIO is not set
CONFIG_CGROUP_NET_CLASSID=y
@ -1871,7 +1855,6 @@ CONFIG_PCIE_BUS_DEFAULT=y
# CONFIG_PCI_SW_SWITCHTEC is not set
# end of PCI switch controller drivers
# CONFIG_CXL_BUS is not set
CONFIG_PCCARD=y
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
@ -2083,6 +2066,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SKD is not set
CONFIG_BLK_DEV_SX8=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
@ -2164,7 +2148,6 @@ CONFIG_CB710_DEBUG_ASSUMPTIONS=y
CONFIG_VMWARE_VMCI=m
# CONFIG_GENWQE is not set
# CONFIG_ECHO is not set
# CONFIG_BCM_VK is not set
# CONFIG_MISC_ALCOR_PCI is not set
# CONFIG_MISC_RTSX_PCI is not set
# CONFIG_MISC_RTSX_USB is not set
@ -2270,6 +2253,7 @@ CONFIG_FCOE_FNIC=m
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FDOMAIN_PCI is not set
# CONFIG_SCSI_GDTH is not set
CONFIG_SCSI_ISCI=m
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
@ -2544,17 +2528,15 @@ CONFIG_ATM_TCP=m
# CONFIG_B53 is not set
# CONFIG_NET_DSA_BCM_SF2 is not set
# CONFIG_NET_DSA_LOOP is not set
# CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK is not set
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
# CONFIG_NET_DSA_MT7530 is not set
CONFIG_NET_DSA_MV88E6060=m
# CONFIG_NET_DSA_MICROCHIP_KSZ9477 is not set
# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
# CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_MV88E6XXX_PTP is not set
# CONFIG_NET_DSA_MSCC_SEVILLE is not set
# CONFIG_NET_DSA_AR9331 is not set
# CONFIG_NET_DSA_XRS700X_I2C is not set
# CONFIG_NET_DSA_XRS700X_MDIO is not set
# CONFIG_NET_DSA_QCA8K is not set
# CONFIG_NET_DSA_REALTEK_SMI is not set
# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
@ -2595,6 +2577,8 @@ CONFIG_ATL1=m
CONFIG_ATL1E=m
CONFIG_ATL1C=m
CONFIG_ALX=m
CONFIG_NET_VENDOR_AURORA=y
# CONFIG_AURORA_NB8800 is not set
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
@ -2808,7 +2792,6 @@ CONFIG_NET_VENDOR_WIZNET=y
# CONFIG_WIZNET_W5100 is not set
# CONFIG_WIZNET_W5300 is not set
CONFIG_NET_VENDOR_XILINX=y
# CONFIG_XILINX_EMACLITE is not set
# CONFIG_XILINX_AXI_EMAC is not set
# CONFIG_XILINX_LL_TEMAC is not set
CONFIG_NET_VENDOR_XIRCOM=y
@ -3117,7 +3100,6 @@ CONFIG_WLAN_VENDOR_MEDIATEK=y
# CONFIG_MT7663U is not set
# CONFIG_MT7663S is not set
# CONFIG_MT7915E is not set
# CONFIG_MT7921E is not set
CONFIG_WLAN_VENDOR_MICROCHIP=y
# CONFIG_WILC1000_SDIO is not set
CONFIG_WLAN_VENDOR_RALINK=y
@ -3578,7 +3560,6 @@ CONFIG_TCG_TPM=y
CONFIG_HW_RANDOM_TPM=y
CONFIG_TCG_TIS_CORE=y
CONFIG_TCG_TIS=y
# CONFIG_TCG_TIS_I2C_CR50 is not set
# CONFIG_TCG_TIS_I2C_ATMEL is not set
# CONFIG_TCG_TIS_I2C_INFINEON is not set
# CONFIG_TCG_TIS_I2C_NUVOTON is not set
@ -3774,6 +3755,7 @@ CONFIG_GPIO_CDEV_V1=y
# CONFIG_GPIO_ICH is not set
# CONFIG_GPIO_MB86S7X is not set
# CONFIG_GPIO_VX855 is not set
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_AMD_FCH is not set
# end of Memory mapped GPIO drivers
@ -3852,7 +3834,6 @@ CONFIG_BATTERY_MAX17040=m
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_CHARGER_LT3651 is not set
# CONFIG_CHARGER_LTC4162L is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24257 is not set
@ -3860,7 +3841,6 @@ CONFIG_BATTERY_MAX17040=m
# CONFIG_CHARGER_BQ2515X is not set
# CONFIG_CHARGER_BQ25890 is not set
# CONFIG_CHARGER_BQ25980 is not set
# CONFIG_CHARGER_BQ256XX is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_CHARGER_RT9455 is not set
@ -3888,7 +3868,6 @@ CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADT7462=m
CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
# CONFIG_SENSORS_AHT10 is not set
# CONFIG_SENSORS_AS370 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
@ -3949,7 +3928,6 @@ CONFIG_SENSORS_MAX6650=m
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_TPS23861 is not set
# CONFIG_SENSORS_MR75203 is not set
CONFIG_SENSORS_LM63=m
# CONFIG_SENSORS_LM73 is not set
@ -4047,7 +4025,6 @@ CONFIG_THERMAL_GOV_USER_SPACE=y
# Intel thermal drivers
#
# CONFIG_INTEL_POWERCLAMP is not set
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_X86_PKG_TEMP_THERMAL=m
# CONFIG_INTEL_SOC_DTS_THERMAL is not set
@ -4672,7 +4649,6 @@ CONFIG_VIDEO_CX25840=m
# CONFIG_VIDEO_OV2685 is not set
# CONFIG_VIDEO_OV2740 is not set
# CONFIG_VIDEO_OV5647 is not set
# CONFIG_VIDEO_OV5648 is not set
# CONFIG_VIDEO_OV6650 is not set
# CONFIG_VIDEO_OV5670 is not set
# CONFIG_VIDEO_OV5675 is not set
@ -4683,7 +4659,6 @@ CONFIG_VIDEO_CX25840=m
# CONFIG_VIDEO_OV7670 is not set
# CONFIG_VIDEO_OV7740 is not set
# CONFIG_VIDEO_OV8856 is not set
# CONFIG_VIDEO_OV8865 is not set
# CONFIG_VIDEO_OV9640 is not set
# CONFIG_VIDEO_OV9650 is not set
# CONFIG_VIDEO_OV9734 is not set
@ -4702,7 +4677,6 @@ CONFIG_VIDEO_CX25840=m
# CONFIG_VIDEO_NOON010PC30 is not set
# CONFIG_VIDEO_M5MOLS is not set
# CONFIG_VIDEO_RDACM20 is not set
# CONFIG_VIDEO_RDACM21 is not set
# CONFIG_VIDEO_RJ54N1 is not set
# CONFIG_VIDEO_S5K6AA is not set
# CONFIG_VIDEO_S5K6A3 is not set
@ -4890,7 +4864,6 @@ CONFIG_DVB_AU8522=m
CONFIG_DVB_AU8522_DTV=m
CONFIG_DVB_AU8522_V4L=m
CONFIG_DVB_S5H1411=m
CONFIG_DVB_MXL692=m
#
# ISDB-T (terrestrial) frontends
@ -4975,6 +4948,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=m
CONFIG_DRM_TTM_HELPER=m
CONFIG_DRM_GEM_SHMEM_HELPER=y
CONFIG_DRM_VM=y
#
# I2C encoder or helper chips
@ -5359,7 +5333,6 @@ CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_PREALLOC_SIZE=0
CONFIG_SND_INTEL_NHLT=y
CONFIG_SND_INTEL_DSP_CONFIG=m
CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
@ -5468,7 +5441,6 @@ CONFIG_HID_GENERIC=y
# CONFIG_HID_PETALYNX is not set
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
# CONFIG_HID_PLAYSTATION is not set
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set
@ -5509,7 +5481,7 @@ CONFIG_USB_HIDDEV=y
#
# I2C HID support
#
# CONFIG_I2C_HID_ACPI is not set
# CONFIG_I2C_HID is not set
# end of I2C HID support
#
@ -5618,7 +5590,7 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=m
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
# CONFIG_USBIP_CORE is not set
# CONFIG_USB_CDNS_SUPPORT is not set
# CONFIG_USB_CDNS3 is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_DWC2 is not set
@ -5683,7 +5655,6 @@ CONFIG_USB_SERIAL_OPTICON=m
# CONFIG_USB_SERIAL_SSU100 is not set
# CONFIG_USB_SERIAL_QT2 is not set
# CONFIG_USB_SERIAL_UPD78F0730 is not set
# CONFIG_USB_SERIAL_XR is not set
CONFIG_USB_SERIAL_DEBUG=m
#
@ -5845,12 +5816,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# CONFIG_LEDS_TRIGGER_NETDEV is not set
# CONFIG_LEDS_TRIGGER_PATTERN is not set
CONFIG_LEDS_TRIGGER_AUDIO=m
# CONFIG_LEDS_TRIGGER_TTY is not set
#
# LED Blink
#
# CONFIG_LEDS_BLINK is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
@ -5889,6 +5854,7 @@ CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_DECODE_MCE=m
# CONFIG_EDAC_GHES is not set
CONFIG_EDAC_AMD64=m
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_I3000=m
@ -6023,7 +5989,6 @@ CONFIG_DW_DMAC_PCI=y
# CONFIG_DW_EDMA_PCIE is not set
CONFIG_HSU_DMA=y
# CONFIG_SF_PDMA is not set
# CONFIG_INTEL_LDMA is not set
#
# DMA Clients
@ -6039,7 +6004,6 @@ CONFIG_SYNC_FILE=y
# CONFIG_SW_SYNC is not set
# CONFIG_UDMABUF is not set
# CONFIG_DMABUF_MOVE_NOTIFY is not set
# CONFIG_DMABUF_DEBUG is not set
# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMABUF_HEAPS is not set
# end of DMABUF options
@ -6075,7 +6039,6 @@ CONFIG_VIRT_DRIVERS=y
CONFIG_VBOXGUEST=m
# CONFIG_NITRO_ENCLAVES is not set
CONFIG_VIRTIO=m
CONFIG_VIRTIO_PCI_LIB=m
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PCI_LEGACY=y
@ -6143,6 +6106,7 @@ CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACPI_WMI=m
CONFIG_WMI_BMOF=m
# CONFIG_ALIENWARE_WMI is not set
# CONFIG_HUAWEI_WMI is not set
# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set
# CONFIG_INTEL_WMI_THUNDERBOLT is not set
@ -6156,7 +6120,14 @@ CONFIG_MXM_WMI=m
# CONFIG_APPLE_GMUX is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_ASUS_WIRELESS is not set
# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set
# CONFIG_DCDBAS is not set
# CONFIG_DELL_SMBIOS is not set
# CONFIG_DELL_RBTN is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DELL_SMO8800 is not set
# CONFIG_DELL_WMI_SYSMAN is not set
# CONFIG_DELL_WMI_AIO is not set
# CONFIG_DELL_WMI_LED is not set
# CONFIG_AMILO_RFKILL is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
@ -6219,7 +6190,6 @@ CONFIG_PMC_ATOM=y
CONFIG_SURFACE_PLATFORMS=y
# CONFIG_SURFACE_3_POWER_OPREGION is not set
# CONFIG_SURFACE_GPE is not set
# CONFIG_SURFACE_HOTPLUG is not set
# CONFIG_SURFACE_PRO3_BUTTON is not set
CONFIG_HAVE_CLK=y
CONFIG_CLKDEV_LOOKUP=y
@ -6231,7 +6201,6 @@ CONFIG_COMMON_CLK=y
# CONFIG_COMMON_CLK_SI544 is not set
# CONFIG_COMMON_CLK_CDCE706 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
# CONFIG_XILINX_VCU is not set
# CONFIG_HWSPINLOCK is not set
#
@ -6252,7 +6221,6 @@ CONFIG_IOMMU_SUPPORT=y
#
# Generic IOMMU Pagetable Support
#
CONFIG_IOMMU_IO_PGTABLE=y
# end of Generic IOMMU Pagetable Support
# CONFIG_IOMMU_DEBUGFS is not set
@ -6317,6 +6285,7 @@ CONFIG_AMD_IOMMU=y
#
# Xilinx SoC drivers
#
# CONFIG_XILINX_VCU is not set
# end of Xilinx SoC drivers
# end of SOC (System On Chip) specific Drivers
@ -6386,7 +6355,6 @@ CONFIG_ANDROID_BINDER_IPC_SELFTEST=y
# CONFIG_DAX is not set
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
# CONFIG_NVMEM_RMEM is not set
#
# HW tracing support
@ -6860,6 +6828,7 @@ CONFIG_CRYPTO_CRYPTD=y
CONFIG_CRYPTO_AUTHENC=y
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_GLUE_HELPER_X86=y
CONFIG_CRYPTO_ENGINE=m
#
@ -6930,7 +6899,10 @@ CONFIG_CRYPTO_POLY1305_X86_64=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
# CONFIG_CRYPTO_RMD128 is not set
CONFIG_CRYPTO_RMD160=m
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA1_SSSE3=y
CONFIG_CRYPTO_SHA256_SSSE3=y
@ -6940,6 +6912,7 @@ CONFIG_CRYPTO_SHA512=m
# CONFIG_CRYPTO_SHA3 is not set
# CONFIG_CRYPTO_SM3 is not set
# CONFIG_CRYPTO_STREEBOG is not set
# CONFIG_CRYPTO_TGR192 is not set
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
@ -6967,6 +6940,7 @@ CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_CHACHA20 is not set
CONFIG_CRYPTO_CHACHA20_X86_64=y
CONFIG_CRYPTO_SEED=m
@ -7237,8 +7211,6 @@ CONFIG_ARCH_HAS_EARLY_DEBUG=y
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
# CONFIG_KCSAN is not set
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
@ -7275,8 +7247,6 @@ CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
# CONFIG_KASAN is not set
CONFIG_HAVE_ARCH_KFENCE=y
# CONFIG_KFENCE is not set
# end of Memory Debugging
CONFIG_DEBUG_SHIRQ=y
@ -7336,7 +7306,6 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y
CONFIG_TRACE_IRQFLAGS=y
CONFIG_TRACE_IRQFLAGS_NMI=y
# CONFIG_DEBUG_IRQFLAGS is not set
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set
@ -7379,7 +7348,6 @@ CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_OBJTOOL_MCOUNT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y

View File

@ -1,10 +1,7 @@
acct-group/audio
acct-group/avahi
acct-group/bitlbee
acct-group/crontab
acct-group/docker
acct-group/geoclue
acct-group/gkrellmd
acct-group/input
acct-group/kvm
acct-group/ldap
@ -14,55 +11,40 @@ acct-group/mail
acct-group/man
acct-group/messagebus
acct-group/netdev
acct-group/openvpn
acct-group/pcap
acct-group/plugdev
acct-group/polkitd
acct-group/portage
acct-group/quassel
acct-group/render
acct-group/sshd
acct-group/transmission
acct-group/utmp
acct-group/video
acct-user/avahi
acct-user/bitlbee
acct-user/geoclue
acct-user/gkrellmd
acct-user/ldap
acct-user/mail
acct-user/man
acct-user/messagebus
acct-user/nvpd
acct-user/openvpn
acct-user/polkitd
acct-user/portage
acct-user/postmaster
acct-user/quassel
acct-user/sshd
acct-user/transmission
app-accessibility/at-spi2-atk
app-accessibility/at-spi2-core
app-admin/ccze
app-admin/doas
app-admin/eselect
app-admin/gkrellm
app-admin/haskell-updater
app-admin/keepassxc
app-admin/pass
app-admin/perl-cleaner
app-admin/sudo
app-arch/brotli
app-arch/bzip2
app-arch/cabextract
app-arch/cpio
app-arch/gzip
app-arch/libarchive
app-arch/lz4
app-arch/p7zip
app-arch/pigz
app-arch/rpm2targz
app-arch/snappy
app-arch/tar
app-arch/unrar
app-arch/unzip
app-arch/xz-utils
app-arch/zip
@ -71,7 +53,6 @@ app-crypt/argon2
app-crypt/gcr
app-crypt/gnupg
app-crypt/gpgme
app-crypt/johntheripper
app-crypt/libb2
app-crypt/libsecret
app-crypt/mhash
@ -81,56 +62,39 @@ app-crypt/p11-kit
app-crypt/pinentry
app-crypt/qca
app-crypt/rhash
app-crypt/veracrypt
app-dicts/aspell-en
app-dicts/aspell-pl
app-doc/doxygen
app-doc/xmltoman
app-editors/emacs
app-editors/nano
app-editors/neovim
app-editors/vim
app-editors/vim-core
app-emacs/ebuild-mode
app-emacs/emacs-common
app-emulation/containerd
app-emulation/docker
app-emulation/docker-cli
app-emulation/docker-compose
app-emulation/docker-proxy
app-emulation/qemu
app-emulation/runc
app-emulation/spice
app-emulation/spice-protocol
app-eselect/eselect-ctags
app-eselect/eselect-emacs
app-eselect/eselect-fontconfig
app-eselect/eselect-iptables
app-eselect/eselect-java
app-eselect/eselect-lib-bin-symlink
app-eselect/eselect-lua
app-eselect/eselect-notify-send
app-eselect/eselect-pinentry
app-eselect/eselect-python
app-eselect/eselect-ruby
app-eselect/eselect-rust
app-eselect/eselect-vi
app-eselect/eselect-wxwidgets
app-i18n/ibus
app-i18n/mozc
app-i18n/uchardet
app-i18n/unicode-cldr
app-i18n/unicode-data
app-i18n/unicode-emoji
app-misc/abook
app-misc/ca-certificates
app-misc/c_rehash
app-misc/editor-wrapper
app-misc/geoclue
app-misc/jq
app-misc/mime-types
app-misc/neofetch
app-misc/pax-utils
app-misc/ranger
app-misc/screen
app-misc/tmux
app-office/libreoffice
app-office/libreoffice-l10n
@ -140,8 +104,6 @@ app-portage/gemato
app-portage/genlop
app-portage/gentoolkit
app-portage/lto-rebuild
app-portage/nattka
app-portage/pgo
app-portage/portage-bashrc-mv
app-portage/portage-utils
app-portage/repoman
@ -195,7 +157,6 @@ app-text/ps2eps
app-text/ps2pkm
app-text/psutils
app-text/qpdf
app-text/rarian
app-text/rman
app-text/sgml-common
app-text/t1utils
@ -205,8 +166,6 @@ app-text/texlive-core
app-text/tree
app-text/wgetpaste
app-text/xmlto
app-vim/gentoo-syntax
dev-cpp/abseil-cpp
dev-cpp/clucene
dev-cpp/libcmis
dev-db/dbeaver-bin
@ -215,10 +174,8 @@ dev-db/mariadb-connector-c
dev-db/sqlite
dev-db/unixODBC
dev-go/go-md2man
dev-java/java-config
dev-java/openjdk-bin
dev-lang/ghc
dev-lang/go
dev-lang/go-bootstrap
dev-lang/lua
dev-lang/mujs
dev-lang/nasm
@ -227,16 +184,15 @@ dev-lang/perl
dev-lang/python
dev-lang/python-exec
dev-lang/python-exec-conf
dev-lang/ruby
dev-lang/rust
dev-lang/spidermonkey
dev-lang/swig
dev-lang/tcl
dev-lang/tk
dev-lang/vala
dev-lang/yasm
dev-libs/appstream-glib
dev-libs/atk
dev-libs/boehm-gc
dev-libs/boost
dev-libs/check
dev-libs/crypto++
@ -246,6 +202,7 @@ dev-libs/elfutils
dev-libs/expat
dev-libs/fribidi
dev-libs/glib
dev-libs/gmime
dev-libs/gmp
dev-libs/gobject-introspection
dev-libs/gobject-introspection-common
@ -258,6 +215,7 @@ dev-libs/json-c
dev-libs/jsoncpp
dev-libs/json-glib
dev-libs/kpathsea
dev-libs/leveldb
dev-libs/libaio
dev-libs/libassuan
dev-libs/libatomic_ops
@ -275,15 +233,16 @@ dev-libs/libgudev
dev-libs/libinput
dev-libs/libixion
dev-libs/libksba
dev-libs/liblinear
dev-libs/libltdl
dev-libs/libmpack
dev-libs/libmspack
dev-libs/libnl
dev-libs/liborcus
dev-libs/libpcre
dev-libs/libpcre2
dev-libs/libpipeline
dev-libs/librevenge
dev-libs/libsecp256k1
dev-libs/libsodium
dev-libs/libtasn1
dev-libs/libtermkey
@ -293,6 +252,7 @@ dev-libs/libunistring
dev-libs/libusb
dev-libs/libuv
dev-libs/libverto
dev-libs/libvformat
dev-libs/libvterm
dev-libs/libwacom
dev-libs/libx86
@ -309,22 +269,19 @@ dev-libs/newt
dev-libs/npth
dev-libs/nspr
dev-libs/nss
dev-libs/olm
dev-libs/oniguruma
dev-libs/openssl
dev-libs/pkcs11-helper
dev-libs/popt
dev-libs/protobuf
dev-libs/ptexenc
dev-libs/rapidjson
dev-libs/rasqal
dev-libs/redland
dev-libs/stfl
dev-libs/tinyxml
dev-libs/tinyxml2
dev-libs/unibilium
dev-libs/univalue
dev-libs/vala-common
dev-libs/wayland
dev-libs/xapian
dev-libs/xmlsec
dev-libs/zziplib
dev-lua/lpeg
@ -341,7 +298,6 @@ dev-perl/Date-Manip
dev-perl/Devel-Caller
dev-perl/Devel-GlobalDestruction
dev-perl/Devel-LexAlias
dev-perl/Devel-Size
dev-perl/Devel-StackTrace
dev-perl/Digest-HMAC
dev-perl/Digest-Perl-MD5
@ -350,9 +306,6 @@ dev-perl/Encode-Locale
dev-perl/Error
dev-perl/Eval-Closure
dev-perl/Exception-Class
dev-perl/ExtUtils-Config
dev-perl/ExtUtils-Helpers
dev-perl/ExtUtils-InstallPaths
dev-perl/File-BaseDir
dev-perl/File-DesktopEntry
dev-perl/File-HomeDir
@ -362,7 +315,6 @@ dev-perl/File-Which
dev-perl/HTML-Parser
dev-perl/HTML-Tagset
dev-perl/HTTP-Cookies
dev-perl/HTTP-Daemon
dev-perl/HTTP-Date
dev-perl/HTTP-Message
dev-perl/HTTP-Negotiate
@ -371,7 +323,6 @@ dev-perl/IO-Socket-INET6
dev-perl/IO-Socket-SSL
dev-perl/IO-stringy
dev-perl/IPC-System-Simple
dev-perl/Lchown
dev-perl/libwww-perl
dev-perl/Locale-gettext
dev-perl/Log-Dispatch
@ -380,7 +331,6 @@ dev-perl/LWP-Protocol-https
dev-perl/MailTools
dev-perl/MIME-Charset
dev-perl/Module-Build
dev-perl/Module-Build-Tiny
dev-perl/Module-Implementation
dev-perl/Module-Runtime
dev-perl/Mozilla-CA
@ -398,7 +348,6 @@ dev-perl/Params-ValidationCompiler
dev-perl/Parse-Yapp
dev-perl/Perl-Tidy
dev-perl/Pod-Parser
dev-perl/Proc-ProcessTable
dev-perl/Ref-Util
dev-perl/Ref-Util-XS
dev-perl/Role-Tiny
@ -415,7 +364,6 @@ dev-perl/Sub-Quote
dev-perl/TermReadKey
dev-perl/Test-Fatal
dev-perl/Text-CharWidth
dev-perl/Text-CSV
dev-perl/Text-CSV_XS
dev-perl/Text-WrapI18N
dev-perl/TimeDate
@ -433,18 +381,13 @@ dev-python/argon2-cffi
dev-python/async_generator
dev-python/attrs
dev-python/automat
dev-python/awscli
dev-python/Babel
dev-python/backcall
dev-python/backports-zoneinfo
dev-python/bcrypt
dev-python/bleach
dev-python/botocore
dev-python/cached-property
dev-python/certifi
dev-python/cffi
dev-python/chardet
dev-python/colorama
dev-python/click
dev-python/constantly
dev-python/cryptography
dev-python/cython
@ -452,19 +395,15 @@ dev-python/dbus-python
dev-python/decorator
dev-python/defusedxml
dev-python/distro
dev-python/dockerpty
dev-python/docker-py
dev-python/docopt
dev-python/docutils
dev-python/entrypoints
dev-python/extras
dev-python/fixtures
dev-python/greenlet
dev-python/gssapi
dev-python/html5lib
dev-python/hyperlink
dev-python/idna
dev-python/imagesize
dev-python/importlib_metadata
dev-python/incremental
dev-python/ipykernel
dev-python/ipyparallel
@ -472,16 +411,12 @@ dev-python/ipython
dev-python/ipython_genutils
dev-python/isodate
dev-python/jedi
dev-python/jeepney
dev-python/jinja
dev-python/jmespath
dev-python/jsonpointer
dev-python/jsonschema
dev-python/jupyter_client
dev-python/jupyter_core
dev-python/jupyterlab_pygments
dev-python/keyring
dev-python/lazy-object-proxy
dev-python/linecache2
dev-python/lxml
dev-python/m2crypto
@ -489,7 +424,6 @@ dev-python/m2r
dev-python/mako
dev-python/markupsafe
dev-python/mistune
dev-python/msgpack
dev-python/namespace-sphinxcontrib
dev-python/namespace-zope
dev-python/nbclient
@ -498,19 +432,14 @@ dev-python/nbformat
dev-python/nest_asyncio
dev-python/nose
dev-python/notebook
dev-python/olefile
dev-python/packaging
dev-python/pandocfilters
dev-python/paramiko
dev-python/parso
dev-python/path-py
dev-python/pathspec
dev-python/pbr
dev-python/pexpect
dev-python/pickleshare
dev-python/pillow
dev-python/pip
dev-python/pkginfo
dev-python/ply
dev-python/prometheus_client
dev-python/prompt_toolkit
@ -525,38 +454,26 @@ dev-python/pycurl
dev-python/pygments
dev-python/pygobject
dev-python/pyhamcrest
dev-python/pynacl
dev-python/pynvim
dev-python/pyopenssl
dev-python/pyparsing
dev-python/pyproject2setuppy
dev-python/pyrsistent
dev-python/PySocks
dev-python/python-dateutil
dev-python/python-dotenv
dev-python/python-evdev
dev-python/python-magic
dev-python/python-mimeparse
dev-python/pytz
dev-python/pyyaml
dev-python/pyzmq
dev-python/readme_renderer
dev-python/regex
dev-python/requests
dev-python/requests-toolbelt
dev-python/rfc3339-validator
dev-python/rfc3986
dev-python/rfc3986-validator
dev-python/rfc3987
dev-python/rsa
dev-python/s3transfer
dev-python/secretstorage
dev-python/send2trash
dev-python/service_identity
dev-python/setuptools
dev-python/setuptools_scm
dev-python/six
dev-python/snakeoil
dev-python/snowballstemmer
dev-python/sphinx
dev-python/sphinxcontrib-applehelp
@ -570,13 +487,9 @@ dev-python/subunit
dev-python/terminado
dev-python/testpath
dev-python/testtools
dev-python/texttable
dev-python/toml
dev-python/tqdm
dev-python/traceback2
dev-python/traitlets
dev-python/tree-sitter
dev-python/twine
dev-python/twisted
dev-python/unittest2
dev-python/urllib3
@ -584,54 +497,27 @@ dev-python/wcwidth
dev-python/webcolors
dev-python/webencodings
dev-python/websocket-client
dev-python/zipp
dev-python/zope-interface
dev-qt/linguist-tools
dev-qt/qtchooser
dev-qt/qtconcurrent
dev-qt/qtcore
dev-qt/qtdbus
dev-qt/qtdeclarative
dev-qt/qtgui
dev-qt/qtimageformats
dev-qt/qtmultimedia
dev-qt/qtnetwork
dev-qt/qtprintsupport
dev-qt/qtquickcontrols
dev-qt/qtscript
dev-qt/qtsql
dev-qt/qtsvg
dev-qt/qttest
dev-qt/qtwebkit
dev-qt/qtwidgets
dev-qt/qtx11extras
dev-qt/qtxml
dev-ruby/asciidoctor
dev-ruby/bundler
dev-ruby/did_you_mean
dev-ruby/json
dev-ruby/kpeg
dev-ruby/minitest
dev-ruby/net-telnet
dev-ruby/notify
dev-ruby/power_assert
dev-ruby/racc
dev-ruby/rake
dev-ruby/rbs
dev-ruby/rdoc
dev-ruby/rexml
dev-ruby/rss
dev-ruby/rubygems
dev-ruby/test-unit
dev-ruby/typeprof
dev-ruby/xmlrpc
dev-tex/bibtexu
dev-tex/latex-beamer
dev-tex/latexmk
dev-texlive/texlive-basic
dev-texlive/texlive-bibtexextra
dev-texlive/texlive-context
dev-texlive/texlive-fontsextra
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-fontutils
dev-texlive/texlive-langcjk
@ -641,7 +527,6 @@ dev-texlive/texlive-latexextra
dev-texlive/texlive-latexrecommended
dev-texlive/texlive-luatex
dev-texlive/texlive-mathscience
dev-texlive/texlive-metapost
dev-texlive/texlive-pictures
dev-texlive/texlive-plaingeneric
dev-texlive/texlive-pstricks
@ -653,17 +538,15 @@ dev-util/ccache
dev-util/ccls
dev-util/cmake
dev-util/cmocka
dev-util/colm
dev-util/cppcheck
dev-util/cppunit
dev-util/desktop-file-utils
dev-util/ebuildtester
dev-util/gdbus-codegen
dev-util/glib-utils
dev-util/google-perftools
dev-util/gperf
dev-util/gtk-doc-am
dev-util/gtk-update-icon-cache
dev-util/gyp
dev-util/intltool
dev-util/itstool
dev-util/mdds
@ -671,29 +554,18 @@ dev-util/meson
dev-util/meson-format-array
dev-util/netsurf-buildsystem
dev-util/ninja
dev-util/packer
dev-util/patchutils
dev-util/pkgcheck
dev-util/pkgconf
dev-util/ragel
dev-util/re2c
dev-util/shadowman
dev-util/shellcheck-bin
dev-util/wayland-scanner
dev-vcs/git
dev-vcs/lazygit
dev-vcs/tig
games-engines/box2d
games-util/game-device-udev-rules
games-util/lutris
games-util/steam-launcher
gnome-base/dconf
gnome-base/gnome-desktop
gnome-base/gnome-keyring
gnome-base/gsettings-desktop-schemas
gnome-base/librsvg
gnome-extra/nm-applet
gnome-extra/zenity
gui-libs/display-manager-init
gui-libs/libhandy
kde-frameworks/breeze-icons
@ -730,21 +602,14 @@ media-libs/gd
media-libs/gegl
media-libs/gexiv2
media-libs/giflib
media-libs/glew
media-libs/glm
media-libs/glu
media-libs/graphene
media-libs/gst-plugins-bad
media-libs/gst-plugins-base
media-libs/gst-plugins-good
media-libs/gstreamer
media-libs/harfbuzz
media-libs/imlib2
media-libs/jbig2dec
media-libs/lcms
media-libs/libaom
media-libs/libass
media-libs/libcanberra
media-libs/libcdr
media-libs/libepoxy
media-libs/libfreehand
@ -775,14 +640,10 @@ media-libs/speex
media-libs/speexdsp
media-libs/tiff
media-libs/webrtc-audio-processing
media-libs/woff2
media-libs/x264
media-libs/x265
media-plugins/alsa-plugins
media-plugins/gst-plugins-libav
media-plugins/gst-plugins-opus
media-sound/cmus
media-sound/fluid-soundfont
media-sound/lame
media-sound/ponymix
media-sound/pulseaudio
@ -792,6 +653,7 @@ media-video/mpv
media-video/rtmpdump
net-analyzer/hping
net-analyzer/net-snmp
net-analyzer/nmap
net-analyzer/traceroute
net-dialup/ppp
net-dialup/ppp-scripts
@ -802,23 +664,16 @@ net-dns/libidn2
net-dns/openresolv
net-firewall/iptables
net-fs/cifs-utils
net-fs/libnfs
net-fs/samba
net-fs/sshfs
net-im/bitlbee
net-im/bitlbee-facebook
net-im/discord-bin
net-im/signal-desktop-bin
net-im/teams
net-irc/quassel
net-irc/weechat
net-libs/glib-networking
net-libs/gnutls
net-libs/libasyncns
net-libs/liblockfile
net-libs/libmbim
net-libs/libmnl
net-libs/libnatpmp
net-libs/libndp
net-libs/libnma
net-libs/libnsl
@ -826,79 +681,51 @@ net-libs/libpcap
net-libs/libproxy
net-libs/libpsl
net-libs/libqmi
net-libs/libslirp
net-libs/libsoup
net-libs/libssh
net-libs/libtirpc
net-libs/libvncserver
net-libs/miniupnpc
net-libs/neon
net-libs/nghttp2
net-libs/nodejs
net-libs/rpcsvc-proto
net-libs/webkit-gtk
net-libs/zeromq
net-mail/isync
net-mail/mailbase
net-misc/aria2
net-misc/bridge-utils
net-mail/notmuch
net-misc/curl
net-misc/dhcpcd
net-misc/freerdp
net-misc/iputils
net-misc/meganz-sdk
net-misc/megasync
net-misc/mobile-broadband-provider-info
net-misc/modemmanager
net-misc/netifrc
net-misc/networkmanager
net-misc/openssh
net-misc/postman-bin
net-misc/rdate
net-misc/rdesktop
net-misc/rsync
net-misc/spice-gtk
net-misc/streamlink
net-misc/teamviewer
net-misc/telnet-bsd
net-misc/tigervnc
net-misc/wget
net-misc/whois
net-misc/youtube-dl
net-nds/openldap
net-news/newsboat
net-p2p/transmission
net-p2p/bitcoin-qt
net-print/cups
net-print/cups-filters
net-print/hplip
net-vpn/networkmanager-openvpn
net-vpn/openfortivpn
net-vpn/openvpn
net-vpn/wireguard-tools
net-wireless/crda
net-wireless/wireless-regdb
net-wireless/wpa_supplicant
perl-core/File-Temp
perl-core/Test-Simple
sci-calculators/qalculate-gtk
perl-core/Scalar-List-Utils
sci-libs/colamd
sci-libs/libqalculate
sci-libs/suitesparseconfig
sci-mathematics/lpsolve
sci-mathematics/z3
sys-apps/acl
sys-apps/attr
sys-apps/baselayout
sys-apps/baselayout-java
sys-apps/bubblewrap
sys-apps/busybox
sys-apps/coreutils
sys-apps/dbus
sys-apps/debianutils
sys-apps/diffutils
sys-apps/dmidecode
sys-apps/dtc
sys-apps/earlyoom
sys-apps/ed
sys-apps/file
sys-apps/findutils
@ -909,36 +736,29 @@ sys-apps/groff
sys-apps/help2man
sys-apps/hwids
sys-apps/install-xattr
sys-apps/inxi
sys-apps/iproute2
sys-apps/kbd
sys-apps/keyutils
sys-apps/kmod
sys-apps/less
sys-apps/lm-sensors
sys-apps/lsb-release
sys-apps/man-db
sys-apps/man-pages
sys-apps/man-pages-posix
sys-apps/net-tools
sys-apps/openrc
sys-apps/opentmpfiles
sys-apps/pciutils
sys-apps/pkgcore
sys-apps/portage
sys-apps/ripgrep
sys-apps/sandbox
sys-apps/sed
sys-apps/shadow
sys-apps/systemd-tmpfiles
sys-apps/sysvinit
sys-apps/tcp-wrappers
sys-apps/texinfo
sys-apps/usbredir
sys-apps/usbutils
sys-apps/usermode-utilities
sys-apps/util-linux
sys-apps/which
sys-apps/xdg-dbus-proxy
sys-apps/yarn
sys-auth/elogind
sys-auth/libyubikey
@ -975,18 +795,14 @@ sys-devel/m4
sys-devel/make
sys-devel/patch
sys-devel/ucpp
sys-firmware/edk2-ovmf
sys-firmware/ipxe
sys-firmware/seabios
sys-firmware/sgabios
sys-fs/cryptsetup
sys-fs/e2fsprogs
sys-fs/eudev
sys-fs/fuse
sys-fs/fuse-common
sys-fs/lvm2
sys-fs/ntfs3g
sys-fs/udev-init-scripts
sys-fs/zfs
sys-fs/zfs-kmod
sys-kernel/genkernel
sys-kernel/gentoo-sources
sys-kernel/installkernel-gentoo
@ -1009,7 +825,6 @@ sys-libs/libunwind
sys-libs/liburing
sys-libs/mtdev
sys-libs/ncurses
sys-libs/ncurses-compat
sys-libs/pam
sys-libs/readline
sys-libs/slang
@ -1023,21 +838,17 @@ sys-power/suspend
sys-process/cronbase
sys-process/cronie
sys-process/htop
sys-process/iotop
sys-process/nmon
sys-process/parallel
sys-process/procps
sys-process/psmisc
sys-process/tini
virtual/acl
virtual/awk
virtual/bitcoin-leveldb
virtual/dev-manager
virtual/editor
virtual/freedesktop-icon-theme
virtual/glu
virtual/jdk
virtual/jpeg
virtual/jre
virtual/krb5
virtual/latex-base
virtual/libc
@ -1049,7 +860,6 @@ virtual/libudev
virtual/libusb
virtual/linux-sources
virtual/man
virtual/mta
virtual/notification-daemon
virtual/opengl
virtual/os-headers
@ -1088,7 +898,6 @@ virtual/perl-Perl-OSType
virtual/perl-podlators
virtual/perl-Pod-Parser
virtual/perl-Scalar-List-Utils
virtual/perl-Socket
virtual/perl-Storable
virtual/perl-Sys-Syslog
virtual/perl-Test-Harness
@ -1099,10 +908,7 @@ virtual/perl-version
virtual/perl-XSLoader
virtual/pkgconfig
virtual/python-cffi
virtual/python-greenlet
virtual/resolvconf
virtual/rubygems
virtual/ruby-ssl
virtual/rust
virtual/service-manager
virtual/ssh
@ -1110,22 +916,22 @@ virtual/tex-base
virtual/tmpfiles
virtual/ttf-fonts
virtual/udev
virtual/w3m
virtual/yacc
www-client/firefox
www-client/google-chrome
www-client/lynx
www-client/w3m
www-plugins/chrome-binary-plugins
www-servers/tornado
x11-apps/bdftopcf
x11-apps/iceauth
x11-apps/mesa-progs
x11-apps/mkfontscale
x11-apps/rgb
x11-apps/setxkbmap
x11-apps/xauth
x11-apps/xdpyinfo
x11-apps/xgamma
x11-apps/xinit
x11-apps/xinput
x11-apps/xkbcomp
x11-apps/xprop
x11-apps/xrandr
@ -1142,9 +948,7 @@ x11-drivers/xf86-input-libinput
x11-drivers/xf86-input-synaptics
x11-drivers/xf86-input-wacom
x11-libs/cairo
x11-libs/fltk
x11-libs/gdk-pixbuf
x11-libs/gdk-pixbuf-xlib
x11-libs/gtk+
x11-libs/libdrm
x11-libs/libfontenc
@ -1157,7 +961,6 @@ x11-libs/libva-vdpau-driver
x11-libs/libvdpau
x11-libs/libX11
x11-libs/libXau
x11-libs/libXaw
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXcursor
@ -1183,25 +986,19 @@ x11-libs/libXv
x11-libs/libXxf86vm
x11-libs/pango
x11-libs/pixman
x11-libs/startup-notification
x11-libs/wxGTK
x11-libs/xcb-util
x11-libs/xcb-util-cursor
x11-libs/xcb-util-image
x11-libs/xcb-util-keysyms
x11-libs/xcb-util-renderutil
x11-libs/xcb-util-wm
x11-libs/xcb-util-xrm
x11-libs/xtrans
x11-misc/arandr
x11-misc/compose-tables
x11-misc/compton
x11-misc/dunst
x11-misc/imake
x11-misc/rofi
x11-misc/shared-mime-info
x11-misc/util-macros
x11-misc/x11vnc
x11-misc/xautolock
x11-misc/xbitmaps
x11-misc/xclip
@ -1209,9 +1006,4 @@ x11-misc/xdg-user-dirs
x11-misc/xdg-utils
x11-misc/xkeyboard-config
x11-misc/xorg-cf-files
x11-misc/xss-lock
x11-themes/adwaita-icon-theme
x11-themes/gnome-themes-standard
x11-themes/gtk-engines-adwaita
x11-themes/hicolor-icon-theme
x11-themes/sound-theme-freedesktop

View File

@ -1,8 +1,10 @@
NTHREADS="8"
source /etc/portage/make.conf.lto.defines
#NTHREADS="8"
#source /etc/portage/make.conf.lto.defines
#
#COMMON_FLAGS="-march=native -O3 ${GRAPHITE} ${DEVIRTLTO} ${IPAPTA} \
# ${SEMINTERPOS} ${FLTO} -fuse-linker-plugin -falign-functions=32"
COMMON_FLAGS="-march=native -O3 ${GRAPHITE} ${DEVIRTLTO} ${IPAPTA} \
${SEMINTERPOS} ${FLTO} -fuse-linker-plugin -falign-functions=32"
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${CFLAGS}"
FCFLAGS="${CFLAGS}"
@ -14,8 +16,11 @@ GENTOO_MIRRORS="https://mirror.eu.oneandone.net/linux/distributions/gentoo/gento
http://ftp.vectranet.pl/gentoo/ \
http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/"
MAKEOPTS="-j8 --load-average=6.4"
EMERGE_DEFAULT_OPTS="--jobs=8 --load-average=6.4 --with-bdeps=y --keep-going=y --quiet-build"
#MAKEOPTS="-j8 --load-average=6.4"
#EMERGE_DEFAULT_OPTS="--jobs=8 --load-average=6.4 --with-bdeps=y --keep-going=y --quiet-build"
MAKEOPTS="-j3 --load-average=3.3"
EMERGE_DEFAULT_OPTS="--jobs=3 --load-average=3.3 --with-bdeps=y --keep-going=y --quiet-build"
ACCEPT_LICENSE="*"
ACCEPT_KEYWORDS="~amd64"
@ -34,8 +39,7 @@ RUBY_TARGETS="ruby30 ruby26 ruby27"
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
CCACHE_DIR="/usr/ccache"
CCACHE_DIR="/var/cache/ccache"
LC_MESSAGES=C

View File

@ -1,68 +0,0 @@
#This file contains the definitions for the optimization settings used by GentooLTO.
#source this file directly in your make.conf if you want to cherry-pick settings
#and don't want to use the make.conf.lto default configuration, defining the number of threads
#to use during the LTO process beforehand:
#NTHREADS="12"
#source make.conf.lto.defines
#Guidelines:
#* Your CFLAGS should contain ${FLTO}
#* If you want Graphite, include "${GRAPHITE}" in your CFLAGS
#* If you want -fipa-pta, include "${IPAPTA}" in your CFLAGS
#* Anything else is up to you, such as -march, -pipe, -O{3,2,s,1}, etc...
#* CXXFLAGS should be set to CFLAGS
#* Optionally, set other *FLAGS for languages compiled with GCC as well
#* LDFLAGS of your Gentoo profile should be respected.
# See make.conf.lto for more details.
FLTO="-flto=${NTHREADS}"
#FLTO is of the form -flto[=n] where n is the number of threads to use during linking.
#It's usually a good idea to set this to the number of hardware threads in your system
#You may also set this to "auto" to have gcc determine optimal number of cores (GCC 10+)
GRAPHITE="-fgraphite-identity -floop-nest-optimize"
#GRAPHITE contains Graphite specific optimizations and other optimizations that are disabled at O3 but don't influence the compiler's judgement.
#Since GCC 8.1.0, -ftree-loop-distribution is enabled by default at -O3
#NOTE: To use graphite, make sure you have gcc compiled with graphite support (add graphite to your USE). Otherwise GCC will complain!
IPAPTA="-fipa-pta"
#IPAPTA contains -fipa* opts that are disabled by default in GCC. These are interprocedural optimizations. For now this is only -fipa-pta.
#This option increases compile times, but can potentially produce better binaries, especially with LTO.
#Essentially, it allows the compiler to look into called function bodies when performing alias analysis
SEMINTERPOS="-fno-semantic-interposition"
#With -fno-semantic-interposition the compiler assumes that if interposition happens for functions
#the overwriting function will have precisely the same semantics (and side effects).
#Similarly if interposition happens for variables, the constructor of the variable will be the same.
#The flag has no effect for functions explicitly declared inline (where it is never allowed for interposition to change semantics) and for symbols explicitly declared weak.
NOCOMMON="-fno-common"
# This option only affects C code. Only non-conformant C code needs -fcommon, which is enabled by default. Clear Linux leaves this flag off by default.
# This is enabled by default with GCC 10 and is kept here only for documentation purposes. Use `-fcommon` to restore
# GCC 9.x behaviour and below.
SAFEST_FAST_MATH="-fno-math-errno -fno-trapping-math"
SAFER_UNSAFE_MATH_OPTS="-fno-signed-zeros -fno-trapping-math -fassociative-math -freciprocal-math"
SAFER_FAST_MATH="${SAFER_UNSAFE_MATH_OPTS} -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fcx-limited-range -fexcess-precision=fast"
#These are flags left off by default that we're planning to start using. Clear Linux uses these in lieu of full -ffast-math optimizations
#They DO break compliance with ISO C++, so we'll be careful about introducing these.
#Relevant discussion: https://gcc.gnu.org/ml/gcc/2017-09/msg00079.html
#We may end up just going full -Ofast, with exceptions done in the usual way.
DEVIRTLTO="-fdevirtualize-at-ltrans"
#This allows GCC to perform devirtualization across object file boundaries using LTO.
NOPLT="-fno-plt"
#This option omits the PLT from the executable, making calls go through the GOT directly.
#It inhibits lazy binding, so this is not enabled by default. If you use prelink, this is
#strictly better than lazy binding.

1
make.conf.lto.defines Symbolic link
View File

@ -0,0 +1 @@
/var/db/repos/lto-overlay/sys-config/ltoize/files/make.conf.lto.defines

View File

@ -310,6 +310,7 @@ net-vpn/networkmanager-openvpn gtk
#Firefox
www-client/firefox hwaccel openh264 pulseaudio startup-notification -system-libvpx
>=media-libs/speex-1.2.0-r2 abi_x86_32
>=media-libs/libpng-1.6.37 apng
>=dev-db/sqlite-3.30.1 secure-delete
@ -362,7 +363,7 @@ app-admin/gkrellm X
dev-java/openjdk-bin gentoo-vm
# StreamLink
net-misc/streamlink python_single_target_python3_8
net-misc/streamlink python_single_target_python3_9
# Haskell
dev-lang/ghc binary
@ -410,3 +411,12 @@ sys-config/ltoize clang
# Quassel
net-irc/quassel X -server monolithic
>=dev-db/sqlite-3.35.4 -secure-delete
# Neomutt
mail-client/neomutt notmuch ssl
# HP
net-dns/avahi python
#BB
>=sys-libs/db-4.8.30-r6:4.8 cxx

View File

@ -0,0 +1,738 @@
From 7808631e7a9a605d5fe7a1077129c658d9ec47fc Mon Sep 17 00:00:00 2001
From: Maxime Coste <mawww@kakoune.org>
Date: Tue, 22 Oct 2019 22:46:49 +1100
Subject: [PATCH] Add support for BGRA glyphs display and scaling
Display is done using an XRender Picture, as XRender
glyphs are incompatible with BGRA rendering due to
their use of the glyph bitmap as a mask.
Scaling is done by averaging all relevant pixel, which gives
much better result than nearest pixel sampling while staying
simple enough and not too computationally expensive.
This enables color emoji rendering support.
Fixes: #6
Signed-off-by: Maxime Coste <mawww@kakoune.org>
---
src/xftfreetype.c | 18 ++++-
src/xftglyphs.c | 200 ++++++++++++++++++++++++++++++++++++++++++----
src/xftint.h | 2 +
src/xftrender.c | 168 ++++++++++++++++++++++++--------------
4 files changed, 307 insertions(+), 81 deletions(-)
diff --git a/src/xftfreetype.c b/src/xftfreetype.c
index a3b8332..a639a03 100644
--- a/src/xftfreetype.c
+++ b/src/xftfreetype.c
@@ -514,7 +514,7 @@ XftFontInfoFill (Display *dpy, _Xconst FcPattern *pattern, XftFontInfo *fi)
/*
* Compute glyph load flags
*/
- fi->load_flags = FT_LOAD_DEFAULT;
+ fi->load_flags = FT_LOAD_DEFAULT | FT_LOAD_COLOR;
#ifndef XFT_EMBEDDED_BITMAP
#define XFT_EMBEDDED_BITMAP "embeddedbitmap"
@@ -766,6 +766,7 @@ XftFontOpenInfo (Display *dpy,
FcChar32 hash_value;
FcChar32 rehash_value;
FcBool antialias;
+ FcBool color;
int max_glyph_memory;
int alloc_size;
int ascent, descent, height;
@@ -822,12 +823,16 @@ XftFontOpenInfo (Display *dpy,
if (!(face->face_flags & FT_FACE_FLAG_SCALABLE))
antialias = FcFalse;
+ color = FT_HAS_COLOR(face) ? FcTrue : FcFalse;
+
/*
* Find the appropriate picture format
*/
if (fi->render)
{
- if (antialias)
+ if (color)
+ format = XRenderFindStandardFormat (dpy, PictStandardARGB32);
+ else if (antialias)
{
switch (fi->rgba) {
case FC_RGBA_RGB:
@@ -842,9 +847,7 @@ XftFontOpenInfo (Display *dpy,
}
}
else
- {
format = XRenderFindStandardFormat (dpy, PictStandardA1);
- }
if (!format)
goto bail2;
@@ -959,6 +962,13 @@ XftFontOpenInfo (Display *dpy,
* which doesn't happen in XftFontInfoFill
*/
font->info.antialias = antialias;
+
+ /*
+ * Set color value, which is only known once the
+ * font was loaded
+ */
+ font->info.color = color;
+
/*
* bump XftFile reference count
*/
diff --git a/src/xftglyphs.c b/src/xftglyphs.c
index 4b5fb82..af2e3c1 100644
--- a/src/xftglyphs.c
+++ b/src/xftglyphs.c
@@ -26,6 +26,8 @@
#include FT_SYNTHESIS_H
+#include FT_GLYPH_H
+
/*
* Validate the memory info for a font
*/
@@ -78,9 +80,11 @@ _XftFontValidateMemory (Display *dpy, XftFont *public)
static int
_compute_xrender_bitmap_size( FT_Bitmap* target,
FT_GlyphSlot slot,
- FT_Render_Mode mode )
+ FT_Render_Mode mode,
+ FT_Matrix* matrix )
{
FT_Bitmap* ftbit;
+ FT_Vector vector;
int width, height, pitch;
if ( slot->format != FT_GLYPH_FORMAT_BITMAP )
@@ -88,9 +92,18 @@ _compute_xrender_bitmap_size( FT_Bitmap* target,
// compute the size of the final bitmap
ftbit = &slot->bitmap;
-
width = ftbit->width;
height = ftbit->rows;
+
+ if ( matrix && mode == FT_RENDER_MODE_NORMAL )
+ {
+ vector.x = ftbit->width;
+ vector.y = ftbit->rows;
+ FT_Vector_Transform(&vector, matrix);
+
+ width = vector.x;
+ height = vector.y;
+ }
pitch = (width+3) & ~3;
switch ( ftbit->pixel_mode )
@@ -112,6 +125,10 @@ _compute_xrender_bitmap_size( FT_Bitmap* target,
}
break;
+ case FT_PIXEL_MODE_BGRA:
+ pitch = width * 4;
+ break;
+
case FT_PIXEL_MODE_LCD:
if ( mode != FT_RENDER_MODE_LCD )
return -1;
@@ -142,6 +159,105 @@ _compute_xrender_bitmap_size( FT_Bitmap* target,
return pitch * height;
}
+/* this functions converts the glyph bitmap found in a FT_GlyphSlot
+ * into a different format while scaling by applying the given matrix
+ * (see _compute_xrender_bitmap_size)
+ *
+ * you should call this function after _compute_xrender_bitmap_size
+ *
+ * target :: target bitmap descriptor. Note that its 'buffer' pointer
+ * must point to memory allocated by the caller
+ *
+ * source :: the source bitmap descriptor
+ *
+ * matrix :: the scaling matrix to apply
+ */
+static void
+_scaled_fill_xrender_bitmap( FT_Bitmap* target,
+ FT_Bitmap* source,
+ const FT_Matrix* matrix )
+{
+ unsigned char* src_buf = source->buffer;
+ unsigned char* dst_line = target->buffer;
+ int src_pitch = source->pitch;
+ int width = target->width;
+ int height = target->rows;
+ int pitch = target->pitch;
+ int h;
+ FT_Vector vector;
+ FT_Matrix inverse = *matrix;
+ int sampling_width;
+ int sampling_height;
+ int sample_count;
+
+ if ( src_pitch < 0 )
+ src_buf -= src_pitch*(source->rows-1);
+
+ FT_Matrix_Invert(&inverse);
+
+ /* compute how many source pixels a target pixel spans */
+ vector.x = 1;
+ vector.y = 1;
+ FT_Vector_Transform(&vector, &inverse);
+ sampling_width = vector.x / 2;
+ sampling_height = vector.y / 2;
+ sample_count = (2 * sampling_width + 1) * (2 * sampling_height + 1);
+
+ for ( h = height; h > 0; h--, dst_line += pitch )
+ {
+ int x;
+
+ for ( x = 0; x < width; x++ )
+ {
+ unsigned char* src;
+
+#define CLAMP(x, min, max) ((x) < (min) ? (min) : ((x) > (max) ? (max) : (x)))
+
+ /* compute target pixel location in source space */
+ vector.x = (x * 0x10000) + 0x10000 / 2;
+ vector.y = ((height - h) * 0x10000) + 0x10000 / 2;
+ FT_Vector_Transform(&vector, &inverse);
+ vector.x = CLAMP(FT_RoundFix(vector.x) / 0x10000, 0, source->width - 1);
+ vector.y = CLAMP(FT_RoundFix(vector.y) / 0x10000, 0, source->rows - 1);
+
+ switch ( source->pixel_mode )
+ {
+ case FT_PIXEL_MODE_MONO: /* convert mono to 8-bit gray, scale using nearest pixel */
+ src = src_buf + (vector.y * src_pitch);
+ if ( src[(vector.x >> 3)] & (0x80 >> (vector.x & 7)) )
+ dst_line[x] = 0xff;
+ break;
+
+ case FT_PIXEL_MODE_GRAY: /* scale using nearest pixel */
+ src = src_buf + (vector.y * src_pitch);
+ dst_line[x] = src[vector.x];
+ break;
+
+ case FT_PIXEL_MODE_BGRA: /* scale by averaging all relevant source pixels, keep BGRA format */
+ {
+ int sample_x, sample_y;
+ int bgra[4] = {};
+ for (sample_y = - sampling_height; sample_y < sampling_height + 1; ++sample_y)
+ {
+ int src_y = CLAMP(vector.y + sample_y, 0, source->rows - 1);
+ src = src_buf + (src_y * src_pitch);
+ for (sample_x = - sampling_width; sample_x < sampling_width + 1; ++sample_x)
+ {
+ int src_x = CLAMP(vector.x + sample_x, 0, source->width - 1);
+ for (int i = 0; i < 4; ++i)
+ bgra[i] += src[src_x * 4 + i];
+ }
+ }
+
+ for (int i = 0; i < 4; ++i)
+ dst_line[4 * x + i] = bgra[i] / sample_count;
+ break;
+ }
+ }
+ }
+ }
+}
+
/* this functions converts the glyph bitmap found in a FT_GlyphSlot
* into a different format (see _compute_xrender_bitmap_size)
*
@@ -244,6 +360,11 @@ _fill_xrender_bitmap( FT_Bitmap* target,
}
break;
+ case FT_PIXEL_MODE_BGRA: /* Preserve BGRA format */
+ for ( h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch )
+ memcpy( dstLine, srcLine, width * 4 );
+ break;
+
case FT_PIXEL_MODE_LCD:
if ( !bgr )
{
@@ -365,6 +486,8 @@ XftFontLoadGlyphs (Display *dpy,
FT_Vector vector;
FT_Face face;
FT_Render_Mode mode = FT_RENDER_MODE_MONO;
+ FcBool transform;
+ FcBool glyph_transform;
if (!info)
return;
@@ -374,6 +497,8 @@ XftFontLoadGlyphs (Display *dpy,
if (!face)
return;
+ if (font->info.color)
+ mode = FT_RENDER_MODE_NORMAL;
if (font->info.antialias)
{
switch (font->info.rgba) {
@@ -390,6 +515,8 @@ XftFontLoadGlyphs (Display *dpy,
}
}
+ transform = font->info.transform && mode != FT_RENDER_MODE_MONO;
+
while (nglyph--)
{
glyphindex = *glyphs++;
@@ -440,7 +567,7 @@ XftFontLoadGlyphs (Display *dpy,
/*
* Compute glyph metrics from FreeType information
*/
- if(font->info.transform && glyphslot->format != FT_GLYPH_FORMAT_BITMAP)
+ if (transform)
{
/*
* calculate the true width by transforming all four corners.
@@ -487,7 +614,7 @@ XftFontLoadGlyphs (Display *dpy,
* Clip charcell glyphs to the bounding box
* XXX transformed?
*/
- if (font->info.spacing >= FC_CHARCELL && !font->info.transform)
+ if (font->info.spacing >= FC_CHARCELL && !transform)
{
if (font->info.load_flags & FT_LOAD_VERTICAL_LAYOUT)
{
@@ -519,18 +646,20 @@ XftFontLoadGlyphs (Display *dpy,
}
}
+ glyph_transform = transform;
if ( glyphslot->format != FT_GLYPH_FORMAT_BITMAP )
{
error = FT_Render_Glyph( face->glyph, mode );
if (error)
continue;
+ glyph_transform = False;
}
FT_Library_SetLcdFilter( _XftFTlibrary, FT_LCD_FILTER_NONE );
if (font->info.spacing >= FC_MONO)
{
- if (font->info.transform)
+ if (transform)
{
if (font->info.load_flags & FT_LOAD_VERTICAL_LAYOUT)
{
@@ -613,14 +742,27 @@ XftFontLoadGlyphs (Display *dpy,
}
}
- size = _compute_xrender_bitmap_size( &local, glyphslot, mode );
+ size = _compute_xrender_bitmap_size( &local, glyphslot, mode, glyph_transform ? &font->info.matrix : NULL );
if ( size < 0 )
continue;
xftg->metrics.width = local.width;
xftg->metrics.height = local.rows;
- xftg->metrics.x = - glyphslot->bitmap_left;
- xftg->metrics.y = glyphslot->bitmap_top;
+ if (transform)
+ {
+ vector.x = - glyphslot->bitmap_left;
+ vector.y = glyphslot->bitmap_top;
+
+ FT_Vector_Transform(&vector, &font->info.matrix);
+
+ xftg->metrics.x = vector.x;
+ xftg->metrics.y = vector.y;
+ }
+ else
+ {
+ xftg->metrics.x = - glyphslot->bitmap_left;
+ xftg->metrics.y = glyphslot->bitmap_top;
+ }
/*
* If the glyph is relatively large (> 1% of server memory),
@@ -645,9 +787,12 @@ XftFontLoadGlyphs (Display *dpy,
local.buffer = bufBitmap;
- _fill_xrender_bitmap( &local, glyphslot, mode,
- (font->info.rgba == FC_RGBA_BGR ||
- font->info.rgba == FC_RGBA_VBGR ) );
+ if (mode == FT_RENDER_MODE_NORMAL && glyph_transform)
+ _scaled_fill_xrender_bitmap(&local, &glyphslot->bitmap, &font->info.matrix);
+ else
+ _fill_xrender_bitmap( &local, glyphslot, mode,
+ (font->info.rgba == FC_RGBA_BGR ||
+ font->info.rgba == FC_RGBA_VBGR ) );
/*
* Copy or convert into local buffer.
@@ -662,6 +807,7 @@ XftFontLoadGlyphs (Display *dpy,
*/
glyph = (Glyph) glyphindex;
+ xftg->picture = 0;
xftg->glyph_memory = size + sizeof (XftGlyph);
if (font->format)
{
@@ -685,15 +831,35 @@ XftFontLoadGlyphs (Display *dpy,
}
}
}
- else if ( mode != FT_RENDER_MODE_NORMAL )
+ else if (glyphslot->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA || mode != FT_RENDER_MODE_NORMAL)
{
/* invert ARGB <=> BGRA */
if (ImageByteOrder (dpy) != XftNativeByteOrder ())
XftSwapCARD32 ((CARD32 *) bufBitmap, size >> 2);
}
- XRenderAddGlyphs (dpy, font->glyphset, &glyph,
- &xftg->metrics, 1,
- (char *) bufBitmap, size);
+
+ if (glyphslot->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA)
+ {
+ Pixmap pixmap = XCreatePixmap(dpy, DefaultRootWindow(dpy), local.width, local.rows, 32);
+ GC gc = XCreateGC(dpy, pixmap, 0, NULL);
+ XImage image = {
+ local.width, local.rows, 0, ZPixmap, (char *)bufBitmap,
+ dpy->byte_order, dpy->bitmap_unit, dpy->bitmap_bit_order, 32,
+ 32, local.width * 4 - local.pitch, 32,
+ 0, 0, 0
+ };
+
+ XInitImage(&image);
+ XPutImage(dpy, pixmap, gc, &image, 0, 0, 0, 0, local.width, local.rows);
+ xftg->picture = XRenderCreatePicture(dpy, pixmap, font->format, 0, NULL);
+
+ XFreeGC(dpy, gc);
+ XFreePixmap(dpy, pixmap);
+ }
+ else
+ XRenderAddGlyphs (dpy, font->glyphset, &glyph,
+ &xftg->metrics, 1,
+ (char *) bufBitmap, size);
}
else
{
@@ -744,7 +910,9 @@ XftFontUnloadGlyphs (Display *dpy,
{
if (font->format)
{
- if (font->glyphset)
+ if (xftg->picture)
+ XRenderFreePicture(dpy, xftg->picture);
+ else if (font->glyphset)
{
glyphBuf[nused++] = (Glyph) glyphindex;
if (nused == sizeof (glyphBuf) / sizeof (glyphBuf[0]))
diff --git a/src/xftint.h b/src/xftint.h
index c06ac3c..b263520 100644
--- a/src/xftint.h
+++ b/src/xftint.h
@@ -85,6 +85,7 @@ typedef struct _XftGlyph {
XGlyphInfo metrics;
void *bitmap;
unsigned long glyph_memory;
+ Picture picture;
} XftGlyph;
/*
@@ -134,6 +135,7 @@ struct _XftFontInfo {
FT_F26Dot6 xsize, ysize; /* pixel size */
FcBool antialias; /* doing antialiasing */
FcBool embolden; /* force emboldening */
+ FcBool color; /* contains color glyphs */
int rgba; /* subpixel order */
int lcd_filter; /* lcd filter */
FT_Matrix matrix; /* glyph transformation matrix */
diff --git a/src/xftrender.c b/src/xftrender.c
index b280c03..9a789cb 100644
--- a/src/xftrender.c
+++ b/src/xftrender.c
@@ -25,6 +25,35 @@
#define NUM_LOCAL 1024
#define NUM_ELT_LOCAL 128
+/*
+ * Dispatch glyph drawing to the correct XRenderCompositeString function
+ */
+static void
+_XftCompositeString (Display *dpy, int op, Picture src, Picture dst, XRenderPictFormat* format, GlyphSet glyphset, int srcx, int srcy, int dstx, int dsty, int charwidth, unsigned int* chars, int nchars)
+{
+ if (nchars == 0)
+ return;
+
+ switch (charwidth) {
+ case 1:
+ default:
+ XRenderCompositeString8 (dpy, op,
+ src, dst, format, glyphset,
+ srcx, srcy, dstx, dsty, (char*)chars, nchars);
+ break;
+ case 2:
+ XRenderCompositeString16(dpy, op,
+ src, dst, format, glyphset,
+ srcx, srcy, dstx, dsty, (unsigned short*)chars, nchars);
+ break;
+ case 4:
+ XRenderCompositeString32(dpy, op,
+ src, dst, format, glyphset,
+ srcx, srcy, dstx, dsty, (unsigned int*)chars, nchars);
+ break;
+ }
+}
+
/*
* Use the Render extension to draw the glyphs
*/
@@ -43,12 +72,14 @@ XftGlyphRender (Display *dpy,
int nglyphs)
{
XftFontInt *font = (XftFontInt *) pub;
- int i;
+ int i, j;
FT_UInt missing[XFT_NMISSING];
int nmissing;
FT_UInt g, max;
int size, width;
+ int dstx, dsty;
Glyph wire;
+ XftGlyph* glyph;
char *char8;
unsigned short *char16;
unsigned int *char32;
@@ -100,43 +131,75 @@ XftGlyphRender (Display *dpy,
if (!chars)
goto bail1;
}
+ dstx = x;
+ dsty = y;
char8 = (char *) chars;
char16 = (unsigned short *) chars;
char32 = (unsigned int *) chars;
- for (i = 0; i < nglyphs; i++)
+ for (i = 0, j = 0; i < nglyphs; i++)
{
wire = (Glyph) glyphs[i];
if (wire >= font->num_glyphs || !font->glyphs[wire])
wire = 0;
- switch (width) {
- case 1: char8[i] = (char) wire; break;
- case 2: char16[i] = (unsigned short) wire; break;
- case 4: char32[i] = (unsigned long) wire; break;
+ glyph = font->glyphs[wire];
+ if (glyph->picture)
+ {
+ _XftCompositeString(dpy, op, src, dst, font->format, font->glyphset, srcx, srcy, x, y, width, chars, j);
+ XRenderComposite(dpy, PictOpOver, glyph->picture, None, dst, 0, 0, 0, 0, dstx, dsty - glyph->metrics.y, glyph->metrics.width, glyph->metrics.height);
+ x = dstx = dstx + glyph->metrics.xOff;
+ x = dsty = dsty + glyph->metrics.yOff;
+ j = 0;
+ }
+ else
+ {
+ switch (width) {
+ case 1: char8[j] = (char) wire; break;
+ case 2: char16[j] = (unsigned short) wire; break;
+ case 4: char32[j] = (unsigned long) wire; break;
+ }
+ dstx += glyph->metrics.xOff;
+ dsty += glyph->metrics.yOff;
+ ++j;
}
}
- switch (width) {
+ _XftCompositeString(dpy, op, src, dst, font->format, font->glyphset, srcx, srcy, x, y, width, chars, j);
+ if (chars != char_local)
+ free (chars);
+bail1:
+ if (glyphs_loaded)
+ _XftFontManageMemory (dpy, pub);
+}
+
+/*
+ * Dispatch glyph drawing to the correct XRenderCompositeText function
+ */
+static void
+_XftCompositeText (Display *dpy, int op, Picture src, Picture dst, XRenderPictFormat* format, int srcx, int srcy, int dstx, int dsty, int eltwidth, XGlyphElt8* elts, int nelt)
+{
+ if (nelt == 0)
+ return;
+
+ switch (eltwidth) {
case 1:
default:
- XRenderCompositeString8 (dpy, op,
- src, dst, font->format, font->glyphset,
- srcx, srcy, x, y, char8, nglyphs);
+ XRenderCompositeText8 (dpy, op,
+ src, dst, format,
+ srcx, srcy, dstx, dsty,
+ (XGlyphElt8*)elts, nelt);
break;
case 2:
- XRenderCompositeString16(dpy, op,
- src, dst, font->format, font->glyphset,
- srcx, srcy, x, y, char16, nglyphs);
+ XRenderCompositeText16(dpy, op,
+ src, dst, format,
+ srcx, srcy, dstx, dsty,
+ (XGlyphElt16*)elts, nelt);
break;
case 4:
- XRenderCompositeString32(dpy, op,
- src, dst, font->format, font->glyphset,
- srcx, srcy, x, y, char32, nglyphs);
+ XRenderCompositeText32(dpy, op,
+ src, dst, format,
+ srcx, srcy, dstx, dsty,
+ (XGlyphElt32*)elts, nelt);
break;
}
- if (chars != char_local)
- free (chars);
-bail1:
- if (glyphs_loaded)
- _XftFontManageMemory (dpy, pub);
}
_X_EXPORT void
@@ -251,9 +314,10 @@ XftGlyphSpecRender (Display *dpy,
g = 0;
/*
* check to see if the glyph is placed where it would
- * fall using the normal spacing
+ * fall using the normal spacing and if it would render
+ * as a XRender glyph
*/
- if ((glyph = font->glyphs[g]))
+ if ((glyph = font->glyphs[g]) && !glyph->picture)
{
if (x != glyphs[i].x || y != glyphs[i].y)
{
@@ -267,7 +331,7 @@ XftGlyphSpecRender (Display *dpy,
}
elts = elts_local;
- if (nelt > NUM_ELT_LOCAL)
+ if (!font->info.color && nelt > NUM_ELT_LOCAL)
{
elts = malloc (nelt * sizeof (XGlyphElt8));
if (!elts)
@@ -275,7 +339,7 @@ XftGlyphSpecRender (Display *dpy,
}
/*
- * Generate the list of glyph elts
+ * Generate the list of glyph elts or render color glyphs
*/
nelt = 0;
x = y = 0;
@@ -289,6 +353,11 @@ XftGlyphSpecRender (Display *dpy,
g = 0;
if ((glyph = font->glyphs[g]))
{
+ if (glyph->picture)
+ {
+ XRenderComposite(dpy, PictOpOver, glyph->picture, None, dst, 0, 0, 0, 0, glyphs[i].x, glyphs[i].y - glyph->metrics.y, glyph->metrics.width, glyph->metrics.height);
+ continue;
+ }
if (!i || x != glyphs[i].x || y != glyphs[i].y)
{
if (n)
@@ -320,23 +389,9 @@ XftGlyphSpecRender (Display *dpy,
elts[nelt].nchars = n;
nelt++;
}
- switch (width) {
- case 1:
- XRenderCompositeText8 (dpy, op, src, dst, font->format,
- srcx, srcy, glyphs[0].x, glyphs[0].y,
- elts, nelt);
- break;
- case 2:
- XRenderCompositeText16 (dpy, op, src, dst, font->format,
- srcx, srcy, glyphs[0].x, glyphs[0].y,
- (XGlyphElt16 *) elts, nelt);
- break;
- case 4:
- XRenderCompositeText32 (dpy, op, src, dst, font->format,
- srcx, srcy, glyphs[0].x, glyphs[0].y,
- (XGlyphElt32 *) elts, nelt);
- break;
- }
+ _XftCompositeText(dpy, op, src, dst, font->format,
+ srcx, srcy, glyphs[0].x, glyphs[0].y,
+ width, elts, nelt);
if (elts != elts_local)
free (elts);
@@ -535,7 +590,7 @@ XftGlyphFontSpecRender (Display *dpy,
* check to see if the glyph is placed where it would
* fall using the normal spacing
*/
- if ((glyph = font->glyphs[g]))
+ if ((glyph = font->glyphs[g]) && !glyph->picture)
{
if (pub != prevPublic || x != glyphs[i].x || y != glyphs[i].y)
{
@@ -560,7 +615,7 @@ XftGlyphFontSpecRender (Display *dpy,
}
/*
- * Generate the list of glyph elts
+ * Generate the list of glyph elts and render color glyphs
*/
nelt = 0;
x = y = 0;
@@ -578,6 +633,11 @@ XftGlyphFontSpecRender (Display *dpy,
g = 0;
if ((glyph = font->glyphs[g]))
{
+ if (glyph->picture)
+ {
+ XRenderComposite(dpy, PictOpOver, glyph->picture, None, dst, 0, 0, 0, 0, glyphs[i].x, glyphs[i].y - glyph->metrics.y, glyph->metrics.width, glyph->metrics.height);
+ continue;
+ }
if (!i || pub != prevPublic || x != glyphs[i].x || y != glyphs[i].y)
{
if (n)
@@ -610,23 +670,9 @@ XftGlyphFontSpecRender (Display *dpy,
elts[nelt].nchars = n;
nelt++;
}
- switch (width) {
- case 1:
- XRenderCompositeText8 (dpy, op, src, dst, format,
- srcx, srcy, glyphs[0].x, glyphs[0].y,
- elts, nelt);
- break;
- case 2:
- XRenderCompositeText16 (dpy, op, src, dst, format,
- srcx, srcy, glyphs[0].x, glyphs[0].y,
- (XGlyphElt16 *) elts, nelt);
- break;
- case 4:
- XRenderCompositeText32 (dpy, op, src, dst, format,
- srcx, srcy, glyphs[0].x, glyphs[0].y,
- (XGlyphElt32 *) elts, nelt);
- break;
- }
+ _XftCompositeText(dpy, op, src, dst, format,
+ srcx, srcy, glyphs[0].x, glyphs[0].y,
+ width, elts, nelt);
if (elts != elts_local)
free (elts);
--
2.26.2

File diff suppressed because it is too large Load Diff