+
+.PHONY: libmd5crypt
+libmd5crypt: $(foreach o,$(object-suffixes), \
+ $(addprefix $(objpfx),$(patsubst %,$(libtype$o),md5crypt)))
+ifeq ($(build-shared),yes)
+libmd5crypt: $(objpfx)libmd5crypt.so
+# Use the same soname as the real libcrypt, so that it can be used as a
+# drop in replacement.
+LDFLAGS-md5crypt.so = -Wl,-soname=lib$(libprefix)crypt.so$(libcrypt.so-version)
+# We also use the same version script.
+libmd5crypt-map := $(common-objpfx)libcrypt.map
+endif
+
+define o-iterator-doit
+$(objpfx)$(patsubst %,$(libtype$o),md5crypt): \
+ $(onlymd5-routines:%=$(objpfx)%$o); $$(build-extra-lib)
+endef
+object-suffixes-left = $(object-suffixes)
+include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes))
+
+# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
+# This ensures they will load libc.so for needed symbols if loaded by
+# a statically-linked program that hasn't already loaded it.
+$(objpfx)libcrypt.so: $(common-objpfx)libc.so
+$(objpfx)libmd5crypt.so: $(common-objpfx)libc.so