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.
_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
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
# 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"
`; }
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
);}
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 $_;'; };
ulimit -S -c 0
set +H
shopt -s mailwarn
+shopt -s direxpand
unset OPTIND
umask 022
$include /etc/inputrc
set bell-style none
+control-t: forward-search-history
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
# '!' 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
# 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
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
#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
#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
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
Compression no
+HostName 172.20.0.2
Host bombadil.infradead.org
User lace
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==
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==
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==
"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
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>
--- /dev/null
+#! /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
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
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
# 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
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
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
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
### 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}
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
echo >&2 -n '+'
echo "$arg"
echo
- changelogget -q $changelog $(wget -q -O - "$arg" | sed -n -e 's/&/\&/g' -e 's#^<a \+href="\(.*\)">\1</a>$#\1#p')
+ changelogget -q $changelog $(wget -q -O - "$arg" | sed -n -e 's/&/\&/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"
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
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,
#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,
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;
$lastfile=$_;
}
if (/^--- /) {
- $lastfile=$_;
+ $lastfile=$_.gitmark($_);
next;
}
if (/^\Q+++\E /) {
- $lastfile.=$_;
+ $lastfile.=$_.gitmark($_);
next;
}
$this->{"buffer"}.=$_;
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
#! /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
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
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)) &
-#! /bin/sh
-# $Id$
+#! /bin/bash
renice +19 -p $$; ionice -c3 -p $$
--- /dev/null
+#! /bin/sh
+export LD_PRELOAD=$HOME/src/read1.so
+exec /usr/bin/expect "$@"
"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',
};
#! /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
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
"$@"
rc=$?
set -e
-#git reset --hard
+git reset --hard
#git clean -dfx
echo rc=$rc
exit $rc
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";
my @distro;
my @componentdistro;
my @path;
+my @prefixpath;
my @arch;
my $component;
my $srcrpm;
# <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,
"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,
"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");
$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;
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";
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)=@_;
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 $$ || :";
spawn "uname -r >$dir/kernel";
my %dump=(
"path"=>$path,
+ "prefixpath"=>join(":",@prefixpath),
"component"=>$component,
"branch"=>$branch,
"srcrpm"=>$srcrpm,
"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
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};
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";
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];
my $errs12="errs12";
$errs12.=" -s" if $strip;
$errs12.=" --target=$target" if $target;
+ $errs12.=" $options" if $options;
$errs12.=" $configure" if $configure;
if ($component eq "binutilscvs") {
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;};
}
(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;
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];
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
# 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"
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
# 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
#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
--- /dev/null
+#! /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 "$@"
--- /dev/null
+#! /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" "$@"
#! /bin/sh
export EXPECT=$HOME/bin/expect-read1
-exec runtest "$@"
+exec runtest-gdbserver "$@"
#! /bin/sh
export EXPECT=$HOME/bin/expect-read1
-exec runtest-gdbserver "$@"
+exec runtest "$@"
--- /dev/null
+#! /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
-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
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;
}
static char childptyname[LINE_MAX];
-static pid_t child;
static void print_child_error (const char *reason, char **argv)
{
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;
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
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)
exit (EXIT_FAILURE);
}
/* Child exited? */
- if (signal_chld_hit)
+ if (child_exited ())
break;
}
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
--- /dev/null
+#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);
+}
-# 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 ""
# 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
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]
}