irclog2html for #uclibc on 20070107

00:03.57ashes1 sec
00:04.37ashesmake CC="gcc -Wl,--dynamic-linker,/lib/ld-uClibc.so.0 /lib/libc.so.0" \ -C utils
00:04.39ashesmake -C utils install
00:04.47asheserm
00:05.03ashesmake CC="gcc -Wl,--dynamic-linker,/lib/ld-uClibc.so.0 /lib/libc.so.0" -C utils && make -C utils install
00:06.52ashesadd -isystem to that maybe too
00:07.08ashes"-isystem include/"
00:08.09ashesif there's an error from that, try 'make headers' first
00:15.55*** join/#uclibc mtr_ (n=Michael@kobz-590ca0bd.pool.einsundeins.de)
00:19.47JockeHomeashes: That /lib/libc.so.0 doesn't work
00:20.37JockeHomepowerpc-linux-gcc: /lib/libc.so.0: No such file or directory
00:20.46asheswhere is your libc.so installed?
00:21.43CIA-1003vda * r17175 10busybox/ (coreutils/diff.c coreutils/sort.c testsuite/sort.tests): (log message trimmed)
00:21.43CIA-10diff: small optimizations; do not try to diff non-seekable stream
00:21.43CIA-10(currently we don't support that)
00:24.50CIA-1003vda * r17176 10busybox/coreutils/diff.c: work around gcc's false warning
00:28.48JockeHomeashes: weel, since this is a buildroot xcompile its in .../staging_dir/lib
00:28.59JockeHomes/weel/well
00:29.30JockeHomedon't think I can use that :)
00:29.41ashesgive the full path to the libc.so
00:29.58ashesi think it'll work. ld.so will resolve it to /lib after
00:30.39ashesor even lib/libc.so in the uclibc source
00:31.32JockeHomethat works, but it also works withot libc.so.0 at all
00:32.11asheswithout libc.so.0 what does 'readelf -l' say?
00:32.26ashesreadelf -l utils/ldconfig
00:32.42asheslibc.so.6 ?
00:33.14ashesreadelf -d
00:33.15asheseven
00:33.27ashes'Shared library' field
00:33.54JockeHomejust libc.so.0 in both cases
00:34.12ashesk
01:24.13CIA-1003vda * r17177 10busybox/ (6 files in 2 dirs):
01:24.13CIA-10add arp applet - thanks to
01:24.13CIA-10"Eric Spakman" <E.Spakman@inter.nl.net>
02:05.05*** join/#uclibc wrobbie (n=rob@cm74.kappa84.maxonline.com.sg)
03:55.11*** join/#uclibc blindvt__ (n=bf@62.47.130.172)
03:57.27*** join/#uclibc blindvt (n=bf@62.47.131.19)
07:28.07*** join/#uclibc ashes (n=ashes@modemcable085.56-130-66.mc.videotron.ca)
08:57.54Mirell... BSD's sed uses -E, GNU's sed uses -r.
11:56.38*** join/#uclibc blindvt_ (n=bf@M1013P009.adsl.highway.telekom.at)
12:03.58*** join/#uclibc blindvt__ (n=bf@M855P008.adsl.highway.telekom.at)
12:19.01CIA-1003aldot * r17178 10busybox/scripts/defconfig: - add arp to defconfig
13:05.45*** join/#uclibc wrobbie (n=rob@cm74.kappa84.maxonline.com.sg)
15:19.38CIA-1003aldot * r17179 10busybox/testsuite/taskset.tests: - pull taskset.tests from the busybox_scratch branch
15:53.20CIA-1003aldot * r17180 10busybox/include/usage.h: - a few minor tweaks
15:53.40*** join/#uclibc vapier (i=UserBah@wh0rd.org)
15:53.48vapierashes: ping
15:56.10CIA-1003aldot * r17181 10busybox/coreutils/diff.c: (log message trimmed)
15:56.10CIA-10- FIXME: someone broke diff -r
15:56.10CIA-10- minor shrinkage i had lying around
16:11.03blindvtmjn3, ping
16:13.53mjn3blindvt, yes?
16:14.47blindvtmjn3, i have some severe trouble with the GETC/PUTC_MACRO options:
16:14.57blindvt../../../toolchain_build_i586/gcc-4.2/gcc/errors.c:68: undefined reference to `__fputc_unlocked'
16:15.06blindvtfor example.
16:16.01blindvtmjn3, i want to know what you wanted to achieve with the macros.. I have this untested draft-patch, that doesn't remove them but tries to beat them to behave:
16:16.08blindvtmompls.. copying..
16:17.12blindvtmjn3, http://uclibc.org/~aldot/uClibc-0.9.29-fix-fget_putc.diff
16:17.55blindvtmjn3, the alternative approach is to remove the defines for fget/putc_unlocked, so i at least don't have to #undef them internally.
16:18.58blindvtmjn3, alternatively, i'm tempted to wipe those two config option and just always call the libc_hidden_proto(fget/putc_unlocked) internally.
16:19.04blindvtmjn3, what do you think?
16:23.43mjn3i think it is another example of the kinds of namespace breakage psm introduced into svn... and i'll waste no time on fixing svn issues.  my position for some time has been that we should relable svn as a broken branch and start over again at .28, porting things over from svn as appropriate
16:24.09mjn3so... do whatever you want with svn.  i stopped caring about it a long time ago
16:28.08mjn3but... if you want to know what the intention of those macros was
16:28.24blindvtmjn3, it was purely a speed-tweak, no?
16:28.41mjn3it was fairly common practice in libc implementations to provide those as macros and avoid a function call
16:28.59mjn3but i made that use optional.  hence the config option
16:29.47mjn3technically, ansi-std libc functions are not supposed to polute the namespace available to the app
16:29.49blindvtmjn3, well, the function call is still there as a fallback if the macro didn't trigger. That very fallback-function call give me grief
16:30.12mjn3you're only allowed to use the symbols reserved by the ansi/iso spec
16:30.28mjn3that's why the macros used the "__" prefixed versions of the unlock functions
16:31.21blindvtmjn3, yes. but the fgetc_unlocked and fputc_unlocked are spec'ed function names, so have to be provided anyway
16:31.35mjn3they're POSIX... not ANSI/ISO
16:33.09blindvtmjn3, yes, POSIX, you're right
16:34.22mjn3so... one solution would be to create hidden versions of __f{get|put}c_unlocked for internal use, while also keeping externally visible versions
16:47.04solarwow now theres a face I've not seen in a while.. Hi mjn3
16:47.09mjn3hi solar
16:51.02mjn3oops... look at the time.  back in a couple of hours
17:10.11*** join/#uclibc pogo123 (n=Miranda@ip142.169.1211H-CUD12K-03.ish.de)
18:10.44*** join/#uclibc zindel (n=kvirc@ip210-225.telenet.dn.ua)
18:11.18*** part/#uclibc zindel (n=kvirc@ip210-225.telenet.dn.ua)
19:35.13CIA-1003vda * r17182 10busybox/networking/arp.c: I *always* forgotting svn add
19:37.43CIA-1003vda * r17183 10busybox/archival/gzip.c: (log message trimmed)
19:37.44CIA-10a ton of gzip changes, split up in compiled and
19:37.44CIA-10run-tested pieces. Code was rather messy.
19:38.07CIA-1003vda * r17184 10busybox/archival/gzip.c: gzip cleanup part #2
19:38.27CIA-1003vda * r17185 10busybox/archival/gzip.c: gzip cleanup part #3
19:38.44CIA-1003vda * r17186 10busybox/archival/gzip.c: gzip cleanup part #4
19:39.03CIA-1003vda * r17187 10busybox/archival/gzip.c: gzip cleanup part #5
19:39.35CIA-1003vda * r17188 10busybox/archival/gzip.c: gzip cleanup part #6
19:39.55CIA-1003vda * r17189 10busybox/archival/gzip.c: gzip cleanup part #7
19:40.18CIA-1003vda * r17190 10busybox/archival/gzip.c: gzip cleanup part #8
19:40.36CIA-1003vda * r17191 10busybox/archival/gzip.c: gzip cleanup part #9
19:40.54CIA-1003vda * r17192 10busybox/archival/gzip.c: gzip cleanup part #10
19:41.13*** join/#uclibc randomguy (n=randomgu@202.92.broadband7.iol.cz)
19:42.03hiyuhlol
19:44.37CIA-1003vda * r17193 10busybox/archival/gzip.c: gzip cleanup part #11
19:45.00CIA-1003vda * r17194 10busybox/archival/gzip.c: gzip cleanup part #12
19:45.52CIA-1003vda * r17195 10busybox/archival/gzip.c: gzip cleanup part #13 - the last for today I think
20:03.25*** join/#uclibc landley (n=landley@c-71-206-197-43.hsd1.pa.comcast.net)
20:12.07mjn3back
20:19.26*** join/#uclibc blindvt (n=bf@62.47.136.10)
20:23.33*** join/#uclibc landley_ (n=landley@c-71-206-197-43.hsd1.pa.comcast.net)
21:25.13CIA-1003vda * r17196 10busybox/networking/httpd.c: httpd: stop adding our own "Content-type:" to CGI output
21:26.38landleyIs lib/interp.c still needed?
21:34.33ashespong vapier
21:35.42landleyDon't shared libraries get their library loader path from the toolchain that builds them?
21:36.04landleyAnd these days standard practice is to build a toolchain that gives the right information?
21:36.33landleyThis manual override went in in 2002.  (svn 4229, or possibly cvs back then).
21:36.41landleyI'm wondering if it's still relevant?
22:12.05landleyHmmm...  sequencing.
22:12.16landleyThis is the initial build with the host toolchain.
22:12.37CIA-1003aldot * r17197 10busybox/networking/arp.c: - style fixes and shrink by another 4 bytes while at it.
22:12.39landleyWhy do the libraries care about their shared library loader?  Unless you dlopen() them, they're already being called _from_ a shared library loader, right?
22:20.36CIA-1003vda * r17198 10busybox/networking/arp.c: arp: small fixes for user-supplied device name case
22:21.23ashesthey need to know what to call to open libraries they depend on. maybe its feasable to have two or more dynamic loaders
22:22.25ashesa main program is linked to library A with libc.so.2. library A is depends on library B. both library A and B were linked with libc.so.1
22:22.32asheserm
22:22.42ashesld.so.1 and ld.so.2
22:23.06landleySo the currently running dynamic loader for the executable won't recursively resolve dependencies in the libraries it loads?
22:23.39CIA-1003vda * r17199 10busybox/networking/arp.c:
22:23.39CIA-10Previous "fix" wasn't good enough.
22:23.39CIA-10Now *this* is the correct fix (I think).
22:23.40ashesit would make more sense to me if it's that way
22:24.34ashesits more flexable
22:25.37landleyIt would make more sense to you to have the dynamic loader load more instances of the dynamic loader?  Or more sense to work recurisvely?
22:26.10landleyCan you link the same program against both elf and non-elf shared libraries?
22:26.18ashesif it's the same version then it would already be in shared memory
22:27.08ashesim not sure about non-elf
22:28.05ashesworking recurisvely works fine if you do not want reverse compatability, and don't have rare software that has a propriety loader
22:29.59ashessomething like xorg might want to use its own dynamic loader
22:30.24landleyFor the executable, or for a shared library?
22:30.39landleyThere's no problem using your own dynamic loader.  Link your executable with it.
22:30.55landleyMy question is why you'd want to use a different dynamic loader to load a dependent library.
22:30.59ashesbetween libraries i guess
22:31.06landleyThe information is in the wrong place.  "This library needs to be loaded with this shared library loader".
22:31.14landleyThat information is not in the library, it's in the things the library is linked against.
22:31.33ashesit would be tricky and i never heard of it. im just guessing at the usefullness of having two actively used dynamic loaders
22:31.35landleyAn executable can only specify one library loader.  You'd need to create a wrapper library to load the other library and hope it worked.
22:32.03landleyashes: it really doesn't sound like something that's ever actually been tested, and I'm trying to think of a situation where it would be useful.
22:32.20ashesmy first example
22:32.30ashesfor reverse compat
22:34.32landleyashes: library symbol version is something glibc implemented, but which turned out not to actually work.  I remember that. :)
22:35.00landleyThese days, libraries have the version as the last part of the name, and if you care about a specific version you include it in the name.
22:35.13landleyI'm not sure what your first example was trying to say.
22:37.46ashesbash is linked to ld-glibc.so and libc.glibc.so. bash is also linked to libreadline.so which was linked to ld-uclibc.so and libc.uclibc.so
22:38.20landleyashes: the suckage of that scenario is deep and impressive.
22:38.39landleyThis sort of thing is why they invented static linking.
22:38.44ashesit's bizzare, but its nice to have the option
22:38.49landleyEven if support for this is implemented, I really wouldn't expect it to work.
22:39.36landleyYou have the same symbols occurring in multiple different contexts.  Now add things like "weak" into the mix and watch the fireworks.
22:41.17ashesin the real world we could probably get-ld.so-from-parent
22:41.43ashesinstead of hard coding it in each library
22:42.36asheslibc, cc, and ld would all need to be modified though
22:45.57landleyashes: why?  Just ignore the unused field.
22:46.28landleyThe uClibc ld-uClibc.so can act recursively.  When it loads a library and resolves the symbols, it doesn't have to hand off to another one, it can just resolve any remaining symbols itself recursively.
22:46.32landley(Unless I'm missing something.)
22:46.55landleyIt's the library loader that _does_ it, correct?
22:50.21ashesi think everyone expects libraries to reload ld.so, and so ld.so won't automatically start loading library dependencies. i dont think the code exists in the libraries to tell it to look to the parent executable for the dynamic loader
22:51.17ashesthe way things are now, i think if the library doesn't know where ld.so is then it fails
22:53.43landleyWhich of uClibc's libraries actually depend on other libraries?  Hmmm...
22:54.53ashesthe ld.so version is closely related to the libc.so version and api. if you take a library, which doesn't have a hardcoded ld.so name, from a uclibc system and copy it on a glibc system i dont think it works
22:56.19asheshardcoding the ld.so name is the safest way of being sure the library is using the correct loader/libc version
22:57.25asheslibraries are also linked to libc.so, that doesn't mean libc.so is reloaded because its already in shared memory
22:59.55ashesand
23:00.09ashesmm
23:00.37ashesnm, i thought of another example but its almost the same

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net! Modified by Tim Riker to work with blootbot logs, split per channel, etc.