diff --git a/security/nss/lib/freebl/Makefile b/security/nss/lib/freebl/Makefile index 8dfe7f6b9b7e..a888d6173259 100644 --- a/security/nss/lib/freebl/Makefile +++ b/security/nss/lib/freebl/Makefile @@ -79,8 +79,9 @@ endif ifeq ($(OS_ARCH),IRIX) ifeq ($(USE_N32),1) ASFILES = mpi_mips.s - ASFLAGS = -O -OPT:Olimit=4000 -dollar -fullwarn -xansi -n32 -mips3 -exceptions + ASFLAGS = -O -OPT:Olimit=4000 -dollar -fullwarn -xansi -n32 -mips3 DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE + DEFINES += -DMP_USE_UINT_DIGIT else endif endif @@ -93,9 +94,22 @@ endif endif ifeq ($(OS_ARCH), HP-UX) +ifdef USE_PURE_32 +# build for DA1.1 (HP PA 1.1) pure 32 bit model + DEFINES += -DMP_USE_UINT_DIGIT -DMP_NO_MP_WORD +#else ifdef USE_64 +# this builds for DA2.0W (HP PA 2.0 Wide), the LP64 ABI, using 32-bit digits + MPI_SRCS += montmulf.c + DEFINES += -DMP_USING_MONT_MULF -DMP_USE_UINT_DIGIT + DEFINES += -DMP_USE_LONG_LONG_MULTIPLY -DMP_NO_MP_WORD else - DEFINES += -DMP_NO_MP_WORD +# this builds for DA2.0 (HP PA 2.0 Narrow) hybrid model +# (the 32-bit ABI with 64-bit registers) using 32-bit digits + MPI_SRCS += montmulf.c + DEFINES += -DMP_USING_MONT_MULF -DMP_USE_UINT_DIGIT + DEFINES += -DMP_USE_LONG_LONG_MULTIPLY -DMP_NO_MP_WORD +endif endif endif @@ -118,17 +132,30 @@ ifeq ($(OS_RELEASE),5.8) SYSV_SPARC = 1 endif ifeq ($(SYSV_SPARC),1) -ifdef USE_64 - DEFINES += -DMP_USE_UINT_DIGIT -DMP_NO_MP_WORD -DMP_ASSEMBLY_MULTIPLY - MPI_SRCS += mpi_sparc.c mpv_sparc.c - SOLARIS_FLAGS = -fast -xO5 -xrestrict=%all -xdepend -xchip=ultra -xarch=v9a -KPIC -mt +SOLARIS_AS = /usr/ccs/bin/as +ifdef USE_PURE_32 +# this builds for Sparc v8 pure 32-bit architecture + DEFINES += -DMP_USE_LONG_LONG_MULTIPLY -DMP_USE_UINT_DIGIT -DMP_NO_MP_WORD else - DEFINES += -DMP_NO_MP_WORD -DMP_ASSEMBLY_MULTIPLY - ASFILES = mpv_sparc32.S - ASM_SUFFIX = .S +ifdef USE_64 +# this builds for Sparc v9a pure 64-bit architecture MPI_SRCS += mpi_sparc.c - SOLARIS_AS = /usr/ccs/bin/as - SOLARIS_FLAGS = -xarch=v8plusa -K PIC + ASFILES = mpv_sparcv9.s montmulfv9.s + DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_USING_MONT_MULF + DEFINES += -DMP_USE_UINT_DIGIT +# MPI_SRCS += mpv_sparc.c +# removed -xdepend from the following line + SOLARIS_FLAGS = -fast -xO5 -xrestrict=%all -xchip=ultra -xarch=v9a -KPIC -mt + SOLARIS_AS_FLAGS = -xarch=v9a -K PIC +else +# this builds for Sparc v8+a hybrid architecture, 64-bit registers, 32-bit ABI + MPI_SRCS += mpi_sparc.c + ASFILES = mpv_sparcv8.s montmulfv8.s + DEFINES += -DMP_NO_MP_WORD -DMP_ASSEMBLY_MULTIPLY -DMP_USING_MONT_MULF + DEFINES += -DMP_USE_UINT_DIGIT + SOLARIS_AS_FLAGS = -xarch=v8plusa -K PIC +# ASM_SUFFIX = .S +endif endif endif endif @@ -189,9 +216,12 @@ vis%.il : mpi/vis%.il vis%.h : mpi/vis%.h cd mpi; cp $@ .. +mont% : mpi/mont% + cd mpi; cp $@ .. + .PRECIOUS : $(MPI_SRCS) $(MPI_HDRS) $(ASFILES) -ALL_TRASH += $(MPI_SRCS) $(MPI_HDRS) $(ASFILES) primes.c +ALL_TRASH += $(MPI_SRCS) $(MPI_HDRS) $(ASFILES) primes.c mont* DEFINES += -DMP_API_COMPATIBLE @@ -209,13 +239,24 @@ $(SPARCFIX): sparcfix.c @$(MAKE_OBJDIR) $(CC) -o $@ -O sparcfix.c -lelf -$(OBJDIR)/mpv_sparc32.o: $(SPARCFIX) mpv_sparc32.S +$(OBJDIR)/mpv_sparcv8.o $(OBJDIR)/montmulfv8.o : $(OBJDIR)/%.o : %.s $(SPARCFIX) @$(MAKE_OBJDIR) - $(SOLARIS_AS) -o $@ $(SOLARIS_FLAGS) mpv_sparc32.S + $(SOLARIS_AS) -o $@ $(SOLARIS_AS_FLAGS) $*.s $(SPARCFIX) $@ +$(OBJDIR)/mpv_sparcv9.o $(OBJDIR)/montmulfv9.o : $(OBJDIR)/%.o : %.s + @$(MAKE_OBJDIR) + $(SOLARIS_AS) -o $@ $(SOLARIS_AS_FLAGS) $*.s +# $(SPARCFIX) $@ + $(OBJDIR)/mpv_sparc.o: vis_64.il vis_proto.h mpv_sparc.c @$(MAKE_OBJDIR) $(CC) -o $@ $(SOLARIS_FLAGS) -c vis_64.il mpv_sparc.c # $(SPARCFIX) $@ + +$(OBJDIR)/mpmontg.o: mpmontg.c montmulf.h +endif + +ifeq ($(OS_ARCH), HP-UX) +$(OBJDIR)/mpmontg.o: mpmontg.c montmulf.h endif