# 05:25:00 |
mnt_real |
quits : Remote host closed the connection |
# 07:01:06 |
y_morin |
joins #crosstool-ng |
# 07:15:39 |
smartin |
joins #crosstool-ng |
# 12:51:54 |
mnt_real |
joins #crosstool-ng |
# 14:00:39 |
y_morin |
quits : Quit: Back on-line in a few hours... |
# 15:49:00 |
y_morin |
joins #crosstool-ng |
# 16:44:12 |
sh4rm4 |
i have a Makefile which makes trouble |
# 16:44:20 |
sh4rm4 |
can i just edit it in place ? |
# 16:44:30 |
sh4rm4 |
or do i need to patch ct-ng ? |
# 16:44:48 |
sh4rm4 |
it's linux' makefile |
# 16:45:22 |
sh4rm4 |
doesnt like "implicit and normal rules" mixed up |
# 16:46:26 |
y_morin |
sh4rm4: do you have make-3.82 on your machine ? |
# 16:46:49 |
y_morin |
sh4rm4: if so, then you can ask corsstool-NG to build a make-3.81 for its own use |
# 16:46:50 |
sh4rm4 |
yes |
# 16:47:23 |
sh4rm4 |
y_morin, where can i set that ? |
# 16:47:37 |
y_morin |
sh4rm4: it's in Companion tools ---> Build some companion tools --> make |
# 16:47:49 |
sh4rm4 |
cool thx |
# 16:47:54 |
y_morin |
sh4rm4: you have to enable EXPERIMENTAL first. |
# 16:48:13 |
sh4rm4 |
aha |
# 16:48:19 |
sh4rm4 |
where is that hidden ? |
# 16:48:38 |
y_morin |
sh4rm4: Paths and misc options ---> Try features marked as EXPERIMENTAL |
# 16:48:55 |
y_morin |
GTG, BBL... |
# 16:48:56 |
sh4rm4 |
ok cool |
# 16:48:58 |
y_morin |
is now known as: y_morin|away |
# 16:49:10 |
sh4rm4 |
but theoretically, would it suffice to change the Makefile in the build path ? |
# 16:49:32 |
sh4rm4 |
ah, seems not. |
# 17:02:39 |
sh4rm4 |
hmm. didn't build make 3.81 |
# 17:03:01 |
sh4rm4 |
the companion stage was finished in 17 secs, not even enough to download the tarball |
# 17:04:52 |
sh4rm4 |
well, maybe enough to download, but not to build. |
# 17:08:21 |
sh4rm4 |
installed it into $HOme and set PATH to there. make --v now returns 3.81... let's see if it works... |
# 17:12:42 |
sh4rm4 |
hmm. i wonder what PPL and CLOOG are for. they take up a lot of time.. i remember that i didnt need them to build gcc usually... |
# 17:47:30 |
sh4rm4 |
now i get a name conflict between getline of one of the kernel header tools and the one of glibc, which pulls in that NON-POSIX proprietary GNU symbol if POSIX_C_SOURCE >= 200809L |
# 17:47:52 |
sh4rm4 |
thanks, drepper |
# 17:48:55 |
sh4rm4 |
*system header fixed, gnuism deleted* |
# 17:57:27 |
sh4rm4 |
bhundven|afk, what about the bug report i mailed you ? |
# 17:57:35 |
sh4rm4 |
drop under the table i guess |
# 17:57:46 |
sh4rm4 |
*dropped |
# 18:03:13 |
sh4rm4 |
[ERROR] /tmp/ct-ng-tmp/.build/src/gcc-4.4.6/libgcc/../libdecnumber/decExcept.c:25:18: error: fenv.h: No such file or directory |
# 18:03:40 |
sh4rm4 |
come on dude, it's right there in /usr/include |
# 18:04:21 |
sh4rm4 |
-D__GCC_FLOAT_NOT_NEEDED |
# 18:09:14 |
sh4rm4 |
"You need to have UCLIBC_HAS_FENV=y set in uclibc .config |
# 18:09:14 |
sh4rm4 |
now how you bend ct-ng to do it is upto you." |
# 18:11:43 |
sh4rm4 |
why that header is not being checked via configure, and fails in the bootstrap phase, will remain a secret |
# 18:12:06 |
sh4rm4 |
gnuhoo |
# 18:13:46 |
sh4rm4 |
oh wait. i forgot that the entire gcc buildsystem is a huge and ugly hack. |
# 18:30:18 |
sh4rm4 |
"Installing final compiler" |
# 18:30:19 |
sh4rm4 |
omg |
# 18:30:26 |
sh4rm4 |
could it work ? |
# 18:31:11 |
sh4rm4 |
:) |
# 18:38:06 |
sh4rm4 |
[INFO ] Installing binutils for target |
# 18:38:28 |
sh4rm4 |
[ERROR] configure: error: in `/tmp/ct-ng-tmp/.build/powerpc-unknown-linux-uclibc/build/build-binutils-for-target': |
# 18:38:39 |
sh4rm4 |
[ERROR] configure: error: C compiler cannot create executables |
# 18:39:29 |
sh4rm4 |
lemme guess.. configure tries to run a compiled binary, which doesnt work since it is compiled for another arch ? |
# 18:41:24 |
sh4rm4 |
x-tools/powerpc-unknown-linux-uclibc/lib/gcc/powerpc-unknown-linux-uclibc/4.4.6/../../../../powerpc-unknown-linux-uclibc/bin/ld: crti.o: No such file: No such file or directory |
# 18:41:45 |
sh4rm4 |
aha, the same that happened when i tried to build the ARM target. |
# 18:42:01 |
sh4rm4 |
except that i now took uclibc 0.9.30.2 |
# 18:43:57 |
sh4rm4 |
that was the bug report i sent to the list and CC to bhundven|afk who wanted to look at the issue |
# 19:10:29 |
sh4rm4 |
hehe it works when i compile crti.S and crtn.S manually |
# 19:17:51 |
sh4rm4 |
interestingly, this time crt1.o "1 == one" was built |
# 19:18:05 |
sh4rm4 |
was missing for the ARM try |
# 19:23:01 |
sh4rm4 |
i would actually prefer gcc 4.5.3 over gcc 4.4 |
# 19:23:13 |
sh4rm4 |
since it has link time optimization |
# 19:23:27 |
sh4rm4 |
shaves off a lot of bloat |
# 19:39:46 |
smartin |
quits : Quit: Page closed |
# 20:19:44 |
smartin |
joins #crosstool-ng |
# 20:38:06 |
y_morin|away |
is now known as: y_morin |
# 20:41:08 |
y_morin |
sh4rm4: back just now, too longer than expected... |
# 20:41:17 |
y_morin |
sh4rm4: care to pastebin your .config? |
# 20:41:50 |
sh4rm4 |
sure, second |
# 20:43:22 |
y_morin |
sh4rm4: crosstool-ng builds make-3.81 just fine here. |
# 20:44:21 |
sh4rm4 |
http://pastie.org/private/0rehlodx1vp8w8sukmqtna |
# 20:44:50 |
sh4rm4 |
y_morin: is it possible it downloads + builds it in 17 seconds ? |
# 20:45:16 |
y_morin |
sh4rm4: that's roughly what it takes here, yes. |
# 20:45:46 |
sh4rm4 |
ok, then maybe it did... it was reporting the same kind of error tho |
# 20:46:02 |
sh4rm4 |
but it seemed to work when i fixed the Makefile in the .build dir |
# 20:46:36 |
sh4rm4 |
do you want uclibc config as well ? |
# 20:46:44 |
y_morin |
sh4rm4: what version of crosstool-NG are you using ? |
# 20:46:53 |
sh4rm4 |
cloned from mercury |
# 20:47:04 |
y_morin |
mercurial... |
# 20:47:10 |
sh4rm4 |
oh, rigght :) |
# 20:48:59 |
sh4rm4 |
http://sprunge.us/ghVO <- uclibc config |
# 20:50:05 |
y_morin |
OK, got it. Testing here... |
# 20:50:41 |
y_morin |
sh4rm4: make is not selected in your .config |
# 20:51:07 |
sh4rm4 |
yeah i removed it after i installed it manually |
# 20:51:22 |
y_morin |
OK |
# 20:51:36 |
sh4rm4 |
did you want to test that ? |
# 20:52:06 |
y_morin |
I tested here, and it is OK for me. So I don't know what's going on on your side... |
# 20:52:33 |
y_morin |
sh4rm4: any reason for using custom headers ? |
# 20:52:39 |
sh4rm4 |
it built crti.o ? |
# 20:52:51 |
y_morin |
sh4rm4: I meant, make-3.81 is built OK. |
# 20:52:57 |
sh4rm4 |
y_morin, which custom headers ? |
# 20:53:05 |
y_morin |
Not so far yet, just reviewing the config for obvious issues. |
# 20:53:21 |
y_morin |
sh4rm4: Linux kernel headers, you are using 2.6.25.1 |
# 20:53:45 |
sh4rm4 |
ah. it's the version running on the host i target |
# 20:54:10 |
sh4rm4 |
i wasn't sure if the syscall abi changed |
# 20:54:26 |
sh4rm4 |
so i went for the sure, but uncomfortable header set |
# 20:54:41 |
y_morin |
sh4rm4: the ABI never changes. It's written in stone. It can be expanded, but not changed (or it's a bug). |
# 20:54:55 |
sh4rm4 |
so i can use any 2.6.x headers ? |
# 20:55:49 |
y_morin |
Normally, you should be able to. |
# 20:55:58 |
sh4rm4 |
good to know, thanks |
# 20:56:16 |
y_morin |
sh4rm4: I am not 100% sure, however... |
# 20:57:07 |
y_morin |
sh4rm4: I have to DL linux-2.6.25.1 first... |
# 20:57:41 |
sh4rm4 |
hmm i'm pretty sure it will fail with .27 as well |
# 20:57:49 |
y_morin |
sh4rm4: Any reason why you do not want shared libs ? |
# 20:58:09 |
sh4rm4 |
yeah. i prefer static because it's easier to deploy |
# 20:58:43 |
y_morin |
sh4rm4: This is seldom used, and is highly susceptible to be broken... |
# 20:58:53 |
sh4rm4 |
if the uclibc.so on the target differs, my binary is worthless |
# 20:58:58 |
y_morin |
sh4rm4: anyway, you could always rm -f all the .so afterward... |
# 20:59:13 |
y_morin |
I mean, after the toolchain is built. |
# 20:59:26 |
sh4rm4 |
ah, does it still build the static libs ? |
# 20:59:34 |
y_morin |
sh4rm4: yes, always. |
# 21:00:54 |
y_morin |
sh4rm4: I did not read everything above, but GMP and MPFR are needed by gcc. See: http://crosstool-ng.org/hg/crosstool-ng/file/tip/docs/9%20-%20How%20is%20a%20toolchain%20constructed.txt |
# 21:01:31 |
sh4rm4 |
http://www.nl.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.1.tar.bz2 |
# 21:01:51 |
y_morin |
sh4rm4: I already got it... Thx |
# 21:01:56 |
sh4rm4 |
y_morin, yes. i meant cloog and PPL |
# 21:02:04 |
y_morin |
sh4rm4: ditto. |
# 21:02:35 |
sh4rm4 |
aha. until now i always had to compile MPC, MPFR, GMP, but no PPL |
# 21:03:17 |
y_morin |
sh4rm4: http://gcc.gnu.org/install/configure.html |
# 21:04:19 |
mnt_real |
quits : Remote host closed the connection |
# 21:05:10 |
sh4rm4 |
is PPL really needed? i think i had that disabled previously and it always built well |
# 21:05:51 |
sh4rm4 |
maybe that's a drop-in replacement for MPC... |
# 21:06:30 |
y_morin |
sh4rm4: it's all explained in the URL I posted above. |
# 21:06:37 |
y_morin |
(the crosstool-nf.org one. |
# 21:06:46 |
y_morin |
s/nf/ng/ |
# 21:07:05 |
sh4rm4 |
oh sorry i was looking at the gcc page |
# 21:07:40 |
y_morin |
arounfd lines 158-175 (GMP/MPRF/MPC) and lines 196-212 (CLooG/PPL) |
# 21:07:49 |
y_morin |
sh4rm4: noproblem! ;-) |
# 21:08:14 |
y_morin |
sh4rm4: You'll notice one more dependency: libelf. |
# 21:08:35 |
sh4rm4 |
yeah.. |
# 21:09:07 |
sh4rm4 |
does that mean gcc 4.4 would support -flto if i configured it correctly ? |
# 21:09:27 |
y_morin |
sh4rm4: nope, LTO is for gcc >= 4.5 |
# 21:10:19 |
sh4rm4 |
y_morin, is it planned to add that one to the list of supported compilers ? |
# 21:10:37 |
sh4rm4 |
i.e. gcc 4.5.3 |
# 21:11:01 |
y_morin |
sh4rm4: gcc-4.5 and 4.6 are alrady in! 4.5.3 as well. |
# 21:11:35 |
sh4rm4 |
hmm. maybe i should have had to enable "experimental features" before choosing the gcc version |
# 21:11:54 |
y_morin |
It's just they did not got that much testing on my side, and nobody reported much (either good or bad) about them, so they still are behind EXPERIMENTAL. |
# 21:12:02 |
y_morin |
sh4rm4: yes |
# 21:12:33 |
y_morin |
But I think I'll drop the EXPERIMENTAL status, or nobody wil ever try them out... |
# 21:12:41 |
sh4rm4 |
heh :) |
# 21:13:10 |
y_morin |
sh4rm4: while installing kernel headers, I got: unifdef.c:209: error: conflicting types for 'getline' |
# 21:13:36 |
sh4rm4 |
yeah... glibc's stdio.h is bugged |
# 21:13:49 |
y_morin |
yeah, I know. Did you get it as well? |
# 21:13:55 |
sh4rm4 |
yes |
# 21:13:59 |
y_morin |
OK |
# 21:14:10 |
sh4rm4 |
now i get a name conflict between getline of one of the kernel header tools and the one of glibc, which pulls in that NON-POSIX proprietary GNU symbol if POSIX_C_SOURCE >= 200809L |
# 21:14:10 |
sh4rm4 |
thanks, drepper |
# 21:14:10 |
sh4rm4 |
*system header fixed, gnuism deleted* |
# 21:14:40 |
sh4rm4 |
i put an #if 0 around that prototype |
# 21:15:02 |
y_morin |
sh4rm4: proper getline fix is here: https://patchwork.kernel.org/patch/11166/ |
# 21:15:20 |
sh4rm4 |
the right fix would be to add it only if _GNU_SOURCE is defined |
# 21:15:40 |
sh4rm4 |
y_morin, ah cool, thx |
# 21:15:58 |
y_morin |
sh4rm4: Bah, as you said, Welcome to Drepper-land! ;-) |
# 21:16:18 |
sh4rm4 |
;) |
# 21:24:46 |
y_morin |
sh4rm4: OK, final compiler built OK here. Failed in binutils for target. Do you really need them? |
# 21:25:04 |
sh4rm4 |
the reason why it failed is critical |
# 21:25:14 |
sh4rm4 |
missing crti.o and crtn.o |
# 21:25:22 |
y_morin |
Hmmm.. |
# 21:26:07 |
sh4rm4 |
without those, you can't link an executable |
# 21:26:24 |
y_morin |
sh4rm4: indeed, you can't... |
# 21:26:54 |
y_morin |
find [install-dir] |grep cti |
# 21:26:56 |
y_morin |
./powerpc-unknown-linux-uclibc/lib/gcc/powerpc-unknown-linux-uclibc/4.4.6/ncrti.o |
# 21:26:58 |
y_morin |
./powerpc-unknown-linux-uclibc/lib/gcc/powerpc-unknown-linux-uclibc/4.4.6/ecrti.o |
# 21:27:05 |
y_morin |
Strange... |
# 21:27:14 |
sh4rm4 |
but you can build the objects using the built gcc with: -nostdlib -o crti.o -c .build/somedir_myarch/crti.S |
# 21:27:16 |
y_morin |
Why do they have 'e' and 'n' |
# 21:27:36 |
y_morin |
sh4rm4: in the uClibc dir? |
# 21:27:48 |
sh4rm4 |
y_morin, yes |
# 21:27:52 |
sh4rm4 |
sec... |
# 21:28:04 |
y_morin |
sh4rm4: so, bug in uClibc... |
# 21:28:57 |
sh4rm4 |
uClibc-0.9.30.2/libc/sysdeps/linux/powerpc/crtn.S |
# 21:29:27 |
sh4rm4 |
and crti.S |
# 21:30:49 |
sh4rm4 |
hmm... i guess those e and n have a special meaning |
# 21:33:54 |
sh4rm4 |
E-ABI and N-ABI ? |
# 21:34:17 |
sh4rm4 |
cat $(srcdir)/config/rs6000/eabi-ci.asm >ecrti.S |
# 21:35:04 |
y_morin |
probably, yes. |
# 21:36:00 |
y_morin |
sh4rm4: OK, I just tested the bundled ppc-uclibc sample, and it builds perfectly OK here. |
# 21:36:20 |
y_morin |
With uClibc-0.9.30.1, though... |
# 21:36:53 |
y_morin |
find powerpc-unknown-linux-uclibc-2 |grep /crtn |
# 21:36:56 |
sh4rm4 |
y_morin, it's probably related to "static only" |
# 21:36:56 |
y_morin |
./powerpc-unknown-linux-uclibc-2/powerpc-unknown-linux-uclibc/sysroot/usr/lib/crtn.o |
# 21:37:18 |
y_morin |
sh4rm4: I guess so, I'll enable that in your .config to see if it 'fixes' it... |
# 21:37:48 |
y_morin |
Still a few minutes before the sample is finished, then back to your .config... |
# 21:37:54 |
sh4rm4 |
:D |
# 21:38:23 |
y_morin |
sighs... What are 12 CPU worth, when .configure is purely sequential? :-( |
# 21:38:44 |
sh4rm4 |
oh yes |
# 21:38:57 |
sh4rm4 |
configure sometimes takes longer than the build |
# 21:39:05 |
y_morin |
indeed. Sigh... |
# 21:42:34 |
sh4rm4 |
configure runs a lot faster on sabotage linux, using musl libc |
# 21:43:01 |
sh4rm4 |
the author did quite some optimizations to reduce the number of syscalls req. on the startup of programs |
# 21:43:29 |
sh4rm4 |
and since configure calls hundreds of processes, that makes a notable difference |
# 21:46:36 |
y_morin |
Arghh!.. getline strikes again... :-/ |
# 21:47:05 |
y_morin |
Well... Last build before bed... |
# 21:47:51 |
y_morin |
goes out, lights a cigarette, waiting for the build to finish... |
# 21:47:52 |
sh4rm4 |
:/ |
# 21:47:55 |
sh4rm4 |
http://pkgs.org/mandriva-2010/mandriva-contrib-release-i586/cross-ppc-gcc-3.4.3-8mdv2009.0.i586.rpm.html |
# 21:48:17 |
sh4rm4 |
this package here has no crti.o and crti.n, but the e/n ones |
# 21:49:35 |
sh4rm4 |
it seems as if they didn't need them |
# 21:49:53 |
sh4rm4 |
maybe there's some gcc option which picks the right one |
# 21:54:36 |
y_morin |
sh4rm4: build broke while building final gcc here. |
# 21:54:57 |
y_morin |
sh4rm4: doing a quick analysis now... |
# 21:57:09 |
y_morin |
sh4rm4: I guess I found why. Your uClibc .config does not have shared enabled. |
# 21:57:33 |
sh4rm4 |
didn't you enable that ? |
# 21:57:45 |
y_morin |
sh4rm4: only in the crosstool-NG menu. |
# 21:57:55 |
sh4rm4 |
ouch |
# 21:58:03 |
y_morin |
sh4rm4: apparently, that's a config knob that I forgot to push down to the uClibc .config... |
# 21:58:15 |
sh4rm4 |
ah! |
# 21:58:55 |
sh4rm4 |
but i doubt that it helps in the creation of the crt*.o |
# 21:59:08 |
sh4rm4 |
except when everything is built shared |
# 22:00:28 |
y_morin |
sh4rm4: that's not it, in fact. |
# 22:00:50 |
y_morin |
sh4rm4: in uClibc/Makerules, line 339: |
# 22:00:57 |
y_morin |
ifeq ($(UCLIBC_CTOR_DTOR),y) |
# 22:00:59 |
y_morin |
CTOR_TARGETS=$(top_builddir)lib/crti.o $(top_builddir)lib/crtn.o |
# 22:01:00 |
y_morin |
else |
# 22:01:02 |
y_morin |
CTOR_TARGETS:= |
# 22:01:03 |
y_morin |
endif |
# 22:01:16 |
sh4rm4 |
huh, nice find |
# 22:01:19 |
y_morin |
So one needs constructors/destructors for crti/crtn... |
# 22:01:38 |
y_morin |
OK, one last build, just to check... :-/ |
# 22:01:40 |
sh4rm4 |
that sounds quite wrong |
# 22:03:09 |
sh4rm4 |
ctor/dtor should be c++ only |
# 22:03:18 |
y_morin |
sh4rm4: and in uClibc/Rules.mak: |
# 22:03:24 |
y_morin |
ifeq ($(UCLIBC_CTOR_DTOR),y) |
# 22:03:25 |
y_morin |
SHARED_START_FILES:=$(top_builddir)lib/crti.o $(LIBGCC_DIR)crtbeginS.o |
# 22:03:27 |
y_morin |
SHARED_END_FILES:=$(LIBGCC_DIR)crtendS.o $(top_builddir)lib/crtn.o |
# 22:03:28 |
y_morin |
endif |
# 22:03:33 |
y_morin |
(line 654) |
# 22:03:59 |
y_morin |
sh4rm4: ctor/dtor is not about C++, it's about the C runtime, IIRC. |
# 22:04:09 |
y_morin |
sh4rm4: it does not have the same meaning... |
# 22:04:12 |
y_morin |
IIRC... |
# 22:04:21 |
sh4rm4 |
oh, thanks for info |
# 22:04:22 |
mnt_real |
joins #crosstool-ng |
# 22:04:55 |
sh4rm4 |
so without ctor/dtor, you get an incomplete libc |
# 22:05:26 |
sh4rm4 |
i'll ask in #uclibc what the reason is |
# 22:05:35 |
y_morin |
sh4rm4: http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1&chap=2#doc_chap3 |
# 22:05:40 |
y_morin |
sh4rm4: scroll-down to the end. |
# 22:07:55 |
sh4rm4 |
interesting |
# 22:08:03 |
y_morin |
pretty much, indeed. |
# 22:08:15 |
y_morin |
It's glibc-centric, but applies to uClibc as well. |
# 22:08:28 |
smartin |
quits : Quit: Page closed |
# 22:08:36 |
sh4rm4 |
i wonder what use the libc is without those 2 |
# 22:09:08 |
y_morin |
sh4rm4: in case you want to provide your own, I guess... :-/ |
# 22:10:21 |
sh4rm4 |
we could fix it by removing that option from the uclibc config that's passed on... |
# 22:11:10 |
y_morin |
sh4rm4: the proper fix would be to have crosstool-NG always force it. |
# 22:11:15 |
sh4rm4 |
and i should ask them to rephrase the option, so the meaning is clear |
# 22:11:48 |
sh4rm4 |
y_morin, yes |
# 22:14:39 |
y_morin |
sh4rm4: the help entry in the uClibc menuconfig is quite eexplicit what ctors/dtors are. |
# 22:15:08 |
y_morin |
sh4rm4: but it is not really understandable, unless you already know what is going on... |
# 22:17:08 |
sh4rm4 |
searching it... |
# 22:20:32 |
y_morin |
quits : Quit: Time for a refreshing sleep. See you in ~9h... |
# 23:39:22 |
al`_ |
joins #crosstool-ng |
# 23:40:45 |
al` |
quits : Ping timeout: 260 seconds |