diff options
author | 2006-05-06 08:52:33 +0000 | |
---|---|---|
committer | 2006-05-06 08:52:33 +0000 | |
commit | f1875ed11f4d6c00d9c912164db0b84be7a041e8 (patch) | |
tree | 0a939287c4d5914c3784ed9b94369d108d959e96 /app-emulation/qemu-user | |
parent | Update to ooo-build-2.0.2.9 (diff) | |
download | historical-f1875ed11f4d6c00d9c912164db0b84be7a041e8.tar.gz historical-f1875ed11f4d6c00d9c912164db0b84be7a041e8.tar.bz2 historical-f1875ed11f4d6c00d9c912164db0b84be7a041e8.zip |
New version + mdk fixes for gcc4
Package-Manager: portage-2.1_pre10-r2
Diffstat (limited to 'app-emulation/qemu-user')
-rw-r--r-- | app-emulation/qemu-user/ChangeLog | 9 | ||||
-rw-r--r-- | app-emulation/qemu-user/Manifest | 36 | ||||
-rw-r--r-- | app-emulation/qemu-user/files/digest-qemu-user-0.8.1 | 3 | ||||
-rw-r--r-- | app-emulation/qemu-user/files/qemu-0.8.0-gcc4-hacks.patch | 118 | ||||
-rw-r--r-- | app-emulation/qemu-user/qemu-user-0.8.0.20060329.ebuild | 4 | ||||
-rw-r--r-- | app-emulation/qemu-user/qemu-user-0.8.0.ebuild | 4 | ||||
-rw-r--r-- | app-emulation/qemu-user/qemu-user-0.8.1.ebuild | 85 |
7 files changed, 244 insertions, 15 deletions
diff --git a/app-emulation/qemu-user/ChangeLog b/app-emulation/qemu-user/ChangeLog index 5925b8e480d5..78f104d65e8a 100644 --- a/app-emulation/qemu-user/ChangeLog +++ b/app-emulation/qemu-user/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for app-emulation/qemu-user # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-user/ChangeLog,v 1.13 2006/04/27 23:56:09 lu_zero Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-user/ChangeLog,v 1.14 2006/05/06 08:52:33 lu_zero Exp $ + +*qemu-user-0.8.1 (06 May 2006) + + 06 May 2006; Luca Barbato <lu_zero@gentoo.org> + +files/qemu-0.8.0-gcc4-hacks.patch, qemu-user-0.8.0.ebuild, + qemu-user-0.8.0.20060329.ebuild, +qemu-user-0.8.1.ebuild: + New version and added Mandrake patch for gcc4 on x86 27 Apr 2006; Luca Barbato <lu_zero@gentoo.org> qemu-user-0.8.0.ebuild, qemu-user-0.8.0.20060329.ebuild: diff --git a/app-emulation/qemu-user/Manifest b/app-emulation/qemu-user/Manifest index b39c3aa916bb..ad1f94aed333 100644 --- a/app-emulation/qemu-user/Manifest +++ b/app-emulation/qemu-user/Manifest @@ -1,3 +1,7 @@ +AUX qemu-0.8.0-gcc4-hacks.patch 4451 RMD160 9195413c569dc51cc6ea21b733562c2d34026ed8 SHA1 fec0792b21cd1a529efc9d108bfd683c26ee7547 SHA256 ab6e2c142400b8b66990e9f0a3b44f0df7170460c3824775b2ecc27f06773f06 size 4451 +MD5 cb2b0532b6eab6f80c14b33cfba70662 files/qemu-0.8.0-gcc4-hacks.patch 4451 +RMD160 9195413c569dc51cc6ea21b733562c2d34026ed8 files/qemu-0.8.0-gcc4-hacks.patch 4451 +SHA256 ab6e2c142400b8b66990e9f0a3b44f0df7170460c3824775b2ecc27f06773f06 files/qemu-0.8.0-gcc4-hacks.patch 4451 AUX qemu-0.8.0-stwbrx.patch 657 RMD160 e836fe37fdcb5c4021467900b0b588958ee29e14 SHA1 1988ac4afb9ef57aae53b050ec697b229c81fe99 SHA256 863648f94316f7ce1a49f31760b1e1083dce278e3099d25ac1b156a3e40d5856 size 657 MD5 3413fbd9b74c40431378d1d89ce2fd5c files/qemu-0.8.0-stwbrx.patch 657 RMD160 e836fe37fdcb5c4021467900b0b588958ee29e14 files/qemu-0.8.0-stwbrx.patch 657 @@ -15,6 +19,7 @@ DIST qemu-0.7.1.tar.gz 1338521 size 1338521 DIST qemu-0.7.2.tar.gz 1341993 size 1341993 DIST qemu-0.8.0.20060329.tar.bz2 1325034 RMD160 a6ec15e1b08dd6e2dd88d953bfa31e3db1dc212e SHA256 4ccb27692ffaee119728442298da84198d6319de79a18d497d14604e140c3eb0 size 1325034 DIST qemu-0.8.0.tar.gz 1497965 RMD160 3fc6da938f75364d0805ca0ecf8cb84a4b546dc7 SHA256 de388539ce86971a2cbe8474fca8b6160898c95772e3e6e08a7794d48db32a61 size 1497965 +DIST qemu-0.8.1.tar.gz 1623264 RMD160 04d163d4792bbea39fc0b1e52af124cdb7e907dc SHA256 a1f83666f5c05eaee9bfc608a3a5034ad95d0fd3c99937bb399bf9235a6aa0c9 size 1623264 EBUILD qemu-user-0.7.0-r1.ebuild 2250 RMD160 ada0d07b4c8fa953dac3ebdfab2d9ffcd28178e5 SHA1 4ab5051b20eedf9bf51513c0d9da13a006736846 SHA256 fd1a52e521315469af3fb2acaae4bc9c29c67ab97de96cbe34a77126d235ab91 size 2250 MD5 431458f4c01ad6238f20d77302e4b871 qemu-user-0.7.0-r1.ebuild 2250 RMD160 ada0d07b4c8fa953dac3ebdfab2d9ffcd28178e5 qemu-user-0.7.0-r1.ebuild 2250 @@ -27,18 +32,22 @@ EBUILD qemu-user-0.7.2.ebuild 2254 RMD160 4311bfc3bd26c371d08589687a5647dc8ca157 MD5 6844e6102d3882420b7fc684e72fde6a qemu-user-0.7.2.ebuild 2254 RMD160 4311bfc3bd26c371d08589687a5647dc8ca15759 qemu-user-0.7.2.ebuild 2254 SHA256 86d2922e24c763353f8554b064b48661704ef042b2a4828c763d1cedfa59aa28 qemu-user-0.7.2.ebuild 2254 -EBUILD qemu-user-0.8.0.20060329.ebuild 2176 RMD160 4c09d777c6c5a91dd9222dd9c41f1bfb47ea7846 SHA1 82ba0de0f6a9587ba258889a32f7d858d63f2d66 SHA256 8b3ce46b194b4dbe6979c36ab75e1fd0be83eb7d7dc88bce0e999a192332249f size 2176 -MD5 6a9e5226c374617bf6a340087331042b qemu-user-0.8.0.20060329.ebuild 2176 -RMD160 4c09d777c6c5a91dd9222dd9c41f1bfb47ea7846 qemu-user-0.8.0.20060329.ebuild 2176 -SHA256 8b3ce46b194b4dbe6979c36ab75e1fd0be83eb7d7dc88bce0e999a192332249f qemu-user-0.8.0.20060329.ebuild 2176 -EBUILD qemu-user-0.8.0.ebuild 2182 RMD160 ec36d9eef407d7d12acef185b22e5eade20c5a8b SHA1 adfe20d172d181bf47648b405b7793cf4ea9d10b SHA256 ee284e5b6fb147e30b40c2e50ea1b002f17b55122af45dd3ae1c131c03ec0e8c size 2182 -MD5 b7002cc71f4fe2408068dc5fe10c993e qemu-user-0.8.0.ebuild 2182 -RMD160 ec36d9eef407d7d12acef185b22e5eade20c5a8b qemu-user-0.8.0.ebuild 2182 -SHA256 ee284e5b6fb147e30b40c2e50ea1b002f17b55122af45dd3ae1c131c03ec0e8c qemu-user-0.8.0.ebuild 2182 -MISC ChangeLog 2086 RMD160 4471778722b80f268de6e3caf351eee2edda5f33 SHA1 bcbb2417ff6d5a23147c9e44afec74ef9fb0f5af SHA256 44fbd404230d79c60abd5a8042e5005831668ce29ae3c74ba2e441e54f69652f size 2086 -MD5 6a7538f26413ab1af909c15fc983735d ChangeLog 2086 -RMD160 4471778722b80f268de6e3caf351eee2edda5f33 ChangeLog 2086 -SHA256 44fbd404230d79c60abd5a8042e5005831668ce29ae3c74ba2e441e54f69652f ChangeLog 2086 +EBUILD qemu-user-0.8.0.20060329.ebuild 2225 RMD160 8978da946624a0f4c4d93c330910216b7b6013f3 SHA1 08c12f50d9c6d7e0f18b93de0cc184e568442b2a SHA256 7444e0d0a4844989da716d8ca4032d6ee2b6aa40ffe3c49570f48480f262fd8e size 2225 +MD5 516b794b26c700c37b5659593410630e qemu-user-0.8.0.20060329.ebuild 2225 +RMD160 8978da946624a0f4c4d93c330910216b7b6013f3 qemu-user-0.8.0.20060329.ebuild 2225 +SHA256 7444e0d0a4844989da716d8ca4032d6ee2b6aa40ffe3c49570f48480f262fd8e qemu-user-0.8.0.20060329.ebuild 2225 +EBUILD qemu-user-0.8.0.ebuild 2231 RMD160 82fccd29f2e6636d3fa5e35c3332984448b5d67d SHA1 2af9be8e159704cf47968e4b376e620701a33882 SHA256 b1ec26857119cfc3a879e8e085f620e4ce4a761b39e9269a78cd8eed8b190af6 size 2231 +MD5 25f1b2331dc7718fb5ba4bb1c42b74a5 qemu-user-0.8.0.ebuild 2231 +RMD160 82fccd29f2e6636d3fa5e35c3332984448b5d67d qemu-user-0.8.0.ebuild 2231 +SHA256 b1ec26857119cfc3a879e8e085f620e4ce4a761b39e9269a78cd8eed8b190af6 qemu-user-0.8.0.ebuild 2231 +EBUILD qemu-user-0.8.1.ebuild 2233 RMD160 8d998908a71f512aadbd85458d3680bf1ad88a75 SHA1 1bfdf427427745eab77e159cb6eb584a5b85394b SHA256 5d4d96ee64c74f5ba8d758ddf65c1b9b42086cc432ad6cdcdc4b65e415590f7e size 2233 +MD5 065c49a485003c5e57b5b8dfafa9d68d qemu-user-0.8.1.ebuild 2233 +RMD160 8d998908a71f512aadbd85458d3680bf1ad88a75 qemu-user-0.8.1.ebuild 2233 +SHA256 5d4d96ee64c74f5ba8d758ddf65c1b9b42086cc432ad6cdcdc4b65e415590f7e qemu-user-0.8.1.ebuild 2233 +MISC ChangeLog 2345 RMD160 3026288a636f1521c560250fd7780b2c7c02e5c1 SHA1 febd7ee7d4f1fff3ec78fab33348a2693104bd8c SHA256 9e4d33912f2e66544a41725cc4af6985cedabcbb777fee9b24784bcd69c29692 size 2345 +MD5 1d80d9793aa889992bbac8a04d4262b9 ChangeLog 2345 +RMD160 3026288a636f1521c560250fd7780b2c7c02e5c1 ChangeLog 2345 +SHA256 9e4d33912f2e66544a41725cc4af6985cedabcbb777fee9b24784bcd69c29692 ChangeLog 2345 MISC metadata.xml 223 RMD160 f054e67dff10c87ea1d0b5753124445be6bd4610 SHA1 fcf66d2b271369d296150dde06603d850623ed27 SHA256 64a96c3c9929aec46b50a63ae1fd8c46cef4a8423f448d6f6fff09e20510c98b size 223 MD5 898131aae735c3477ff2f9c6882f1178 metadata.xml 223 RMD160 f054e67dff10c87ea1d0b5753124445be6bd4610 metadata.xml 223 @@ -58,3 +67,6 @@ SHA256 3a0d30d8d69012e29c4b11ef5a5a38db76448c3861284ba2542601c07206ece8 files/di MD5 7b37ddf9c9d0e804507d778b442e319d files/digest-qemu-user-0.8.0.20060329 265 RMD160 ee94cfa67ecfe9c17b60cb7fd52fb8add28bea62 files/digest-qemu-user-0.8.0.20060329 265 SHA256 3134ca16b309af7a134fcd211912d960a4b0d08dcc076c2477e027a67ba0cd49 files/digest-qemu-user-0.8.0.20060329 265 +MD5 b570a828da955931e1ae2613d74f7f9d files/digest-qemu-user-0.8.1 235 +RMD160 01a787057322c9b6d46e020414e704be54ed08c8 files/digest-qemu-user-0.8.1 235 +SHA256 29649538533fbbecced06b157fad1615c08308ae7ce3dbf1cd4fce8cb5b5d8c2 files/digest-qemu-user-0.8.1 235 diff --git a/app-emulation/qemu-user/files/digest-qemu-user-0.8.1 b/app-emulation/qemu-user/files/digest-qemu-user-0.8.1 new file mode 100644 index 000000000000..27ca8ef85175 --- /dev/null +++ b/app-emulation/qemu-user/files/digest-qemu-user-0.8.1 @@ -0,0 +1,3 @@ +MD5 67d924324a5ab79d017bd97a1e767285 qemu-0.8.1.tar.gz 1623264 +RMD160 04d163d4792bbea39fc0b1e52af124cdb7e907dc qemu-0.8.1.tar.gz 1623264 +SHA256 a1f83666f5c05eaee9bfc608a3a5034ad95d0fd3c99937bb399bf9235a6aa0c9 qemu-0.8.1.tar.gz 1623264 diff --git a/app-emulation/qemu-user/files/qemu-0.8.0-gcc4-hacks.patch b/app-emulation/qemu-user/files/qemu-0.8.0-gcc4-hacks.patch new file mode 100644 index 000000000000..f7cbdcfe1951 --- /dev/null +++ b/app-emulation/qemu-user/files/qemu-0.8.0-gcc4-hacks.patch @@ -0,0 +1,118 @@ +2005-10-28 Gwenole Beauchesne <gbeauchesne@mandriva.com> + + * Various additional hacks for GCC4. + +--- qemu-0.7.2/target-i386/ops_sse.h.gcc4-hacks 2005-09-04 19:11:31.000000000 +0200 ++++ qemu-0.7.2/target-i386/ops_sse.h 2005-10-28 10:09:21.000000000 +0200 +@@ -34,6 +34,12 @@ + #define Q(n) XMM_Q(n) + #define SUFFIX _xmm + #endif ++#if defined(__i386__) && __GNUC__ >= 4 ++#define RegCopy(d, s) __builtin_memcpy(&(d), &(s), sizeof(d)) ++#endif ++#ifndef RegCopy ++#define RegCopy(d, s) d = s ++#endif + + void OPPROTO glue(op_psrlw, SUFFIX)(void) + { +@@ -570,7 +576,7 @@ void OPPROTO glue(op_pshufw, SUFFIX) (vo + r.W(1) = s->W((order >> 2) & 3); + r.W(2) = s->W((order >> 4) & 3); + r.W(3) = s->W((order >> 6) & 3); +- *d = r; ++ RegCopy(*d, r); + } + #else + void OPPROTO op_shufps(void) +--- qemu-0.7.2/target-i386/helper.c.gcc4-hacks 2005-09-04 19:11:31.000000000 +0200 ++++ qemu-0.7.2/target-i386/helper.c 2005-10-28 10:09:21.000000000 +0200 +@@ -3130,8 +3130,15 @@ void helper_fxrstor(target_ulong ptr, in + nb_xmm_regs = 8 << data64; + addr = ptr + 0xa0; + for(i = 0; i < nb_xmm_regs; i++) { ++#if defined(__i386__) && __GNUC__ >= 4 ++ env->xmm_regs[i].XMM_L(0) = ldl(addr); ++ env->xmm_regs[i].XMM_L(1) = ldl(addr + 4); ++ env->xmm_regs[i].XMM_L(2) = ldl(addr + 8); ++ env->xmm_regs[i].XMM_L(3) = ldl(addr + 12); ++#else + env->xmm_regs[i].XMM_Q(0) = ldq(addr); + env->xmm_regs[i].XMM_Q(1) = ldq(addr + 8); ++#endif + addr += 16; + } + } +--- qemu-0.7.2/cpu-all.h.gcc4-hacks 2005-09-04 19:11:31.000000000 +0200 ++++ qemu-0.7.2/cpu-all.h 2005-10-28 10:09:21.000000000 +0200 +@@ -339,7 +339,13 @@ + + static inline void stq_le_p(void *ptr, uint64_t v) + { ++#if defined(__i386__) && __GNUC__ >= 4 ++ const union { uint64_t v; uint32_t p[2]; } x = { .v = v }; ++ ((uint32_t *)ptr)[0] = x.p[0]; ++ ((uint32_t *)ptr)[1] = x.p[1]; ++#else + *(uint64_t *)ptr = v; ++#endif + } + + /* float access */ +--- qemu-0.7.2/softmmu_header.h.gcc4-hacks 2005-10-28 10:08:08.000000000 +0200 ++++ qemu-0.7.2/softmmu_header.h 2005-10-28 10:09:21.000000000 +0200 +@@ -104,7 +104,7 @@ + void REGPARM(2) glue(glue(__st, SUFFIX), MMUSUFFIX)(target_ulong addr, DATA_TYPE v, int is_user); + + #if (DATA_SIZE <= 4) && (TARGET_LONG_BITS == 32) && defined(__i386__) && \ +- (ACCESS_TYPE <= 1) && defined(ASM_SOFTMMU) ++ (ACCESS_TYPE <= 1) && defined(ASM_SOFTMMU) && (__GNUC__ < 4) + + #define CPU_TLB_ENTRY_BITS 4 + +@@ -131,7 +131,7 @@ static inline RES_TYPE glue(glue(ld, USU + "m" (*(uint32_t *)offsetof(CPUState, tlb_read[CPU_MEM_INDEX][0].address)), + "i" (CPU_MEM_INDEX), + "m" (*(uint8_t *)&glue(glue(__ld, SUFFIX), MMUSUFFIX)) +- : "%eax", "%ecx", "%edx", "memory", "cc"); ++ : "%eax", "%edx", "memory", "cc"); + return res; + } + +@@ -178,13 +178,14 @@ static inline int glue(glue(lds, SUFFIX) + "m" (*(uint32_t *)offsetof(CPUState, tlb_read[CPU_MEM_INDEX][0].address)), + "i" (CPU_MEM_INDEX), + "m" (*(uint8_t *)&glue(glue(__ld, SUFFIX), MMUSUFFIX)) +- : "%eax", "%ecx", "%edx", "memory", "cc"); ++ : "%eax", "%edx", "memory", "cc"); + return res; + } + #endif + +-static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE v) ++static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE val) + { ++ RES_TYPE v = val; + asm volatile ("movl %0, %%edx\n" + "movl %0, %%eax\n" + "shrl %3, %%edx\n" +@@ -236,16 +237,14 @@ + "2:\n" + : + : "r" (ptr), +-/* NOTE: 'q' would be needed as constraint, but we could not use it +- with T1 ! */ +- "r" (v), ++ "q" (v), + "i" ((CPU_TLB_SIZE - 1) << CPU_TLB_ENTRY_BITS), + "i" (TARGET_PAGE_BITS - CPU_TLB_ENTRY_BITS), + "i" (TARGET_PAGE_MASK | (DATA_SIZE - 1)), + "m" (*(uint32_t *)offsetof(CPUState, tlb_table[CPU_MEM_INDEX][0].addr_write)), + "i" (CPU_MEM_INDEX), + "m" (*(uint8_t *)&glue(glue(__st, SUFFIX), MMUSUFFIX)) +- : "%eax", "%ecx", "%edx", "memory", "cc"); ++ : "%eax", "%edx", "memory", "cc"); + } + + /* TODO: handle 64-bit access sizes and addresses */ diff --git a/app-emulation/qemu-user/qemu-user-0.8.0.20060329.ebuild b/app-emulation/qemu-user/qemu-user-0.8.0.20060329.ebuild index 1189d8b18a36..b7eadd7af22f 100644 --- a/app-emulation/qemu-user/qemu-user-0.8.0.20060329.ebuild +++ b/app-emulation/qemu-user/qemu-user-0.8.0.20060329.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-user/qemu-user-0.8.0.20060329.ebuild,v 1.3 2006/04/27 23:56:09 lu_zero Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-user/qemu-user-0.8.0.20060329.ebuild,v 1.4 2006/05/06 08:52:33 lu_zero Exp $ inherit eutils flag-o-matic @@ -37,7 +37,9 @@ src_unpack() { cd ${S} epatch ${FILESDIR}/qemu-ppc-dirty-hack.patch + epatch ${FILESDIR}/qemu-0.8.0-gcc4-hacks.patch epatch ${FILESDIR}/qemu-0.8.0-stwbrx.patch + # Alter target makefiles to accept CFLAGS set via flag-o. sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \ Makefile Makefile.target tests/Makefile diff --git a/app-emulation/qemu-user/qemu-user-0.8.0.ebuild b/app-emulation/qemu-user/qemu-user-0.8.0.ebuild index 0d6387fbb0ea..f50f7e739eaa 100644 --- a/app-emulation/qemu-user/qemu-user-0.8.0.ebuild +++ b/app-emulation/qemu-user/qemu-user-0.8.0.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-user/qemu-user-0.8.0.ebuild,v 1.8 2006/04/27 23:56:09 lu_zero Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-user/qemu-user-0.8.0.ebuild,v 1.9 2006/05/06 08:52:33 lu_zero Exp $ inherit eutils flag-o-matic @@ -39,6 +39,8 @@ src_unpack() { cd ${S} epatch ${FILESDIR}/qemu-ppc-dirty-hack.patch epatch ${FILESDIR}/qemu-0.8.0-stwbrx.patch + epatch ${FILESDIR}/qemu-0.8.0-gcc4-hacks.patch + # Alter target makefiles to accept CFLAGS set via flag-o. sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \ Makefile Makefile.target tests/Makefile diff --git a/app-emulation/qemu-user/qemu-user-0.8.1.ebuild b/app-emulation/qemu-user/qemu-user-0.8.1.ebuild new file mode 100644 index 000000000000..5687fa0acb32 --- /dev/null +++ b/app-emulation/qemu-user/qemu-user-0.8.1.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-user/qemu-user-0.8.1.ebuild,v 1.1 2006/05/06 08:52:33 lu_zero Exp $ + +inherit eutils flag-o-matic + +DESCRIPTION="Multi-platform & multi-targets cpu emulator and dynamic translator" +HOMEPAGE="http://fabrice.bellard.free.fr/qemu/" +SRC_URI="http://fabrice.bellard.free.fr/qemu/${P/-user/}.tar.gz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="-alpha ~amd64 ~ppc -sparc ~x86" +IUSE="" #qvm86 debug nptl qemu-fast nptlonly" +RESTRICT="nostrip test" + +DEPEND="virtual/libc + app-text/texi2html + !<=app-emulation/qemu-0.7.0" +RDEPEND="" + +S="${WORKDIR}/${P/-user/}" + +set_target_list() { + TARGET_LIST="arm-user armeb-user i386-user ppc-user sparc-user mips-user" + export TARGET_LIST +} + +pkg_setup() { + if [ "$(gcc-major-version)" == "4" ]; then + ewarn "Qemu could not build with GCC 4" + fi +} + +#RUNTIME_PATH="/emul/gnemul/" +src_unpack() { + unpack ${A} + + cd ${S} + epatch ${FILESDIR}/qemu-ppc-dirty-hack.patch + epatch ${FILESDIR}/qemu-0.8.0-gcc4-hacks.patch + epatch ${FILESDIR}/qemu-0.8.0-stwbrx.patch + # Alter target makefiles to accept CFLAGS set via flag-o. + sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \ + Makefile Makefile.target tests/Makefile + # Ensure mprotect restrictions are relaxed for emulator binaries + [[ -x /sbin/paxctl ]] && \ + sed -i 's/^VL_LDFLAGS=$/VL_LDFLAGS=-Wl,-z,execheap/' \ + Makefile.target + # Prevent install of kernel module by qemu's makefile + sed -i 's/\(.\/install.sh\)/#\1/' Makefile +} + +src_compile() { + #Let the application set its cflags + unset CFLAGS + + # Switch off hardened tech + filter-flags -fpie -fstack-protector + + myconf="--disable-gcc-check" + set_target_list +# --interp-prefix=${RUNTIME_PATH}/qemu-%M + ./configure \ + --prefix=/usr \ + --target-list="${TARGET_LIST}" \ + --enable-slirp \ + --kernel-path=${KV_DIR} \ + ${myconf} \ + || die "could not configure" + + emake || die "make failed" +} + +src_install() { + make install \ + prefix=${D}/usr \ + bindir=${D}/usr/bin \ + datadir=${D}/usr/share/qemu \ + docdir=${D}/usr/share/doc/${P} \ + mandir=${D}/usr/share/man || die + + rm -fR ${D}/usr/share/{man,qemu} + rm -fR ${D}/usr/bin/qemu-img +} |