# 01:30:17 |
jacques_ |
joins #crosstool-ng |
# 01:30:17 |
jacques_ |
quits : Changing host |
# 01:30:17 |
jacques_ |
joins #crosstool-ng |
# 01:32:44 |
jacques |
quits : Ping timeout: 250 seconds |
# 01:48:02 |
jacques_ |
is now known as: jacques |
# 07:20:18 |
kos_tom |
joins #crosstool-ng |
# 07:50:09 |
Buglouse |
quits : Ping timeout: 252 seconds |
# 11:51:01 |
Buglouse |
joins #crosstool-ng |
# 13:54:54 |
kos_tom |
quits : Quit: Leaving |
# 16:48:59 |
y_morin |
joins #crosstool-ng |
# 16:55:51 |
fauno |
y_morin: good day o/ |
# 16:55:59 |
y_morin |
fauno: hello! |
# 16:56:09 |
fauno |
i have good news |
# 16:56:32 |
y_morin |
fauno: yes? :-) |
# 16:56:47 |
fauno |
i just built eglibc for mips64el-n32 :D |
# 16:57:37 |
y_morin |
:-) |
# 16:57:46 |
y_morin |
What was missing, in the end? |
# 16:58:28 |
fauno |
i found the abi logic on the preconfigure script for mips |
# 16:58:52 |
fauno |
it checks for $machine to decide which abi to use |
# 16:59:11 |
fauno |
i removed the mips32 logic and added an echo for $machine |
# 16:59:25 |
fauno |
it worked, and the echo was spit twice |
# 16:59:38 |
fauno |
the first one said the machine was mips64el |
# 16:59:53 |
fauno |
the second, that is was mips/mips64/n32 |
# 17:00:12 |
y_morin |
Woo... Sounds weird to me... |
# 17:00:12 |
fauno |
which on the preconfigure script matched mips* and not mips64* :) |
# 17:00:30 |
y_morin |
fauno: you mean the scripts/bui;d/arc/mips.sh ? |
# 17:00:37 |
y_morin |
*build |
# 17:00:46 |
fauno |
no, it's on eglibc-ports |
# 17:00:50 |
y_morin |
OK. |
# 17:01:01 |
y_morin |
So, this is a bug in glibc/eglibc ? |
# 17:01:02 |
fauno |
eglibc-2_13/eglibc-ports-2_13/sysdeps/mips/preconfigure |
# 17:01:09 |
fauno |
i don't know |
# 17:01:32 |
fauno |
why is there eglibc-2_13/eglibc-ports-2_13 |
# 17:01:40 |
fauno |
and eglibc-2_13/ports? |
# 17:02:13 |
y_morin |
fauno: that's because one is a symlink to the other. |
# 17:02:14 |
fauno |
maybe the eglibc configure treats them as two different add-on dirs and that's why it's run twice? |
# 17:02:30 |
fauno |
just guessing |
# 17:02:33 |
linuxjacques |
joins #crosstool-ng |
# 17:02:53 |
y_morin |
Some add-ons are named after the short name, others may have the version appended. |
# 17:03:27 |
fauno |
ah, yes |
# 17:03:41 |
y_morin |
fauno: that might be the reason, indeed. Can you try to just get 'ports' as a directory, and remove the 'ports-2.13' one? |
# 17:03:51 |
fauno |
it's run first on eglibc-ports-2_13 and then on ports |
# 17:04:18 |
y_morin |
fauno: OK, then we might need to do some hackery to remove the long name, and keep only the short one. |
# 17:04:27 |
fauno |
http://pastie.org/1981596 |
# 17:04:48 |
fauno |
the "This machine is..." is mine |
# 17:06:08 |
y_morin |
fauno: I see. Can you try as I suggested, please? |
# 17:06:56 |
fauno |
i'm at cc_core_pass_2 :P |
# 17:07:23 |
fauno |
but i have to try from a 64b system so i'll try it then |
# 17:07:44 |
y_morin |
fauno: Thank you! |
# 17:10:29 |
fauno |
y_morin: where can i find the code that creates this symlink? |
# 17:11:09 |
y_morin |
fauno: you don't need to change the code, just do it manually as a test. If it works, we'll tweak the code. |
# 17:11:22 |
y_morin |
fauno: anyway, it's in scripts/build/libc/eglibc.sh |
# 17:11:31 |
y_morin |
fauno: in function do_extract() |
# 17:11:37 |
fauno |
line #118 right? |
# 17:11:46 |
fauno |
do_libc_extract() |
# 17:12:11 |
y_morin |
fauno: yes, 118 & 119 |
# 17:12:28 |
y_morin |
yes, do_libc_extract(), sorry. |
# 17:12:37 |
fauno |
it just failed again |
# 17:12:44 |
fauno |
but this time is another thing |
# 17:13:27 |
y_morin |
Hmmm... :-/ |
# 17:13:37 |
fauno |
http://pastie.org/1981636 |
# 17:15:29 |
fauno |
ah, my bad |
# 17:15:34 |
fauno |
cc1: error: unrecognized command line option '-mfix-nop-loongson2f' |
# 17:21:02 |
fauno |
y_morin: how can i `ct-ng libc` but also reload the .config? i removed the unrecognized flag from it |
# 17:21:31 |
y_morin |
fauno: it is not possible to restart after changing the .config. You have to start afresh. |
# 17:21:51 |
fauno |
oh |
# 17:22:44 |
y_morin |
It is on purpose. Changes .config can impact a lot of things, such as components selection, versions, optimnisations.... And it makes no sense to restart in such a case. |
# 17:22:57 |
y_morin |
Restarting is only in case the build scripts have been changed. |
# 17:23:45 |
y_morin |
GTG, BBL... |
# 17:23:49 |
y_morin |
is now known as: y_morin|away |
# 18:55:05 |
fauno |
y_morin|away: ah, it failed again |
# 18:55:26 |
fauno |
libc needs ports... i'll make it rename it |
# 19:41:48 |
fauno |
y_morin|away: i have a patch |
# 19:42:16 |
fauno |
one more question: why if i use saved steps and then start over from the point it failed |
# 19:42:56 |
fauno |
at some point it says that files in static/ are missing? shouldn't it restore all the previous steps or i'm doing something wrong? |
# 19:48:31 |
Buglouse |
quits : Ping timeout: 246 seconds |
# 19:50:40 |
Buglouse |
joins #crosstool-ng |
# 20:17:08 |
fauno |
y_morin|away: http://pastie.org/1982307 |
# 20:17:52 |
fauno |
or maybe you prefer the hg patchbomb way? |
# 20:30:46 |
y_morin|away |
is now known as: y_morin |
# 20:31:14 |
y_morin |
fauno: if you want to fix this, you have to do it in do_libc_extract(). |
# 20:31:57 |
y_morin |
fauno: if you do in one of the build function, it will fail the second time. |
# 20:32:17 |
fauno |
aah |
# 20:32:20 |
fauno |
ok |
# 20:32:29 |
y_morin |
fauno: the first 'rm' will fail to unkink a directory, and the whole build will fail. |
# 20:32:38 |
fauno |
understood |
# 20:32:48 |
y_morin |
crosstool-NG catches every failures. |
# 20:33:01 |
fauno |
got it :D |
# 20:33:30 |
fauno |
i guess building all at once is recommended, right? |
# 20:33:57 |
y_morin |
fauno: yes. The restart stuff is there to debug the build scripts. |
# 20:34:07 |
fauno |
ok |
# 20:34:46 |
y_morin |
fauno: in your case, it was probably needed to use restart. The only issue so far was that restart does not extracts again. |
# 20:34:54 |
y_morin |
It's only about the build steps. |
# 20:35:30 |
y_morin |
fauno: and yes, I'd prefer a patchbomob. :-) |
# 20:35:30 |
fauno |
ok |
# 20:35:39 |
fauno |
another thing |
# 20:35:50 |
y_morin |
likes the sound it makes when it lands in his inbox! :-) |
# 20:36:23 |
fauno |
i enabled obj-c and obj-c++ and i got a message saying they aren't supported yet |
# 20:36:42 |
fauno |
on the final compiler step |
# 20:37:00 |
y_morin |
fauno: I don't do ObjC and ObjC++, so I can't guarantee they work. They might work, but I don't know. |
# 20:37:23 |
y_morin |
fauno: if you can confirm ObjC and ObjC++ do work, we can remove the EXPERIMENTAL tag. |
# 20:37:38 |
fauno |
ah, so the message is from ct-ng |
# 20:37:40 |
fauno |
ok |
# 20:37:50 |
y_morin |
Yes. |
# 20:38:15 |
fauno |
i was hoping to build unarchiver :P |
# 20:38:46 |
y_morin |
fauno: Ah! The new free-as-in-free-speech unrar stuff. Good! :-) |
# 20:39:27 |
fauno |
y_morin: yep, this is for the parabola mips64el port (the libre archlinux on a lemote yeeloong) |
# 20:39:46 |
y_morin |
fauno: using linux-libre as well, I guess! ;-) |
# 20:40:04 |
fauno |
:D |
# 21:24:54 |
fauno |
y_morin: mmm would a -h $addon && ! -h eglibc-$addon suffice? |
# 21:25:12 |
fauno |
i'm making it prefer the short addon name just after patching |
# 21:25:56 |
y_morin |
fauno: if [ -d "eglibc-${addon}-${version}" ]; then mv "eglibc-${addon}-${version}" "${addon}"; fi |
# 21:26:16 |
y_morin |
fauno: right, we don't care about the long name at all. Let's keep the short name. |
# 21:26:36 |
fauno |
but that would do it even when the long name is a symlink |
# 21:26:40 |
fauno |
according to the comment |
# 21:32:30 |
kos_tom |
joins #crosstool-ng |
# 21:32:56 |
y_morin |
fauno: the long name will be a symlink only in case the sghort name is a directory. |
# 21:33:09 |
y_morin |
fauno: The comment will have to go away now. |
# 21:33:28 |
y_morin |
fauno: The new logic is: if the short name exists (and is a directory), keep it. |
# 21:33:50 |
y_morin |
fauno: otherwise, if the long name exists (and is a dir), rename to short name. |
# 21:34:21 |
y_morin |
fauno: Of course, in the first case, the long name can not exist. |
# 21:34:43 |
fauno |
mmm maybe i'm too tired :P |
# 21:34:49 |
fauno |
the current code says: |
# 21:35:09 |
fauno |
* if short name is a dir, create a long dir symlink |
# 21:35:27 |
fauno |
* if long dir is a dir, create a short dir symlink |
# 21:35:33 |
fauno |
then patch |
# 21:36:17 |
y_morin |
fauno: Oh, I see what you mean. The current code is faulty, as you discovered. WE should *not* have two dirs for the same addon. |
# 21:36:24 |
fauno |
according to the comment it's because the patches could refer to both dir names |
# 21:36:34 |
y_morin |
fauno: indeed. |
# 21:36:48 |
y_morin |
fauno: so the solution is: |
# 21:37:12 |
y_morin |
1) if long name, rename to short one |
# 21:37:23 |
y_morin |
2) create symlink long name -> short name |
# 21:37:25 |
y_morin |
3) patch |
# 21:37:33 |
y_morin |
4) remove long name symlink |
# 21:37:36 |
fauno |
ah ah now i follow |
# 21:37:39 |
fauno |
ok |
# 21:37:42 |
y_morin |
:-) |
# 21:48:29 |
fauno |
y_morin: http://pastie.org/1982633 |
# 21:51:31 |
y_morin |
fauno: almost, yes. But on line 8, the long name will never exist, so you can unconditionally do the symlink |
# 21:52:12 |
fauno |
yeah i noticed it was kind of unneeded |
# 21:52:12 |
y_morin |
fauno: it canexist, because: if the tarball contined the long name, you just renamed it on line 7; if the tarball contained the short name, you never created the long name, |
# 21:52:43 |
y_morin |
fauno: you may want to sanity check that the two do not exist before doing the me, though. |
# 21:53:02 |
fauno |
the mv? |
# 21:53:16 |
y_morin |
fauno: we should only have either the short name *or* the long name. If the two exist, this is an error. |
# 21:53:24 |
y_morin |
fauno: the mv on line 7. |
# 21:53:36 |
fauno |
i know but you said "me" |
# 21:53:48 |
y_morin |
fauno: sorry. My bad. |
# 21:54:09 |
y_morin |
does not what was in his head when he wrote that... |
# 21:54:45 |
fauno |
prefers not to think about that |
# 21:54:50 |
y_morin |
:-) |
# 21:55:35 |
fauno |
ok, so... always rename the long name |
# 21:56:16 |
y_morin |
fauno: I'd prefer [ -L "blabla"] rather than -h. -L is in POSIX now, and they are the same. -L is more explicit than -h, I think. |
# 21:56:31 |
y_morin |
fauno: yes, always rename. |
# 21:56:40 |
y_morin |
WE only care about the short name. |
# 21:56:44 |
y_morin |
*We |
# 21:57:34 |
y_morin |
fauno: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html |
# 21:59:57 |
fauno |
y_morin: this way: |
# 22:00:10 |
fauno |
if long name is dir, rename it to short name |
# 22:00:17 |
fauno |
always link short to long |
# 22:00:18 |
fauno |
patch |
# 22:00:21 |
fauno |
remove long |
# 22:00:56 |
y_morin |
fauno: yes, but first: if long name is dir and short name s dir: error out. |
# 22:01:34 |
fauno |
but the addon is either short or long |
# 22:01:52 |
y_morin |
fauno: CT_TestAndAbort "Error in addon '${addon}": both short and long name in tarball" -d "${addon}" -a -d "eglibc-${addon}-${version}" |
# 22:02:16 |
y_morin |
fauno: normally, yes, but who knows how the tarball was constructed? |
# 22:02:40 |
fauno |
ok |
# 22:02:50 |
y_morin |
fauno: I agree, this should not happen. So we have to check that it does not. |
# 22:03:48 |
y_morin |
The problem if we don;t check and it happens, it'll be a nightmare to debug, as it will not be obvious that the long-named dir is now a sub dir of the short-named dir |
# 22:05:18 |
fauno |
http://pastie.org/1982682 |
# 22:07:17 |
fauno |
he i'll fix the #version |
# 22:07:22 |
fauno |
$version* |
# 22:08:08 |
kos_tom |
quits : Quit: Leaving |
# 22:08:44 |
y_morin |
fauno: you're almost there! :-) |
# 22:09:05 |
y_morin |
fauno: remember that crosstool-NG catches all errors. What would happen if the long name does not exist? |
# 22:09:44 |
y_morin |
fauno: the [ -d "long name}" ] test wil fail, so the entire compound command will fail, so the error handler will be fired, and the build will halt. |
# 22:10:15 |
y_morin |
fauno: the "[ ... ] || foo" construct is a hack, and a bad one at that. *I* am to blame. |
# 22:10:18 |
fauno |
damn long names |
# 22:10:31 |
y_morin |
fauno: prefer using: if [ ... ]; then foo; fi |
# 22:10:38 |
y_morin |
fauno: hehe! :-) |
# 22:12:03 |
y_morin |
fauno: also, remove the last two lines of the big comment, they are no longer usefull and now mis-leading. |
# 22:12:28 |
y_morin |
fauno: and add a comment on why we have to remove the long-named symlink after patching. |
# 22:12:41 |
y_morin |
fauno: then you can patch-bomob it! :-) |
# 22:14:08 |
y_morin |
wants a keyboard that prevents dyslexia... |
# 22:14:16 |
fauno |
that reminds me of scott pilgrim :P |
# 22:14:40 |
y_morin |
Not seen... |
# 22:36:40 |
fauno |
y_morin: sorry. so do you proppose that i keep on the hack and do something like |
# 22:36:56 |
fauno |
[ ! -d "long name" ] || rm "long name" |
# 22:37:27 |
y_morin |
fauno: no, use: if [ -d "long name" ]; then mv long short; fi |
# 22:37:32 |
fauno |
ah |
# 22:47:28 |
y_morin |
has a long road to drive to morrow. Nite all, see ya on sunday evening! |
# 22:47:34 |
y_morin |
quits : Quit: Quitting... |
# 23:18:14 |
linuxjacques |
quits : Quit: Page closed |