Recent blog entries for esden

Ok ... I have not wrtitten a diary entry for a long time ... now I think I should continue with that.

dietlibc target

For the beginning PERL SUX terribly!!! At least build time ;)

After some intensive work I got the dietlibc target to compile through. It was a lot of work ... but it was very productive. Now most packets do compile and I already made the first test installation of the target.

What is missing (build time)

here is the output of ./scripts/Create-ErrList :

Error logs from default-2.0.0-rc2-x86-dietlibc-expert:
 
 [1] base/linux24                        [3] base/autoconf
 [5] base/linux24                        [5] base/linux26
 [5] base/autoconf                       [5] base/dump
 [9] base/linux26-src                    [9] base/linux24
 [9] base/linux26                        [9] base/autoconf
 [9] base/dump
 
151 builds total, 140 completed fine, 11 with errors.

As you can see linux2[46] are not compiling. That is due to some little problems in the drivers but not only that. The biggest problem is the missing perl in the build. That also prevents autoconf to compile.

I have already tryed to compile perl. Some people reported that it is possible and that it works pretty well. Aarad from dietlinux said that I need an other math library. But an other person reported that I only need to set the configuration options in config.sh correctly. I have tryed it and it compiled through up to the tiny perl binary that coredumped while executing Makefile.pl ... very strange. I will have to invest bit more time in that ... perhups today night. But I have to say Perl has a really nasty and ugly build/configuration system I have seen ever. Autoconf is really nice against it. (autoconf sux too but that is an other story (I will never understand why it has been rewritten in perl >_< ))

dump is also missing. The guys from the dump project use all possible gnu extinations. I have already fixed most problems that occure during the build and will report about that when I am finished. I will also send the diff upstream. Because most things are real bugs in my eyes. This program is not portable the way it is made currently. I was really running up the walls while fixing it.

What is missing (runtime)

ip was missing in my build. It is fixed now because iproute2 was disabled for the target. I also fixed it so that it builds hopefully correctly under dietlibc.

agetty is giving a login prompt and accepts a user name but when you type enter after the username nothing happens besides that agetty get's restarted. Looks like a coredump. It also needs further investigation.

Of course linux kernel is missing in the build so I took the kernel out of the install disk. It will be gone as soon as I get linux kernel working what most likely also means running perl >_< (I really go mad seeing that kernel build needs perl I know that there was a long discussion on the LKML about it but I still am a big enemy of such dependancies perl is not a trivial tool to compile like bash for god sake *headshake* I really do not want to scream more here)

Lot of work

Ok that is all for now... The target still needs a lot of work. But it seems that it will be usable soon.

If you want to help me get the rocklinux dietlibc related patches from the Rock Linux mailinglist apply it to the current SVN:HEAD and test it. They are not yet applyed because Rene is still working on his rc1+fixes tag for his PPC build. But they should come in soon. My dietlibc patches count over 30 parts. and I have another 5 lying on my harddisk. The count will grow. I hope that my work will not create any regressions. The dietlibc target is is also used in the bootdisc target. That means that if I make a mistake there it will break one of the most importaint parts of ROCK. That really scares me. I hope that I will see the bugs as soon as possible and will be able to fix them in time. I really do not want that because of me the release of the final 2.0 ROCK release will have to be postponed. That also means that I need testers!!!

The last word. If you have questions or problems please contact me.

And one more thing. Fefe dietlibc really get's better and better. Congrats! ;)

dietlibc target

I am now finally in the stage 2 of the build. And the first thing that I see, is a problem that is bit more complex (I had this already half year ago as I was working on dietlibc). When you try to compile anything with gcc and the option -pipe it fails. But it fails iregullary. Every 10th time it compiles through. That is a very strange behaviour. I hope that I or someone else will find a solution to this problem.

I will report this bug to the dietlibc guys. Perhups they know this problem and/or a solution.

The program I used for testing looks like this:

int main() {
  return 0;
}

The error message looks like this:

/usr/dietlibc/lib-i386/start.o(.text+0x11): In function `_start':
: undefined reference to `main'
collect2: ld returned 1 exit status

funny what ?

The fixes that make the dietlibc target compile till the 2nd stage should be in the ROCKLinux cvs soon. So if someone of you likes to can take a look in it. I will appreciate all help.

But till I have a solution i will remove -pipe from the command line using the cmd_wrapper (I really appreciate that we have it in ROCKLinux)

dietlibc target

I fixed the util-linux packet. It was so trivial that it is not really worth a mention.

Now e2fsprogs is on the way. The first error it provided was that strnlen is not avalable. So I took the strlen code included in dietlibc read it and spent some hours understanding it's inner workings. Only because &~ operator was not known to me I needed so much time understanding the code and prooving to myself that it really works ;-)

The operator has the following table:

a | b | a &~ b
---------------
0 | 0 | 0
0 | 1 | 0
1 | 0 | 1
1 | 1 | 0

for the ones that do not know this operator either ;-)

And after I understood it I converted the strlen code to strnlen. It is working ... but I think it could be done better.

The other question is where it should be added in dietlibc. This function is a GNU extination ... so it probably should go in libcompat dunno .. will send the patch to dietlibc mailinglist and we will see.

gcc3

I was reading dietlibc mailing list today and what do I see. Fefe is writing that he read in this diary here about the gcc3 problem and perhups I may write some more about it. So I wrote. It was pretty shocking because I have not imagined that anyone would make an effort and read my diary. So I wave in your direction Fefe *wave* (I also read your diary :-> )

dietlibc target

The mail on dietlibc mailinglist killed my schedule. I wanted to write to the diet mailinglist when I have something to show, cuz till now it is nearly nothing. Packets are compiling but this does not say that they work at all. I will see it in the 2nd stage first.

I still have not fixed linux-utils >_< . The proseminar and lectures are consuming too much time...

I have now merged the changes of Clifford's CVS and my own tree and started a dietlibc target build once more so that everything is clean. Now I can go to bed and sleep some hours....

Addendum to yesterday

Ok the day has not continued so negatively as I expected. I found the problem about curl on my main Intel machine. Because I updated glibc to 2.3.1 some days before it was not working anymore. I recompiled curl and everything was fine.

I also fixed perl on my laptop. Do not ask me how. I simply installed some Bundles and problems were gone and I can now continue to prepare the Seminar.

I also sent a bunch of patches to Clifford fixing another half a ton of packets in the Dietlibc target. Next package that has to be fixed is linux-utils.

Today (as for now)

I forced me to get to the university and hear the "Basic Algorithms" lecture. It was pretty interesting all in all. The guy was talking about searchtrees and operation complexity on them. That is not really hard but amusing.

Now I am hungry -> hunting ;-)

7 Jan 2003 (updated 8 Jan 2003 at 11:40 UTC) »

What a day. Yesterday after fixing some more packets I realized that binutils that I was using are old. Then curl started tu drop cores ... do not ask me why. Then I deleted my data for the proseminar that I had to hold today. Thenk god I could move it to the next week.

Now axpoint (the program I use to create the transparencies) is not working because perl has some problem. I can not fix it now because here at my university I can only use wlan but my wlan card is currently freezing my system. I wanted to recompile my kernel but make menuconfig says that sed is dropping core. God what is going on ... does the whole world hate me ?

I did something VERY bad ... that is it :-(

Now I have to wait for the people that will come to the seminar to tell them that they can go home.

Then I will head towords my home too... I hope my day will not continue so negatively ....

I post my first diary entry today. It will hopefully not be the last one. One thing that I would appreciate in the diary is that others can comment your diary entry's.

Today was my lucky day I finally found a bug that prevented gcc 3.2.1 to compile under dietlibc. Now I am one step closer to the dietlibc target in RockLinux.

It was not an error in dietlibc at the beginning but a stupid gnu extination to getcwd command. gcc3 is using this command in fixincl helper program. That the standard inconformance of glibc allowed the program to run correctly, but under dietlibc it was not working. Now I created a patch and sent it to the rock mailinglist. We will see what others will say. But as I know them Clifford will simply apply it and that is it ;-)

Now I should finally write the proseminar talk. I really do not know how. But I should make it till tomorrow evening. But I would prefere to fix md5 packet in the dietlibc target now. I want to finish that target. I started it so I have to finish. The only problem is that fixing all the problems in this are very difficult because they are not really straight forward and I have to learn the interna of the packets I fix and that consumes tons of time.

Ok off to hacking ;-)

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!