diff options
author | Mike Auty <ikelos@gentoo.org> | 2009-03-24 00:35:08 +0000 |
---|---|---|
committer | Mike Auty <ikelos@gentoo.org> | 2009-03-24 00:35:08 +0000 |
commit | 59c04e59cead2104e19f79b8e94468c48865f00d (patch) | |
tree | 350b5e312f25a758be321201499447e359b8aa60 /app-emulation | |
parent | Fix up manifest, broken by the Changelog. (diff) | |
download | vmware-59c04e59cead2104e19f79b8e94468c48865f00d.tar.gz vmware-59c04e59cead2104e19f79b8e94468c48865f00d.tar.bz2 vmware-59c04e59cead2104e19f79b8e94468c48865f00d.zip |
Fix compilation for 2.6.29 kernel, many thanks to Michele Schiavo for the patch.
svn path=/trunk/; revision=363
Diffstat (limited to 'app-emulation')
4 files changed, 306 insertions, 1 deletions
diff --git a/app-emulation/vmware-modules/ChangeLog b/app-emulation/vmware-modules/ChangeLog index 35c9f5d..aa9c7de 100644 --- a/app-emulation/vmware-modules/ChangeLog +++ b/app-emulation/vmware-modules/ChangeLog @@ -2,6 +2,11 @@ # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ + 24 Mar 2009; Mike Auty <ikelos@gentoo.org> + +files/1.0.0.23-kernel-2.6.29.patch, vmware-modules-1.0.0.23.ebuild: + Fix compilation for 2.6.29 kernel, many thanks to Michele Schiavo for the + patch. + 14 Jan 2009; Mike Auty <ikelos@gentoo.org> files/patches/vmnet/030_all_kernel-2.6.27.patch, vmware-modules-1.0.0.15-r2.ebuild, vmware-modules-1.0.0.23.ebuild: diff --git a/app-emulation/vmware-modules/Manifest b/app-emulation/vmware-modules/Manifest index 9cecf52..96e32e7 100644 --- a/app-emulation/vmware-modules/Manifest +++ b/app-emulation/vmware-modules/Manifest @@ -1,3 +1,4 @@ +AUX 1.0.0.23-kernel-2.6.29.patch 10972 RMD160 f44e869448d05389a4debeff9de17469a9cec541 SHA1 42b6553dabe9b22170ee7174163bcf73cbf7b8ca SHA256 81125d3a823a85cd3742f00ac268c294bfe0fd05640390b576014210f68195d1 AUX 1.0.0.23-makefile-kernel-dir.patch 2129 RMD160 885b638c78cb0663d0d55682bafd453c6122fe17 SHA1 9a08768a9923d8259346f89ae78deae878b68df9 SHA256 fd583c13433bb3ddc64a21af6c472e3c6a2747990118a22881d2b48c16e5655f AUX patches/000_all_makefile-include-directory.patch 342 RMD160 ae8b7c2e628681fff153bfa10242e62df5ab2e10 SHA1 be4f203063e676dc022ce600e15479b6ea56b954 SHA256 2da16602ef3c4cb040ac80a9fed18660fadcae2e843f425da0872f50aa5356db AUX patches/020_all_epoll-def-warnings.patch 435 RMD160 b9152d9af93862c99c72abc1ef97639351d82141 SHA1 d0a40f0483a144fc98d02213c6c63b2e2ddb9f66 SHA256 2033f23fc8d696e1a9d20c6c446703166ea82a4e5e448494e6a52ef09bac7521 @@ -12,5 +13,6 @@ DIST vmware-any-any-update115.tar.gz 493641 RMD160 56cabe56f70c01a22a7671e861cc5 DIST vmware-modules-1.0.0.23.amd64.tar.bz2 489196 RMD160 5ef5d18ec22129cd4563d14ed8b213fdd3ad86ec SHA1 64a2fb7b1195d3ee773b9e49fe8dc9b5d7ffc43a SHA256 7d8028b9da2ad1694a6e71f1f6b1f63a9a03e78249f4cacdfccd1ea508e07d2a DIST vmware-modules-1.0.0.23.x86.tar.bz2 486085 RMD160 d039206f0ed3fcd93f7acf3bc24c340b8641057a SHA1 5a4e9ed931f6592c8332239e424afdd80b1b46e5 SHA256 5780292e519da9e1512bf78b1e0e6c21e44f4e10f214dcc0caf83af482dedf68 EBUILD vmware-modules-1.0.0.15-r2.ebuild 445 RMD160 d16a678a0c9291289be89006b74782aeb0ba5a7a SHA1 c27bc611caae5e0b4afdc45ed5d62ee238a43b1e SHA256 f387e8c45b0b2fcee19b80a66dd3497981c54297fd9d21b7e01c60fb7e39a65d -EBUILD vmware-modules-1.0.0.23.ebuild 724 RMD160 35c62995060e0c709dbd690ef63c48a431dfae8a SHA1 6ea6e450fd540c772f5c7227056848f8513939c2 SHA256 a132d0c74e914ff65e0cef0bdbe54e4e9e05e59ad7d1dc72e404d568bd0e31f4 +EBUILD vmware-modules-1.0.0.23.ebuild 772 RMD160 61eb4c999bba9c75f346a976c91926a12939ea12 SHA1 9f6135b4b047f91bb06650263dadc7873b30e6ea SHA256 176e2bbac2d6fccd85979b4c58bcc416a685d1cd61027706826c3c0fecbd00b7 +MISC ChangeLog 753 RMD160 e1878bd15ff77452618d34f07465d307308147ed SHA1 198a0d1e2d6e4d14c47a728a7f6e11ce7c761aec SHA256 b045f38e6df6d9ce21b8d2928d93a0a18fc21c3458345a213ef044ee531d46c8 MISC metadata.xml 159 RMD160 fc7f68a382390e5916b0fb43f37a893fad4f9798 SHA1 f46b02a39bcd0165558de67ff4256cfc812418a3 SHA256 8581ae1c90a48f50fa0542c7fb28cb8984baaf12f50fa18f33e467081effb215 diff --git a/app-emulation/vmware-modules/files/1.0.0.23-kernel-2.6.29.patch b/app-emulation/vmware-modules/files/1.0.0.23-kernel-2.6.29.patch new file mode 100644 index 0000000..8b613b1 --- /dev/null +++ b/app-emulation/vmware-modules/files/1.0.0.23-kernel-2.6.29.patch @@ -0,0 +1,297 @@ +diff -Naur orig/vmblock-only/include/compat_wait.h new/vmblock-only/include/compat_wait.h +--- orig/vmblock-only/include/compat_wait.h 2008-10-28 22:47:20.000000000 -0700 ++++ new/vmblock-only/include/compat_wait.h 2009-01-20 04:49:44.000000000 -0700 +@@ -75,7 +75,11 @@ + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // { + + /* If prototype does not match, build will abort here */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + extern void poll_initwait(compat_poll_wqueues *); ++#else ++extern void poll_initwait(struct poll_wqueues *pwq); ++#endif + + #define compat_poll_initwait(wait, table) ( \ + (wait) = (table), \ +diff -Naur orig/vmci-only/include/compat_wait.h new/vmci-only/include/compat_wait.h +--- orig/vmci-only/include/compat_wait.h 2008-10-28 22:47:21.000000000 -0700 ++++ new/vmci-only/include/compat_wait.h 2009-01-20 04:49:44.000000000 -0700 +@@ -75,7 +75,11 @@ + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // { + + /* If prototype does not match, build will abort here */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + extern void poll_initwait(compat_poll_wqueues *); ++#else ++extern void poll_initwait(struct poll_wqueues *pwq); ++#endif + + #define compat_poll_initwait(wait, table) ( \ + (wait) = (table), \ +diff -Naur orig/vmmon-only/include/compat_wait.h new/vmmon-only/include/compat_wait.h +--- orig/vmmon-only/include/compat_wait.h 2008-10-28 22:47:18.000000000 -0700 ++++ new/vmmon-only/include/compat_wait.h 2009-01-20 04:49:44.000000000 -0700 +@@ -75,7 +75,11 @@ + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // { + + /* If prototype does not match, build will abort here */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + extern void poll_initwait(compat_poll_wqueues *); ++#else ++extern void poll_initwait(struct poll_wqueues *pwq); ++#endif + + #define compat_poll_initwait(wait, table) ( \ + (wait) = (table), \ +diff -Naur orig/vmmon-only/include/x86apic.h new/vmmon-only/include/x86apic.h +--- orig/vmmon-only/include/x86apic.h 2008-10-28 22:47:17.000000000 -0700 ++++ new/vmmon-only/include/x86apic.h 2009-01-20 04:49:44.000000000 -0700 +@@ -94,7 +94,11 @@ + #define APIC_LVT_DELVMODE(_lvt) (_lvt & 0x700) + #define APIC_LVT_RESET_VALUE 0x00010000 + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 28) + #define APIC_BASE_MSR 0x1b ++#else ++#define APIC_BASE_MSR 0x800 ++#endif + + #define APIC_MSR_BASEMASK QWORD(0x0000000f,0xfffff000) + #define APIC_MSR_ENABLED 0x00000800 +diff -Naur orig/vmmon-only/linux/driver.c new/vmmon-only/linux/driver.c +--- orig/vmmon-only/linux/driver.c 2008-10-28 22:47:18.000000000 -0700 ++++ new/vmmon-only/linux/driver.c 2009-01-20 04:49:44.000000000 -0700 +@@ -1984,10 +1984,17 @@ + } + + case IOCTL_VMX86_ALLOW_CORE_DUMP: ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + if (current->euid == current->uid && + current->fsuid == current->uid && + current->egid == current->gid && + current->fsgid == current->gid) { ++#else /* 2.6.29 and higher */ ++ if (current->cred->euid == current->cred->uid && ++ current->cred->fsuid == current->cred->uid && ++ current->cred->egid == current->cred->gid && ++ current->cred->fsgid == current->cred->gid) { ++#endif /* 2.6.29 check */ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) || defined(MMF_DUMPABLE) + /* Dump core, readable by user. */ + set_bit(MMF_DUMPABLE, ¤t->mm->flags); +diff -Naur orig/vmmon-only/linux/hostif.c new/vmmon-only/linux/hostif.c +--- orig/vmmon-only/linux/hostif.c 2008-10-28 22:47:17.000000000 -0700 ++++ new/vmmon-only/linux/hostif.c 2009-01-20 04:49:44.000000000 -0700 +@@ -2718,13 +2718,22 @@ + set_fs(get_ds()); + + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + compat_poll_wqueues table; + poll_table *wait; ++#else /* 2.6.29 and above */ ++ struct poll_wqueues table; ++ struct poll_wqueues *wait; ++#endif /* 2.6.29 and above */ + unsigned int mask; + + compat_poll_initwait(wait, &table); + current->state = TASK_INTERRUPTIBLE; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + mask = file->f_op->poll(file, wait); ++#else ++ mask = file->f_op->poll(file, (poll_table *) wait); ++#endif /* 2.6.29 */ + if (!(mask & (POLLIN | POLLERR | POLLHUP))) { + #ifdef KERNEL_2_4_0 + vm->vmhost->vcpuSemaTask[vcpuid] = current; +@@ -2743,7 +2752,6 @@ + } + + res = file->f_op->read(file, &ch, 1, &file->f_pos); +- + set_fs(old_fs); + compat_fput(file); + +@@ -3455,8 +3463,13 @@ + oldFS = get_fs(); + set_fs(KERNEL_DS); + compat_allow_signal(SIGKILL); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + cap_raise(current->cap_effective, CAP_SYS_RESOURCE); + compat_set_user_nice(current, linuxState.fastClockPriority); ++#else /* 2.6.29 */ ++ (void) cap_raised(current->cred->cap_effective, CAP_SYS_RESOURCE); ++ set_user_nice(current, linuxState.fastClockPriority); ++#endif /* 2.6.29 and higher */ + + while (linuxState.fastClockRate > HZ + HZ/16) { + unsigned long buf; +@@ -3579,19 +3592,38 @@ + Bool cap; + long pid; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + fsuid = current->fsuid; + current->fsuid = 0; ++#else ++ fsuid = current->cred->fsuid; ++#warning current->cred->fsuid = 0; ++#endif /* 2.6.29 */ + filp = filp_open("/dev/rtc", O_RDONLY, 0); ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + current->fsuid = fsuid; ++#else ++#warning current->cred->fsuid = fsuid; ++#endif /* 2.6.29 */ + if (IS_ERR(filp)) { + Warning("/dev/rtc open failed: %d\n", (int)(VA)filp); + return -(int)(VA)filp; + } ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + cap = cap_raised(current->cap_effective, CAP_SYS_RESOURCE); + cap_raise(current->cap_effective, CAP_SYS_RESOURCE); ++#else /* 2.6.29 */ ++ cap = cap_raised(current->cred->cap_effective, CAP_SYS_RESOURCE); ++ (void) cap_raised(current->cred->cap_effective, CAP_SYS_RESOURCE); ++#endif /* 2.6.29 */ + res = HostIFDoIoctl(filp, RTC_PIE_ON, 0); + if (!cap) { +- cap_lower(current->cap_effective, CAP_SYS_RESOURCE); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) ++ cap_lower(current->cap_effective, CAP_SYS_RESOURCE); ++#else ++#warning cap_lower(current->cred->cap_effective, CAP_SYS_RESOURCE); ++#endif /* 2.6.29 */ + } + if (res < 0) { + Warning("/dev/rtc enable interrupt failed: %d\n", res); +diff -Naur orig/vmmon-only/linux/vmmonInt.h new/vmmon-only/linux/vmmonInt.h +--- orig/vmmon-only/linux/vmmonInt.h 2008-10-28 22:47:17.000000000 -0700 ++++ new/vmmon-only/linux/vmmonInt.h 2009-01-20 04:49:44.000000000 -0700 +@@ -46,7 +46,10 @@ + #endif + + #if defined(CONFIG_SMP) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 2, 8) +-#ifdef VMW_HAVE_SMP_CALL_3ARG ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) ++#define VMW_HAVE_SMP_CALL_3ARG ++#endif ++#ifdef VMW_HAVE_SMP_CALL_3ARG + #define compat_smp_call_function(fn, info, wait) smp_call_function(fn, info, wait) + #else + #define compat_smp_call_function(fn, info, wait) smp_call_function(fn, info, 1, wait) +diff -Naur orig/vmnet-only/bridge.c new/vmnet-only/bridge.c +--- orig/vmnet-only/bridge.c 2008-10-28 22:47:18.000000000 -0700 ++++ new/vmnet-only/bridge.c 2009-01-20 04:49:44.000000000 -0700 +@@ -646,7 +646,11 @@ + dev_unlock_list(); + } else { + struct sock *sk = bridge->sk; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + atomic_add(skb->truesize, &sk->sk_wmem_alloc); ++#else ++#warning EHUD gotta figure out what this does and how to fix it: atomic_add(skb->truesize, &sk->sk_wmem_alloc); ++#endif /* 2.6.29 */ + clone->sk = sk; + clone->protocol = ((struct ethhdr *)skb->data)->h_proto; // XXX + if ((dev->flags & IFF_UP) != 0) { +diff -Naur orig/vmnet-only/compat_wait.h new/vmnet-only/compat_wait.h +--- orig/vmnet-only/compat_wait.h 2008-10-28 22:47:19.000000000 -0700 ++++ new/vmnet-only/compat_wait.h 2009-01-20 04:49:44.000000000 -0700 +@@ -75,7 +75,11 @@ + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // { + + /* If prototype does not match, build will abort here */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + extern void poll_initwait(compat_poll_wqueues *); ++#else /* 2.6.29 */ ++extern void poll_initwait(struct poll_wqueues *); ++#endif /* 2.6.29 */ + + #define compat_poll_initwait(wait, table) ( \ + (wait) = (table), \ +diff -Naur orig/vmnet-only/driver.c new/vmnet-only/driver.c +--- orig/vmnet-only/driver.c 2008-10-28 22:47:19.000000000 -0700 ++++ new/vmnet-only/driver.c 2009-01-20 04:49:44.000000000 -0700 +@@ -146,6 +146,13 @@ + .owner = THIS_MODULE, + .obj_size = sizeof(struct sock), + }; ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) ++struct proto vmnet_proto = { ++ .name = "VMNET", ++ .owner = THIS_MODULE, ++ .obj_size = sizeof(struct sock), ++}; ++ + #endif + + /* +diff -Naur orig/vmnet-only/netif.c new/vmnet-only/netif.c +--- orig/vmnet-only/netif.c 2008-10-28 22:47:18.000000000 -0700 ++++ new/vmnet-only/netif.c 2009-01-20 04:49:44.000000000 -0700 +@@ -324,7 +324,10 @@ + goto out; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + dev->priv = netIf; ++#endif /* 2.6.29 */ ++ + netIf->dev = dev; + + memcpy(dev->dev_addr, netIf->port.paddr, sizeof netIf->port.paddr); +@@ -566,7 +569,11 @@ + VNetNetifStartXmit(struct sk_buff *skb, // IN: + struct net_device *dev) // IN: + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + VNetNetIF *netIf = (VNetNetIF*)dev->priv; ++#else ++ VNetNetIF *netIf = netdev_priv(dev); ++#endif /* 2.6.29 */ + + if(skb == NULL) { + return 0; +@@ -618,7 +625,12 @@ + VNetNetifSetMAC(struct net_device *dev, // IN: + void *p) // IN: + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + VNetNetIF *netIf = (VNetNetIF*)dev->priv; ++#else ++ VNetNetIF *netIf = netdev_priv(dev); ++#endif /* 2.6.29 */ ++ + struct sockaddr const *addr = p; + if (!VMX86_IS_STATIC_MAC(addr->sa_data)) { + return -EINVAL; +@@ -675,7 +687,11 @@ + struct net_device_stats * + VNetNetifGetStats(struct net_device *dev) // IN: + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + VNetNetIF *netIf = (VNetNetIF*)dev->priv; ++#else ++ VNetNetIF *netIf = netdev_priv(dev); ++#endif /* 2.6.29 */ + return &(netIf->stats); + } + +diff -Naur orig/vsock-only/include/compat_wait.h new/vsock-only/include/compat_wait.h +--- orig/vsock-only/include/compat_wait.h 2009-01-20 14:11:34.000000000 +0100 ++++ new/vsock-only/include/compat_wait.h 2009-01-20 14:51:05.000000000 +0100 +@@ -75,7 +75,11 @@ + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // { + + /* If prototype does not match, build will abort here */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) + extern void poll_initwait(compat_poll_wqueues *); ++#else ++extern void poll_initwait(struct poll_wqueues *pwq); ++#endif + + #define compat_poll_initwait(wait, table) ( \ + (wait) = (table), \ diff --git a/app-emulation/vmware-modules/vmware-modules-1.0.0.23.ebuild b/app-emulation/vmware-modules/vmware-modules-1.0.0.23.ebuild index fc452d7..7933eee 100644 --- a/app-emulation/vmware-modules/vmware-modules-1.0.0.23.ebuild +++ b/app-emulation/vmware-modules/vmware-modules-1.0.0.23.ebuild @@ -18,5 +18,6 @@ VMWARE_MOD_DIR="${P}" src_unpack() { vmware-mod_src_unpack cd "${S}" + epatch "${FILESDIR}/${PV}-kernel-2.6.29.patch" epatch "${FILESDIR}/${PV}-makefile-kernel-dir.patch" } |