Since the reorganization of the variables in package/Makefile.in,
TARGET_CC and TARGET_CXX now directly contain the --sysroot= option in
addition to the compiler path. This is due to some ./configure scripts
using just $(TARGET_CC) for some tests instead of $(TARGET_CC)
$(TARGET_CFLAGS).
However, in the case of CMake, this fails as CMake really only wants
the path of the compiler in its CMAKE_C_COMPILER and
CMAKE_CXX_COMPILER variables. So here, we recompute proper values for
CMake by removing the --sysroot option from the compiler variables and
re-adding it to the flags variables.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When libeXosip fails to use pkg-config to find libosip, it defaults to
thinking that libosip is installed in $(prefix)/lib and
$(prefix)/include, which is of course wrong. There was an attempt to
fix this by passing OSIP_CFLAGS and OSIP_LIBS variables to libeXosip
./configure script, but it still does not work:
checking pkg-config is at least version 0.9.0... ./configure: line 21035: /home/test/outputs/test-41/host/usr/bin/pkg-config: No such file or directory
no
checking for OSIP... configure: WARNING: assuming osip can be found in -I${prefix}/include and -L${exec_prefix}/lib
Therefore, the correct fix is to depend on host-pkg-config.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This error should never show up if all Buildroot dependencies are
correct. However, rather than failing horribly later on, catch this
particular case early on and error out.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
All "select BR2_PACKAGE_LIBICONV" must use the "if !BR2_ENABLE_LOCALE"
condition, otherwise we can end up with a toolchain suppoting locales
*and* the libiconv package being compiled, which confuses other
packages. Example with glib:
gconvert.c:52:2: error: #error GNU libiconv in use but included
iconv.h not from libiconv
In addition to that, in xerces.mk, we add the dependency on libiconv
when it is available, to make sure it gets compiled before xerces.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The cross-gdb is supposed to be part of the external toolchain, so
Buildroot does not need to build it. Moreover, GDB_HOST build
currently fail with:
ln -snf ../../bin/arm-unknown-linux-gnueabi-gdb \
/home/test/outputs/test-48/staging/usr/arm-unknown-linux-gnueabi/bin/gdb
ln: creating symbolic link `/home/test/outputs/test-48/staging/usr/arm-unknown-linux-gnueabi/bin/gdb': No such file or directory
And even worse: they overwrite the cross-gdb of the external
toolchain!
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The current computation of REAL_GNU_TARGET_NAME is incorrect for
non-ARM glibc platforms because it generates something such as
mipsel-unknown-linux- as the REAL_GNU_TARGET_NAME.
So we correct this by :
* Adding "gnu" in the suffix when glibc is used, so that in the
previous case we will have mipsel-unknown-linux-gnu
* Improving the ARM_EABI code to correctly append "eabi" when glibc
is selected, so that we have arm-unknown-linux-gnueabi, and to
append "gnueabi" when uclibc is selected, so that we have
arm-unknown-linux-uclibcgnueabi. The little trick here is that LIBC
and ABI aren't completely orthogonal on ARM.
This fixes problems such as :
checking host system type... Invalid configuration
`mipsel-unknown-linux-': machine `mipsel-unknown-linux' not recognized
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
oprofile depends on binutils_target, but binutils_target fails to
build with external toolchains because the binutils version has not
been choosen. As the fix is not trivial, let's just disable oprofile
in external toolchain builds for the moment.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Now that two packages (tremor and libsvgtiny) are being downloaded
from svn, svn becomes a mandatory tool to run Buildroot.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The netsnmp package should depend on openssl when using it.
Otherwise netsnmp might get built before openssl and poison the
configure cache since it's not a mandatory dependency.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Supporting multilib is much more than just passing --enable-multilib
to gcc. You have to actually build the C library several times (once
for each multilib variant you want to support in your toolchain), and
to pass MULTILIB_OPTIONS/MULTILIB_EXCEPTIONS values to gcc to let it
know the set of multilib variants you're interested in.
Since we'll probably never support multilib toolchains in Buildroot,
just get rid of this BR2_ENABLE_MULTILIB option.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This is a very advanced option, and it seems, according to
http://choices.cs.uiuc.edu/exceptions.pdf that SJLJ exceptions aren't
really interesting.
Users really interested by this can always use the
BR2_EXTRA_GCC_CONFIG_OPTIONS is they want.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Handle the internal toolchain backend mechanism the
same way we handle other backends.
Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Including a bunch of Makefiles with wildcard makes it impossible to add
new toolchain backends. Avoid that by namely including needed files.
The external toolchain still needs to include all the toolchain/*/*.mk
sub-makefiles, as they are needed to build a toolchain that runs on the
target. It is to be noted that the cross-toolchain is not built in this
case, as the make-targets to build the cross-toolchain are not present
in the $(BASE_TARGETS) variable, which is later used to create the
dependency rules.
Also, the comment 'Explicit ordering' has been removed, as it is mis-
leading. It is make's responsibility to create the proper ordering based
on the dependency rules it finds in the Makefiles
Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Rename the external toolchain directory.
When new backends are here, it will be easier to sort them out
if they are all prefixed the same way.
Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The helper functions used for external toolchains may also be useful
to alternate toolchain backends (currently, the external toolchain is
the sole user).
Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
libgtk2 on DirectFB is deprecated because it is no longer supported in
recent versions of Gtk. We will remove support for Gtk over DirectFB
in the next Buildroot version unless support for DirectFB in mainline
Gtk is improved in the mean time.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Those architectures don't exist anymore (Alpha, IA64) or aren't widely
used for embedded systems running Linux. Moreover, no clear Buildroot
maintainer has stepped in to maintain these architectures, so it's
better to not pretend that we support them.
The goal is to mark them as deprecated in 2010.08 and remove them in
2010.11.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This option is already part of the gcc configure options through the
BR2_CONFIGURE_BUILD_TOOLS variable (in toolchain/Makefile.in).
Additionnally, the value that was passed in the AVR32 specific case
was incorrect: it was $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin
instead of $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The variable BR2_SYSROOT_STAGING_DESTDIR is no longer used, since now
the prefix for gcc is already set to the correct location.
The variable BR2_SYSROOT_TARGET_DESTDIR was already unused.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The cross binutils and cross gcc are actually going to be executed
from $(STAGING_DIR)/usr, so the correct prefix is $(STAGING_DIR)/usr
and not /usr.
This also fixes what is known as the "AVR32 toolchain build failure",
which was due to the fact that the prefix directory wasn't writable
(since it was /usr).
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit solves bug #1051. The problem in this bug in that WebKit
compiles a sample C program, which uses WebKit. As WebKit is written
in C++, even though the program it built with CROSS-gcc, it must be
linked with libstdc++. However, CROSS-gcc can't find the libstdc++ has
it's hidden inside <sysroot>/<tuple>/lib.
Therefore, this commit creates a symbolic link <sysroot>/<tuple>/lib
-> <sysroot>/lib before running the CROSS-gcc installation. While this
may look like a hack, this is the solution used by both Crosstool-NG
and OpenWRT.
Moreover, with this symbolic link in place, I think bug #1741 may also
be solved. The problem in this bug is that the linker tries to link
against /lib/libc.so.0. This is due to the fact that the linker finds
a libc.so script file in the original toolchain location and not
inside the copy of the toolchain sysroot in $(STAGING_DIR). As the
script file is found outside of the current toolchain sysroot, ld
considers the script has non-sysrooted, and therefore doesn't prefix
all paths found in the script file (such as /lib/libc.so.0) with the
sysroot path, leading to the failure.
So, in details, this commit :
* Adds a BR2_ARCH_IS_64 invisible config knob that is used to know if
the arch is a 64 bits architecture or not.
* Creates the <sysroot>/<tuple>/lib -> <sysroot>/lib symbolic link,
and the <sysroot>/<tuple>/lib64 -> <sysroot>/lib64 symbolic link if
needed.
* Fixes the external toolchain sysroot detection code so that the
'sed' replacement is done *after* the readlink -f evaluation.
I have tested this by building ARM, x86 and x86_64 toolchains with
Buildroot, and then use these toolchains as external toolchains to
build a full X.org/Gtk/WebKit/Midori stack. I have also done a
complete ARM Buildroot internal toolchain build with the same full
X.org/Gtk/WebKit/Midori stack.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
uClibc does not define pthread_getattr_np(), so we need to workaround
this using a patch.
Fixes bug #1405.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
xkeyboard-config is required to install keymap files to the target,
without which the X server does not start.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
All fonts are installed in /usr/share/fonts/X11 and not in
/usr/lib/X11/fonts/ where the X server looks by default.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
In order to get xkeyboard-config to build, it needs xkbcomp to be
built on the host, i.e host-xapp_xkbcomp. In turn, xapp_xkbcomp needs
xlib_libX11 and xlib_libxkbfile, which in turn need a few libraries.
This commit adds all the relevant dependencies to build everything
that is needed to get xkeyboard-config to build correctly.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit bumps Cairo to 1.8.10 and updates the DirectFB support
patch. The work has been done by Lionel Landwerlin
<llandwerlin@gmail.com>.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Now that TARGET_CXX contains a --sysroot= option and therefore spaces,
it needs to be used with quotes.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This package include a patch for directfb support. This patch has been
proposed for upstream integration
(https://bugzilla.gnome.org/show_bug.cgi?id=614199).
Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>