On 8/25/06, Ralf Wildenhues <Ralf.Wildenhues@xxxxxx> 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 <kasal@xxxxxx> 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): [chulbert@fourier ~]$ cat test2.c #include <stdlib.h> double multiply(double x,double y) { return x*y; } [chulbert@fourier ~]$ 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; } [chulbert@fourier ~]$ pgcc -Mipa -Minform=inform -Minfo=all -c test2.c PGC-I-0222-Redundant definition for symbol __THROW (/usr/include/sys/cdefs.h: 62) [chulbert@fourier ~]$ 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 [chulbert@fourier ~]$ 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 <kasal@xxxxxx> writes: > > 2006-08-16 Stepan Kasal <kasal@xxxxxx> > > > > * 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 Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf