Merge branch 'master' of ssh://vps.jankratochvil.net/var/lib/git/nethome
authorroot <jan.kratochvil@redhat.com>
Sat, 3 Jan 2015 15:40:58 +0000 (16:40 +0100)
committerroot <jan.kratochvil@redhat.com>
Sat, 3 Jan 2015 15:40:58 +0000 (16:40 +0100)
32 files changed:
.bashrc
.inputrc
.muttrc
.muttrc.addons
.ssh/config
.ssh/known_hosts
.vimrc
bin/avitowebm [new file with mode: 0755]
bin/build
bin/changelogget
bin/dashtopatch
bin/diffgdb
bin/diffgdbday
bin/errs12
bin/errs2
bin/expect-read1 [new file with mode: 0755]
bin/exx
bin/gdbpatchno
bin/git-bisect-run
bin/hammock
bin/mockrun
bin/mocksetup
bin/mutt_ldap_query
bin/runtest-extserver [new file with mode: 0755]
bin/runtest-extserver-m32 [new file with mode: 0755]
bin/runtest-gdbserver-read1
bin/runtest-read1
public_html/cgi-bin/aladin [new file with mode: 0755]
src/INSTALL
src/orphanripper.c
src/read1.c [new file with mode: 0644]
src/runtest-gdbserver/boards/native-gdbserver.exp

diff --git a/.bashrc b/.bashrc
index f401ff2..d01df08 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -7,6 +7,8 @@ if [ -n "$_home_short_dotbashrc_norc" -o "${TERM#norc-}" != "$TERM" ];then
        export _home_short_dotbashrc=true
 fi
 
+export PERL5LIB="$HOME/perl5/lib/perl5/`uname -m`-linux-thread-multi:$HOME/perl5/lib/perl5";
+
 # "$PS1" for interactive shells detection.
 if [ -n "$PS1" -a -z "$_home_short_dotbashrc" ];then
        # We permit later reinitialization by unsetting it.
@@ -96,11 +98,6 @@ _bash_profile_addpath    -s CVSROOT "$HOME/pserver/cvs"
 _bash_profile_addpath    -s CVSROOT "$HOME/cvs"
 _bash_profile_addpath    -s ANT_HOME "/usr/local/ant"
 
-for _perldir in $(eval "echo $HOME{/share,/lib{,64}}/perl5{/site_perl,}");do
-       _bash_profile_addpath -f PERL5LIB "$_perldir"
-       done
-unset _perldir
-
 unset -f _bash_profile_addpath
 _bash_profile_addpath_fini
 unset -f _bash_profile_addpath_fini
@@ -156,24 +153,32 @@ eval '
        function gdbn { gdb -nx --command=~/.gdbinit "$@"; }
        function hd { od -Ax -tx1; }
        function wget {(unset wget; ( wget --no-check-certificate "$@"; ); );}
+       function ucwkbd { setxkbmap -layout us,cz -variant ,ucw -option grp:caps_switch; }
 '
 
+unset command_not_found_handle
+shopt -u progcomp # Disable 'bash-completion' rpm
 export IGNOREEOF=10
 # '2>/dev/null' to prevent: TMOUT: readonly variable
 [ -n "$SSH_TTY" ] && export TMOUT=900 2>/dev/null
 export EDITOR='vim'
-[ -x /bin/less ] && export PAGER='/bin/less -MMh5cis'
-export PERL_MM_OPT=""
-[ "$UID" -ne 0 ] && export PERL_MM_OPT="$PERL_MM_OPT PREFIX=$HOME"
+#broken: [ -x /bin/less ] && export PAGER='/bin/less -rMMh5cis'
+
+export PERL_LOCAL_LIB_ROOT="$HOME/perl5";
+export PERL_MB_OPT="--install_base $HOME/perl5";
+export PERL_MM_OPT="INSTALL_BASE=$HOME/perl5";
+# Sometimes needed in non-interactive .bashrc.
+# Unconditionally it would break quilt.
+export PATH="$HOME/perl5/bin:$PATH";
+
 for file in $HOME/.bookmarks.html;do
        export WWW_HOME="file://$HOME/"
        [ -r $file ] && export WWW_HOME="file://$file"
        done
-export GREP_OPTIONS="--binary-files=without-match --directories=skip"
-if echo x|GREP_OPTIONS="--exclude=y" grep -q x 2>/dev/null;then
-       export GREP_OPTIONS="$GREP_OPTIONS --exclude=tags --exclude=TAGS --exclude=ChangeLog* --exclude=*.svn-base --exclude=*~"
+if echo x|grep --exclude=y -q x 2>/dev/null;then
+       alias grep='grep --exclude=tags --exclude=TAGS --exclude=ChangeLog* --exclude=*.svn-base --exclude=*~'
        # FIXME: grep(1) ignores subdirectories for --exclude.
-       #export GREP_OPTIONS="$GREP_OPTIONS --exclude=testsuite --exclude=.pc --exclude=.svn --exclude=CVS --exclude=po"
+       # --exclude=testsuite --exclude=.pc --exclude=.svn --exclude=CVS --exclude=po
 fi
 if [ -n "$PS1" ];then  # set only in interactive sessions
        if [ ! -f /MOCK ];then
@@ -230,6 +235,7 @@ export LC_COLLATE=C
 # http://lists.gnu.org/archive/html/bug-readline/2009-09/msg00006.html
 # 2>/dev/null for possible: stty: standard input: Inappropriate ioctl for device
 stty -echoctl 2>/dev/null
+export GIT_MERGE_AUTOEDIT=no
 
 function wclines { awk '{x[$0]++}END{for (i in x) print x[i]"\t"i}'; }
 # SunOS does not support "-m"
@@ -245,7 +251,7 @@ function finame { find . -false `
        `; }
 function mkcd { mkdir -p "$1"; cd "$1"; }
 function pushdmk { mkdir -p "$1"; pushd "$1"; }
-function rsync {(unset rsync; n rsync -a -v -e ssh --progress --stats --inplace --rsync-path='nice -n20 ionice -c3 rsync' "$@"; );}
+function rsync {(unset rsync; n rsync -c -a -v -e ssh --progress --stats --inplace --rsync-path='nice -n20 ionice -c3 rsync' "$@"; );}
 function tohex { od -An -txC|tr -d '\n '|tr 'a-f' 'A-F';echo; }
 function edall {
        find -type f|while read -r i;do
@@ -333,6 +339,7 @@ function sourcewarecvscheckout {(set -ex
        );}
 function gdbgitclone { git clone git://sourceware.org/git/gdb.git gdb-git; }
 function binutilsgitclone { git clone git://sourceware.org/git/binutils.git binutils-git; }
+function archergitclone { git clone git://sourceware.org/git/archer.git archer-git; }
 function gdbcvscheckout { sourcewarecvscheckout gdb; }
 function binutilscvscheckout { sourcewarecvscheckout binutils; }
 function uri_escape   { perl -MURI::Escape -le '$_=<>;chomp;print uri_escape   $_;'; };
@@ -373,6 +380,7 @@ function gpg {(unset gpg; http_proxy= all_proxy= HTTP_PROXY= ALL_PROXY= gpg "$@"
 ulimit -S -c 0
 set +H
 shopt -s mailwarn
+shopt -s direxpand
 unset OPTIND
 umask 022
 
index 1149bde..cc6af3d 100644 (file)
--- a/.inputrc
+++ b/.inputrc
@@ -1,2 +1,3 @@
 $include /etc/inputrc
 set bell-style none
+control-t: forward-search-history
diff --git a/.muttrc b/.muttrc
index badc091..9f32024 100644 (file)
--- a/.muttrc
+++ b/.muttrc
@@ -2,14 +2,11 @@ source ~/.muttrc.addons
 source ~/.muttrc.9000
 source ~/.muttrc.priv
 
-#set sendmail="/home/lace/bin/sendmail -oem -oi"
-#set from="prog-mutt@jankratochvil.net"
-#set from="lace@jankratochvil.net"
-set from="jan.kratochvil@redhat.com"
+set from="jan@jankratochvil.net"
 set envelope_from
 set query_command="${HOME}/bin/mutt_ldap_query '%s'"
 
-#alternates "^(.*@(.*\\.)?jankratochvil\\.net|short(\\+[^@]*)?@(ucw\\.cz|atrey\\.karlin\\.mff\\.cuni\\.cz|k332\\.feld\\.cvut\\.cz|(alcor|amiga)\\.ericsson\\.cz|short\\.mj\\.gts\\.cz|short\\.short|(.*\\.)?(vellum|valley)\\.cz)|.*@((.*\\.)?short\\.ucw\\.cz|dialup\\.netbeans\\.com|kratochvil\\.suse\\.cz)|kratochvil(\\+[^@]*)?@(users\\.sourceforge\\.net|(.*\\.)?suse\\.cz)|lace(\\+[^@]*)?@valinux\\.co\\.jp|(jan\\.kratochvil|jkratoch)(\\+[^@]*)?@redhat\\.com|jkratoch@sourceware.org)$"
+alternates "^(.*@(.*\\.)?jankratochvil\\.net|short(\\+[^@]*)?@(ucw\\.cz|atrey\\.karlin\\.mff\\.cuni\\.cz|k332\\.feld\\.cvut\\.cz|(alcor|amiga)\\.ericsson\\.cz|short\\.mj\\.gts\\.cz|short\\.short|(.*\\.)?(vellum|valley)\\.cz)|.*@((.*\\.)?short\\.ucw\\.cz|dialup\\.netbeans\\.com|kratochvil\\.suse\\.cz)|kratochvil(\\+[^@]*)?@(users\\.sourceforge\\.net|(.*\\.)?suse\\.cz)|lace(\\+[^@]*)?@valinux\\.co\\.jp|(jan\\.kratochvil|jkratoch)(\\+[^@]*)?@redhat\\.com|jkratoch@sourceware.org)$"
 
 alias gdb gdb@sourceware.org
 alias gdbpat gdb-patches@sourceware.org
index 92ff0ad..09c5352 100644 (file)
@@ -4,10 +4,10 @@
 # '!' an '=' are expand only as the very first characters.
 # regexes are processed.
 # '$' must follow alpha or '{' to get interpreted as a variable.
-folder-hook ""                   set sort=threads
-folder-hook "!$"                 set sort=mailbox-order;push "*<Tab>"
-folder-hook "=(=|err|rhbug)"     set sort=mailbox-order;push "*<Tab>"
-folder-hook "=(sent|spam|input)" set sort=mailbox-order;push "*"
+folder-hook ""                   set sort=threads;set pager_index_lines=10
+folder-hook "!$"                 set sort=mailbox-order;push "*<Tab>";set pager_index_lines=0
+folder-hook "=(=|err|rhbug)"     set sort=mailbox-order;push "*<Tab>";set pager_index_lines=0
+folder-hook "=(sent|spam|input)" set sort=mailbox-order;push "*";set pager_index_lines=0
 bind index <Tab> next-new
 bind pager <Tab> next-new
 bind index <Esc><Tab> previous-new
@@ -56,6 +56,8 @@ unset markers
 # Mailman; FIXME: Patch Mutt to extend it multiline.
 color body brightred default "^_______________________________________________\r?\n$"
 macro index <Esc>m "l~N|~O\n"
+macro pager <Esc>f ":set pager_index_lines=0\n
+macro pager <Esc>g ":set pager_index_lines=10\n"
 
 
 # Mail command
index f4b7378..18fde99 100644 (file)
@@ -80,7 +80,10 @@ Host rawhide64.englab.brq.redhat.com shell.lab.bos.redhat.com
 User jkratoch
 Host tofu.yyz.redhat.com
 User hudson
-Host *.test.redhat.com *.lab.boston.redhat.com *.rhts.boston.redhat.com *.lab.bos.redhat.com *.eng.bos.redhat.com *.rhts.bos.redhat.com *.z900.redhat.com *.cambridge.redhat.com *.gsslab.rdu.redhat.com prdell.brq.redhat.com *.englab.brq.redhat.com *.eng.brq.redhat.com *.rhts.eng.rdu.redhat.com *.rhts.eng.nay.redhat.com *.s390.bos.redhat.com
+Host power05.str.redhat.com
+User root
+Port 30
+Host *.test.redhat.com *.lab.boston.redhat.com *.rhts.boston.redhat.com *.lab.bos.redhat.com *.eng.bos.redhat.com *.rhts.bos.redhat.com *.z900.redhat.com *.cambridge.redhat.com *.gsslab.rdu.redhat.com prdell.brq.redhat.com *.englab.brq.redhat.com *.eng.brq.redhat.com *.rhts.eng.rdu.redhat.com *.rhts.eng.nay.redhat.com *.s390.bos.redhat.com dhcp45.install.bos.redhat.com
 User root
 UserKnownHostsFile /dev/null
 Host cvs.fedora.redhat.com sources.redhat.com ovpn-phx2.redhat.com 209.132.183.3
@@ -97,6 +100,8 @@ User jkratoch
 #ProxyCommand /usr/bin/ssh host0 /usr/bin/ssh 209.132.183.3 exec nc %h %p
 ###bastion:
 ###ProxyCommand /usr/bin/ssh -W %h:%p 209.132.183.3
+# iptables -t nat -A OUTPUT -p tcp -d 10.10.36.184 --dport 6667 -j DNAT --to-destination 127.0.0.1:6671
+# iptables -t nat -A OUTPUT -p tcp -d 10.4.122.10  --dport 25   -j DNAT --to-destination 127.0.0.1:3025
 StrictHostKeyChecking no
 NumberOfPasswordPrompts 6
 Host shell
@@ -116,7 +121,9 @@ HostKeyAlias barstool.build.redhat.com
 #User jkratoch
 #Port 3422
 #HostKeyAlias cvs.devel.redhat.com
-Host git.fedorahosted.org
+Host git.fedorahosted.org fedorahosted.org
+User jankratochvil
+Host *.fsffrance.org
 User jankratochvil
 
 Host virt
@@ -125,6 +132,7 @@ User root
 UserKnownHostsFile /dev/null
 StrictHostKeyChecking no
 Compression no
+HostName 172.20.0.2
 
 Host bombadil.infradead.org
 User lace
index e5d985b..2209c30 100644 (file)
@@ -487,6 +487,9 @@ neutron.fjfi.cvut.cz,147.32.8.224 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAro3U5tj/ks
 83.148.13.102 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAn3gjAPN/iHzWlBOkHZzihR1T/q+CiHjGBWKfJp24tK1qIGT0W6P/zIIRcF5jL7/Cjvh9TfIS9QGlxsqzBoiVW6enoQWM9gb1odEt17nS/bxUoillfS+mMzXcE4RuNlS+vMnTieSnNykZ3dSnYo9vot6m+pkpRSTFkWl2cRweMsRAb0sDQyqL4UqocLM79g5spMmtSLIGvc054mwdJE6Qttn0C7n16AGhDonfYSDkjY0s2U76yFdzDF0YmXRFatC4ZF8tJV7JYU3vVTZGTmQ3Nqe4SrwO1hqrop51TXpniL9Zt9K7X6eTgdeszQ58IGQt32ZTOeCjegnXCnnD8OIJFQ==
 195.47.113.193 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAn3gjAPN/iHzWlBOkHZzihR1T/q+CiHjGBWKfJp24tK1qIGT0W6P/zIIRcF5jL7/Cjvh9TfIS9QGlxsqzBoiVW6enoQWM9gb1odEt17nS/bxUoillfS+mMzXcE4RuNlS+vMnTieSnNykZ3dSnYo9vot6m+pkpRSTFkWl2cRweMsRAb0sDQyqL4UqocLM79g5spMmtSLIGvc054mwdJE6Qttn0C7n16AGhDonfYSDkjY0s2U76yFdzDF0YmXRFatC4ZF8tJV7JYU3vVTZGTmQ3Nqe4SrwO1hqrop51TXpniL9Zt9K7X6eTgdeszQ58IGQt32ZTOeCjegnXCnnD8OIJFQ==
 147.32.10.175 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAro3U5tj/kskJyNHuUFWO+7GmkBlY8pOQYxmq5hjzZscsP/LH7KQWBH3rzNMYfnf6iGc3V8E1Q+EQFaWWIJXjK8ZuMT/9h2LErEnrGymPR7/A2IRaEuYUsUNKYKbyHEYP9e26ZeUrRlhBYzT5MUMAI5gIJtqKpq2MKSY1eYnoc+0=
+ap6,192.168.66.6 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwClFqcSMD6M/281yAWM/ysxrb8Mz0bYnRqNDVLLmcGpwI5tJNAsUrW4nD+oSNM7W7p6peBTr+H6OJe+0lfKLUkFvlb3ejFeC3I/mNOHiLDUcDQ0YXHbvFvccX03cRHd+vg/kTgU9AD7Tcn326pJJD5/FE3v90u7ZGJmIuJp/7r+thnz
+deda ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAv+cVNFU4D0WswBrYxKYxD2uO0Vipba4aFsCASN3nPDtNxMwiUbie5/u2aq4ud/vdFPrJDC7MJnBQ2NMLhtLcXSuLjLfJMmdo7qW3FG0AURccOtWyyuVA3iO8XXEI9/GqOGkd+XNYt95PPKyfNloUdb0wcfaP6gA8NmaudrbCa/YeVrEnCHhH1HelR3IQ7pnkkZLx7SaYwiyU0XnVnd2vOxmm+tKv6WofvZfZOYlN/xJFQ5epjR58p3FVPYFkZIl2yTNE9EAd6zPiez0ZS5SAGtCeyfJ6IBT3jfmSF8ulHLV76e14NcR8CyFecOVswz6QJIlIMkrknK9HQTa9w1XQiw==
+ap6,192.168.66.6 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwClFqcSMD6M/281yAWM/ysxrb8Mz0bYnRqNDVLLmcGpwI5tJNAsUrW4nD+oSNM7W7p6peBTr+H6OJe+0lfKLUkFvlb3ejFeC3I/mNOHiLDUcDQ0YXHbvFvccX03cRHd+vg/kTgU9AD7Tcn326pJJD5/FE3v90u7ZGJmIuJp/7r+thnz
 deda ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAv+cVNFU4D0WswBrYxKYxD2uO0Vipba4aFsCASN3nPDtNxMwiUbie5/u2aq4ud/vdFPrJDC7MJnBQ2NMLhtLcXSuLjLfJMmdo7qW3FG0AURccOtWyyuVA3iO8XXEI9/GqOGkd+XNYt95PPKyfNloUdb0wcfaP6gA8NmaudrbCa/YeVrEnCHhH1HelR3IQ7pnkkZLx7SaYwiyU0XnVnd2vOxmm+tKv6WofvZfZOYlN/xJFQ5epjR58p3FVPYFkZIl2yTNE9EAd6zPiez0ZS5SAGtCeyfJ6IBT3jfmSF8ulHLV76e14NcR8CyFecOVswz6QJIlIMkrknK9HQTa9w1XQiw==
 jindriska.tnsmi.cz,193.165.74.190 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxzIx6EJkOewTQMfuwFVlYUok0+RiJ6vwIU+73RwQPdU/YIzKqXFUtbmtWkASBhGzGBnXCNjQzyzFEfohJQ80f5NaQ1lP+fUAMtd5a+d8BgDqjvoNB2sUyuF6PPsulURnDSY4qW8gdX1Q+hWIqY4IyJNSQHUSr7/42e0bpzofmrGrFrA/FyUZ3uHrkmNAlaOAJ6c2b/xFuMi27Nt5xGQzXNUAyDoxBdODwZHLCojG2KTFicAPNqRkzyqbjderDfxo1hNfPs/oNfKLlIIgkuHczaKZi3XqzT7dlTK8R+26KqdeUgq5gTD+YgzECMeDZs/sT3NNlSulKZ0YMXypqiAQPQ==
 manon.vellum.cz,89.250.243.243 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvcR7MMPt3Waftl/VQN6rgrIMfWFwqBmMy9+rL8ED9orG/ssUkizqKjzygI6Njuh4/wzuBOA6RlyB2qYThJx8l3UFszzvQJpTcn+CfS1knSoX18oaF92ezJNL7EXEuAKflyWMXjgcG5IMxtjUcEurgX2GP2RndKltDceQuf6PpN2Hm0yN8q8Ri5TkLH4sGrcU+55MBURb2CINN7wuAibVNH15N+fy5AX3zPTDcjjBMlMqi20YKoLUB3bZPxArqIi7fSMSfb7+UTuuakY/TU1au9BWizaai4Othi2CwusMfhxukW2W9GKVpJc4rMbYlq/d/8mIeRgHsIqGUaUa9mFg0w==
@@ -518,6 +521,13 @@ cindy.vellum.cz,195.144.124.19 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvp/yjJeZILi5r
 rallye.panda.cz,217.11.227.56 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxFaLaa/pLDVw/jXmkzBIdaZNJowfUJ19bB1dInGJpd4Ji8vGUMGeNLUTEb2xo7AqnHC6hc6f38ub6Q6of7MxEorFLH1SRsYSt2SkUHhJTddJnJHP7fbZUFxm6MhEbDkB109ecUCZpF3SEWqlCosK7kBCXTgawJuQP4P6xVX2QQ8=
 gwold.jklabs.cz ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAy6hLRrIbDATf1nlDmX1SlefKJC4r++tQgVHkfu/Bf0pg6UddI6fEd0zqKSAbXTIXWexcgtdz38NXX8HCqoiQo4GIkT0RcThJOK2oa3g2bvwqo3vDeuEvB30yZkJKHqoU6vKTHZDeMmk6ir1wXQb6ypLLQt0prCAzq3CkunZuwVE=
 2a01:8c00:ff00:5d::2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw51frW/O9Pi2f775Vt8IOHXTl1N8s1lUNzZ7twUac1Fjn4/wpGBBbO+NaF7snjMIYdUdRdC6cuqISVs46SOysjO6DXvRuCnLS+96nzmf/rgmZkyfuhoerhQ7+mAXDb00Uoa6mdWUgaAGUEHd7lRdt3Ix2NnlFHVwb5oCbJV/t/pq25H+ADP6XT/Vv2qtaqJWRA/eSMAX84X0b/wdv+uXlWUlv5oo7VentLMncwqV/lYy3U4y8QnoU0NNDxMEj4fcoJVVEVUxgxTD/5ng5hwd5sfUdxHDenEli6zH5TjwENxRHqqoUFAOqBgVLkRBhwlyQgCQ3+mkw0nPA9bIZQXyrw==
+2a02:2b88:2:1::270:0 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw51frW/O9Pi2f775Vt8IOHXTl1N8s1lUNzZ7twUac1Fjn4/wpGBBbO+NaF7snjMIYdUdRdC6cuqISVs46SOysjO6DXvRuCnLS+96nzmf/rgmZkyfuhoerhQ7+mAXDb00Uoa6mdWUgaAGUEHd7lRdt3Ix2NnlFHVwb5oCbJV/t/pq25H+ADP6XT/Vv2qtaqJWRA/eSMAX84X0b/wdv+uXlWUlv5oo7VentLMncwqV/lYy3U4y8QnoU0NNDxMEj4fcoJVVEVUxgxTD/5ng5hwd5sfUdxHDenEli6zH5TjwENxRHqqoUFAOqBgVLkRBhwlyQgCQ3+mkw0nPA9bIZQXyrw==
+90.176.143.205 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAucNnxxwIhd1xrEB3e9eTHhQPhFM+gYDwnpbNaSROqyJYWC877OzKxvVq80IliVFaebTdZIjZlFe+HAeBQAde/NF7gazsgiqWPBstftor4uWEBL+KcQlql5SvUuSyeGIxYcjXrYexF44ifvoVo4EB8xUUREL+K5ChiUAespFXiAE=
+deda2.jankratochvil.net,2a02:2b88:2:1::270:72 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq/nsJZmVod4dhP6+4or/V21OBtsTc5sHUu7cSSEs+hHQ6Y4BjH5V5XxWHTMccxc39RSqcLQFmm9/JVJDp5gmgXj5FkBrmfXbKq/xeQ2GCbJN2PHtJlUQJQqhxuK649wm7nK4AFuyn7IZ8OxGQ0oaFR65Wp+263SkNg35eqpIuaZ5Wcdp3PR4u9fYmPjGm5eQrPx8mpGxHe6/PDzDJf7nGTdyvRvYBV2wer5J/F6xTPDdI0FngWNFHJ8CZ0kUDiwMN3lq0UflJFZmumhApuB8hE7RXmijEMt2bJ7RITueuy50QPkr4xJmGxG3NMI/EoqzDmV7R5LAsaviX7EPC2eF4w==
+host1.jankratochvil.net,2a02:2b88:2:1::270:1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqO8QNvnaRm2fAEic2FTZwpmBu9yQ8UrR5J1FmQc+YpZzXxOnUYBZpsjdvT23c4Ru5DnUyPprilJm7GbdVskNfIxXAV/CT/DFRaB83YRsxIjmH0GKAwZDlH+NpwZwVTveSCkoQelQn4kDaWnHfF3FI/qa8T3oSj9kp5Ijf1qZgsECtuOj8emNbWWnMFVqEpZTQ4Sn/JbhhKF2HVHxrdpOerlW5EwiuTBxhw/AFtouzlWsmEZfFaxPRCtq0tUr7Lf8ykbI3sOGTRmbr0SXE9A9IWvR1dvtwtIE/+PKDTNgOUnPBusGPe9Rc/8RTCzAFT5hMGTXia0UY3MQut99hgbRlw==
+deda,2a02:2b88:2:1::270:70 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy9NMlp2qCNrncOIi8TxTZdgCH0JFaOcVJaAmnxVuX7zOevyoSA8w7RjCLfV7trJjWUUrY+/AfQZn2Jw9gk+cOWvlfr34jOD26C+JXFwl4vxy9ywU+uuIohTq1ldlKnoYpv0DMhZf+FBq4jQ2nUkfMw76I0XH9jmTpXSr0tgkQRRdmkclXTjUlIPA1bJfvlnDdf7HC+rcFH2uLTSLDm6mjtxUgCfvB+AK0YwU+7mLVTPkW5W1JmcTdSXxwBNn/XxGHXnjcHZRCvXaGMwPggkvJLGnbUJKSwn7Fvl2mXdWkRi9b0he91vsU+YZ5CwVjgOOKJldBvapDqd+01YCaoowkQ==
+192.168.76.1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw51frW/O9Pi2f775Vt8IOHXTl1N8s1lUNzZ7twUac1Fjn4/wpGBBbO+NaF7snjMIYdUdRdC6cuqISVs46SOysjO6DXvRuCnLS+96nzmf/rgmZkyfuhoerhQ7+mAXDb00Uoa6mdWUgaAGUEHd7lRdt3Ix2NnlFHVwb5oCbJV/t/pq25H+ADP6XT/Vv2qtaqJWRA/eSMAX84X0b/wdv+uXlWUlv5oo7VentLMncwqV/lYy3U4y8QnoU0NNDxMEj4fcoJVVEVUxgxTD/5ng5hwd5sfUdxHDenEli6zH5TjwENxRHqqoUFAOqBgVLkRBhwlyQgCQ3+mkw0nPA9bIZQXyrw==
+deda.jankratochvil.net ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy9NMlp2qCNrncOIi8TxTZdgCH0JFaOcVJaAmnxVuX7zOevyoSA8w7RjCLfV7trJjWUUrY+/AfQZn2Jw9gk+cOWvlfr34jOD26C+JXFwl4vxy9ywU+uuIohTq1ldlKnoYpv0DMhZf+FBq4jQ2nUkfMw76I0XH9jmTpXSr0tgkQRRdmkclXTjUlIPA1bJfvlnDdf7HC+rcFH2uLTSLDm6mjtxUgCfvB+AK0YwU+7mLVTPkW5W1JmcTdSXxwBNn/XxGHXnjcHZRCvXaGMwPggkvJLGnbUJKSwn7Fvl2mXdWkRi9b0he91vsU+YZ5CwVjgOOKJldBvapDqd+01YCaoowkQ==
 reserved-8-250.bne.redhat.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYJf5XsvlsK849UfMAZxRyQCoHA6M0K++UHyc5hEtKYaFXeTw69haAt5FmT4oS2a36Qltu+RLsUm0bLWjZgcUesUoP0OLeaFeqqSDdjOy5vmH6GCQ9BBTofBnNn4BGLigid17tZEdaEkaDzK2r1pcnK+5cwdr6v7u5Fq2Cat28lKLN2Rrn1a/uip9LVPuGQ4+W1otwn1OhSy/1O66M9N5IBMxwCUBH1/HPHV128A3rxcRCAkMpVDqDp7CWCg2JrEaHNQZN3V/RbaUMf30f1YUWqvK+aBrTVcELIS6ljtuDVSd+lEHh+N5pL9OylWxBRed1MX9D8YwcjWj4q/An6J3L
 10.16.36.33 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsonbfVlxd47NixVVdDZI/EqnVSU+EOSSoclbwI+BuQZSUhAvGnSYa07WziVc8q3wjpN4ZfHHHqIKqOWLHb8AsXoCyEDvIek/hD3IxtkWxJgKij0xZ0KAKIu4NJP85GPs5CyHKq+P0gNEceuqbQN5/9MfJGCJicZWjPnmJSqRdL8LqPGoYVW9S8InZVnm/uCtjhZrasJDJs/W3H4QKL7ZeUQOU4e3//jljRHHSzA6Pk4yJ+4FrbXQoYQE+ccpBArXpaqEUXaVYq6Job4D9Wthrf7GWOTCk8InrOaF9rw4kgS7ryPBZZJZMC/3HjAs9gnTTI36hxLKhRwumG4UH9j5Zw==
 10.5.19.30 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA8MQEQu0I3OCh3TVBC+96Y7XIDmhv8C/M6okiVmN9KhawNrzcpmO0ME8jBUIwLFsxoH68GmHOrzhxeCrOZCPLZlqy4UVfa9VAM/H5SpWEhEa992d03f5RgK+VLl+JmiJNbGN3vWQ8Dx3EBj+40A7+Vr3No6B6+yyAzvMGH/8gm9QGc0f+eZo9xd4k9PhCVl6Gl0UDhpy/f0oVbVT9gYWIGw6eFHDL5QJdUiBfnmElz2H2ljNp9GG+eAK2fw1OzsXxZQnjzcxZFV/1DgPX/VbABIwEgPo0XRiV/Jjwv4KKMViBumjJGFLrGtX3M2r7J9w3praeQBW+secRekUsoHISCQ==
@@ -549,3 +559,4 @@ deda ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy9NMlp2qCNrncOIi8TxTZdgCH0JFaOcVJaAmnxV
 deda.jankratochvil.net,2a02:2b88:2:1::270:70 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy9NMlp2qCNrncOIi8TxTZdgCH0JFaOcVJaAmnxVuX7zOevyoSA8w7RjCLfV7trJjWUUrY+/AfQZn2Jw9gk+cOWvlfr34jOD26C+JXFwl4vxy9ywU+uuIohTq1ldlKnoYpv0DMhZf+FBq4jQ2nUkfMw76I0XH9jmTpXSr0tgkQRRdmkclXTjUlIPA1bJfvlnDdf7HC+rcFH2uLTSLDm6mjtxUgCfvB+AK0YwU+7mLVTPkW5W1JmcTdSXxwBNn/XxGHXnjcHZRCvXaGMwPggkvJLGnbUJKSwn7Fvl2mXdWkRi9b0he91vsU+YZ5CwVjgOOKJldBvapDqd+01YCaoowkQ==
 host2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMwxsWoyLpPhVdu9rNB3whtw31W00N/8AyxF5rm6JeCJXgDZABRJVxJ3BLvg1ab2J21B7Pr6lgMkhhmNHzHzPG9hyhXnvx6zU58JLII4Mdh9IEp+X4HSut433kFZTP9DALRer8oseq8Kuc5FSbY3sw/v7bTUwSZ3UgbC4yx1+HUq3gYFpowvGqDz0huXJltXkdNKaf0Gmo7qQb8OAKgQjk3OqL9W9ii/WXzlWyI6oSUzbfiV9iD3M01E+x/01zIa6Hdx29U2zhyJVuEYdbWtJDjTZSYL2ZVuGMSS1cWg/twjxjbHOtcHdRJq7+Cq9YbhP3CAzkKdEsyHjyQbkFfvUT
 192.168.66.2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMwxsWoyLpPhVdu9rNB3whtw31W00N/8AyxF5rm6JeCJXgDZABRJVxJ3BLvg1ab2J21B7Pr6lgMkhhmNHzHzPG9hyhXnvx6zU58JLII4Mdh9IEp+X4HSut433kFZTP9DALRer8oseq8Kuc5FSbY3sw/v7bTUwSZ3UgbC4yx1+HUq3gYFpowvGqDz0huXJltXkdNKaf0Gmo7qQb8OAKgQjk3OqL9W9ii/WXzlWyI6oSUzbfiV9iD3M01E+x/01zIa6Hdx29U2zhyJVuEYdbWtJDjTZSYL2ZVuGMSS1cWg/twjxjbHOtcHdRJq7+Cq9YbhP3CAzkKdEsyHjyQbkFfvUT
+host1.jankratochvil.net,2a02:2b88:2:1::270:1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqO8QNvnaRm2fAEic2FTZwpmBu9yQ8UrR5J1FmQc+YpZzXxOnUYBZpsjdvT23c4Ru5DnUyPprilJm7GbdVskNfIxXAV/CT/DFRaB83YRsxIjmH0GKAwZDlH+NpwZwVTveSCkoQelQn4kDaWnHfF3FI/qa8T3oSj9kp5Ijf1qZgsECtuOj8emNbWWnMFVqEpZTQ4Sn/JbhhKF2HVHxrdpOerlW5EwiuTBxhw/AFtouzlWsmEZfFaxPRCtq0tUr7Lf8ykbI3sOGTRmbr0SXE9A9IWvR1dvtwtIE/+PKDTNgOUnPBusGPe9Rc/8RTCzAFT5hMGTXia0UY3MQut99hgbRlw==
diff --git a/.vimrc b/.vimrc
index c9cb6c6..00b77d7 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -68,6 +68,10 @@ set fo=tcq1
 "set textwidth=78
 set viminfo='100,\"1000,:100,/40
 let g:netrw_home = $HOME
+" https://bugzilla.redhat.com/show_bug.cgi?id=970190
+if &term=="xterm" || &term=="xterm-256color"
+       set t_Co=8
+endif
 
 " FIXME: Learn how to do :tag instead of :tselect with :cstag (used by :tag and CTRL-] if set cst)
 set nocst
@@ -83,6 +87,7 @@ noremap <Esc>N :tn<cr>zz<C-g>
 noremap <Esc>P :tp<cr>zz<C-g>
 noremap <Esc>M :cn<cr>zz<C-g>
 noremap <Esc>L :cp<cr>zz<C-g>
+noremap <Esc>f "myiw:grep<Space>-Ew<Space>'<C-r>m'<Space>`git ls-files`
 noremap <Esc>g "myiw:grep<Space>-rEw<Space>'<C-r>m'<Space>.
 noremap <C-]> <C-]>zz<C-g>
 noremap <C-t> <C-t>zz<C-g>
diff --git a/bin/avitowebm b/bin/avitowebm
new file mode 100755 (executable)
index 0000000..e78c697
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/bash
+n -p $$
+set -ex
+which mencoder
+which vpxenc
+which ffmpeg
+#w=848 # Nokia 900
+w=640 # FinePix
+h=480
+for avi in $*
+do
+  ext=avi
+  base=`basename $avi .$ext`
+  if [ $base = $avi ]
+  then
+    ext=ogg
+    base=`basename $avi .$ext`
+  fi
+  if [ $base = $avi ]
+  then
+    ext=mp4
+    base=`basename $avi .$ext`
+  fi
+  [ $base != $avi ]
+  test ! -e $base.webm
+  test ! -e $base.video.webm
+  test ! -e $base.yuv
+  test ! -e $base.audio.$ext
+  mencoder $base.$ext -ovc raw -of rawvideo -vf format=i420 -nosound -o $base.yuv
+  vpxenc -t 8 -o $base.video.webm -p 2 --best -w $w -h $h $base.yuv
+  ffmpeg -y -i $base.$ext -acodec copy -vn $base.audio.$ext
+  ffmpeg -y -i $base.video.webm -i $base.audio.$ext -acodec libvorbis -vcodec copy $(: -ab 16k) $base.webm
+  rm -f $base.video.webm $base.yuv $base.audio.$ext
+done
+echo done
index c75eb56..438273d 100755 (executable)
--- a/bin/build
+++ b/bin/build
@@ -31,14 +31,15 @@ function QUIT
 function run
 {
   QUIT
-  #mockrun fedora-rawhide-x86_64 "cd $PWD; $*"
-  mockrun fedora-16-x86_64 "cd $PWD; $*"
+  mockrun fedora-19-x86_64     "cd $PWD; "'export PATH="$HOME/bin:$PATH"; '"$*"
+  #mockrun fedora-rawhide-x86_64 "cd $PWD; "'export PATH="$HOME/bin:$PATH"; '"$*"
 }
 
 function hammock
 {
   QUIT
   (unset hammock; hammock "$@")
+  #(unset hammock; hammock "$@" $(if [ "$1 $2" = "-c gdbcvs" -o "$1 $2" = "-c binutilscvs" ];then echo --strip;fi))
 }
 
 for i in gdb binutils;do
@@ -56,12 +57,12 @@ for i in gdb binutils;do
     rmdir $new
   fi
   cd $HOME/redhat/$i-cvs-master
-  cvs update -A
+  cvs update # -A is expensive with new sourceware.org
   cd ..
   rm -rf $i-cvs-clean
   cp -a $i-cvs-master $i-cvs-clean
   cd $i-cvs-clean
-  run errs12
+  run $HOME/bin/errs12
   ctags
 done
 
@@ -87,7 +88,7 @@ git pull
 #      cd $HOME/redhat/gdb-master$i
 #      git pull
 #done
-for i in "" 73 72 -nopython;do
+for i in "" 76 -nopython;do # 75 74 73 72
 #      cd $HOME/redhat/gdb-master$i
 #      git pull
 
@@ -120,7 +121,7 @@ for i in "" 73 72 -nopython;do
                rm -rf gdb-cvs-clean$i
                cp -a gdb-cvs-master$i gdb-cvs-clean$i
                cd gdb-cvs-clean$i
-               run errs12
+               run $HOME/bin/errs12
                ctags
        fi
 done
@@ -147,7 +148,7 @@ mkdir $HOME/redhat/glibc-build
  run make install
  )
 
-for d in f16 f15 f14 rawhide;do
+for d in rawhide f19 f18 f17;do
        hammock -c fedoragdb -i $I-fedoragdb-$d -d $d
 done
 ### hammock -c fedoragdb -d rawhide --cd f12! -i $I-fedoragdb-f12-on-rawhide
@@ -158,26 +159,33 @@ cd
 for i in \
        gdbcvs                                  \
        binutilscvs                             \
-       archer-jankratochvil-watchpoint3        \
        archer-jankratochvil-vla                \
 ; do
-       hammock -c $i -i $I-$i-f16 -d f16
-       #hammock -c $i -i $I-$i-rawhide -d rawhide
+       #hammock -c $i -i $I-$i-f19 -d f19
+       hammock -c $i -i $I-$i-rawhide -d rawhide
 done
 #      archer-tromey-threaded-dwarf            \
 #      archer-tromey-python                    \
 #      archer-pmuldoon-next-over-throw2        \
 #      archer-jankratochvil-ifunc              \
+#      archer-jankratochvil-watchpoint3        \
 
-for d in f16 f15 f14 rawhide;do
+for d in rawhide f19 f18 f17 epel6 epel5;do
        hammock -c gdbcvs -i $I-gdbcvs-$d -d $d
 done
 
-hammock -c gdbcvs -i $I-gdbcvs-gdbindex-f16 -d f16 --gdbindex
-hammock -c gdbcvs -i $I-gdbcvs-gdbserver-f16 -d f16 --gdbserver
-hammock -c gdbcvs -i $I-gdbcvs-dwarf41-f16 -d f16 --dwarf=41
-hammock -c gdbcvs -i $I-gdbcvs-dwarf40-f16 -d f16 --dwarf=40
-#hammock -c gdbcvs -i $I-gdbcvs-dwarf4-gdbindex-f16 -d f16 --dwarf=4 --gdbindex
+hammock -c gdbcvs -i $I-gdbcvs-gdbindex-rawhide -d rawhide --gdbindex
+hammock -c gdbcvs -i $I-gdbcvs-gdbindex-dwarf41-rawhide -d rawhide --gdbindex --dwarf=41
+hammock -c gdbcvs -i $I-gdbcvs-gdbserver-rawhide -d rawhide --gdbserver
+hammock -c gdbcvs -i $I-gdbcvs-dwarf41-rawhide -d rawhide --dwarf=41
+hammock -c gdbcvs -i $I-gdbcvs-dwarf40-rawhide -d rawhide --dwarf=40
+hammock -c gdbcvs -i $I-gdbcvs-dwarf3-rawhide -d rawhide --dwarf=3
+hammock -c gdbcvs -i $I-gdbcvs-dwarf2-rawhide -d rawhide --dwarf=2
+hammock -c gdbcvs -i $I-gdbcvs-stabsp-rawhide -d rawhide --stabs=2
+hammock -c gdbcvs -i $I-gdbcvs-bfd32-rawhide -d rawhide --bfd32 -a i386
+hammock -c gdbcvs -i $I-gdbcvs-gdbindex-dwarf41-bfd32-rawhide -d rawhide --gdbindex --dwarf=41 --bfd32 -a i386
+hammock -c gdbcvs -i $I-gdbcvs-fast-rawhide -d rawhide --options "--fast"
+hammock -c gdbcvs -i $I-gdbcvs-nomcheck-rawhide -d rawhide --options "--nomcheck"
 
 ### for d in f12;do
 ###    hammock -c gdbcvs --branch gdb_7_1-branch -i $I-gdb71cvs-f12 -d f12
@@ -192,17 +200,17 @@ hammock -c gdbcvs -i $I-gdbcvs-dwarf40-f16 -d f16 --dwarf=40
 ### done
 ### done
 
-cd $HOME/redhat/linux-2.6
-git fetch --all
-git pull
-ctags
+#cd $HOME/redhat/linux-2.6
+#git fetch --all
+#git pull
+#ctags
 
 cd $HOME/redhat/gccgit
 git pull
 ctags
 (cd gcc;ctags)
 
-for gcc in gcchead gcc46 gcc45 gcc44;do
+for gcc in gcchead gcc48;do # gcc47 gcc46 - texinfo errors
 (
 set -e
 cd $HOME/redhat/${gcc}
@@ -218,16 +226,22 @@ mkdir $HOME/redhat/${gcc}-build
 cd $HOME/redhat/${gcc}-build
 # gcc44+gcc45: sinput.adb:776:19: deallocation from empty storage pool
 # /usr/bin/ld: libbackend.a(graphite.o): undefined reference to symbol 'ppl_finalize' + /usr/bin/ld: note: 'ppl_finalize' is defined in DSO /usr/lib64/libppl_c.so.4 so try adding it to the linker command line
-run errs12 ../${gcc}/configure --prefix=$root --enable-languages=c,c++,fortran,java$(test $gcc = gcchead -o $gcc = gcc46 && echo ,ada) $(test $gcc = gcc44 && echo --without-cloog) --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
+# gcc46: gnatbind -C -nostdinc -I- -I. -Iada -I../../gcc46/gcc/ada -I../../gcc46/gcc/ada/gcc-interface -o ada/b_gnat1.c -n ada/gnat1drv.ali
+# gnatbind: invalid switch: -C
+run errs12 ../${gcc}/configure --prefix=$root --enable-languages=c,c++,fortran,java$(test $gcc = ${gcc#gcc4[0-6]} && echo ,ada) $(test $gcc = gcc44 && echo --without-cloog) --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
 rm -rf $root
 mkdir $root
-run errs3 -j1
+run $HOME/bin/errs3 -j1
 
 cd
 # hammock -c gdbcvs -i $I-gdbcvs${gcc}-f14 -d f14 -p $root/bin -a x86_64
 )
 done
 
+hammock -c gdbcvs -i $I-gdbcvs-gcc48-rawhide           -d rawhide -a x86_64 --prefixpath ~/redhat/gcc48-root
+hammock -c gdbcvs -i $I-gdbcvs-gcchead-rawhide         -d rawhide -a x86_64 --prefixpath ~/redhat/gcchead-root
+hammock -c gdbcvs -i $I-gdbcvs-dwarf41-gcchead-rawhide -d rawhide -a x86_64 --prefixpath ~/redhat/gcchead-root --dwarf=41
+
 #hammock -c gdbcvs -i $I-gdbcvs-valgrind-rawhide -d rawhide --valgrind
 
 diffgdbdaymail
index b59b87d..d621915 100755 (executable)
@@ -29,7 +29,7 @@ else for arg in "$@";do
                echo >&2 -n '+'
                echo "$arg"
                echo
-               changelogget -q $changelog $(wget -q -O - "$arg" | sed -n -e 's/&amp;/\&/g' -e 's#^<a \+href="\(.*\)">\1</a>$#\1#p')
+               changelogget -q $changelog $(wget -q -O - "$arg" | sed -n -e 's/&amp;/\&/g' -e 's#^<a \+\(rel="nofollow"\)\? *href="\(.*\)">\2</a>$#\2#p')
        elif [ "$arg" != "${arg#http://gcc.gnu.org/viewcvs[?]view=revision&revision=}" ];then
                echo >&2 -n '+'
                echo "$arg"
index c48fad6..717c5cc 100755 (executable)
@@ -9,22 +9,27 @@ if [ $# != 1 ] || ! echo "$1" | grep -q '-';then
   echo >&2 "Syntax: $0 branch-list-delimited-by-dashes"
   exit 1
 fi
-base="gdb/master"
+if [ -f origin ];then
+  origin="`cat origin`"
+else
+  origin="gdb/master"
+fi
+base=$origin
 gerrit=true
 if git branch -D gerrit;then
-  git checkout gdb/master
+  git checkout $origin
   git checkout -b gerrit
 else
   gerrit=false
 fi
 for elem in $(echo "$1"|tr '-' ' ');do
-  if [ "$base" = "gdb/master" ];then
+  if [ "$base" = $origin ];then
     next="$elem"
   else
     next="$base-$elem"
   fi
   git checkout "$next"
-  git merge "$base"
+  git merge --no-edit "$base"
   if $compile;then
     make
   fi
index a0c4789..b44c2c0 100755 (executable)
@@ -2,6 +2,21 @@
 use strict;
 use warnings;
 
+sub gitmark($) {
+  my($s)=@_;
+  return "" if $s!~m{^(... )([^/]*/+[^/]*)/};
+  my($pfx,$dir)=($1,$2);
+  local *GIT;
+  $dir.="/build/gdbgit";
+  return "" if !-d $dir;
+  open GIT,"cd '$dir';git log --format=%H HEAD^..HEAD|" or return "";
+  my $git=do { local $/; <GIT>; };
+  close GIT;
+  chomp $git;
+  return "${pfx}GIT commit $git\n" if $git=~/^[0-9a-f]{40}$/;
+  return "";
+}
+
 my @ignore=(
 qr{^.PASS: }o,
 qr{^.KPASS: }o,
@@ -22,18 +37,6 @@ qr{^.collect2: }o,
 #qr{^.ERROR: }o,
 #qr{^.WARNING: }o,
 qr{^.[^:]*[.]ad[sb]:[0-9]}o,
-qr{^.(?:PASS|FAIL): gdb.server/ext-run.exp: get process list\n$}o,
-qr{^.(?:PASS|FAIL): gdb.base/checkpoint.exp: info checkpoints with at least 600 checkpoints\n$}o,
-qr{^.(?:PASS|FAIL): gdb.base/checkpoint.exp: break2 with many checkpoints\n$}o,
-qr{^.(?:PASS|FAIL): gdb.base/interrupt.exp: }o,
-qr{^.(?:PASS|FAIL): gdb.base/gdb1250.exp: }o,
-qr{^.KFAIL: gdb.threads/watchthreads2.exp: gdb can drop watchpoints in multithreaded app \(PRMS: gdb/10116\)\n$}o,
-qr{^.PASS: gdb.threads/watchthreads2.exp: all threads incremented x\n$}o,
-qr{^.FAIL: gdb.base/sigbpt.exp: Verify that SIGSEGV occurs at the last STEPI insn \(none 0x[a-f0-9]*\)\n$}o,
-qr{^.PASS: gdb.threads/threadcrash.exp: core file: }o,
-qr{^.PASS: gdb.threads/watchthreads.exp: disable [0-9]*\n$}o,
-qr{^.FAIL: gdb.mi/mi-nsmoribund.exp: unexpected stop\n$}o,
-qr{^.PASS: gdb.mi/mi-nsmoribund.exp: resume all, program exited normally\n$}o,
 qr{^.gdb compile failed, }o,
 qr{^.gdb compile failed, /usr/bin/ld: /tmp/[a-zA-Z0-9]*.o: relocation R_X86_64_32S against `a local symbol. can not be used when making a shared object; recompile with -fPIC\n$}o,
 qr{^./tmp/[a-zA-Z0-9]*.o: could not read symbols: Bad value\n$}o,
@@ -45,37 +48,14 @@ qr{^./tmp/[a-zA-Z0-9]*.s:\d+: Error: junk at end of line: `.(?:plt|local)'\n$}o,
 qr{^./usr/bin/ld: /tmp/[a-zA-Z0-9]*.o\(\.text\+0x[0-9a-f]+\): unresolvable R_PPC64_REL24 relocation against symbol `\S+'\n$}o,
 qr{^.# of }o,
 qr{^./home/}o,
-qr{^.PASS: gdb.arch/i386-biarch-core.exp: core-file /home/.*/i386-biarch-core.core\n$}o,
 qr{^.\.\./as-new [0-9.]*\n$}o,
-qr{^.ld/ld-new [0-9.]*\n$}o,
-qr{^.(?:PASS|FAIL): gdb.mi/mi-break.exp: test hitting breakpoint with commands\n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/attach-stopped.exp: threaded: attach2, exit leaves process sleeping\n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/attachstop-mt.exp: attach3, exit leaves process stopped\n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/attachstop-mt.exp: attach4 stop by interrupt(?: \(timeout\))?\n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/attachstop-mt.exp: attach4, exit leaves process sleeping\n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/manythreads.exp: info threads\n$}o,
-qr{gdb version  \d\S+ -nw -nx \n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/attach-stopped.exp: threaded: attach1, exit leaves process stopped\n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/local-watch-wrong-thread.exp: local watchpoint automatically deleted(?: \(timeout\))?\n$}o,
-qr{^.(?:PASS|FAIL): gdb.server/server-run.exp: continue to main\n$}o,
-qr{^.(?:PASS|FAIL): gdb.mi/mi-nonstop.exp: w1,i0 stop(?: \(timeout\))?\n$}o,
-qr{^.(?:PASS|FAIL): gdb.reverse/i387-env-reverse.exp: set reverse direction(?: \(timeout\))?\n$}o,
-qr{^.(?:PASS|FAIL): gdb.reverse/i387-env-reverse.exp: record to end of main(?: \(timeout\))?\n$}o,
-qr{^.(?:PASS|FAIL): gdb.mi/mi-file-transfer.exp: compare intermediate binary file\n$}o,
-qr{^.(?:PASS|FAIL): gdb.mi/mi-file-transfer.exp: compare binary file\n$}o,
-qr{^.(?:PASS|FAIL): gdb.mi/mi-file-transfer.exp: deleted binary file\n$}o,
-qr{^.(?:PASS|FAIL): gdb.mi/mi-simplerun.exp: continue to end(?: \(failed to resume\))?\n$}o,
-qr{^.(?:PASS|FAIL): gdb.mi/mi-simplerun.exp: continue to end(?: \(unknown output after running\))?\n$}o,
-qr{^.(?:PASS|FAIL): gdb.server/file-transfer.exp: verified deleted binary file\n$}o,
-qr{^.(?:PASS|FAIL): gdb.server/file-transfer.exp: deleted binary file\n$}o,
-qr{^.(?:PASS|FAIL): gdb.threads/attachstop-mt.exp: attach1, post-gdb sanity check of the sleeping state - Red Hat BZ 197584\n$}o,
-qr{^."uplevel #0 source .*gdb/testsuite/gdb.threads/watchthreads-thr(?:eaded\.exp|.*\.\.\.)"\n$}o,
-qr{^.(?:PASS|FAIL): gdb.cp/ref-types.exp: print value of rL\n$}o,
-qr{^.FAIL: gdb.threads/watchthreads-reorder.exp: reorder[01]: (?:continue [ab]|rwatch unused1_rwatch)(?: \((?:timeout|the program exited|the program is no longer running)\))?\n$}o,
-qr{^.FAIL: gdb.base/sigbpt.exp: Verify that SIGSEGV occurs at the last STEPI insn \(none 0x[0-9a-f]+\)\n$}o,
-qr{^.(?:KFAIL|FAIL): gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler(?: \(corrupt pc\) \(PRMS: gdb/1702\))?\n$}o,
-qr{^.(?:KFAIL|FAIL): gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler(?: \(corrupt pc\) \(PRMS: gdb/1702\))?\n$}o,
+qr{^.(?:/unsafe)?ld/ld-new [0-9.]*\n$}o,
+qr{\bgdb version  \d\S+ -nw -nx\b}o,
 qr{^.FAIL: \S+\.exp: valgrind check \d+\n$}o,
+qr{^.KFAIL: gdb.threads/watchthreads2.exp: gdb can drop watchpoints in multithreaded app \(PRMS: gdb/10116\)\n$}o,
+qr{^.FAIL: gdb.base/info-os.exp: .*\n$}o,
+qr{^.FAIL: gdb.threads/multiple-step-overs.exp: .*\n$}o,
+qr{^.FAIL: gdb.base/random-signal.exp: stop with control-c \Q(timeout)\E\n$}o,
 );
 my $ignore=shift @ignore;
 $ignore=qr/$ignore|$_/ for @ignore;
@@ -122,11 +102,11 @@ while (<DIFF>) {
     $lastfile=$_;
   }
   if (/^--- /) {
-    $lastfile=$_;
+    $lastfile=$_.gitmark($_);
     next;
   }
   if (/^\Q+++\E /) {
-    $lastfile.=$_;
+    $lastfile.=$_.gitmark($_);
     next;
   }
   $this->{"buffer"}.=$_;
index 5fc9427..c017774 100755 (executable)
@@ -6,6 +6,7 @@ else
   shift
 fi
 TODAY=`date -d "$WHEN" +%Y%m%d`
+#YESTERDAY=`date -d "12 Apr" +%Y%m%d`
 YESTERDAY=`date -d "$TODAY - 1 day" +%Y%m%d`
 cd $HOME/hammock
 #for THIS in ${TODAY}Build-{gdbcvs,fedoragdb}*;do 
index e7c7e07..9148109 100755 (executable)
@@ -1,20 +1,31 @@
 #! /bin/bash
 # $Id$
 
-renice +19 -p $$; ionice -c3 -p $$
+#renice +19 -p $$; ionice -c3 -p $$
+renice +10 -p $$; ionice -c3 -p $$
 
-# For ctags
-PS1=x
-. ~/.bashrc
+# Do not use for ctags - it would override $PATH:
+# PS1=x; . ~/.bashrc
+function ctags {(unset ctags; PS1=x; . ~/.bashrc; ctags; );}
 
 customss="--enable-static --disable-shared"
 customm="-m64"
 target=
 targets=
 configure="./configure"
-debug="-ggdb2"
-ldflags="-lmcheck"
+# >=4.7 has small macros section.
+if gcc --version|perl -ne 'exit(!(/(\d+)\.(\d+)/&&($1>4||($1==4&&$2>=7))));';then
+  debug="-g3"
+else
+  debug="-g2"
+fi
+#asan=""
+asan="-fsanitize=address"
+mcheck=""
+#mcheck="-lmcheck"
 fast=false
+readline=""
+disablebinutils="--disable-binutils --disable-gas --disable-gold --disable-gprof --disable-ld"
 
 while true
 do
@@ -59,7 +70,30 @@ do
        if [ "$1" = "-s" ];then
                # -O0 is important to override GCC -O2.
                debug="-O0 -s"
-               #ldflags=""
+               shift
+               continue
+       fi
+
+       if [ "$1" = "--asan" ];then
+               asan="-fsanitize=address"
+               shift
+               continue
+       fi
+
+       if [ "$1" = "--noasan" ];then
+               asan=""
+               shift
+               continue
+       fi
+
+       if [ "$1" = "--nomcheck" ];then
+               mcheck=""
+               shift
+               continue
+       fi
+
+       if [ "$1" = "--binutils" ];then
+               disablebinutils=""
                shift
                continue
        fi
@@ -89,42 +123,63 @@ rm -f errs1.ok
        if ! $fast && test -f `dirname $configure`/bfd/elf64-x86-64.c -a '(' -d CVS -o -d .git ')';then
                targets="$targets --enable-targets=all"
        fi
+       if test ! -d readline;then # $fast ||
+               targets="$targets --with-system-readline"
+       fi
 
        if test -f `dirname $configure`/gcc/reload.c;then
                werror="--disable-werror"
                customm=""
                # --disable-static would fail on finding built libstdc++ due to -static-libstdc++.
-               customss=""
+               # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49829
+               #customss=""
+               customss="--disable-static --enable-shared"
        else
                werror=""
        fi
 
+       if test -d readline/doc && ! test -e readline/readline.c;then
+               # Fedora gdb.spec prep.
+               readline="--with-system-readline"
+       fi
+
        test -z "$CC" && CC=gcc
        : >errs1.c
-       for flags in                                                                                                    \
-               "$debug -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4"   \
-               "$debug -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions"                                               \
-               ""                                                                                                      \
+       # -Wp,-D_FORTIFY_SOURCE=2: /usr/include/features.h:329:3: error: #warning _FORTIFY_SOURCE requested but disabled [-Werror=cpp]
+       for flags in                                                                                                                                    \
+               "$debug -pipe -Wall -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -ftrack-macro-expansion=0 -fno-diagnostics-show-caret $asan"        \
+               "$debug -pipe -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4 -ftrack-macro-expansion=0 -fno-diagnostics-show-caret $asan"       \
+               "$debug -pipe -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4 -ftrack-macro-expansion=0 -fno-diagnostics-show-caret"     \
+               "$debug -pipe -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4"                                                           \
+               "$debug -pipe -Wall -fexceptions"                                                                                                       \
+               ""                                                                                                                                      \
                ;do
                if [ -z "$flags" ];then
                        rm -f errs1.c
                        echo >&2 "flags error"
                        exit 1
                fi
-               "$CC" $flags -c errs1.c -o /dev/null && break
+               # Use -Werror:
+               # cc1: warnings being treated as errors
+               # archive.c:1: error: -fstack-protector not supported for this target
+               "$CC" $flags -Werror -c errs1.c -o /dev/null && break
        done
        if test -n "$customm" && "$CC" $customm -c errs1.c -o /dev/null;then
                flags="$customm $flags"
        fi
        rm -f errs1.c
+       if ! echo "$flags"|grep -q 'fsanitize=address';then
+               asan=""
+       fi
        export CFLAGS="$flags"
        export CXXFLAGS="$flags"
        export GCJFLAGS="$flags"
        export CFLAGS_FOR_TARGET="$flags"
        export CXXFLAGS_FOR_TARGET="$flags"
-       export LDFLAGS="$ldflags"
+       export LDFLAGS="$mcheck $asan"
 
-       time nice "$configure" $target $targets $customss --enable-debug --disable-sim --enable-gold --enable-plugins $maintainer $werror --with-separate-debug-dir=/usr/lib/debug "$@"
+       time nice "$configure" $target $targets $customss $readline $disablebinutils --enable-debug --disable-sim $maintainer $werror --with-separate-debug-dir=/usr/lib/debug --without-guile "$@"
+# --enable-gold --enable-plugins
 
        (ctags; test -d gdb && (cd gdb; ctags; cd testsuite; ctags; cd ../gdbserver; ctags)) &
 
index 2a52832..17548cb 100755 (executable)
--- a/bin/errs2
+++ b/bin/errs2
@@ -1,5 +1,4 @@
-#! /bin/sh
-# $Id$
+#! /bin/bash
 
 renice +19 -p $$; ionice -c3 -p $$
 
diff --git a/bin/expect-read1 b/bin/expect-read1
new file mode 100755 (executable)
index 0000000..eaa582c
--- /dev/null
@@ -0,0 +1,3 @@
+#! /bin/sh
+export LD_PRELOAD=$HOME/src/read1.so
+exec /usr/bin/expect "$@"
diff --git a/bin/exx b/bin/exx
index 8321cf3..97f021b 100755 (executable)
--- a/bin/exx
+++ b/bin/exx
@@ -24,6 +24,8 @@ use constant FORMATS=>{
        "tar.bz2"=>do { $_=FORMAT_TAR; s/xf/xjf/; $_; },
        "tar.bz" =>"tar.bz2",
        "tbz"    =>"tar.bz",
+       "tar.xz" =>do { $_=FORMAT_TAR; s/xf/xJf/; $_; },
+       "txz"    =>do { $_=FORMAT_TAR; s/xf/xJf/; $_; },
        "msi"    =>'cabextract -q $pathname',
        };
 
index ceee0cb..d3e3018 100755 (executable)
@@ -1,2 +1,2 @@
 #! /bin/sh
-cat ~/redhat/{rhel,fedora}/gdb/*/gdb.spec|grep -i '^patch'|sort -nruk2 -t h|head
+cat {$HOME,/host?/home/*}/redhat/{rhel,fedora}/gdb/*/gdb.spec|grep -i '^patch'|sort -nruk2 -t h|head
index 3af98cc..a7c48ab 100755 (executable)
@@ -7,7 +7,7 @@ trap 'sleep 0;git reset --hard;git clean -dfx;exit 125' EXIT
 git reset --hard
 git clean -dfx
 # patch -p1 <~/t/bisect.patch || :
-errs12 -s --fast --disable-werror --without-python --disable-plugins --disable-gdbserver --disable-gold
+errs12 -s --fast --disable-werror --without-python --disable-plugins $(: echo --disable-gdbserver) --disable-gold
 #errs12 -s --fast --disable-gold
 git reset --hard
 trap '' EXIT
@@ -15,7 +15,7 @@ set +e
 "$@" 
 rc=$?
 set -e
-#git reset --hard
+git reset --hard
 #git clean -dfx
 echo rc=$rc
 exit $rc
index 8844203..d3851e7 100755 (executable)
@@ -11,9 +11,7 @@ my $gdbcvsmaster=$ENV{"HOME"}."/redhat/gdb-cvs-master";
 my $binutilscvsmaster=$ENV{"HOME"}."/redhat/binutils-cvs-master";
 my $archermaster=$ENV{"HOME"}."/redhat/gdb-master";
 my $fedoragitroot=q{git://pkgs.fedoraproject.org};
-#Unknown host cvs.devel.redhat.com.
-#my $rhelcvsroot=q{:pserver:anonymous:@cvs.devel.redhat.com:/cvs/dist};
-my $rhelcvsroot=q{:ext:cvs.devel.redhat.com:/cvs/dist};
+my $rhelgitroot=q{git://pkgs.devel.redhat.com/rpms};
 my $arch_i386=qr{(?:x86|i\d86|ia32)}io;
 my $arch_x86_64=qr{(?:x8664|x86_64|em64t)}io;
 my $resultdir=$ENV{"HOME"}."/.hammock-result";
@@ -32,6 +30,7 @@ my $parallel=1;
 my @distro;
 my @componentdistro;
 my @path;
+my @prefixpath;
 my @arch;
 my $component;
 my $srcrpm;
@@ -50,12 +49,17 @@ my $strip;
 # <last 2 lines repearing>
 my $gdbserver;
 my $valgrind;
+my $bfd32;
 my $gdbindex;
+my $dwz;
 my $dwarf;
 # Use --dwarf=40 for: --dwarf=4 -fno-debug-types-section
 # Use --dwarf=41 for: --dwarf=4    -fdebug-types-section
+my $optimg;
+my $stabs;
 my $debug_types_section;
 my $orphanripper=1;
+my $options;
 die if !GetOptions(
   "i|userid=s"=>\$userid,
     "force"=>\$force,
@@ -64,6 +68,7 @@ die if !GetOptions(
   "d|distro=s{,}"=>\@distro,
     "cd|componentdistro=s{,}"=>\@componentdistro,
   "p|path=s{,}"=>\@path,
+  "P|prefixpath=s{,}"=>\@prefixpath,
   "a|arch=s{,}"=>\@arch,
   "c|component=s"=>\$component,
   "s|srcrpm=s"=>\$srcrpm,
@@ -76,9 +81,14 @@ die if !GetOptions(
     "strip"=>\$strip,
     "gdbserver"=>\$gdbserver,
     "valgrind"=>\$valgrind,
+    "bfd32"=>\$bfd32,
     "gdbindex"=>\$gdbindex,
+    "dwz"=>\$dwz,
     "dwarf=i"=>\$dwarf,
+    "optimg"=>\$optimg,
+    "stabs=i"=>\$stabs,
     "orphanripper!"=>\$orphanripper,
+    "options=s"=>\$options,
 );
 $component and ($component=~m{^(?:(?:fedora|rhel)(?:gdb|binutils|glibc)|gdbcvs|binutilscvs|archer-.*|/home/.*)$} or die "-c|--component required to be: fedoragdb|rhelgdb|fedorabinutils|rhelbinutils|fedoraglibc|rhelglibc|gdbcvs|binutilscvs|archer-*|/home/*");
 $component and $component=~m{^/home/} and (-f "$component/gdb/gdbtypes.c" or die "$component/gdb/gdbtypes.c not found");
@@ -87,21 +97,24 @@ $component or $srcrpm or die "-c|--component or -s|--srcrpm required";
 $component||="";  # Make `eq' not complaining.
 my $cvsbranch;
 if ($component=~/^(gdb|binutils)cvs$/) {
-  $cvsbranch=(!$branch?"-A":"-r $branch");
+  $cvsbranch=(!$branch?"":"-r $branch"); # "-A" is broken with new sourceware.org
+  $gdbcvsmaster=$ENV{"HOME"}."/redhat/gdb-cvs-master74" if ($branch||"") eq "gdb_7_4-branch";
 } else {
   die "--branch currently unsupported for non-CVS sources" if $branch;
 }
 !$gdbcvspie or $component eq "gdbcvs" or die "--gdbcvspie requires -c gdbcvs";
 @target and ($srcrpm or $component=~/^(?:fedora|rhel)/) and die "--target is available only for baretestsuite modes";
 $strip and ($srcrpm or $component=~/^(?:fedora|rhel)/) and die "--strip is available only for baretestsuite modes";
-$gdbserver and $component ne "gdbcvs" and die "--gdbserver is available only for gdbcvs";
-$valgrind and $component ne "gdbcvs" and die "--valgrind is available only for gdbcvs";
+$options and ($srcrpm or $component=~/^(?:fedora|rhel)/) and die "--options is available only for baretestsuite modes";
+$gdbserver and $component!~/^(?:gdbcvs|archer-.*)$/ and die "--gdbserver is available only for gdbcvs or archer-*";
+$valgrind and $component!~/^(?:gdbcvs|archer-.*)$/ and die "--valgrind is available only for gdbcvs or archer-*";
 $gdbserver and $valgrind and die "--gdbserver and --valgrind are mutually exclusive";
-($gdbserver || $valgrind) and $gdbindex and die "--gdbserver|--valgrind and --gdbindex are mutually exclusive";
+($gdbserver || $valgrind) and ($gdbindex || $dwz) and die "--gdbserver|--valgrind and --gdbindex|--dwz are mutually exclusive";
 do { $debug_types_section=0; $dwarf=4; } if ($dwarf||0)==40;
 do { $debug_types_section=1; $dwarf=4; } if ($dwarf||0)==41;
 !defined $dwarf or ($dwarf>=2 && $dwarf<=4) or die "--dwarf requires DWARF version number";
-($gdbserver || $valgrind || $gdbindex) and $dwarf and die "--gdbserver|--valgrind|--gdbindex and --dwarf are mutually exclusive";
+!defined $stabs or ($stabs>=0 && $stabs<=2) or die "--stabs is 0=off or 1=-gstabs or 2=-gstabs+";
+($gdbserver || $valgrind || $gdbindex || $dwz) and ($dwarf || $stabs) and die "--gdbserver|--valgrind|--gdbindex and --dwarf|--stabs are mutually exclusive";
 $orphanripper=($orphanripper?"orphanripper":"");
 my %target;
 do { error "Duplicate target: $_\n" if $target{$_}++; } for @target;
@@ -109,6 +122,8 @@ do { error "Duplicate target: $_\n" if $target{$_}++; } for @target;
 for my $file (@file) {
   -f $file and -r $file or error "-f|--file $file not readable: $!";
 }
+###push @file,"/home/jkratoch/redhat/fedora/gdb/master/gdb-index-assert.patch" if $component=~/^(?:gdbcvs|archer-)/;
+###push @file,"/home/jkratoch/redhat/fedora/gdb/master/gdb-dejagnu-go.patch"   if $component=~/^(?:gdbcvs|archer-)/;
 $distrojobs=(@target?1:2) if !defined $distrojobs;
 $distrojobs=~/^\d+$/ or die "-D|distrojobs must be a number: $distrojobs";
 $distrojobs>=1 or die "-D|distrojobs must be positive: $distrojobs";
@@ -117,6 +132,10 @@ error "Excessive arguments: @ARGV" if @ARGV;
 my $path=join(":",@path) if @path;
 @componentdistro and @componentdistro!=@distro and die "--cd|--componentdistro must have the same elements count as -d|--distro";
 
+#FIXME:push @file,"/home/jkratoch/t/gdbserverasyncnonstop.patch" if $component=~/^(?:gdbcvs|archer-)/;
+push @file,"/home/jkratoch/t/watchpointfork2.patch" if $component=~/^(?:gdbcvs|archer-)/;
+#push @file,"/home/jkratoch/t/gdb-breakpointchanged.patch" if $component=~/^(?:gdbcvs|archer-)/;
+
 sub distro_normalize($;$)
 {
   my($name,$force)=@_;
@@ -220,6 +239,24 @@ sub writefile
   close F or die $fname;
 }
 
+sub readfile
+{
+  my($fname)=@_;
+
+  local *F;
+  open F,"$fname" or die $fname;
+  local $/=undef();
+  defined(my $r=<F>) or die $fname;
+  close F or die $fname;
+  return $r;
+}
+
+sub ln($$)
+{
+  my($old,$new)=@_;
+  link $old,$new or spawn "cp -p '$old' '$new'";
+}
+
 # /etc/cgconfig.conf
 spawn "cgclassify -g '*':hammock $$ || :";
 
@@ -236,6 +273,7 @@ unlink $resultidxz or $!{ENOENT} or die "unlink $resultidxz: $!";
 spawn "uname -r >$dir/kernel";
 my %dump=(
   "path"=>$path,
+  "prefixpath"=>join(":",@prefixpath),
   "component"=>$component,
   "branch"=>$branch,
   "srcrpm"=>$srcrpm,
@@ -244,23 +282,28 @@ my %dump=(
   "gdbcvspie"=>$gdbcvspie,
   "gdbserver"=>$gdbserver,
   "valgrind"=>$valgrind,
+  "bfd32"=>$bfd32,
   "gdbindex"=>$gdbindex,
+  "dwz"=>$dwz,
   "dwarf"=>$dwarf,
+  "optimg"=>$optimg,
+  "stabs"=>$stabs,
   "debug_types_section"=>$debug_types_section,
   "orphanripper"=>$orphanripper,
+  "options"=>$options,
 );
 while (my($name,$val)=each(%dump)) {
   next if !$val;
   writefile "$dir/$name","$val\n";
-  link "$dir/$name","$resultid/$name" or warn "link $dir/$name $resultid/$name: $!";
+  ln "$dir/$name","$resultid/$name";
 }
 for my $file (@file) {
   newdir "$dir/file.d","mayexist";
   (my $base=$file)=~s{^.*/}{};
   my $d="$dir/file.d/$base";
-  link $file,$d or die "link $file $d: $!";
+  ln $file,$d;
   newdir "$resultid/file.d","mayexist";
-  link $d,"$resultid/file.d/$base" or warn "link $file $resultid/file.d/$base: $!";
+  ln $d,"$resultid/file.d/$base";
 }
 
 sub subst
@@ -305,22 +348,24 @@ while (@distrouse || keys(%child)) {
 
     my $cvsbasedir;
     my $gitbranch;
+    my $gitpkg;
     my $cvsroot;
     my $gitroot;
     my $cvsrepo;
     my $gitrepo;
     if ($component=~/^fedora(.*)$/) {
       $gitrepo=$1;
-      $gitbranch="f$1" if $componentdistro=~/^fedora-(\d+)$/;
-      $gitbranch="master" if $componentdistro=~/^fedora-rawhide$/;
+      $gitbranch="f$1" if $componentdistro=~/^fedora-(\d+)/;
+      $gitbranch="master" if $componentdistro=~/^fedora-rawhide/;
       die "$component vs. $componentdistro" if !$gitbranch;
       $gitroot=$fedoragitroot;
+      $gitpkg="fedpkg";
     }
     if ($component=~/^rhel(.*)$/) {
-      $cvsrepo=$1;
-      $cvsbasedir="RHEL-$1" if $componentdistro=~/^(?:epel|rhel)-(\d+)$/;
-      die "$component vs. $componentdistro" if !$cvsbasedir;
-      $cvsroot=$rhelcvsroot;
+      $gitrepo=$1;
+      $gitbranch="auto";
+      $gitroot=$rhelgitroot;
+      $gitpkg="https_proxy= rhpkg";
       # EPEL still uses Berkeley DB version 8 while F-11+ (F-10?) uses version 9.
       # Using db_dump and db_load would no longer make it mock compatible.
       $rpmbuild.=q{ --dbpath $PWD --nodeps};
@@ -355,6 +400,11 @@ while (@distrouse || keys(%child)) {
       my($c)=@_;
 
       $c="export PATH=\"$path:\$PATH\"; $c" if $path;
+      for my $prefixpath (@prefixpath) {
+       $c="export PATH=\"$prefixpath/bin:\$PATH\"; $c";
+       $c="export LD_LIBRARY_PATH=\"$prefixpath/lib64:$prefixpath/lib\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}\"; $c";
+      }
+      $c="export PATH=\"\$HOME/bin:\$PATH\"; $c";
       $c="export MAKEFLAGS=\"-j\$[`getconf _NPROCESSORS_ONLN`*3/2]\"; $c";
       $c="export http_proxy=http://127.0.0.1:3128/; $c";
       $c="set -ex; cd $builddir; $c";
@@ -366,16 +416,31 @@ while (@distrouse || keys(%child)) {
       die if !$gitroot;
       die if !$gitrepo;
       die if !$gitbranch;
-      spawn "cd $distrodir; git clone -b $gitbranch $gitroot/$gitrepo $component";
+      die if !$gitpkg;
+      spawn "cd $distrodir; git clone ".($gitbranch eq "auto"?"":"-b $gitbranch")." $gitroot/$gitrepo $component";
       my $componentdir="$distrodir/$component";
       -d $componentdir or die "Failed checkout to: $componentdir";
+      if ($gitbranch eq "auto") {
+       $componentdistro=~/^(?:rhel|epel)-(\d+)$/ or die $componentdistro;
+       my $major=$1;
+       my @l=grep { m{^\s*origin/rhel-$major\.\d+\s*$} } split /\n/,readfile "cd $componentdir; git branch -r |";
+       sub minor
+       {
+         local $_=$_[0];
+         s{^\s*origin/rhel-\d+\.(\d+)\s*$}{$1} or die;
+         return $_;
+       }
+       @l=sort { minor($b) <=> minor($a); } @l;
+       $gitbranch=($l[0]=~m{^\s*origin/(.*?)\s*$})[0] or die;
+       spawn "cd $componentdir; git checkout $gitbranch";
+      }
       copyfiles $componentdir;
-      spawn "cd $componentdir; fedpkg verrel >$out/verrel";
+      spawn "cd $componentdir; $gitpkg verrel >$out/verrel";
       my $glob="$componentdir/*.src.rpm";
       @{[glob $glob]}==0 or die "Found some before test-srpm: $glob";
       # No `spawn' as we could get:
       # error: unpacking of archive failed on file X;4a56efef: cpio: MD5 sum mismatch
-      mockrun "cd $componentdir; fedpkg srpm";
+      mockrun "cd $componentdir; $gitpkg srpm";
       my @srcrpm=(glob $glob);
       @srcrpm==1 or die "Did not find 1 srcrpm: @srcrpm";
       $srcrpm=$srcrpm[0];
@@ -457,6 +522,7 @@ while (@distrouse || keys(%child)) {
       my $errs12="errs12";
       $errs12.=" -s" if $strip;
       $errs12.=" --target=$target" if $target;
+      $errs12.=" $options" if $options;
       $errs12.=" $configure" if $configure;
 
       if ($component eq "binutilscvs") {
@@ -469,27 +535,40 @@ while (@distrouse || keys(%child)) {
        my @check=($distro=~/-x86_64/ ? qw(-m64 -m32) : -m32);
        @check=map("check//unix/$_",@check);
        @check=map({($_,"$_/-fPIE/-pie");} @check) if $gdbcvspie;
+       my %flags=("CC_FOR_TARGET"   =>"gcc",
+                  "CXX_FOR_TARGET"  =>"g++",
+                  "GO_FOR_TARGET"   =>"gccgo",
+                  "GO_LD_FOR_TARGET"=>"gccgo",
+                  );
        # for i in ".join(" ",@check).";do $orphanripper make -k \$i || :;done
        sub runtestcc($)
        {
-         local($_)=@_;
-         s/ /\\ /g;
-         return ' RUNTESTFLAGS="CC_FOR_TARGET=gcc\ '.$_.' CXX_FOR_TARGET=g++\ '.$_.'"'
+         my($q0)=@_;
+         (my $q1=$q0)=~s/ /\\ /g;
+         (my $q2=$q1)=~s/ /\\ /g;
+         return ' RUNTESTFLAGS="'.join(' ',map($_.'='.$flags{$_}.'\ '.$q1,keys(%flags))).' GNATMAKE_FOR_TARGET=gnatmake\ --GCC=gcc\\ '.$q2.'"';
        }
+       die "FIXME" if $valgrind;
+         # .(!$valgrind?"":' RUNTESTFLAGS=--target_board=valgrind')
+         # .(!$valgrind?"":' HAMMOCK_VALGRIND=1')
+         # .(!$valgrind?"":' --without-python')        # FIXME: Fix valgrind --suppressions
        mockrun "cd $baretestsuite;"
-               .(!$valgrind?"":' HAMMOCK_VALGRIND=1')
                ." $errs12"
-               .(!$valgrind?"":' --without-python')    # FIXME: Fix valgrind --suppressions
-               ."; cd gdb; ulimit -c unlimited; "
-               .(!$gdbserver?"":'DEJAGNU=$HOME/src/runtest-gdbserver/site.exp ')
-               .(!$valgrind?"":'DEJAGNU=$HOME/src/runtest-valgrind/site.exp ')
+               .(!$bfd32?"":' --disable-64-bit-bfd')
+               ."; cd gdb; ulimit -c unlimited; DEJAGNU=$baretestsuite/site.exp "
                ."$orphanripper make -k ".join(" ",@check)
                # Ensure serial run if FORCE_PARALLEL=1 is not present
                ." RUNTESTFLAGS=DUMMY=dummy"
                .(!$gdbserver?"":' RUNTESTFLAGS=--target_board=native-gdbserver')
-               .(!$valgrind?"":' RUNTESTFLAGS=--target_board=valgrind')
-               .(!$gdbindex?"":' RUNTESTFLAGS="CC_FOR_TARGET=/bin/sh\ $PWD/cc-with-index.sh\ gcc CXX_FOR_TARGET=/bin/sh\ $PWD/cc-with-index.sh\ g++"')
+               # Missing GNATMAKE_FOR_TARGET!
+               .(!($gdbindex||$dwz)?"":' RUNTESTFLAGS="'.join(' ',map($_.'=/bin/sh\ $PWD/contrib/cc-with-tweaks.sh'
+                   .(!$gdbindex?"":'\ -i')
+                   .(!$dwz?"":'\ -m')
+                 .'\ '.$flags{$_},keys(%flags))).'"')
+               #.(!$gdbindex?"":' RUNTESTFLAGS="'.join(' ',map($_.'=/bin/sh\ $PWD/cc-with-index.sh\ '.$flags{$_},keys(%flags))).'"')
                .(!$dwarf?"":runtestcc "-gdwarf-$dwarf".(!defined $debug_types_section?"":'\ '.($debug_types_section?"-fdebug-types-section":"-fno-debug-types-section"))." -g0")
+               .(!$optimg?"":runtestcc "-Og -g0")
+               .(!$stabs?"":runtestcc(($stabs==1?"-gstabs":"-gstabs+")." -g0"))
                .(!$parallel?"":' FORCE_PARALLEL=1')
                ." || :; ".q{for t in sum log;do for file in testsuite*/gdb.$t;do suffix="${file#testsuite.unix.}"; suffix="${suffix%/gdb.$t}"; ln $file}." $out/gdb".q{$suffix.$t || :; done; done;};
       }
@@ -532,7 +611,7 @@ while (@distrouse || keys(%child)) {
       (my $base=$fname)=~s{^.*/}{};
       my $d="$resultout/$base";
       warn "+ link $fname $d\n";
-      link $fname,$d or warn $!;
+      ln $fname,$d;
     }
 
     exit 0 if $parallel;
index e2a8f3f..25a2694 100755 (executable)
@@ -9,10 +9,11 @@ local $_=shift;
 delete @ENV{qw(PATH BASH_ENV)};
 tr{/}{}s;
 s{^/var/lib/mock/}{};
-my $safe="([-_a-z0-9]+)";
+my $safe="([-_a-z0-9/]+)";
 $_=(/$safe/)[0];
+my $HOME=($ENV{"HOME"}=~/$safe/)[0];
 my $rpath="/var/lib/mock/$_/root";
-system "sudo /usr/local/sbin/mocksetup -s $_" and die "sudo mocksetup $_";
+system "sudo $HOME/bin/mocksetup -s $_" and die "sudo mocksetup $_";
 -e "$rpath/MOCK" or die "mocksetup $_ and still no $rpath/MOCK";
 my $user=$ENV{"USER"};
 $user=($user=~/$safe/)[0];
index 86170c0..da4800c 100755 (executable)
@@ -37,7 +37,10 @@ for r in $l;do
   fi
 
   echo >&2 -n "Locking $rpath/MOCK.mocksetup-lock ..."
-  lockfile -l 10 $rpath/MOCK.mocksetup-lock
+  if ! lockfile -1 -r 1 -s 1 $rpath/MOCK.mocksetup-lock;then
+       rm -f                 $rpath/MOCK.mocksetup-lock
+       lockfile -1 -r 1 -s 1 $rpath/MOCK.mocksetup-lock
+  fi
   echo >&2 " done"
 
   if $soft && [ -f $rpath/MOCK ];then
@@ -70,7 +73,7 @@ for r in $l;do
   # mock -q -r $r chroot true echo "$rpath lock check"
 
   for n in passwd group;do
-    cat /etc/$n $rpath/etc/$n|perl -ne 'print if /^(?:[^:]*:){2}(5\d\d):/'|sort|uniq -u|tee -a $rpath/etc/$n
+    cat /etc/$n $rpath/etc/$n|perl -ne 'print if /^(?:[^:]*:){2}(10\d\d):/'|sort|uniq -u|tee -a $rpath/etc/$n
   done
   if [ ! -f $rpath/etc/mtab-orig ];then
     c="mv -f $rpath/etc/mtab $rpath/etc/mtab-orig"
@@ -79,33 +82,100 @@ for r in $l;do
     echo $c; $c
   fi
 
+  cp -p /etc/resolv.conf $rpath/etc/resolv.conf
+
   dir="/dev/pts"
   c="umount $rpath$dir"
-  while $c 2>&1|grep -v ': not mounted$';do
+  if $c 2>&1|grep -v ': not \(mounted\|found\)$';then
     echo $c
-  done
+  fi
 
-  for dir in /home /usr/local/bin /dev /proc /sys /root;do
+  dir="/dev/shm"
+  c="umount $rpath$dir"
+  if $c 2>&1|grep -v ': not \(mounted\|found\)$';then
+    echo $c
+  fi
+
+  test -e $rpath/dev/pts && rmdir $rpath/dev/pts
+  if ! $u;then
+    mkdir -p $rpath/dev/pts
+  fi
+  test -e $rpath/dev/shm && rmdir $rpath/dev/shm
+  if ! $u;then
+    mkdir -p $rpath/dev/shm
+  fi
+  rm -f $rpath/dev/null
+  if ! $u;then
+    mknod -m 666 $rpath/dev/null c 1 3
+  fi
+  rm -f $rpath/dev/full
+  if ! $u;then
+    mknod -m 666 $rpath/dev/full c 1 7
+  fi
+  rm -f $rpath/dev/zero
+  if ! $u;then
+    mknod -m 666 $rpath/dev/zero c 1 5
+  fi
+  rm -f $rpath/dev/random
+  if ! $u;then
+    mknod -m 666 $rpath/dev/random c 1 8
+  fi
+  rm -f $rpath/dev/urandom
+  if ! $u;then
+    mknod -m 444 $rpath/dev/urandom c 1 9
+  fi
+  rm -f $rpath/dev/tty
+  if ! $u;then
+    mknod -m 666 $rpath/dev/tty c 5 0
+  fi
+  rm -f $rpath/dev/console
+  if ! $u;then
+    mknod -m 600 $rpath/dev/console c 5 1
+  fi
+  rm -f $rpath/dev/ptmx
+  if ! $u;then
+    mknod -m 666 $rpath/dev/ptmx c 5 2
+  fi
+  rm -f $rpath/dev/stdin
+  if ! $u;then
+    ln -s /proc/self/fd/0 $rpath/dev/stdin
+  fi
+  rm -f $rpath/dev/stdout
+  if ! $u;then
+    ln -s /proc/self/fd/1 $rpath/dev/stdout
+  fi
+  rm -f $rpath/dev/stderr
+  if ! $u;then
+    ln -s /proc/self/fd/2 $rpath/dev/stderr
+  fi
+  rm -f $rpath/dev/fd
+  if ! $u;then
+    ln -s /proc/self/fd $rpath/dev/fd
+  fi
+
+  mkdir -p $rpath/unsafe
+  for dir in /home /usr/local/bin /proc /sys /root /unsafe;do
     c="umount $rpath$dir"
-    while $c 2>&1|grep -v ': not mounted$';do
+    if $c 2>&1|grep -v ': not mounted$';then
       echo $c
-    done
+    fi
     if ! $u;then
       c="mount --bind $dir $rpath$dir"
       echo $c; $c
     fi
   done
 
-  dir="/dev/pts"
   if ! $u;then
-    c="mount --bind $dir $rpath$dir"
+    c="mount -t tmpfs mock_shmfs $rpath/dev/shm"
+    echo $c; $c
+    c="mount -t devpts -o mode=620,gid=5 mock_devpts $rpath/dev/pts"
     echo $c; $c
   fi
 
   c="umount $rpath/var/cache/yum"
-  while $c 2>&1|grep -v ': not mounted$';do
+  if $c 2>&1|grep -v ': not mounted$';then
     echo $c
-  done
+  fi
   if ! $u;then
     if [ -d /var/cache/mock/$r/yum_cache ];then
       cr=$r
@@ -135,8 +205,8 @@ for r in $l;do
   # Old systems incl. RHEL-6 do not feature it.
   if [ -d $rpath/etc/sudoers.d ];then
     rm -f $rpath/etc/sudoers.d/inteltest
-    if ! $u;then
-      ln /etc/sudoers.d/inteltest $rpath/etc/sudoers.d/inteltest
+    if ! $u;then :
+#      ln /etc/sudoers.d/inteltest $rpath/etc/sudoers.d/inteltest
     fi
   fi
 
index 84c018a..d942ba5 100755 (executable)
@@ -10,7 +10,8 @@ query=$1;
 
 #ldap_server="-h ldap.stuttgart.redhat.com"
 #ldap_server="-H ldap://127.0.0.1:3389"
-ldap_server="-H ldap://ldap.str.redhat.com:389"
+#ldap_server="-H ldap://ldap.str.redhat.com:389"
+ldap_server="-H ldap://ldap.corp.redhat.com:389"
 search_base="dc=redhat,dc=com"
 
 echo
diff --git a/bin/runtest-extserver b/bin/runtest-extserver
new file mode 100755 (executable)
index 0000000..0e0e657
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/bash
+set -ex
+b=boards/native-extended-gdbserver.exp
+test -e $b
+t=/tmp/extserver.$$
+trap 'rm -rf $t' EXIT
+rm -rf $t
+mkdir $t
+touch $t/site.exp
+mkdir $t/boards
+ln -s $PWD/$b $t/boards
+DEJAGNU=$t/site.exp runtest --target_board native-extended-gdbserver "$@"
diff --git a/bin/runtest-extserver-m32 b/bin/runtest-extserver-m32
new file mode 100755 (executable)
index 0000000..7d2f44f
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/bash
+set -ex
+b=boards/native-extended-gdbserver.exp
+test -e $b
+t=/tmp/extserver.$$
+trap 'rm -rf $t' EXIT
+rm -rf $t
+mkdir $t
+touch $t/site.exp
+mkdir $t/boards
+ln -s $PWD/$b $t/boards
+DEJAGNU=$t/site.exp runtest --target_board native-extended-gdbserver CC_FOR_TARGET="gcc -m32" CXX_FOR_TARGET="g++ -m32" "$@"
index a29af43..3fe5234 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 export EXPECT=$HOME/bin/expect-read1
-exec runtest "$@"
+exec runtest-gdbserver "$@"
index 3fe5234..a29af43 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 export EXPECT=$HOME/bin/expect-read1
-exec runtest-gdbserver "$@"
+exec runtest "$@"
diff --git a/public_html/cgi-bin/aladin b/public_html/cgi-bin/aladin
new file mode 100755 (executable)
index 0000000..0125253
--- /dev/null
@@ -0,0 +1,70 @@
+#! /usr/bin/perl
+use strict;
+use warnings;
+use LWP::Simple;
+use HTML::Entities;
+binmode STDOUT,":utf8";
+$|=1;
+my $args;
+if (exists $ENV{"QUERY_STRING"}) {
+  0==@ARGV or die "ARGV count != 0";
+  $args=$ENV{"QUERY_STRING"};
+} else {
+  1==@ARGV or die "ARGV count != 1";
+  $args=$ARGV[0];
+}
+my $URL="http://pr-asv.chmi.cz/aladin/index.php?$args";
+my $URLhtml=encode_entities $URL;
+if ($ENV{"GATEWAY_INTERFACE"}) {
+  print <<"EOH";
+Content-type: text/html; charset=utf8
+Pragma-directive: no-cache
+Cache-directive: no-cache
+Cache-control: no-cache
+Pragma: no-cache
+Expires: 0
+
+EOH
+}
+print <<"EOH";
+<html><head>
+<title>aladin@{[ !$URLhtml?"":": $URLhtml" ]}</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf8">
+</head><body>
+<form action="idnes-foto" method="get">
+       <input type="text" name="url" size="50" value="$URLhtml">
+       <input type="submit">
+</form>
+<hr>
+EOH
+my $content=get $URL;
+print "<table><tr><th></th>",map(sprintf("<th>%02dh</th>",$_*6),0..3),"</tr>\n";
+my $day="";
+my $days=0;
+my @day;
+sub flushday() {
+  print "<tr><td>$day</td>\n";
+  if (!$days) {
+    unshift @day,"" while @day<4;
+  } else {
+    push @day,"" while @day<4;
+  }
+  print "<td>$_</td>\n" for @day;
+  print "</tr>\n";
+  @day=();
+  $days++;
+}
+while ($content=~m{\n<tr><td bgcolor=wheat align=center>([^<>]*)<br>.*?<td bgcolor=lightgrey align=center>\s*(?:<img src=(http://portal.chmi.cz/files/portal/docs/meteo/ov/aladin/results/public/mapy/data/\S+)|([^<>]+))}gs) {
+  if ($day ne $1) {
+    flushday() if @day;
+    $day=$1;
+  }
+  push @day,$3||"<img src=\"$2\">";
+}
+flushday();
+print <<"EOH";
+</table>
+<hr>
+<p>EOF</p>
+</body></html>
+EOH
index 30f7da7..b538ddf 100644 (file)
@@ -1,4 +1,4 @@
-cvs python openssh-clients subversion gnupg vim-enhanced procmail bind-utils git ctags quilt perl-IO-Tty wget mutt koji strace cvs2cl ltrace db4-utils hexedit cvsutils redhat-rpm-config libtool autogen rpcbind nfs-utils yum-utils yum-plugin-auto-update-debug-info man fakeroot mercurial dwdiff man-pages cscope rpmdevtools sudo perl-CPAN xz-devel fedora-packager ed help2man intltool gperf gnome-common gnome-doc-utils libmudflap
+cvs python openssh-clients subversion gnupg vim-enhanced procmail bind-utils git ctags quilt perl-IO-Tty wget mutt koji strace cvs2cl ltrace db4-utils hexedit cvsutils redhat-rpm-config libtool autogen rpcbind nfs-utils yum-utils yum-plugin-auto-update-debug-info man fakeroot mercurial dwdiff man-pages cscope rpmdevtools sudo perl-CPAN xz-devel fedora-packager ed help2man intltool gperf gnome-common gnome-doc-utils libmudflap make
 ElectricFence
        ElectricFence.i386
        ElectricFence.i586
index b289477..ffccabf 100644 (file)
 
 static const char *progname;
 
-static volatile int signal_chld_hit = 0;
+static volatile pid_t child;
 
 static void signal_chld (int signo)
 {
-  signal_chld_hit = 1;
 }
 
 static volatile int signal_alrm_hit = 0;
@@ -62,7 +61,6 @@ static void signal_alrm (int signo)
 }
 
 static char childptyname[LINE_MAX];
-static pid_t child;
 
 static void print_child_error (const char *reason, char **argv)
 {
@@ -103,6 +101,44 @@ static int read_out (int amaster)
   return 1;
 }
 
+/* kill (child, 0) ==0 sometimes even when CHILD's state is already Z.  */
+
+static int child_exited (void)
+{
+  char buf[200];
+  int fd, i, retval;
+  ssize_t got;
+  char *state;
+
+  snprintf (buf, sizeof (buf), "/proc/%ld/stat", (long) child);
+  fd = open (buf, O_RDONLY);
+  if (fd == -1)
+    {
+      perror ("open (/proc/CHILD/stat)");
+      exit (EXIT_FAILURE);
+    }
+  got = read (fd, buf, sizeof(buf));
+  if (got <= 0)
+    {
+      perror ("read (/proc/CHILD/stat)");
+      exit (EXIT_FAILURE);
+    }
+  if (close (fd) != 0)
+    {
+      perror ("close (/proc/CHILD/stat)");
+      exit (EXIT_FAILURE);
+    }
+  i = sscanf (buf, "%*d%*s%ms", &state);
+  if (i != 1)
+    {
+      perror ("sscanf (/proc/CHILD/stat)");
+      exit (EXIT_FAILURE);
+    }
+  retval = strcmp (state, "Z") == 0;
+  free (state);
+  return retval;
+}
+
 static int spawn (char **argv, int timeout)
 {
   pid_t child_got;
@@ -156,6 +192,11 @@ static int spawn (char **argv, int timeout)
        assert (i == STDIN_FILENO);
 #endif
 
+       i = sigemptyset (&set);
+       assert (i == 0);
+       i = sigprocmask (SIG_SETMASK, &set, NULL);
+       assert (i == 0);
+
        /* Do not setpgrp(2) in the parent process as the process-group
           is shared for the whole sh(1) pipeline we could be a part
           of.  The process-group is set according to PID of the first
@@ -203,8 +244,13 @@ static int spawn (char **argv, int timeout)
       pollfd.fd = amaster;
       pollfd.events = POLLIN;
       i = ppoll (&pollfd, 1, NULL, &set);
-      if (i == -1 && errno == EINTR && signal_chld_hit)
-       break;
+      if (i == -1 && errno == EINTR)
+       {
+         if (child_exited ())
+           break;
+         /* Non-CHILD child may have exited.  */
+         continue;
+       }
       assert (i == 1);
       /* Data available?  Process it first.  */
       if (pollfd.revents & POLLIN)
@@ -224,7 +270,7 @@ static int spawn (char **argv, int timeout)
          exit (EXIT_FAILURE);
        }
       /* Child exited?  */
-      if (signal_chld_hit)
+      if (child_exited ())
        break;
     }
 
@@ -273,12 +319,10 @@ static int spawn (char **argv, int timeout)
       exit (EXIT_FAILURE);
     }
 
-  /* In the POLLHUP case we may not have seen SIGCHLD so far.  */
+  /* Not used in fact.  */
   i = sigprocmask (SIG_SETMASK, &set, NULL);
   assert (i == 0);
 
-  assert (signal_chld_hit != 0);
-
   /* Do not unset O_NONBLOCK as a stale child (the whole purpose of this
      program) having open its output pty would block us in read_out.  */
 #if 0
diff --git a/src/read1.c b/src/read1.c
new file mode 100644 (file)
index 0000000..47ba4b7
--- /dev/null
@@ -0,0 +1,22 @@
+#define _GNU_SOURCE 1
+#include <dlfcn.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+
+ssize_t
+read (int fd, void *buf, size_t count)
+{
+  static ssize_t (*read2) (int fd, void *buf, size_t count) = NULL;
+
+  if (read2 == NULL)
+    {
+      unsetenv ("LD_PRELOAD");
+      read2 = dlsym (RTLD_NEXT, "read");
+    }
+
+  if (count > 0 && isatty (fd) >= 1)
+    count = 1;
+
+  return read2 (fd, buf, count);
+}
index d027a2e..8034a48 100644 (file)
@@ -1,4 +1,29 @@
-# gdbserver running native.
+# Copyright 2011-2013 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
+
+# This file is a dejagnu "board file" and is used to run the testsuite
+# natively with gdbserver.
+#
+# To use this file:
+# bash$ touch ${my_dejagnu_dir}/my-dejagnu.exp
+# bash$ export DEJAGNU=${my_dejagnu_dir}/my-dejagnu.exp
+# bash$ mkdir ${my_dejagnu_dir}/boards
+# bash$ cp ${src_dir}/gdb/testsuite/boards/native-gdbserver.exp \
+#   ${my_dejagnu_dir}/boards
+# bash$ cd ${build_dir}/gdb
+# bash$ make check RUNTESTFLAGS="--target_board=native-gdbserver"
 
 load_generic_config "gdbserver"
 process_multilib_options ""
@@ -19,9 +44,6 @@ set_board_info gdb,noinferiorio 1
 # on the host.
 set_board_info gdb,nofileio 1
 
-# Can't do hardware watchpoints, in general.
-set_board_info gdb,no_hardware_watchpoints 1
-
 set_board_info sockethost "localhost:"
 set_board_info use_gdb_stub 1
 
@@ -31,24 +53,40 @@ set_board_info gdb_protocol "remote"
 set_board_info gdb_server_prog "../gdbserver/gdbserver"
 
 proc ${board}_spawn { board cmd } {
-  global board_info
+    global board_info
+
+    set baseboard [lindex [split $board "/"] 0]
+
+    set board_info($baseboard,isremote) 0
+    set result [remote_spawn $board $cmd]
+    set board_info($baseboard,isremote) 1
 
-  set baseboard [lindex [split $board "/"] 0]
+    return $result
+}
+
+proc ${board}_exec { hostname program args } {
+    global board_info
+
+    set baseboard [lindex [split $hostname "/"] 0]
 
-  set board_info($baseboard,isremote) 0
-  set result [remote_spawn $board $cmd]
-  set board_info($baseboard,isremote) 1
+    set board_info($baseboard,isremote) 0
+    set result [remote_exec $hostname $program $args]
+    set board_info($baseboard,isremote) 1
 
-  return $result
+    return $result
 }
 
 proc ${board}_download { board host dest } {
-  return $host
+    return $host
+}
+
+proc ${board}_upload {dest srcfile args} {
+    return $srcfile
 }
 
 proc ${board}_file { dest op args } {
     if { $op == "delete" } {
-        return 0
+       return 0
     }
     return [eval [list standard_file $dest $op] $args]
 }