Print this page
OS-5558 libmd should leverage SHA extensions
        
@@ -32,18 +32,28 @@
 include         $(SRC)/lib/Makefile.lib
 include         $(SRC)/lib/Makefile.rootfs
 include         $(SRC)/lib/Makefile.lib.64
 include         ../Makefile.com
 
+CAPFILES =      pics/sha1-ni.o \
+                pics/sha256-ni.o
+
 EXTPICS =       pics/md5_amd64.o \
-                pics/sha1-x86_64.o \
                 pics/sha512-x86_64.o \
-                pics/sha256-x86_64.o
+                pics/sha256-x86_64.o \
+                pics/sha1-x86_64.o \
+                $(CAPFILES:%.o=%.o.symcap)
 
 CLEANFILES +=   $(EXTPICS) \
-                $(EXTPICS:pics/%.o=%.s)
+                $(EXTPICS:pics/%.o=%.s) \
+                $(CAPFILES) \
+                $(CAPFILES:%.o=%.o.objcap) \
+                $(CAPFILES:%.o=%.o.symcap)
 
+pics/sha1-ni.o.objcap           := CAPFILE = capabilities/sha.cap
+pics/sha256-ni.o.objcap         := CAPFILE = capabilities/sha.cap
+
 # This prevents <sys/asm_linkage.h> from including C source:
 AS_CPPFLAGS += -D_ASM
 
 .KEPP_STATE:
 
@@ -55,10 +65,25 @@
 
 pics/%.o: %.s
                 $(COMPILE.s) -o $@ ${@F:.o=.s}
                 $(POST_PROCESS_O)
 
+pics/%.o: $(SRC)/common/crypto/sha1/amd64/%.s
+                $(COMPILE.s) -o $@ $<
+                $(POST_PROCESS_O)
+
+pics/%.o: $(SRC)/common/crypto/sha2/amd64/%.s
+                $(COMPILE.s) -o $@ $<
+                $(POST_PROCESS_O)
+
+pics/%.o.objcap: pics/%.o
+                $(LD) -r -o $@ -M$(CAPFILE) -Breduce $<
+                $(POST_PROCESS_O)
+
+pics/%.o.symcap: pics/%.o.objcap
+                $(LD) -r -o $@ -z symbolcap $<
+
 md5_amd64.s: $(COMDIR)/md5/amd64/md5_amd64.pl
                 $(PERL) $? $@
 
 sha1-x86_64.s: $(COMDIR)/sha1/amd64/sha1-x86_64.pl
                 $(PERL) $? $@