On Thu, 20 Oct 2011, Andi Kleen wrote: > The logic gcc.c uses to find the files is very complicated. I didn't > try to replicate it 100% and left out some magic. I would be interested > if this simple method works for everyone or if more code needs > to be added. This only needs to support LTO supporting hosts of course.
Certainly it needs to work for the installed prefix being different from the configured prefix, which means using make_relative_prefix. > +install-gcc-ar: > + $(INSTALL_PROGRAM) gcc-ar$(exeext) $(DESTDIR)$(bindir)/gcc-ar$(exeext) > + $(INSTALL_PROGRAM) gcc-ar$(exeext) $(DESTDIR)$(bindir)/gcc-nm$(exeext) > + $(INSTALL_PROGRAM) gcc-ar$(exeext) > $(DESTDIR)$(bindir)/gcc-ranlib$(exeext) Programs should be installed under names that: * begin with $(target_noncanonical)-; * only have copies / links without that prefix in the case of a native compiler; * respect $(program_transform_name), for any program installed in bindir (see GCC_INSTALL_NAME etc.). The logic for installing the Go driver in go/Make-lang.in is probably the most modern version of the code to install a program in bindir, minus the cruft in some of the older bits of code. Also, the GNU Coding Standards specify that the program's behavior should not depend on the name by which it is run. Thus, you do need to build separate programs for each case (they might use a single source file built with separate defines). -- Joseph S. Myers jos...@codesourcery.com