[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: heap corruption in du
From: |
Mikulas Patocka |
Subject: |
Re: heap corruption in du |
Date: |
Wed, 19 Oct 2005 14:05:29 +0200 (CEST) |
On Mon, 10 Oct 2005, Paul Eggert wrote:
Mikulas Patocka <address@hidden> writes:
I mean if there's some probability that these experimental versions
will break system, possibly even breaking make install and preventing
reinstallation of old versions?
I doubt that would happen. But if you're worried about it, save the
old versions before installing the new ones.
Just a bug report --- I got a failed build on intel C compiler 9.0. The
problem is in autoconf. autoconf creates conftest.c files like this:
char pstat_getdynamic();
char (*f)()=pstat_getdynamic;
int main()
{
return f != pstat_getdynamic;
}
Intel compiler's interprocedural optimizations (-ipo) optimizes this out
even though the symbol is unknown. Linking succeeds and ./a.out executable
returning 0 is generated.
Coreutils than attempt to use the function and fail.
With this optimization, the compiler doesn't generate regular *.o files,
but generates *.o files in its own intercode --- and when you attempt to
link these files, the compiler takes intercode of all modules, optimizes
it and runs linker on it. This whole-project optimization allows more
advanced optimizations, such as finding that "f" is constant through the
program, replacing "f != pstat_getdynamic" with zero and finally removing
"f" because it is unused. Linker than sees no reference to
pstat_getdynamic and generates proper ./a.out.
If you change the conftest file to somehow use the call to the function
being tested, for example:
char pstat_getdynamic();
char (*f)()=pstat_getdynamic;
int main(int argc, char *argv[])
{
if (argc == 1) return f != pstat_getdynamic;
return f();
}
, the compiler will properly fail on unknown function.
Mikulas
- Re: heap corruption in du,
Mikulas Patocka <=
- Re: heap corruption in du, Paul Eggert, 2005/10/19
- Re: heap corruption in du, Mikulas Patocka, 2005/10/22
- Re: heap corruption in du, Paul Eggert, 2005/10/24
- Re: heap corruption in du, Mikulas Patocka, 2005/10/24
- Re: heap corruption in du, Stepan Kasal, 2005/10/24
- Re: heap corruption in du, Mikulas Patocka, 2005/10/24
- Re: heap corruption in du, Stepan Kasal, 2005/10/24