| 00:04:37 | andersee | tzanger: yes |
| 00:05:02 | tzanger | what was the cause? Or what were the causes rather? |
| 00:06:24 | andersee | lots of things. C++ name mangling. coding bugs. |
| 00:06:40 | andersee | Without specifics the question is meaningless |
| 00:06:41 | tzanger | heh yeah I suppose that was a pretty open-ended question :-) |
| 00:08:03 | tzanger | uclibc-0.9.14. no glibc on the system. no wchar or locale. I can compile (and use) practically everything, including perl. However Perl dynamic module loader (dynaloader) cannot resolve symbols properly |
| 00:08:32 | tzanger | now mjn3 tested the same code as I with his copy of uclibc (with locale and wchar) and it seemed to work just fine for him |
| 00:08:41 | tzanger | I'm afraid I don't know much else about his system |
| 00:10:06 | tzanger | It doesn't seem to have anything to do with ld.so.conf/cache, as I was playing aroudn with perl trying to see if I could "ease into" the problem by talking to dynaloader myself |
| 00:14:21 | andersee | ld.so.conf/cache are not relevant to uclibc |
| 00:14:45 | tzanger | ok. the don't seem to be relevant to DynaLoader even on a glibc system |
| 00:26:54 | tzanger | mjn3: what version of uClibc are you running? CVS? |
| 00:27:54 | mjn3 | that... or cvs-to-be ;-) |
| 00:27:59 | tzanger | heh |
| 00:28:28 | mjn3 | currently cvs |
| 00:28:46 | tzanger | well... is a cvs snapshot close enough? I'm lost on this perl dynaloader -- I tried testing the Compress::Bzip2 too but got the exact same errors... I swear there is *only* uclibc on this system |
| 00:29:55 | mjn3 | snapshot should be good enough to pass most of the tests |
| 00:30:12 | tzanger | ok |
| 00:30:17 | tzanger | I'll give that a shot I think |
| 00:30:18 | mjn3 | i did do an interactive perl config |
| 00:30:37 | tzanger | yeah so did I -- anything out of the ordinary there that you turned on or turned off? I pretty much went with the flat-out defaults |
| 00:31:29 | mjn3 | the main change for me was the location of libc as i recall, but i'm not running a uclibc-only system |
| 00:31:46 | tzanger | *nod* - and perl finds /lib/uclibc.so as the c library |
| 00:35:54 | mjn3 | tzanger: are you building on a uclibc-only system? if so it might be some toolchain issue |
| 00:36:17 | tzanger | mjn3: well that's where it gets a little confusing :-) |
| 00:36:35 | tzanger | I built a static toolset (based on slack8, so glibc, but all static, everything *everything* static) |
| 00:37:05 | tzanger | then I created a chrooted environment and built uClibc and compiled the toolset all dynamically linked against uclibc |
| 00:37:27 | tzanger | in retrospect I should create a build environment all statically linked against uclibc instead |
| 00:37:46 | mjn3 | have you tried using ltrace on perl running one of the failing tests? |
| 00:37:54 | tzanger | no |
| 00:37:56 | tzanger | not yet |
| 00:37:59 | tzanger | I have to compile ltrace :-) |
| 00:42:43 | tzanger | holy shit |
| 00:42:45 | tzanger | that's a lot of output |
| 00:44:15 | mjn3 | indeed... |
| 00:44:26 | tzanger | I don't think I'll paste that to the channel :-) |
| 00:44:33 | tzanger | I'm familliar with strace output but ltrace is new to me |
| 00:45:32 | mjn3 | well people, i'm calling it a day. later |
| 00:45:40 | tzanger | later mjn3 thanks for the help |
| 00:45:51 | mjn3 | sure |
| 04:09:05 | WileHaquer | \leave |
| 12:07:41 | tzanger | whee |
| 12:07:46 | tzanger | I get to try CVS uclibc today :-) |
| 12:10:57 | andersee | yeah |
| 12:31:10 | tzanger | andersee: would you recommend wchar support? I personally don't see a need for it but I'm thinking in terms of things breaking without it |
| 12:38:14 | andersee | err |
| 12:38:21 | andersee | you don't need it, then leave it out... |
| 12:40:16 | tzanger | well I don't need LFS but e2fsprogs won't compile without it... that's the type of thing I meant |
| 12:43:34 | tzanger | I spotted this in the CVS install process: |
| 12:43:35 | tzanger | ar rv ./tmp/libgcc-need.a |
| 12:43:35 | tzanger | Finding missing symbols in libc.a ... |
| 12:43:35 | tzanger | partial linking... |
| 12:43:35 | tzanger | ../libc.a(getttyent.o): In function `setttyent': |
| 12:43:38 | tzanger | getttyent.o(.text+0x3d7): Oddly enough, __fsetlocking() is NOT threadsafe. |
| 12:46:43 | andersee | yup |
| 12:46:47 | andersee | Its true. |
| 12:46:56 | andersee | __fsetlocking() is not threadsafe |
| 12:46:58 | tzanger | ok just wanted to make sure I didn't screw something up :-) |
| 12:48:57 | tzanger | hmm I take it the cvs lib isn't binary compatible with 0.9.14 :-) |
| 12:49:18 | andersee | very true... |
| 12:49:30 | andersee | Several critical structures changed size. |
| 12:49:33 | tzanger | ok |
| 12:49:45 | tzanger | I was getting tons of "can't find __xstat" and __xstat64 and so on |
| 12:50:03 | tzanger | is going to be a uclibc compile guru before long if he keep screwing things up at this rate :-) |
| 12:51:24 | andersee | tzanger: yup. All those *xstat funcs are gone. |
| 12:52:15 | tzanger | with cvs busybox: what's start-stop-daemon and run-parts? |
| 12:53:47 | andersee | tzanger: there are docs covering such things.... |
| 12:54:20 | tzanger | Hmm.. I will check again (the help in the menuconfig isn't there, which is why I asked) |
| 12:55:15 | andersee | tzanger: yeah. I still need to integrate the help into the config system. |
| 12:55:24 | andersee | However the docs _are_ there in the docs dir |
| 12:55:28 | tzanger | ah |
| 12:55:30 | tzanger | ok |
| 12:55:31 | tzanger | my apologies |
| 12:55:36 | andersee | no prob |
| 12:55:57 | andersee | Just easier to point you to the docs then try to spew things here |
| 12:56:01 | tzanger | agreed |
| 13:32:18 | andersee | morning |
| 13:35:22 | tzanger | hmm |
| 13:35:31 | tzanger | fileutils is barfing about dirent's d_type |
| 13:38:06 | sjhill | g'morning andersee |
| 13:38:40 | andersee | sjhill: did you see all the binary-incompatible header changes yesterday? |
| 13:38:58 | sjhill | andersee: no, yesterday was kernel day, today is toolchain day |
| 13:39:05 | sjhill | andersee: what's up? |
| 13:40:19 | andersee | Changes to struct stat and firends to match the kernel structs (no more *xstat wrappers). There is one more change happening today to the shm headers, then with luck I'll push out a bugfix release this afternoon |
| 13:41:42 | tzanger | I think something may be up with LFS in the cvs version -- I have DO_LFS=true but both bzip2 and fileutils aren't compiling unless I disable their detection of large file support |
| 13:46:11 | tzanger | DTTOIF is defined in my build, but I'm not using BSD... |
| 13:49:06 | mjn3 | tzanger: LFS behavior has not changed in some time. also, both perl and python are passing the large file support tests on my box |
| 13:50:10 | tzanger | I'm not *using* lfs but things like bzip2 and fileutils break without it |
| 13:50:27 | tzanger | bzip2 was easy to fix |
| 13:50:42 | tzanger | fileutils is proving harder. --disable-largefile isn't behaving |
| 13:53:15 | tzanger | I went back and set DOLFS=false and made clean all install for uClibc but the same problem exists. DTTOIF gets defined |
| 13:53:56 | tzanger | I just #if 0'd the relevant bit in ls.c |
| 13:56:18 | mjn3 | which version of fileutils? |
| 13:56:22 | tzanger | 4.1 |
| 13:59:30 | tzanger | gawk won't link (can't find -ldl) even though /usr/lib/libdl.so (and libdl.so.0.9.14) is there |
| 14:00:03 | tzanger | oh wait |
| 14:00:04 | tzanger | duh |
| 14:04:49 | mjn3 | andersee: erik, i just saw your post about long long support. while the drand stuff has been fixed, there are still lots of issues with disabling long long. |
| 14:28:31 | mjn3 | andersee: erik, why is libthread_db installed when threads are disabled? |
| 14:35:05 | andersee | mjn3: It is? Probably because I'm an idiot then. |
| 14:35:10 | andersee | lemme fix that |
| 14:35:26 | andersee | It should only be installed when threads and debug are enabled |
| 14:35:53 | andersee | doh! |
| 14:36:12 | andersee | Yup. I screwed that one up. Moved things outside the threads check. |
| 14:38:13 | mjn3 | thanks. at the moment, i'm trying to figure out why fileutils configure is adding -lrt to LIBS |
| 14:38:17 | andersee | anyway, its fixed now |
| 14:52:09 | tzanger | there |
| 14:52:19 | tzanger | now I have a statically linked build environment based on uClibc |
| 14:52:25 | tzanger | now let's see if I can't make some headway |
| 15:06:43 | mjn3 | tzanger: there is an issue with fileutils with --disable-largefile. i'll look at it later today. |
| 15:52:06 | andersee | builds gcc-3.2 |
| 15:57:38 | tzanger | wonders what the different featuresets of vim6.1 are -- no docs |
| 16:03:38 | tzanger | time for perl |
| 16:06:21 | tzanger | This probably doesn't make sense, but I'm trying to compile a static gawk-3.1.1 and the linker is failing because it can't find -ldl. now libdl.so is there, but I don't think there is such thing as a static dynamic linker library... is this the cause of my grief? |
| 16:12:30 | tzanger | ah |
| 16:12:48 | tzanger | broken configure assumes that if dynamic library capabilities exist that I want them :-) |
| 16:24:33 | tzanger | bah |
| 16:24:37 | tzanger | perl needs large file support too |
| 16:29:55 | tzanger | andersee: should I be using dld or dlopen for perl's dynamic lib loading with uClibc? |
| 17:03:35 | tzanger | damn |
| 17:03:40 | tzanger | all that work and I'm no closer |
| 17:03:48 | tzanger | /usr/bin/perl: symbol 'bzBuffToBuffCompress': can't resolve symbol 'L' |
| 17:04:07 | tzanger | instead of 'funnysymbolL' it's just L now though :-/ |
| 17:12:45 | tzanger | mjn3: which dynamic loader did you tell Perl to use? dlopen is the default for linux but I'm wondering about dld in particular |
| 17:15:38 | mjn3 | mjn3@mars:~/work/embedded/fileutils-4.1$ ~/ureadelf ../perl-5.6.1/perl Type: EXEC (Executable file) Machine: Intel 80386 |
| 17:15:38 | mjn3 | Class: ELF32 |
| 17:15:38 | mjn3 | Data: 2's complement, little endian |
| 17:15:38 | mjn3 | Version: 1 (current) |
| 17:15:39 | mjn3 | OS/ABI: UNIX - System V |
| 17:15:40 | mjn3 | ABI Version: 0 |
| 17:15:42 | mjn3 | Interpreter: /home/mjn3/i386-linux-uclibc/lib/ld-uClibc.so.0 |
| 17:15:44 | mjn3 | Dependancies: |
| 17:15:46 | mjn3 | libdl.so.0 |
| 17:15:48 | mjn3 | libm.so.0 |
| 17:15:50 | mjn3 | libc.so.0 |
| 17:15:52 | mjn3 | libcrypt.so.0 |
| 17:16:43 | tzanger | your interpreter is different than mine |
| 17:16:50 | tzanger | Interpreter: /lib/ld-linux.so.2 |
| 17:17:16 | tzanger | but that just links to ld-uClibc-0.9.14.so |
| 17:43:18 | tzanger | AHA |
| 17:43:24 | tzanger | I don't know how to fix it yet but I see the problem |
| 17:43:38 | tzanger | from the Compress::Bzip2 make process: |
| 17:43:39 | tzanger | LD_RUN_PATH="/lib" cc -shared Bzip2.o -o blib/arch/auto/Compress/Bzip2/Bzip2.so -lbz2 |
| 17:43:43 | tzanger | it LOOKS like it's linking it in |
| 17:43:44 | tzanger | but |
| 17:43:53 | tzanger | # ldd blib/arch/auto/Compress/Bzip2/Bzip2.so |
| 17:43:53 | tzanger | libc.so.0 => /lib/libc.so.0 |
| 17:43:56 | tzanger | no bz2 |
| 17:52:51 | tzanger | mjn3: when I run ld, should I not be getting the uclibc ld instead of gnu ld? |
| 17:53:14 | mjn3 | mjn3@mars:~/work/embedded/fileutils-4.1$ ~/i386-linux-uclibc/usr/bin/ldd ../perl-5.6.1/lib/auto/POSIX/POSIX.so |
| 17:53:14 | mjn3 | libm.so.0 => /home/mjn3/i386-linux-uclibc/lib/libm.so.0 |
| 17:53:14 | mjn3 | libc.so.0 => /home/mjn3/i386-linux-uclibc/lib/libc.so.0 |
| 17:53:46 | mjn3 | mjn3@mars:~/work/embedded/fileutils-4.1$ ~/ureadelf ../perl-5.6.1/lib/auto/POSIX/POSIX.so |
| 17:53:46 | mjn3 | Type: DYN (Shared object file) |
| 17:53:46 | mjn3 | Machine: Intel 80386 |
| 17:53:46 | mjn3 | Class: ELF32 |
| 17:53:46 | mjn3 | Data: 2's complement, little endian |
| 17:53:47 | mjn3 | Version: 1 (current) |
| 17:53:49 | mjn3 | OS/ABI: UNIX - System V |
| 17:53:51 | mjn3 | ABI Version: 0 |
| 17:53:53 | mjn3 | Dependancies: |
| 17:53:55 | mjn3 | libm.so.0 |
| 17:53:57 | mjn3 | libc.so.0 |
| 17:53:59 | mjn3 | m |
| 17:55:18 | tzanger | I get the same output mjn3 |
| 18:32:39 | tzanger | do I not need uclibc ld, nm, etc.? or is it compatible with gcc binutils? |
| 18:32:54 | tzanger | everything so far has been build and linked using binutils |
| 18:38:13 | mjn3 | i'd use the uclibc tools |
| 18:38:38 | tzanger | I can't find uclibc's ld, nm, etc... hell I can't find their source code1 |
| 18:38:38 | mjn3 | i isolated the fileutils problem, but i need to run an errand. it should be fixed tonight. |
| 18:40:20 | mjn3 | because some of them are just symlinks to the normal ones. i do PATH=~/i386-linux-uclibc/usr/bin:$PATH {command} |
| 18:40:32 | tzanger | ah |
| 19:11:26 | tzanger | ok from what I can tell uClibc's ld is just a wrapper for gnu ld and it doesn't do anything at all if glibc isn't present |
| 19:11:36 | tzanger | glibc's gcc wrapper, however may be a different story |
| 19:13:39 | andersee | tzanger: uClibc builds a wrapper toolchain around the toolchain uClibc was built with. |
| 19:14:23 | tzanger | andersee: right. the ld wrapper just adds -L/a/few/uclibc/dirs -- which doesn't do anything if uClibc is the only c lib on the system |
| 19:14:27 | andersee | tzanger: So you need whatever libraries that toolchain requires. |
| 19:14:48 | tzanger | I'm still decyphering if the gcc wrapper mangles anything wrt dynamic loading |
| 19:15:16 | andersee | If you want a native toolchain linked vs uClibc, you will not want to use the wrapper. |
| 19:15:27 | tzanger | oh ok |
| 19:15:37 | tzanger | well that' what i have :-) everything is statically linked against uClibc |
| 19:15:49 | tzanger | -- everything in the toolchain, that is |
| 19:18:21 | andersee | tzanger: k |
| 19:22:51 | tzanger | andersee: have you ever seen the linker not create the correct dependencies? |
| 19:22:58 | tzanger | LD_RUN_PATH="/lib" cc -shared Bzip2.o -o blib/arch/auto/Compress/Bzip2/Bzip2.so -lbz2 |
| 19:23:08 | tzanger | # ldd blib/arch/auto/Compress/Bzip2/Bzip2.so |
| 19:23:08 | tzanger | libc.so.0 => /lib/libc.so.0 |
| 19:23:13 | tzanger | (no libbz2.so.0) |
| 19:23:56 | tzanger | running nm on Bzip2.so shows that there are three symbols that are unresolved which pertain to libbz though |
| 19:24:09 | tzanger | # nm blib/arch/auto/Compress/Bzip2/Bzip2.so | grep bz |
| 19:24:09 | tzanger | U bzBuffToBuffCompress |
| 19:24:09 | tzanger | U bzBuffToBuffDecompress |
| 19:24:09 | tzanger | U bzlibVersion |