Summary: | sys-apps/diffutils-2.8.7 gnulib c-stack configure check hangs with better optimizers | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Robert White <rwhite> |
Component: | [OLD] Core system | Assignee: | Gentoo's Team for Core System packages <base-system> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | frp.bissey, mathias.buren, orangewarrior, qiaomuf, siarhei.siamashka |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
patch to configure data to let package build under gcc 4.5
patch to configure data to let package build under gcc 4.5 |
Description
Robert White
2010-10-14 04:56:17 UTC
Created attachment 250521 [details, diff]
patch to configure data to let package build under gcc 4.5
Should be safe for all versions of gcc and all versions of diffutils.
post size limit ate the patch text, but I attached the original (which I successfully tested with an .ebuild in my PORTDIR_OVERLAY directory). Comment on attachment 250521 [details, diff]
patch to configure data to let package build under gcc 4.5
just noticed I use "+" in one place and "-" in the other. whoops. Doesn't matter functionally, but probably ought to be consistent.
Created attachment 250523 [details, diff]
patch to configure data to let package build under gcc 4.5
(Use same operator in both segments to prevent confusion later...)
Patch simply calls "recurse (array)" twice instead of just once in the return statement in the function recurse(char *p). The advanced tail recursion detection in GCC 4.5* will convert the original single-call version of the test into an endless loop.
already in upstream: http://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=91a109c0426e8b8cd8b317e29c8a91bd99757f0a commit 91a109c0426e8b8cd8b317e29c8a91bd99757f0a Author: Eric Blake <ebb9@byu.net> Date: Tue Sep 23 08:56:10 2008 -0600 c-stack: avoid compiler optimizations when provoking overflow * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Make recursion harder to optimize, to ensure a stack overflow occurs. * tests/test-c-stack.c (recurse): Likewise. Borrowed from libsigsegv. (In reply to comment #5) > already in upstream: > http://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=91a109c0426e8b8cd8b317e29c8a91bd99757f0a > > commit 91a109c0426e8b8cd8b317e29c8a91bd99757f0a > Author: Eric Blake <ebb9@byu.net> > Date: Tue Sep 23 08:56:10 2008 -0600 > > c-stack: avoid compiler optimizations when provoking overflow > > * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Make > recursion harder to optimize, to ensure a stack overflow occurs. > * tests/test-c-stack.c (recurse): Likewise. > Borrowed from libsigsegv. > that's 2008. Is the stable version of diffutils in the tree that *old*. May be a new diffutils should be made stable altogether, this is the only bug returned when I searched for diffutils in bugzilla so the 30 days requirement should be fulfilled. I have been told that both gcc 4.5 and the fixed diffutils are ~arch keyworded at the moment, so it's not a problem :) They just need to be stabilized at the same time. > that's 2008. Is the stable version of diffutils in the tree that *old*.
> May be a new diffutils should be made stable altogether, this is the only bug
> returned
> when I searched for diffutils in bugzilla so the 30 days requirement should be
> fulfilled.
Then file a stabilization bug.
(In reply to comment #8) > > that's 2008. Is the stable version of diffutils in the tree that *old*. > > May be a new diffutils should be made stable altogether, this is the only bug > > returned > > when I searched for diffutils in bugzilla so the 30 days requirement should be > > fulfilled. > > Then file a stabilization bug. well today I had this problem ,I have a stable system (not world) this is anoying. I am asking to stablize anew version of diffutils or a pached version of diffutils-2.8.7 the one I have had this problem. using stable version :sys-apps/diffutils-2.8.7-r2 after rsync Sun Mar 20 16:17:07 VET 2011 no sure how to ask for stabilization (simple user) filled Bug 359657 would like someone to have a look at this. I still get an infinite loop in conftest every single time I build sys-apps/diffutils-2.8.7-r2 with gcc-4.5.2. Even in clean metro builds. (In reply to comment #10) > I still get an infinite loop in conftest every single time I build > sys-apps/diffutils-2.8.7-r2 with gcc-4.5.2. Even in clean metro builds. I'm seeing this as well. sys-apps/diffutils-2.9-r1 is fine though. |