Print this page
10816 ctf_dwarf_convert_type() relies on un-initialized id
10817 ctfconvert -i option is mis-handled
10818 Improve ctfconvert error messages
10819 ctfconvert should handle empty dies
10820 ctfconvert -i never converts
10821 bad free in ctf_dwarf_init_die
10815 shouldn't build gcore.c as part of kmdb
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

@@ -16,17 +16,17 @@
 # fields enclosed by brackets "[]" replaced with your own identifying
 # information: Portions Copyright [yyyy] [name of copyright owner]
 #
 # CDDL HEADER END
 #
+# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
 #
 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 #
-#       This makefile drives the production of the RSA KEF provider.
+# Copyright (c) 2019, Joyent, Inc.
 #
-#       intel implementation architecture dependent
-#
 
 #
 #       Path to the base of the uts directory tree (usually /usr/src/uts).
 #
 UTSBASE = ../..

@@ -39,13 +39,11 @@
 MODULE          = bignum
 OBJECTS         = $(BIGNUM_OBJS:%=$(OBJS_DIR)/%)
 LINTS           = $(BIGNUM_OBJS:%.o=$(LINTS_DIR)/%.ln)
 ROOTMODULE      = $(ROOT_MISC_DIR)/$(MODULE)
 
-BIGNUM_OBJS_32 = bignum_i386.o bignum_i386_asm.o
-BIGNUM_OBJS_64 = bignum_amd64.o bignum_amd64_asm.o
-BIGNUM_PSR_OBJS = $(BIGNUM_OBJS_$(CLASS))
+BIGNUM_PSR_OBJS = bignum_amd64.o bignum_amd64_asm.o
 
 #
 #       Include common rules.
 #
 include $(UTSBASE)/intel/Makefile.intel

@@ -88,7 +86,42 @@
 #
 #       Include common targets.
 #
 include $(UTSBASE)/intel/Makefile.targ
 
+# Bignum configuration (BIGNUM_CFG):
+#   PSR_MUL:
+#       There is a processor-specific implementation bignum multiply functions
+#   HWCAP:
+#       There are multiple implementations of bignum functions, and the
+#       appropriate one must be chosen at run time, based on testing
+#       hardware capabilites.
+#
+# -DPSR_MUL:
+# For AMD64, there is a processor-specific implementation of
+# the bignum multiply functions, which takes advantage of the
+# 64x64->128 bit multiply instruction.
+#
+# -UHWCAP:
+# There is only one implementation, because the 128 bit multiply using
+# general-purpose registers is faster than any MMX or SSE2 implementation.
 
-include Makefile.$(CLASS)
+BIGNUM_CFG = -DPSR_MUL
+CFLAGS  += -xO4 -xcrossfile
+$(OBJS_DIR)/bignumimpl.o $(LINTS_DIR)/bignumimpl.ln := \
+        CPPFLAGS += $(BIGNUM_CFG)
+$(OBJS_DIR)/bignum_amd64.o $(LINTS_DIR)/bignum_amd64.ln := \
+        CPPFLAGS += $(BIGNUM_CFG)
+
+$(OBJS_DIR)/bignum_amd64.o: $(BIGNUMDIR)/amd64/bignum_amd64.c
+        $(COMPILE.c) -o $@ $(BIGNUM_CFG) $(BIGNUMDIR)/amd64/bignum_amd64.c
+        $(CTFCONVERT_O)
+
+$(OBJS_DIR)/bignum_amd64_asm.o: $(BIGNUMDIR)/amd64/bignum_amd64_asm.s
+        $(COMPILE.s) -P -o $@ $(BIGNUM_CFG) \
+                $(BIGNUMDIR)/amd64/bignum_amd64_asm.s
+
+$(LINTS_DIR)/bignum_amd64.ln: $(BIGNUMDIR)/amd64/bignum_amd64.c
+        @($(LHEAD) $(LINT.c) $(BIGNUMDIR)/amd64/bignum_amd64.c $(LTAIL))
+
+$(LINTS_DIR)/bignum_amd64_asm.ln: $(BIGNUMDIR)/amd64/bignum_amd64_asm.s
+        @($(LHEAD) $(LINT.s) $(BIGNUMDIR)/amd64/bignum_amd64_asm.s $(LTAIL))