[Gmp-commit] /var/hg/www: Update plans file.
mercurial at gmplib.org
mercurial at gmplib.org
Sat Feb 9 10:25:06 CET 2013
details: /var/hg/www/rev/270cc7a0eacf
changeset: 24:270cc7a0eacf
user: Torbjorn Granlund <tege at gmplib.org>
date: Sat Feb 09 10:25:03 2013 +0100
description:
Update plans file.
diffstat:
devel/GMPng.html | 42 ++-
testclient.sh | 601 -------------------------------------------------------
2 files changed, 23 insertions(+), 620 deletions(-)
diffs (truncated from 689 to 300 lines):
diff -r 0da054ca8f84 -r 270cc7a0eacf devel/GMPng.html
--- a/devel/GMPng.html Thu Feb 07 20:48:52 2013 +0100
+++ b/devel/GMPng.html Sat Feb 09 10:25:03 2013 +0100
@@ -270,7 +270,7 @@
</font>
-<h2> Intra-library references </h2>
+<h2> Calls and linkage </h2>
<p> Intra-library references, i.e., function calls and reads/writes of global
variables, use various access structures like GOT and PLT. These are not
@@ -279,13 +279,20 @@
here the compiler adds a .private_extern to the declaration of a function,
but does not change calls [until supposedly in the final link].)
+ <p> This can also be used to enforce the policy that certain functions ae
+ really internal to the library. Depending on how one sees such policies,
+ such enforcing might be good or bad. We should probably use it with care.
+ Calls that are declared with attribute "internal" will be the fastest, since
+ then the GOT pointer can be assumed correct, which is a technical reaon XXX
+
<font color="#a00000">
- <p> Fix calls to strictly internal routines. <br>
- Fix references to strictly internal variables (e.g., alloc func pointers). <br>
+ <p> Fix calls to strictly internal routines, using the "internal" attribute,
+ e.g. allowing compiler suppression of GOT setup code. <br> Fix references to
+ strictly internal variables (e.g., alloc func pointers).
</font>
<font color="#a00000">
- <p> Fix calls to remaining mpn routines (perhaps using hidden+alias). <br>
+ <p> Fix calls to remaining mpn routines (perhaps using hidden+alias).
</font>
<font color="#a00000">
@@ -293,6 +300,17 @@
The table itself needs a GOT and each entry points to a PLT entry...
</font>
+ <font color="#a00000">
+ <p> Use <code>restrict</code> keyword in most <code>mpn</code> functions.
+ </font>
+
+ <font color="#a00000">
+ <p> Use <code>visibility hidden</code> for <b>all</b> symbols used
+ internally, then make documented symbols visible with alias. See star
+ hacker <a href="http://www.airs.com/blog/archives/307" style="color:
+ rgb(160,0,0)">Ian Lance Taylor's explanations</a>.
+ </font>
+
<h2> Configuru </h2>
@@ -348,20 +366,6 @@
</font>
-<h2> Annotations for efficiency </h2>
-
- <font color="#a00000">
- <p> Use <code>restrict</code> keyword in most <code>mpn</code> functions.
- </font>
-
- <font color="#a00000">
- <p> Use <code>visibility hidden</code> for <b>all</b> symbols used
- internally, then make documented symbols visible with alias. See star
- hacker <a href="http://www.airs.com/blog/archives/307" style="color:
- rgb(160,0,0)">Ian Lance Taylor's explanations</a>.
- </font>
-
-
<h2> Misc </h2>
<font color="#a00000">
@@ -389,7 +393,7 @@
</div>
-<font size="-4">Last modified: 2012-12-25 </font>
+<font size="-4">Last modified: 2013-01-02 </font>
<div id="footer">
<table cellpadding=0 width="100%" bgcolor="#e8e8e8">
<tr>
diff -r 0da054ca8f84 -r 270cc7a0eacf testclient.sh
--- a/testclient.sh Thu Feb 07 20:48:52 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,601 +0,0 @@
-#!/bin/sh
-
-# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Torbjorn Granlund.
-# All rights reserved.
-
-# This is unreleased software. You have no right whatsoever to use it, run it,
-# examine it, or distribute it.
-
-# If you have a copy of this software, please notify tg at gmplib.org immediately.
-
-
-SNAME=gmp-restricted-snap
-HTTPHOST=130.237.222.241
-UNCOMPRESS=bunzip2
-EXT=bz2
-MAXTUNETIME=4000
-SUPPRESS_tune=false
-SUPPRESS_try=false
-SUPPRESS_demos=false
-TUNEPROGS=allprogs
-EXEEXT=
-MDEP_OPTIONS=""
-
-set +e # experiment addressing testremote.sh problems
-
-unset LC_CTYPE
-unset LANG
-
-if [ x$DOMAINNAME = x ]
- then
- eval `grep DOMAINNAME= $HOME/.profile`
- fi
-
-HOSTNAME=`hostname | tr [A-Z] [a-z] | tr -d '\r'`
-
-while true
- do
- case "$1" in
- --hostname=* | -hostname=* | hostname=*)
- HOSTNAME="`echo $1 | sed 's;.*=;;'`"
- shift
- ;;
- --abi=* | -abi=* | abi=*)
- ABI="`echo $1 | sed 's;.*=;;'`"
- ABIopt="ABI=$ABI"
- shift
- ;;
- --fat | -fat | fat)
- HOSTNAME="tjock$HOSTNAME"
- MDEP_OPTIONS="--enable-fat"
- TUNEPROGS=speed # just build 'speed' not 'tuneup'
- SUPPRESS_try=true
- shift
- ;;
- *)
- break
- ;;
- esac
- done
-
-case $HOSTNAME in
- *.*)
- HOSTFULLNAME=$HOSTNAME
- BUILDDIR=`echo $HOSTNAME | awk -F. '{print $1}'` ;;
- *)
- HOSTFULLNAME=$HOSTNAME.$DOMAINNAME
- BUILDDIR=$HOSTNAME ;;
-esac
-
-[ -n "$ABI" ] && BUILDDIR="$BUILDDIR-$ABI"
-
-# Try to increase stack to allowed limit, but not more than 65536
-stacklim=`ulimit -H -s 2>/dev/null`
-case "$stacklim" in
- [0-9]*)
- if [ $stacklim -gt 65536 ]
- then stacklim=65536
- fi
- ;;
- *)
- stacklim=65536
- ;;
-esac
-ulimit -s $stacklim 2>/dev/null
-
-# Try to increase data segment as much as possible
-datalim=`ulimit -H -d 2>/dev/null`
-case "$datalim" in
- ?*) # if we got something back, try using it as limit
- ;;
- *) # default to something that ought to work on most systems
- datalim=262144;;
-esac
-ulimit -d $datalim 2>/dev/null
-
-ulimit -c 0 # no core dumps, please
-
-case $HOSTFULLNAME in
- *)
- MUNGE_PROFILE=true;;
-esac
-
-# Munge profile unless we already did
-if [ x$1 = xagain ]
- then
- shift
- else
- $MUNGE_PROFILE && test -f /etc/profile && . /etc/profile
- $MUNGE_PROFILE && . $HOME/.profile
- fi
-
-RUNMAKE=true
-
-# Choose "mailx" if it exists, else "mail"
-MAIL=mailx
-found_mailx=false
-for i in `echo $PATH | sed 's/:/ /g'`
- do
- if [ -x $i/$MAIL ]
- then found_mailx=true
- fi
- done
-if $found_mailx; then true
- else
- MAIL=mail
- fi
-
-ENABLE_CXX=--enable-cxx
-TUNEUPARGS="-f 500000 -p 50000"
-
-SRC=$HOME/prec/gmp-snap
-OBJDIR=/var/tmp/gmp-obj
-
-if [ ! -d "$OBJDIR" ]
- then if [ -d $HOME/prec/gmp-obj ]
- then OBJDIR=$HOME/prec/gmp-obj
- fi
- fi
-
-mkdir $OBJDIR 2>/dev/null
-
-# Let fast machines run more tests...
-GMP_CHECK_FFT=26; export GMP_CHECK_FFT
-GMP_CHECK_REPFACTOR=1; export GMP_CHECK_REPFACTOR
-
-# OSes with lame "make", where we need gmake:
-case `uname`-`uname -r` in
- IRIX-* | \
- IRIX64-* | \
- HP-UX-* | \
- FreeBSD-* | \
- NetBSD-1.[0-5]* | \
- SunOS-* | \
- OSF1-* | \
- NOMACHINE)
- MAKEPROG=gmake;;
- *)
- MAKEPROG=make;;
-esac
-
-# Machines that cannot build cxx
-case $HOSTFULLNAME in
- ev56.gmplib.org | \
- *dos64.gmplib.org | \
- louis.sics.se | louis.sics.se.sics.se | \
- zeipel.astro.uu.se | \
- agnesi.math.su.se | \
- herschel.math.su.se | \
- moufang.math.su.se | \
- noether.math.su.se | \
- chatelet.math.su.se | \
- gcc54.fsffrance.org | \
- gcc42.fsffrance.org | \
- gcc52.fsffrance.org | \
- deluxe.fsffrance.org | \
- ps3gccfarm.fsffrance.org | \
- fast.homeunix.org | \
- kolga.bibsys.no | \
- NOMACHINE)
- # ev56: throw/catch segfaults (tried many gcc versions)
- # dos64: iostream unavailable as shared lib
- # louis: bogus gcc 2.9-aix51-020209 considered too old
- # agnesi,herschel,moufang: throw/catch crashes
- # noether: segfaults in several tests (not isolated)
- # gcc54: All C++ test segfault
- # gcc42: /usr/lib/gcc/mipsel-linux-gnu/4.3.1/libstdc++.so: could not read symbols: File in wrong format [happens with both -mabi=n32 and -mabi=64]
- ENABLE_CXX="";;
-esac
-
-case `uname` in
- AIX)
- # libtool limitations for AIX allow shared *or* static to be built
- # FIXME: is that still true?
- MDEP_OPTIONS="$MDEP_OPTIONS --disable-shared";;
- *)
- ;;
-esac
-
-case $HOSTFULLNAME:$ABI in
- *bobcat.gmplib.org:32 | \
- *element.gmplib.org:32 | \
- *hehe.gmplib.org:32 | \
- *nana.gmplib.org:32 | \
- *panther.gmplib.org:32 | \
- *repentium.gmplib.org:32 | \
- *shell.gmplib.org:32 | \
- *tiger.gmplib.org:32 | \
- *tutu.gmplib.org:32 | \
- *tigris.csc.kth.se:32 | \
- NOMACHINE)
- ENABLE_CXX=""
- MDEP_OPTIONS="$MDEP_OPTIONS --disable-shared"
More information about the gmp-commit
mailing list