The QEMU configure script incorrectly assumes SSP is supported by the
toolchain in some cases where the compiler accepts -fstack-protector*
flags but the C library does not provide the necessary __stack_chk_*()
functions.
Even though a full compile and link test is performed by the script,
this is done with a code fragment which does not actually meet any of
the conditions required to cause the compiler to emit canary code when
the -fstack-protector-strong variant is used. As no compile or link
failure occurs in this case, a false positive is generated and a
subsequent error is seen when the probe for pthreads is performed.
The fix consists in patching the configure script to use a more
appropriate test program for the SSP support checks.
Fixes:
http://autobuild.buildroot.net/results/efb/efbb4e940543894b8745bb405478a096c90a5ae2/http://autobuild.buildroot.net/results/32d/32d6d984febad2dee1f0d31c5fa0aea823297096/http://autobuild.buildroot.net/results/aa6/aa6e71c957fb6f07e7bded35a8e47be4dadd042c/
...and many others.
Signed-off-by: Rodrigo Rebello <rprebello@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Reviewed-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Enable the target qemu for aarch64 since it works just fine.
Only tested using userland CPU emulation (no HYP) with a
qemu_aarch64_virt_defconfig image inside a qemu_aarch64_virt_defconfig
instance.
Signed-off-by: Gustavo Zacarias <gustavo.zacarias@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This patch fixes an error during source-check.
Thanks to Thomas for the hint:
http://article.gmane.org/gmane.comp.lib.uclibc.buildroot/116183
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Qemu doesn't understand sh4a and sh4aeb as separate architectures, it
only knows about sh4 and sh4eb. However, it does support sh4a, since
it emulates the SH7785 CPU which is a SH4A.
Therefore, with this commit, sh4a/sh4aeb are translated as sh4/sh4eb
for Qemu.
Fixes:
http://autobuild.buildroot.org/results/8f9/8f99a776f35d4ab0841d9fd2db509850ef603bd4/
and many previous similar build failures
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Allow QEMU to be installed on MIPS targets. Also introduce a new
symbol (BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET) to hold the
architectures than can build and use QEMU on the target.
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Now that IPv6 is mandatory remove package dependencies and conditionals
for it.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
commit f7add51c39 (qemu: add host/target Linux version check) added a
version check between the host kernel version and the version of kernel
headers used by the toolchain, but the logic would fail unless BOTH major
and minor versions were >=, which isn't true for E.G. host kernel = 3.2 and
toolchain 2.6.x.
Instead calculate a single version number (as major << 8 + minor) and
compare that.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The host-qemu package currently builds the user mode emulation, which
isn't available on all architectures, so this commit adds the
necessary architecture dependencies to the Config.in.host file.
Fixes:
http://autobuild.buildroot.net/results/4298ce40cbe3db50ffe53ecf6856523157df591d/
Reported-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Raise an error if the host is using an older kernel than the target.
Since qemu-user passes emulated system calls to the host kernel,
this prevents usage of qemu-user in situations where those system
calls will fail.
This is based on an original patch from Frank Hunleth
<fhunleth@troodon-software.com>, but completely rewritten in a
different way:
* Instead of using shell based testing, we use pure make tests, which
allows to detect the problem not when host-qemu starts to build,
but at the very beginning of the entire Buildroot build.
* Instead of looking at $(STAGING_DIR)/usr/include/linux/version.h
(which requires having a dependency on the 'toolchain' package,
which is a bit unusual for a host package), we use the
BR2_TOOLCHAIN_HEADERS_AT_LEAST Config.in option which tells us the
version of the kernel headers used in the toolchain.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Frank Hunleth <fhunleth@troodon-software.com>
This allows qemu-user to be selected by the user. One use case
for this is to call qemu-user from post build scripts to
run regression tests against the build.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
at configure time, PREFIX is already set with $(HOST_DIR)/usr
so, don't use DESTDIR
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The logic was wrong.
Even though it was working for previous versions of QEMU, it changed in
later versions, and thus now breaks on the version we currently package.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Fixes http://autobuild.buildroot.net/results/f53/f53d4d47a6b65c40c1b122dfad61d9164e533bf0/
Actually only the linux-user code needs it, but with the _CUSTOM_TARGETS
option it is difficult to ensure it only for userland emulation, so just add
it to the main qemu option.
At the same time add the missing wchar/mmu dependencies to the comment.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
[Peter: use BR2_PACKAGE_QEMU_HAS_EMULS, only add SDL_CONFIG once]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Untested for other architectures, so only enabled for known-working ones.
We explicitly disable all features that depends on other packages,
for now. Such features will be added one by one in the next patches.
Features that do not rely on external packages are explicitly enabled
to catch the dependencies on toolchain features early.
[Peter: propagate dependencies from libglib2]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Although QEMU has a ./configure script, it is not an autotools-package,
so switch to providing build and install commands, and to using
generic-package.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The Buildroot coding style defines one space around make assignments and
does not align the assignment symbols.
This patch does a bulk fix of offending packages. The package
infrastructures (or more in general assignments to calculated variable
names, like $(2)_FOO) are not touched.
Alignment of line continuation characters (\) is kept as-is.
The sed command used to do this replacement is:
find * -name "*.mk" | xargs sed -i \
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#'
Brief explanation of this command:
^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line
\([?:+]\?=\) any assignment character =, :=, ?=, +=
\([^\\]\+\) any string not containing a line continuation
\([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a
line continuation character
\(\s*\\\) optional whitespace, followed by a line
continuation character
Hence, the first subexpression handles empty assignments, the second
handles regular assignments, the third handles regular assignments with
line continuation, and the fourth empty assignments with line
continuation.
This expression was tested on following test text: (initial tab not
included)
FOO = spaces before
FOO = spaces before and after
FOO = tab before
FOO = tab and spaces before
FOO = tab after
FOO = tab and spaces after
FOO = spaces and tab after
FOO = \
FOO = bar \
FOO = bar space \
FOO = \
GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse
FOO += spaces before
FOO ?= spaces before and after
FOO :=
FOO =
FOO =
FOO =
FOO =
$(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C
AT91BOOTSTRAP3_DEFCONFIG = \
AXEL_DISABLE_I18N=--i18n=0
After this bulk change, following manual fixups were done:
- fix line continuation alignment in cegui06 and spice (the sed
expression leaves the number of whitespace between the value and line
continuation character intact, but the whitespace before that could have
changed, causing misalignment.
- qt5base was reverted, as this package uses extensive alignment which
actually makes the code more readable.
Finally, the end result was manually reviewed.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Cc: Yann E. Morin <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This patch removes the sh2, sh3 and sh3eb support, because the user
base is inexistent, and the Linux support for these architectures is
poor. The sh2a support is preserved, because at least one user
expressed interest in this architecture, and is actually using it:
http://lists.busybox.net/pipermail/buildroot/2013-April/070399.html
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Turns out that, with a little bit of tweaking, we can use
the autotools-package infrastructure to build QEMU.
That's better than defining all the _CMDS and using the
generic-package infra.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
There are a bunch of important fixes since 1.2.1.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Bump QEMU to 1.2.1.
Note: 1.3.0 is out now, but ./configure has changed a bit, and there are
new dependencies, so the bump to 1.3.0 is postponed for a litle while...
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
'host-*' packages should depends on other 'host-*' packages,
not on target packages.
Reported-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
With the upcoming introduction of qemu-on-target, we need to properly
separate the variables used for the host qemu, from the variables
used for the target qemu.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
QEMU is such a snakes-nest of licenses... :-/
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Build error message is:
glib-2.12 required to compile QEMU
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Build error message is:
Error: zlib check failed
Make sure to have the zlib libs and headers installed.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Fixes
http://autobuild.buildroot.org/results/ccb7d6da503a81015275ff1e4ba9a564203932ec/build-end.log
Even though the build failure happens on host-qemu, adding
host-pkgconf to QEMU_DEPENDENCIES seems like the right thing to do
since that this dependency will also be needed for the target qemu
once it gets included.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>