[?1034h==== Makefile#1 - Makefile ==== --- Makefile#1 2013-08-16 08:55:11.000000000 -0700 +++ Makefile 2013-08-30 19:32:57.000000000 -0700 @@ -124,29 +124,7 @@ ifeq (yes,$(build-shared)) # Build the shared object from the PIC object library. lib: $(common-objpfx)libc.so - lib: $(common-objpfx)linkobj/libc.so - -# Do not filter ld.so out of libc.so link. -$(common-objpfx)linkobj/libc.so: link-libc-deps = # empty - -$(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os \ - $(common-objpfx)linkobj/libc_pic.a \ - $(elfobjdir)/sofini.os \ - $(elfobjdir)/interp.os \ - $(elfobjdir)/ld.so \ - $(shlib-lds) - $(build-shlib) - -$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \ - $(common-objpfx)sunrpc/librpc_compat_pic.a - $(..)./scripts/mkinstalldirs $(common-objpfx)linkobj - (cd $(common-objpfx)linkobj; \ - $(AR) x ../libc_pic.a; \ - rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \ - $(AR) x ../sunrpc/librpc_compat_pic.a; \ - $(AR) cr libc_pic.a *.os; \ - rm *.os) endif ==== Makerules#2 - Makerules ==== --- Makerules#2 2013-08-19 12:44:03.000000000 -0700 +++ Makerules 2013-08-30 19:32:12.000000000 -0700 @@ -565,16 +565,39 @@ libc_pic_clean := .clean endif -# Do not filter ld.so out of libc.so link. +# Build a modified version of libc_pic.a for use in linkobj/libc.so. +$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \ + $(common-objpfx)sunrpc/librpc_compat_pic.a + $(..)./scripts/mkinstalldirs $(common-objpfx)linkobj + (cd $(common-objpfx)linkobj; \ + $(AR) x ../libc_pic.a; \ + rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \ + $(AR) x ../sunrpc/librpc_compat_pic.a; \ + $(AR) cr libc_pic.a *.os; \ + rm *.os) + +# Clear link-libc-deps for the libc.so libraries so build-shlibs does not +# filter ld.so out of the list of linked objects. $(common-objpfx)libc.so: link-libc-deps = # empty +$(common-objpfx)linkobj/libc.so: link-libc-deps = # empty -# Use our own special initializer and finalizer files for libc.so. +# Use our own special initializer and finalizer files for the libc.so libraries. $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \ $(common-objpfx)libc_pic.os$(libc_pic_clean) \ $(elfobjdir)/sofini.os \ - $(elfobjdir)/interp.os $(elfobjdir)/ld.so \ + $(elfobjdir)/interp.os \ + $(elfobjdir)/ld.so \ + $(shlib-lds) + $(build-shlib) + +$(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os \ + $(common-objpfx)linkobj/libc_pic.a \ + $(elfobjdir)/sofini.os \ + $(elfobjdir)/interp.os \ + $(elfobjdir)/ld.so \ $(shlib-lds) $(build-shlib) + ifeq ($(versioning),yes) $(common-objpfx)libc.so: $(common-objpfx)libc.map endif