| 01:30:29 | tzanger | damn |
| 02:52:57 | bug1 | #if #cpu(sparc) |
| 02:53:04 | bug1 | is that legit ? |
| 02:53:24 | bug1 | its in bb init.c |
| 02:53:37 | tzanger | it doesn't look to be but I'm not an expert |
| 02:53:53 | bug1 | same here |
| 02:54:16 | bug1 | tcc complains about but gcc doesnt |
| 03:26:12 | bug1 | make: *** [/home/bug1/busybox/orig/busybox.dup/shell/ash.o] Segmentation fault |
| 03:26:40 | bug1 | Does that mena make crashed or the compilr crashed trying to compil;e ash ? |
| 03:30:14 | tzanger | looks like make crashed |
| 03:30:16 | tzanger | weird |
| 03:30:38 | bug1 | ive never seen make crash |
| 03:30:57 | bug1 | its compiling with tcc, i would be surprised it that crashed |
| 03:31:59 | tzanger | what's tcc? |
| 03:34:29 | bug1 | tiny c compiler |
| 03:34:55 | bug1 | tinycc.org |
| 03:35:28 | bug1 | in a simple hello world test it produces code smaller than gcc -Os so ive been trying to compile busybox with it |
| 03:36:26 | bug1 | ahh, the crash is from tcc |
| 05:46:01 | bug1 | tcc: undefined symbol 'ELF32_ST_TYPE' |
| 11:29:20 | tzanger | mornin all |
| 12:39:40 | tzanger | mjn3 great news |
| 12:39:45 | tzanger | I got it working |
| 12:40:03 | mjn3 | very good. figured out what the problem was? |
| 12:40:14 | tzanger | yes, but I"m confused |
| 12:40:19 | tzanger | the problem was lazy linking |
| 12:40:25 | tzanger | changed it to global and it worked |
| 12:40:58 | tzanger | same with in DynaLoader.pm -- I had to set dl_load_flags to 0x01 or it wouldn't work |
| 12:43:34 | tzanger | i.e. RTLD_LAZY doesn't seem to work when the shared lib has other shared lib dependencies (well other than libc, which is another mystery in itself) |
| 12:44:32 | mjn3 | more accurately, it doesn't work for you... so the question is "what is different in your case?" |
| 12:44:47 | tzanger | well yes that is what I mean of course :-) |
| 12:45:02 | tzanger | I'm *fairly* certain it's not a toolchain issue now |
| 12:45:25 | tzanger | perhaps some option I didn't enable in the uclibc config which buggered up lazy linking |
| 12:50:24 | mjn3 | if you're up to it, you could look at uClibc's ldso/ldso/Makefile and enable some of the debugging stuff to get some info about what is going on |
| 12:50:37 | andersee | morning all |
| 12:50:41 | mjn3 | morning |
| 12:50:53 | tzanger | morning |
| 12:51:19 | tzanger | andersee: my dlopen problem is related to RTLD_LAZY (using RTLD_GLOBAL) makes the problems disappear |
| 12:51:31 | andersee | tzanger: Hmm |
| 12:51:38 | tzanger | andersee: could a screwy toolchain be causing that or did I perhaps just muck up uclibc somehow |
| 12:54:05 | andersee | tzanger: I'll bey you $1 its a screwy binutils |
| 12:54:08 | andersee | err |
| 12:54:09 | andersee | bet |
| 12:54:37 | tzanger | damn. I'll take a close look at my binutils this afternoon |
| 12:55:16 | tzanger | anyway I've been bugging you guys for days... and my own project deadline approacheth. I best get some work done on it. :-) Thanks for all your help! |
| 13:34:09 | andersee | morning Glenn |
| 13:34:21 | andersee | I see you've been busy.. |
| 13:34:26 | bug1 | what would you think of about an ifup and ifdown applets ? |
| 13:34:42 | tzanger | why not ifconfig up and ifconfig down? |
| 13:34:54 | bug1 | andersee: yea... ive been cutting loose |
| 13:35:33 | bug1 | i was experimenting with tinycc |
| 13:35:53 | bug1 | i got it to compile busybox but had to hand modify the makefile |
| 13:36:14 | bug1 | tcc produces a heaps bigger binary unfortunately |
| 13:36:20 | andersee | :-( |
| 13:37:00 | bug1 | to get it to compile i first went through and compiled it with gcc -ansi, to do that i had to remove // comments |
| 13:37:15 | andersee | I saw. No problem there. |
| 13:37:16 | mjn3 | not surprising since it isn't doing near the optimization that gcc does |
| 13:37:23 | bug1 | while i was at it i figured i may as well use indent, consistency is good |
| 13:38:22 | bug1 | mjn3: i first thought that tiny cc menat it was designed to compile a tiny binary.... but i think its just the compiler is small |
| 13:38:35 | tzanger | heh |
| 13:38:42 | tzanger | couldn't fit all the optimization code in |
| 13:39:15 | bug1 | vodz wasnt too happy with ash, but if got his patch commited now, and the one ugly section has been improved |
| 13:39:41 | mjn3 | i think the name comes from the size of the compiler. it grew out of a c subset compiler he wrote that was something like 4k |
| 13:40:01 | bug1 | mjn3: ah |
| 13:40:03 | mjn3 | it is still quite small for what it does |
| 13:40:22 | bug1 | mjn3: ash.c makes tcc crash |
| 13:40:45 | mjn3 | ash.c does nasty things to me too... ;-) |
| 13:41:05 | andersee | LOL |
| 13:41:21 | mjn3 | of course, some of the weirder code in ash.c is mine, so i guess i can't say much... |
| 13:43:13 | bug1 | tzanger: i was thinking of the debian ifup and ifdown which make it pretty simple to setup networking, its really a higher level app that calls dhcp, ifconfig, route, etc... maybe its overkill for busybox though ? |
| 13:43:31 | tzanger | ah |
| 13:44:00 | tzanger | I dunno, i've always been happy with ifconfig/route or dhcpcd, but I"m an old slack user |
| 13:44:36 | bug1 | tcc is pretty pedantic, had to cast to assign values to dev_T variables |
| 13:45:35 | bug1 | there were a couple of global variables that were declared twice, gcc didnt complain, but tcc picked it up |
| 13:45:39 | bug1 | which was good |
| 13:45:50 | mjn3 | i've got no problems with ifup/ifdown in busybox. they'd be configurable of course. i do have to confess though that i've been somewhat disappointed with some of the bloated applets that have been added to busybox of late. |
| 13:49:00 | bug1 | mjn3: which ones ? |
| 13:52:59 | mjn3 | well, "lately" may not be quite right. it may just be that i never noticed them before. but i was looking around the other day and was amazed at how bloated fbset was for instance. |
| 13:53:00 | mjn3 | hwclock needs a lot of work |
| 13:53:01 | bug1 | actually some of the code i ran indent on looked like it could be improved |
| 13:53:44 | mjn3 | i know there have been a number of posts to the list like "here's a mini such-n-such for busybox" and all people have done is do a quick port. no modifications or rewriting to reduce code size, etc. i've even replied to a couple |
| 13:56:05 | bug1 | yea, still, even if theyve only done a quick job, its a start. Maybe we just need to identify whioh applets have been done properly and which ones need work |
| 13:56:19 | bug1 | classify them |
| 13:57:50 | mjn3 | maybe i'm just complaining... but i know how much work i put into ifconfig to get it as small as it is, and a while back i vodz, aaron, and i trimmed about 4k from ash. so when i see something that's obviously bloated it is kind of annoying that whoever's responsible wasn't willing to put in a little more effort |
| 13:58:18 | mjn3 | classification would be good |
| 14:00:04 | bug1 | ive got plans to redo all the archive code as well, making it more generic to remove a lot of conditions and variable parsing, it will save a few kB but its a lot of work, ive got a couple of applets working sofar |
| 14:00:47 | bug1 | using function pointers a lot |
| 14:02:04 | bug1 | actually ive go a new libbb/make_directory to commit as well |
| 14:02:48 | mjn3 | hmm. i actually need to put my name on a couple of functions in libbb. some of those i wrote before the breakup into seperate files. |
| 14:08:24 | mjn3 | ifconfig took me a couple of days. i wrote kind of a virtual machine and mini-language to implement it, since there was so much redundant work involved in supporting all the options. getting rid of the big switch was a big win |
| 14:08:44 | bug1 | i dont think xstrlen is need now either, gcc 3.2 doesnt inline builtins now i dont think |
| 14:09:32 | bug1 | mjn3: cool |
| 14:10:48 | andersee | bug1: assuming everyone updates to gcc 3.2... |
| 14:12:23 | andersee | I think gcc 3.2 is good enough that _hopefully_ gcc 2.95 can finally die. But I think we'll still be seeing it around for quite a while |
| 14:13:04 | tzanger | is it possible to put that as a config option that #defines xstrlen if using 3.2? |
| 14:18:26 | bug1 | tzanger: not sure |
| 14:39:58 | bug1 | bbl |
| 16:04:51 | bug1 | i broke ash :( |
| 16:05:13 | bug1 | will fix soon |
| 16:06:23 | andersee | :( |
| 16:06:25 | andersee | k |
| 16:07:06 | tzanger | I know that bb's vi d-> or d<- command works for eric -- I'm using TERM=linux or vt100 without luck... do I need to load a keymap or anything like that? vim 6.1 seems to work alright but I'd rather not have another 390k just for an editor |
| 16:07:58 | tzanger | bug1: does bb ash support esc-backspace to delete the previous word or is it just my same weird term problem preventing that |
| 16:11:27 | bug1 | tzanger: im not sure, i havent played with it that much... i just applied vodz patch for him to make up for my indenting which he didnt like... now im digging myself into a deeper hole |
| 16:13:22 | tzanger | hmm |
| 16:15:01 | bug1 | ah crap the diff didnt work |
| 16:18:50 | bug1 | better now |
| 17:19:03 | tzanger | good run? |
| 17:23:13 | mjn3 | good that i went... |
| 17:43:03 | andersee | mjn3: I just split the arch dependant stuff from errno_values.h out into alpha/bits/errno_values.h mips/bits/errno_values.h sparc/bits/errno_values.h |
| 17:44:43 | mjn3 | andersee: uh.. thanks.. this is turning out to be a real pain to fix. :-( |
| 17:45:37 | tzanger | oh mjn3 - I failed those io tests in perl because I didn't have an /etc/protocols |
| 17:46:01 | mjn3 | ah.. ok |
| 17:47:15 | tzanger | now I fail about 5 tests all relating to shm which you said was the only thing left :-) |
| 17:47:21 | tzanger | oh |
| 17:47:25 | andersee | tzanger: yup. |
| 17:47:40 | andersee | The shm thing is nasty tofix |
| 17:47:57 | tzanger | perl 5.8.0 defaults to using nm to searching for all functions instead of compiling a bazillion little apps -- and gets it wrong because it finds an isnan() function |
| 17:48:18 | tzanger | andersee: I am not worried about it at all. :-) Someday I will need shmem but not yet |
| 17:48:28 | andersee | mjn3: I'm about to split up bits/stat.h as well. |
| 17:48:42 | mjn3 | andersee: i bet. would you believe newlib implements strerror with a big switch statement and includes all the error strings in the functions... |
| 17:48:49 | tzanger | andersee: how long did it take you to create uclibc and get it to the point were it was usable for most apps? |
| 17:51:12 | mjn3 | tzanger: which tests are failing for you? |
| 17:51:33 | tzanger | mjn3: only those requiring shm |
| 17:51:45 | tzanger | or did you mean when using nm to extract the symbols? |
| 17:51:57 | andersee | tzanger: dunno exactly. The CVS tree goes back to 2000/05/14... |
| 17:52:21 | tzanger | I thought uclibc was older than that |
| 17:52:34 | tzanger | andersee: what possessed you to start writing it? |
| 17:53:53 | mjn3 | tzanger: parts of uClibc are much older. i believe erik is talking about when he forked from uC-libc |
| 17:54:07 | tzanger | ah |
| 17:56:28 | andersee | tzanger: See " What is the history of uClibc? Where did it come from?" in http://uclibc.org/FAQ.html |
| 17:56:50 | tzanger | I really should stop asking questions like that. :-/ |
| 17:57:05 | andersee | :-) |
| 17:58:46 | andersee | tzanger: easier for me to point to the docs, thats all. |
| 17:59:03 | tzanger | you're right |
| 17:59:18 | tzanger | I was just making conversation and was curious, didn't think ot check the website under those circumstances |
| 18:01:30 | mjn3 | andersee: glibc uses array element initializers to create an arch-specific sys_errlist[]. i don't want to go that route though... |
| 20:12:17 | aaronl | morning |
| 20:34:40 | aaronl | andersee: i have some patches that increase ANSI compliance; i'm not sure what i should do with them. right now the only useful C compiler is gcc, and the patches will really only complicate the code |
| 20:34:50 | aaronl | (busybox of course) |
| 20:35:57 | aaronl | yay |
| 20:35:58 | aaronl | o Abort IDE cd reads immediately on medium (Erik Andersen) |
| 20:35:59 | aaronl | error as that isnt correctable |
| 20:38:35 | andersee | :) |
| 20:39:09 | andersee | See my followup post though... That is only 1/2 of fix. |
| 20:39:50 | mjn3 | andersee: are you aware of any uClinux apps that might still be using sys_errlist[]? and if so, do we care? or can we officially kill of sys_errlist[]? |
| 20:40:30 | aaronl | andersee: yeah, we've talked about that patch's inadequacy before |
| 20:40:52 | aaronl | andersee: do you have a CD burner? |
| 20:43:18 | andersee | aaronl: yup |
| 20:44:10 | andersee | mjn3: I think with proper hinting (link error msg? header file magic?) we can safely lose sys_errlist |
| 20:44:39 | andersee | aaronl: I've not used it to burn CDs for over an hour though... |
| 20:45:29 | aaronl | huh? |
| 20:45:36 | mjn3 | andersee: cool. i'm thinking that i'll probably make the "internal" errno ordering equal to the common (eg. i386) case and do special-case handling of the 3 odd archs. if they're odd, they should be the ones paying for the diff |
| 20:45:44 | aaronl | andersee: was wondering if you had seen/could look at http://www.spinics.net/lists/kernel/msg102887.html |
| 20:46:23 | aaronl | i'm wondering if DAO causes it to use PIO mode or some other stupid thing |
| 20:49:49 | andersee | aaronl: hmmm |
| 20:51:04 | andersee | mjn3: I'm ok with that plan. I dont mind if alpha/sparc/mips suffer a penalty. strerror is hardly a critical fast path. |
| 20:52:22 | andersee | aaronl: I've not used the -dao option I've afraid... |
| 20:53:02 | mjn3 | andersee: indeed. as it stands right now, strerror is running through one long multistring to find the correct one... much like the busybox help stuff |
| 20:53:14 | andersee | But I can certainly feel it when the drive is doing PIO. cdrom PIO does indeed cause plenty of lag |
| 20:53:19 | aaronl | try it on audio tracks. the only difference in the output will be a lack of gaps between the tracks |
| 20:53:25 | aaronl | (i burn all my audio cds that way) |
| 20:55:17 | aaronl | hey, is this patch to usage.h OK: |
| 20:55:18 | aaronl | - "$ dc 8 8 \* 2 2 + /\n" \ |
| 20:55:18 | aaronl | + "$ dc 8 8 * 2 2 + /\n" \ |
| 20:55:23 | aaronl | - " -b|--b-long) echo \"Option b, argument \`$2'\" ; shift 2 ;;\n" \ |
| 20:55:23 | aaronl | + " -b|--b-long) echo \"Option b, argument `$2'\" ; shift 2 ;;\n" \ |
| 20:55:32 | aaronl | - " *) echo \"Option c, argument \`$2'\" ; shift 2 ;;\n" \ |
| 20:55:32 | aaronl | + " *) echo \"Option c, argument `$2'\" ; shift 2 ;;\n" \ |
| 20:55:41 | aaronl | - "[-fqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n\[-p file] [-r IP] [-s script]" |
| 20:55:41 | aaronl | + "[-fqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n[-p file] [-r IP] [-s script]" |
| 20:55:45 | aaronl | (context snipped) |
| 21:01:30 | andersee | aaronl: looks ok.. |
| 22:26:15 | andersee | mjn3: I just finished splitting out struct stat from bits/stat.h |
| 22:33:12 | mjn3 | andersee: i just finished dinner |
| 22:33:39 | mjn3 | let me do a cvs up and rebuild. i'll run the perl and python tests |
| 22:49:30 | andersee | mjn3: wait on that for a sec... |
| 22:49:37 | andersee | I've got one more change to commit first. |
| 22:50:22 | andersee | I need to fix bits/types.h as well. Right now I'm pulling in asm/posix_types.h which turns out to break powerpc amoung others. |
| 22:51:33 | mjn3 | andersee: ok. i was noticing a couple of problems... |
| 22:52:20 | andersee | oh? |
| 22:52:30 | andersee | types.h or something else? |
| 22:53:46 | mjn3 | hadn't tracked it down. hadn't even started looking. i'll wait until you finish committing |
| 22:54:42 | andersee | k |
| 23:50:04 | andersee | very cool. It seems to be compiling... |
| 23:52:08 | andersee | Committing to cvs now. |
| 23:52:09 | mjn3 | good. |
| 23:53:15 | andersee | I'm pushing the change out to the cvs server, then I'll test it on powerpc. |
| 23:53:22 | andersee | Ick that was a painful one. |
| 23:53:29 | mjn3 | ok. i'll cvs up and run some tests |
| 23:53:34 | andersee | I think I got it right for all arches though. |
| 23:56:36 | andersee | Doh! |
| 23:56:43 | andersee | I forgot one little piece. |