# 00:00:39 |
Trel |
I take that back, it took more than that, trying to figure out which bits combined + that worked |
# 04:45:02 |
cpackham |
quits : Ping timeout: 260 seconds |
# 05:52:34 |
milkylainen |
Trel: I don't know. Maybe on your host env, pkg-config is used and contains -lassuan? |
# 06:38:18 |
cpackham |
joins #crosstool-ng |
# 07:30:49 |
cpackham |
quits : Ping timeout: 246 seconds |
# 14:35:53 |
Trel |
milkylainen: To make it compile I need to add '-lgpg-error -lassuan' to the ldflags AND I have to run make 3-4 times |
# 14:36:32 |
Trel |
after that it's missing 1 or 2 .lai files (just copied .la files), but none of this happens on a system compile, just toolchain. |
# 14:37:35 |
Trel |
I can't imagine why I need to manually include those libraries in the first place when their location was provided with -L |
# 18:06:17 |
milkylainen |
Trel: You mean that the build aborts at random times for unspecified reasons? |
# 18:09:22 |
Trel |
milkylainen: I'll do it again this afternoon with -j1 to see if I can see a reason, but pretty much, yes, and just re-running the male command 2-3 times gets it to the end (return code 0). |
# 18:10:15 |
Trel |
Make install then fails for missing .lai files but as those are just copied+renamed .la files I tried manually copying them where it was looking and it did then install ok |
# 18:10:27 |
milkylainen |
Trel: Ok. So you used parallelization? |
# 18:10:43 |
Trel |
In thought -j1 avoids that? |
# 18:10:47 |
Trel |
*I |
# 18:11:06 |
milkylainen |
Yes. But when it breaks, did you use -j>1 |
# 18:11:12 |
Trel |
(Also should note again, if I build directly on the host, none of this happens.) |
# 18:11:40 |
Trel |
When it fails compiling, it does so with any value of -j including 1 |
# 19:04:30 |
milkylainen |
I just cross-built libgpg-error 1.45, libassuan 2.5.5 and gpgme 1.17.0 on x86_64, arm, aarch64. No issues. |
# 19:04:51 |
milkylainen |
Seemed quite old to me, so I bumped to pretty much latest of everyting. Same cross build archs. |
# 19:04:56 |
milkylainen |
Still no errors. |
# 19:05:28 |
milkylainen |
The quick and dirty update bump made use of libgpg-error 1.47, libassuan 2.5.6 and gpgme 1.23.2 |
# 19:05:44 |
milkylainen |
All crosstool toolchains. |
# 19:05:48 |
milkylainen |
ct-ng. |
# 19:08:08 |
zagura |
Hm. Maybe something related to autotools/make specific? |
# 19:08:18 |
zagura |
Some bugs can happen ;) |
# 19:09:57 |
milkylainen |
I have a pretty naked autoconf 2.71, autoconf-archive 2023.02.20, automake 1.16.5, libtool-2.47, pkgconf-1.9.5. |
# 19:10:27 |
Trel |
Those are from the host, right? |
# 19:10:52 |
milkylainen |
Nope, they are part of the host-section of the build environment. |
# 19:10:56 |
zagura |
ct-ng can build own version of those for host usage. |
# 19:11:01 |
milkylainen |
They are built separate from the host. |
# 19:11:05 |
Trel |
Does it by default? |
# 19:11:07 |
milkylainen |
Not part of the ct-ng toolchain. |
# 19:11:24 |
Trel |
Or do you have to explicitly enable it in menuconfig? |
# 19:11:41 |
milkylainen |
You have to specifiy if you need tools separately for the most part. |
# 19:12:01 |
milkylainen |
A complete build environment is far more than just the toolchain. |
# 19:12:05 |
Trel |
I'll rebuild everything today in a few hours. |
# 19:12:19 |
milkylainen |
I never integrate those tools directly into the toolchain. But I guess some do and there are uses for it. |
# 19:12:39 |
Trel |
Where do yours come from then? |
# 19:12:44 |
zagura |
Oh, right. Too much time with buildroot, I guess :) |
# 19:12:50 |
zagura |
Sorry for confusion. |
# 19:12:58 |
Trel |
I'm further confused |
# 19:13:24 |
Trel |
So does this mean I AM doing something wrong? |
# 19:13:47 |
milkylainen |
Trel: A toolchain is pretty naked in it's base form. There probably are reasons for including more tools in the toolchain, but most of the time they're provided from somewhere else. |
# 19:14:03 |
milkylainen |
Trel: Host, build environment, manually... etc. |
# 19:14:39 |
Trel |
So does that mean I was building wrong? |
# 19:15:15 |
milkylainen |
Trel: Not really. Building is complex and has endless pitfalls to it. |
# 19:15:28 |
milkylainen |
I've been b0rking embedded stuff for 25 years. |
# 19:16:12 |
milkylainen |
You're probably brighter than me, but you're probably not getting it all right on your first try. ;) |
# 19:16:31 |
Trel |
The problem is I don't know what or where to look for what's wrong because I don't understand what I'm using or doing. |
# 19:16:49 |
milkylainen |
I can't fix that with a 5 minute instruction, sorry. |
# 19:17:17 |
milkylainen |
As I said, I've been at it for the better part of my life and it's still a mystery at times. |
# 19:17:34 |
Trel |
But you're saying when you do it, works |
# 19:17:57 |
milkylainen |
Yes. I'm also using a build environment for solving the building. Not manually. |
# 19:18:09 |
Trel |
I'm not sure what that means |
# 19:18:19 |
milkylainen |
Buildroot, Yocto, Ptxdist etc. |
# 19:18:56 |
milkylainen |
I know my way around them, but they set up the environment and requirement of packages. Have dependencies met and stuff checked etc. |
# 19:19:33 |
milkylainen |
They pretty much automate all the dirty work and all the maintainers provide the packages, adapted for building in the environment. |
# 19:20:38 |
Trel |
I'm lost here. I thought I WAS building prereqs for what I'm trying to ultimately build |
# 19:21:25 |
Trel |
If I understand the terms, I'm trying to set up a build environment and failing in the first three things |
# 19:22:44 |
Trel |
So if not here, and not general Linux channels, where can I even turn to figure out what's going wrong? |
# 19:25:08 |
Trel |
Or rather, let me try this, if I start fresh, what should I be setting in menuconfig to make sure I'm doing this right? I've been changing glibc version (my goal) and ensuring it's Linux x86_64, not much else except checking c++ as well |
# 19:26:20 |
milkylainen |
Cross building x86_64 on an x86_64 machine can create some interesting issues if leakage occurs between finding stuff on the host and linking with other libraries. |
# 19:26:35 |
milkylainen |
Not all configures and setups are watertight. |
# 19:27:36 |
milkylainen |
Trel: The ct-ng configuration is pretty straightforward. Make sure you have the c-library you need, the compiler and a kernel header interface for the c-library that doesn't exceed what you'll run on later on. |
# 19:28:11 |
Trel |
Not exceeding the target is exactly why I'm trying to do this to start, heh |
# 19:28:46 |
Trel |
My systems glibc is too high or I'd just compile on yhe host |
# 19:28:52 |
milkylainen |
But building binaries for distributions outside the distribution itself .. hmm. Modern distros have a lot of local changes. One might run into odd stuff there too. |
# 19:29:11 |
Trel |
(My ultimate deployment method will be an appimage) |
# 19:29:20 |
Trel |
if everything works |
# 19:29:37 |
milkylainen |
Can't buildroot build various appimages straight out of the box? |
# 19:29:57 |
Trel |
But what can I do to minimize the issue with possible contamination from the host? |
# 19:29:58 |
milkylainen |
Probably not. |
# 19:29:59 |
milkylainen |
hmm. |
# 19:31:34 |
milkylainen |
Trel: I don't know if that's feasible. It's one of the big jobs for a build environment. Some use complete namespace separation methods, some use things like fakeroot, some actually use a chrooted env. Some just tries to make sure that everything looks right... |
# 19:33:08 |
cpackham |
joins #crosstool-ng |
# 20:21:48 |
Trel |
What would you recommend at this point? |
# 21:04:29 |
cpackham |
quits : Ping timeout: 240 seconds |
# 21:05:05 |
cpackham |
joins #crosstool-ng |