Hi there Rafael,
Please tell me, what is a platform for which you are going to build a coreboot? Seeing that you have downgraded your toolchain's GCC version to 8.3.0, like I'm suggesting in this manual - http://dangerousprototypes.com/docs/Lenovo_G505S_hacking - I suspect that your platform is the "opensource AMD AGESA" one, i.e. Lenovo G505S (or ASUS A88XM-E or ASUS AM1I-A). If that's really true, then you don't need the gcc-ada at all, and it is preferable that you remove a gcc-ada from your OS at all before trying to build a coreboot 8.3.0 toolchain to avoid the possible errors (so that the toolchain gets built without Ada).
On Sat, Jan 7, 2023 at 2:51 AM Rafael Send flyingfishfinger@gmail.com wrote:
Hi, I'm trying to "make crossgcc" for coreboot, but it fails at building GCC 8.3.0. As far as I can tell, coreboot uses (this) specific version to make sure things work right, but I'm not sure why this is going wrong.
The system gnat version is 10.4.0, but I did read somewhere that the Ada version should match the gcc one. Does that mean gnat-8 is required? That's not a thing that I can find.
I've attached the suggested build.log file, can anyone suggest how to resolve this issue?
Thanks, Rafael _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
Hi, I didn't downgrade the toolchain intentionally, I'm looking to build a fork of coreboot for a specific platform (mjg59's X2100 port) that never got upstreamed. After pulling his repo at https://github.com/mjg59/coreboot/tree/x2100_ng, that is what it wants to build with.
I haven't build any coreboot version in over a year, so I'm not sure what has changed since I last tried. I've also never tried building that fork for this platform before. I'm running Ubuntu 22.04 on the machine in question (X2100), which is the 51nb aftermarket motherboard based on an i7-10710U, which is also the intended build target.
I successfully "make iasl", but then it throws up on looking for "i386-32", so I tried making crossgcc which fails with the aforementioned error.
Thanks, Rafael
Am Sa., 7. Jan. 2023 um 12:56 Uhr schrieb Mike Banon mikebdp2@gmail.com:
Hi there Rafael,
Please tell me, what is a platform for which you are going to build a coreboot? Seeing that you have downgraded your toolchain's GCC version to 8.3.0, like I'm suggesting in this manual - http://dangerousprototypes.com/docs/Lenovo_G505S_hacking - I suspect that your platform is the "opensource AMD AGESA" one, i.e. Lenovo G505S (or ASUS A88XM-E or ASUS AM1I-A). If that's really true, then you don't need the gcc-ada at all, and it is preferable that you remove a gcc-ada from your OS at all before trying to build a coreboot 8.3.0 toolchain to avoid the possible errors (so that the toolchain gets built without Ada).
On Sat, Jan 7, 2023 at 2:51 AM Rafael Send flyingfishfinger@gmail.com wrote:
Hi, I'm trying to "make crossgcc" for coreboot, but it fails at building GCC
8.3.0. As far as I can tell, coreboot uses (this) specific version to make sure things work right, but I'm not sure why this is going wrong.
The system gnat version is 10.4.0, but I did read somewhere that the Ada
version should match the gcc one. Does that mean gnat-8 is required? That's not a thing that I can find.
I've attached the suggested build.log file, can anyone suggest how to
resolve this issue?
Thanks, Rafael _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
-- Best regards, Mike Banon Open Source Community Manager of 3mdeb - https://3mdeb.com/
Hi Rafael,
On 07.01.23 22:03, Rafael Send wrote:
I didn't downgrade the toolchain intentionally, I'm looking to build a fork of coreboot for a specific platform (mjg59's X2100 port) that never got upstreamed. After pulling his repo at https://github.com/mjg59/coreboot/tree/x2100_ng, that is what it wants to build with.
if you want open-source pre-OS display, you need the Ada compiler.
You could build the current toolchain with a checkout of coreboot master and then try to build for this board with it. You could also try to build with your host toolchain (CONFIG_ANY_TOOLCHAIN, should be in the "General" Kconfig menu).
Alas, GCC doesn't officially support building an older version with a newer one. It usually works, but the Ada frontend often needs a little help. Hence we only maintain that for the latest coreboot. It's probably easier to use the newest toolchain.
Nico
Hi, If I wanted to try your first suggestion, does the toolchain build transcend directories? In order to not mix up trees & versions so far I have just checked out the latest master and the version in question into two totally separate coreboot folders.
Thanks, R
Am Sa., 7. Jan. 2023 um 14:32 Uhr schrieb Nico Huber nico.h@gmx.de:
Hi Rafael,
On 07.01.23 22:03, Rafael Send wrote:
I didn't downgrade the toolchain intentionally, I'm looking to build a
fork
of coreboot for a specific platform (mjg59's X2100 port) that never got upstreamed. After pulling his repo at https://github.com/mjg59/coreboot/tree/x2100_ng, that is what it wants
to
build with.
if you want open-source pre-OS display, you need the Ada compiler.
You could build the current toolchain with a checkout of coreboot master and then try to build for this board with it. You could also try to build with your host toolchain (CONFIG_ANY_TOOLCHAIN, should be in the "General" Kconfig menu).
Alas, GCC doesn't officially support building an older version with a newer one. It usually works, but the Ada frontend often needs a little help. Hence we only maintain that for the latest coreboot. It's probably easier to use the newest toolchain.
Nico
On 07.01.23 23:53, Rafael Send wrote:
If I wanted to try your first suggestion, does the toolchain build transcend directories? In order to not mix up trees & versions so far I have just checked out the latest master and the version in question into two totally separate coreboot folders.
Not automatically, but you can point to the .../util/crossgcc/xgcc/bin directory in $XGCCPATH or add it to your $PATH.
You can also pull out the whole xgcc/ dir, so it doesn't live in a specific tree checked out.
Nico
Hi, Thanks for the suggestion. It built in master, then I copied it to the xgcc folder from the fork I'm using. Close, but no dice just yet. I'm now running into a different problem, both on master and on my fork: Tianocore says it lacks uuid-dev (libuuid-devel). I'm on Ubuntu, and uuid-dev is already installed. What am I missing? It sounds similar to this here: https://www.reddit.com/r/coreboot/comments/kigu2z/uuiddev_libuuiddev_tianoco... but that doesn't appear to have a resolution that I can see...
Cheers, Rafael
Am Sa., 7. Jan. 2023 um 15:15 Uhr schrieb Nico Huber nico.h@gmx.de:
On 07.01.23 23:53, Rafael Send wrote:
If I wanted to try your first suggestion, does the toolchain build transcend directories? In order to not mix up trees & versions so far I have just checked out the latest master and the version in question into two totally separate coreboot folders.
Not automatically, but you can point to the .../util/crossgcc/xgcc/bin directory in $XGCCPATH or add it to your $PATH.
You can also pull out the whole xgcc/ dir, so it doesn't live in a specific tree checked out.
Nico
Actually, that's not quite right. When I "make" from the root directory, it appears not to fully build Tianocore and throws an error saying "UEFIPAYLOAD.fd - no such file or directory". If I enter payloads/externa/tianocore directory and attempt to "make" there as I've done before (I think), I receive the previously mentioned error.
Apologies for the inaccuracy. R
Am Sa., 7. Jan. 2023 um 22:52 Uhr schrieb Rafael Send < flyingfishfinger@gmail.com>:
Hi, Thanks for the suggestion. It built in master, then I copied it to the xgcc folder from the fork I'm using. Close, but no dice just yet. I'm now running into a different problem, both on master and on my fork: Tianocore says it lacks uuid-dev (libuuid-devel). I'm on Ubuntu, and uuid-dev is already installed. What am I missing? It sounds similar to this here: https://www.reddit.com/r/coreboot/comments/kigu2z/uuiddev_libuuiddev_tianoco... but that doesn't appear to have a resolution that I can see...
Cheers, Rafael
Am Sa., 7. Jan. 2023 um 15:15 Uhr schrieb Nico Huber nico.h@gmx.de:
On 07.01.23 23:53, Rafael Send wrote:
If I wanted to try your first suggestion, does the toolchain build transcend directories? In order to not mix up trees & versions so far I have just checked out the latest master and the version in question into two totally separate coreboot folders.
Not automatically, but you can point to the .../util/crossgcc/xgcc/bin directory in $XGCCPATH or add it to your $PATH.
You can also pull out the whole xgcc/ dir, so it doesn't live in a specific tree checked out.
Nico
If i look on ubuntu 18 I see this: /usr/lib/x86_64-linux-gnu/libuuid.a
If I look on ubuntu 22, it's no longer there.
to build firmware with this sort of library, you need the .a (which is for static linking). Somewhat ironic, for UEFI, since the entire DXE model is built on the DLL model, that they can't handle a uuid .so, but so it goes :-)
For reasons I still don't understand, the various linux distros no longer ship .a as part of the library package.
Many tests will indicate that a library is present if they find the .so. But the .so is useless if you need static linking. In parts of the discussion you posted, it looks like people are finding the .so and not realizing they need the .a?
Hence, the policy of distros like ubuntu, to remove .a files that support static linking, is a dagger aimed at the heart of firmware projects.
The weirdest tithing: linux guarantees syscall ABI compatibility that goes back, at this point, the better part of TWO DECADES. So why do these distros remove support for static linking? I never have trouble with kernel ABI, it's the .so ABI that tends to break. IOW, statically linked binaries are more portable than ones that use .so!
Anyway, I think that's your problem. Ubuntu is breaking firmware now, with a poorly thought out change to what is shipped in a package. What about other distros? We might want to recommend people stop trying to build with ubuntu?
Sorry.
On Sat, Jan 7, 2023 at 10:57 PM Rafael Send flyingfishfinger@gmail.com wrote:
Actually, that's not quite right. When I "make" from the root directory, it appears not to fully build Tianocore and throws an error saying "UEFIPAYLOAD.fd - no such file or directory". If I enter payloads/externa/tianocore directory and attempt to "make" there as I've done before (I think), I receive the previously mentioned error.
Apologies for the inaccuracy. R
Am Sa., 7. Jan. 2023 um 22:52 Uhr schrieb Rafael Send < flyingfishfinger@gmail.com>:
Hi, Thanks for the suggestion. It built in master, then I copied it to the xgcc folder from the fork I'm using. Close, but no dice just yet. I'm now running into a different problem, both on master and on my fork: Tianocore says it lacks uuid-dev (libuuid-devel). I'm on Ubuntu, and uuid-dev is already installed. What am I missing? It sounds similar to this here: https://www.reddit.com/r/coreboot/comments/kigu2z/uuiddev_libuuiddev_tianoco... but that doesn't appear to have a resolution that I can see...
Cheers, Rafael
Am Sa., 7. Jan. 2023 um 15:15 Uhr schrieb Nico Huber nico.h@gmx.de:
On 07.01.23 23:53, Rafael Send wrote:
If I wanted to try your first suggestion, does the toolchain build transcend directories? In order to not mix up trees & versions so far
I
have just checked out the latest master and the version in question
into
two totally separate coreboot folders.
Not automatically, but you can point to the .../util/crossgcc/xgcc/bin directory in $XGCCPATH or add it to your $PATH.
You can also pull out the whole xgcc/ dir, so it doesn't live in a specific tree checked out.
Nico
coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
On 08.01.23 17:42, ron minnich wrote:
For reasons I still don't understand, the various linux distros no longer ship .a as part of the library package.
They ship them separately. On Ubuntu, usually a -dev package. I even recall -devel-static packages (-devel was headers only and such) ~20 years back.
The reason to ship them separately is simple: not everybody has the space/bandwidth to spare. These habits are decades old. Some newer distros moved to ship everything in one package, though.
One odd thing about libuuid: The Ubuntu package is called uuid-dev (not libuuid-dev). That's something I don't understand ;)
Nico
But in some cases static libs are no longer provided at all. Would be nice to know if that's the case for libuuid.
On Sun, Jan 8, 2023, 9:24 AM Nico Huber nico.h@gmx.de wrote:
On 08.01.23 17:42, ron minnich wrote:
For reasons I still don't understand, the various linux distros no longer ship .a as part of the library package.
They ship them separately. On Ubuntu, usually a -dev package. I even recall -devel-static packages (-devel was headers only and such) ~20 years back.
The reason to ship them separately is simple: not everybody has the space/bandwidth to spare. These habits are decades old. Some newer distros moved to ship everything in one package, though.
One odd thing about libuuid: The Ubuntu package is called uuid-dev (not libuuid-dev). That's something I don't understand ;)
Nico
If it would help, we could supply a VM with each release that had the coreboot toolchain pre-built. It's also possible to use the released docker images to rebuild coreboot - those already contain the toolchain.
The advantages to both of these is that you'd be building in the environment that was originally used at the time the code was developed - that works around a significant number of problems that you could be running int. If you're interested in either of those options, let me know and I'll supply images and instructions to get you up and running.
Martin
Jan 8, 2023, 12:16 by rminnich@gmail.com:
But in some cases static libs are no longer provided at all. Would be nice to know if that's the case for libuuid.
On Sun, Jan 8, 2023, 9:24 AM Nico Huber <> nico.h@gmx.de> > wrote:
On 08.01.23 17:42, ron minnich wrote:
For reasons I still don't understand, the various linux distros no longer ship .a as part of the library package.
They ship them separately. On Ubuntu, usually a -dev package. I even recall -devel-static packages (-devel was headers only and such) ~20 years back.
The reason to ship them separately is simple: not everybody has the space/bandwidth to spare. These habits are decades old. Some newer distros moved to ship everything in one package, though.
One odd thing about libuuid: The Ubuntu package is called uuid-dev (not libuuid-dev). That's something I don't understand ;)
Nico
Hi, The weird part is that if I build from the root directory, it DOES say uuid-dev is found yet the build still fails. Might that be for the aforementioned reason* " Many tests will indicate that a library is present if they find the .so. But the .so is useless if you need static linking."* ?
I've attached logs of that, in case the solution is different for any reason.
My goal is to build the older fork I mentioned, not the current master. I just tried that again, the Tianocore setup / selection has changed and that DOES work (it's now called edk2 instead of Tianocore right?).
Thanks, Rafael
Am So., 8. Jan. 2023 um 11:31 Uhr schrieb Martin Roth <gaumless@tutanota.com
:
If it would help, we could supply a VM with each release that had the coreboot toolchain pre-built. It's also possible to use the released docker images to rebuild coreboot - those already contain the toolchain.
The advantages to both of these is that you'd be building in the environment that was originally used at the time the code was developed - that works around a significant number of problems that you could be running int. If you're interested in either of those options, let me know and I'll supply images and instructions to get you up and running.
Martin
Jan 8, 2023, 12:16 by rminnich@gmail.com:
But in some cases static libs are no longer provided at all. Would be
nice to know if that's the case for libuuid.
On Sun, Jan 8, 2023, 9:24 AM Nico Huber <> nico.h@gmx.de> > wrote:
On 08.01.23 17:42, ron minnich wrote:
For reasons I still don't understand, the various linux distros no
longer
ship .a as part of the library package.
They ship them separately. On Ubuntu, usually a -dev package. I even recall -devel-static packages (-devel was headers only and such) ~20 years back.
The reason to ship them separately is simple: not everybody has the space/bandwidth to spare. These habits are decades old. Some newer distros moved to ship everything in one package, though.
One odd thing about libuuid: The Ubuntu package is called uuid-dev (not libuuid-dev). That's something I don't understand ;)
Nico
Solved it - apparently I had to install python3-distutils after chewing through the error log above. It's kinda weird that it was also complaining about other things in the meantime - but...
thanks for the suggestion about moving the xgcc folder though, that really got me unstuck here.
Cheers, Rafael
Am So., 8. Jan. 2023 um 12:47 Uhr schrieb Rafael Send < flyingfishfinger@gmail.com>:
Hi, The weird part is that if I build from the root directory, it DOES say uuid-dev is found yet the build still fails. Might that be for the aforementioned reason* " Many tests will indicate that a library is present if they find the .so. But the .so is useless if you need static linking."* ?
I've attached logs of that, in case the solution is different for any reason.
My goal is to build the older fork I mentioned, not the current master. I just tried that again, the Tianocore setup / selection has changed and that DOES work (it's now called edk2 instead of Tianocore right?).
Thanks, Rafael
Am So., 8. Jan. 2023 um 11:31 Uhr schrieb Martin Roth < gaumless@tutanota.com>:
If it would help, we could supply a VM with each release that had the coreboot toolchain pre-built. It's also possible to use the released docker images to rebuild coreboot - those already contain the toolchain.
The advantages to both of these is that you'd be building in the environment that was originally used at the time the code was developed - that works around a significant number of problems that you could be running int. If you're interested in either of those options, let me know and I'll supply images and instructions to get you up and running.
Martin
Jan 8, 2023, 12:16 by rminnich@gmail.com:
But in some cases static libs are no longer provided at all. Would be
nice to know if that's the case for libuuid.
On Sun, Jan 8, 2023, 9:24 AM Nico Huber <> nico.h@gmx.de> > wrote:
On 08.01.23 17:42, ron minnich wrote:
For reasons I still don't understand, the various linux distros no
longer
ship .a as part of the library package.
They ship them separately. On Ubuntu, usually a -dev package. I even recall -devel-static packages (-devel was headers only and such) ~20 years back.
The reason to ship them separately is simple: not everybody has the space/bandwidth to spare. These habits are decades old. Some newer distros moved to ship everything in one package, though.
One odd thing about libuuid: The Ubuntu package is called uuid-dev (not libuuid-dev). That's something I don't understand ;)
Nico
What does it to to see if library is present? Strace may help.
On Sun, Jan 8, 2023, 12:48 PM Rafael Send flyingfishfinger@gmail.com wrote:
Hi, The weird part is that if I build from the root directory, it DOES say uuid-dev is found yet the build still fails. Might that be for the aforementioned reason* " Many tests will indicate that a library is present if they find the .so. But the .so is useless if you need static linking."* ?
I've attached logs of that, in case the solution is different for any reason.
My goal is to build the older fork I mentioned, not the current master. I just tried that again, the Tianocore setup / selection has changed and that DOES work (it's now called edk2 instead of Tianocore right?).
Thanks, Rafael
Am So., 8. Jan. 2023 um 11:31 Uhr schrieb Martin Roth < gaumless@tutanota.com>:
If it would help, we could supply a VM with each release that had the coreboot toolchain pre-built. It's also possible to use the released docker images to rebuild coreboot - those already contain the toolchain.
The advantages to both of these is that you'd be building in the environment that was originally used at the time the code was developed - that works around a significant number of problems that you could be running int. If you're interested in either of those options, let me know and I'll supply images and instructions to get you up and running.
Martin
Jan 8, 2023, 12:16 by rminnich@gmail.com:
But in some cases static libs are no longer provided at all. Would be
nice to know if that's the case for libuuid.
On Sun, Jan 8, 2023, 9:24 AM Nico Huber <> nico.h@gmx.de> > wrote:
On 08.01.23 17:42, ron minnich wrote:
For reasons I still don't understand, the various linux distros no
longer
ship .a as part of the library package.
They ship them separately. On Ubuntu, usually a -dev package. I even recall -devel-static packages (-devel was headers only and such) ~20 years back.
The reason to ship them separately is simple: not everybody has the space/bandwidth to spare. These habits are decades old. Some newer distros moved to ship everything in one package, though.
One odd thing about libuuid: The Ubuntu package is called uuid-dev (not libuuid-dev). That's something I don't understand ;)
Nico
Dear Ron,
Am 08.01.23 um 20:16 schrieb ron minnich:
But in some cases static libs are no longer provided at all. Would be nice to know if that's the case for libuuid.
The static library is part of `uuid-dev` [1]:
/usr/include/uuid/uuid.h /usr/lib/x86_64-linux-gnu/libuuid.a /usr/lib/x86_64-linux-gnu/libuuid.so /usr/lib/x86_64-linux-gnu/pkgconfig/uuid.pc […]
Kind regards,
Paul
[1]: https://packages.ubuntu.com/kinetic/amd64/uuid-dev/filelist
thanks Paul, I had not realized I'd not yet loaded uuid-dev on the new machine.
That said, I have seen, more recently, some libraries that don't come with a .a any more. But, clearly, that test for libuuid was broken it seems.
On Mon, Jan 9, 2023 at 1:23 AM Paul Menzel pmenzel@molgen.mpg.de wrote:
Dear Ron,
Am 08.01.23 um 20:16 schrieb ron minnich:
But in some cases static libs are no longer provided at all. Would be
nice
to know if that's the case for libuuid.
The static library is part of `uuid-dev` [1]:
/usr/include/uuid/uuid.h /usr/lib/x86_64-linux-gnu/libuuid.a /usr/lib/x86_64-linux-gnu/libuuid.so /usr/lib/x86_64-linux-gnu/pkgconfig/uuid.pc […]
Kind regards,
Paul