Hi!

----

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)

----

Bye,
Roland

P.S.: The 5min hack patch for SFWNV is attached as
"sfwsrcb8720080401_libtool_perf20080415_001.diff" ...

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libtool.bz2
Type: application/octet-stream
Size: 45235 bytes
Desc: not available
URL: 
<http://mail.opensolaris.org/pipermail/xwin-discuss/attachments/20080416/10772520/attachment.obj>
-------------- 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 22:12:42.062058000 +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 
21:19:43.179780000 +0200
@@ -0,0 +1,52 @@
+--- libtool-1.5.22/acinclude.m4.original       Wed Apr 16 20:12:19 2008
++++ libtool-1.5.22/acinclude.m4        Wed Apr 16 20:13:08 2008
+@@ -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` &&
+--- libtool-1.5.22/libtool.m4.original Wed Apr 16 21:10:06 2008
++++ libtool-1.5.22/libtool.m4  Wed Apr 16 21:13:17 2008
+@@ -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
+ 

Reply via email to