Print this page
OS-5558 libmd should leverage SHA extensions

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libmd/amd64/Makefile
          +++ new/usr/src/lib/libmd/amd64/Makefile
↓ open down ↓ 26 lines elided ↑ open up ↑
  27   27  VERS =          .1
  28   28  
  29   29  OBJECTS =       edonr.o md4.o md5.o sha1.o sha2.o \
  30   30                  skein.o skein_block.o skein_iv.o
  31   31  
  32   32  include         $(SRC)/lib/Makefile.lib
  33   33  include         $(SRC)/lib/Makefile.rootfs
  34   34  include         $(SRC)/lib/Makefile.lib.64
  35   35  include         ../Makefile.com
  36   36  
       37 +CAPFILES =      pics/sha1-ni.o \
       38 +                pics/sha256-ni.o
       39 +
  37   40  EXTPICS =       pics/md5_amd64.o \
  38      -                pics/sha1-x86_64.o \
  39   41                  pics/sha512-x86_64.o \
  40      -                pics/sha256-x86_64.o
       42 +                pics/sha256-x86_64.o \
       43 +                pics/sha1-x86_64.o \
       44 +                $(CAPFILES:%.o=%.o.symcap)
  41   45  
  42   46  CLEANFILES +=   $(EXTPICS) \
  43      -                $(EXTPICS:pics/%.o=%.s)
       47 +                $(EXTPICS:pics/%.o=%.s) \
       48 +                $(CAPFILES) \
       49 +                $(CAPFILES:%.o=%.o.objcap) \
       50 +                $(CAPFILES:%.o=%.o.symcap)
  44   51  
       52 +pics/sha1-ni.o.objcap           := CAPFILE = capabilities/sha.cap
       53 +pics/sha256-ni.o.objcap         := CAPFILE = capabilities/sha.cap
       54 +
  45   55  # This prevents <sys/asm_linkage.h> from including C source:
  46   56  AS_CPPFLAGS += -D_ASM
  47   57  
  48   58  .KEPP_STATE:
  49   59  
  50   60  all:            $(LIBS)
  51   61  
  52   62  install:        all $(ROOTLIBS64) $(ROOTLINKS64) $(ROOTLINT64)
  53   63  
  54   64  lint:           lintcheck
  55   65  
  56   66  pics/%.o: %.s
  57   67                  $(COMPILE.s) -o $@ ${@F:.o=.s}
  58   68                  $(POST_PROCESS_O)
  59   69  
       70 +pics/%.o: $(SRC)/common/crypto/sha1/amd64/%.s
       71 +                $(COMPILE.s) -o $@ $<
       72 +                $(POST_PROCESS_O)
       73 +
       74 +pics/%.o: $(SRC)/common/crypto/sha2/amd64/%.s
       75 +                $(COMPILE.s) -o $@ $<
       76 +                $(POST_PROCESS_O)
       77 +
       78 +pics/%.o.objcap: pics/%.o
       79 +                $(LD) -r -o $@ -M$(CAPFILE) -Breduce $<
       80 +                $(POST_PROCESS_O)
       81 +
       82 +pics/%.o.symcap: pics/%.o.objcap
       83 +                $(LD) -r -o $@ -z symbolcap $<
       84 +
  60   85  md5_amd64.s: $(COMDIR)/md5/amd64/md5_amd64.pl
  61   86                  $(PERL) $? $@
  62   87  
  63   88  sha1-x86_64.s: $(COMDIR)/sha1/amd64/sha1-x86_64.pl
  64   89                  $(PERL) $? $@
  65   90  
  66   91  sha512-x86_64.s: $(COMDIR)/sha2/amd64/sha512-x86_64.pl
  67   92                  $(PERL) $? $@
  68   93  
  69   94  sha256-x86_64.s: $(COMDIR)/sha2/amd64/sha512-x86_64.pl
  70   95                  $(PERL) $? $@
  71   96  
  72   97  include         ../Makefile.targ
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX