Posts

EAPI 2: SRC_URI Arrows implementation in portage

Background: http://ciaranm.wordpress.com/2008/09/28/eapi-2-src_uri-arrows/ Today I found arrows in SRC_URI is not working in my box, so I took a look at the code, found something, and sent this: http://www.nabble.com/a-little-patch-related-to-arrow-in-SRC_URI-td20732745.html However, as Zac pointed out, the better solution is not to define your own fetch and resume command but rely on the default one. The default ones are defined in /etc/make.globals: FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\"" RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\"" The rules of thumb is to make sure you save the file at ${DISTDIR}/${FILE}, since FILE is just the file name, doesn't include path. Previously I have fetch and resume command defined in make.conf, and have used "-P ${DISTDIR}" instead of "-O ${DISTDIR}/${FILE}". Maybe

A problem in Loongson 2F specific integer operation instruction patch

I have reported on gcc mailing list. http://gcc.gnu.org/ml/gcc/2008-11/msg00076.html Also I found the solution: http://gcc.gnu.org/ml/gcc/2008-11/msg00087.html Now I have built gcc-4.4 with my modified patch with "-march=mips3", and am building itself again using "-march=loongson2f". Note that enabling -O2 in later stages is not working yet. Please check this bug report for more information if you are interested: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38052 EDIT: just heard from Kumba, this flag used together with -O1 will trigger this bug: -foptimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. The modified gcc 4.4 ebuild is here and some relevant libraries here .

Gcc 4.4 Loongson 2F specific integer multiply/divide instruction patch

http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00273.html I have put it in my loongson overlay . BTW, the gcc svn ebuild is from dirtyepic's overlay. Thanks, ;) zhangle@2f ~ $ cat hello.c #include<stdio.h> int mul(){ unsigned long a = 0xffffffff; unsigned long b = 0xf; return a * b; } zhangle@2f ~ $ gcc -march=loongson2f hello.c -S zhangle@2f ~ $ gcc -march=mips3 hello.c -S -o hello-mips3.s zhangle@2f ~ $ diff -u hello.s hello-mips3.s --- hello.s 2008-11-08 18:16:52.000000000 +0800 +++ hello-mips3.s 2008-11-08 18:16:55.000000000 +0800 @@ -25,7 +25,8 @@ sw $2,8($fp) lw $3,12($fp) lw $2,8($fp) - multu.g $2,$3,$2 + mult $3,$2 + mflo $2 move $sp,$fp lw $fp,20($sp) addiu $sp,$sp,24

improvements (Gentoo specific) to distcc zeroconf support

distcc's got zeroconf support That is cool! However, there are problems (althouth not everyone got these problems). One of them is that if you have multiple version of gcc's or even cross compilers, distcc clients can't discover them, since distccd will only register your current active gcc. And if you want to change your native compiler's version, you must restart distccd in order to let it take effect. Having multiple gcc's may not be common in other distribution, but this is common in gentoo. This is what I have on my x86 notebook: gcc-config -l [1] i686-pc-linux-gnu-4.3.1 * [2] mipsel-unknown-linux-gnu-4.3.0-alpha20080731 [3] mipsel-unknown-linux-gnu-4.3.1 [4] mipsel-unknown-linux-gnu-4.4.0-alpha20080718 * [5] mipsel-unknown-linux-gnu-4.4.0-alpha20080801 [6] powerpc-unknown-linux-gnu-4.2.3 * So I made a little patch: https://bugs.gentoo.org/show_bug.cgi?id=233843 Hope there will be a distcc-2.18.3-r14 or distcc-3.0_rc4 in tree soon, ;)

make awstats support Gentoo

It makes me very uncomfortable that awstat-6.7-r2 in tree does not have support for Gentoo So I made a little patch and a little icon. http://tinyurl.com/5dj2x3 I have already tested it on www.gentoo-cn.org . It works. Hope upstream would accept it soon.

portage-2.2 preserve-libs FEATURES explained

Maybe I am not the right person to write about it. But I felt the necessity to write about it. So I will just write something about preserve-libs, leaving other FEATURES to more competent people. Portage-2.2 has already entered unstable tree. Many people has started using it. It has many new features, like preserve-libs, sets, license filter and so on. Please check README and RELEASE-NOTES for a complete list. I will only talk about preserve-libs. To understand why we need it, we have to know some background information. First of all, applications are not built from scratch. Any non trivial apps use lot of libraries. In GNU/Linux, most of them are shared libraries, i.e. .so files. You can use `ldd /usr/bin/mplayer` to check what shared libraries an app has been linked to, replace mplayer to whatever program you'd like to check. Shared libraries have versions. E.g. /usr/lib/libavformat.so.51, here 51 denotes its version. After upgrading, the version number may change. E.g. /usr/lib/

Some updates (docs, loongson, as-needed)

1. Documentation get updates regularly as usual. http://www.gentoo-cn.org/gitweb/?p=gentoo-cn;a=summary 2. Our table now can distinguish between file owner and file last updater when the file in question need to be updated. If the last updater is the owner, there will be an email link on the name; otherwise, there will be no link, but the name will be in red. The name is in the last column. http://www.gentoo-cn.org/trads/ http://rubyurl.com/0BD4 3. I will get my loongson 2f box soon, :-D 4. Just fixed an as-needed problem: http://bugs.gentoo.org/show_bug.cgi?id=225117 http://www.gentoo.org/proj/en/qa/asneeded.xml