* Get Xen to build with GCC 4.5 and Glibc 2.12.

svn path=/nixpkgs/branches/stdenv-updates/; revision=25247
This commit is contained in:
Eelco Dolstra 2010-12-22 19:38:26 +00:00
parent 569ae5fe13
commit 770ca317ba
2 changed files with 46 additions and 0 deletions

View File

@ -44,6 +44,9 @@ stdenv.mkDerivation {
[ # Xen looks for headers in /usr/include and for libraries using [ # Xen looks for headers in /usr/include and for libraries using
# ldconfig. Don't do that. # ldconfig. Don't do that.
./has-header.patch ./has-header.patch
# GCC 4.5 compatibility.
./gcc-4.5.patch
]; ];
buildInputs = buildInputs =
@ -101,6 +104,10 @@ stdenv.mkDerivation {
${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in '' ${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in ''
cp ${src} stubdom/${src.name} 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 = postBuild =

View File

@ -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