qemu: allow to build statically
PATCH 1/1 qemu: allow to build statically
Compiling Qemu statically allows to use it to chroot into target/. It is a nice feature, so add an option for it.
--- package/qemu/Config.in.host | 26 ++++++++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 30 insertions(+)
package/qemu/Config.in.host +26 -0
@@ -17,6 +17,32 @@ config BR2_PACKAGE_HOST_QEMU if BR2_PACKAGE_HOST_QEMU +config BR2_PACKAGE_HOST_QEMU_STATIC + bool "Build statically" + help + Build static qemu executable(s). Use this option if you want to + 'chroot' in your target directory. An example to do this for an ARM + target: + + 1. copy qemu binary on your target directory: + + cp host/usr/bin/qemu-arm target/usr/bin + + 2. Make sure binfmt_misc is mounted on /proc/sys/fs/binfmt_misc: + + mount -t binfmt_misc none /proc/sys/fs/binfmt_misc + + 3. Register /usr/bin/qemu-arm is interpreter for arm binaries. See + linux/Documentation/binfmt_misc.txt for more information: + + MAGIC='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00' + MASK='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' + echo ":qemu-arm:M:0:$MAGIC:$MASK:/usr/bin/qemu-arm:OC" > /proc/sys/fs/binfmt_misc/register + + 4. Chroot to your target: + + chroot target /bin/sh + comment "Emulators selection" config BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE
package/qemu/qemu.mk +4 -0
@@ -110,6 +110,10 @@ HOST_QEMU_OPTS += --enable-vde HOST_QEMU_DEPENDENCIES += host-vde2 endif +ifeq ($(BR2_PACKAGE_HOST_QEMU_STATIC),y) +HOST_QEMU_OPTS += --static +endif + # Override CPP, as it expects to be able to call it like it'd # call the compiler. define HOST_QEMU_CONFIGURE_CMDS
Signature · 1 line
2.9.3
Thomas Petazzoni
AppliedPATCH 1/1 qemu: allow to build statically
Hello,
Quoted 8 lines · J?r?me Pouiller
Compiling Qemu statically allows to use it to chroot into target/. It is a nice feature, so add an option for it.
Signed-off-by J?r?me Pouiller <[email protected]>--- package/qemu/Config.in.host | 26 ++++++++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 30 insertions(+)
Applied to master after tweaking a bit the Config.in help text. Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 qemu: allow to build statically
In reply to Jérôme PouillerHello,
Quoted 8 lines · J?r?me Pouiller
Compiling Qemu statically allows to use it to chroot into target/. It is a nice feature, so add an option for it.
Signed-off-by J?r?me Pouiller <[email protected]>--- package/qemu/Config.in.host | 26 ++++++++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 30 insertions(+)
Now that this patch is committed, we are seeing some build failures on host-qemu when linked statically:
http://autobuild.buildroot.net/results/6bc/6bcfabc020fede51adcfafc9a570df5884d95696/build-end.log
http://autobuild.buildroot.net/results/4d0/4d0182da77cf386e57acf0565a18fc4628abbdc8/build-end.log
Could you have a look?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 qemu: allow to build statically
J?r?me, All,
On 2017-04-02 14:37 +0200, Thomas Petazzoni spake thusly:
Quoted 10 lines · J?r?me Pouiller
Quoted 8 lines
Compiling Qemu statically allows to use it to chroot into target/. It is a nice feature, so add an option for it.
Signed-off-by J?r?me Pouiller <[email protected]>--- package/qemu/Config.in.host | 26 ++++++++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 30 insertions(+)
Quoted 7 lines
Now that this patch is committed, we are seeing some build failures on host-qemu when linked statically:
http://autobuild.buildroot.net/results/6bc/6bcfabc020fede51adcfafc9a570df5884d95696/build-end.log
http://autobuild.buildroot.net/results/4d0/4d0182da77cf386e57acf0565a18fc4628abbdc8/build-end.logCould you have a look?
Feel free to grab patches from my okd series (which I lost intetrest in sometime ago):
https://git.buildroot.org/~ymorin/git/buildroot/log/?h=yem/target-qemu
At the time, I had full and complete static-link support with a lot of additional dependencies...
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 qemu: allow to build statically
Hello,
Quoted 7 lines · Yann E. MORIN
Feel free to grab patches from my okd series (which I lost intetrest in sometime ago):
https://git.buildroot.org/~ymorin/git/buildroot/log/?h=yem/target-qemu
At the time, I had full and complete static-link support with a lot of additional dependencies...
Thanks for pointing out those patches. However, to be honest, I myself have no interest in having host qemu built statically, so if J?r?me doesn't send patches to fix the breakage, I'll simply revert his patch.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 qemu: allow to build statically
Thomas, All,
On 2017-04-02 23:42 +0200, Thomas Petazzoni spake thusly:
Quoted 7 lines
Hello,
Quoted 3 lines · Yann E. MORIN
Feel free to grab patches from my okd series (which I lost intetrest in sometime ago):
Quoted 8 lines
Quoted 4 lines
https://git.buildroot.org/~ymorin/git/buildroot/log/?h=yem/target-qemu
At the time, I had full and complete static-link support with a lot of additional dependencies...
Thanks for pointing out those patches. However, to be honest, I myself have no interest in having host qemu built statically, so if J?r?me doesn't send patches to fix the breakage, I'll simply revert his patch.
Yes, my message was mostly aimed at J?r?me. ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 qemu: allow to build statically
In reply to Thomas PetazzoniHello,
Quoted 10 lines · Thomas Petazzoni
Quoted 8 lines · J?r?me Pouiller
Compiling Qemu statically allows to use it to chroot into target/. It is a nice feature, so add an option for it.
Signed-off-by J?r?me Pouiller <[email protected]>--- package/qemu/Config.in.host | 26 ++++++++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 30 insertions(+)
Quoted 7 lines
Now that this patch is committed, we are seeing some build failures on host-qemu when linked statically:
http://autobuild.buildroot.net/results/6bc/6bcfabc020fede51adcfafc9a570df5884d95696/build-end.log
http://autobuild.buildroot.net/results/4d0/4d0182da77cf386e57acf0565a18fc4628abbdc8/build-end.logCould you have a look?
FWIW, I've reverted this patch. It's a feature that already wasn't seen as very essential, and it's causing some build failures.
I don't think it's really easy to provide a functionality that allows to build a host executable as a static binary, because most host systems use glibc, and glibc doesn't officially support static linking.
Feel free to investigate those build failures (see the commit log for the three different build failures) and send an updated version that makes sure those build failures are fixed.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com