# 00:02:59 |
loide |
quits : Ping timeout: 264 seconds |
# 00:33:07 |
mingwandroid |
quits : Remote host closed the connection |
# 00:37:05 |
sh[4]rm4 |
quits : Remote host closed the connection |
# 00:39:44 |
sh4rm4 |
joins #crosstool-ng |
# 03:23:40 |
djerome |
joins #crosstool-ng |
# 04:08:20 |
djerome |
quits : Remote host closed the connection |
# 05:37:08 |
daggs123_ |
joins #crosstool-ng |
# 05:40:33 |
daggs1-work |
quits : Ping timeout: 272 seconds |
# 05:53:56 |
daggs123_ |
is now known as: daggs1-work |
# 06:24:46 |
daggs1-work |
quits : Quit: Leaving |
# 07:24:19 |
ctngbot |
joins #crosstool-ng |
# 08:07:27 |
aalv |
joins #crosstool-ng |
# 20:53:25 |
ctngbot |
joins #crosstool-ng |
# 20:53:45 |
y_morin |
sh4rm4: Hello! Yes, configure tries to find a GNU sed. |
# 20:54:33 |
y_morin |
Hm. No in fact, I changed nothing in that respect... |
# 20:54:49 |
y_morin |
Guma: Wht do you mean by "regular linux app development" ? |
# 20:54:54 |
y_morin |
*What |
# 20:57:24 |
Guma |
y_morin: not bare metal. |
# 20:58:22 |
Guma |
I am running custom build of linux on my cortex-9a (0xc09) arch 7 |
# 20:59:03 |
Guma |
As you can tell I am total noob in arm and cross compilation. Any help greatly appriciated |
# 21:00:07 |
y_morin |
Guma: Here are the samples available: http://code.bulix.org/k9966d-86539?raw |
# 21:00:40 |
y_morin |
Guma: One of interest to you might be: arm-cortexa9_neon-linux-gnueabihf |
# 21:00:53 |
y_morin |
Guma: use it with: ct-ng arm-cortexa9_neon-linux-gnueabihf; ct-ng build |
# 21:01:17 |
Guma |
y_morin: does it support hard float? |
# 21:01:29 |
Guma |
that is the most important to me |
# 21:01:39 |
y_morin |
Guma: neon is hard-float. |
# 21:02:02 |
y_morin |
Guma: And the tuple ends with -gnueabihf <- 'hf', for 'hard-float' |
# 21:02:23 |
Guma |
so what is eabi. I was under this was for embedded (e) abi |
# 21:02:43 |
Guma |
Some how this is what I got from google searches |
# 21:02:54 |
y_morin |
Guma: EABI is the new ABI for ARM. The previous ABi has been deprecatred for basically forever now. |
# 21:03:38 |
y_morin |
Guma: It indeed sttands for "Embedded ABI", but it is just a name. It is more like "Enhanced ABI" |
# 21:04:42 |
Guma |
y_morin: Thank you |
# 21:04:53 |
y_morin |
Guma: You're welcome. |
# 21:07:59 |
sh4rm4 |
y_morin, does that mean i cant use ct-ng on my box without gnu sed ? (i use busybox sed) |
# 21:08:21 |
y_morin |
sh4rm4: As long as sed understands -r -i -e, it should be OK. |
# 21:09:18 |
sh4rm4 |
according to --help, it does |
# 21:09:38 |
sh4rm4 |
wonder what the problem of Guma was (i cant imagine his ubuntu comes without gnu sed) |
# 21:09:44 |
y_morin |
sh4rm4: Just run: ./configure --with-sed=/path/to/sed |
# 21:10:41 |
Guma |
I am cetting cross compile on Mac 10.9.4 (guest). ubuntu is target |
# 21:11:35 |
y_morin |
Guma: Bad. You can *not* target an existing system with crosstool-NG. |
# 21:11:45 |
y_morin |
Guma: ct-ng is to generate a new system from scratch. |
# 21:11:49 |
Guma |
sh4rm4: I did figure out my initial problem. Mac has old BSD not GNU tools. So homebrew helped to set this up |
# 21:12:05 |
y_morin |
Guma: If you want to target an existing system, use the tools provided by that system. |
# 21:12:26 |
sh4rm4 |
Guma, i see |
# 21:12:45 |
Guma |
So how do I go building tool on Mac so I can develop on Mac and deploy on ubuntu/arm |
# 21:13:03 |
sh4rm4 |
y_morin, you cant build linux crosscompilers on mac ? |
# 21:13:25 |
y_morin |
sh4rm4: Not what I said. |
# 21:13:40 |
sh4rm4 |
well i dont get the gist of what you just said |
# 21:13:41 |
Guma |
Just for extra clarity I am not building firmware to talking to bare hardware. |
# 21:13:44 |
y_morin |
sh4rm4: I said that if you want to target an _existing_ system, you need to use the tools from that system. |
# 21:13:57 |
sh4rm4 |
well linux is an existing system |
# 21:14:00 |
Guma |
sh4rm4: That is what I am trying to do. But I have hard time to build it |
# 21:14:25 |
sh4rm4 |
but you can still build crosscompilers for it on other archs |
# 21:14:43 |
sh4rm4 |
at least i know that it's possible to build musl-cross on macs, targetting linux |
# 21:14:50 |
y_morin |
sh4rm4: You can build a compiler pretty much wherever you want (barring some limitations, of course) |
# 21:15:32 |
y_morin |
sh4rm4: But if you want to compile for Ubuntu, you can't expect to build a cross-compiler with ct-ng, tht will generate working binaries on Ubuntu. |
# 21:15:32 |
sh4rm4 |
so maybe i just dont get what you mean with "existing system" |
# 21:15:40 |
sh4rm4 |
why not ? |
# 21:15:46 |
y_morin |
sh4rm4: Because the ABI (or even the API) might differ. |
# 21:15:47 |
sh4rm4 |
you can statically link |
# 21:15:53 |
Guma |
sh4rm4: Ok let me got over this one more time. :) |
# 21:16:31 |
sh4rm4 |
yes, there may be problems if you compile a glibc toolchain with latest glibc and your target has a decade old glibc version |
# 21:16:35 |
y_morin |
sh4rm4: Static is bad, and you can;t really do static with glibc, now (because of the NSS stuff). |
# 21:16:49 |
Guma |
I have http://www.element14.com/community/docs/DOC-49013?ICID=knode-sabre-space#cfeatures this running Linux imx6qsabrelite 3.0.35-1.1 on it |
# 21:16:55 |
sh4rm4 |
sh4rm4: Static is bad |
# 21:16:57 |
sh4rm4 |
humm ? |
# 21:16:58 |
y_morin |
sh4rm4: Exactly. Plus distros usually patch glibc heavily. |
# 21:17:23 |
y_morin |
sh4rm4: Well, libraries dupliction. |
# 21:17:23 |
sh4rm4 |
i compile all my stuff for different archs statically |
# 21:17:30 |
sh4rm4 |
i dont want to get into the library hell |
# 21:17:51 |
Guma |
Now I want to set up development system on my Mac 10.9.4 do I can edit/compile and remote debug to that board |
# 21:17:52 |
y_morin |
sh4rm4: Well, if you have one or two binaries, that's OK. But if you have thousands, you don;t want to duplicate the libc in all of them. |
# 21:18:17 |
sh4rm4 |
that much is true |
# 21:18:42 |
sh4rm4 |
but i want at least my core utils static linked |
# 21:19:04 |
sh4rm4 |
so my PC survives a failed libc update or mount situation |
# 21:19:15 |
Guma |
All all my development will be C++/app server. No UI or any kind |
# 21:19:22 |
y_morin |
Guma: It's not a problem of MacOS (well, I despise MacOS, but that's another issue). It;s the problem that the C library and compiler you have in Ubuntu are heavily patched, and there is avbsolutely *no* guarantee that the compiler and glibc built by ct-ng are compatible with the one on Ubuntu. |
# 21:20:15 |
Guma |
so is there a way to "set it up" if I get the sources from where I build the system? |
# 21:20:19 |
sh4rm4 |
oh ? i thought glibc introduced symbol versioning exactly to provide a stable ABI |
# 21:20:43 |
y_morin |
sh4rm4: Not the problem. The problem are patches changing the API or ABI. |
# 21:20:54 |
y_morin |
Doh, let me rephrase. |
# 21:21:06 |
sh4rm4 |
ppl like intel, nvidia, opera, etc would be pretty pissed if their binaries won't work on ubuntu |
# 21:21:45 |
y_morin |
sh4rm4: If a distro has apatch that /fixes/ the API or ABI, but we don;t, you're screwed. |
# 21:21:55 |
y_morin |
sh4rm4: But those people do not cros-compile. |
# 21:22:19 |
y_morin |
sh4rm4: Those people compile on a very old system to be sure it wil work on a recent system. |
# 21:22:46 |
sh4rm4 |
yes; iirc with a glibc version that versions at 2.8 |
# 21:23:07 |
sh4rm4 |
i.e. printf@2.8 etc |
# 21:23:51 |
sh4rm4 |
anyway, with static linking you can avoid all these issues :) |
# 21:24:05 |
sh4rm4 |
unless you need DNS functionality from glibc that prevents it |
# 21:24:19 |
sh4rm4 |
in which case you probably should use musl or uclibc |
# 21:25:51 |
sh4rm4 |
altho i'm not sure if uclibc works with libstdc++, und uclibc++ seems to lag behind a lot (C++ folks usually want bleeding edge features) |
# 21:26:51 |
Guma |
sh4rm4: yup I am intending doing static linking |
# 21:27:38 |
sh4rm4 |
then i'd go for musl |
# 21:28:42 |
Guma |
So is it safe to say if I get tool chain from my ubuntu repo and building it on Mac would work (assuming not using corosstool-NG) but manually? Is this the way to go? |
# 21:28:49 |
sh4rm4 |
glibc makes horribly bloated static bins |
# 21:28:58 |
sh4rm4 |
a C hello world is ca 600 KB |
# 21:29:11 |
sh4rm4 |
and with C++ probably ~3MB |
# 21:29:37 |
Guma |
If so how to build it manually? |
# 21:29:51 |
sh4rm4 |
you need a crosscompiler |
# 21:30:18 |
sh4rm4 |
ubuntu doesnt ship crosscompilers for mac users afaik |
# 21:30:51 |
sh4rm4 |
so either build ct-ng or musl-cross |
# 21:32:28 |
sh4rm4 |
however you may be able to get a precompiled linaro toolchain |
# 21:33:39 |
sh4rm4 |
nope, they dont offer prebuilt glibc toolchains for macs |
# 21:33:48 |
sh4rm4 |
only for baremetal |
# 21:38:53 |
Guma |
So what is the worse case if there are not prebuilt packages? What is the the path that will work or is worth to try? |
# 21:39:25 |
y_morin |
Guma: Virtual machine on the Mac, install Ubuntu in there, develop in Ubuntu in the VM, deploy to real target. |
# 21:40:01 |
sh4rm4 |
building a musl-cross crosscompiler should do the job as well |
# 21:40:10 |
Guma |
y. That is one idea |
# 21:40:16 |
sh4rm4 |
as long as you use -static your binaries will work flawlessly |
# 21:40:34 |
sh4rm4 |
otherwise you have to install the dynamic libs on the target |
# 21:40:39 |
Guma |
not familiar with musl-cross. Let me google |
# 21:42:19 |
Guma |
So for what I only need proper build toolchain |
# 21:42:45 |
Guma |
is muls-cross is in apt-get? |
# 21:43:01 |
y_morin |
Guma: Probably not. |
# 21:43:23 |
sh4rm4 |
you need to build it on the mac |
# 21:43:34 |
sh4rm4 |
so there's no point in using apt-get |
# 21:44:59 |
sh4rm4 |
git clone https://github.com/GregorR/musl-cross |
# 21:45:12 |
sh4rm4 |
uncomment the stuff about hardfloat in config.sh |
# 21:45:20 |
sh4rm4 |
and run ./build.sh |
# 21:45:23 |
sh4rm4 |
done! |
# 21:46:15 |
sh4rm4 |
(oh and uncomment ARCH=arm in line 5) |
# 22:22:43 |
Guma |
sh4rm4: So you talking . Instal VM/Ubuntu, clone git and build? musl-cross is only linux.. NOT mac. Just to be totally clear |
# 22:25:33 |
sh4rm4 |
did i ever mention a VM ? |
# 22:25:46 |
sh4rm4 |
i explicitly said that you need to build it on the mac |
# 22:25:46 |
y_morin |
Guma: I did mention the VM. ;-) |
# 22:26:10 |
sh4rm4 |
you build musl-cross ON the mac FOR linux |
# 22:26:15 |
y_morin |
Guma: and it did *not* involve cross-copiling. |
# 22:26:35 |
sh4rm4 |
in a vm you just use the native toolchain |
# 22:26:45 |
sh4rm4 |
that ships with ubuntu |
# 22:26:56 |
Guma |
Ok Will try this |
# 22:26:58 |
y_morin |
sh4rm4: Which for his use-case is by far the best option he has. |
# 22:27:09 |
sh4rm4 |
i dont think so |
# 22:27:21 |
sh4rm4 |
transfering files back and forth to a VM is a PITA |
# 22:27:50 |
y_morin |
sh4rm4: That, or get a reall development machine with Linux on it. |
# 22:28:00 |
sh4rm4 |
also, it will be hard to get ubuntu arm working as a VM on a mac |
# 22:28:17 |
sh4rm4 |
unless he cares to learn all the qemu flags |
# 22:28:51 |
y_morin |
Well, embedded development using Ubuntu? Let me laugh... :-( |
# 22:31:02 |
Guma |
sh4rm4: what do you mean transferring to and from VM? I think I would be building in VM and remote remote debug on Arm Board. When ready deploy |
# 22:31:31 |
sh4rm4 |
you write your code on the mac i presume |
# 22:31:49 |
sh4rm4 |
so whenever you want to compile it, you'd have to transfer it to the VM |
# 22:32:06 |
sh4rm4 |
so that you can invoke the compiler there |
# 22:32:50 |
sh4rm4 |
if you use a crosscompiler, you compile your stuff on the mac directly, and only need to transfer the *binaries* to the arm board |
# 22:34:32 |
Guma |
sh4rm4: I am was intending to setup Eclipse with GNU ARM Plugin and then build/setup toolchain (all on Mec) So I could develop on it. Then remote debug to Arm/Linux and when done make package and push to local apt-get |
# 22:34:51 |
Guma |
That is what I was trying to do. tool chain is the one that I am stuck with on Mac |
# 22:35:22 |
sh4rm4 |
that's exactly what you can do with musl-cross |
# 22:35:49 |
sh4rm4 |
and ct-ng, for the matter, although it makes it more complicated due to the static linking/symbol version issues of glibc |
# 22:36:05 |
Guma |
:) Great. Totally lost in translation or maybe too tired (problem is on my end between monitor and keyboard) |
# 22:37:32 |
Guma |
Also by the way I noticed after building crosstools-NG that trying to build the actual toolchain I get this error: Your file system in '/Users/oxoocoffee/Tools/toolchain/.build' is *not* case-sensitive! |
# 22:38:04 |
Guma |
I was about to reinstall my Mac with case-sensitive file system |
# 22:38:33 |
y_morin |
Guma: Look in docs/ there are tutorial on how to use it on Mac. |
# 22:38:48 |
y_morin |
Guma: It explains how to make an image filesystem. |
# 22:52:28 |
sh4rm4 |
quits : *.net *.split |
# 22:52:28 |
bhundven |
quits : *.net *.split |
# 22:52:29 |
philenotfound |
quits : *.net *.split |
# 22:52:31 |
x56 |
quits : *.net *.split |
# 22:53:11 |
sh4rm4 |
joins #crosstool-ng |
# 22:53:12 |
bhundven |
joins #crosstool-ng |
# 22:53:12 |
philenotfound |
joins #crosstool-ng |
# 22:53:12 |
x56 |
joins #crosstool-ng |
# 22:53:59 |
ius |
quits : *.net *.split |
# 22:54:09 |
y_morin |
quits : Quit: Nighty Night! |
# 22:54:31 |
ius |
joins #crosstool-ng |
# 22:54:51 |
UukGoblin |
quits : *.net *.split |
# 22:54:54 |
imMute |
quits : *.net *.split |
# 22:54:54 |
_daniel_ |
quits : *.net *.split |
# 22:56:28 |
_daniel_ |
joins #crosstool-ng |
# 22:56:28 |
UukGoblin |
joins #crosstool-ng |
# 22:56:28 |
imMute |
joins #crosstool-ng |
# 23:39:49 |
Guma |
quits : Remote host closed the connection |