On 8/25/06, Ralf Wildenhues <[EMAIL PROTECTED]> wrote:
This thread seems to have died down without conclusion.
Christopher had a problem with configure link test file leftovers
spoiling following tests, with some PGI compiler:
* Christopher Hulbert wrote on Tue, Aug 15, 2006 at 11:19:38PM CEST:
> On 8/13/06, Stepan Kasal <[EMAIL PROTECTED]> wrote:
> >> >On Fri, Aug 11, 2006 at 08:52:00AM -0400, Christopher Hulbert wrote:
> >> >> information, so the PGI compiler creates some updated IPA information
> >> >> for the conftest. When testing for the next library compiled without
> >> >> IPA information, it doesn't overwrite the original IPA file and gets
> >> >> an undefined symbol resulting from the first library.
> >
> >at the end of AC_LINK_IFELSE (formerly AC_TRY_LINK), the generated
> >files are deleted. What is the name of the filei(s) with IPA
> >information? Perhaps it should be deleted, too.
> I guess the problem from an autoconf standpoint is it's compiler
> dependent and even file dependent. In this case the filename is
> conftest_ipa8_conftest.oo. The lastpart is the name of the output
> executable (conftest). The 8 is the length of the executable filename.
> The extension .oo is the optimized object file so that linking *.o
> wouldn't pull in the ipo optimized objects.
and PGI compilers 5.2, 6.0, 6.1, on GNU/Linux, and
./configure CC=pgcc CFLAGS=-Mipa
Also, the manpages state that IPA files are named:
| file.ipa InterProcedural Analyzer (IPA) file
| file.ipo InterProcedural Analyzer (IPA) file
but I find neither of them lying around
Unfortunately, I haven't had the time to try the patch yet (maybe this
weekend). Indeed the manpage does not list the .oo files (maybe I'll
file a bug report aginst PGI). In my case I had a VSIPL library
compiled with IPA. When checking for it, this is when I got the
problem.
Here's a simple example that should show you the .oo files (PGI 6.1-6):
[EMAIL PROTECTED] ~]$ cat test2.c
#include <stdlib.h>
double multiply(double x,double y)
{
return x*y;
}
[EMAIL PROTECTED] ~]$ cat test.c
#include <stdlib.h>
#include <stdio.h>
int
main(void)
{
double z = multiply(2.0,3.0);
printf("%f\n",z);
return EXIT_SUCCESS;
}
[EMAIL PROTECTED] ~]$ pgcc -Mipa -Minform=inform -Minfo=all -c test2.c
PGC-I-0222-Redundant definition for symbol __THROW
(/usr/include/sys/cdefs.h: 62)
[EMAIL PROTECTED] ~]$ pgcc -Mipa -Minform=inform -Minfo=all test.c test2.o
test.c:
PGC-I-0222-Redundant definition for symbol __THROW
(/usr/include/sys/cdefs.h: 62)
IPA: Recompiling test.o: new IPA information
IPA: Recompiling test2.o: new IPA information
[EMAIL PROTECTED] ~]$ ls *oo
test2_ipa5_a.out.oo test_ipa5_a.out.oo
* Paul Eggert wrote on Wed, Aug 16, 2006 at 07:27:22PM CEST:
> Stepan Kasal <[EMAIL PROTECTED]> writes:
> > 2006-08-16 Stepan Kasal <[EMAIL PROTECTED]>
> >
> > * lib/autoconf/general.m4 (_AC_LINK_IFELSE): Remove the IPA/IPO
> > file created by the PGI compiler.
>
> That'd be fine with me, if it does fix the problem. Thanks.
_______________________________________________
Autoconf mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/autoconf