提交 d1c7890c 编写于 作者: C coolsnowwolf

x86:Add support for kernel 4.14 and new toolchain

上级 298ec483
此差异已折叠。
......@@ -24,4 +24,4 @@ KERNEL_PATCHVER ?= $(KERNEL)
# disable the md5sum check for unknown kernel versions
LINUX_KERNEL_HASH:=$(LINUX_KERNEL_HASH-$(strip $(LINUX_VERSION)))
LINUX_KERNEL_HASH?=x
LINUX_KERNEL_HASH?=x
\ No newline at end of file
......@@ -16,7 +16,7 @@ DEVICE_TYPE?=router
DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd \
iptables-mod-nat-extra kmod-nf-nathelper kmod-nf-nathelper-extra kmod-macvlan block-mount automount \
default-settings ipset-lists luci luci-app-ddns luci-app-sqm luci-app-upnp luci-app-adbyby-plus luci-app-autoreboot \
luci-app-filetransfer luci-app-shadowsocksr-pro luci-app-usb-printer luci-app-vsftpd luci-app-sfe \
luci-app-filetransfer luci-app-shadowsocksr-pro luci-app-usb-printer luci-app-vsftpd \
luci-app-pptp-server luci-app-ipsec-vpnd luci-app-vlmcsd luci-app-wifischedule luci-app-wol
# For nas targets
DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm
......
......@@ -13,9 +13,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/dtaht/sch_cake.git
PKG_SOURCE_DATE:=2017-01-28
PKG_SOURCE_VERSION:=9789742cfc596d48583ba4cdbc8f38d026121fa6
PKG_MIRROR_HASH:=2a5afc45722c28ca8778eb50452eb305306e7898b32d7d6d73d3e77edf3cce99
PKG_SOURCE_DATE:=2017-12-07
PKG_SOURCE_VERSION:=49776da5b93f03c8548e26f2d7982d553d1d226c
PKG_MIRROR_HASH:=d7bc6c333b43f6ff100a4b1d4593a18686fcdd6fd28a3aae55ea8bdad868b67f
include $(INCLUDE_DIR)/package.mk
......
......@@ -206,10 +206,21 @@ endef
$(eval $(call KernelPackage,block2mtd))
define KernelPackage/dax
SUBMENU:=$(BLOCK_MENU)
TITLE:=DAX: direct access to differentiated memory
DEPENDS:=@LINUX_4_14
KCONFIG:=CONFIG_DAX
FILES:=$(LINUX_DIR)/drivers/dax/dax.ko
endef
$(eval $(call KernelPackage,dax))
define KernelPackage/dm
SUBMENU:=$(BLOCK_MENU)
TITLE:=Device Mapper
DEPENDS:=+kmod-crypto-manager
DEPENDS:=+kmod-crypto-manager +LINUX_4_14:kmod-dax
# All the "=n" are unnecessary, they're only there
# to stop the config from asking the question.
# MIRROR is M because I've needed it for pvmove.
......
......@@ -120,6 +120,36 @@ endef
$(eval $(call KernelPackage,crypto-rng))
define KernelPackage/crypto-rsa
TITLE:=RSA algorithm
DEPENDS:=@!LINUX_3_18 +kmod-crypto-manager
KCONFIG:= CONFIG_CRYPTO_RSA
HIDDEN:=1
FILES:= \
$(LINUX_DIR)/lib/asn1_decoder.ko \
$(LINUX_DIR)/lib/mpi/mpi.ko \
$(LINUX_DIR)/crypto/akcipher.ko \
$(LINUX_DIR)/crypto/rsa_generic.ko
AUTOLOAD:=$(call AutoLoad,10,rsa_generic)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-rsa))
define KernelPackage/crypto-ecdh
TITLE:=ECDH algorithm
DEPENDS:=@!(LINUX_3_18||LINUX_4_4) +kmod-crypto-kpp
KCONFIG:= CONFIG_CRYPTO_ECDH
FILES:= \
$(LINUX_DIR)/crypto/ecdh_generic.ko
AUTOLOAD:=$(call AutoLoad,10,ecdh_generic)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-ecdh))
define KernelPackage/crypto-iv
TITLE:=CryptoAPI initialization vectors
DEPENDS:=+kmod-crypto-manager +kmod-crypto-rng +kmod-crypto-wq
......@@ -196,12 +226,13 @@ $(eval $(call KernelPackage,crypto-hw-padlock))
define KernelPackage/crypto-hw-ccp
TITLE:=AMD Cryptographic Coprocessor
DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash +kmod-crypto-manager +kmod-random-core +kmod-crypto-sha1 +kmod-crypto-sha256
DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash +kmod-crypto-manager +kmod-random-core +kmod-crypto-sha1 +kmod-crypto-sha256 +LINUX_4_14:kmod-crypto-rsa
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_CCP=y \
CONFIG_CRYPTO_DEV_CCP_CRYPTO \
CONFIG_CRYPTO_DEV_CCP_DD
CONFIG_CRYPTO_DEV_CCP_DD \
CONFIG_CRYPTO_DEV_SP_CCP=y
FILES:= \
$(LINUX_DIR)/drivers/crypto/ccp/ccp.ko \
$(LINUX_DIR)/drivers/crypto/ccp/ccp-crypto.ko
......@@ -330,9 +361,33 @@ endef
$(eval $(call KernelPackage,crypto-des))
define KernelPackage/crypto-kpp
TITLE:=Key-agreement Protocol Primitives
KCONFIG:=CONFIG_CRYPTO_KPP
HIDDEN:=1
FILES:=$(LINUX_DIR)/crypto/kpp.ko
AUTOLOAD:=$(call AutoLoad,09,kpp)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-kpp))
define KernelPackage/crypto-acompress
TITLE:=Asynchronous Compression operations
HIDDEN:=1
KCONFIG:=CONFIG_CRYPTO_ACOMP2
FILES:=$(LINUX_DIR)/crypto/crypto_acompress.ko
AUTOLOAD:=$(call AutoLoad,09,crypto_acompress)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-acompress))
define KernelPackage/crypto-deflate
TITLE:=Deflate compression CryptoAPI module
DEPENDS:=+kmod-lib-zlib-inflate +kmod-lib-zlib-deflate
DEPENDS:=+kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +LINUX_4_14:kmod-crypto-acompress
KCONFIG:=CONFIG_CRYPTO_DEFLATE
FILES:=$(LINUX_DIR)/crypto/deflate.ko
AUTOLOAD:=$(call AutoLoad,09,deflate)
......
......@@ -82,7 +82,7 @@ $(eval $(call KernelPackage,fs-autofs4))
define KernelPackage/fs-btrfs
SUBMENU:=$(FS_MENU)
TITLE:=BTRFS filesystem support
DEPENDS:=+kmod-lib-crc32c +kmod-lib-lzo +kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-lib-raid6 +kmod-lib-xor
DEPENDS:=+kmod-lib-crc32c +kmod-lib-lzo +kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-lib-raid6 +kmod-lib-xor +LINUX_4_14:kmod-lib-zstd
KCONFIG:=\
CONFIG_BTRFS_FS \
CONFIG_BTRFS_FS_POSIX_ACL=n \
......@@ -106,7 +106,8 @@ define KernelPackage/fs-cifs
CONFIG_CIFS \
CONFIG_CIFS_XATTR=y \
CONFIG_CIFS_DFS_UPCALL=n \
CONFIG_CIFS_UPCALL=n
CONFIG_CIFS_UPCALL=n \
CONFIG_CIFS_SMB311=n
FILES:=$(LINUX_DIR)/fs/cifs/cifs.ko
AUTOLOAD:=$(call AutoLoad,30,cifs)
$(call AddDepends/nls)
......
......@@ -142,6 +142,32 @@ endef
$(eval $(call KernelPackage,i2c-piix4))
I2C_I801_MODULES:= \
CONFIG_I2C_I801:drivers/i2c/busses/i2c-i801 \
CONFIG_I2C_SMBUS:drivers/i2c/i2c-smbus
define KernelPackage/i2c-i801
$(call i2c_defaults,$(I2C_I801_MODULES),59)
TITLE:=Intel I801 and compatible I2C interfaces
DEPENDS:=@PCI_SUPPORT @TARGET_x86 kmod-i2c-core
endef
define KernelPackage/i2c-i801/description
Support for the Intel I801 family of mainboard I2C interfaces,
specifically 82801AA, 82801AB, 82801BA, 82801CA/CAM, 82801DB,
82801EB/ER (ICH5/ICH5R), 6300ESB, ICH6, ICH7, ESB2, ICH8, ICH9,
EP80579 (Tolapai), ICH10, 5/3400 Series (PCH), 6 Series (PCH),
Patsburg (PCH), DH89xxCC (PCH), Panther Point (PCH),
Lynx Point (PCH), Lynx Point-LP (PCH), Avoton (SOC),
Wellsburg (PCH), Coleto Creek (PCH), Wildcat Point (PCH),
Wildcat Point-LP (PCH), BayTrail (SOC), Sunrise Point-H (PCH),
Sunrise Point-LP (PCH), DNV (SOC), Broxton (SOC),
Lewisburg (PCH).
endef
$(eval $(call KernelPackage,i2c-i801))
I2C_MUX_MODULES:= \
CONFIG_I2C_MUX:drivers/i2c/i2c-mux
......
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
IIO_MENU:=Industrial I/O Modules
define KernelPackage/iio-core
SUBMENU:=$(IIO_MENU)
TITLE:=Industrial IO core
KCONFIG:= \
CONFIG_IIO \
CONFIG_IIO_BUFFER=y \
CONFIG_IIO_KFIFO_BUF \
CONFIG_IIO_TRIGGER=y \
CONFIG_IIO_TRIGGERED_BUFFER
FILES:= \
$(LINUX_DIR)/drivers/iio/industrialio.ko \
$(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/industrialio-triggered-buffer.ko@lt4.4) \
$(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko@ge4.4) \
$(LINUX_DIR)/drivers/iio/kfifo_buf.ko@lt4.4 \
$(LINUX_DIR)/drivers/iio/buffer/kfifo_buf.ko@ge4.4
AUTOLOAD:=$(call AutoLoad,55,industrialio kfifo_buf industrialio-triggered-buffer)
endef
define KernelPackage/iio-core/description
The industrial I/O subsystem provides a unified framework for
drivers for many different types of embedded sensors using a
number of different physical interfaces (i2c, spi, etc)
endef
$(eval $(call KernelPackage,iio-core))
define KernelPackage/iio-ad799x
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core
TITLE:=Analog Devices AD799x ADC driver
KCONFIG:= \
CONFIG_AD799X_RING_BUFFER=y \
CONFIG_AD799X
FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
AUTOLOAD:=$(call AutoLoad,56,ad799x)
endef
define KernelPackage/iio-ad799x/description
support for Analog Devices:
ad7991, ad7995, ad7999, ad7992, ad7993, ad7994, ad7997, ad7998
i2c analog to digital converters (ADC).
endef
$(eval $(call KernelPackage,iio-ad799x))
define KernelPackage/iio-dht11
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-iio-core @GPIO_SUPPORT @USES_DEVICETREE
TITLE:=DHT11 (and compatible) humidity and temperature sensors
KCONFIG:= \
CONFIG_DHT11
FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
AUTOLOAD:=$(call AutoLoad,56,dht11)
endef
define KernelPackage/iio-dht11/description
support for DHT11 and DHT22 digitial humidity and temperature sensors
attached at GPIO lines. You will need a custom device tree file to
specify the GPIO line to use.
endef
$(eval $(call KernelPackage,iio-dht11))
define KernelPackage/iio-bmp280
SUBMENU:=$(IIO_MENU)
TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor
DEPENDS:=@(LINUX_4_9||LINUX_4_14) +kmod-iio-core +kmod-regmap
KCONFIG:=CONFIG_BMP280
FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280.ko
endef
define KernelPackage/iio-bmp280/description
This driver adds support for Bosch Sensortec BMP180 and BMP280 pressure and
temperature sensors. Also supports the BME280 with an additional humidity
sensor channel.
endef
$(eval $(call KernelPackage,iio-bmp280))
define KernelPackage/iio-bmp280-i2c
SUBMENU:=$(IIO_MENU)
TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (I2C)
DEPENDS:=+kmod-iio-bmp280 +kmod-i2c-core
KCONFIG:=CONFIG_BMP280_I2C
FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-i2c.ko
AUTOLOAD:=$(call AutoProbe,iio-bmp280-i2c)
endef
define KernelPackage/iio-bmp280-i2c/description
This driver adds support for Bosch Sensortec's digital pressure and
temperature sensor connected via I2C.
endef
$(eval $(call KernelPackage,iio-bmp280-i2c))
define KernelPackage/iio-bmp280-spi
SUBMENU:=$(IIO_MENU)
TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (SPI)
DEPENDS:=+kmod-iio-bmp280 +kmod-spi-bitbang
KCONFIG:=CONFIG_BMP280_SPI
FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-spi.ko
AUTOLOAD:=$(call AutoProbe,iio-bmp280-spi)
endef
define KernelPackage/iio-bmp280-spi/description
This driver adds support for Bosch Sensortec's digital pressure and
temperature sensor connected via SPI.
endef
$(eval $(call KernelPackage,iio-bmp280-spi))
......@@ -101,14 +101,17 @@ $(eval $(call KernelPackage,lib-crc32c))
define KernelPackage/lib-lzo
SUBMENU:=$(LIB_MENU)
TITLE:=LZO support
DEPENDS:=+LINUX_4_14:kmod-crypto-acompress
KCONFIG:= \
CONFIG_CRYPTO_LZO@ge4.9 \
CONFIG_LZO_COMPRESS \
CONFIG_LZO_DECOMPRESS
HIDDEN:=1
FILES:= \
$(LINUX_DIR)/crypto/lzo.ko@ge4.9 \
$(LINUX_DIR)/lib/lzo/lzo_compress.ko \
$(LINUX_DIR)/lib/lzo/lzo_decompress.ko
AUTOLOAD:=$(call AutoProbe,lzo_compress lzo_decompress)
AUTOLOAD:=$(call AutoProbe,lzo@ge4.9 lzo_compress lzo_decompress)
endef
define KernelPackage/lib-lzo/description
......@@ -118,17 +121,42 @@ endef
$(eval $(call KernelPackage,lib-lzo))
define KernelPackage/lib-zstd
SUBMENU:=$(LIB_MENU)
TITLE:=ZSTD support
KCONFIG:= \
CONFIG_ZSTD_COMPRESS \
CONFIG_ZSTD_DECOMPRESS \
CONFIG_XXHASH
HIDDEN:=1
FILES:= \
$(LINUX_DIR)/lib/xxhash.ko \
$(LINUX_DIR)/lib/zstd/zstd_compress.ko \
$(LINUX_DIR)/lib/zstd/zstd_decompress.ko
AUTOLOAD:=$(call AutoProbe,xxhash zstd_compress zstd_decompress)
endef
define KernelPackage/lib-zstd/description
Kernel module for ZSTD compression/decompression support
endef
$(eval $(call KernelPackage,lib-zstd))
define KernelPackage/lib-lz4
SUBMENU:=$(LIB_MENU)
TITLE:=LZ4 support
DEPENDS:=+LINUX_4_14:kmod-crypto-acompress
HIDDEN:=1
KCONFIG:= \
CONFIG_CRYPTO_LZ4@ge4.9 \
CONFIG_LZ4_COMPRESS \
CONFIG_LZ4_DECOMPRESS
FILES:= \
$(LINUX_DIR)/crypto/lz4.ko@ge4.9 \
$(LINUX_DIR)/lib/lz4/lz4_compress.ko \
$(LINUX_DIR)/lib/lz4/lz4_decompress.ko
AUTOLOAD:=$(call AutoProbe,lz4_compress lz4_decompress)
AUTOLOAD:=$(call AutoProbe,lz4@ge4.9 lz4_compress lz4_decompress)
endef
define KernelPackage/lib-lz4/description
......
......@@ -304,6 +304,22 @@ endef
$(eval $(call KernelPackage,r6040))
define KernelPackage/niu
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Sun Neptune 10Gbit Ethernet support
DEPENDS:=@PCI_SUPPORT
KCONFIG:=CONFIG_NIU
FILES:=$(LINUX_DIR)/drivers/net/ethernet/sun/niu.ko
AUTOLOAD:=$(call AutoProbe,niu)
endef
define KernelPackage/niu/description
This enables support for cards based upon Sun's Neptune chipset.
endef
$(eval $(call KernelPackage,niu))
define KernelPackage/sis900
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=SiS 900 Ethernet support
......@@ -555,6 +571,25 @@ endef
$(eval $(call KernelPackage,ixgbe))
define KernelPackage/ixgbevf
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Intel(R) 82599 Virtual Function Ethernet support
DEPENDS:=@PCI_SUPPORT +kmod-ixgbe
KCONFIG:=CONFIG_IXGBEVF \
CONFIG_IXGBE_VXLAN=n \
CONFIG_IXGBE_HWMON=n \
CONFIG_IXGBE_DCA=n
FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
AUTOLOAD:=$(call AutoLoad,35,ixgbevf)
endef
define KernelPackage/ixgbevf/description
Kernel modules for Intel(R) 82599 Virtual Function Ethernet adapters.
endef
$(eval $(call KernelPackage,ixgbevf))
define KernelPackage/b44
TITLE:=Broadcom 44xx driver
KCONFIG:=CONFIG_B44
......@@ -611,8 +646,9 @@ $(eval $(call KernelPackage,pcnet32))
define KernelPackage/tg3
TITLE:=Broadcom Tigon3 Gigabit Ethernet
KCONFIG:=CONFIG_TIGON3
DEPENDS:=+!TARGET_brcm47xx:kmod-libphy +kmod-hwmon-core +kmod-ptp
KCONFIG:=CONFIG_TIGON3 \
CONFIG_TIGON3_HWMON=n
DEPENDS:=+!TARGET_brcm47xx:kmod-libphy +!LINUX_4_14:kmod-hwmon-core +kmod-ptp
SUBMENU:=$(NETWORK_DEVICES_MENU)
FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/tg3.ko
AUTOLOAD:=$(call AutoLoad,19,tg3,1)
......
......@@ -529,6 +529,23 @@ endef
$(eval $(call KernelPackage,ipt-u32))
define KernelPackage/ipt-checksum
TITLE:=CHECKSUM support
KCONFIG:= \
CONFIG_NETFILTER_XT_TARGET_CHECKSUM
FILES:= \
$(LINUX_DIR)/net/netfilter/xt_CHECKSUM.ko \
$(foreach mod,$(IPT_CHECKSUM-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CHECKSUM-m)))
$(call AddDepends/ipt)
endef
define KernelPackage/ipt-checksum/description
Kernel modules for CHECKSUM fillin target
endef
$(eval $(call KernelPackage,ipt-checksum))
define KernelPackage/ipt-iprange
TITLE:=Module for matching ip ranges
......
......@@ -271,7 +271,8 @@ define KernelPackage/ipsec4
CONFIG_INET_XFRM_MODE_BEET \
CONFIG_INET_XFRM_MODE_TRANSPORT \
CONFIG_INET_XFRM_MODE_TUNNEL \
CONFIG_INET_XFRM_TUNNEL
CONFIG_INET_XFRM_TUNNEL \
CONFIG_INET_ESP_OFFLOAD=n
FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
endef
......@@ -311,7 +312,8 @@ define KernelPackage/ipsec6
CONFIG_INET6_XFRM_MODE_BEET \
CONFIG_INET6_XFRM_MODE_TRANSPORT \
CONFIG_INET6_XFRM_MODE_TUNNEL \
CONFIG_INET6_XFRM_TUNNEL
CONFIG_INET6_XFRM_TUNNEL \
CONFIG_INET6_ESP_OFFLOAD=n
FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
endef
......@@ -923,9 +925,10 @@ define KernelPackage/rxrpc
CONFIG_RXKAD=m \
CONFIG_AF_RXRPC_DEBUG=n
FILES:= \
$(LINUX_DIR)/net/rxrpc/af-rxrpc.ko \
$(LINUX_DIR)/net/rxrpc/af-rxrpc.ko@lt4.11 \
$(LINUX_DIR)/net/rxrpc/rxrpc.ko@ge4.11 \
$(LINUX_DIR)/net/rxrpc/rxkad.ko@lt4.7
AUTOLOAD:=$(call AutoLoad,30,rxkad@lt4.7 af-rxrpc)
AUTOLOAD:=$(call AutoLoad,30,rxkad@lt4.7 af-rxrpc.ko@lt4.11 rxrpc.ko@ge4.11)
DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
endef
......@@ -942,6 +945,7 @@ define KernelPackage/mpls
KCONFIG:= \
CONFIG_MPLS=y \
CONFIG_LWTUNNEL=y \
CONFIG_LWTUNNEL_BPF=n \
CONFIG_NET_MPLS_GSO=m \
CONFIG_MPLS_ROUTING=m \
CONFIG_MPLS_IPTUNNEL=m
......@@ -965,6 +969,7 @@ define KernelPackage/9pnet
KCONFIG:= \
CONFIG_NET_9P \
CONFIG_NET_9P_DEBUG=n \
CONFIG_NET_9P_XEN=n \
CONFIG_NET_9P_VIRTIO
FILES:= \
$(LINUX_DIR)/net/9p/9pnet.ko \
......@@ -1009,3 +1014,18 @@ define KernelPackage/mdio/description
endef
$(eval $(call KernelPackage,mdio))
define KernelPackage/macsec
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
DEPENDS:=+kmod-crypto-gcm @!LINUX_3_18 @!LINUX_4_1 @!LINUX_4_4
KCONFIG:=CONFIG_MACSEC
FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
AUTOLOAD:=$(call AutoLoad,13,macsec)
endef
define KernelPackage/macsec/description
MACsec is an encryption standard for Ethernet.
endef
$(eval $(call KernelPackage,macsec))
......@@ -30,7 +30,7 @@ $(eval $(call KernelPackage,6lowpan))
define KernelPackage/bluetooth
SUBMENU:=$(OTHER_MENU)
TITLE:=Bluetooth support
DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +!LINUX_3_18:kmod-crypto-cmac +!LINUX_3_18:kmod-regmap
DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +!LINUX_3_18:kmod-crypto-cmac +!LINUX_3_18:kmod-regmap +LINUX_4_14:kmod-crypto-ecdh
KCONFIG:= \
CONFIG_BLUEZ \
CONFIG_BLUEZ_L2CAP \
......@@ -114,6 +114,27 @@ endef
$(eval $(call KernelPackage,bluetooth_6lowpan))
define KernelPackage/btmrvl
SUBMENU:=$(OTHER_MENU)
TITLE:=Marvell Bluetooth Kernel Module support
DEPENDS:=+kmod-mmc +kmod-bluetooth +mwifiex-sdio-firmware
KCONFIG:= \
CONFIG_BT_MRVL \
CONFIG_BT_MRVL_SDIO
$(call AddDepends/bluetooth)
FILES:= \
$(LINUX_DIR)/drivers/bluetooth/btmrvl.ko \
$(LINUX_DIR)/drivers/bluetooth/btmrvl_sdio.ko
AUTOLOAD:=$(call AutoProbe,btmrvl btmrvl_sdio)
endef
define KernelPackage/btmrvl/description
Kernel support for Marvell SDIO Bluetooth Module
endef
$(eval $(call KernelPackage,btmrvl))
define KernelPackage/dma-buf
SUBMENU:=$(OTHER_MENU)
TITLE:=DMA shared buffer support
......@@ -263,71 +284,6 @@ endef
$(eval $(call KernelPackage,gpio-pcf857x))
define KernelPackage/iio-core
SUBMENU:=$(OTHER_MENU)
TITLE:=Industrial IO core
KCONFIG:= \
CONFIG_IIO \
CONFIG_IIO_BUFFER=y \
CONFIG_IIO_KFIFO_BUF \
CONFIG_IIO_TRIGGER=y \
CONFIG_IIO_TRIGGERED_BUFFER
FILES:= \
$(LINUX_DIR)/drivers/iio/industrialio.ko \
$(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/industrialio-triggered-buffer.ko@lt4.4) \
$(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko@ge4.4) \
$(LINUX_DIR)/drivers/iio/kfifo_buf.ko@lt4.4 \
$(LINUX_DIR)/drivers/iio/buffer/kfifo_buf.ko@ge4.4
AUTOLOAD:=$(call AutoLoad,55,industrialio kfifo_buf industrialio-triggered-buffer)
endef
define KernelPackage/iio-core/description
The industrial I/O subsystem provides a unified framework for
drivers for many different types of embedded sensors using a
number of different physical interfaces (i2c, spi, etc)
endef
$(eval $(call KernelPackage,iio-core))
define KernelPackage/iio-ad799x
SUBMENU:=$(OTHER_MENU)
DEPENDS:=kmod-i2c-core kmod-iio-core
TITLE:=Analog Devices AD799x ADC driver
KCONFIG:= \
CONFIG_AD799X_RING_BUFFER=y \
CONFIG_AD799X
FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
AUTOLOAD:=$(call AutoLoad,56,ad799x)
endef
define KernelPackage/iio-ad799x/description
support for Analog Devices:
ad7991, ad7995, ad7999, ad7992, ad7993, ad7994, ad7997, ad7998
i2c analog to digital converters (ADC).
endef
$(eval $(call KernelPackage,iio-ad799x))
define KernelPackage/iio-dht11
SUBMENU:=$(OTHER_MENU)
DEPENDS:=kmod-iio-core @GPIO_SUPPORT @USES_DEVICETREE
TITLE:=DHT11 (and compatible) humidity and temperature sensors
KCONFIG:= \
CONFIG_DHT11
FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
AUTOLOAD:=$(call AutoLoad,56,dht11)
endef
define KernelPackage/iio-dht11/description
support for DHT11 and DHT22 digitial humidity and temperature sensors
attached at GPIO lines. You will need a custom device tree file to
specify the GPIO line to use.
endef
$(eval $(call KernelPackage,iio-dht11))
define KernelPackage/lp
SUBMENU:=$(OTHER_MENU)
......@@ -361,7 +317,8 @@ define KernelPackage/mmc
CONFIG_SDIO_UART=n
FILES:= \
$(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
$(LINUX_DIR)/drivers/mmc/card/mmc_block.ko
$(LINUX_DIR)/drivers/mmc/card/mmc_block.ko@lt4.10 \
$(LINUX_DIR)/drivers/mmc/core/mmc_block.ko@ge4.10
AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1)
endef
......@@ -486,7 +443,7 @@ define KernelPackage/rtc-ds1307
SUBMENU:=$(OTHER_MENU)
TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
DEPENDS:=+kmod-i2c-core +LINUX_4_14:kmod-regmap
KCONFIG:=CONFIG_RTC_DRV_DS1307 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
......@@ -648,6 +605,20 @@ endef
$(eval $(call KernelPackage,mtdtests))
define KernelPackage/mtdoops
SUBMENU:=$(OTHER_MENU)
TITLE:=Log panic/oops to an MTD buffer
KCONFIG:=CONFIG_MTD_OOPS
FILES:=$(LINUX_DIR)/drivers/mtd/mtdoops.ko
endef
define KernelPackage/mtdoops/description
Kernel modules for Log panic/oops to an MTD buffer
endef
$(eval $(call KernelPackage,mtdoops))
define KernelPackage/serial-8250
SUBMENU:=$(OTHER_MENU)
TITLE:=8250 UARTs
......@@ -722,6 +693,7 @@ define KernelPackage/zram
CONFIG_ZRAM \
CONFIG_ZRAM_DEBUG=n \
CONFIG_PGTABLE_MAPPING=n \
CONFIG_ZRAM_WRITEBACK=n \
CONFIG_ZSMALLOC_STAT=n \
CONFIG_ZRAM_LZ4_COMPRESS=y
FILES:= \
......@@ -1044,3 +1016,38 @@ define KernelPackage/w83627hf-wdt/description
endef
$(eval $(call KernelPackage,w83627hf-wdt))
define KernelPackage/itco-wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=Intel iTCO Watchdog Timer
KCONFIG:=CONFIG_ITCO_WDT \
CONFIG_ITCO_VENDOR_SUPPORT=y
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/iTCO_wdt.ko \
$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/iTCO_vendor_support.ko
AUTOLOAD:=$(call AutoLoad,50,iTCO_vendor_support iTCO_wdt,1)
endef
define KernelPackage/itco-wdt/description
Kernel module for Intel iTCO Watchdog Timer
endef
$(eval $(call KernelPackage,itco-wdt))
define KernelPackage/it87-wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=ITE IT87 Watchdog Timer
KCONFIG:=CONFIG_IT87_WDT
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/it87_wdt.ko
AUTOLOAD:=$(call AutoLoad,50,it87-wdt,1)
MODPARAMS.it87-wdt:= \
nogameport=1 \
nocir=1
endef
define KernelPackage/it87-wdt/description
Kernel module for ITE IT87 Watchdog Timer
endef
$(eval $(call KernelPackage,it87-wdt))
......@@ -24,7 +24,8 @@ SOUNDCORE_FILES ?= \
$(LINUX_DIR)/sound/soundcore.ko \
$(LINUX_DIR)/sound/core/snd.ko \
$(LINUX_DIR)/sound/core/snd-hwdep.ko \
$(LINUX_DIR)/sound/core/seq/snd-seq-device.ko \
$(LINUX_DIR)/sound/core/seq/snd-seq-device.ko@lt4.13 \
$(LINUX_DIR)/sound/core/snd-seq-device.ko@ge4.13 \
$(LINUX_DIR)/sound/core/snd-rawmidi.ko \
$(LINUX_DIR)/sound/core/snd-timer.ko \
$(LINUX_DIR)/sound/core/snd-pcm.ko \
......
......@@ -509,6 +509,7 @@ define KernelPackage/usb-serial-edgeport
FILES:=$(LINUX_DIR)/drivers/usb/serial/io_edgeport.ko
AUTOLOAD:=$(call AutoProbe,io_edgeport)
$(call AddDepends/usb-serial)
DEPENDS+=+edgeport-firmware
endef
define KernelPackage/usb-serial-edgeport/description
......@@ -531,14 +532,6 @@ define KernelPackage/usb-serial-edgeport/description
Edgeport/16 Dual
endef
define KernelPackage/usb-serial-edgeport/install
$(INSTALL_DIR) $(1)/lib/firmware/edgeport
$(INSTALL_DATA) $(LINUX_DIR)/firmware/edgeport/boot.fw $(1)/lib/firmware/edgeport/
$(INSTALL_DATA) $(LINUX_DIR)/firmware/edgeport/boot2.fw $(1)/lib/firmware/edgeport/
$(INSTALL_DATA) $(LINUX_DIR)/firmware/edgeport/down.fw $(1)/lib/firmware/edgeport/
$(INSTALL_DATA) $(LINUX_DIR)/firmware/edgeport/down2.fw $(1)/lib/firmware/edgeport/
endef
$(eval $(call KernelPackage,usb-serial-edgeport))
......@@ -895,6 +888,25 @@ endef
$(eval $(call KernelPackage,usb-storage-extras))
define KernelPackage/usb-storage-uas
SUBMENU:=$(USB_MENU)
TITLE:=USB Attached SCSI (UASP) support
DEPENDS:=+kmod-usb-storage
KCONFIG:=CONFIG_USB_UAS
FILES:=$(LINUX_DIR)/drivers/usb/storage/uas.ko
AUTOLOAD:=$(call AutoProbe,uas)
endef
define KernelPackage/usb-storage-uas/description
Say Y here if you want to include support for
USB Attached SCSI (UAS/UASP), a higher
performance protocol available on many
newer USB 3.0 storage devices
endef
$(eval $(call KernelPackage,usb-storage-uas))
define KernelPackage/usb-atm
TITLE:=Support for ATM on USB bus
DEPENDS:=+kmod-atm
......
......@@ -81,7 +81,7 @@ $(eval $(call KernelPackage,fb))
define KernelPackage/fbcon
SUBMENU:=$(VIDEO_MENU)
TITLE:=Framebuffer Console support
DEPENDS:=+kmod-fb
DEPENDS:=+kmod-fb @!LINUX_4_14
KCONFIG:= \
CONFIG_FRAMEBUFFER_CONSOLE \
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y \
......
......@@ -17,7 +17,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/automount
TITLE:=Mount autoconfig hotplug script.
MAINTAINER:=Lean
DEPENDS:=block-mount +kmod-usb-storage +kmod-usb-storage-extras +kmod-fs-ext4 +kmod-fs-vfat +kmod-fs-exfat +ntfs-3g
DEPENDS:=block-mount +kmod-usb-storage +kmod-usb-storage-extras +kmod-fs-ext4 +kmod-fs-vfat +ntfs-3g
endef
define Package/automount/description
......
......@@ -13,7 +13,7 @@ FEATURES:=squashfs ext4 vdi vmdk pcmcia targz fpu
SUBTARGETS:=generic legacy geode 64
MAINTAINER:=Felix Fietkau <nbd@nbd.name>
KERNEL_PATCHVER:=4.9
KERNEL_PATCHVER:=4.14
KERNELNAME:=bzImage
......
# Copyright (C) 2006-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
menuconfig TARGET_OPTIONS
bool "Target Options" if DEVEL
config TARGET_OPTIMIZATION
string "Target Optimizations" if TARGET_OPTIONS
default DEFAULT_TARGET_OPTIMIZATION
help
Optimizations to use when building for the target host.
config SOFT_FLOAT
bool "Use software floating point by default" if TARGET_OPTIONS
default y if !HAS_FPU
depends on arm || armeb || powerpc || mipsel || mips || mips64el || mips64
help
If your target CPU does not have a Floating Point Unit (FPU) or a
kernel FPU emulator, but you still wish to support floating point
functions, then everything will need to be compiled with soft floating
point support (-msoft-float).
Most people will answer N.
config USE_MIPS16
bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS
depends on HAS_MIPS16
default y
help
If your target CPU does support the MIPS16 instruction set
and you want to use it for packages, enable this option.
MIPS16 produces smaller binaries thus reducing pressure on
caches and TLB.
Most people will answer N.
menuconfig EXTERNAL_TOOLCHAIN
bool
prompt "Use external toolchain" if DEVEL
help
If enabled, LEDE will compile using an existing toolchain instead of
compiling one.
config NATIVE_TOOLCHAIN
bool
prompt "Use host's toolchain" if DEVEL
depends on EXTERNAL_TOOLCHAIN
select NO_STRIP
help
If enabled, LEDE will compile using the native toolchain for your
host instead of compiling one.
config TARGET_NAME
string
prompt "Target name" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "aarch64-unknown-linux-gnu" if aarch64
default "aarch64_be-unknown-linux-gnu" if aarch64_be
default "arm-unknown-linux-gnu" if arm
default "armeb-unknown-linux-gnu" if armeb
default "i486-unknown-linux-gnu" if i386
default "mips-unknown-linux-gnu" if mips
default "mipsel-unknown-linux-gnu" if mipsel
default "powerpc-unknown-linux-gnu" if powerpc
default "x86_64-unknown-linux-gnu" if x86_64
config TOOLCHAIN_PREFIX
string
prompt "Toolchain prefix" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "aarch64-unknown-linux-gnu" if aarch64
default "aarch64_be-unknown-linux-gnu" if aarch64_be
default "arm-unknown-linux-gnu-" if arm
default "armeb-unknown-linux-gnu-" if armeb
default "i486-unknown-linux-gnu-" if i386
default "mips-unknown-linux-gnu-" if mips
default "mipsel-unknown-linux-gnu-" if mipsel
default "powerpc-unknown-linux-gnu-" if powerpc
default "x86_64-unknown-linux-gnu-" if x86_64
config TOOLCHAIN_ROOT
string
prompt "Toolchain root" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "/opt/cross/aarch64-unknown-linux-gnu" if aarch64
default "/opt/cross/aarch64_be-unknown-linux-gnu" if aarch64_be
default "/opt/cross/arm-unknown-linux-gnu" if arm
default "/opt/cross/armeb-unknown-linux-gnu" if armeb
default "/opt/cross/i486-unknown-linux-gnu" if i386
default "/opt/cross/mips-unknown-linux-gnu" if mips
default "/opt/cross/mipsel-unknown-linux-gnu" if mipsel
default "/opt/cross/powerpc-unknown-linux-gnu" if powerpc
default "/opt/cross/x86_64-unknown-linux-gnu" if x86_64
choice TOOLCHAIN_LIBC_TYPE
prompt "Toolchain libc" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
help
Specify the libc type used by the external toolchain. The given value
is passed as -m flag to all gcc and g++ invocations. This is mainly
intended for multilib toolchains which support glibc and uclibc at
the same time. If no value is specified, no -m flag is passed.
config EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC
bool "glibc"
select USE_GLIBC
config EXTERNAL_TOOLCHAIN_LIBC_USE_UCLIBC
bool "uClibc"
select USE_UCLIBC
depends on !(aarch64 || aarch64_be)
config EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
bool "musl"
select USE_MUSL
endchoice
config TOOLCHAIN_LIBC
string
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "glibc" if EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC
default "uclibc" if EXTERNAL_TOOLCHAIN_LIBC_USE_UCLIBC
default "musl" if EXTERNAL_TOOLCHAIN_LIBC_USE_MUSL
config TOOLCHAIN_BIN_PATH
string
prompt "Toolchain program path" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "./usr/bin ./bin"
help
Specify additional directories searched for toolchain binaries
(override PATH). Use ./DIR for directories relative to the root above.
config TOOLCHAIN_INC_PATH
string
prompt "Toolchain include path" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "./usr/include ./include"
help
Specify additional directories searched for header files (override
CPPFLAGS). Use ./DIR for directories relative to the root above.
config TOOLCHAIN_LIB_PATH
string
prompt "Toolchain library path" if DEVEL
depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "./usr/lib ./lib"
help
Specify additional directories searched for libraries (override LDFLAGS).
Use ./DIR for directories relative to the root above.
config NEED_TOOLCHAIN
bool
depends on DEVEL
default y if !EXTERNAL_TOOLCHAIN
menuconfig TOOLCHAINOPTS
bool "Toolchain Options" if DEVEL
depends on NEED_TOOLCHAIN
menuconfig EXTRA_TARGET_ARCH
bool
prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS
depends on !sparc
default y if powerpc64
default n
help
Some builds may require a 'biarch' toolchain. This option
allows you to specify an additional target arch.
Most people will answer N here.
config EXTRA_TARGET_ARCH_NAME
string
default "powerpc64" if powerpc64
prompt "Extra architecture name" if EXTRA_TARGET_ARCH
help
Specify the cpu name (eg powerpc64 or x86_64) of the
additional target architecture.
config EXTRA_TARGET_ARCH_OPTS
string
default "-m64" if powerpc64
prompt "Extra architecture compiler options" if EXTRA_TARGET_ARCH
help
If you're specifying an addition target architecture,
you'll probably need to also provide options to make
the compiler use this alternate arch.
For example, if you're building a compiler that can build
both powerpc and powerpc64 binaries, you'll need to
specify -m64 here.
choice
prompt "MIPS64 user-land ABI" if TOOLCHAINOPTS && (mips64 || mips64el)
default MIPS64_ABI_N64
help
MIPS64 supports 3 different user-land ABIs: o32 (legacy),
n32 and n64.
config MIPS64_ABI_N64
bool "n64"
config MIPS64_ABI_N32
depends on !LIBC_USE_MUSL
bool "n32"
config MIPS64_ABI_O32
bool "o32"
endchoice
comment "Binary tools"
depends on TOOLCHAINOPTS
source "toolchain/binutils/Config.in"
comment "Compiler"
depends on TOOLCHAINOPTS
source "toolchain/gcc/Config.in"
config YASM
bool
depends on ( i386 || x86_64 )
prompt "Build yasm" if TOOLCHAINOPTS
default y
help
Enable if you want to build yasm
comment "C Library"
depends on TOOLCHAINOPTS
choice
prompt "C Library implementation" if TOOLCHAINOPTS
default LIBC_USE_UCLIBC if arc
default LIBC_USE_MUSL
help
Select the C library implementation.
config LIBC_USE_GLIBC
bool "Use glibc"
select USE_GLIBC
depends on !arc
config LIBC_USE_UCLIBC
select USE_UCLIBC
bool "Use uClibc"
depends on !(aarch64 || aarch64_be)
depends on BROKEN || !(arm || armeb || i386 || x86_64 || mips || mipsel || mips64 || mips64el || powerpc)
config LIBC_USE_MUSL
select USE_MUSL
bool "Use musl"
depends on !(arc)
endchoice
source "toolchain/uClibc/Config.in"
comment "Debuggers"
depends on TOOLCHAINOPTS
config GDB
bool
depends on !(aarch64 || aarch64_be)
prompt "Build gdb" if TOOLCHAINOPTS
default y if !EXTERNAL_TOOLCHAIN
help
Enable if you want to build the gdb.
config USE_GLIBC
bool
config USE_UCLIBC
default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && (arc)
bool
config USE_MUSL
default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && !(arc)
bool
config USE_EXTERNAL_LIBC
bool
default y if EXTERNAL_TOOLCHAIN || NATIVE_TOOLCHAIN
source "toolchain/binutils/Config.version"
source "toolchain/gcc/Config.version"
config LIBC
string
default "glibc" if USE_GLIBC
default "uClibc" if USE_UCLIBC
default "musl" if USE_MUSL
config TARGET_SUFFIX
string
default "gnueabi" if USE_GLIBC && (arm || armeb)
default "gnu" if USE_GLIBC && !(arm || armeb)
default "uclibcgnueabi" if USE_UCLIBC && (arm || armeb)
default "uclibc" if USE_UCLIBC && !(arm || armeb)
default "muslgnueabi" if USE_MUSL && (arm || armeb)
default "musl" if USE_MUSL && !(arm || armeb)
config MIPS64_ABI
depends on mips64 || mips64el
string
default "64" if MIPS64_ABI_N64
default "n32" if MIPS64_ABI_N32
default "32" if MIPS64_ABI_O32
default "64"
#
# Copyright (C) 2007-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# Main makefile for the toolchain
#
# Steps:
# 1) toolchain/binutils/compile
# build & install binutils
# 2) toolchain/gcc/minimal/compile
# build & install a minimal gcc, needed for steps 3 & 4
# 3) toolchain/kernel-headers/compile
# install kernel headers, needed for step 4
# 4) toolchain/libc/headers/compile
# build & install libc headers & support files, needed for step 5
# 5) toolchain/gcc/initial/compile
# build & install an initial gcc, needed for step 6
# 6) toolchain/libc/compile
# build & install the final libc
# 7) toolchain/gcc/final/compile
# build & install the final gcc
# 8) toolchain/libc/utils/compile
# build & install libc utilities
#
# For musl, steps 2 and 4 are skipped, and step 3 is done after 5
curdir:=toolchain
# subdirectories to descend into
$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/initial gcc/final $(LIBC) fortify-headers) $(if $(CONFIG_YASM),yasm)
ifdef CONFIG_USE_UCLIBC
$(curdir)/builddirs += $(LIBC)/utils
endif
# builddir dependencies
ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
ifdef CONFIG_USE_MUSL
$(curdir)/kernel-headers/compile:=$(curdir)/gcc/initial/compile
$(curdir)/$(LIBC)/compile:=$(curdir)/kernel-headers/compile
else
$(curdir)/builddirs += $(LIBC)/headers gcc/minimal
$(curdir)/gcc/minimal/compile:=$(curdir)/binutils/compile
$(curdir)/kernel-headers/compile:=$(curdir)/gcc/minimal/compile
$(curdir)/$(LIBC)/headers/compile:=$(curdir)/kernel-headers/compile
$(curdir)/gcc/initial/compile:=$(curdir)/$(LIBC)/headers/compile
endif
$(curdir)/gcc/initial/compile+=$(curdir)/binutils/compile
$(curdir)/$(LIBC)/compile:=$(curdir)/gcc/initial/compile
$(curdir)/gcc/final/compile:=$(curdir)/$(LIBC)/compile
$(curdir)/$(LIBC)/utils/compile:=$(curdir)/gcc/final/compile
endif
ifndef DUMP_TARGET_DB
ifneq ($(ARCH),)
$(TOOLCHAIN_DIR)/info.mk: .config
@for dir in $(TOOLCHAIN_DIR); do ( \
$(if $(QUIET),,set -x;) \
mkdir -p "$$dir"; \
cd "$$dir"; \
ln -nsf lib lib64; \
ln -nsf lib lib32; \
mkdir -p stamp lib usr/include usr/lib ; \
); done
@grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@
@touch $@
endif
endif
ifdef CONFIG_BUILDBOT
$(TOOLCHAIN_DIR)/stamp/.ver_check: $(TMP_DIR)/.build
cd "$(TOPDIR)"; git log --format=%h -1 toolchain > $(TMP_DIR)/.ver_check
cmp -s $(TMP_DIR)/.ver_check $@ || { \
rm -rf $(BUILD_DIR) $(STAGING_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR_TOOLCHAIN); \
mkdir -p $(TOOLCHAIN_DIR)/stamp; \
mv $(TMP_DIR)/.ver_check $@; \
}
$(TOOLCHAIN_DIR)/info.mk $(STAGING_DIR)/.prepared: $(TOOLCHAIN_DIR)/stamp/.ver_check
endif
# prerequisites for the individual targets
$(curdir)/ := .config prereq
$(curdir)//compile = $(STAGING_DIR)/.prepared $(TOOLCHAIN_DIR)/info.mk $(tools/stamp-compile)
ifndef DUMP_TARGET_DB
$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed:
endif
$(curdir)/install: $(curdir)/compile
$(eval $(call stampfile,$(curdir),toolchain,compile,$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed,,$(TOOLCHAIN_DIR)))
$(eval $(call stampfile,$(curdir),toolchain,check,$(TMP_DIR)/.build))
$(eval $(call subdir,$(curdir)))
# Choose binutils version.
choice
prompt "Binutils Version" if TOOLCHAINOPTS
default BINUTILS_USE_VERSION_2_28 if !arc
default BINUTILS_USE_VERSION_2_28_ARC if arc
help
Select the version of binutils you wish to use.
config BINUTILS_USE_VERSION_2_27
depends on !arc
bool "Binutils 2.27"
select BINUTILS_VERSION_2_27
config BINUTILS_USE_VERSION_2_28
depends on !arc
bool "Binutils 2.28"
select BINUTILS_VERSION_2_28
config BINUTILS_USE_VERSION_2_28_ARC
depends on arc
bool "ARC binutils 2.28"
select BINUTILS_VERSION_2_28_ARC
endchoice
config EXTRA_BINUTILS_CONFIG_OPTIONS
string
prompt "Additional binutils configure options" if TOOLCHAINOPTS
default ""
help
Any additional binutils options you may want to include....
config BINUTILS_VERSION_2_27
bool
config BINUTILS_VERSION_2_28
default y if (!TOOLCHAINOPTS && !arc)
bool
config BINUTILS_VERSION_2_28_ARC
default y if (!TOOLCHAINOPTS && arc)
bool
config BINUTILS_VERSION
string
default "2.27" if BINUTILS_VERSION_2_27
default "2.28" if BINUTILS_VERSION_2_28
default "arc-2017.03" if BINUTILS_VERSION_2_28_ARC
#
# Copyright (C) 2006-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=binutils
PKG_VERSION:=$(call qstrip,$(CONFIG_BINUTILS_VERSION))
BIN_VERSION:=$(PKG_VERSION)
PKG_SOURCE_URL:=@GNU/binutils/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
ifeq ($(PKG_VERSION),2.27)
PKG_HASH:=369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88
endif
ifeq ($(PKG_VERSION),2.28)
PKG_HASH:=6297433ee120b11b4b0a1c8f3512d7d73501753142ab9e2daa13c5a3edd32a72
endif
ifneq ($(CONFIG_BINUTILS_VERSION_2_28_ARC),)
PKG_REV:=arc-2017.03-release
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/$(PKG_REV)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_REV).tar.gz
PKG_HASH:=f9c1e09ef10aaf9619181f49587f464ba0a70d29b7f6f879047140acac852409
BINUTILS_DIR:=$(PKG_NAME)-gdb-$(PKG_REV)
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(BINUTILS_DIR)
endif
HOST_BUILD_PARALLEL:=1
PATCH_DIR:=./patches/$(PKG_VERSION)
include $(INCLUDE_DIR)/toolchain-build.mk
BINUTILS_CONFIGURE:= \
./configure \
--prefix=$(TOOLCHAIN_DIR) \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
--with-sysroot=$(TOOLCHAIN_DIR) \
--enable-deterministic-archives \
--enable-plugins \
--disable-multilib \
--disable-werror \
--disable-nls \
--disable-sim \
--disable-gdb \
$(GRAPHITE_CONFIGURE) \
$(SOFT_FLOAT_CONFIG_OPTION) \
$(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS))
ifneq ($(CONFIG_SSP_SUPPORT),)
BINUTILS_CONFIGURE+= \
--enable-libssp
else
BINUTILS_CONFIGURE+= \
--disable-libssp
endif
ifneq ($(CONFIG_EXTRA_TARGET_ARCH),)
BINUTILS_CONFIGURE+= \
--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX)
endif
define Host/Prepare
$(call Host/Prepare/Default)
ln -snf $(notdir $(HOST_BUILD_DIR)) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_BUILD_DIR)/
$(SED) 's, " Linaro.*,,' $(HOST_BUILD_DIR)/bfd/version.h
endef
define Host/Configure
(cd $(HOST_BUILD_DIR); \
$(BINUTILS_CONFIGURE) \
);
endef
define Host/Compile
+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) all
endef
define Host/Install
mkdir -p $(TOOLCHAIN_DIR)/initial
$(MAKE) -C $(HOST_BUILD_DIR) \
prefix=$(TOOLCHAIN_DIR)/initial \
install
$(MAKE) -C $(HOST_BUILD_DIR) \
prefix=$(TOOLCHAIN_DIR) \
install
$(call FixupLibdir,$(TOOLCHAIN_DIR)/initial)
$(RM) $(TOOLCHAIN_DIR)/initial/lib/libiberty.a
$(CP) $(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-readelf $(HOST_BUILD_PREFIX)/bin/readelf
# ARC gcc requires extlib.
# If extlib is not available in "initial" folder
# initial gcc will fail to build libc.
if [ -d $(TOOLCHAIN_DIR)/extlib ]; then \
$(CP) -r $(TOOLCHAIN_DIR)/extlib $(TOOLCHAIN_DIR)/initial/; \
fi
endef
define Host/Clean
rm -rf \
$(HOST_BUILD_DIR) \
$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
endef
$(eval $(call HostBuild))
From 4d4f40e041ce7c8c7c8e50f957e0440b64ab7e95 Mon Sep 17 00:00:00 2001
From: "Maciej W. Rozycki" <macro@imgtec.com>
Date: Fri, 23 Dec 2016 20:03:36 +0000
Subject: [PATCH] MIPS/BFD: Remove EI_ABIVERSION 5 allocation for PT_GNU_STACK
support
Revert commit 17733f5be961 ("Increment the ABIVERSION to 5 for MIPS
objects with non-executable stacks.") and remove EI_ABIVERSION 5
allocation for PT_GNU_STACK support, which has not made it to glibc
and will be reassigned.
bfd/
* bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Revert
2016-02-23 change and remove EI_ABIVERSION 5 support.
---
bfd/ChangeLog | 5 +++++
bfd/elfxx-mips.c | 3 ---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index d649676..486607c 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -16358,9 +16358,6 @@ _bfd_mips_post_process_headers (bfd *abfd, struct bfd_link_info *link_info)
if (mips_elf_tdata (abfd)->abiflags.fp_abi == Val_GNU_MIPS_ABI_FP_64
|| mips_elf_tdata (abfd)->abiflags.fp_abi == Val_GNU_MIPS_ABI_FP_64A)
i_ehdrp->e_ident[EI_ABIVERSION] = 3;
-
- if (elf_stack_flags (abfd) && !(elf_stack_flags (abfd) & PF_X))
- i_ehdrp->e_ident[EI_ABIVERSION] = 5;
}
int
--
2.9.3
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -57,7 +57,7 @@ endif
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -451,7 +451,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1244,6 +1244,8 @@ fragment <<EOF
&& command_line.rpath == NULL)
{
lib_path = (const char *) getenv ("LD_RUN_PATH");
+ if ((lib_path) && (strlen (lib_path) == 0))
+ lib_path = NULL;
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
force))
break;
@@ -1525,6 +1527,8 @@ gld${EMULATION_NAME}_before_allocation (
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -7713,6 +7713,7 @@ _bfd_mips_elf_create_dynamic_sections (b
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
bh = NULL;
+ if (0) {
if (!(_bfd_generic_link_add_one_symbol
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
@@ -7725,6 +7726,7 @@ _bfd_mips_elf_create_dynamic_sections (b
if (! bfd_elf_link_record_dynamic_symbol (info, h))
return FALSE;
+ }
if (! mips_elf_hash_table (info)->use_rld_obj_head)
{
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1101,12 +1101,12 @@ case "${targ}" in
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
;;
mips64*el-*-linux*)
- targ_defvec=mips_elf32_ntrad_le_vec
- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
+ targ_defvec=mips_elf64_trad_le_vec
+ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
;;
mips64*-*-linux*)
- targ_defvec=mips_elf32_ntrad_be_vec
- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+ targ_defvec=mips_elf64_trad_be_vec
+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
;;
mips*el-*-linux*)
targ_defvec=mips_elf32_trad_le_vec
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -513,11 +513,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmip
mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
targ_extra_emuls="elf32elmipvxworks" ;;
mips*-*-windiss) targ_emul=elf32mipswindiss ;;
-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+mips64*el-*-linux-*) targ_emul=elf64ltsmip
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
targ_extra_libpath=$targ_extra_emuls ;;
-mips64*-*-linux-*) targ_emul=elf32btsmipn32
- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+mips64*-*-linux-*) targ_emul=elf64btsmip
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
targ_extra_libpath=$targ_extra_emuls ;;
mips*el-*-linux-*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -57,7 +57,7 @@ endif
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -451,7 +451,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1244,6 +1244,8 @@ fragment <<EOF
&& command_line.rpath == NULL)
{
lib_path = (const char *) getenv ("LD_RUN_PATH");
+ if ((lib_path) && (strlen (lib_path) == 0))
+ lib_path = NULL;
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
force))
break;
@@ -1525,6 +1527,8 @@ gld${EMULATION_NAME}_before_allocation (
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -7713,6 +7713,7 @@ _bfd_mips_elf_create_dynamic_sections (b
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
bh = NULL;
+ if (0) {
if (!(_bfd_generic_link_add_one_symbol
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
@@ -7725,6 +7726,7 @@ _bfd_mips_elf_create_dynamic_sections (b
if (! bfd_elf_link_record_dynamic_symbol (info, h))
return FALSE;
+ }
if (! mips_elf_hash_table (info)->use_rld_obj_head)
{
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1101,12 +1101,12 @@ case "${targ}" in
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
;;
mips64*el-*-linux*)
- targ_defvec=mips_elf32_ntrad_le_vec
- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
+ targ_defvec=mips_elf64_trad_le_vec
+ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
;;
mips64*-*-linux*)
- targ_defvec=mips_elf32_ntrad_be_vec
- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+ targ_defvec=mips_elf64_trad_be_vec
+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
;;
mips*el-*-linux*)
targ_defvec=mips_elf32_trad_le_vec
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -513,11 +513,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmip
mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
targ_extra_emuls="elf32elmipvxworks" ;;
mips*-*-windiss) targ_emul=elf32mipswindiss ;;
-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+mips64*el-*-linux-*) targ_emul=elf64ltsmip
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
targ_extra_libpath=$targ_extra_emuls ;;
-mips64*-*-linux-*) targ_emul=elf32btsmipn32
- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+mips64*-*-linux-*) targ_emul=elf64btsmip
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
targ_extra_libpath=$targ_extra_emuls ;;
mips*el-*-linux-*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -57,7 +57,7 @@ endif
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -451,7 +451,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1244,6 +1244,8 @@ fragment <<EOF
&& command_line.rpath == NULL)
{
lib_path = (const char *) getenv ("LD_RUN_PATH");
+ if ((lib_path) && (strlen (lib_path) == 0))
+ lib_path = NULL;
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
force))
break;
@@ -1525,6 +1527,8 @@ gld${EMULATION_NAME}_before_allocation (
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/target.mk
PKG_NAME:=fortify-headers
PKG_VERSION:=0.8
PKG_RELEASE=1
PKG_SOURCE_URL:=http://dl.2f30.org/releases
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=afcd073d6d8d175eede2a28a7dd71b7150cb03290f99102261892c793f6b4cb1
include $(INCLUDE_DIR)/toolchain-build.mk
define Host/Compile
true
endef
define Host/Install
$(MAKE) -C $(HOST_BUILD_DIR) PREFIX="" DESTDIR="$(TOOLCHAIN_DIR)" install
endef
$(eval $(call HostBuild))
# Choose gcc version.
choice
prompt "GCC compiler Version" if TOOLCHAINOPTS
default GCC_USE_VERSION_6_3_ARC if arc
default GCC_USE_VERSION_5
help
Select the version of gcc you wish to use.
config GCC_USE_VERSION_6_3_ARC
select GCC_VERSION_6_3_ARC
bool "gcc 6.3.x with support of ARC cores"
depends on arc
config GCC_USE_VERSION_5
bool "gcc 5.x"
depends on !arc
config GCC_USE_VERSION_6
bool "gcc 6.x"
depends on !arc
config GCC_USE_VERSION_7
bool "gcc 7.x"
depends on !arc
endchoice
config GCC_USE_GRAPHITE
bool
prompt "Compile in support for the new Graphite framework in GCC 4.4+" if TOOLCHAINOPTS
config EXTRA_GCC_CONFIG_OPTIONS
string
prompt "Additional gcc configure options" if TOOLCHAINOPTS
default ""
help
Any additional gcc options you may want to include....
config SSP_SUPPORT
bool
prompt "Enable Stack-Smashing Protection support" if TOOLCHAINOPTS
depends on !USE_MUSL
default y if !USE_MUSL
help
Enable Stack-Smashing Protection support
config SJLJ_EXCEPTIONS
bool
prompt "Use setjump()/longjump() exceptions" if TOOLCHAINOPTS
default n
help
Use old setjump()/longjump() exceptions instead of the newer
frame unwinding exceptions handling routines. Warning: increases
code size and runtime memory usage.
config INSTALL_LIBGCJ
bool
prompt "Build/install java compiler and GNU classpath ?" if TOOLCHAINOPTS
default n
help
Build/install java compiler and GNU classpath ?
config INSTALL_GFORTRAN
bool
prompt "Build/install fortran compiler?" if TOOLCHAINOPTS
default n
help
Build/install GNU fortran compiler ?
config INSTALL_GCCGO
bool
prompt "Build/install Go compiler?" if TOOLCHAINOPTS
depends on USE_GLIBC || BROKEN
default n
help
Build/install GNU gccgo compiler ?
config GCC_VERSION_6_3_ARC
default y if (!TOOLCHAINOPTS && arc)
bool
config GCC_VERSION
string
default "arc-2017.03-release" if GCC_VERSION_6_3_ARC
default "6.3.0" if GCC_USE_VERSION_6
default "7.1.0" if GCC_USE_VERSION_7
default "5.4.0"
config GCC_VERSION_6_3
bool
default y if GCC_VERSION_6_3_ARC
#
# Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.org>
# Copyright (C) 2004 Manuel Novoa III <mjn3@uclibc.org>
# Copyright (C) 2005-2006 Felix Fietkau <nbd@nbd.name>
# Copyright (C) 2006-2014 OpenWrt.org
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
include $(TOPDIR)/rules.mk
PKG_NAME:=gcc
GCC_VERSION:=$(call qstrip,$(CONFIG_GCC_VERSION))
PKG_VERSION:=$(firstword $(subst +, ,$(GCC_VERSION)))
GCC_DIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=@GNU/gcc/gcc-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
ifeq ($(PKG_VERSION),5.4.0)
PKG_HASH:=608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a
endif
ifeq ($(PKG_VERSION),6.3.0)
PKG_HASH:=f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f
endif
ifeq ($(PKG_VERSION),7.1.0)
PKG_HASH:=8a8136c235f64c6fef69cac0d73a46a1a09bb250776a050aec8f9fc880bebc17
endif
ifneq ($(CONFIG_GCC_VERSION_6_3_ARC),)
PKG_VERSION:=6.3.0
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/archive/$(GCC_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(GCC_VERSION).tar.gz
PKG_HASH:=b7223e134199b1a6f71de629da6aa845790e55d28e9892143dde09b1bc878110
PKG_REV:=2017.03-release
GCC_DIR:=gcc-arc-$(PKG_REV)
HOST_BUILD_DIR = $(BUILD_DIR_HOST)/$(PKG_NAME)-$(GCC_VERSION)
endif
PATCH_DIR=../patches/$(GCC_VERSION)
BUGURL=http://www.lede-project.org/bugs/
PKGVERSION=OpenWrt GCC $(PKG_VERSION) $(REVISION)
HOST_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/toolchain-build.mk
HOST_SOURCE_DIR:=$(HOST_BUILD_DIR)
ifeq ($(GCC_VARIANT),minimal)
GCC_BUILD_DIR:=$(HOST_BUILD_DIR)-$(GCC_VARIANT)
else
HOST_BUILD_DIR:=$(HOST_BUILD_DIR)-$(GCC_VARIANT)
GCC_BUILD_DIR:=$(HOST_BUILD_DIR)
endif
HOST_STAMP_PREPARED:=$(HOST_BUILD_DIR)/.prepared
HOST_STAMP_BUILT:=$(GCC_BUILD_DIR)/.built
HOST_STAMP_CONFIGURED:=$(GCC_BUILD_DIR)/.configured
HOST_STAMP_INSTALLED:=$(HOST_BUILD_PREFIX)/stamp/.gcc_$(GCC_VARIANT)_installed
SEP:=,
TARGET_LANGUAGES:="c,c++$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)$(if $(CONFIG_INSTALL_GFORTRAN),$(SEP)fortran)$(if $(CONFIG_INSTALL_GCCGO),$(SEP)go)"
TAR_OPTIONS += \
--exclude-from='$(CURDIR)/../exclude-testsuite' --exclude=gcc/ada/*.ad* \
ifndef CONFIG_INSTALL_LIBGCJ
TAR_OPTIONS += --exclude=libjava
endif
export libgcc_cv_fixed_point=no
ifdef CONFIG_USE_UCLIBC
export glibcxx_cv_c99_math_tr1=no
endif
ifdef CONFIG_INSTALL_GCCGO
export libgo_cv_c_split_stack_supported=no
endif
ifdef CONFIG_GCC_USE_GRAPHITE
GRAPHITE_CONFIGURE:= --with-isl=$(TOPDIR)/staging_dir/host
else
GRAPHITE_CONFIGURE:= --without-isl --without-cloog
endif
GCC_CONFIGURE:= \
SHELL="$(BASH)" \
$(if $(shell gcc --version 2>&1 | grep LLVM), \
CFLAGS="-O2 -fbracket-depth=512 -pipe" \
CXXFLAGS="-O2 -fbracket-depth=512 -pipe" \
) \
$(HOST_SOURCE_DIR)/configure \
--with-bugurl=$(BUGURL) \
--with-pkgversion="$(PKGVERSION)" \
--prefix=$(TOOLCHAIN_DIR) \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
--with-gnu-ld \
--enable-target-optspace \
--disable-libgomp \
--disable-libmudflap \
--disable-multilib \
--disable-libmpx \
--disable-nls \
$(GRAPHITE_CONFIGURE) \
--with-host-libstdcxx=-lstdc++ \
$(SOFT_FLOAT_CONFIG_OPTION) \
$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \
$(if $(CONFIG_mips64)$(CONFIG_mips64el),--with-arch=mips64 \
--with-abi=$(call qstrip,$(CONFIG_MIPS64_ABI))) \
$(if $(CONFIG_arc),--with-cpu=$(CONFIG_CPU_TYPE)) \
--with-gmp=$(TOPDIR)/staging_dir/host \
--with-mpfr=$(TOPDIR)/staging_dir/host \
--with-mpc=$(TOPDIR)/staging_dir/host \
--disable-decimal-float
ifneq ($(CONFIG_mips)$(CONFIG_mipsel),)
GCC_CONFIGURE += --with-mips-plt
endif
ifndef GCC_VERSION_4_8
GCC_CONFIGURE += --with-diagnostics-color=auto-if-env
endif
ifneq ($(CONFIG_SSP_SUPPORT),)
GCC_CONFIGURE+= \
--enable-libssp
else
GCC_CONFIGURE+= \
--disable-libssp
endif
ifneq ($(CONFIG_EXTRA_TARGET_ARCH),)
GCC_CONFIGURE+= \
--enable-biarch \
--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX)
endif
ifdef CONFIG_sparc
GCC_CONFIGURE+= \
--enable-targets=all \
--with-long-double-128
endif
ifeq ($(LIBC),uClibc)
GCC_CONFIGURE+= \
--disable-__cxa_atexit
else
GCC_CONFIGURE+= \
--enable-__cxa_atexit
endif
ifneq ($(GCC_ARCH),)
GCC_CONFIGURE+= --with-arch=$(GCC_ARCH)
endif
ifneq ($(CONFIG_SOFT_FLOAT),y)
ifeq ($(CONFIG_arm),y)
GCC_CONFIGURE+= \
--with-float=hard
endif
endif
ifeq ($(CONFIG_TARGET_x86)$(CONFIG_USE_GLIBC)$(CONFIG_INSTALL_GCCGO),yyy)
TARGET_CFLAGS+=-fno-split-stack
endif
GCC_MAKE:= \
export SHELL="$(BASH)"; \
$(MAKE) \
CFLAGS="$(HOST_CFLAGS)" \
CFLAGS_FOR_TARGET="$(TARGET_CFLAGS)" \
CXXFLAGS_FOR_TARGET="$(TARGET_CFLAGS)" \
GOCFLAGS_FOR_TARGET="$(TARGET_CFLAGS)"
define Host/SetToolchainInfo
$(SED) 's,TARGET_CROSS=.*,TARGET_CROSS=$(REAL_GNU_TARGET_NAME)-,' $(TOOLCHAIN_DIR)/info.mk
$(SED) 's,GCC_VERSION=.*,GCC_VERSION=$(GCC_VERSION),' $(TOOLCHAIN_DIR)/info.mk
endef
ifneq ($(GCC_PREPARE),)
define Host/Prepare
$(call Host/SetToolchainInfo)
$(call Host/Prepare/Default)
ln -snf $(GCC_DIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_SOURCE_DIR)/
$(SED) 's,^MULTILIB_OSDIRNAMES,# MULTILIB_OSDIRNAMES,' $(HOST_SOURCE_DIR)/gcc/config/*/t-*
$(SED) 'd' $(HOST_SOURCE_DIR)/gcc/DEV-PHASE
$(SED) 's, DATESTAMP,,' $(HOST_SOURCE_DIR)/gcc/version.c
#(cd $(HOST_SOURCE_DIR)/libstdc++-v3; autoconf;);
$(SED) 's,gcc_no_link=yes,gcc_no_link=no,' $(HOST_SOURCE_DIR)/libstdc++-v3/configure
mkdir -p $(GCC_BUILD_DIR)
endef
else
define Host/Prepare
mkdir -p $(GCC_BUILD_DIR)
endef
endif
define Host/Configure
(cd $(GCC_BUILD_DIR) && rm -f config.cache; \
$(GCC_CONFIGURE) \
);
endef
define Host/Clean
rm -rf $(if $(GCC_PREPARE),$(HOST_SOURCE_DIR)) \
$(HOST_BUILD_PREFIX)/stamp/.gcc_* \
$(HOST_BUILD_PREFIX)/stamp/.binutils_* \
$(GCC_BUILD_DIR) \
$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) \
$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME) \
$(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gc* \
$(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-c*
endef
gcc-*/gcc/testsuite/ada
gcc-*/gcc/testsuite/brig.dg
gcc-*/gcc/testsuite/c-c++-common
gcc-*/gcc/testsuite/ChangeLog*
gcc-*/gcc/testsuite/config
gcc-*/gcc/testsuite/g*
gcc-*/gcc/testsuite/jit.dg
gcc-*/gcc/testsuite/lib
gcc-*/gcc/testsuite/o*
#!/bin/sh
exec @CC_BASE@ @EXTRA_ARCH_OPTS@ "$@"
GCC_VARIANT:=final
include ../common.mk
GCC_CONFIGURE += \
--with-headers=$(TOOLCHAIN_DIR)/include \
--disable-libsanitizer \
--enable-languages=$(TARGET_LANGUAGES) \
--enable-shared \
--enable-threads \
--with-slibdir=$(TOOLCHAIN_DIR)/lib \
--enable-lto \
--with-libelf=$(TOPDIR)/staging_dir/host
ifdef CONFIG_USE_MUSL
GCC_MAKE += gcc_cv_libc_provides_ssp=yes
endif
ifneq ($(CONFIG_SJLJ_EXCEPTIONS),)
GCC_CONFIGURE += \
--enable-sjlj-exceptions
endif
define CleanupToolchain
$(INSTALL_DIR) $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)
# Important! Required for limits.h to be fixed.
rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include
ln -sf ../include $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include
rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib
ln -sf ../lib $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib
$(if $(CONFIG_ARCH_64BIT),ln -sf ../lib64 $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib64)
endef
define Host/Configure
$(CleanupToolchain)
mkdir -p $(GCC_BUILD_DIR)
(cd $(GCC_BUILD_DIR) && rm -f config.cache; \
$(GCC_CONFIGURE) \
);
endef
ifeq ($(CONFIG_USE_GLIBC)$(CONFIG_INSTALL_GCCGO),yy)
define FixGogccCrt
# link crtX.o for gotools
mkdir -p $(GCC_BUILD_DIR)/gotools
$(foreach crt, i 1 n, ln -sf ../../glibc-dev/lib/crt$(crt).o $(GCC_BUILD_DIR)/gotools/ ; )
endef
endif
define Host/Compile
$(FixGogccCrt)
+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all
endef
define SetupExtraArch
for app in $(TOOLCHAIN_DIR)/bin/$(OPTIMIZE_FOR_CPU)*-{gcc,gcc-*,g++}; do \
[ -e $$$$app ] || continue; \
old_base=$$$$(basename $$$$app); \
new_base=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-$$$${old_base##$(OPTIMIZE_FOR_CPU)-}; \
sed -e "s/@CC_BASE@/$$$$old_base/" \
-e 's/@EXTRA_ARCH_OPTS@/$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_OPTS))/' \
../files/alternate-arch-cc.in > \
$(TOOLCHAIN_DIR)/bin/$$$$new_base; \
chmod a+x $(TOOLCHAIN_DIR)/bin/$$$$new_base; \
done
endef
define Host/Install
$(CleanupToolchain)
+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) install
# Set up the symlinks to enable lying about target name.
set -e; \
(cd $(TOOLCHAIN_DIR); \
ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \
cd bin; \
for app in $(REAL_GNU_TARGET_NAME)-* ; do \
ln -sf $$$${app} \
$(GNU_TARGET_NAME)$$$${app##$(REAL_GNU_TARGET_NAME)}; \
done; \
);
$(if $(CONFIG_EXTRA_TARGET_ARCH),$(call SetupExtraArch))
$(RM) $(TOOLCHAIN_DIR)/lib/libiberty.a
$(SCRIPT_DIR)/patch-specs.sh "$(TOOLCHAIN_DIR)"
endef
$(eval $(call HostBuild))
GCC_VARIANT:=initial
GCC_PREPARE=$(CONFIG_USE_MUSL)
include ../common.mk
GCC_CONFIGURE += \
--with-newlib \
--with-sysroot=$(TOOLCHAIN_DIR) \
--enable-languages=c \
--disable-shared \
--disable-threads \
define Host/Compile
+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) \
all-build-libiberty \
all-gcc \
all-target-libgcc
endef
define Host/Install
+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) \
prefix="$(TOOLCHAIN_DIR)/initial" \
install-gcc \
install-target-libgcc
# XXX: glibc insists on linking against libgcc_eh
( cd $(TOOLCHAIN_DIR)/initial/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) ; \
[ -e libgcc_eh.a ] || ln -sf libgcc.a libgcc_eh.a ; \
cp libgcc.a libgcc_initial.a; \
)
$(call FixupLibdir,$(TOOLCHAIN_DIR)/initial)
$$(call file_copy,$(TOOLCHAIN_DIR)/initial/.,$(TOOLCHAIN_DIR)/)
endef
$(eval $(call HostBuild))
GCC_VARIANT:=minimal
GCC_PREPARE=$(if $(CONFIG_USE_MUSL),,1)
include ../common.mk
GCC_CONFIGURE += \
--with-newlib \
--without-headers \
--enable-languages=c \
--disable-libsanitizer \
--disable-libssp \
--disable-shared \
--disable-threads
define Host/Compile
+$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all-gcc all-target-libgcc
endef
define Host/Install
$(GCC_MAKE) -C $(GCC_BUILD_DIR) install-gcc install-target-libgcc
endef
define Host/Clean
rm -rf \
$(HOST_BUILD_DIR) \
$(GCC_BUILD_DIR)
endef
$(eval $(call HostBuild))
Revert of:
commit 275035b56823b26d5fb7e90fad945b998648edf2
Author: bergner <bergner@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu Sep 5 14:09:07 2013 +0000
PR target/58139
* reginfo.c (choose_hard_reg_mode): Scan through all mode classes
looking for widest mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202286 138bc75d-0d04-0410-961f-82ee72b054a4
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -625,35 +625,40 @@ choose_hard_reg_mode (unsigned int regno
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
+ if (found_mode != VOIDmode)
+ return found_mode;
+
for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
+ if (found_mode != VOIDmode)
+ return found_mode;
+
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_FLOAT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
+ if (found_mode != VOIDmode)
+ return found_mode;
+
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_INT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
if (found_mode != VOIDmode)
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3021,18 +3021,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
doc/gccint.info: $(TEXI_GCCINT_FILES)
doc/cppinternals.info: $(TEXI_CPPINT_FILES)
-doc/%.info: %.texi
- if [ x$(BUILD_INFO) = xinfo ]; then \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
- -I $(gcc_docdir)/include -o $@ $<; \
- fi
+doc/%.info:
# Duplicate entry to handle renaming of gccinstall.info
-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
- if [ x$(BUILD_INFO) = xinfo ]; then \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
- -I $(gcc_docdir)/include -o $@ $<; \
- fi
+doc/gccinstall.info:
doc/cpp.dvi: $(TEXI_CPP_FILES)
doc/gcc.dvi: $(TEXI_GCC_FILES)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -858,7 +858,9 @@ proper position among the other output f
#endif
#ifndef LINK_SSP_SPEC
-#ifdef TARGET_LIBC_PROVIDES_SSP
+#if DEFAULT_LIBC == LIBC_MUSL
+#define LINK_SSP_SPEC "-lssp_nonshared"
+#elif defined(TARGET_LIBC_PROVIDES_SSP)
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit:}"
#else
From 450fb05e2a7510d37744f044009f8237d902f65c Mon Sep 17 00:00:00 2001
From: nsz <nsz@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 30 Aug 2016 10:26:22 +0000
Subject: [PATCH] disable ifunc on *-musl by default
gcc/
* config.gcc (*-*-*musl*): Disable gnu-indirect-function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239859 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/ChangeLog | 4 ++++
gcc/config.gcc | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1495,7 +1495,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfree
extra_options="${extra_options} linux-android.opt"
# Assume modern glibc if not targeting Android nor uclibc.
case ${target} in
- *-*-*android*|*-*-*uclibc*)
+ *-*-*android*|*-*-*uclibc*|*-*-*musl*)
;;
*)
default_gnu_indirect_function=yes
@@ -1564,7 +1564,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu
extra_options="${extra_options} linux-android.opt"
# Assume modern glibc if not targeting Android nor uclibc.
case ${target} in
- *-*-*android*|*-*-*uclibc*)
+ *-*-*android*|*-*-*uclibc*|*-*-*musl*)
;;
*)
default_gnu_indirect_function=yes
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -17928,7 +17928,7 @@ mips_option_override (void)
flag_pcc_struct_return = 0;
/* Decide which rtx_costs structure to use. */
- if (optimize_size)
+ if (0 && optimize_size)
mips_cost = &mips_rtx_cost_optimize_size;
else
mips_cost = &mips_rtx_cost_data[mips_tune];
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -166,7 +166,7 @@ extern void (*arm_lang_output_object_att
/* Thumb-1 only. */
#define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm)
-#define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN \
+#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \
&& !TARGET_THUMB1)
#define TARGET_CRC32 (arm_arch_crc)
--- a/libgcc/config/arm/t-linux
+++ b/libgcc/config/arm/t-linux
@@ -1,6 +1,10 @@
LIB1ASMSRC = arm/lib1funcs.S
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
+ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
+ _arm_fixsfsi _arm_fixunssfsi
# Just for these, we omit the frame pointer since it makes such a big
# difference.
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -60,8 +60,6 @@
%{shared:-lc} \
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
-
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#define LINUX_TARGET_LINK_SPEC "%{h*} \
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -888,11 +888,12 @@ $(libgcov-driver-objects): %$(objext): $
# Static libraries.
libgcc.a: $(libgcc-objects)
+libgcc_pic.a: $(libgcc-s-objects)
libgcov.a: $(libgcov-objects)
libunwind.a: $(libunwind-objects)
libgcc_eh.a: $(libgcc-eh-objects)
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
-rm -f $@
objects="$(objects)"; \
@@ -913,7 +914,7 @@ all: libunwind.a
endif
ifeq ($(enable_shared),yes)
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
@@ -1115,6 +1116,10 @@ install-shared:
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
+
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
http://sourceware.org/ml/crossgcc/2008-05/msg00009.html
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -45,7 +45,7 @@
The ARM10TDMI core is the default for armv5t, so set
SUBTARGET_CPU_DEFAULT to achieve this. */
#undef SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
/* TARGET_BIG_ENDIAN_DEFAULT is set in
config.gcc for big endian configurations. */
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -94,10 +94,15 @@
#define MUSL_DYNAMIC_LINKER \
"/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
+/* For armv4 we pass --fix-v4bx to linker to support EABI */
+#undef TARGET_FIX_V4BX_SPEC
+#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\
+ "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}"
+
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
use the GNU/Linux version, not the generic BPABI version. */
#undef LINK_SPEC
-#define LINK_SPEC EABI_LINK_SPEC \
+#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC \
LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -132,10 +132,6 @@
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
-/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
- do not use -lfloat. */
-#undef LIBGCC_SPEC
-
/* Clear the instruction cache from `beg' to `end'. This is
implemented in lib1funcs.S, so ensure an error if this definition
is used. */
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -53,6 +53,10 @@ see the files COPYING3 and COPYING.RUNTI
builtin_assert ("system=posix"); \
} while (0)
+#ifndef LIBGCC_SPEC
+#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}"
+#endif
+
/* Determine which dynamic linker to use depending on whether GLIBC or
uClibc or Bionic or musl is the default C library and whether
-muclibc or -mglibc or -mbionic or -mmusl has been passed to change
--- a/libgcc/mkmap-symver.awk
+++ b/libgcc/mkmap-symver.awk
@@ -132,5 +132,5 @@ function output(lib) {
else if (inherit[lib])
printf("} %s;\n", inherit[lib]);
else
- printf ("\n local:\n\t*;\n};\n");
+ printf ("\n\t*;\n};\n");
}
--- a/gcc/config/rs6000/linux.h
+++ b/gcc/config/rs6000/linux.h
@@ -60,6 +60,9 @@
#undef CPP_OS_DEFAULT_SPEC
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
+#undef LIBGCC_SPEC
+#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
+
#undef LINK_SHLIB_SPEC
#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -24171,7 +24171,7 @@ rs6000_savres_strategy (rs6000_stack_t *
/* Define cutoff for using out-of-line functions to save registers. */
if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
{
- if (!optimize_size)
+ if (1)
{
strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -395,7 +395,7 @@ see the files COPYING3 and COPYING.RUNTI
/* If we have named section and we support weak symbols, then use the
.jcr section for recording java classes which need to be registered
at program start-up time. */
-#if defined (TARGET_ASM_NAMED_SECTION) && SUPPORTS_WEAK
+#if 0 && defined (TARGET_ASM_NAMED_SECTION) && SUPPORTS_WEAK
#ifndef JCR_SECTION_NAME
#define JCR_SECTION_NAME ".jcr"
#endif
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册