--- Log opened Fri Jan 09 00:00:47 2015 | ||
stekern | poke53282: did you have the glibc test results somewhere? | 06:19 |
---|---|---|
poke53282 | ysangkok: This is a special feature. I still trying to find a good name for it. "Error" or "Failure". "Mistake" sounds also good. | 07:56 |
poke53282 | I fixed it already yesterday. But probably didn't pushed it to master. | 07:59 |
poke53282 | But probably didn't push it to master. | 07:59 |
poke53282 | stekern: gcctestsuitelogs.tar.xz | 08:04 |
poke53282 | sorry, jor1k.com/gcctestsuitelogs.tar.xz | 08:04 |
poke53282 | ysangkok: I hope you saw with your last pull request, that we need a plugin system. The current keyboard handling is horrible. | 08:09 |
poke53282 | And the code size enlarges with such libraries. | 08:13 |
poke53282 | I tried already term.js some time ago. And the only thing, which prevented m from implementing it was a missing plugin system. | 08:16 |
olofk | I'm beginning to think that fusesoc copying files before building wasn't the best idea | 08:22 |
olofk | hmm... no, it was a great idea | 08:22 |
olofk | Just need to add a qip parser | 08:23 |
stekern | poke53282: thanks | 08:27 |
stekern | olofk: I think it's great ;) | 08:28 |
stekern | what do you need a qip parser for? | 08:28 |
olofk | It would be nice to just specify which qip files you got, and let fusesoc parse the qip file to know which files to copy | 08:29 |
stekern | ah, yes | 08:36 |
olofk | Has anyone tried any python test framework? | 08:47 |
stekern | I've used unittest in a project at work | 09:05 |
stekern | poke53282: looking at the first failure now, 20030125-1 | 10:13 |
stekern | grepping irc logs I see that you investigated this a bit earlier | 10:13 |
stekern | did you gather anything interesting about it (that's not in the logs?) | 10:14 |
poke53282 | which error do you mean? musl or glibc? | 12:13 |
poke53282 | 20030125-1 seems to be musl-related problem. | 12:15 |
poke53282 | The problem don't exist for glibc and uclibc. | 12:15 |
poke53282 | musl compiled for x86 also don't show the error. | 12:16 |
poke53282 | I don't know if it has anything to do with soft-float. | 12:16 |
poke53282 | Maybe to try x86-musl with soft-float is an option. | 12:17 |
stekern | it fails for me when I compiled it with uclibc | 12:19 |
stekern | quit | 12:22 |
stekern | oops | 12:22 |
poke53282 | Ok, my uclibc one year ago, before I switched to musl. | 12:29 |
poke53282 | I know that the torture testsuite was Ok during that time. | 12:29 |
poke53282 | This was also another gcc version. So, who knows. | 12:31 |
stekern | my uclibc toolchain is some old 4.9.0 based one | 12:34 |
stekern | but I haven't ran the tests against that, just statically compiled that particular testcase | 12:35 |
poke53282 | I am talking of 4.8.0. | 12:42 |
poke53282 | except of such tests I couldn't figure out even a starting point. | 12:43 |
poke53282 | binutils, gcc, musl. I don't know where to begin. | 12:43 |
poke53282 | And I am not that familiar with the object file format and all flags. | 12:44 |
poke53282 | I am not sure, where this optimization step of float and double functions is done. I would guess gcc. | 12:45 |
poke53282 | It might be, that gcc sets some flags, but the linker does the wrong thing. Who knows. | 12:48 |
poke53282 | But I am curious about the solution :) | 13:23 |
stekern | poke53282: me too | 16:35 |
stekern | or1k-elf doesn't fail that, which is good | 16:35 |
stekern | should at least be semi-easy to spot the difference | 16:35 |
stekern | no, scratch that, it does fail | 16:37 |
stekern | which is weird, because iirc it doesn't fail when you run the testsuite... | 16:39 |
poke53282 | elf does fail too. So it is not related to the libc? | 16:42 |
stekern | ah, my old clang/llvm toolchain doesn't fail | 16:43 |
stekern | if I understand the problem correctly, floorf should be picked instead of floor, but that doesn't happen for some reason | 16:45 |
stekern | I have no idea what logic should handle that decision though | 16:45 |
poke53282 | Hmm | 16:46 |
poke53282 | that's not possible. | 16:46 |
poke53282 | yes, exactly. It is writtenin the C standard somehow. I guess, this is supposed to be a speed optimization, because it does not really matter, which floor you use. | 16:47 |
poke53282 | but that would mean, that this is generic problem in gcc and should happen for every CPU. | 16:48 |
stekern | right | 16:48 |
poke53282 | The only difference is, that we use soft-float. | 16:48 |
poke53282 | But this error happened in gcc 4.9.0 and 4.9.1. | 16:49 |
poke53282 | and glibc does not trigger this error. | 16:49 |
poke53282 | binutils, musl, gcc? I am puzzled like you. | 16:50 |
poke53282 | upgrade to gcc 4.9.2 would be an option. | 16:51 |
stekern | did you use the same gcc for glibc as musl? | 16:51 |
poke53282 | yes | 16:52 |
poke53282 | Ok, you can look it up I hope. But I am pretty sure. | 16:54 |
poke53282 | but upgrading is always a good idea. :) | 16:54 |
poke53282 | the version string does not end with ".0". So it is a good upgrade. | 16:55 |
stekern | my guess is that the magic happens somewhere in gcc/convert.c | 16:55 |
stekern | or rather, should happen | 16:56 |
stekern | but why it doesn't happen with glibc is a mystery | 16:56 |
poke53282 | why it never happened before? gcc 4.8.x and uclibc | 16:57 |
stekern | also good questions | 16:58 |
poke53282 | Can you just compile it and not link? Can you figure out, to which it have to link in the .o file? | 17:00 |
poke53282 | ... to which function is has to link .... | 17:00 |
stekern | this happens before link | 17:04 |
stekern | gcc -S file.c -o - | 17:05 |
stekern | ...shows that there's a call to floor instead of floorf | 17:09 |
stekern | doing the same with an arm toolchain I have laying around shows a call to floorf | 17:10 |
stekern | ah, found the problem | 18:02 |
stekern | git blame came to rescue once again | 18:03 |
stekern | https://github.com/openrisc/or1k-gcc/commit/30f690e026ecdf99c68e777a48562b58afe37f43 | 18:04 |
stekern | that's the commit that brakes it | 18:04 |
stekern | https://github.com/openrisc/or1k-gcc/commit/30f690e026ecdf99c68e777a48562b58afe37f43#diff-61fc56cb0daf2861012999ef5e06a8c9R38 | 18:05 |
stekern | and that's the line that explains why it works on glibc and not musl | 18:05 |
stekern | changing that to: if (OPTION_GLIBC || OPTION_MUSL) fixes it | 18:10 |
stekern | poke53282: I wonder why it worked for you in sabotage then? | 18:10 |
poke53282 | Great | 18:38 |
poke53282 | sabotage using x86 I guess. | 18:39 |
poke53282 | but not sure | 18:51 |
stekern | yes, but that test should fail if the same gcc patches that musl-cross uses is used | 19:21 |
stekern | but which gcc version was used there? | 19:29 |
* stekern is sidetracking into installing alpine in a virtual machine | 19:37 | |
poke53282 | stekern: looks like gcc474 | 19:51 |
stekern | ok, that's probably pre that patch | 19:56 |
stekern | it was committed sometime 2013 | 19:56 |
stekern | august 19 2013 to be precise | 19:57 |
poke53282 | yes | 19:58 |
ysangkok | poke53282: i submitted a new pull request which uses a modularized layout | 19:58 |
poke53282 | yes, I saw it | 19:59 |
ysangkok | poke53282: i'll start working on the json stuff now | 19:59 |
poke53282 | Still checking | 19:59 |
stekern | not sure that is it though, it was '#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)' before the patch | 20:00 |
poke53282 | might be gcc 474 but maybe with some patches. I don't want to check this. | 20:02 |
poke53282 | If your patch solves the problem I am fine. | 20:02 |
poke53282 | And I will rerun the musl testsuite. | 20:03 |
poke53282 | ysangkok: terminal-macke :) | 20:04 |
poke53282 | Actually it is the linux-terminall. "export TERM=linux" | 20:04 |
ysangkok | but that name is confusing... as if the other one doesn't work with linux... oh well, it's just names | 20:05 |
poke53282 | yes, it is confusing. term.js is also confusing. Should be xterm.js. | 20:07 |
poke53282 | But finally I seem to be famous enough, that other people name things after me. :P | 20:09 |
ysangkok | :P i named your thing though :P | 20:09 |
stekern | alpine has 4.8.3 and it doesn't fail | 20:16 |
stekern | it has 4.9.2 in "edge" | 20:18 |
stekern | yep, that test fails with 4.9.2 in alpine as well | 20:26 |
poke53282 | you should involve dalias from here on | 20:27 |
dalias | hm? | 20:27 |
stekern | dalias: gcc 4.9.x needs an additional musl specific patch | 20:29 |
dalias | what breaks without it? | 20:29 |
stekern | something in the line of: http://pastie.org/9822856 | 20:30 |
stekern | wait, I'll paste the gcc testsuite test that fails | 20:30 |
poke53282 | testsuite 20030125-1 | 20:30 |
dalias | that's probably a bad idea in general in case there are other stupid glibc-specific things this gets used for eventually | 20:31 |
dalias | imo from gcc's perspective it should assume musl provides any standard functions but nothing else (e.g. not sincos and other stupid things) | 20:31 |
stekern | http://pastie.org/9822859 | 20:31 |
dalias | musl's sincos is not a performance boost; it's a naive wrapper that simply calls both sin and cos to make broken apps happy :-p | 20:31 |
stekern | mmm, maybe it needs to be more specific | 20:32 |
dalias | i don't think it's important to pass that test tho | 20:34 |
stekern | you're probably right, but I'm combing through the test failures in our gcc port and that was the first in line | 20:36 |
poke53282 | ysangkok: You forgot to include term.js | 20:45 |
poke53282 | browserify does not work. | 20:45 |
ysangkok | poke53282: i didn't want to add too much. since it's not used by default, can't we just remove the relevant part in ./compile, and then it should work? | 20:47 |
poke53282 | Well, yes. I can do it | 20:47 |
ysangkok | i mean remove "-r ./js/plugins/terminal-termjs.js:TermJSTerm" | 20:48 |
ysangkok | i'll write a small document in the wiki with instructions on how to use term.js | 20:49 |
poke53282 | time to clean up the ui mess. | 20:49 |
poke53282 | Ok | 20:49 |
poke53282 | I have also updated fs2xml | 20:52 |
ysangkok | poke53282: ok, here's the wiki page : https://github.com/s-macke/jor1k/wiki/Changing-terminal-emulator | 20:59 |
poke53282 | Well, I hope that will be outdated soon. | 21:01 |
poke53282 | It is too complicated | 21:01 |
ysangkok | hmmm i don't think it's so bad... most people won't need to change terminal emulator anyway though. the instructions are precise, i think | 21:05 |
poke53282 | the whole ui will get a revision. This part included | 21:07 |
ysangkok | good :) | 21:10 |
poke53282 | I hope you saw the mess. | 21:10 |
poke53282 | It got worse with your last commit. | 21:10 |
poke53282 | the mess is now separated to several files ;) | 21:11 |
ysangkok | an abstraction of messes may allow for easier mess-removal :P | 21:13 |
ysangkok | poke53282: would gdb work if i built it? | 21:32 |
poke53282 | nope | 21:35 |
poke53282 | there is something missing in the kernel and in gdb itself. | 21:36 |
ysangkok | ok | 21:50 |
--- Log closed Sat Jan 10 00:00:49 2015 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!