You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(14) |
Aug
(8) |
Sep
(14) |
Oct
(7) |
Nov
(9) |
Dec
(7) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(11) |
Feb
(4) |
Mar
(6) |
Apr
(3) |
May
(7) |
Jun
(12) |
Jul
(4) |
Aug
(6) |
Sep
(1) |
Oct
(4) |
Nov
(2) |
Dec
(2) |
2011 |
Jan
(2) |
Feb
(3) |
Mar
(10) |
Apr
(7) |
May
(5) |
Jun
(3) |
Jul
(7) |
Aug
(6) |
Sep
(1) |
Oct
(1) |
Nov
(4) |
Dec
(6) |
2012 |
Jan
|
Feb
(4) |
Mar
(1) |
Apr
(2) |
May
(21) |
Jun
(6) |
Jul
(3) |
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(10) |
2013 |
Jan
(10) |
Feb
(8) |
Mar
|
Apr
(9) |
May
(33) |
Jun
(11) |
Jul
(16) |
Aug
(3) |
Sep
(8) |
Oct
(1) |
Nov
(16) |
Dec
(7) |
2014 |
Jan
(19) |
Feb
(71) |
Mar
(46) |
Apr
(16) |
May
(1) |
Jun
(18) |
Jul
(6) |
Aug
(12) |
Sep
(7) |
Oct
(4) |
Nov
(9) |
Dec
(7) |
2015 |
Jan
(15) |
Feb
(6) |
Mar
(10) |
Apr
(7) |
May
(16) |
Jun
(21) |
Jul
(6) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
2016 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2018 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Nathan F. <nf...@au...> - 2009-11-17 17:00:08
|
Correct a bad reference to powerpc-utils-papr. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/README =================================================================== --- powerpc-utils.orig/README 2009-11-11 11:01:21.000000000 -0600 +++ powerpc-utils/README 2009-11-16 15:25:32.000000000 -0600 @@ -1,4 +1,4 @@ -powerpc-utils-papr package +powerpc-utils package ========================== This package contains utilities which are intended for maintenance of IBM |
From: Nathan F. <nf...@au...> - 2009-11-17 16:58:42
|
In order to avoid running the bootstrap.sh script we need to include the Makefile.in files that are created by autoconf. Attaching this patch, its a bit big. Signed-off-by: Nathan Fontenot <nf...@au...> --- |
From: Nathan F. <nf...@au...> - 2009-11-17 16:56:07
|
With the update to have the install.sh, missing, and depcomp scripts included there is no reason to have the bootstrap.sh file. This also allows users to simply run 'configure' and 'make' to build the package. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/bootstrap.sh =================================================================== --- powerpc-utils.orig/bootstrap.sh 2009-11-16 15:12:45.000000000 -0600 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -#! /bin/bash - -aclocal && automake --add-missing && autoconf Index: powerpc-utils/build-aux/depcomp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ powerpc-utils/build-aux/depcomp 2009-11-16 15:13:18.000000000 -0600 @@ -0,0 +1,589 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2007-03-29.01 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software +# Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva <ol...@dc...>. + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to <bug...@gn...>. +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: Index: powerpc-utils/build-aux/install-sh =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ powerpc-utils/build-aux/install-sh 2009-11-16 15:13:18.000000000 -0600 @@ -0,0 +1,519 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2006-12-25.00 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: Index: powerpc-utils/build-aux/missing =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ powerpc-utils/build-aux/missing 2009-11-16 15:13:18.000000000 -0600 @@ -0,0 +1,367 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard <pi...@ir...>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to <bug...@gn...>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: Index: powerpc-utils/Makefile.am =================================================================== --- powerpc-utils.orig/Makefile.am 2009-11-16 15:13:08.000000000 -0600 +++ powerpc-utils/Makefile.am 2009-11-16 15:13:35.000000000 -0600 @@ -11,7 +11,7 @@ IN_MAKEFILES = Makefile.in src/Makefile.in src/drmgr/Makefile.in man/Makefile.in \ scripts/Makefile.in -AC_CLEAN_FILES = aclocal.m4 depcomp install-sh missing +AC_CLEAN_FILES = aclocal.m4 really-clean: maintainer-clean -rm -f powerpc-utils.spec |
From: Nathan F. <nf...@au...> - 2009-11-17 16:53:13
|
The amsvis utility is now a part of the powerpc-utils-python package and the man page is shipped with it. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/man/amsvis.1 =================================================================== --- powerpc-utils.orig/man/amsvis.1 2009-11-16 14:35:18.000000000 -0600 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ -.\" Copyright (C) 2008 International Business Machines. -.\" Common Public License Version 1.0 (see COPYRIGHT) -.\" -.\" Author(s) -.\" Robert Jennings <rc...@li...> -.\" -.TH AMSVIS 1 "January 2009" Linux "Linux on Power Service Tools" -.SH NAME -amsvis \- view Active Memory Sharing (AMS) metrics in a GUI locally or remotely. -.SH SYNOPSIS -.B /usr/bin/amsvis -\fB\-l\fP [\fB\-u\fP SEC] [\fB\-v\fP] -.P -.B /usr/bin/amsvis -\fB\-r [\-c\fP] [\fB\-\-hosts\fP \fIHOSTNAME\fP[:\fIPORT\fP][,...]] [\fB\-u\fP \fISEC\fP] [\fB\-v\fP] -.P -.B /usr/bin/amsvis -\fB\-r\fP \fB\-s\fP [\fB\-p\fP \fIPORT\fP] [\fB\-v\fP] -.P -.B /usr/bin/amsvis \-h -.SH DESCRIPTION -This program helps visualize operating system data as it relates to running within an Active Memory Sharing (AMS) environment. The tool can be run both locally or remotely. Additionally, it can be run as a local data server, without a graphical user interface (GUI), to provide data for running the GUI remotely. -.P -When the GUI is run for a single host a number of panels will be displayed for the operating system, these are the \fISystem\fP, \fIIO Bus Memory\fP, and \fIIO Devices\fP panels. -.P -When the GUI is run for multiple hosts only the \fISystem Panel\fP will be displayed for each of the hosts. This is achieved by specifying multiple systems on the command-line via the \fI--hosts\fP option. -.SS System Panel -In an AMS environment, the amount of memory available will change as memory is loaned to other partitions by the Cooperative Memory Manager (CMM) module. This panel will show how the total amount of memory provided to the system is being utilized. The graph displays a histogram showing the \fIloaned\fP, \fIused\fP, and \fIfree\fP memory; the most recent value is displayed to the right. -.P -For the system memory panel there are six values displays beneath the graph, they are: -.TP -Total -This value, expressed in kilobytes, is the maximum amount of memory available to the operating system. This value represents the graph's total height. -.TP -Loaned -This is the amount of memory, in kilobytes, that the operating system has temporarily given back to the platform firmware to be used by other partitions. This value fluctuates to meet the demands of all of the partitions in the shared memory pool of an AMS environment. -.TP -Used -This value, displayed in kilobytes, is the amount of system memory in-use, not including buffers or cache. -.TP -Free -This value, displayed in kilobytes, is the amount of system memory which is unused. -.TP -Faults -A fault occurs when an attempt to access memory is made where the platform firmware must suspend the partition and request data from disk. This value is a sum of the number of faults since the system was booted. Increases in this value indicate contention for memory between partitions in the AMS environment. -.TP -Fault time -This value is a running sum of the amount of time, since boot time, that the operating system has been suspended by platform firmware to process \fIfaults\fP. -.SS IO Bus Memory Panel -This panel shows how the memory given to the operating system for IO operations is being used by the bus and the devices present on the bus. -.P -The graph will display a histogram for the \fIspare\fP and \fIin use\fP memory with the most recent value on the right side of the graph. The graph is overlayed with a dashed line corresponding in color to the \fIhigh water\fP value and another dashed line for the \fIreserve pool\fP. -.P -For the system's IO bus memory panel there are eight values displayed beneath the graph, they are: -.TP -Entitled -The \fIentitled\fP memory is a specific amount of memory given to the operating system that will be available to be mapped for IO operations; this guarantee is maintained by the platform firmware and can be tuned through the HMC or IVM depending on the particular environment. This value is displayed in kilobytes. The amount of \fIentitled\fP memory is changed by the HMC or IVM in response to hot-plug events or explicit tuning. This value represents the graph's total height. -.TP -Desired -Each device in the system that requires memory for mapping IO operations will specify an amount of memory which is desired for optimal performance. This value is the sum of the requests made by individual devices on the bus and is measured in kilobytes. -.TP -High water -This value, measured in kilobytes, represents the largest amount of memory mapped at any one point in time since the system was booted or the field was last reset. This value can be reset by writing a '0' to the file \fI/sys/bus/vio/cmo_high\fP. -.TP -In use -This value represents the amount of memory, in kilobytes, that is currently mapped by device drivers for IO operations. -.TP -Spare -This value represents the amount of memory, in kilobytes, kept unused to handle hot-plug events, entitlement rebalancing between devices, and module loading. -.TP -Reserve pool -The \fIentitled\fP memory is split into two pools, the first of which is the \fIreserve pool\fP. This value, expressed in kilobytes, represents the amount of memory guaranteed to individual devices on the bus. -.TP -Excess pool -This pool contains any amount of \fIentitled\fP memory not placed in the \fIreserve pool\fP; the value is displayed in kilobytes. Any device can map memory from this pool for IO operations, after having used up its own allocation from the \fIreserve pool\fP, until the \fIexcess pool\fP is exhausted. -.TP -Excess free -This value represents the amount of memory, in kilobytes, currently available for devices to use from the \fIexcess pool\fP. -.SS IO Devices Panel -There will be one panel for each VIO device present in the system that maps memory for IO operations. Panels will be added and removed for devices as a result of DLPAR hot-plug operations and module load/unload events. -.P -The graph will display a histogram for the values of \fIallocated\fP memory, with the most recent value on the right side of the graph. The graph is overlaid with a dashed line that represents the latest value of \fIentitled\fP memory. The area of the graph above the dashed line represents the \fIexcess Pool\fP of \fIIO bus memory\fP, any portion of this area that is grayed out has been mapped by other devices and is currently unavailable to the particular device. -.P -For each device panel there are five values displayed beneath the graph, they are: -.TP -Device Name -The name displayed for the device is its location on the bus. -.TP -Entitled -The amount of memory, in kilobytes, that the device is guaranteed that it may map for IO operations. The bus will guarantee that the device can map this number of kilobytes of memory for IO operations. The allocation of this \fIentitled\fP memory is made to the device from the bus' \fIreserve pool\fP. -.TP -Desired -The amount of memory, in kilobytes, that the device has requested from the bus to provide optimal performance. The amount of \fIentitled\fP memory will not exceed this amount. The device may receive a memory entitlement less than its desired level in cases where resources are limited. -.TP -Allocated -The amount of memory, in kilobytes, that the device has currently mapped for IO operations. -.TP -Allocs failed -When the amount of memory \fIallocated\fP has exhausted both the \fIentitled\fP memory and the bus' \fIexcess pool\fP, memory mapping failures will occur. For each failed attempt, the value displayed here will increase by 1. Large changes in this value would indicate resource contention that may require system tuning. The device drivers are written such that these failures, while impacting performance, do not impede functionality. To reset this counter, the value '0' can be written to the file \fI/sys/bus/vio/devices/\fP<device name>\fI/cmo_allocs_failed\fP. -.SH OPTIONS -.TP -.B \-c, \-\-client -When running with remote data, function as the client to display the GUI. [\fIdefault\fP] -.TP -.B \-h, \-\-help -Display a help message and exit. -.TP -\fB\-\-hosts=\fP\fIHOSTNAME\fP[:\fIPORT\fP][,\fIHOSTNAME\fP[:\fIPORT\fP],...] -Hostname(s) with optional port number, the default is \fIlocalhost:50000\fP. If more than one hostname is specified, only the \fISystem Panel\fP is displayed for each host. -.TP -.B \-l, \-\-local -Run on the local system to gather data and display it in a GUI. [\fIdefault\fP] -.TP -.BI \-p PORT ", \-\-port=" PORT -Network port number while running as a server, the default is \fI50000\fP. -.TP -.B \-r, \-\-remote -Run as a network client/server to gather data or display it in a GUI. -.TP -.B \-s, \-\-server -When running remotely, function as the server to provide AMS data to clients. No GUI is displayed. -.TP -.BI "\-u" SECONDS ", \-\-update=" SECONDS -Specify the number of seconds between updates of the GUI, the default is \fI5\fP. -.TP -.B \-v, \-\-verbose -Enable verbose output. -.SH EXAMPLES -Running locally: -.TP -.BI "amsvis --local --update=" 10 -Display the AMS data for the local system, providing an update every 10 seconds. -.P -Running remotely: -.TP -.BI "amsvis --remote --server --port=" 50000 -Start a server for AMS data on port 50000. -.TP -.BI "amsvis --remote --client --hostname=" server.example.org " --port=" 50000 " -Display the AMS data from the remote system, providing an update every 10 seconds. -.BI -.SH FILES -.I /proc/sys/meminfo -.br -.I /proc/ppc64/lparcfg -.br -.I /sys/devices/system/cmm/cmm0/ -.br -.I /sys/bus/vio/cmo_* -.br -.I /sys/bus/vio/devices/*/cmo_* -.SH BUGS -Though not a bug, the name of a number of files and variables are of the form cmo* rather than Active Memory Sharing (AMS). The kernel code for this feature was committed under the name Cooperative Memory Overcommitment (CMO). Kernel support is enabled using the kernel config option CONFIG_PPC_SMLPAR, for shared memory logical partition support. Index: powerpc-utils/man/Makefile.am =================================================================== --- powerpc-utils.orig/man/Makefile.am 2009-11-16 13:02:30.000000000 -0600 +++ powerpc-utils/man/Makefile.am 2009-11-16 14:57:20.000000000 -0600 @@ -1,12 +1,12 @@ man_MANS = activate_firmware.8 ibmvscsis.conf.8 rtas_ibm_get_vpd.8 \ uesensor.8 amsstat.1 ibmvscsis.sh.8 serv_config.8 \ - update_flash.8 amsvis.1 nvram.8 set_poweron_time.8 \ + update_flash.8 nvram.8 set_poweron_time.8 \ usysattn.8 bootlist.8 ofpathname.8 snap.8 usysident.8 \ hvcsadmin.8 rtas_dump.8 sys_ident.8 vscsisadmin.8 dist_man_MANS = activate_firmware.8 ibmvscsis.conf.8 rtas_ibm_get_vpd.8 \ uesensor.8 amsstat.1 ibmvscsis.sh.8 serv_config.8 \ - update_flash.8 amsvis.1 nvram.8 set_poweron_time.8 \ + update_flash.8 nvram.8 set_poweron_time.8 \ usysattn.8 bootlist.8 ofpathname.8 snap.8 usysident.8 \ hvcsadmin.8 rtas_dump.8 sys_ident.8 vscsisadmin.8 |
From: Nathan F. <nf...@au...> - 2009-11-17 16:52:00
|
Rename the powerpc-utils.spec file to powerpc-utils.spec.in. This is used in a later patch so that we can set the release version in the spec file when configure is run so as to avoid having to update the release version in multiple places. For some reason this patch also adds the files in the doc directory to be included in the 'make dist' output. Better patch maintenance next time, sorry. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/configure.ac =================================================================== --- powerpc-utils.orig/configure.ac 2009-11-16 15:12:46.000000000 -0600 +++ powerpc-utils/configure.ac 2009-11-16 15:13:15.000000000 -0600 @@ -1,8 +1,9 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. +m4_define([ppu_version], 1.2.1) AC_PREREQ([2.63]) -AC_INIT([powerpc-utils], [1.2.1], [nf...@au...]) +AC_INIT([powerpc-utils], ppu_version, [nf...@au...]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_SRCDIR([src/rtas_ibm_get_vpd.c]) @@ -35,5 +36,8 @@ AC_FUNC_MKTIME AC_CHECK_FUNCS([memset strchr strcspn strdup strerror strrchr strstr strtol strtoul strtoull]) +echo "Configuring powerpc-utils.spec" +sed "s|\@VERSION\@|ppu_version|g" powerpc-utils.spec.in > powerpc-utils.spec + AC_CONFIG_FILES([Makefile src/Makefile src/drmgr/Makefile scripts/Makefile man/Makefile]) AC_OUTPUT Index: powerpc-utils/powerpc-utils.spec.in =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ powerpc-utils/powerpc-utils.spec.in 2009-11-16 15:13:15.000000000 -0600 @@ -0,0 +1,100 @@ +%define name powerpc-utils +%define version 1.2.2 +%define release 0 +Summary: Utilities for PowerPC platforms +Name: %{name} +Version: %{version} +Release: %{release} +License: IBM Common Public License (CPL) +Group: System Environment +Source0: N/A +BuildRoot: /tmp/%{name}-buildroot/ +Requires: /bin/bash, /bin/sh, /bin/sed, /usr/bin/perl, librtas >= 1.3.0 + +%description +Utilities for maintaining and servicing PowerPC systems. + +%files +%defattr(-,root,root) +/usr/share/doc/packages/powerpc-utils/README +/usr/share/doc/packages/powerpc-utils/COPYRIGHT + +/usr/sbin/update_flash +/usr/sbin/activate_firmware +/usr/sbin/usysident +/usr/sbin/usysattn +/usr/sbin/set_poweron_time +/usr/sbin/rtas_ibm_get_vpd +/usr/sbin/serv_config +/usr/sbin/uesensor +/usr/sbin/hvcsadmin +/usr/sbin/vscsisadmin +/usr/sbin/rtas_dump +/usr/sbin/rtas_event_decode +/usr/sbin/sys_ident +/usr/sbin/drmgr +/usr/sbin/lsslot +/usr/sbin/lsprop +/usr/sbin/nvram +/usr/sbin/snap +/usr/sbin/bootlist +/usr/sbin/ofpathname +/usr/sbin/ppc64_cpu +/usr/sbin/lsdevinfo + +/etc/init.d/ibmvscsis.sh + +/usr/bin/amsstat + +/usr/share/man/man8/update_flash.8 +/usr/share/man/man8/activate_firmware.8 +/usr/share/man/man8/usysident.8 +/usr/share/man/man8/usysattn.8 +/usr/share/man/man8/set_poweron_time.8 +/usr/share/man/man8/rtas_ibm_get_vpd.8 +/usr/share/man/man8/serv_config.8 +/usr/share/man/man8/uesensor.8 +/usr/share/man/man8/hvcsadmin.8 +/usr/share/man/man8/vscsisadmin.8 +/usr/share/man/man8/ibmvscsis.sh.8 +/usr/share/man/man8/ibmvscsis.conf.8 +/usr/share/man/man8/rtas_dump.8 +/usr/share/man/man8/sys_ident.8 +/usr/share/man/man8/nvram.8 +/usr/share/man/man8/snap.8 +/usr/share/man/man8/bootlist.8 +/usr/share/man/man8/ofpathname.8 + +/usr/share/man/man1/amsstat.1 + +%post +# Post-install script ----------------------------------------------- +ln -sf /usr/sbin/usysattn usr/sbin/usysfault +ln -sf /usr/sbin/serv_config usr/sbin/uspchrp +ln -sf /usr/share/man/man8/usysattn.8 usr/share/man/man8/usysfault.8 +ln -sf /usr/share/man/man8/serv_config.8 usr/share/man/man8/uspchrp.8 +ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_slot +ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_pci +ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_cpu +ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_phb +ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_mem +ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_hea +ln -sf /usr/sbin/drmgr /usr/sbin/drmig_chrp_pmig + +%postun +# Post-uninstall script --------------------------------------------- +if [ "$1" = "0" ]; then + # last uninstall + rm -f /usr/sbin/usysfault + rm -f /usr/sbin/uspchrp + rm -f /usr/share/man/man8/usysfault.8.gz + rm -f /usr/share/man/man8/uspchrp.8.gz + rm /usr/sbin/drslot_chrp_slot + rm /usr/sbin/drslot_chrp_pci + rm /usr/sbin/drslot_chrp_cpu + rm /usr/sbin/drslot_chrp_phb + rm /usr/sbin/drslot_chrp_mem + rm /usr/sbin/drslot_chrp_hea + rm /usr/sbin/drmig_chrp_pmig +fi + Index: powerpc-utils/Makefile.am =================================================================== --- powerpc-utils.orig/Makefile.am 2009-11-16 15:16:43.000000000 -0600 +++ powerpc-utils/Makefile.am 2009-11-16 15:17:30.000000000 -0600 @@ -5,7 +5,7 @@ doc_DATA = README COPYRIGHT dist_doc_DATA = README COPYRIGHT -EXTRA_DIST = Changelog powerpc-utils.spec doc/activate_firmware.doxycfg doc/nvram.doxycfg \ +EXTRA_DIST = Changelog powerpc-utils.spec.in doc/activate_firmware.doxycfg doc/nvram.doxycfg \ doc/rtas_ibm_get_vpd.doxycfg doc/serv_config.doxycfg doc/set_poweron_time.doxycfg \ doc/uesensor.doxycfg doc/usysident.doxycfg |
From: Nathan F. <nf...@au...> - 2009-11-17 16:47:53
|
This update makes several corrections to the Makefile.am files to correctly have all the files included when doing a 'make dist'. This also updates configure.ac to put the install.sh, missing, and depcomp file in the build-aux directory. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/configure.ac =================================================================== --- powerpc-utils.orig/configure.ac 2009-11-12 09:38:29.000000000 -0600 +++ powerpc-utils/configure.ac 2009-11-16 15:12:46.000000000 -0600 @@ -2,8 +2,9 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.63]) -AC_INIT([powerpc-utils], [1.2.0], [nf...@au...]) -AM_INIT_AUTOMAKE +AC_INIT([powerpc-utils], [1.2.1], [nf...@au...]) +AC_CONFIG_AUX_DIR([build-aux]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_SRCDIR([src/rtas_ibm_get_vpd.c]) # Checks for programs. @@ -34,5 +35,5 @@ AC_FUNC_MKTIME AC_CHECK_FUNCS([memset strchr strcspn strdup strerror strrchr strstr strtol strtoul strtoull]) -AC_CONFIG_FILES(Makefile src/Makefile src/drmgr/Makefile scripts/Makefile man/Makefile) +AC_CONFIG_FILES([Makefile src/Makefile src/drmgr/Makefile scripts/Makefile man/Makefile]) AC_OUTPUT Index: powerpc-utils/src/drmgr/Makefile.am =================================================================== --- powerpc-utils.orig/src/drmgr/Makefile.am 2009-11-12 09:38:29.000000000 -0600 +++ powerpc-utils/src/drmgr/Makefile.am 2009-11-16 12:30:13.000000000 -0600 @@ -7,7 +7,7 @@ drcpu.h dr.h drmem.h drmgr.c drmig_chrp_pmig.c drpci.h \ drslot_chrp_cpu.c drslot_chrp_hea.c drslot_chrp_mem.c \ drslot_chrp_pci.c drslot_chrp_phb.c drslot_chrp_slot.c \ - ofdt.h rtas_calls.c rtas_call.h + ofdt.h rtas_calls.c rtas_calls.h lsslot_SOURCES = lsslot.c lsslot.h lsslot_chrp_cpu.c common.c \ common_cpu.c common_pci.c common_ofdt.c ofdt.h \ Index: powerpc-utils/man/Makefile.am =================================================================== --- powerpc-utils.orig/man/Makefile.am 2009-11-11 11:01:21.000000000 -0600 +++ powerpc-utils/man/Makefile.am 2009-11-16 15:12:45.000000000 -0600 @@ -4,3 +4,9 @@ usysattn.8 bootlist.8 ofpathname.8 snap.8 usysident.8 \ hvcsadmin.8 rtas_dump.8 sys_ident.8 vscsisadmin.8 +dist_man_MANS = activate_firmware.8 ibmvscsis.conf.8 rtas_ibm_get_vpd.8 \ + uesensor.8 amsstat.1 ibmvscsis.sh.8 serv_config.8 \ + update_flash.8 amsvis.1 nvram.8 set_poweron_time.8 \ + usysattn.8 bootlist.8 ofpathname.8 snap.8 usysident.8 \ + hvcsadmin.8 rtas_dump.8 sys_ident.8 vscsisadmin.8 + Index: powerpc-utils/scripts/Makefile.am =================================================================== --- powerpc-utils.orig/scripts/Makefile.am 2009-11-11 11:01:21.000000000 -0600 +++ powerpc-utils/scripts/Makefile.am 2009-11-16 13:01:36.000000000 -0600 @@ -1,7 +1,13 @@ bin_SCRIPTS = amsstat +dist_bin_SCRIPTS = amsstat sbin_SCRIPTS = update_flash hvcsadmin vscsisadmin rtas_dump snap \ bootlist ofpathname lsdevinfo +dist_sbin_SCRIPTS = update_flash hvcsadmin vscsisadmin rtas_dump snap \ + bootlist ofpathname lsdevinfo + initdir = /etc/init.d init_DATA = ibmvscsis.sh +dist_init_DATA = ibmvscsis.sh + Index: powerpc-utils/Makefile.am =================================================================== --- powerpc-utils.orig/Makefile.am 2009-11-11 11:01:21.000000000 -0600 +++ powerpc-utils/Makefile.am 2009-11-16 15:13:08.000000000 -0600 @@ -3,6 +3,11 @@ docdir = $(datadir)/doc/packages/@PACKAGE@ doc_DATA = README COPYRIGHT +dist_doc_DATA = README COPYRIGHT + +EXTRA_DIST = Changelog powerpc-utils.spec doc/activate_firmware.doxycfg doc/nvram.doxycfg \ + doc/rtas_ibm_get_vpd.doxycfg doc/serv_config.doxycfg doc/set_poweron_time.doxycfg \ + doc/uesensor.doxycfg doc/usysident.doxycfg IN_MAKEFILES = Makefile.in src/Makefile.in src/drmgr/Makefile.in man/Makefile.in \ scripts/Makefile.in |
From: Nathan F. <nf...@au...> - 2009-11-17 16:38:24
|
It has been pointed out that there are several ares in which the powerpc-utils package could improve its use of autoconf. Additionally, some things are just plain broken, such as make dist, with using autoconf and powerpc-utils. This set of patches cleans up a lot of this and updates the package so one can now just run configure and make to build the package. -Nathan 1/7 - Correct make dist and ship the autoconf tools 2/7 - rename spec file to spec.in 3/7 - remove amsvis man page 4/7 - remove bootstrap.sh script 5/7 - Add Makefile.in files 6/7 - update README file 7/7 - Updated configure script |
From: Nathan F. <nf...@au...> - 2009-11-12 16:48:46
|
For certain SAS devices we need to grab the sas address from sysfs sas_device information instead of using the LUN to calculate the sas address for the adapter. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/scripts/ofpathname =================================================================== --- powerpc-utils.orig/scripts/ofpathname 2009-11-11 11:01:21.000000000 -0600 +++ powerpc-utils/scripts/ofpathname 2009-11-12 10:38:40.000000000 -0600 @@ -510,15 +510,27 @@ OF_PATH=$OF_PATH/disk\@$vdiskno fi elif [[ -d /proc/device-tree$OF_PATH/sas ]]; then - local B T L - B=`echo $BUS | tr "[a-z]" "[A-Z]"` - B=`echo "ibase=16;obase=A; $B" | bc` - T=`echo $ID | tr "[a-z]" "[A-Z]"` - T=`echo "ibase=16;obase=A; $T" | bc` - L=`echo $LUN | tr "[a-z]" "[A-Z]"` - L=`echo "ibase=16;obase=A; $L" | bc` + local vendor_id sas_id + + vendor_id=`od -tx /proc/device-tree/$OF_PATH/vendor-id` + vendor_id=`echo $vendor_id | cut -d " " -f 2` + if [[ $vendor_id = "00001000" ]]; then + local dev_id + goto_dir $device_path "sas_end_device*" + dev_id=${PWD##*-} + sas_id=`cat /sys/class/sas_device/end_device-$dev_id/sas_address` + else + local B T L + B=`echo $BUS | tr "[a-z]" "[A-Z]"` + B=`echo "ibase=16;obase=A; $B" | bc` + T=`echo $ID | tr "[a-z]" "[A-Z]"` + T=`echo "ibase=16;obase=A; $T" | bc` + L=`echo $LUN | tr "[a-z]" "[A-Z]"` + L=`echo "ibase=16;obase=A; $L" | bc` + + sas_id=$(( ($B << 16) | ($T << 8) | $L )) + fi - local sas_id=$(( ($B << 16) | ($T << 8) | $L )) OF_PATH=$(printf "%s/sas/disk@%x" $OF_PATH $sas_id) if [[ $LUN != "0" ]]; then OF_PATH=$(printf "%s,%x" $OF_PATH $LUN) |
From: Roman R. <rr...@re...> - 2009-10-29 14:10:58
|
Hi, There are some mistakes in released tarball - included .git, missing install script, bad version in configure.ac... These mistakes make tarball unusable without autoreconf and so on. Stepan Kasal points me to Autotools tutorial - http://www.lrde.epita.fr/~adl/autotools.html. Probably Stepan would also provides some help. RR |
From: Nathan F. <nf...@au...> - 2009-10-21 21:39:18
|
Applied. -Nathan Fontenot Nathan Fontenot wrote: > The amsvis tools is being moved to the powerpc-utils-python package. The > following patch is the code updates needed to remove the command from > the powerpc-utils package. > > Additionally the following updates are needed; > - rename powerpc-utils.spec.in to powerpc-utils.spec > We no longer have to update this file with the correct python paths at > configure time > > - delete all files under scripts/amsvis > No longer needed. > > Signed-off-by: Nathan Fontenot <nf...@au...> > --- > > Index: powerpc-utils/configure.ac > =================================================================== > --- powerpc-utils.orig/configure.ac 2009-10-21 13:10:20.000000000 -0500 > +++ powerpc-utils/configure.ac 2009-10-21 13:15:07.000000000 -0500 > @@ -34,31 +34,5 @@ > AC_FUNC_MKTIME > AC_CHECK_FUNCS([memset strchr strcspn strdup strerror strrchr strstr strtol strtoul strtoull]) > > -echo "configure: creating ./powerpc-utils.spec" > -tfile=/tmp/powerpc-utils.spec$$ > - > -# See if the .egg-info file is to be created. > -PY_VERSION=`python -c "from platform import python_version; print python_version()" 2>/dev/null` > - > -if [[ -z $PY_VERSION ]]; then > - sed "|\@PY_VERSION\@|d" powerpc-utils.spec.in > $tfile > -else > - PY_VERSION=${PY_VERSION%.*} > - sed "s|\@PY_VERSION\@|$PY_VERSION|g" powerpc-utils.spec.in > $tfile > -fi > - > -# Update the spec file with the correct python paths > -PY_INST_DIR=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"` > -sed "s|\@PYTHON_SITE_PKGS\@|$PY_INST_DIR|g" $tfile > powerpc-utils.spec > -rm $tfile > - > -# Update the prefix used in the scripts/amsvis/Makefile > -echo "configure: creating ./scripts/amsvis/Makefile" > -sed "s|\@PREFIX\@|$prefix|g" scripts/amsvis/Makefile.in > scripts/amsvis/Makefile > - > -# Update the release in scripts/amsvis/setup.py > -echo "configure: creating ./scripts/amsvis/setup.py" > -sed "s|\@VERSION\@|$PACKAGE_VERSION|g" scripts/amsvis/setup.py.in > scripts/amsvis/setup.py > - > AC_CONFIG_FILES(Makefile src/Makefile src/drmgr/Makefile scripts/Makefile man/Makefile) > AC_OUTPUT > Index: powerpc-utils/powerpc-utils.spec.in > =================================================================== > --- powerpc-utils.orig/powerpc-utils.spec.in 2009-10-21 13:10:20.000000000 -0500 > +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 > @@ -1,111 +0,0 @@ > -%define name powerpc-utils > -%define version 1.2.1 > -%define release 0 > -Summary: Utilities for PowerPC platforms > -Name: %{name} > -Version: %{version} > -Release: %{release} > -License: IBM Common Public License (CPL) > -Group: System Environment > -Source0: N/A > -BuildRoot: /tmp/%{name}-buildroot/ > -Requires: /bin/bash, /bin/sh, /bin/sed, /usr/bin/perl, librtas >= 1.3.0 > - > -%description > -Utilities for maintaining and servicing PowerPC systems. > - > -%files > -%defattr(-,root,root) > -/usr/share/doc/packages/powerpc-utils/README > -/usr/share/doc/packages/powerpc-utils/COPYRIGHT > - > -/usr/sbin/update_flash > -/usr/sbin/activate_firmware > -/usr/sbin/usysident > -/usr/sbin/usysattn > -/usr/sbin/set_poweron_time > -/usr/sbin/rtas_ibm_get_vpd > -/usr/sbin/serv_config > -/usr/sbin/uesensor > -/usr/sbin/hvcsadmin > -/usr/sbin/vscsisadmin > -/usr/sbin/rtas_dump > -/usr/sbin/rtas_event_decode > -/usr/sbin/sys_ident > -/usr/sbin/drmgr > -/usr/sbin/lsslot > -/usr/sbin/lsprop > -/usr/sbin/nvram > -/usr/sbin/snap > -/usr/sbin/bootlist > -/usr/sbin/ofpathname > -/usr/sbin/ppc64_cpu > -/usr/sbin/lsdevinfo > - > -/etc/init.d/ibmvscsis.sh > - > -/usr/bin/amsstat > -/usr/bin/amsvis > -@PYTHON_SITE_PKGS@/powerpcAMS-%{version}-py@PY_VERSION@.egg-info > -@PYTHON_SITE_PKGS@/powerpcAMS/__init__.py > -@PYTHON_SITE_PKGS@/powerpcAMS/__init__.pyc > -@PYTHON_SITE_PKGS@/powerpcAMS/amsdata.py > -@PYTHON_SITE_PKGS@/powerpcAMS/amsdata.pyc > -@PYTHON_SITE_PKGS@/powerpcAMS/amsnet.py > -@PYTHON_SITE_PKGS@/powerpcAMS/amsnet.pyc > -@PYTHON_SITE_PKGS@/powerpcAMS/amswidget.py > -@PYTHON_SITE_PKGS@/powerpcAMS/amswidget.pyc > - > -/usr/share/man/man8/update_flash.8 > -/usr/share/man/man8/activate_firmware.8 > -/usr/share/man/man8/usysident.8 > -/usr/share/man/man8/usysattn.8 > -/usr/share/man/man8/set_poweron_time.8 > -/usr/share/man/man8/rtas_ibm_get_vpd.8 > -/usr/share/man/man8/serv_config.8 > -/usr/share/man/man8/uesensor.8 > -/usr/share/man/man8/hvcsadmin.8 > -/usr/share/man/man8/vscsisadmin.8 > -/usr/share/man/man8/ibmvscsis.sh.8 > -/usr/share/man/man8/ibmvscsis.conf.8 > -/usr/share/man/man8/rtas_dump.8 > -/usr/share/man/man8/sys_ident.8 > -/usr/share/man/man8/nvram.8 > -/usr/share/man/man8/snap.8 > -/usr/share/man/man8/bootlist.8 > -/usr/share/man/man8/ofpathname.8 > - > -/usr/share/man/man1/amsvis.1 > -/usr/share/man/man1/amsstat.1 > - > -%post > -# Post-install script ----------------------------------------------- > -ln -sf /usr/sbin/usysattn usr/sbin/usysfault > -ln -sf /usr/sbin/serv_config usr/sbin/uspchrp > -ln -sf /usr/share/man/man8/usysattn.8 usr/share/man/man8/usysfault.8 > -ln -sf /usr/share/man/man8/serv_config.8 usr/share/man/man8/uspchrp.8 > -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_slot > -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_pci > -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_cpu > -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_phb > -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_mem > -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_hea > -ln -sf /usr/sbin/drmgr /usr/sbin/drmig_chrp_pmig > - > -%postun > -# Post-uninstall script --------------------------------------------- > -if [ "$1" = "0" ]; then > - # last uninstall > - rm -f /usr/sbin/usysfault > - rm -f /usr/sbin/uspchrp > - rm -f /usr/share/man/man8/usysfault.8.gz > - rm -f /usr/share/man/man8/uspchrp.8.gz > - rm /usr/sbin/drslot_chrp_slot > - rm /usr/sbin/drslot_chrp_pci > - rm /usr/sbin/drslot_chrp_cpu > - rm /usr/sbin/drslot_chrp_phb > - rm /usr/sbin/drslot_chrp_mem > - rm /usr/sbin/drslot_chrp_hea > - rm /usr/sbin/drmig_chrp_pmig > -fi > - > Index: powerpc-utils/configure > =================================================================== > --- powerpc-utils.orig/configure 2009-10-21 13:10:20.000000000 -0500 > +++ powerpc-utils/configure 2009-10-21 13:22:43.000000000 -0500 > @@ -6740,32 +6740,6 @@ > done > > > -echo "configure: creating ./powerpc-utils.spec" > -tfile=/tmp/powerpc-utils.spec$$ > - > -# See if the .egg-info file is to be created. > -PY_VERSION=`python -c "from platform import python_version; print python_version()" 2>/dev/null` > - > -if [ -z $PY_VERSION ]; then > - sed "|\@PY_VERSION\@|d" powerpc-utils.spec.in > $tfile > -else > - PY_VERSION=${PY_VERSION%.*} > - sed "s|\@PY_VERSION\@|$PY_VERSION|g" powerpc-utils.spec.in > $tfile > -fi > - > -# Update the spec file with the correct python paths > -PY_INST_DIR=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"` > -sed "s|\@PYTHON_SITE_PKGS\@|$PY_INST_DIR|g" $tfile > powerpc-utils.spec > -rm $tfile > - > -# Update the prefix used in the scripts/amsvis/Makefile > -echo "configure: creating ./scripts/amsvis/Makefile" > -sed "s|\@PREFIX\@|$prefix|g" scripts/amsvis/Makefile.in > scripts/amsvis/Makefile > - > -# Update the release in scripts/amsvis/setup.py > -echo "configure: creating ./scripts/amsvis/setup.py" > -sed "s|\@VERSION\@|$PACKAGE_VERSION|g" scripts/amsvis/setup.py.in > scripts/amsvis/setup.py > - > ac_config_files="$ac_config_files Makefile src/Makefile src/drmgr/Makefile scripts/Makefile man/Makefile" > > cat >confcache <<\_ACEOF > Index: powerpc-utils/scripts/Makefile.am > =================================================================== > --- powerpc-utils.orig/scripts/Makefile.am 2009-10-21 13:10:20.000000000 -0500 > +++ powerpc-utils/scripts/Makefile.am 2009-10-21 13:30:43.000000000 -0500 > @@ -1,5 +1,3 @@ > -SUBDIRS = amsvis > - > bin_SCRIPTS = amsstat > > sbin_SCRIPTS = update_flash hvcsadmin vscsisadmin rtas_dump snap \ > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Powerpc-utils-devel mailing list > Pow...@li... > https://lists.sourceforge.net/lists/listinfo/powerpc-utils-devel |
From: Nathan F. <nf...@au...> - 2009-10-21 21:35:46
|
Applied. -Nathan Fontenot Brad Peters wrote: > Nathan Fontenot wrote: >> Brad, >> >> Would you mind sending with a signed-off-by line. >> >> Thanks, >> -Nathan >> >> Brad Peters wrote: >>> When executed, serv_config is causing a partition hang. I was able >>> to track the cause of the hang down to a >>> single query against PHYP via RTAS. Attempting to access >>> 'proc-cuod-card-info', the Processor CUoD Capacity Card Info, seems >>> to no longer be supported. I've removed this inquiry from the array. >>> >>> Patch is attached. >>> >>> >>> > Need to remove this rtas query, at least until the firmware folks > figure out why it is causing a hang. > > Signed-off by Brad Peters <bp...@us...> > |
From: Nathan F. <nf...@au...> - 2009-10-21 19:44:23
|
The amsvis tools is being moved to the powerpc-utils-python package. The following patch is the code updates needed to remove the command from the powerpc-utils package. Additionally the following updates are needed; - rename powerpc-utils.spec.in to powerpc-utils.spec We no longer have to update this file with the correct python paths at configure time - delete all files under scripts/amsvis No longer needed. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/configure.ac =================================================================== --- powerpc-utils.orig/configure.ac 2009-10-21 13:10:20.000000000 -0500 +++ powerpc-utils/configure.ac 2009-10-21 13:15:07.000000000 -0500 @@ -34,31 +34,5 @@ AC_FUNC_MKTIME AC_CHECK_FUNCS([memset strchr strcspn strdup strerror strrchr strstr strtol strtoul strtoull]) -echo "configure: creating ./powerpc-utils.spec" -tfile=/tmp/powerpc-utils.spec$$ - -# See if the .egg-info file is to be created. -PY_VERSION=`python -c "from platform import python_version; print python_version()" 2>/dev/null` - -if [[ -z $PY_VERSION ]]; then - sed "|\@PY_VERSION\@|d" powerpc-utils.spec.in > $tfile -else - PY_VERSION=${PY_VERSION%.*} - sed "s|\@PY_VERSION\@|$PY_VERSION|g" powerpc-utils.spec.in > $tfile -fi - -# Update the spec file with the correct python paths -PY_INST_DIR=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"` -sed "s|\@PYTHON_SITE_PKGS\@|$PY_INST_DIR|g" $tfile > powerpc-utils.spec -rm $tfile - -# Update the prefix used in the scripts/amsvis/Makefile -echo "configure: creating ./scripts/amsvis/Makefile" -sed "s|\@PREFIX\@|$prefix|g" scripts/amsvis/Makefile.in > scripts/amsvis/Makefile - -# Update the release in scripts/amsvis/setup.py -echo "configure: creating ./scripts/amsvis/setup.py" -sed "s|\@VERSION\@|$PACKAGE_VERSION|g" scripts/amsvis/setup.py.in > scripts/amsvis/setup.py - AC_CONFIG_FILES(Makefile src/Makefile src/drmgr/Makefile scripts/Makefile man/Makefile) AC_OUTPUT Index: powerpc-utils/powerpc-utils.spec.in =================================================================== --- powerpc-utils.orig/powerpc-utils.spec.in 2009-10-21 13:10:20.000000000 -0500 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,111 +0,0 @@ -%define name powerpc-utils -%define version 1.2.1 -%define release 0 -Summary: Utilities for PowerPC platforms -Name: %{name} -Version: %{version} -Release: %{release} -License: IBM Common Public License (CPL) -Group: System Environment -Source0: N/A -BuildRoot: /tmp/%{name}-buildroot/ -Requires: /bin/bash, /bin/sh, /bin/sed, /usr/bin/perl, librtas >= 1.3.0 - -%description -Utilities for maintaining and servicing PowerPC systems. - -%files -%defattr(-,root,root) -/usr/share/doc/packages/powerpc-utils/README -/usr/share/doc/packages/powerpc-utils/COPYRIGHT - -/usr/sbin/update_flash -/usr/sbin/activate_firmware -/usr/sbin/usysident -/usr/sbin/usysattn -/usr/sbin/set_poweron_time -/usr/sbin/rtas_ibm_get_vpd -/usr/sbin/serv_config -/usr/sbin/uesensor -/usr/sbin/hvcsadmin -/usr/sbin/vscsisadmin -/usr/sbin/rtas_dump -/usr/sbin/rtas_event_decode -/usr/sbin/sys_ident -/usr/sbin/drmgr -/usr/sbin/lsslot -/usr/sbin/lsprop -/usr/sbin/nvram -/usr/sbin/snap -/usr/sbin/bootlist -/usr/sbin/ofpathname -/usr/sbin/ppc64_cpu -/usr/sbin/lsdevinfo - -/etc/init.d/ibmvscsis.sh - -/usr/bin/amsstat -/usr/bin/amsvis -@PYTHON_SITE_PKGS@/powerpcAMS-%{version}-py@PY_VERSION@.egg-info -@PYTHON_SITE_PKGS@/powerpcAMS/__init__.py -@PYTHON_SITE_PKGS@/powerpcAMS/__init__.pyc -@PYTHON_SITE_PKGS@/powerpcAMS/amsdata.py -@PYTHON_SITE_PKGS@/powerpcAMS/amsdata.pyc -@PYTHON_SITE_PKGS@/powerpcAMS/amsnet.py -@PYTHON_SITE_PKGS@/powerpcAMS/amsnet.pyc -@PYTHON_SITE_PKGS@/powerpcAMS/amswidget.py -@PYTHON_SITE_PKGS@/powerpcAMS/amswidget.pyc - -/usr/share/man/man8/update_flash.8 -/usr/share/man/man8/activate_firmware.8 -/usr/share/man/man8/usysident.8 -/usr/share/man/man8/usysattn.8 -/usr/share/man/man8/set_poweron_time.8 -/usr/share/man/man8/rtas_ibm_get_vpd.8 -/usr/share/man/man8/serv_config.8 -/usr/share/man/man8/uesensor.8 -/usr/share/man/man8/hvcsadmin.8 -/usr/share/man/man8/vscsisadmin.8 -/usr/share/man/man8/ibmvscsis.sh.8 -/usr/share/man/man8/ibmvscsis.conf.8 -/usr/share/man/man8/rtas_dump.8 -/usr/share/man/man8/sys_ident.8 -/usr/share/man/man8/nvram.8 -/usr/share/man/man8/snap.8 -/usr/share/man/man8/bootlist.8 -/usr/share/man/man8/ofpathname.8 - -/usr/share/man/man1/amsvis.1 -/usr/share/man/man1/amsstat.1 - -%post -# Post-install script ----------------------------------------------- -ln -sf /usr/sbin/usysattn usr/sbin/usysfault -ln -sf /usr/sbin/serv_config usr/sbin/uspchrp -ln -sf /usr/share/man/man8/usysattn.8 usr/share/man/man8/usysfault.8 -ln -sf /usr/share/man/man8/serv_config.8 usr/share/man/man8/uspchrp.8 -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_slot -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_pci -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_cpu -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_phb -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_mem -ln -sf /usr/sbin/drmgr /usr/sbin/drslot_chrp_hea -ln -sf /usr/sbin/drmgr /usr/sbin/drmig_chrp_pmig - -%postun -# Post-uninstall script --------------------------------------------- -if [ "$1" = "0" ]; then - # last uninstall - rm -f /usr/sbin/usysfault - rm -f /usr/sbin/uspchrp - rm -f /usr/share/man/man8/usysfault.8.gz - rm -f /usr/share/man/man8/uspchrp.8.gz - rm /usr/sbin/drslot_chrp_slot - rm /usr/sbin/drslot_chrp_pci - rm /usr/sbin/drslot_chrp_cpu - rm /usr/sbin/drslot_chrp_phb - rm /usr/sbin/drslot_chrp_mem - rm /usr/sbin/drslot_chrp_hea - rm /usr/sbin/drmig_chrp_pmig -fi - Index: powerpc-utils/configure =================================================================== --- powerpc-utils.orig/configure 2009-10-21 13:10:20.000000000 -0500 +++ powerpc-utils/configure 2009-10-21 13:22:43.000000000 -0500 @@ -6740,32 +6740,6 @@ done -echo "configure: creating ./powerpc-utils.spec" -tfile=/tmp/powerpc-utils.spec$$ - -# See if the .egg-info file is to be created. -PY_VERSION=`python -c "from platform import python_version; print python_version()" 2>/dev/null` - -if [ -z $PY_VERSION ]; then - sed "|\@PY_VERSION\@|d" powerpc-utils.spec.in > $tfile -else - PY_VERSION=${PY_VERSION%.*} - sed "s|\@PY_VERSION\@|$PY_VERSION|g" powerpc-utils.spec.in > $tfile -fi - -# Update the spec file with the correct python paths -PY_INST_DIR=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"` -sed "s|\@PYTHON_SITE_PKGS\@|$PY_INST_DIR|g" $tfile > powerpc-utils.spec -rm $tfile - -# Update the prefix used in the scripts/amsvis/Makefile -echo "configure: creating ./scripts/amsvis/Makefile" -sed "s|\@PREFIX\@|$prefix|g" scripts/amsvis/Makefile.in > scripts/amsvis/Makefile - -# Update the release in scripts/amsvis/setup.py -echo "configure: creating ./scripts/amsvis/setup.py" -sed "s|\@VERSION\@|$PACKAGE_VERSION|g" scripts/amsvis/setup.py.in > scripts/amsvis/setup.py - ac_config_files="$ac_config_files Makefile src/Makefile src/drmgr/Makefile scripts/Makefile man/Makefile" cat >confcache <<\_ACEOF Index: powerpc-utils/scripts/Makefile.am =================================================================== --- powerpc-utils.orig/scripts/Makefile.am 2009-10-21 13:10:20.000000000 -0500 +++ powerpc-utils/scripts/Makefile.am 2009-10-21 13:30:43.000000000 -0500 @@ -1,5 +1,3 @@ -SUBDIRS = amsvis - bin_SCRIPTS = amsstat sbin_SCRIPTS = update_flash hvcsadmin vscsisadmin rtas_dump snap \ |
From: Brad P. <bp...@li...> - 2009-10-14 18:03:04
|
Nathan Fontenot wrote: > Brad, > > Would you mind sending with a signed-off-by line. > > Thanks, > -Nathan > > Brad Peters wrote: >> When executed, serv_config is causing a partition hang. I was able >> to track the cause of the hang down to a >> single query against PHYP via RTAS. Attempting to access >> 'proc-cuod-card-info', the Processor CUoD Capacity Card Info, seems >> to no longer be supported. I've removed this inquiry from the array. >> >> Patch is attached. >> >> >> Need to remove this rtas query, at least until the firmware folks figure out why it is causing a hang. Signed-off by Brad Peters <bp...@us...> |
From: Brad P. <bp...@li...> - 2009-10-08 20:28:31
|
Robert Jennings wrote: > * Brad Peters (bp...@li...) wrote: > >> When executed, serv_config is causing a partition hang. I was able to >> track the cause of the hang down to a single query against PHYP via RTAS. >> Attempting to access 'proc-cuod-card-info', the Processor CUoD Capacity >> Card Info, seems to no longer be supported. I've removed this inquiry >> from the array. >> > > I saw this problem where it did not cause a hang, but a system > crash/reboot. I understand that issuing the 'proc-cuod-card-info' call > caused the issue, but is that root cause or is this a symptom? > > Regards, > Robert Jennings > Good question, but I'm not sure what happens behind that rtas call, so I'm really not sure how we could track down a more core root cause. -- Best regards, Brad Peters IBM Linux on System-P Platform Serviceability Team Lead 15350 SW Koll Parkway 503-578-3493 TL: 775-3493 bp...@li... bp...@us... AIM: bradpeters1000 |
From: Robert J. <rc...@li...> - 2009-10-08 18:34:46
|
* Brad Peters (bp...@li...) wrote: > When executed, serv_config is causing a partition hang. I was able to > track the cause of the hang down to a single query against PHYP via RTAS. > Attempting to access 'proc-cuod-card-info', the Processor CUoD Capacity > Card Info, seems to no longer be supported. I've removed this inquiry > from the array. I saw this problem where it did not cause a hang, but a system crash/reboot. I understand that issuing the 'proc-cuod-card-info' call caused the issue, but is that root cause or is this a symptom? Regards, Robert Jennings |
From: Nathan F. <nf...@au...> - 2009-09-21 19:28:48
|
I am seeing the following output when running the lsdevinfo command on my machine. This is coming from a 'grep -v' of ls output when trying to determine the name for a virtual device. #>lsdevinfo device: name="eth0" path: parent="vio" physloc=U9131.52A.100BF1G-V3-C3-T1 /bin/ls: cannot access power: No such file or directory /bin/ls: cannot access subsystem: No such file or directory ... snip ... A small change to the grep arguments appears to get rid of the error messages. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/scripts/lsdevinfo =================================================================== --- powerpc-utils.orig/scripts/lsdevinfo 2009-09-21 13:58:14.000000000 -0500 +++ powerpc-utils/scripts/lsdevinfo 2009-09-21 18:38:12.000000000 -0500 @@ -201,7 +201,7 @@ # loop through the targets for this host. for t in $($LS -d $host/target*); do - target=$(echo $($LS -d $t/$($LS $t | $GREP -v uevent))) + target=$(echo $($LS -d $t/$($LS $t | $GREP ^[0-9]))) name=$(echo $($LS -d $target/block*) | $SED -e "s/.*://") if [[ $(cat $target/state) == "running" ]] ; then |
From: Nathan F. <nf...@au...> - 2009-09-15 19:06:49
|
This patch enables drmgr to do DLPAR operations for memory on systems that can do the acquisition via rtas and device tree updating in the kernel. NOTE: This patch depends on the DLPAR infrastructure patch set posted to linuxppc-dev. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/src/drmgr/drmem.h =================================================================== --- powerpc-utils.orig/src/drmgr/drmem.h 2009-09-15 13:30:26.000000000 -0500 +++ powerpc-utils/src/drmgr/drmem.h 2009-09-15 13:37:40.000000000 -0500 @@ -19,6 +19,7 @@ #define DRMEM_DRC_INVALID 0x00000020 #define MEM_PROBE_FILE "/sys/devices/system/memory/probe" +#define MEM_RELEASE_FILE "/sys/devices/system/memory/release" #define MEM_BLOCK_SIZE_BYTES "/sys/devices/system/memory/block_size_bytes" #define DYNAMIC_RECONFIG_MEM "/proc/device-tree/ibm,dynamic-reconfiguration-memory" Index: powerpc-utils/src/drmgr/drslot_chrp_mem.c =================================================================== --- powerpc-utils.orig/src/drmgr/drslot_chrp_mem.c 2009-09-15 13:30:26.000000000 -0500 +++ powerpc-utils/src/drmgr/drslot_chrp_mem.c 2009-09-15 13:39:32.000000000 -0500 @@ -35,6 +35,16 @@ *pusage = usagestr; } +static int +is_kernel_dlpar_capable(void) +{ + struct stat sbuf; + int rc; + + rc = stat(MEM_RELEASE_FILE, &sbuf); + return !rc; +} + /** * get_phandle * @@ -302,13 +312,13 @@ if (drmem->flags & DRMEM_ASSIGNED) { found++; lmb->is_owned = 1; - - /* find the associated sysfs memory blocks */ - rc = get_mem_scns(lmb); - if (rc) - break; } + /* find the associated sysfs memory blocks */ + rc = get_mem_scns(lmb); + if (rc) + break; + drmem++; /* trust your compiler */ } @@ -756,6 +766,34 @@ return 0; } +static int +release_lmb(struct dr_node *lmb) +{ + char buf[DR_STR_MAX]; + int release_file; + int write_len; + int rc; + + release_file = open(MEM_RELEASE_FILE, O_WRONLY); + if (release_file <= 0) { + dbg("Could not open %s to release lmb\n", MEM_RELEASE_FILE); + return errno; + } + + memset(buf, 0, DR_STR_MAX); + write_len = sprintf(buf, "0x%x", lmb->drc_index); + rc = write(release_file, buf, write_len); + if (rc != write_len) + dbg("Write to %s failed!\n%s\n", MEM_RELEASE_FILE, + strerror(errno)); + else + /* reset rc to success */ + rc = 0; + + close(release_file); + return rc; +} + /** * set_lmb_state * @@ -818,6 +856,7 @@ { int rc = 0; struct dr_node *lmb; + int kernel_dlpar_capable = is_kernel_dlpar_capable(); lmb_list->lmbs_modified = 0; while (lmb_list->lmbs_modified < (int)opts->quantity) { @@ -825,23 +864,28 @@ if (lmb == NULL) return -1; - rc = acquire_drc(lmb->drc_index); - if (rc) { - lmb->unusable = 1; - continue; - } + if (!kernel_dlpar_capable) { + rc = acquire_drc(lmb->drc_index); + if (rc) { + lmb->unusable = 1; + continue; + } - rc = add_device_tree_lmb(lmb, lmb_list); - if (rc) { - release_drc(lmb->drc_index, MEM_DEV); - lmb->unusable = 1; - continue; + rc = add_device_tree_lmb(lmb, lmb_list); + if (rc) { + release_drc(lmb->drc_index, MEM_DEV); + lmb->unusable = 1; + continue; + } } rc = set_lmb_state(lmb, ONLINE); if (rc) { - remove_device_tree_lmb(lmb, lmb_list); - release_drc(lmb->drc_index, MEM_DEV); + if (!kernel_dlpar_capable) { + remove_device_tree_lmb(lmb, lmb_list); + release_drc(lmb->drc_index, MEM_DEV); + } + lmb->unusable = 1; continue; } @@ -893,6 +937,7 @@ { struct dr_node *lmb; int rc; + int kernel_dlpar_capable = is_kernel_dlpar_capable(); while (lmb_list->lmbs_modified < (int)opts->quantity) { lmb = get_available_lmb(opts, lmb_list); @@ -905,25 +950,33 @@ continue; } - rc = remove_device_tree_lmb(lmb, lmb_list); - if (rc) { - set_lmb_state(lmb, ONLINE); - lmb->unusable = 1; - continue; - } + if (kernel_dlpar_capable) { + rc = release_lmb(lmb); + if (rc) { + lmb->unusable = 1; + continue; + } + } else { + rc = remove_device_tree_lmb(lmb, lmb_list); + if (rc) { + set_lmb_state(lmb, ONLINE); + lmb->unusable = 1; + continue; + } - while (lmb->lmb_mem_scns) { - struct mem_scn *scn = lmb->lmb_mem_scns; - lmb->lmb_mem_scns = scn->next; - free(scn); - } + while (lmb->lmb_mem_scns) { + struct mem_scn *scn = lmb->lmb_mem_scns; + lmb->lmb_mem_scns = scn->next; + free(scn); + } - rc = release_drc(lmb->drc_index, 0); - if (rc) { - add_device_tree_lmb(lmb, lmb_list); - set_lmb_state(lmb, ONLINE); - lmb->unusable = 1; - continue; + rc = release_drc(lmb->drc_index, 0); + if (rc) { + add_device_tree_lmb(lmb, lmb_list); + set_lmb_state(lmb, ONLINE); + lmb->unusable = 1; + continue; + } } lmb->is_removable = 0; |
From: Nathan F. <nf...@au...> - 2009-09-15 19:04:14
|
This patch updates the drmgr command to do CPU DLPAR on kernels that have been enabled to do the DLPAR work in the kernel. Previously the work of acquiring the cpu from firmware vi a rtas calls and updating the device tree was done by drmgr. On newer kernels this is now done in the kernel by writing to the sysfs cpu 'probe' file. Note: this patch is entirely dependent on the patch set to enable kernel dlpar capabilities that has been submitted to the mailing lists. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/src/drmgr/common_cpu.c =================================================================== --- powerpc-utils.orig/src/drmgr/common_cpu.c 2009-09-15 10:15:17.000000000 -0500 +++ powerpc-utils/src/drmgr/common_cpu.c 2009-09-15 11:21:51.000000000 -0500 @@ -604,7 +604,7 @@ * @param drc_index * @returns pointer to cpu_info on success, NULL otherwise */ -int +static int acquire_cpu(struct dr_node *cpu, struct dr_info *dr_info) { struct of_node *of_nodes; @@ -637,6 +637,43 @@ return 0; } +int +probe_cpu(struct dr_node *cpu, struct dr_info *dr_info) +{ + char drc_index[DR_STR_MAX]; + int probe_file; + int write_len; + int rc = 0; + + probe_file = open(CPU_PROBE_FILE, O_WRONLY); + if (probe_file <= 0) { + /* Attempt to add cpu from user-space, this may be an older + * kernel without the infrastructure to handle dlpar. + */ + rc = acquire_cpu(cpu, dr_info); + } else { + memset(drc_index, 0, DR_STR_MAX); + write_len = sprintf(drc_index, "0x%x", cpu->drc_index); + + dbg("Probing cpu 0x%x\n", cpu->drc_index); + rc = write(probe_file, drc_index, write_len); + if (rc != write_len) + dbg("Probe failed! rc = %x\n", rc); + else + /* reset rc to success */ + rc = 0; + + close(probe_file); + } + + if (!rc) { + update_cpu_node(cpu, NULL, dr_info); + refresh_cache_info(dr_info); + } + + return rc; +} + /** * release_caches * Remove any unused cache info. Failure to remove the cache, while not @@ -688,39 +725,60 @@ int release_cpu(struct dr_node *cpu, struct dr_info *dr_info) { + int release_file; int rc; - /* Should we check to make sure all threads of the cpu are offline? */ - - rc = release_drc(cpu->drc_index, CPU_DEV); - if (rc) { - dbg("Could not release drc resources for %s\n", cpu->name); - return rc; - } + release_file = open(CPU_RELEASE_FILE, O_WRONLY); + if (release_file > 0) { + /* DLPAR can be done in kernel */ + char *path = cpu->ofdt_path + strlen(OFDT_BASE); + int write_len = strlen(path); + + dbg("Releasing cpu \"%s\"\n", path); + rc = write(release_file, path, write_len); + if (rc != write_len) + dbg("Release failed! rc = %d\n", rc); + else + /* set rc to success */ + rc = 0; + + close(release_file); + } else { + /* Must do DLPAR from user-space */ + rc = release_drc(cpu->drc_index, CPU_DEV); + if (rc) { + dbg("Could not release drc resources for %s\n", + cpu->name); + return rc; + } - rc = remove_device_tree_nodes(cpu->ofdt_path); - if (rc) { - struct of_node *of_nodes; + rc = remove_device_tree_nodes(cpu->ofdt_path); + if (rc) { + struct of_node *of_nodes; - dbg("Could not remove device tree nodes %s\n", cpu->name); + dbg("Could not remove device tree nodes %s\n", + cpu->name); - of_nodes = configure_connector(cpu->drc_index); - if (of_nodes == NULL) { - err_msg("Call to configure_connector failed for %s. " - "The device tree\nmay contain invalid data " - "for this cpu and a re-activation of the " - "partition is needed to correct it.\n", - cpu->name); - } else { - rc = add_device_tree_nodes(CPU_OFDT_BASE, of_nodes); - free_of_node(of_nodes); + of_nodes = configure_connector(cpu->drc_index); + if (of_nodes == NULL) { + err_msg("Call to configure_connector failed " + "for %s. The device tree\nmay contain " + "invalid data for this cpu and a " + "re-activation of the partition is " + "needed to correct it.\n", cpu->name); + } else { + rc = add_device_tree_nodes(CPU_OFDT_BASE, + of_nodes); + free_of_node(of_nodes); + } + + acquire_drc(cpu->drc_index); + return rc; } - acquire_drc(cpu->drc_index); - return rc; + release_caches(cpu, dr_info); } - release_caches(cpu, dr_info); return rc; } Index: powerpc-utils/src/drmgr/drcpu.h =================================================================== --- powerpc-utils.orig/src/drmgr/drcpu.h 2009-09-15 10:15:17.000000000 -0500 +++ powerpc-utils/src/drmgr/drcpu.h 2009-09-15 10:46:08.000000000 -0500 @@ -9,6 +9,9 @@ #include "dr.h" +#define CPU_PROBE_FILE "/sys/devices/system/cpu/probe" +#define CPU_RELEASE_FILE "/sys/devices/system/cpu/release" + struct cache_info { char name[DR_BUF_SZ]; /* node name */ char path[DR_BUF_SZ]; /* node path */ @@ -45,7 +48,7 @@ struct cache_info * cache_get_dependent_cache(struct cache_info *, struct dr_info *); int release_cpu(struct dr_node *, struct dr_info *); -int acquire_cpu(struct dr_node *, struct dr_info *); +int probe_cpu(struct dr_node *, struct dr_info *); struct dr_node *get_available_cpu(struct options *, struct dr_info *); #endif /* _H_DRCPU */ Index: powerpc-utils/src/drmgr/drslot_chrp_cpu.c =================================================================== --- powerpc-utils.orig/src/drmgr/drslot_chrp_cpu.c 2009-09-15 10:15:17.000000000 -0500 +++ powerpc-utils/src/drmgr/drslot_chrp_cpu.c 2009-09-15 10:33:21.000000000 -0500 @@ -138,7 +138,7 @@ if (!cpu) break; - rc = acquire_cpu(cpu, dr_info); + rc = probe_cpu(cpu, dr_info); if (rc) { dbg("Unable to acquire CPU with drc index %x\n", cpu->drc_index); |
From: Brad P. <bp...@li...> - 2009-09-10 20:42:06
|
When executed, serv_config is causing a partition hang. I was able to track the cause of the hang down to a single query against PHYP via RTAS. Attempting to access 'proc-cuod-card-info', the Processor CUoD Capacity Card Info, seems to no longer be supported. I've removed this inquiry from the array. Patch is attached. -- Best regards, Brad Peters IBM Linux on System-P Platform Serviceability Team Lead 15350 SW Koll Parkway 503-578-3493 TL: 775-3493 bp...@li... bp...@us... AIM: bradpeters1000 |
From: Nathan F. <nf...@au...> - 2009-09-08 18:13:25
|
This patch updates the retrieval of a system attribute, such as smt-snooze-delay or dscr, to handle a valid return value of -1. The value of -1 for smt-snooze-delay is a valid value, where -1 == turning off the snooze delay. This updates the code to allow a return code from the retrieval routine (success/failure) and the new system attribute is returned in a parameter to the routine. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/src/ppc64_cpu.c =================================================================== --- powerpc-utils.orig/src/ppc64_cpu.c 2009-09-04 14:15:04.000000000 -0500 +++ powerpc-utils/src/ppc64_cpu.c 2009-09-04 14:17:25.000000000 -0500 @@ -66,7 +66,7 @@ return 1; } -int get_system_attribute(char *attribute) +int get_system_attribute(char *attribute, int *value) { char path[SYSFS_PATH_MAX]; int i, rc; @@ -90,7 +90,8 @@ return -1; } - return system_attribute; + *value = system_attribute; + return 0; } int set_system_attribute(char *attribute, int state) @@ -229,9 +230,11 @@ int set_smt_state(int smt_state) { int i, rc; - int ssd; + int ssd, update_ssd = 1; - ssd = get_system_attribute("smt_snooze_delay"); + rc = get_system_attribute("smt_snooze_delay", &ssd); + if (rc) + update_ssd = 0; for (i = 0; i < MAX_THREADS; i += threads_per_cpu) { rc = set_one_smt_state(i, smt_state); @@ -239,7 +242,8 @@ break; } - set_system_attribute("smt_snooze_delay", ssd); + if (update_ssd) + set_system_attribute("smt_snooze_delay", ssd); return rc; } @@ -310,11 +314,16 @@ } if (!state) { - int dscr = get_system_attribute("dscr"); - if (dscr == -1) - printf("Inconsistent DSCR\n"); - else - printf("dscr is %d\n", dscr); + int dscr; + rc = get_system_attribute("dscr", &dscr); + if (rc) { + printf("Could not retrieve DSCR\n"); + } else { + if (dscr == -1) + printf("Inconsistent DSCR\n"); + else + printf("dscr is %d\n", dscr); + } } else rc = set_system_attribute("dscr", strtol(state, NULL, 0)); @@ -331,11 +340,16 @@ } if (!state) { - int ssd = get_system_attribute("smt_snooze_delay"); - if (ssd == -1) - printf("Inconsistent smt_snooze_delay\n"); - else - printf("smt_snooze_delay is %d\n", ssd); + int ssd; + rc = get_system_attribute("smt_snooze_delay", &ssd); + if (rc) { + printf("Could not retrieve smt_snooze_delay\n"); + } else { + if (ssd == -1) + printf("Inconsistent smt_snooze_delay\n"); + else + printf("smt_snooze_delay is %d\n", ssd); + } } else { int delay; |
From: Nathan F. <nf...@au...> - 2009-09-08 18:08:38
|
When making changes to increase the smt state, the cpus that are brought online come online with the same smt-snooze-delay they had when they were taken offline. This leads to a mix of smt-snooze-delay states for a system. This patch will update the cpus after an smt state change so that they all have the same smt-snooze-delay value if that value was consistant across the cpus prior to changing the smt state. If there was a mix of smt-snooze-delay values prior to the smt state change then no attempt is made to update the smt-snooze-delay state. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/src/ppc64_cpu.c =================================================================== --- powerpc-utils.orig/src/ppc64_cpu.c 2009-09-02 19:09:43.000000000 -0500 +++ powerpc-utils/src/ppc64_cpu.c 2009-09-04 14:15:04.000000000 -0500 @@ -53,6 +53,65 @@ return 0; } +int cpu_online(int thread) +{ + char path[SYSFS_PATH_MAX]; + int rc, online; + + sprintf(path, SYSFS_CPUDIR"/online", thread); + rc = get_attribute(path, &online); + if (rc || !online) + return 0; + + return 1; +} + +int get_system_attribute(char *attribute) +{ + char path[SYSFS_PATH_MAX]; + int i, rc; + int system_attribute = -1; + + for (i = 0; i < MAX_THREADS; i++) { + int cpu_attribute; + + /* only check online cpus */ + if (!cpu_online(i)) + continue; + + sprintf(path, SYSFS_CPUDIR"/%s", i, attribute); + rc = get_attribute(path, &cpu_attribute); + if (rc) + continue; + + if (system_attribute == -1) + system_attribute = cpu_attribute; + else if (system_attribute != cpu_attribute) + return -1; + } + + return system_attribute; +} + +int set_system_attribute(char *attribute, int state) +{ + char path[SYSFS_PATH_MAX]; + int i, rc; + + for (i = 0; i < MAX_THREADS; i++) { + /* only set online cpus */ + if (!cpu_online(i)) + continue; + + sprintf(path, SYSFS_CPUDIR"/%s", i, attribute); + rc = set_attribute(path, state); + if (rc) + return -1; + } + + return 0; +} + int get_threads_per_cpu(void) { DIR *d; @@ -170,6 +229,9 @@ int set_smt_state(int smt_state) { int i, rc; + int ssd; + + ssd = get_system_attribute("smt_snooze_delay"); for (i = 0; i < MAX_THREADS; i += threads_per_cpu) { rc = set_one_smt_state(i, smt_state); @@ -177,6 +239,8 @@ break; } + set_system_attribute("smt_snooze_delay", ssd); + return rc; } @@ -194,65 +258,6 @@ } return 0; -} - -int cpu_online(int thread) -{ - char path[SYSFS_PATH_MAX]; - int rc, online; - - sprintf(path, SYSFS_CPUDIR"/online", thread); - rc = get_attribute(path, &online); - if (rc || !online) - return 0; - - return 1; -} - -int get_system_attribute(char *attribute) -{ - char path[SYSFS_PATH_MAX]; - int i, rc; - int system_attribute = -1; - - for (i = 0; i < MAX_THREADS; i++) { - int cpu_attribute; - - /* only check online cpus */ - if (!cpu_online(i)) - continue; - - sprintf(path, SYSFS_CPUDIR"/%s", i, attribute); - rc = get_attribute(path, &cpu_attribute); - if (rc) - continue; - - if (system_attribute == -1) - system_attribute = cpu_attribute; - else if (system_attribute != cpu_attribute) - return -1; - } - - return system_attribute; -} - -int set_system_attribute(char *attribute, int state) -{ - char path[SYSFS_PATH_MAX]; - int i, rc; - - for (i = 0; i < MAX_THREADS; i++) { - /* only set online cpus */ - if (!cpu_online(i)) - continue; - - sprintf(path, SYSFS_CPUDIR"/%s", i, attribute); - rc = set_attribute(path, state); - if (rc) - return -1; - } - - return 0; } int do_smt(char *state) |
From: Nathan F. <nf...@au...> - 2009-09-08 18:00:36
|
On Linux, migration notices are provided via the servicelog infrastructure. http://linux-diag.sourceforge.net/servicelog/ When a migration occurs the drmgr command logs an event with servicelog indicating that the system had been migrated. Applications that wish to be notified of migrations can register with servicelog to be notified of these events. -Nathan Liran Schour wrote: > On AIX applications can be aware of live migration by signals or scripts > (by using a utility named drmgr). Is it possible on Linux too. Did I get to > the right place? > > Thanks, > - Liran > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Powerpc-utils-devel mailing list > Pow...@li... > https://lists.sourceforge.net/lists/listinfo/powerpc-utils-devel |
From: Nathan F. <nf...@au...> - 2009-09-08 17:56:52
|
The current bounds checking only validates that the specified smt setting is not zero and less than or equal to the threads per cpu on the system. This causes smt settings such as 4000000000 to be converted to some negative number and thus odd smt settings ensue. This patch ensures checks to make the smt setting specified is not less than or equal to zero. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/src/ppc64_cpu.c =================================================================== --- powerpc-utils.orig/src/ppc64_cpu.c 2009-09-04 14:17:25.000000000 -0500 +++ powerpc-utils/src/ppc64_cpu.c 2009-09-08 15:09:32.000000000 -0500 @@ -293,7 +293,7 @@ else smt_state = strtol(state, NULL, 0); - if ((smt_state == 0) || (smt_state > threads_per_cpu)) { + if ((smt_state <= 0) || (smt_state > threads_per_cpu)) { printf("SMT=%s is not valid\n", state); return -1; } |
From: Liran S. <LI...@il...> - 2009-09-08 10:07:54
|
On AIX applications can be aware of live migration by signals or scripts (by using a utility named drmgr). Is it possible on Linux too. Did I get to the right place? Thanks, - Liran |
From: Nathan F. <nf...@au...> - 2009-09-02 21:26:21
|
This is some minor code cleanups, no functional changes. Signed-off-by: Nathan Fontenot <nf...@au...> --- Index: powerpc-utils/src/ppc64_cpu.c =================================================================== --- powerpc-utils.orig/src/ppc64_cpu.c 2009-09-02 19:09:38.000000000 -0500 +++ powerpc-utils/src/ppc64_cpu.c 2009-09-02 19:09:43.000000000 -0500 @@ -17,6 +17,7 @@ #include <getopt.h> #define SYSFS_CPUDIR "/sys/devices/system/cpu/cpu%d" +#define INTSERV_PATH "/proc/device-tree/cpus/%s/ibm,ppc-interrupt-server#s" #define SYSFS_PATH_MAX 128 #define MAX_THREADS 1024 @@ -68,8 +69,7 @@ struct stat sbuf; char path[128]; - sprintf(path, "/proc/device-tree/cpus/%s/ibm,ppc-interrupt-server#s", - de->d_name); + sprintf(path, INTSERV_PATH, de->d_name); rc = stat(path, &sbuf); if (!rc) nthreads = sbuf.st_size / 4; @@ -107,7 +107,8 @@ int i, rc; for (i = 0; i < threads_per_cpu; i++) { - sprintf(online_file, SYSFS_CPUDIR"/%s", primary_thread + i, "online"); + sprintf(online_file, SYSFS_CPUDIR"/%s", primary_thread + i, + "online"); if (stat(online_file, &sb)) return -1; @@ -148,14 +149,16 @@ int i, rc; for (i = 0; i < online_threads; i++) { - snprintf(path, SYSFS_PATH_MAX, SYSFS_CPUDIR"/%s", thread + i, "online"); + snprintf(path, SYSFS_PATH_MAX, SYSFS_CPUDIR"/%s", thread + i, + "online"); rc = set_attribute(path, 1); if (rc) return rc; } for (; i < threads_per_cpu; i++) { - snprintf(path, SYSFS_PATH_MAX, SYSFS_CPUDIR"/%s", thread + i, "online"); + snprintf(path, SYSFS_PATH_MAX, SYSFS_CPUDIR"/%s", thread + i, + "online"); rc = set_attribute(path, 0); if (rc) break; @@ -351,9 +354,11 @@ rc = rtas_get_sysparm(DIAGNOSTICS_RUN_MODE, 3, mode); if (rc) { if (rc == -3) - printf("Machine does not support diagnostic run mode\n"); + printf("Machine does not support diagnostic " + "run mode\n"); else - printf("Could not retrieve current diagnostics mode\n"); + printf("Could not retrieve current diagnostics " + "mode\n"); } else printf("run-mode=%c\n", mode[2]); } else { @@ -370,7 +375,8 @@ rc = rtas_set_sysparm(DIAGNOSTICS_RUN_MODE, mode); if (rc) { if (rc == -3) - printf("Machine does not support diagnostic run mode\n"); + printf("Machine does not support diagnostic " + "run mode\n"); else printf("Could not set diagnostics mode\n"); } @@ -381,15 +387,15 @@ void usage(void) { - printf("\tppc64_cpu --smt # Get current SMT state\n" - "\tppc64_cpu --smt={on|off} # Turn SMT on/off\n\n" - "\tppc64_cpu --smt=X # Set SMT state to X\n\n" - "\tppc64_cpu --dscr # Get current DSCR setting\n" - "\tppc64_cpu --dscr=<val> # Change DSCR setting\n\n" - "\tppc64_cpu --smt-snooze-delay # Get current smt-snooze-delay setting\n" + printf("\tppc64_cpu --smt # Get current SMT state\n" + "\tppc64_cpu --smt={on|off} # Turn SMT on/off\n\n" + "\tppc64_cpu --smt=X # Set SMT state to X\n\n" + "\tppc64_cpu --dscr # Get current DSCR setting\n" + "\tppc64_cpu --dscr=<val> # Change DSCR setting\n\n" + "\tppc64_cpu --smt-snooze-delay # Get current smt-snooze-delay setting\n" "\tppc64_cpu --smt-snooze-delay=<val> # Change smt-snooze-delay setting\n\n" - "\tppc64_cpu --run-mode # Get current diagnostics run mode\n" - "\tppc64_cpu --run-mode=<val> # Set current diagnostics run mode\n\n"); + "\tppc64_cpu --run-mode # Get current diagnostics run mode\n" + "\tppc64_cpu --run-mode=<val> # Set current diagnostics run mode\n\n"); } struct option longopts[] = { @@ -417,7 +423,8 @@ } while (1) { - opt = getopt_long(argc, argv, "s::d::S::r::", longopts, &option_index); + opt = getopt_long(argc, argv, "s::d::S::r::", longopts, + &option_index); if (opt == -1) break; |