This is a "bonus" optional patch which adds ar, ranlib, as and ld to the ptx port. This is not proper binutils; ar and ranlib are just linked to the host versions, and the other two tools have the following functions: * nvptx-as is required to convert the compiler output to actual valid ptx assembly, primarily by reordering declarations and definitions. Believe me when I say that I've tried to make that work in the compiler itself and it's pretty much impossible without some really invasive changes. * nvptx-ld is just a pseudo linker that works by concatenating ptx input files and separating them with nul characters. Actual linking is something that happens later, when calling CUDA library functions, but existing build system make it useful to have something called "ld" which is able to bundle everything that's needed into a single file, and this seemed to be the simplest way of achieving this. There's a toplevel configure.ac change necessary to make ar/ranlib useable by the libgcc build. Having some tools built like this has some precedent in t-vmsnative, but as Thomas noted it does make feature tests in gcc's configure somewhat ugly (but everything works well enough to build the compiler). The alternative here is to bundle all these files into a separate nvptx-tools package which users would have to download - something that would be nice to avoid. These tools currently require GNU extensions - something I probably ought to fix if we decide to add them to the gcc build itself. Bernd