Le's profileSomething like a home pa...PhotosBlogListsMore Tools Help

Blog


    April 30

    我的龙芯笔记本终于能用了

    http://r0bertz.blogspot.com/2009/04/mips-n32-firefox-in-acid3-test.html

    当然,之前也可以用
    用它自己的系统
    不过这个系统被阉割的太多了,对开发者不够友好
    所以我只好还是用gentoo

    gentoo如果是o32系统,那之前也早就可以用了
    但是我现在搞的是n32

    但是n32的firefox总是有问题
    firefox搞不定,google都没法goo
    这个系统也就白搭了

    现在搞定了,以后出行就不需要带庞大的x86笔记本了
    April 25

    Rach said this to Ross in s10e16

    Rach: You really think I didn't say good to you is because I don't care?
    Ross: That's what it seemed like.
    Rach: I can not believe that after ten years, you do not know one thing about me.
    Ross: Fine, then why don't you say something?
    Rach: Because it is too damn hard, Ross! I can't even begin to explain to you how much I am gonna miss you. When I am thinking about not seeing you everyday, it makes me not want to go. OK? So, if you think that, that I didn't say goodbye to you is because you don't mean as much as everybody else, YOU ARE WRONG. It's because YOU MEAN MORE TO ME. So, there, alright? There is your goodbye!
    Ross: Rach!
    Rach: What!
    Ross: You can't You can't You can't...
    Rach: What!
    [Long kiss.....]
    April 24

    distcc and -march=native

    I have been testing xulrunner lately.
    But I found somehow distcc didn't work.
    So I decided to take some time to look into this.
    And I found that it was because of -march=native.
    When -march=native is used, distcc thought it must compile locally.

    The reason I used -march=native was that I wrote a debugemerge script in which I defined some customized CFLAGS, including -g and -march. In order to make it usable across architectures, only native could be used for -march. And it caught me here. Damn.


    龙芯上的非对齐访问

    龙芯有非对齐访问指令,编译器在给与足够信息的情况下也可以生成非对齐访问指令
    另外,如果是纯内存访问,不使用非对齐访问指令,直接load/store似乎也没有问题

    但是,如果load一个变量到c1协处理器的浮点寄存器,而这个变量位于非对齐地址上时,则必然会发生bus error。这就是N32 ABI的firefox Bus Error的根源。

    zhangle@2f ~ (n32) $ cat sigbus.c
    #include <stdio.h>
    struct foo {
            int i;
            long long d;
    } __attribute__((packed)) bar = { 1, 2 };


    int main(int argc, char **argv) {
            bar.d = 3;
            printf("%lu\n", bar.d);  
    }

    zhangle@2f ~ (n32) $ gcc sigbus.c -S
    zhangle@2f ~ (n32) $ cat sigbus.s
    ...
    main:
            .frame  $fp,32,$31              # vars= 16, regs= 2/0, args= 0, gp= 0
            .mask   0xc0000000,-8
            .fmask  0x00000000,0
            .set    noreorder
            .set    nomacro

            addiu   $sp,$sp,-32
            sd      $31,24($sp)
            sd      $fp,16($sp)
            move    $fp,$sp
            sw      $4,0($fp)
            sw      $5,4($fp)
            lui     $2,%hi(bar)
            addiu   $2,$2,%lo(bar)  
            li      $3,3                    # 0x3
            sdl     $3,11($2)
            sdr     $3,4($2)
    ...

    If we substitute the last two insns with "sd $3, 4($2)", it works just the same.
    If substitue with "ldc1 $f0, 4($2)", it will receive bus error.

    打印了龙芯2F用户手册

    对我来说,看pdf不是一件很舒服的事情
    不管用acroread,evince还是xpdf
    内存太少,512M

    这个手册只有200多页
    不过由于是单面打印
    打出来竟然也达到了understand the linux kernel的厚度
    而且还是A4

    真是有劳我roomie王俊杰了

    融入社区

    今天看到一则新闻,里面提到了我
    http://tech.it168.com/a2009/0304/267/000000267573.shtml
    这本身没什么好说的

    但里面一句话,令我感到很囧

    但是,从这件事情上,我意识到一个问题。那就是,我们需要融入到社区中,积极参与邮件列表的讨论,提交基于svn开发版本的patch,只有这样才能将自己的工作贡献到最终的GCC发行版中。如果只是在国内的论坛上发一些帖子,或者自己基于某个版本做一些修改,搞出一个仅供内部使用的版本来,最终还是无法被社区接受。

    这一点在我看来是再自然不过的事情
    同时也是我搞自由软件的原动力之一:让所有人都知道自己做过什么,通过长期的合作和社区里的其他人形成良好的关系
    这也是自由软件运动运作的基础条件之一:协调不同的参与者之间的开发行为,避免重复劳动

    有时候,哪怕你只是晚发了几个小时
    那份可能本应该属于你的荣誉就会旁落他人:
    http://www.nabble.com/MIPS--mplt-option-in-N32-abi-system-to20777579.html

    我最近看了一些龙芯相关的文档
    令我感到国内这个领域的高人其实应该还有很多
    可惜,他们好像仅仅满足于完成自己的工作,似乎从来没有想过融入社区,以至于他们很少被人知晓
    我觉得很可惜
    中国的自由软件给世人的印象是贡献的人太少,大部分人只是索取。
    这当然于从事的人少有关系。
    但如果目前所有从事的人都积极融入社区,那么中国的自由软件给世人的印象也会改观很多

    April 20

    原来旅行是如此让人神往的一件事情

    有种一发而不可收的感觉
    何日更重游……
    April 17

    mutt里批量移动邮件

    首先tag,t或者T,前者tag一个邮件,后者Tag符合一个pattern的邮件
    然后按;,后面跟任何命令,如果要移动就按s

    Great minds think alike

    http://groups.google.com/group/loongson-dev/browse_thread/thread/7e7ed6765c8c97d1

    特别要提到的是,我和yajin此前就此事完全没有进行过任何的私下交流
    所以只有英雄所见略同能解释了
    April 15

    婺源的方言

    http://upload.wikimedia.org/wikipedia/zh/c/c0/汉语族.png
    从此图上可以看到,徽语的区域覆盖了江西的东北角,那里就是婺源
    在婺源听到了当地人读“辣酱”,我当时就想到了我看过的中古汉语语音教程里"jiang"的发音
    http://www.youtube.com/view_play_list?p=3D56C369F16E43D0
    这次亲耳听到现实中有人这么读,那感觉真的挺奇妙的
    婺源被划归江西省真的是历史开的一个玩笑
    这倒有点像徐州,解放初也是在江苏和山东之间划来划去的
    不熟悉的人,听到我说徐州话,都会以为我是山东人,呵呵
    April 09

    脚上起了泡

    算算昨天走的路
    1. 桔子酒店到三元巷公安局
    2. 公安局到丹凤街新街口派出所
    3. 派出所到中山路乘地铁,坐一站到新街口,然后走到梅园新村
    4. 梅园新村出来找个地方午饭,再回梅园新村
    5. 梅园新村走到东大保卫科,然后去中山院上自习
    6. 东大走到北京东路,然后走到龙蟠中路221号去坐机场大巴(兜了个大圈子……)
    April 07

    今天去了深圳

    我去帮某个做发行版的公司解决上网本的问题
    见到了好几个本子
    大部分是Atom
    有一个是Geode LX
    几个本子都存在这样那样的问题
    非常诡异的问题
    解决起来不知道要花多长时间的问题
    解决了也不一定会有多少人知道,当然也就不会有成就感的问题
    因为那些是很少有人会去care的问题
    所以也是我不会很想去碰的问题
    我宁可这样没有任何收入的继续专心解决龙芯的问题

    这次其实就算是给那位刚入职不久的新工程师介绍介绍经验吧
    主要是看他还算好学
    算是做了一次家访吧
    除了把我所知道的能帮助解决问题的知识都倾囊相授之余
    我还给他介绍了www.szlug.org,介绍了#fedora-cn, #szlug@freenode
    令我有点惊奇的是这些他竟然之前都不知道
    不过除了这个,以及相比起我他还确实太junior之外(当然我在很多领域也是半桶水),这还是个不错的小伙
    btw, 他居然也是国米的球迷,也玩实况,而且玩的不赖,我也算找到了个对手
    虽然我跟他说了很多,但我不知道他是否真正都接受,特别是GPL和自由软件的意义
    anyway, good luck

    ps,那位经理真的是很忙,本来说晚上要再回来讨论一下“技术之外”的问题
    不过最后没有来
    这倒也好
    如果真的来了,谈好了,我倒要两难了
    现在我可以专心继续搞龙芯了
    April 04

    我要通读一遍龙芯2F手册

    太有必要了
    光看 see mips run 是不够的
    要因地制宜
    April 03

    This is SOMETHING!

    http://wiki.debian.org/SummerOfCode2009/Debian_loongson2f_N32_port

    Anthony终于出手了!
    上面还提到了我,嘿嘿