Richard Guenther wrote: > + /* { dg-lto-do run } */ > + /* { dg-lto-options { { -O0 -flto } } } */ > + /* { dg-extra-ld-options "-O2 -ffast-math -fuse-linker-plugin" } */ > + /* { dg-require-linker-plugin "" } */ > + > + /* We require a linker plugin because otherwise we'd need to link > + against libm which we are not sure here has cabs on all targets. > + This is because collect2 invokes ld on the -O0 object code > + which does not have folded cabs. */ > + > + double cabs(_Complex double); > + double __attribute__((used)) > + foo (_Complex double x, int b) > + { > + if (b) > + x = 0; > + return cabs(x); > + } > + int main() { return 0; }
Now that we have the linker plugin, this fails on spu-elf with: /tmp/cce6KuRb.ltrans0.ltrans.o: In function `foo': cce6KuRb.ltrans0.o:(.text+0x28): undefined reference to `sqrt' because nothing links against libm. I'm a bit confused by the comment above: even with the linker plugin, where should libm be pulled in? Don't we need to use -lm on the linker line anyway? Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com