Print this page
OS-2559 illumos-extra should provide native node in proto.strap

*** 52,61 **** --- 52,79 ---- $(AUTOCONF_CFLAGS) \ STAGE1_CFLAGS="$(CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS)" # + # The runtime libraries that we build into proto.strap should be made to search + # for their dependencies there as well, so that programs built to run on the + # build machine (from proto.strap) find the correct copies of these libraries. + # + ifeq ($(STRAP),strap) + STRAPFIX_LINKS= \ + $(DESTDIR)/lib/64 \ + $(DESTDIR)/usr/lib/64 + STRAPFIX_FILES_32 = \ + $(DESTDIR)/usr/lib/libgcc_s.so.1 \ + $(DESTDIR)/usr/lib/libstdc++.so.6 + STRAPFIX_FILES_64 = \ + $(DESTDIR)/usr/lib/64/libgcc_s.so.1 \ + $(DESTDIR)/usr/lib/64/libstdc++.so.6 + STRAPFIX_FILES = $(STRAPFIX_FILES_32) $(STRAPFIX_FILES_64) + endif + + # # Unlike everything else, gcc is built to be a cross-compiler, really. It # never runs on the target system, only the build system. So it should not # be using the proto area's headers or libraries. Its own libraries will be # built by the new compiler, and generally aren't using system headers anyway. # This is not really completely true; for example, libstdc++, and this will
*** 106,110 **** --- 124,144 ---- gtar x -C .unpack32 -j --no-same-owner -f $(GMP_VER).tar.bz2 mv -f .unpack32/$(GMP_VER) ./$@ -rmdir .unpack32 chmod 755 $@/configure touch $@/configure + + .PHONY: strapfix + strapfix: $(STRAPFIX_LINKS) $(STRAPFIX_FILES) | install + for f in $(STRAPFIX_FILES_32); do \ + /usr/bin/elfedit -e \ + 'dyn:runpath $(DESTDIR)/lib:$(DESTDIR)/usr/lib' \ + $$f; \ + done + for f in $(STRAPFIX_FILES_64); do \ + /usr/bin/elfedit -e \ + 'dyn:runpath $(DESTDIR)/lib/64:$(DESTDIR)/usr/lib/64' \ + $$f; \ + done + + $(STRAPFIX_LINKS): + ln -s amd64 $@