-!- Netsplit *.net <-> *.split quits: larks | 03:53 | |
-!- Netsplit over, joins: larks | 03:57 | |
stekern | pushing the segfaults forward, now I get them in uClibc_main | 08:47 |
---|---|---|
-!- Apache is now known as Guest39352 | 08:53 | |
stekern | ah, looks like I'm fixing up the wrong instruction in the plt for the pic case | 08:56 |
stekern | yay, no more segfault | 09:13 |
stekern | now I get "Can't resolve symbol '__pthread_initialize_minimal'" instead | 09:13 |
-!- Apache is now known as Guest22459 | 11:28 | |
stekern | ok, I'm in printf now and segfaulting all I can ;) | 13:07 |
stekern | let's see if I can do a hello world with l.nop puts | 13:08 |
juliusb | stekern: this sounds like a hard task man! | 13:11 |
juliusb | you're dynamically linking in all the libraries for a basic app under Linux, yes? | 13:11 |
stekern | hmm, yup | 13:52 |
stekern | or, all that are needed | 13:52 |
stekern | libc, ld and libpthreads + my libtest-or1k | 13:53 |
stekern | in this case | 13:53 |
stekern | nop-printing works, but it's still segfaulting in the cleanup | 13:53 |
stekern | that is nop-printing in my libtest-or1k, just for clarity ;) | 13:56 |
stekern | or1ksims l.nop 8 is my best friend these days | 13:57 |
stekern | (that's the start trace nop) | 13:57 |
jeremybennett | Yup l.nop 8 is your saviour! | 13:58 |
stekern | truly is, would be nice to have that in real hw as well | 14:13 |
stekern | I kind of have that with my tracelogger, but that requires wishbone writes | 14:16 |
stekern | wouldn't be so hard knit it in with l.nop 8 and 9 thuogh | 14:17 |
stekern | +to | 14:17 |
stekern | it's fun following how a program actually executes under linux | 14:22 |
stekern | looks like it's in pthread_mutex_lock we're failing | 14:31 |
stekern | wasn't there some pthread bugs that never got untangled? | 14:32 |
stekern | (most likely not related to this though) | 14:32 |
-!- Netsplit *.net <-> *.split quits: Fallenou | 14:36 | |
stekern | this is function pointers not getting evaluated as position independent | 14:49 |
stekern | it's actually trickier than that, a static struct with function pointers (set up at build time) is passed from libpthread to libc and copied with memcopy to a struct in libc | 15:34 |
stekern | -o | 15:34 |
stekern | and then they are called from that | 15:34 |
stekern | that shouldn't differ much from a normal function pointer though, since they have to be relocated in libpthread anyway | 15:38 |
stekern | but they aren't, and that's the bug... | 15:39 |
* stekern thinking out loud | 15:39 | |
juliusb | think away! | 15:56 |
jeremybennett | stekern: we never passed all the pthread tests with the 4.5.1 compiler, but Jonas advised it was upstream issues in uClibc. | 16:27 |
jeremybennett | We spent months on it, and couldn't find the problem. | 16:27 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!