Eventhough it should be theoretically possible to build protobuf in
static-only, configure.ac includes an m4 macro, ACX_PTHREAD defined in
m4/acx_pthread.m4, which forcibly checks for threads *with* shared libs,
and is completely broken for static-only (as it forces -shared whatever
the user selection), ending up with these configure results:
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking whether to check for GCC pthread/shared inconsistencies... yes
checking whether -pthread is sufficient with -shared... no
checking whether -lpthread fixes that... no
checking whether -lc_r fixes that... no
configure: WARNING: Impossible to determine how to use pthreads with shared libraries
checking whether what we have so far is sufficient with -nostdlib... no
checking whether -lpthread saves the day... no
configure: WARNING: Impossible to determine how to use pthreads with shared libraries and -nostdlib
Fixing this macro is far from trivial; protobuf in a static-only
scenario is probably not too common. So, just disable protobuf for
static-only builds.
Fixes:
http://autobuild.buildroot.org/results/3ef/3efb86c7e8ec2db5d953d634470cafae79bd34cf/http://autobuild.buildroot.org/results/96a/96ae1108fc3193df2a93a779057130b774379655/http://autobuild.buildroot.org/results/00c/00c29795980319d38823eec1301e9ebd860ebd2a/
...
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Nimai Mahajan <nimaim@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Currently, protobuf-c's dependency on threads is labelled as being
inherited from protobuf.
This is wrong, as protobuf-c does not depend on protobuf, and such
dependency was removed in e16865a (protobuf-c: Don't require protobuf on
target), but forgot to remove the corresponding comment.
Remove it now.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This patch fixes this autobuild failure:
http://autobuild.buildroot.net/results/e14/e14e1700d4fe359c56be57587bdb509e002e5753/build-end.log
The problem is caused by the -fvisibility-inlines-hidden switch.
Removing the switch is probably the least intrusive way we can make the
problem go away. The first solution that was considered was to move the
definition of the offending method to the .cpp file. However, with
other combinations of compilers and platforms, I suppose it could happen
with other methods as well. Removing the switch ensures we catch them
all.
Built-tested with the config from the build bot, as well as with all OLA
options/plugins enabled.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
autoconf can't detect if AI_IDN is really supported
(907916e808/),
so a --disable-gai-idn flag was added to explicitly disable the usage
of IDN.
Before this patch, msmtp failed to send mail with the following
output:
msmtp: cannot locate host smtp.mandrillapp.com: Bad value for ai_flags
[Thomas: tweak commit log.]
Signed-off-by: Anthony Viallard <viallard@syscom-instruments.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Currently, when a preconfigured prebuilt toolchain forgets to specify
its gcc version, the error message is a bit misleading, like:
Incorrect selection of gcc version: expected .x, got 4.9.2
Add a an explicit check for the gcc version being set, that reports a
better error message.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
C++ support unconditionally needs shared libraries; it uses
dlopen/dlsym.
Also, fix the conditions under which the comment is shown.
Finally, explicitly require C++ support when configuring.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Test the configuration of the kernel to see if loadable module support
is enabled, and error out otherwise. This makes build failures of
external kernel modules less confusing.
[Thomas: tweak the commit log.]
Signed-off-by: Noé Rubinstein <nrubinstein@aldebaran.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The common filesystem infrastructure already supports a
<fs>_PRE_GEN_HOOKS variable, which allows filesystem makefiles to
register some actions to be done before the root filesystem image is
generated.
This commit adds a similiar <fs>_POST_GEN_HOOKS variable, which will
allow filesystem makefiles to do some actions after the filesystem
image has been generated. It will initially be used by the iso9660
filesystem to delete the temporary directory it creates.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Noé Rubinstein <nrubinstein@aldebaran.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
gcc will always report a three-digit version sting, like 4.9.3 or 5.1.0.
For gcc before 5, we want to check the first two digits, while starting
with gcc 5, we are only concerned about the first digit.
So, change our matching code to test for the leading part of the version
string, up to the first dot after as-many version digit we're interested
in.
Note: we're adding the dot in the .mk code rather than in the Kconfig
symbol, because it seemed cleaner to do so.
Reported-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The project seems not maintained anymore since there
is no commit since 2011:
https://github.com/wlach/wvstreams
After fixing the first build issue by adding a missing limit.h header...
xplc/modulemgr.cc:90:14: error: ‘PATH_MAX’ was not declared in this scope
char fname[PATH_MAX];
and fixing a basename() conflict between the gnu and posix version,
the build fail due to missing __libc_stack_end.
wvtask.cc:(.test+0xb08): undefined reference to `__libc_stack_end'
There is a configure test for __libc_stack_end support but it
doesn't work properly with a musl toolchain.
Since we already have several fixes for uClibc, let's mark wvstreams
as not available for musl toolchains, until someone interested
enough fixes it.
[Thomas: replace uClibc-ng by just uClibc in the Config.in comments.]
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
As Thomas puts it:
The comment can only be visible when a toolchain that is *not*
uclibc and *not* glibc is used. I.e, the comment is now only visible
when musl is used. Which is not what we want.
Indeed, I completely borked the conditions. When a glibc or uClibc
toolchain is selected, the comment is entirely hidden, and we don;t get
the extra requirements (wchar, !static).
Fix that with the solution proposed by Thomas.
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
According to Nicolas Cavallari and confirmed by testing, std::strtoll
is indeed available in gcc 4.6, so the dawgdic package can be enabled
on gcc >= 4.6 instead of gcc >= 4.7.
Reported-by: Nicolas Cavallari <Nicolas.Cavallari@green-communications.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When gcc 4.9.x was bumped from 4.9.2 to 4.9.3 in commit
2fed00ea1e, patch
920-libgcc-remove-unistd-header.patch was removed with the argument
that it had been applied upstream.
However, it is not the case, and the patch continues to apply fine on
gcc 4.9.3, and is actually needed to make gcc build properly on
NIOS-II.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
As found via autobuilders and discussed on the list, the
ifdef is wrong, as empty uses SysV semaphores and not POSIX
semaphores.
Tested with glibc/uclibc-ng builds. And with uclibc-ng without
threads.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>