# 00:34:19 |
Tick_ |
quits : Quit: Leaving |
# 07:57:40 |
smartin |
joins #crosstool-ng |
# 17:52:10 |
y_morin |
joins #crosstool-ng |
# 18:27:12 |
y_morin |
is now known as: y_morin|away |
# 18:32:42 |
y_morin|away |
is now known as: y_morin |
# 19:13:11 |
Tick_ |
joins #crosstool-ng |
# 19:14:12 |
Tick_ |
Hi, Yann. Tick again. Another quick question. |
# 19:14:31 |
Tick_ |
You there? |
# 19:16:11 |
y_morin |
is now known as: y_morin|away |
# 20:28:18 |
Tick_ |
I guess Yann. won't come back here for a while. Anybody here can help me understand the problem? |
# 20:29:50 |
Tick_ |
When I tried to cross compile a RAID driver, it needs ; however, I didn't fine this header file in the toolchain |
# 20:30:41 |
smartin |
quits |
# 20:31:14 |
Tick_ |
I tried manually install headers (as a test) by issue the command "make ARCH=x86_64 INSTALL_HDR_PATH= headers_install" and I didn't find the compiler.h being installed under "dest dir" either. |
# 20:32:11 |
Tick_ |
What did I do wrong? |
# 20:35:24 |
Tick_ |
Do I need the sanitized header like the package "linux-libc-headers-2.6.12.0" being provided by the project? But that version is 2.6.12?? I am going to use the kernel 3.0.22. |
# 20:35:50 |
Tick_ |
Nobody here? |
# 20:36:14 |
Tick_ |
Hmmm.... ok. I guess I will just wait. |
# 21:09:08 |
y_morin|away |
is now known as: y_morin |
# 21:10:53 |
y_morin |
Tick_: Hey! Back, now. Just a sec as I get up to speed wrt a few other things... |
# 21:12:50 |
y_morin |
Tick_: I assume that by building a "driver" you mean a "kernel module", right? |
# 21:13:30 |
y_morin |
Tick_: In that case, the kernel modules require a full kernel-tree, not sanitised headers |
# 21:13:48 |
y_morin |
Tick_: (and forget about the linux-libc-headers-2.6.12.0, they are legacy, and dead). |
# 21:14:23 |
y_morin |
Tick_: also, it is highly probable that your kernel tree must be configured, which is the case if you already compiled the kernel. |
# 21:15:58 |
y_morin |
Tick_: otherwise, you can 'configure' a kernel tree thusly: |
# 21:16:29 |
y_morin |
1) configure the kernel proper, you must have a .config |
# 21:16:48 |
y_morin |
2) run: make ARCH=blabla prepare |
# 21:17:22 |
y_morin |
3) then you can build your kernel module: make -C /kernel/build/dir M=$(pwd) module |
# 21:18:05 |
y_morin |
(or something very like this; see Documentation/kbuild/modules.txt, chapter 2: How to Build External Modules) |
# 21:20:26 |
y_morin |
Tick_: Just for the records: linux/compiler.h is an header for use by the kernel *exclusively*, so it is *not* exported to userland. |
# 21:21:05 |
Tick_ |
Thanks Yann. I think it's a kernel module (You know, I was just following the failure point). However, like I mentioned before (I you remember :-)), we have this build system for 32-bit build for a long time and it never gave errors. |
# 21:21:34 |
Tick_ |
I saw the sanitized headers being provided in the 32-bit toolchain. (From crosstool-ng as well) |
# 21:22:15 |
y_morin |
Tick_: "sanitised headers" usually come from running "make headers_install" in a kernel tree. |
# 21:22:23 |
Tick_ |
And the configuration was with CT_KERNEL_LINUX_HEADERS_CUSTOM_DIR for that 32-bit (This configuration is obsolete in 1.14.1) |
# 21:22:36 |
Tick_ |
toolchain |
# 21:22:41 |
y_morin |
Tick_: the linux-libc-headers-2.6.12.0 is the effort done before headers_install was operational. |
# 21:22:54 |
Tick_ |
Got it. |
# 21:23:17 |
Tick_ |
Ok. Now the question is why I don't see it (compiler.h) in sysroot? |
# 21:23:35 |
Tick_ |
Why headers_install don't install it? |
# 21:23:45 |
y_morin |
Tick_: because the sysroot is userland, so it is not there, _on purpose_. |
# 21:24:00 |
Tick_ |
Oh... |
# 21:24:27 |
y_morin |
Tick_: when you build a kernel module, you don't use the sysroot, but only the files from the kernel source dir. |
# 21:25:51 |
Tick_ |
I don't understand why it worked for 32-bit build then. :-( To my understanding. We had the kernel as the last part of the build. |
# 21:26:25 |
Tick_ |
It's not related to the question. I was just trying to figure out which part was wrong |
# 21:26:44 |
Tick_ |
It's not crosstool-ng. It's my system. it's a bit off topic :-) |
# 21:26:47 |
smartin |
joins #crosstool-ng |
# 21:27:17 |
y_morin |
Tick_: probably because your "custom kernel headers" was a hacked/borked set of headers improperly setup. (not judging at all). |
# 21:27:40 |
y_morin |
Tick_: so compiler.h was in the sysroot, when it should not have been. |
# 21:27:57 |
Tick_ |
Yeah. I think so. Because when I directly copied that file over to sysroot and the compilation could continue. |
# 21:28:22 |
Tick_ |
Anyway, the content of compiler.h is empty from the sanitized headers. |
# 21:28:33 |
Tick_ |
I meant linux-libc-headers-2.6.12 |
# 21:29:15 |
Tick_ |
What could be the consequence of that? |
# 21:29:28 |
Tick_ |
I meant I am starting to worry about the 32-bit system. |
# 21:29:30 |
Tick_ |
the build. |
# 21:30:13 |
y_morin |
Tick_: I don't know what the consequences could be. Probably broken modules. |
# 21:30:46 |
Tick_ |
Seriously? That's for the RAID controller.... my goodness. |
# 21:31:29 |
Tick_ |
Let me double check it again. Maybe that's the build for the userland utilities, not for modules. |
# 21:31:33 |
y_morin |
Tick_: Looking at the content of compiler.h in the kernel source tree, it missing completely implies breakage along the road... :-/ |
# 21:32:31 |
Tick_ |
I know. The content is absolutely different. |
# 21:32:50 |
y_morin |
Tick_: For userland, probably no breakage. |
# 21:33:19 |
Tick_ |
But for userland utility, why does the code need ? |
# 21:33:31 |
y_morin |
Tick_: most of the file is protected by #ifdef __KERNEL__ ... #endif, so it should not impact userland. |
# 21:33:40 |
y_morin |
Tick_: because it is broken code? |
# 21:33:43 |
y_morin |
:-/ |
# 21:35:32 |
Tick_ |
Yeah... Ok. Looks like it's for a utility. |
# 21:35:46 |
Tick_ |
Almost scared my heart out. |
# 21:37:25 |
y_morin |
Tick_: still, you could observe breakage, because compiler-gcc.h (include from first) defines __aligned(x), so missing this could imply broken code *iff* alignment matters to it. |
# 21:39:36 |
Tick_ |
it's not the only one. It includes , , ... |
# 21:40:21 |
y_morin |
Tick_: if this utility is meant to talk to the kernel module, then it can be legit for it ot include the real kernel headers from the kernel tree, not from the sysroot. |
# 21:41:15 |
Tick_ |
Got it. Thanks. So what I have to do is either changing the source (Which is very unlikely) or I have to find out the way to use the kernel tree. |
# 21:41:25 |
Tick_ |
right? |
# 21:41:56 |
y_morin |
Tick_: Tweak the compile flags to include the kernel headers first, with -I/kernel/tree/include |
# 21:42:18 |
Tick_ |
Ok. I will do it. |
# 21:43:09 |
y_morin |
Tick_: but the above are just wild guesses, without complete knowledge of the context... Be careful... |
# 21:43:50 |
Tick_ |
When I compiled it with the hack (copying compiler.h to sysroot), it failed at the other place complaining about the c++ header wctype.h. Is that the same thing? |
# 21:44:53 |
y_morin |
Tick_: wctype.h is about widechars, so should be in the sysroot *if* you selected widechars in your toolchain (forced on for glibc, optional for uClibc). |
# 21:46:12 |
Tick_ |
I did use glibc but I don't see it in sysroot |
# 21:46:41 |
Tick_ |
it's at include/c++/4.4.3/trl/wctype.h |
# 21:46:51 |
Tick_ |
But not at ./sysroot/usr/include |
# 21:47:06 |
y_morin |
Tick_: it's right there in my sysroot: ./arm-unknown-linux-gnueabi/sysroot/usr/include/wctype.h |
# 21:47:13 |
y_morin |
gcc-4.3.2 |
# 21:47:23 |
Tick_ |
Something changed for 4.4.3? |
# 21:47:35 |
Tick_ |
I followed your suggestion, use the latest one. :-) |
# 21:47:38 |
y_morin |
Tick_: I'll rebuild a toolchain in a sec... |
# 21:47:41 |
Tick_ |
Just kidding. |
# 21:50:05 |
y_morin |
Tick_: Except for the download, re-building the toolchain on my machine is a matter of ~20 minutes, so it's not too long... |
# 21:50:06 |
y_morin |
;-) |
# 21:50:35 |
y_morin |
GTG, BBL... |
# 21:50:38 |
y_morin |
is now known as: y_morin|away |
# 22:06:45 |
imMute |
quits : Ping timeout: 248 seconds |
# 22:07:30 |
imMute |
joins #crosstool-ng |
# 22:07:36 |
imMute |
quits : Changing host |
# 22:07:36 |
imMute |
joins #crosstool-ng |
# 22:20:56 |
y_morin|away |
is now known as: y_morin |
# 22:22:06 |
y_morin |
Tick_: wctycomes from the C library. What C library are you using? |
# 22:22:38 |
y_morin |
s/wctycomes/wctype.h comes/ |
# 22:23:06 |
y_morin |
Tick_: for the records: glibc-2.9 and 2.14.1 install it. |
# 22:25:52 |
Tick_ |
You meant the host system? |
# 22:27:05 |
Tick_ |
for the toolchain it's glibc-2.9 |
# 22:28:33 |
Tick_ |
?? |
# 22:40:39 |
Tick_ |
y_morin: You still there? |
# 22:41:29 |
y_morin |
Tick_: I mean for the cross toolchain. |
# 22:45:44 |
Tick_ |
Yes. 2.9 |
# 22:45:54 |
Tick_ |
gcc 4.4.3 |
# 22:46:15 |
Tick_ |
I am reinstalling it as well. |
# 22:46:23 |
Tick_ |
I meant rebuilding it. |
# 23:38:10 |
smartin |
quits |
# 23:48:58 |
y_morin |
quits : Quit: Night! |