package/protobuf: uses fork(), not available on no-MMU platforms
PATCH 1/1 package/protobuf: uses fork(), not available on no-MMU platforms
Propagate the dependency to the packages mosh and ola.
Fixes:
http://autobuild.buildroot.net/results/2c1/2c151e84d7854a810465dc16869023e0ada2d586/
--- package/mosh/Config.in | 1 + package/ola/Config.in | 1 + package/protobuf/Config.in | 1 + 3 files changed, 3 insertions(+)
package/mosh/Config.in +1 -0
@@ -8,6 +8,7 @@ config BR2_PACKAGE_MOSH depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP # protobuf depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf + depends on BR2_USE_MMU # protobuf depends on !BR2_STATIC_LIBS # protobuf depends on BR2_USE_WCHAR select BR2_PACKAGE_PROTOBUF
package/ola/Config.in +1 -0
@@ -9,6 +9,7 @@ menuconfig BR2_PACKAGE_OLA select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_UTIL_LINUX depends on BR2_INSTALL_LIBSTDCPP # protobuf + depends on BR2_USE_MMU # protobuf depends on !BR2_STATIC_LIBS # protobuf depends on BR2_USE_WCHAR # util-linux depends on BR2_TOOLCHAIN_HAS_THREADS
package/protobuf/Config.in +1 -0
@@ -33,6 +33,7 @@ config BR2_PACKAGE_PROTOBUF depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS + depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS help Protocol buffers are Google's language-neutral, platform-neutral,
Signature · 1 line
2.9.3
PATCH 1/1 package/protobuf: uses fork(), not available on no-MMU platforms
Hello,
Quoted 6 lines · J?rg Krause
Propagate the dependency to the packages mosh and ola.
Fixes:
http://autobuild.buildroot.net/results/2c1/2c151e84d7854a810465dc16869023e0ada2d586/Signed-off-by J?rg Krause <[email protected]>
At first, I was a bit surprised as to why we're seeing this only now, so I investigated a bit, and came to the following conclusion, which I added to the commit log:
"""
This was not noticed until now because:
1/ The older Blackfin toolchain doesn't have libatomic, so it didn't
provide the atomic operations that protobuf needs, so protobuf was never built.
2/ The ARM Cortex-M toolchain is static-only, and protobuf requires
dynamic library support.
So it's only with the new Blackfin toolchain, which is based on gcc 6.x (and therefore provides libatomic) and is FDPIC-based (and therefore has dynamic library support) that this problem appeared.
"""
package/protobuf/Config.in config BR2_PACKAGE_PROTOBUF · line 39
Quoted 12 lines
package/protobuf/Config.in +1
-0@@ -33,6 +33,7 @@ config BR2_PACKAGE_PROTOBUF depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS + depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS help Protocol buffers are Google's language-neutral, platform-neutral,
When you add a new dependency, you must also propagate it to the Config.in comment so that those comments don't appear on no-MMU platforms.
*However*, in this specific case, there was already a BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS, to which it makes a lot of sense to add the BR2_USE_MMU dependency: it's an architecture dependency, and by doing so, it's automatically propagated to the existing comments and reverse dependencies.
Applied with those changes. Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 package/protobuf: uses fork(), not available on no-MMU platforms
Quoted 59 lines · Thomas Petazzoni
Hello,
Quoted 8 lines · J?rg Krause
Propagate the dependency to the packages mosh and ola.
Fixes:
http://autobuild.buildroot.net/results/2c1/2c151e84d7854a810465dc16
869023e0ada2d586/Signed-off-by J?rg Krause <[email protected]>At first, I was a bit surprised as to why we're seeing this only now, so I investigated a bit, and came to the following conclusion, which I
added to the commit log:"""
????This was not noticed until now because:
????
?????1/ The older Blackfin toolchain doesn't have libatomic, so it didn't
????????provide the atomic operations that protobuf needs, so protobuf was
????????never built.
????
?????2/ The ARM Cortex-M toolchain is static-only, and protobuf requires
????????dynamic library support.
????
????So it's only with the new Blackfin toolchain, which is based on gcc
????6.x (and therefore provides libatomic) and is FDPIC-based (and therefore
????has dynamic library support) that this problem appeared."""
Quoted 11 lines
package/protobuf/Config.in +0
-0@@ -33,6 +33,7 @@ config BR2_PACKAGE_PROTOBUF? depends on
BR2_INSTALL_LIBSTDCPP
? depends onBR2_TOOLCHAIN_HAS_THREADS
? depends onBR2_PACKAGE_PROTOBUF_ARCH_SUPPORTSpackage/protobuf/Config.in +1
-0+ depends on BR2_USE_MMU # fork()Quoted 4 lines
? depends on !BR2_STATIC_LIBS
? help
? ??Protocol buffers are Google's language-neutral,
platform-neutral,When you add a new dependency, you must also propagate it to the Config.in comment so that those comments don't appear on no-MMU platforms.
Quoted 7 lines
*However*, in this specific case, there was already a
BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS, to which it makes a lot of sense to
add theBR2_USE_MMUdependency: it's an architecture dependency, and by
doing so, it's automatically propagated to the existing comments and reverse dependencies.
Many thanks for improving the commit! However, there a some packages which have an architecture dependency where the no-MMU dependency is not added to the architecture dependency, e.g. gauche. Should those packages be revised, too?
J?rg
PATCH 1/1 package/protobuf: uses fork(), not available on no-MMU platforms
Hello,
Quoted 4 lines · J?rg Krause
Many thanks for improving the commit! However, there a some packages which have an architecture dependency where the no-MMU dependency is not added to the architecture dependency, e.g. gauche. Should those packages be revised, too?
Yes, I'd say so.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com