Roland Mainz wrote:
> Roland Mainz wrote:
> > Attached (as "libtool.bz2") is a slightly (which means it's still
> > incomplete and uses less than 20% of the things which could be done to
> > improve the performance) modified version of the SFWNV version of
> > "libtool" for Solaris 11 >= B72 SPARC - could you please check whether
> > it...
> > a) ... works
> > b) ... improves the build time on your machine (I don't have a suiteable
> > build machine with "root" access (and no other users) which could be
> > used for benchmarking the build time)
> >
> [snip]
> > ------------------------------------------------------------------------
> > Name: libtool.bz2
> > libtool.bz2 Type: unspecified type (application/octet-stream)
> > Encoding: base64
> [snip]
>
> Please ignore this version (it's the wrong one... I forgot to "scp" the
> new binary&&sources over to my work machine... ;-( ) ...
Attached are now the correct versions (/usr/bin/libtool is
"libtool_mark002.bz2" ; patch is
"sfwsrcb8720080401_libtool_perf20080415_002.diff").
... the obvious difference is that the old version used /usr/ucb/echo
which can only go wrong... badly... ;-(
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 7950090
(;O/ \/ \O;)
-------------- next part --------------
diff -N -r -u original/usr/src/cmd/libtool/Makefile.sfw
usr/src/cmd/libtool/Makefile.sfw
--- original/usr/src/cmd/libtool/Makefile.sfw 2008-04-02 02:06:25.000000000
+0200
+++ usr/src/cmd/libtool/Makefile.sfw 2008-04-16 23:30:37.490701000 +0200
@@ -23,46 +23,60 @@
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#ident "@(#)Makefile.sfw 1.2 08/02/09 SMI"
+# ident "%Z%%M% %I% %E% SMI"
+#
+
+SHELL=/usr/bin/ksh93
VER=libtool-1.5.22
include ../Makefile.cmd
+CFLAGS += -xc99=%all -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1 -xstrconst -xO3
+
all: $(VER)/config.status
- (cd $(VER); env - \
+ (cd "$(VER)"; env - \
LD_OPTIONS="-M $(SRC)/cmd/mapfile_noexstk" \
- PATH=$(SFW_PATH) \
- MAKE=$(CCSMAKE) \
+ "CC=$(CC)" \
+ "CFLAGS=$(CFLAGS)" \
+ "PATH=/usr/ast/bin:$(SFW_PATH)" \
+ "MAKE=$(CCSMAKE)" \
+ "CONFIG_SHELL=/usr/bin/ksh93" \
$(CCSMAKE))
@find . -name core -exec rm -f {} \;
install: all
# install the bits in the proto area
- cd $(VER); env SRC=$(SRC) \
+ cd "$(VER)"; env SRC=$(SRC) \
DESTDIR=$(ROOT) \
BINDIR=$(ROOT)/usr/bin \
PERL=/usr/perl5/bin/perl \
INSTALL="$(SRC)/tools/install-proto -c -m 0555" \
- PATH=$(SFW_PATH) \
+ "CC=$(CC)" \
+ "CFLAGS=$(CFLAGS)" \
+ "PATH=/usr/ast/bin:$(SFW_PATH)" \
+ "MAKE=$(CCSMAKE)" \
$(CCSMAKE) install
# perform a few post-install fixups
- $(SH) ./install-sfw
+ $(SHELL) ./install-sfw
# fix the proto area
$(SRC)/tools/protofix --pkg SUNWlibtool --perm
$(SRC)/tools/protofix --pkg SUNWltdl --perm
$(VER)/config.status: $(VER)/configure
(cd $(VER); env - \
- CC=$(CC) \
- PATH=$(SFW_PATH) \
- MAKE=$(CCSMAKE) \
+ "CC=$(CC)" \
+ "CFLAGS=$(CFLAGS)" \
+ "PATH=/usr/ast/bin:$(SFW_PATH)" \
+ "MAKE=$(CCSMAKE)" \
+ "CONFIG_SHELL=/usr/bin/ksh93" \
./configure --prefix=/usr \
--disable-static)
$(VER)/configure: $(VER).tar.gz
- /usr/bin/gzip -dc $(VER).tar.gz | tar xpf -
- touch $(VER)/configure
+ /usr/bin/gzip -dc "$(VER).tar.gz" | tar xpf -
+ touch "$(VER)/configure"
+ cd "$(VER)" && gpatch -p1 < ../libtool_force_ksh_print_builtin.diff
clean:
-rm -rf $(VER)
diff -N -r -u original/usr/src/cmd/libtool/install-sfw
usr/src/cmd/libtool/install-sfw
--- original/usr/src/cmd/libtool/install-sfw 2008-04-02 02:06:25.000000000
+0200
+++ usr/src/cmd/libtool/install-sfw 2008-04-16 22:09:46.662846000 +0200
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/ksh93
#
#
# CDDL HEADER START
@@ -21,30 +21,45 @@
# CDDL HEADER END
#
#
-# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#ident "@(#)install-sfw 1.1 07/10/31 SMI"
+# ident "%Z%%M% %I% %E% SMI"
#
# Most of the installation is handled by 'make install'. This script
# performs a few extra tasks:
# - delete some installed files we don't want to deliver
# - install the manpages provided by Sun
-VERS=libtool-1.5.22
+set -o errexit
-PREFIX=${ROOT}/usr
-SHAREDIR=${PREFIX}/share
-MAN1DIR=${SHAREDIR}/man/man1
+builtin cp
+builtin mv
+builtin rm
-. ${SRC}/tools/install.subr
+VERS="libtool-1.5.22"
+
+PREFIX="${ROOT}/usr"
+SHAREDIR="${PREFIX}/share"
+MAN1DIR="${SHAREDIR}/man/man1"
+
+source "${SRC}/tools/install.subr"
+
+SHCOMP="/usr/bin/shcomp"
+if [[ -x "${SHCOMP}" ]] ; then
+ rm -f "./${VERS}/libtool.sh"
+ mv "./${VERS}/libtool" "./${VERS}/libtool.sh"
+ ${SHCOMP} "./${VERS}/libtool.sh" "./${VERS}/libtool"
+fi
+
+_install N "./${VERS}/libtool" "${ROOT}/usr/bin/libtool" 666
# Remove unused installed files
-rm -f ${ROOT}/usr/share/info/dir
-rm -f ${ROOT}/usr/lib/libltdl.la
+rm -f "${ROOT}/usr/share/info/dir"
+rm -f "${ROOT}/usr/lib/libltdl.la"
# install manpages provided by Sun
-_install N libtool.1.sunman ${MAN1DIR}/libtool.1 444
-_install N libtoolize.1.sunman ${MAN1DIR}/libtoolize.1 444
+_install N "libtool.1.sunman" "${MAN1DIR}/libtool.1" 444
+_install N "libtoolize.1.sunman" "${MAN1DIR}/libtoolize.1" 444
exit 0
diff -N -r -u original/usr/src/cmd/libtool/libtool_force_ksh_print_builtin.diff
usr/src/cmd/libtool/libtool_force_ksh_print_builtin.diff
--- original/usr/src/cmd/libtool/libtool_force_ksh_print_builtin.diff
1970-01-01 01:00:00.000000000 +0100
+++ usr/src/cmd/libtool/libtool_force_ksh_print_builtin.diff 2008-04-16
23:28:29.042660000 +0200
@@ -0,0 +1,50 @@
+diff -u libtool-1.5.22/libtool.m4 libtool-1.5.22/libtool.m4
+--- libtool-1.5.22/libtool.m4 2005-12-18 22:53:17.000000000 +0100
++++ libtool-1.5.22/libtool.m4 2008-04-16 23:27:06.989694000 +0200
+@@ -390,7 +390,7 @@
+ done
+ IFS="$lt_save_ifs"
+
+- if test "X$echo" = Xecho; then
++ if true ; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+@@ -4229,6 +4229,38 @@
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+
++builtin \
++ basename \
++ cat \
++ chgrp \
++ chmod \
++ chown \
++ cmp \
++ cp \
++ cut \
++ date \
++ dirname \
++ expr \
++ fold \
++ head \
++ id \
++ join \
++ ln \
++ logname \
++ mkdir \
++ mkfifo \
++ mv \
++ paste \
++ rev \
++ rm \
++ rmdir \
++ tail \
++ tee \
++ tty \
++ uname \
++ uniq \
++ wc
++
+ # A sed program that does not truncate output.
+ SED=$lt_SED
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libtool_mark002.bz2
Type: application/octet-stream
Size: 45301 bytes
Desc: not available
URL:
<http://mail.opensolaris.org/pipermail/xwin-discuss/attachments/20080416/10db1204/attachment.obj>