From 0b36868c8cf264af7c74f63af27e83839d55e5f4 Mon Sep 17 00:00:00 2001 From: Lefteris Koutsofios Date: Wed, 12 Feb 2020 12:46:56 -0500 Subject: [PATCH] - added code to install an 'ar' script which appends the U flag to the first argument. the semantics for ar were changed to zero out the timestamp of each module. nmake relies on the timestamp to tell if the module has changed - added modified 'cc' scripts for linux to add the -P flag. modern gcc's put # lines that confuse nmake - changed make.probe script to drop -nostartfiles for gcc >= 7.0 --- bin/execrate | 1 + bin/ignore | 19 +++++++++++++++++++ bin/mamprobe | 19 +++++++++++++++++++ bin/package | 33 ++++++++++++++++++++++++++++++++- bin/silent | 19 +++++++++++++++++++ src/cmd/INIT/make.probe | 37 +++++++++++++++++++++++++++++++++++++ src/cmd/INIT/package.sh | 12 ++++++++++++ 7 files changed, 139 insertions(+), 1 deletion(-) diff --git a/bin/execrate b/bin/execrate index 71ba78d92..3333660eb 100755 --- a/bin/execrate +++ b/bin/execrate @@ -1,3 +1,4 @@ +USAGE_LICENSE="[-author?Glenn Fowler ][-copyright?Copyright (c) 2002-2020 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]" ######################################################################## # # # This software is part of the ast package # diff --git a/bin/ignore b/bin/ignore index 2e795f4cd..299964501 100755 --- a/bin/ignore +++ b/bin/ignore @@ -1,3 +1,22 @@ +######################################################################## +# # +# This software is part of the ast package # +# Copyright (c) 1994-2011 AT&T Intellectual Property # +# and is licensed under the # +# Eclipse Public License, Version 1.0 # +# by AT&T Intellectual Property # +# # +# A copy of the License is available at # +# http://www.eclipse.org/org/documents/epl-v10.html # +# (with md5 checksum b35adb5213ca9657e911e9befb180842) # +# # +# Information and Software Systems Research # +# AT&T Research # +# Florham Park NJ # +# # +# Glenn Fowler # +# # +######################################################################## # non-ksh script for the nmake ignore prefix # @(#)ignore (AT&T Research) 1992-08-11 diff --git a/bin/mamprobe b/bin/mamprobe index 033c4d218..6933bea5f 100755 --- a/bin/mamprobe +++ b/bin/mamprobe @@ -1,3 +1,22 @@ +######################################################################## +# # +# This software is part of the ast package # +# Copyright (c) 1994-2011 AT&T Intellectual Property # +# and is licensed under the # +# Eclipse Public License, Version 1.0 # +# by AT&T Intellectual Property # +# # +# A copy of the License is available at # +# http://www.eclipse.org/org/documents/epl-v10.html # +# (with md5 checksum b35adb5213ca9657e911e9befb180842) # +# # +# Information and Software Systems Research # +# AT&T Research # +# Florham Park NJ # +# # +# Glenn Fowler # +# # +######################################################################## ### this script contains archaic constructs that work with all sh variants ### # mamprobe - generate MAM cc probe info # Glenn Fowler diff --git a/bin/package b/bin/package index 630548f82..752a2191c 100755 --- a/bin/package +++ b/bin/package @@ -1,4 +1,23 @@ -USAGE_LICENSE="[-author?Glenn Fowler ][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]" +USAGE_LICENSE="[-author?Glenn Fowler ][-copyright?Copyright (c) 1994-2020 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]" +######################################################################## +# # +# This software is part of the ast package # +# Copyright (c) 1994-2012 AT&T Intellectual Property # +# and is licensed under the # +# Eclipse Public License, Version 1.0 # +# by AT&T Intellectual Property # +# # +# A copy of the License is available at # +# http://www.eclipse.org/org/documents/epl-v10.html # +# (with md5 checksum b35adb5213ca9657e911e9befb180842) # +# # +# Information and Software Systems Research # +# AT&T Research # +# Florham Park NJ # +# # +# Glenn Fowler # +# # +######################################################################## ### this script contains archaic constructs that work with all sh variants ### # package - source and binary package control # Glenn Fowler @@ -5583,6 +5602,18 @@ make|view) ;; esac done + c=ar + b=$INSTALLROOT/bin/$c + for t in $h + do s=$INITROOT/$c.$t + test -x "$s" || continue + case `ls -t "$b" "$s" 2>/dev/null` in + $b*) ;; + $s*) $exec cp "$s" "$b" + note update $b + ;; + esac + done # following code stubbed out just in case ar.ibm.risc is needed # c=ar # b=$INSTALLROOT/bin/$c diff --git a/bin/silent b/bin/silent index c05e2318a..be99aa69a 100755 --- a/bin/silent +++ b/bin/silent @@ -1,3 +1,22 @@ +######################################################################## +# # +# This software is part of the ast package # +# Copyright (c) 1994-2011 AT&T Intellectual Property # +# and is licensed under the # +# Eclipse Public License, Version 1.0 # +# by AT&T Intellectual Property # +# # +# A copy of the License is available at # +# http://www.eclipse.org/org/documents/epl-v10.html # +# (with md5 checksum b35adb5213ca9657e911e9befb180842) # +# # +# Information and Software Systems Research # +# AT&T Research # +# Florham Park NJ # +# # +# Glenn Fowler # +# # +######################################################################## # non-ksh stub for the nmake silent prefix # @(#)silent (AT&T Research) 1992-08-11 diff --git a/src/cmd/INIT/make.probe b/src/cmd/INIT/make.probe index 0c9454625..10f0fbc8c 100644 --- a/src/cmd/INIT/make.probe +++ b/src/cmd/INIT/make.probe @@ -40,6 +40,12 @@ probe_no_protect="'-fno-stack-protector -fno-stack-protector-all' -GS-" probe_readonly="-R -Krodata -xMerge -Wa,-r" probe_shared="'' -G -b -c -shared -Wl,dll" probe_shared_name="-Wl,-soname= -h" +probe_shared_nostart="-nostartfiles" +case `gcc -v 2>&1 | egrep gcc.version` in +*version' '7*) probe_shared_nostart= ;; +*version' '8*) probe_shared_nostart= ;; +*version' '9*) probe_shared_nostart= ;; +esac probe_shared_registry='"-update_registry $probe_shared_registry_file"' probe_shared_registry_file='registry.ld' probe_shared_registry_path="\$(LIBDIR)/$probe_shared_registry_file" @@ -708,6 +714,37 @@ case $cc_dll:$cc_pic:$so:$dynamic:$static in esac dld=$xx shared=$1 + # does -nostartfiles make sense for C? + case $plusplus in + '') z=`wc -c < xxx$dll` + eval set x $probe_shared_nostart + while : + do shift + case $# in + 0) break ;; + esac + rm -f xxx$dll + if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll + then case `wc -c < xxx$dll` in + $z) ;; + *) if test -s e + then case `cat e` in + *[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*) + continue + ;; + esac + fi + case $shared in + '') shared=$1 ;; + *) shared="$shared $1" ;; + esac + break + ;; + esac + fi + done + ;; + esac case $cc_dll in "") cc_dll=$cc_dll_def ;; esac diff --git a/src/cmd/INIT/package.sh b/src/cmd/INIT/package.sh index b2bb63f99..0d92f347d 100644 --- a/src/cmd/INIT/package.sh +++ b/src/cmd/INIT/package.sh @@ -5601,6 +5601,18 @@ make|view) ;; esac done + c=ar + b=$INSTALLROOT/bin/$c + for t in $h + do s=$INITROOT/$c.$t + test -x "$s" || continue + case `ls -t "$b" "$s" 2>/dev/null` in + $b*) ;; + $s*) $exec cp "$s" "$b" + note update $b + ;; + esac + done # following code stubbed out just in case ar.ibm.risc is needed # c=ar # b=$INSTALLROOT/bin/$c