autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: conftest files


From: Christopher Hulbert
Subject: Re: conftest files
Date: Fri, 25 Aug 2006 08:49:34 -0400

On 8/25/06, Ralf Wildenhues <address@hidden> 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 <address@hidden> 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):

address@hidden ~]$ cat test2.c
#include <stdlib.h>

double multiply(double x,double y)
{
   return x*y;
}
address@hidden ~]$ 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;
}
address@hidden ~]$ pgcc -Mipa -Minform=inform -Minfo=all -c test2.c
PGC-I-0222-Redundant definition for symbol __THROW
(/usr/include/sys/cdefs.h: 62)
address@hidden ~]$ 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
address@hidden ~]$ 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 <address@hidden> writes:
> > 2006-08-16  Stepan Kasal  <address@hidden>
> >
> >     * 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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]