diff options
author | NP-Hardass <NP-Hardass@gentoo.org> | 2016-03-12 16:09:22 -0500 |
---|---|---|
committer | NP-Hardass <NP-Hardass@gentoo.org> | 2016-03-12 16:10:00 -0500 |
commit | f7ab9735aad27334ff3cca67aa177f24e0fb45df (patch) | |
tree | 56462c678def637bd25063a3a01697446cdcc56b /app-emulation | |
parent | dev-tcltk/tclpython: Remove offending ebuild to get the tree back to a normal... (diff) | |
download | gentoo-f7ab9735aad27334ff3cca67aa177f24e0fb45df.tar.gz gentoo-f7ab9735aad27334ff3cca67aa177f24e0fb45df.tar.bz2 gentoo-f7ab9735aad27334ff3cca67aa177f24e0fb45df.zip |
app-emulation/wine: Check and warn about GCC-5.3 compile bug. #574044
Package-Manager: portage-2.2.26
Diffstat (limited to 'app-emulation')
-rw-r--r-- | app-emulation/wine/files/pr69140.c | 24 | ||||
-rw-r--r-- | app-emulation/wine/wine-1.9.4.ebuild | 14 | ||||
-rw-r--r-- | app-emulation/wine/wine-1.9.5.ebuild | 14 | ||||
-rw-r--r-- | app-emulation/wine/wine-9999.ebuild | 14 |
4 files changed, 66 insertions, 0 deletions
diff --git a/app-emulation/wine/files/pr69140.c b/app-emulation/wine/files/pr69140.c new file mode 100644 index 000000000000..2c345dd75bc5 --- /dev/null +++ b/app-emulation/wine/files/pr69140.c @@ -0,0 +1,24 @@ +/* { dg-do compile { target lp64 } } */ +/* { dg-options "-O2 -mincoming-stack-boundary=3" } */ + +typedef struct { + unsigned int buf[4]; + unsigned char in[64]; +} MD4_CTX; + +static void +MD4Transform (unsigned int buf[4], const unsigned int in[16]) +{ + unsigned int a, b, c, d; + (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (in[7]); + (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (in[8]); + (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (in[9]); + buf[3] += d; +} + +void __attribute__((ms_abi)) +MD4Update (MD4_CTX *ctx, const unsigned char *buf) +{ + MD4Transform( ctx->buf, (unsigned int *)ctx->in); + MD4Transform( ctx->buf, (unsigned int *)ctx->in); +} diff --git a/app-emulation/wine/wine-1.9.4.ebuild b/app-emulation/wine/wine-1.9.4.ebuild index 6388a5b6d1cb..e47fe62c7432 100644 --- a/app-emulation/wine/wine-1.9.4.ebuild +++ b/app-emulation/wine/wine-1.9.4.ebuild @@ -174,6 +174,20 @@ wine_build_environment_check() { return 1 fi fi + # bug #574044 + if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then + einfo "Checking for gcc-5-3 stack realignment compiler bug ..." + $(tc-getCC) -O2 "${FILESDIR}"/pr69140.c -o "${T}"/pr69140 || die + # Run in subshell to prevent "Aborted" message + if ! ( "${T}"/69140 || false ) >/dev/null 2>&1; then + eerror "Wine cannot be built with this version of gcc-5.3" + eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," + eerror "or use gcc-config to select a different compiler version." + eerror "See https://bugs.gentoo.org/574044" + eerror + return 1 + fi + fi if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then eerror "You need gcc-4.4+ to build 64-bit wine" diff --git a/app-emulation/wine/wine-1.9.5.ebuild b/app-emulation/wine/wine-1.9.5.ebuild index 2c75d7b61190..5abc38030ec9 100644 --- a/app-emulation/wine/wine-1.9.5.ebuild +++ b/app-emulation/wine/wine-1.9.5.ebuild @@ -174,6 +174,20 @@ wine_build_environment_check() { return 1 fi fi + # bug #574044 + if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then + einfo "Checking for gcc-5-3 stack realignment compiler bug ..." + $(tc-getCC) -O2 "${FILESDIR}"/pr69140.c -o "${T}"/pr69140 || die + # Run in subshell to prevent "Aborted" message + if ! ( "${T}"/69140 || false ) >/dev/null 2>&1; then + eerror "Wine cannot be built with this version of gcc-5.3" + eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," + eerror "or use gcc-config to select a different compiler version." + eerror "See https://bugs.gentoo.org/574044" + eerror + return 1 + fi + fi if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then eerror "You need gcc-4.4+ to build 64-bit wine" diff --git a/app-emulation/wine/wine-9999.ebuild b/app-emulation/wine/wine-9999.ebuild index 2c75d7b61190..5abc38030ec9 100644 --- a/app-emulation/wine/wine-9999.ebuild +++ b/app-emulation/wine/wine-9999.ebuild @@ -174,6 +174,20 @@ wine_build_environment_check() { return 1 fi fi + # bug #574044 + if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then + einfo "Checking for gcc-5-3 stack realignment compiler bug ..." + $(tc-getCC) -O2 "${FILESDIR}"/pr69140.c -o "${T}"/pr69140 || die + # Run in subshell to prevent "Aborted" message + if ! ( "${T}"/69140 || false ) >/dev/null 2>&1; then + eerror "Wine cannot be built with this version of gcc-5.3" + eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," + eerror "or use gcc-config to select a different compiler version." + eerror "See https://bugs.gentoo.org/574044" + eerror + return 1 + fi + fi if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then eerror "You need gcc-4.4+ to build 64-bit wine" |