From f3e84309257b915cb8820917a8dd5578f02fe974 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 24 May 2009 20:11:16 +0200 Subject: patches and update for gcc 4.4.0 allmodconfig * update gcc to 4.4.0 * update gnutls and ruby * fix c++ issues for some packages --- target/linux/config/Config.in.netdevice | 8 +- target/linux/patches/mips-gcc-44.patch | 215 ++++++++++++++++++++++++++++++++ target/qemu-mips/device.mk | 2 +- target/qemu-mips/kernel.config | 61 ++++++--- 4 files changed, 264 insertions(+), 22 deletions(-) create mode 100644 target/linux/patches/mips-gcc-44.patch (limited to 'target') diff --git a/target/linux/config/Config.in.netdevice b/target/linux/config/Config.in.netdevice index 49e772238..dad10f2d8 100644 --- a/target/linux/config/Config.in.netdevice +++ b/target/linux/config/Config.in.netdevice @@ -1,6 +1,10 @@ menu "Network devices support" depends on !ADK_LINUX_CRIS_FOXBOARD +config ADK_KERNEL_NETDEVICES + boolean + default n + config ADK_KERNEL_NET_ETHERNET boolean default n @@ -21,6 +25,7 @@ menu "Ethernet card support" config ADK_KPACKAGE_KMOD_NE2K_PCI prompt "kmod-net-ne2k-pci............. NE2000 PCI driver" + select ADK_KERNEL_NETDEVICES select ADK_KERNEL_NET_ETHERNET select ADK_KERNEL_NET_PCI select ADK_KERNEL_MII @@ -31,7 +36,7 @@ config ADK_KPACKAGE_KMOD_NE2K_PCI config ADK_KPACKAGE_KMOD_E100 prompt "kmod-net-e100................. Intel(R) PRO/100+ driver" - select ADK_KERNEL_NET_ETHERNET + select ADK_KERNEL_NETDEVICES select ADK_KERNEL_NET_PCI select ADK_KERNEL_MII tristate @@ -41,6 +46,7 @@ config ADK_KPACKAGE_KMOD_E100 config ADK_KPACKAGE_KMOD_E1000 prompt "kmod-net-e1000................ Intel(R) PRO/1000 Gigabit Ethernet driver" + select ADK_KERNEL_NETDEVICES select ADK_KERNEL_NET_ETHERNET select ADK_KERNEL_NETDEV_1000 tristate diff --git a/target/linux/patches/mips-gcc-44.patch b/target/linux/patches/mips-gcc-44.patch new file mode 100644 index 000000000..ccee68b9b --- /dev/null +++ b/target/linux/patches/mips-gcc-44.patch @@ -0,0 +1,215 @@ +diff -Nur linux-2.6.29.4.orig/arch/mips/include/asm/compiler.h linux-2.6.29.4/arch/mips/include/asm/compiler.h +--- linux-2.6.29.4.orig/arch/mips/include/asm/compiler.h 2009-05-19 01:52:34.000000000 +0200 ++++ linux-2.6.29.4/arch/mips/include/asm/compiler.h 2009-05-24 19:32:14.000000000 +0200 +@@ -16,4 +16,11 @@ + #define GCC_REG_ACCUM "accum" + #endif + ++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) ++#define GCC_NO_H_CONSTRAINT ++#ifdef CONFIG_64BIT ++typedef unsigned int uint128_t __attribute__((mode(TI))); ++#endif ++#endif ++ + #endif /* _ASM_COMPILER_H */ +diff -Nur linux-2.6.29.4.orig/arch/mips/include/asm/delay.h linux-2.6.29.4/arch/mips/include/asm/delay.h +--- linux-2.6.29.4.orig/arch/mips/include/asm/delay.h 2009-05-19 01:52:34.000000000 +0200 ++++ linux-2.6.29.4/arch/mips/include/asm/delay.h 2009-05-24 19:32:14.000000000 +0200 +@@ -62,8 +62,9 @@ + + static inline void __udelay(unsigned long usecs, unsigned long lpj) + { ++#ifndef GCC_NO_H_CONSTRAINT + unsigned long hi, lo; +- ++#endif + /* + * The rates of 128 is rounded wrongly by the catchall case + * for 64-bit. Excessive precission? Probably ... +@@ -77,6 +78,17 @@ + 0x80000000ULL) >> 32); + #endif + ++#ifdef GCC_NO_H_CONSTRAINT ++#ifdef CONFIG_64BIT ++ usecs = ((uint128_t)usecs * lpj) >> 64; ++#else ++#define SZHALF (sizeof(long)*4) ++#define LOWERHALF ((0x1ul<> SZHALF) * (lpj >> SZHALF) + ( ((usecs & LOWERHALF) * (lpj >> SZHALF) + (usecs >> SZHALF) * (lpj & LOWERHALF)) >> SZHALF ); ++#undef SZHALF ++#undef LOWERHALF ++#endif ++#else + if (sizeof(long) == 4) + __asm__("multu\t%2, %3" + : "=h" (usecs), "=l" (lo) +@@ -92,7 +104,7 @@ + : "=r" (usecs), "=h" (hi), "=l" (lo) + : "r" (usecs), "r" (lpj) + : GCC_REG_ACCUM); +- ++#endif + __delay(usecs); + } + +diff -Nur linux-2.6.29.4.orig/arch/mips/include/asm/div64.h linux-2.6.29.4/arch/mips/include/asm/div64.h +--- linux-2.6.29.4.orig/arch/mips/include/asm/div64.h 2009-05-19 01:52:34.000000000 +0200 ++++ linux-2.6.29.4/arch/mips/include/asm/div64.h 2009-05-22 13:38:14.000000000 +0200 +@@ -6,105 +6,63 @@ + * License. See the file "COPYING" in the main directory of this archive + * for more details. + */ +-#ifndef _ASM_DIV64_H +-#define _ASM_DIV64_H ++#ifndef __ASM_DIV64_H ++#define __ASM_DIV64_H + +-#include ++#include + +-#if (_MIPS_SZLONG == 32) ++#if BITS_PER_LONG == 64 + +-#include ++#include + + /* + * No traps on overflows for any of these... + */ + +-#define do_div64_32(res, high, low, base) ({ \ +- unsigned long __quot32, __mod32; \ +- unsigned long __cf, __tmp, __tmp2, __i; \ +- \ +- __asm__(".set push\n\t" \ +- ".set noat\n\t" \ +- ".set noreorder\n\t" \ +- "move %2, $0\n\t" \ +- "move %3, $0\n\t" \ +- "b 1f\n\t" \ +- " li %4, 0x21\n" \ +- "0:\n\t" \ +- "sll $1, %0, 0x1\n\t" \ +- "srl %3, %0, 0x1f\n\t" \ +- "or %0, $1, %5\n\t" \ +- "sll %1, %1, 0x1\n\t" \ +- "sll %2, %2, 0x1\n" \ +- "1:\n\t" \ +- "bnez %3, 2f\n\t" \ +- " sltu %5, %0, %z6\n\t" \ +- "bnez %5, 3f\n" \ +- "2:\n\t" \ +- " addiu %4, %4, -1\n\t" \ +- "subu %0, %0, %z6\n\t" \ +- "addiu %2, %2, 1\n" \ +- "3:\n\t" \ +- "bnez %4, 0b\n\t" \ +- " srl %5, %1, 0x1f\n\t" \ +- ".set pop" \ +- : "=&r" (__mod32), "=&r" (__tmp), \ +- "=&r" (__quot32), "=&r" (__cf), \ +- "=&r" (__i), "=&r" (__tmp2) \ +- : "Jr" (base), "0" (high), "1" (low)); \ +- \ +- (res) = __quot32; \ +- __mod32; }) +- +-#define do_div(n, base) ({ \ +- unsigned long long __quot; \ +- unsigned long __mod; \ +- unsigned long long __div; \ +- unsigned long __upper, __low, __high, __base; \ +- \ +- __div = (n); \ +- __base = (base); \ +- \ +- __high = __div >> 32; \ +- __low = __div; \ +- __upper = __high; \ +- \ +- if (__high) \ +- __asm__("divu $0, %z2, %z3" \ +- : "=h" (__upper), "=l" (__high) \ +- : "Jr" (__high), "Jr" (__base) \ +- : GCC_REG_ACCUM); \ +- \ +- __mod = do_div64_32(__low, __upper, __low, __base); \ +- \ +- __quot = __high; \ +- __quot = __quot << 32 | __low; \ +- (n) = __quot; \ +- __mod; }) +- +-#endif /* (_MIPS_SZLONG == 32) */ +- +-#if (_MIPS_SZLONG == 64) +- +-/* +- * Hey, we're already 64-bit, no +- * need to play games.. +- */ +-#define do_div(n, base) ({ \ +- unsigned long __quot; \ +- unsigned int __mod; \ +- unsigned long __div; \ +- unsigned int __base; \ +- \ +- __div = (n); \ +- __base = (base); \ +- \ +- __mod = __div % __base; \ +- __quot = __div / __base; \ +- \ +- (n) = __quot; \ +- __mod; }) ++#define __div64_32(n, base) \ ++({ \ ++ unsigned long __cf, __tmp, __tmp2, __i; \ ++ unsigned long __quot32, __mod32; \ ++ unsigned long __high, __low; \ ++ unsigned long long __n; \ ++ \ ++ __high = *__n >> 32; \ ++ __low = __n; \ ++ __asm__( \ ++ " .set push \n" \ ++ " .set noat \n" \ ++ " .set noreorder \n" \ ++ " move %2, $0 \n" \ ++ " move %3, $0 \n" \ ++ " b 1f \n" \ ++ " li %4, 0x21 \n" \ ++ "0: \n" \ ++ " sll $1, %0, 0x1 \n" \ ++ " srl %3, %0, 0x1f \n" \ ++ " or %0, $1, %5 \n" \ ++ " sll %1, %1, 0x1 \n" \ ++ " sll %2, %2, 0x1 \n" \ ++ "1: \n" \ ++ " bnez %3, 2f \n" \ ++ " sltu %5, %0, %z6 \n" \ ++ " bnez %5, 3f \n" \ ++ "2: \n" \ ++ " addiu %4, %4, -1 \n" \ ++ " subu %0, %0, %z6 \n" \ ++ " addiu %2, %2, 1 \n" \ ++ "3: \n" \ ++ " bnez %4, 0b\n\t" \ ++ " srl %5, %1, 0x1f\n\t" \ ++ " .set pop" \ ++ : "=&r" (__mod32), "=&r" (__tmp), \ ++ "=&r" (__quot32), "=&r" (__cf), \ ++ "=&r" (__i), "=&r" (__tmp2) \ ++ : "Jr" (base), "0" (__high), "1" (__low)); \ ++ \ ++ (__n) = __quot32; \ ++ __mod32; \ ++}) + +-#endif /* (_MIPS_SZLONG == 64) */ ++#endif /* BITS_PER_LONG == 64 */ + +-#endif /* _ASM_DIV64_H */ ++#endif /* __ASM_DIV64_H */ diff --git a/target/qemu-mips/device.mk b/target/qemu-mips/device.mk index df956ae5e..9f912f207 100644 --- a/target/qemu-mips/device.mk +++ b/target/qemu-mips/device.mk @@ -1,6 +1,6 @@ ARCH:= mips CPU_ARCH:= mipsel -KERNEL_VERSION:= 2.6.29.1 +KERNEL_VERSION:= 2.6.29.4 KERNEL_RELEASE:= 1 KERNEL_MD5SUM:= 4ada43caecb08fe2af71b416b6f586d8 TARGET_OPTIMIZATION:= -Os -pipe diff --git a/target/qemu-mips/kernel.config b/target/qemu-mips/kernel.config index e2f59e81c..8a78fd922 100644 --- a/target/qemu-mips/kernel.config +++ b/target/qemu-mips/kernel.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.28 -# Fri Jan 9 22:42:20 2009 +# Linux kernel version: 2.6.29.4 +# Fri May 22 13:23:36 2009 # CONFIG_MIPS=y @@ -19,7 +19,7 @@ CONFIG_ZONE_DMA=y # CONFIG_LEMOTE_FULONG is not set CONFIG_MIPS_MALTA=y # CONFIG_MIPS_SIM is not set -# CONFIG_MACH_EMMA is not set +# CONFIG_NEC_MARKEINS is not set # CONFIG_MACH_VR41XX is not set # CONFIG_NXP_STB220 is not set # CONFIG_NXP_STB225 is not set @@ -44,6 +44,8 @@ CONFIG_MIPS_MALTA=y # CONFIG_MACH_TX49XX is not set # CONFIG_MIKROTIK_RB532 is not set # CONFIG_WR_PPMC is not set +# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set +# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set @@ -54,11 +56,13 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_BOOT_RAW=y +CONFIG_CEVT_R4K_LIB=y CONFIG_CEVT_R4K=y +CONFIG_CSRC_R4K_LIB=y CONFIG_CSRC_R4K=y CONFIG_DMA_NONCOHERENT=y CONFIG_DMA_NEED_PCI_MAP_STATE=y @@ -106,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y # CONFIG_CPU_RM7000 is not set # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set +# CONFIG_CPU_CAVIUM_OCTEON is not set CONFIG_SYS_HAS_CPU_MIPS32_R1=y CONFIG_SYS_HAS_CPU_MIPS32_R2=y CONFIG_SYS_HAS_CPU_MIPS64_R1=y @@ -152,7 +157,6 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_RESOURCES_64BIT is not set # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y @@ -173,7 +177,6 @@ CONFIG_HZ=100 # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y -# CONFIG_PREEMPT_RCU is not set # CONFIG_KEXEC is not set # CONFIG_SECCOMP is not set CONFIG_LOCKDEP_SUPPORT=y @@ -196,10 +199,19 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=14 -# CONFIG_CGROUPS is not set # CONFIG_GROUP_SCHED is not set +# CONFIG_CGROUPS is not set # CONFIG_SYSFS_DEPRECATED_V2 is not set # CONFIG_RELAY is not set # CONFIG_NAMESPACES is not set @@ -207,6 +219,7 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y @@ -216,10 +229,8 @@ CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y -# CONFIG_COMPAT_BRK is not set CONFIG_BASE_FULL=y CONFIG_FUTEX=y -CONFIG_ANON_INODES=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y @@ -228,16 +239,15 @@ CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y +# CONFIG_COMPAT_BRK is not set CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set # CONFIG_PROFILING is not set -# CONFIG_MARKERS is not set CONFIG_HAVE_OPROFILE=y # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set @@ -245,11 +255,9 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y CONFIG_BLOCK=y # CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_LSF is not set # CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_INTEGRITY is not set @@ -265,7 +273,6 @@ CONFIG_IOSCHED_NOOP=y # CONFIG_DEFAULT_CFQ is not set CONFIG_DEFAULT_NOOP=y CONFIG_DEFAULT_IOSCHED="noop" -CONFIG_CLASSIC_RCU=y # CONFIG_PROBE_INITRD_HEADER is not set # CONFIG_FREEZER is not set @@ -277,6 +284,7 @@ CONFIG_PCI=y CONFIG_PCI_DOMAINS=y # CONFIG_ARCH_SUPPORTS_MSI is not set # CONFIG_PCI_LEGACY is not set +# CONFIG_PCI_STUB is not set CONFIG_MMU=y CONFIG_I8253=y # CONFIG_PCCARD is not set @@ -301,6 +309,7 @@ CONFIG_NET=y # # Networking options # +CONFIG_COMPAT_NET_DEV_OPS=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y @@ -354,6 +363,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set # # Network testing @@ -367,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_PHONET is not set CONFIG_FIB_RULES=y # CONFIG_WIRELESS is not set +# CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set @@ -412,7 +423,6 @@ CONFIG_IDE_GD_ATA=y # CONFIG_IDE_GD_ATAPI is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set -# CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set # CONFIG_IDE_PROC_FS is not set @@ -443,6 +453,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_JMICRON is not set # CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_PIIX=y +# CONFIG_BLK_DEV_IT8172 is not set # CONFIG_BLK_DEV_IT8213 is not set # CONFIG_BLK_DEV_IT821X is not set # CONFIG_BLK_DEV_NS87415 is not set @@ -587,6 +598,7 @@ CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set # CONFIG_LEGACY_PTYS is not set # CONFIG_IPMI_HANDLER is not set # CONFIG_HW_RANDOM is not set @@ -739,6 +751,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; # # CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# # CONFIG_UWB is not set # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set @@ -765,6 +781,7 @@ CONFIG_EXT2_FS=y CONFIG_FILE_LOCKING=y # CONFIG_XFS_FS is not set # CONFIG_OCFS2_FS is not set +# CONFIG_BTRFS_FS is not set CONFIG_DNOTIFY=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y @@ -798,10 +815,7 @@ CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set - -# -# Miscellaneous filesystems -# +CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set @@ -810,6 +824,7 @@ CONFIG_TMPFS=y # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set @@ -858,7 +873,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_FRAME_WARN=0 +CONFIG_FRAME_WARN=1024 CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set @@ -885,10 +900,16 @@ CONFIG_CMDLINE="init=/init console=ttyS0,115200 console=tty0" # CONFIG_SECURITY_FILE_CAPABILITIES is not set # CONFIG_CRYPTO is not set +# +# OCF Configuration +# +# CONFIG_OCF_OCF is not set + # # Library routines # CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_LAST_BIT=y # CONFIG_CRC_CCITT is not set # CONFIG_CRC16 is not set # CONFIG_CRC_T10DIF is not set -- cgit v1.2.3