about summary refs log tree commit diff
path: root/pkgs/applications/virtualization/xen
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2010-12-22 19:38:26 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2010-12-22 19:38:26 +0000
commit770ca317ba85b81f5d854bcf72f0fea515ccc99d (patch)
tree8d19651958b0872f8a83b33d461f1b13bd7264ce /pkgs/applications/virtualization/xen
parent569ae5fe130d5834fa3fbe8175fff00b5a8004f4 (diff)
downloadnixlib-770ca317ba85b81f5d854bcf72f0fea515ccc99d.tar
nixlib-770ca317ba85b81f5d854bcf72f0fea515ccc99d.tar.gz
nixlib-770ca317ba85b81f5d854bcf72f0fea515ccc99d.tar.bz2
nixlib-770ca317ba85b81f5d854bcf72f0fea515ccc99d.tar.lz
nixlib-770ca317ba85b81f5d854bcf72f0fea515ccc99d.tar.xz
nixlib-770ca317ba85b81f5d854bcf72f0fea515ccc99d.tar.zst
nixlib-770ca317ba85b81f5d854bcf72f0fea515ccc99d.zip
* Get Xen to build with GCC 4.5 and Glibc 2.12.
svn path=/nixpkgs/branches/stdenv-updates/; revision=25247
Diffstat (limited to 'pkgs/applications/virtualization/xen')
-rw-r--r--pkgs/applications/virtualization/xen/default.nix7
-rw-r--r--pkgs/applications/virtualization/xen/gcc-4.5.patch39
2 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/applications/virtualization/xen/default.nix b/pkgs/applications/virtualization/xen/default.nix
index b7a7d1ed31f4..4c93a277e984 100644
--- a/pkgs/applications/virtualization/xen/default.nix
+++ b/pkgs/applications/virtualization/xen/default.nix
@@ -44,6 +44,9 @@ stdenv.mkDerivation {
     [ # Xen looks for headers in /usr/include and for libraries using
       # ldconfig.  Don't do that.
       ./has-header.patch
+
+      # GCC 4.5 compatibility.
+      ./gcc-4.5.patch
     ];
 
   buildInputs =
@@ -101,6 +104,10 @@ stdenv.mkDerivation {
       ${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in ''
         cp ${src} stubdom/${src.name}
       '')}
+
+      # Hack to get `gcc -m32' to work without having 32-bit Glibc headers.
+      mkdir -p tools/include/gnu
+      touch tools/include/gnu/stubs-32.h
     '';
 
   postBuild =
diff --git a/pkgs/applications/virtualization/xen/gcc-4.5.patch b/pkgs/applications/virtualization/xen/gcc-4.5.patch
new file mode 100644
index 000000000000..a8412d69fd3f
--- /dev/null
+++ b/pkgs/applications/virtualization/xen/gcc-4.5.patch
@@ -0,0 +1,39 @@
+http://lists.xensource.com/archives/html/xen-devel/2010-07/msg01276.html
+
+diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/arch/x86/mm.c xen-4.0.1//extras/mini-os/arch/x86/mm.c
+--- xen-4.0.1-orig//extras/mini-os/arch/x86/mm.c	2010-08-25 12:22:07.000000000 +0200
++++ xen-4.0.1//extras/mini-os/arch/x86/mm.c	2010-12-22 20:10:05.000000000 +0100
+@@ -281,7 +281,7 @@
+ /*
+  * Mark portion of the address space read only.
+  */
+-extern void shared_info;
++extern char shared_info[PAGE_SIZE]; 
+ static void set_readonly(void *text, void *etext)
+ {
+     unsigned long start_address =
+diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/minios.mk xen-4.0.1//extras/mini-os/minios.mk
+--- xen-4.0.1-orig//extras/mini-os/minios.mk	2010-08-25 12:22:07.000000000 +0200
++++ xen-4.0.1//extras/mini-os/minios.mk	2010-12-22 20:03:11.000000000 +0100
+@@ -10,6 +10,7 @@
+ DEF_CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,)
+ DEF_CFLAGS += $(call cc-option,$(CC),-fgnu89-inline)
+ DEF_CFLAGS += -Wstrict-prototypes -Wnested-externs -Wpointer-arith -Winline
++DEF_CFLAGS += -Wno-uninitialized
+ DEF_CPPFLAGS += -D__XEN_INTERFACE_VERSION__=$(XEN_INTERFACE_VERSION)
+ 
+ DEF_ASFLAGS += -D__ASSEMBLY__
+diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/netfront.c xen-4.0.1//extras/mini-os/netfront.c
+--- xen-4.0.1-orig//extras/mini-os/netfront.c	2010-08-25 12:22:07.000000000 +0200
++++ xen-4.0.1//extras/mini-os/netfront.c	2010-12-22 19:56:59.000000000 +0100
+@@ -25,8 +25,8 @@
+ 
+ 
+ 
+-#define NET_TX_RING_SIZE __RING_SIZE((struct netif_tx_sring *)0, PAGE_SIZE)
+-#define NET_RX_RING_SIZE __RING_SIZE((struct netif_rx_sring *)0, PAGE_SIZE)
++#define NET_TX_RING_SIZE __CONST_RING_SIZE(netif_tx, PAGE_SIZE)
++#define NET_RX_RING_SIZE __CONST_RING_SIZE(netif_rx, PAGE_SIZE)
+ #define GRANT_INVALID_REF 0
+ 
+