changeset 14975:61550c9ec412

fixes #133 Don't execute date pointlessly fixes #132 remove patch support
author Garrett D'Amore <garrett@damore.org>
date Mon, 08 Dec 2014 06:19:08 -0800
parents cb12d98b30ce
children 014608f1fae0 0da0e797a593
files usr/src/Makefile.master usr/src/pkg/manifests/developer-build-onbld.mf usr/src/tools/ctf/Makefile usr/src/tools/ctf/scripts/Makefile usr/src/tools/ctf/scripts/ctfcvtptbl.pl usr/src/tools/ctf/scripts/ctffindmod.sh usr/src/tools/scripts/bldenv.sh usr/src/tools/scripts/nightly.sh usr/src/uts/Makefile.uts
diffstat 9 files changed, 10 insertions(+), 517 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/Makefile.master	Sun Dec 07 13:13:31 2014 -0800
+++ b/usr/src/Makefile.master	Mon Dec 08 06:19:08 2014 -0800
@@ -160,8 +160,6 @@
 CTFSTRIP=	$(ONBLD_TOOLS)/bin/$(MACH)/ctfstrip
 NDRGEN=		$(ONBLD_TOOLS)/bin/$(MACH)/ndrgen
 GENOFFSETS=	$(ONBLD_TOOLS)/bin/genoffsets
-CTFCVTPTBL=	$(ONBLD_TOOLS)/bin/ctfcvtptbl
-CTFFINDMOD=	$(ONBLD_TOOLS)/bin/ctffindmod
 XREF=		$(ONBLD_TOOLS)/bin/xref
 FIND=		/usr/bin/find
 PERL=		/usr/bin/perl
@@ -183,11 +181,6 @@
 FILEMODE=	644
 DIRMODE=	755
 
-#
-# The version of the patch makeup table optimized for build-time use.  Used
-# during patch builds only.
-$(PATCH_BUILD)PMTMO_FILE=$(SRC)/patch_makeup_table.mo
-
 # Declare that nothing should be built in parallel.
 # Individual Makefiles can use the .PARALLEL target to declare otherwise.
 .NO_PARALLEL:
--- a/usr/src/pkg/manifests/developer-build-onbld.mf	Sun Dec 07 13:13:31 2014 -0800
+++ b/usr/src/pkg/manifests/developer-build-onbld.mf	Mon Dec 08 06:19:08 2014 -0800
@@ -92,8 +92,6 @@
 file path=opt/onbld/bin/checkproto mode=0555
 file path=opt/onbld/bin/copyrightchk mode=0555
 file path=opt/onbld/bin/cstyle mode=0555
-file path=opt/onbld/bin/ctfcvtptbl mode=0555
-file path=opt/onbld/bin/ctffindmod mode=0555
 file path=opt/onbld/bin/elfcmp mode=0555
 file path=opt/onbld/bin/find_elf mode=0555
 file path=opt/onbld/bin/findcrypto mode=0555
--- a/usr/src/tools/ctf/Makefile	Sun Dec 07 13:13:31 2014 -0800
+++ b/usr/src/tools/ctf/Makefile	Mon Dec 08 06:19:08 2014 -0800
@@ -26,7 +26,7 @@
 
 include ../Makefile.tools
 
-SUBDIRS = cvt dump stabs scripts ctfstrip
+SUBDIRS = cvt dump stabs ctfstrip
 
 .PARALLEL: $(SUBDIRS)
 
--- a/usr/src/tools/ctf/scripts/Makefile	Sun Dec 07 13:13:31 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright 2002 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-#ident	"%Z%%M%	%I%	%E% SMI"
-
-include		../../Makefile.tools
-
-.KEEP_STATE:
-
-SHFILES= \
-	ctffindmod
-
-PERLFILES= \
-	ctfcvtptbl
-
-all:	$(SHFILES) $(PERLFILES)
-
-install: all .WAIT $(ROOTONBLDSHFILES) $(ROOTONBLDPERLFILES)
-
-lint:
-
-clean:
-	$(RM) $(SHFILES) $(PERLFILES)
-
-include		../../Makefile.targ
--- a/usr/src/tools/ctf/scripts/ctfcvtptbl.pl	Sun Dec 07 13:13:31 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-#!/bin/perl -w
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License, Version 1.0 only
-# (the "License").  You may not use this file except in compliance
-# with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-# Copyright 2002 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# ctfcvtptbl [-o outfile] patch-makeup-table
-#
-# Given a path to a patch makeup table, this script converts that table to
-# machine-optimal format and deposits it in the file specified by the -o option
-# or on stdout depending on whether or not -o is specified.
-#
-# The user-supplied patch makeup table is in the following format:
-#
-#   #
-#   # comment
-#   #
-#
-#   genunix_archive=/path/to/genunix/archive
-#
-#   patch 100001-01 kureq 100002-01
-#     usr/src/uts/sparc/sd/debug32/sd
-#     module2
-#
-#   patch 100003-08
-#     module3
-#
-# The machine-optimal format for the above looks like this:
-#
-#   GENUNIX_ARCHIVE=/path/to/genunix/archive
-#   module1 100001-01 100002-01
-#   module2 100001-01 100002-01
-#   module3 100003-08
-#
-#
-# Macros and other time-savers:
-#
-#  * $RELEASE and $MACH in the genunix archive path will be replaced by the
-#    values of the RELEASE and MACH environment variables, respectively, as
-#    set by the program calling this one.
-#
-#  * BUILD, BUILD32, and BUILD64 will, when used in the path for the module,
-#    will be match as follows:
-#
-#	BUILD	debug32, debug64, obj32, obj64
-#	BUILD32	debug32, obj32
-#	BUILD64	debug64, obj64
-#
-#  * The presence of `usr/src' at the beginning of each module path will be
-#    assumed, and is not required to be specified.
-#
-
-use strict;
-use Getopt::Std;
-use File::Basename;
-
-my $PROGNAME = basename($0);
-
-my $genunix_archive;
-my %moddata;
-my %typehash = (
-    BUILD	=> [ "debug32", "debug64", "obj32", "obj64" ],
-    BUILD32	=> [ "debug32", "obj32" ],
-    BUILD64	=> [ "debug64", "obj64" ]
-);
-
-my %opts;
-my $err = 0;
-$err = 1 unless getopts("ho:", \%opts);
-if ($opts{"o"}) {
-	close(STDOUT);
-	open(STDOUT, ">" . $opts{"o"}) || do {
-		print STDERR "Couldn't open " . $opts{"o"} . ": $!\n";
-		exit(1);
-	}
-}
-if ($opts{"h"}) {
-	&usage;
-	exit(2);
-}
-
-if (@ARGV != 1) {
-	$err = 1;
-}
-
-if ($err) {
-	&usage;
-	exit(2);
-}
-
-$::table = $ARGV[0];
-
-if (!open(TABLE, "<$::table")) {
-	print STDERR "Couldn't open $::table: $!\n";
-	exit(1);
-}
-
-if (!&read_table) {
-	exit(1);
-}
-
-&sub_vars;
-
-&dump_table;
-
-exit(0);
-
-sub usage {
-	print STDERR "Usage: $PROGNAME [-o outfile] table\n";
-}
-
-sub read_table {
-	my $patchid = "";
-	my $kureq = "";
-	my $kuprev = "";
-
-	$genunix_archive = "";
-	undef %moddata;
-
-	while (<TABLE>) {
-		chop;
-		s/\#.*$//; # Strip comments
-		s/^\s+//;
-
-		if (!$patchid && /^genunix_archive=(\S+)\s*$/) {
-			$genunix_archive = $1;
-			next;
-		}
-
-		while ($_) {
-			if (s/^patch\s+(\d{6}-\d{2})
-			    (\s+ku(req|prev)\s+(\d{6}-\d{2}|fcs))?//x &&
-			    (!$_ || /^\s/)) {
-				$patchid = $1;
-				$kureq = (defined $4 ? $4 : "fcs");
-				$kuprev = (defined $3 && $3 eq "prev" ? 1 : 0);
-			} elsif ($patchid && s/^(\S+)//) {
-				my $module = $1;
-
-				if (($module =~ m:/genunix/:) && !$kuprev) {
-					&parseerror("No kuprev supplied " .
-					    "for entry including genunix");
-				}
-
-				if (($module !~ m:^usr/src/:)) {
-					$module = "usr/src/" . $module;
-				}
-
-				if (($module =~
-				    m:^(.*)\$(BUILD|BUILD32|BUILD64)(/.*)$:)) {
-					foreach my $type (@{$typehash{$2}}) {
-						$moddata{$1 . $type . $3} =
-						    [$patchid, $kureq];
-					}
-				} else {
-					$moddata{$module} = [$patchid, $kureq];
-				}
-			} else {
-				&parseerror("Cannot parse table");
-			}
-
-			s/^\s+//;
-		}
-	}
-
-	if (!$genunix_archive) {
-		print STDERR "No genunix_archive line in table\n";
-		return (0);
-	}
-
-	if (!%moddata) {
-		print STDERR "No module information read\n";
-		return (0);
-	}
-
-	return (1);
-}
-
-sub parseerror {
-	my $msg = $_[0];
-
-	print STDERR "$msg at line $.\n";
-	exit(1);
-}
-
-sub sub_vars {
-	my $release = $ENV{"RELEASE"};
-	my $mach = $ENV{"MACH"};
-
-	$genunix_archive =~ s/\$RELEASE/$release/ if defined $release;
-	$genunix_archive =~ s/\$MACH/$mach/ if defined $mach;
-}
-
-sub dump_table {
-	print "GENUNIX_ARCHIVE=" . $genunix_archive . "\n";
-
-	foreach my $mod (sort keys %moddata) {
-		print join(" ", ($mod, @{$moddata{$mod}})) . "\n";
-	}
-}
--- a/usr/src/tools/ctf/scripts/ctffindmod.sh	Sun Dec 07 13:13:31 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-#!/usr/bin/ksh -p
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# ident	"%Z%%M%	%I%	%E% SMI"
-#
-# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
-#
-# Given a machine-optimal patch makeup table (see ctfcvtptbl), this program
-# will allow the build process to determine the following:
-#
-#   * The patch ID associated with a given module
-#   * The KU required by the patch associated with a given module
-#   * The patch ID and location of the genunix module preceding the genunix
-#     module currently being built.
-#
-
-PROGNAME=$(basename "$0")
-
-usage()
-{
-	echo "Usage: $PROGNAME [-nr] [-o outfmt] [-b build_type] -t table" \
-	    "module_path" >&2
-}
-
-die()
-{
-	echo "$1" >&2
-	exit 1
-}
-
-outfmt="patch,ku"
-notfoundok=0
-relative=0
-build_type=debug32
-err=0
-while getopts b:lno:rt: c ; do
-	case $c in
-	    b)
-		build_type="$OPTARG"
-		;;
-	    n)
-		notfoundok=1
-		;;
-	    o)
-		outfmt="$OPTARG"
-		;;
-	    r)
-		relative=1
-		;;
-	    t)
-		table="$OPTARG"
-		;;
-	    \?)
-		err=1
-		;;
-	esac
-done
-shift `expr $OPTIND - 1`
-
-if [[ $err -eq 1 || $# -ne 1 || -z "$table" ]] ; then
-	usage
-	exit 2
-fi
-
-print_garpath=0
-print_ku=0
-print_patch=0
-print_lastgu=0
-for word in $(echo "$outfmt" |tr ',' ' ') ; do
-	case $word in
-	    garpath)
-		print_garpath=1
-		;;
-	    ku)
-		print_ku=1
-		;;
-	    lastgu)
-		print_lastgu=1
-		;;
-	    patch)
-		print_patch=1
-		;;
-	    \?)
-		usage
-		exit 2
-	esac
-done
-
-module="$1"
-shift
-
-if [[ ! -f "$table" ]] ; then
-	die "$PROGNAME: Cannot open $table"
-fi
-
-head -1 "$table" |sed -e 's/^\([^=]*\)=/\1 /' |read garkw garpath
-
-if [[ "$garkw" != "GENUNIX_ARCHIVE" || -z "$garpath" ]] ; then
-	die "$PROGNAME: $table is not a machine-optimal patch table" >&2
-fi
-
-if [[ $relative -eq 1 ]] ; then
-	crd=$(pwd |sed -e 's:^.*usr/src/uts::')
-	module=$(echo "$crd/$module" |sed -e 's://*:/:g')
-fi
-
-fgrep "$module" "$table" |read junk patch ku
-
-if [[ -z "$patch" ||
-    "$(expr "$patch" : '[0-9]\{6\}-[0-9][0-9]')" -ne 9 ]] ; then
-	if [[ "$notfoundok" -eq 1 ]] ; then
-		patch="-"
-	else
-		die "$PROGNAME: Cannot find patch for $module" >&2
-	fi
-fi
-
-if [[ -z "$ku" ]] ; then
-	ku="-"
-fi
-
-# Output
-
-space=""
-if [[ $print_patch -eq 1 ]] ; then
-	echo "$space$patch\c"
-	space=" "
-fi
-if [[ $print_ku -eq 1 ]] ; then
-	echo "$space$ku\c"
-	space=" "
-fi
-if [[ $print_garpath -eq 1 ]] ; then
-	echo "$space$garpath\c"
-	space=" "
-fi
-if [[ $print_lastgu -eq 1 ]] ; then
-	suffix=
-	if expr $build_type : '.*64' >/dev/null ; then
-		if [ `uname -p` = "sparc" ] ; then
-			suffix=/sparcv9
-		else
-			suffix=/amd64
-		fi
-	fi
-	echo "$space$garpath/$ku$suffix/genunix\c"
-	space=" "
-fi
-[[ -n "$space" ]] && echo
-
-return 0
--- a/usr/src/tools/scripts/bldenv.sh	Sun Dec 07 13:13:31 2014 -0800
+++ b/usr/src/tools/scripts/bldenv.sh	Mon Dec 08 06:19:08 2014 -0800
@@ -299,9 +299,6 @@
 	export CTFCONVERT="${TOOLS_PROTO}/opt/onbld/bin/${MACH}/ctfconvert"
 	export CTFMERGE="${TOOLS_PROTO}/opt/onbld/bin/${MACH}/ctfmerge"
 
-	export CTFCVTPTBL="${TOOLS_PROTO}/opt/onbld/bin/ctfcvtptbl"
-	export CTFFINDMOD="${TOOLS_PROTO}/opt/onbld/bin/ctffindmod"
-
 	PATH="${TOOLS_PROTO}/opt/onbld/bin/${MACH}:${PATH}"
 	PATH="${TOOLS_PROTO}/opt/onbld/bin:${PATH}"
 	export PATH
--- a/usr/src/tools/scripts/nightly.sh	Sun Dec 07 13:13:31 2014 -0800
+++ b/usr/src/tools/scripts/nightly.sh	Mon Dec 08 06:19:08 2014 -0800
@@ -523,11 +523,6 @@
 	CTFMERGE=${TOOLSROOT}/opt/onbld/bin/${MACH}/ctfmerge
 	export CTFMERGE
 
-	CTFCVTPTBL=${TOOLSROOT}/opt/onbld/bin/ctfcvtptbl
-	export CTFCVTPTBL
-	CTFFINDMOD=${TOOLSROOT}/opt/onbld/bin/ctffindmod
-	export CTFFINDMOD
-
 	PATH="${TOOLSROOT}/opt/onbld/bin/${MACH}:${PATH}"
 	PATH="${TOOLSROOT}/opt/onbld/bin:${PATH}"
 	export PATH
@@ -542,8 +537,6 @@
 	echo "CTFSTABS=${CTFSTABS}" >> $LOGFILE
 	echo "CTFCONVERT=${CTFCONVERT}" >> $LOGFILE
 	echo "CTFMERGE=${CTFMERGE}" >> $LOGFILE
-	echo "CTFCVTPTBL=${CTFCVTPTBL}" >> $LOGFILE
-	echo "CTFFINDMOD=${CTFFINDMOD}" >> $LOGFILE
 	echo "PATH=${PATH}" >> $LOGFILE
 	echo "ONBLD_TOOLS=${ONBLD_TOOLS}" >> $LOGFILE
 }
--- a/usr/src/uts/Makefile.uts	Sun Dec 07 13:13:31 2014 -0800
+++ b/usr/src/uts/Makefile.uts	Mon Dec 08 06:19:08 2014 -0800
@@ -327,71 +327,27 @@
 	$(UTSBASE)/$(CTFMERGE_GUDIR)/genunix/$(OBJS_DIR)/genunix
 
 #
-# Used to uniquify a non-genunix module against genunix.  If used in patch
-# mode (PATCH_BUILD != "#"), the patch ID corresponding to the module being
-# built will be used as the label.  If no ID is available, or if patch mode
-# is not being used, the value of $VERSION will be used.
+# Used to uniquify a non-genunix module against genunix. $VERSION is used
+# for the label.
 #
 # For the ease of developers dropping modules onto possibly unrelated systems,
 # you can set NO_GENUNIX_UNIQUIFY= in the environment to skip uniquifying
 # against genunix.
 #
 NO_GENUNIX_UNIQUIFY=$(POUND_SIGN)
-SKIP_GENUNIX_UNIQUIFY=no
-$(NO_GENUNIX_UNIQUIFY)SKIP_GENUNIX_UNIQUIFY=yes
+CTFMERGE_GENUNIX_DFLAG=-d $(CTFMERGE_GENUNIX) 
+$(NO_GENUNIX_UNIQUIFY)CTF_GENUNIX_DFLAG=
 
 CTFMERGE_UNIQUIFY_AGAINST_GENUNIX	= \
-	@label="-L VERSION" ; \
-	uniq= ; \
-	if [ -z "$(PATCH_BUILD)" ] ; then \
-		uniq="-D BASE" ; \
-		set -- `$(CTFFINDMOD) -n -r -t $(PMTMO_FILE) $@` ; \
-		if [ "X$$1" != "X-" ] ; then \
-			label="-l $$1" ; \
-			if [ "$$2" != "fcs" ] ; then \
-				uniq="-D $$2" ; \
-			fi ; \
-		fi ; \
-	fi ; \
-	if [ "$(SKIP_GENUNIX_UNIQUIFY)" = "yes" ]; then \
-		uniq= ; \
-	else \
-		uniq="-d $(CTFMERGE_GENUNIX) $$uniq" ; \
-	fi ; \
-	cmd="$(CTFMERGE) $(CTFMRGFLAGS) $$label $$uniq" ; \
-	cmd="$$cmd -o $@ $(OBJECTS) $(CTFEXTRAOBJS)" ; \
-	echo $$cmd ; \
-	$$cmd
+	$(CTFMERGE) $(CTFMRGFLAGS) -L VERSION \
+	$(CTFMERGE_GENUNIX_DFLAG) -o $@ $(OBJECTS) $(CTFEXTRAOBJS)
 
 #
-# Used to merge the genunix module.  genunix has special requirements in
-# patch mode.  In particular, it needs to be able to find the genunix used
-# in the previous version of the KU patch (or the FCS version of genunix in
-# the case of KU 1).
+# Used to merge the genunix module.
 #
 CTFMERGE_GENUNIX_MERGE		= \
-	@if [ -z "$(PATCH_BUILD)" ] ; then \
-		set -- `$(CTFFINDMOD) -b $(OBJS_DIR) -o patch,lastgu -n -r \
-		    -t $(PMTMO_FILE) $(GENUNIX) || true` '' ; \
-		msg= ; \
-		if [ $$$(POUND_SIGN) -eq 1 ] ; \
-		    then msg="Error in $(CTFFINDMOD)" ; \
-		elif [ "X$$1" = "X-" ] ; then msg="Did not get label" ; \
-		elif [ "X$$2" = "X-" ] ; then msg="Did not get withfile" ; \
-		fi ; \
-		if [ -n "$$msg" ] ; then \
-			echo "make ctf: $$msg - removing $(GENUNIX)" ; \
-			$(RM) $(GENUNIX) ; \
-			exit 1 ; \
-		fi ; \
-		label="-l $$1" ; \
-		with="-w $$2" ; \
-	else \
-		label="-L VERSION" ; \
-	fi ; \
-	cmd="$(CTFMERGE) $(CTFMRGFLAGS) $$label $$with -o $@" ; \
-	echo $$cmd "$(OBJECTS) $(CTFEXTRAOBJS) $(IPCTF_TARGET)"; \
-	$$cmd $(OBJECTS) $(CTFEXTRAOBJS) $(IPCTF_TARGET)
+	$(CTFMERGE) $(CTFMRGFLAGS) -L VERSION -o $@ \
+	$(OBJECTS) $(CTFEXTRAOBJS) $(IPCTF_TARGET)
 
 #
 # We ctfmerge the ip objects into genunix to maximize the number of common types
@@ -633,10 +589,6 @@
 	  $(DRV_KMODS_$(CLASS)) $(MISC_KMODS_$(CLASS)) $(MAC_KMODS) \
 	  $(BRAND_KMODS) $(KICONV_KMODS) $(SOCKET_KMODS)
 
-THIS_YEAR:sh=	/bin/date +%Y
-$(OBJS_DIR)/logsubr.o	:= CPPFLAGS += -DTHIS_YEAR=$(THIS_YEAR)
-$(OBJS_DIR)/logsubr.ln	:= CPPFLAGS += -DTHIS_YEAR=$(THIS_YEAR)
-
 #
 #	Files to be compiled with -xa, to generate basic block execution
 #	count data.