# 07:28:00 |
kos_tom |
joins #crosstool-ng |
# 07:46:48 |
kos_tom |
quits : Ping timeout: 252 seconds |
# 08:07:08 |
kos_tom |
joins #crosstool-ng |
# 12:21:58 |
Buglouse |
quits : Ping timeout: 246 seconds |
# 14:41:20 |
kos_tom |
quits : Quit: Leaving |
# 15:14:01 |
tempura |
joins #crosstool-ng |
# 15:14:15 |
tempura |
hi there |
# 15:17:06 |
tempura |
i'm using a ct-ng made compiler to compile for my target and need my application linked against libuuid built as a buildroot companion package |
# 15:18:15 |
tempura |
my question is how to get the ct-ng made compiler and linker use libuuid.h and link against libuuid.so from in buildroot's generated target fs |
# 15:40:43 |
tempura |
um, found out how to do it |
# 15:40:48 |
tempura |
thanks for having me over :) |
# 15:40:51 |
tempura |
parts #crosstool-ng |
# 15:53:10 |
kos_tom |
joins #crosstool-ng |
# 15:57:18 |
Buglouse |
joins #crosstool-ng |
# 17:26:17 |
daggs1-home |
joins #crosstool-ng |
# 19:29:55 |
y_morin |
joins #crosstool-ng |
# 19:32:26 |
daggs1-home |
y_morin, hello! |
# 19:32:28 |
daggs1-home |
whats up? |
# 19:32:42 |
y_morin |
daggs1-home: hey! :-) |
# 19:33:03 |
daggs1-home |
did you've heard about the new compiler on the block? |
# 19:33:45 |
y_morin |
daggs1-home: which one are you speaking about? |
# 19:34:15 |
daggs1-home |
pathscale has open sourced their c/c++ compiler |
# 19:34:48 |
y_morin |
is un-piling the huge pile of mails accumulated during a WE party... |
# 19:34:55 |
daggs1-home |
:_D |
# 19:34:57 |
daggs1-home |
:-D |
# 19:35:39 |
y_morin |
No, I hadn't heard of it so far. |
# 19:36:32 |
daggs1-home |
ok, say did you encountered any issues when compiling a file with -Wl,-static? |
# 19:39:49 |
y_morin |
daggs1-home: yes/no. Depends on what you are calling 'issues'. |
# 19:40:24 |
daggs1-home |
this: /opt/server/local/inst/crosstool/x86_64-vSMP-linux-gnu/gcc-4.6.0-glibc-2.11.1/bin/../lib/gcc/x86_64-vSMP-linux-gnu/4.6.0/../../../../x86_64-vSMP-linux-gnu/bin/ld: cannot find -lgcc_s |
# 19:40:32 |
daggs1-home |
collect2: ld returned 1 exit status |
# 19:41:21 |
y_morin |
but usually, when linking, either you directly use 'ld' and can then pass -static; or you use 'gcc' and pass it the -static flag. |
# 19:42:09 |
daggs1-home |
yes, thing is, it is part of a configure process of a software |
# 19:42:39 |
y_morin |
I am not sure what happens when you are using 'gcc' as the linker frontend, do not tell it to link static (without -static), and only tell 'ld' to link static (with -Wl,-static). |
# 19:42:52 |
daggs1-home |
it wants to verify that you can compile c programs so it runs a command with that to makesure |
# 19:43:25 |
y_morin |
daggs1-home: is it a standard ./configure you are using ? |
# 19:43:35 |
daggs1-home |
yes |
# 19:44:04 |
y_morin |
sorry, dunno... |
# 19:44:04 |
daggs1-home |
sec |
# 19:45:47 |
daggs1-home |
mmm, looking for that issue in normal compilers means that libgcc_s.so is missing but it does exists |
# 19:46:20 |
y_morin |
daggs1-home: libgcc_s.so is a shared lib, so ld is not gonna use it, as you are asking for static link. |
# 19:46:48 |
y_morin |
but as you are not telling gcc to do so, maybe it is passing the shared lib to ld, instead of the static one. |
# 19:47:31 |
y_morin |
daggs1-home: what is the full failing command line when calling gcc ? |
# 19:47:39 |
daggs1-home |
I've tried that but it doesn't seems to work |
# 19:47:52 |
daggs1-home |
[16:17:13 eial@eial pastebin]$ /opt/crosstool/x86_64-vSMP-linux-gnu/gcc-4.6.0-glibc-2.11.1/bin/x86_64-vSMP-linux-gnu-g++ -Os -I/u/eial/projects/ScMP64/src/3rdparty/openib/include/ -g -L/u/eial/projects/ScMP64/src/3rdparty/openib/lib -Wl,-static test.c -losmcomp -libverbs -libumad -libcommon |
# 19:47:53 |
daggs1-home |
/opt/server/local/inst/crosstool/x86_64-vSMP-linux-gnu/gcc-4.6.0-glibc-2.11.1/bin/../lib/gcc/x86_64-vSMP-linux-gnu/4.6.0/../../../../x86_64-vSMP-linux-gnu/bin/ld: cannot find -lgcc_s |
# 19:47:53 |
daggs1-home |
collect2: ld returned 1 exit status |
# 19:48:35 |
y_morin |
daggs1-home: try to re-run that exact same command, and pass: -v -Wl,-verbose |
# 19:49:07 |
y_morin |
I mean, add those flags when calling cc, it'll show you the full call to ld that gcc is trying to do. |
# 19:49:32 |
y_morin |
Then, it'll also show where ld is looking for each libs and .o files |
# 19:49:49 |
daggs1-home |
ok, I'll take note of it and try tomorrow as I'm not at work now |
# 19:50:23 |
daggs1-home |
so -v -Wl,-static,-verbose? |
# 19:51:08 |
y_morin |
yes, that works also. You can pass multiple -Wl args: -Wl,-static -Wl,-verbose |
# 19:52:03 |
daggs1-home |
ok, will try, thnaks :) |
# 19:54:39 |
daggs1-home |
no that is strange, it fails on my local compiler |
# 19:55:56 |
y_morin |
daggs1-home: ? What has your local compiler to do in this? You are calling the cross compiler... |
# 19:56:16 |
y_morin |
Is your local host also an x86_64 ? |
# 19:56:51 |
daggs1-home |
y_morin, I know, I've thought of trying to see what is the output at my home |
# 19:57:08 |
daggs1-home |
I'm running gentoo x86_64 |
# 19:57:41 |
y_morin |
daggs1-home: OK, so you tried to reproduce the issue with your native compiler, right? |
# 19:57:53 |
daggs1-home |
from the output, I see that is looks for libgcc_s.a |
# 19:57:57 |
daggs1-home |
yes |
# 19:58:42 |
daggs1-home |
but I have libgcc_s.so |
# 19:58:42 |
daggs1-home |
so maybe the issue is the need for libgcc_s.a too |
# 19:59:17 |
y_morin |
daggs1-home: Try adding -static to the gcc call, instead of -Wl,-static, and see if it helps. |
# 19:59:30 |
daggs1-home |
mmm it seems that I need -static-libgcc added to gcc |
# 20:00:27 |
y_morin |
daggs1-home: except that, if you tell gcc to link static with '-static', it'll do it for you: it is gonna use the static libgcc, *and* tell ld to only use static libs. |
# 20:00:58 |
daggs1-home |
works but it doesn't looks for the lib in question |
# 20:01:44 |
daggs1-home |
so, I need to modify the configure script to compile with -static instead of -Wl,-static? |
# 20:03:25 |
y_morin |
daggs1-home: just check if it works in the first place. If it does,, then you can hack it into the ./configure. |
# 20:05:53 |
daggs1-home |
g++ -static-libgcc -Os -Wl,-static -Wl,-verbose conftest.c passes that issue but fails on libgcc_eh |
# 20:06:15 |
y_morin |
is now known as: y_morin|away |
# 20:12:46 |
y_morin|away |
is now known as: y_morin |
# 20:15:45 |
infobot |
quits : Remote host closed the connection |
# 20:18:54 |
infobot |
joins #crosstool-ng |
# 20:48:14 |
tkil |
joins #crosstool-ng |
# 20:49:18 |
tkil |
where should i start looking, to figure out why /usr/lib/libnss_... files are not getting copied to my root when i call "...-populate"? |
# 20:50:32 |
y_morin |
tkil: run ...-populate --help |
# 20:50:46 |
y_morin |
tkil: the libnss are never copied automatically, because: |
# 20:51:13 |
y_morin |
1) there is no program that is linked to them |
# 20:51:25 |
y_morin |
2) so there is no NEEDED tag for them in programs |
# 20:51:38 |
y_morin |
3) so 'readelf -d' can't see they are needed. |
# 20:52:41 |
y_morin |
Beside, depending on the system, populate can not know what libs to copy. Do you want to use files? NIS? YellowPages? LDAP? Other?... |
# 20:52:46 |
tkil |
y_morin -- (this is anthony.foiani@gmail, btw.) |
# 20:53:01 |
tkil |
let me read the docs again, brb |
# 20:53:04 |
y_morin |
tkil: Hello Anthony! :-) |
# 20:53:17 |
tkil |
ah, -l it is. :) |
# 20:54:04 |
y_morin |
tkil: yep, you can even pass it -L to accept a file with one lib listed per line. |
# 20:55:02 |
tkil |
indeed. on a related note, is there a similar flag to get the debug-root stuff populated? (that question might not make any sense) |
# 20:55:18 |
tkil |
i was somewhat confused when i didn't have strace on my populated root... |
# 20:55:29 |
y_morin |
tkil: no there is no such flag. Yes, it makes sense to copy the gdbserver |
# 20:55:42 |
y_morin |
And of course, the other tools. |
# 20:56:06 |
tkil |
(although it might not really matter, as my current workflow is to make a min root (and package that for initramfs or whatnot) then add more stuff and make that my live nfs root.) |
# 20:56:23 |
tkil |
spiffy. thanks again! |
# 20:57:23 |
y_morin |
tkil: but as the tools in debug-root are for, well, debug, it makes sense IMHO to let the developper just copy what it needs, even afterward. |
# 20:58:28 |
y_morin |
tkil: but adding such a flag should be relativelt easy. Smthg like: -t tool1[:tool2...] ( eg.: -t gdbserver:strace:ltrace ) |
# 20:58:57 |
tkil |
agreed, hence my comment about my workflow. (although i could see a different workflow, where someone would want a fat and porky nfs root until they've ironed out most of the difficulties on the prototype device, then start trimming out the fat...) |
# 20:59:59 |
y_morin |
tkil: both have advantages: fat means easy to progress at begining, harder at the end of dev cycle. Slim is the other way around: slowest at beginning of dev cycle, easier at the end |
# 21:00:42 |
y_morin |
has to recover from a tiring WE... Going to bed now.. |
# 21:00:51 |
tkil |
have a good evening! |
# 21:01:01 |
y_morin |
quits : Quit: Nite All! :-) |
# 21:18:46 |
daggs1-home |
quits : Quit: Leaving |
# 21:34:15 |
kos_tom |
quits : Ping timeout: 255 seconds |
# 21:35:47 |
jacques_ |
joins #crosstool-ng |
# 21:37:22 |
kos_tom |
joins #crosstool-ng |
# 21:39:33 |
jacques |
quits : Ping timeout: 258 seconds |
# 21:42:32 |
tkil |
quits : Quit: nap |
# 22:11:36 |
kos_tom |
quits : Ping timeout: 255 seconds |
# 22:11:51 |
kos_tom |
joins #crosstool-ng |
# 22:16:26 |
kos_tom |
quits : Client Quit |