From 3b207de011d13042b589031061bbe0d940e7b204 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 08:37:56 +0200 Subject: dependencies: add svn as a mandatory tool 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 --- toolchain/dependencies/dependencies.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index 96f843fc5..b3822ef66 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -137,13 +137,15 @@ if ! $SHELL --version 2>&1 | grep -q '^GNU bash'; then fi; # Check that a few mandatory programs are installed -for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio python ; do +for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio python svn ; do if ! which $prog > /dev/null ; then /bin/echo -e "\nYou must install '$prog' on your build machine"; if test $prog = "makeinfo" ; then /bin/echo -e "makeinfo is usually part of the texinfo package in your distribution\n" elif test $prog = "msgfmt" ; then /bin/echo -e "msgfmt is usually part of the gettext package in your distribution\n" + elif test $prog = "svn" ; then + /bin/echo -e "svn is usually part of the subversion package in your distribution\n" else /bin/echo -e "\n" fi -- cgit v1.2.3 From d58a827fe558c09c2cce01b20e9a1e1bc8534e33 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 08:45:20 +0200 Subject: oprofile: disable with external toolchain 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 --- package/oprofile/Config.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package/oprofile/Config.in b/package/oprofile/Config.in index 770b5550b..c877daee3 100644 --- a/package/oprofile/Config.in +++ b/package/oprofile/Config.in @@ -1,5 +1,9 @@ config BR2_PACKAGE_OPROFILE bool "oprofile" + # The dependency on binutils_target does not work with + # external toolchains since the binutils version was not + # choosen in the config. This will have to be fixed later. + depends on !BR2_TOOLCHAIN_EXTERNAL select BR2_PACKAGE_POPT depends on BR2_INSTALL_LIBSTDCPP help -- cgit v1.2.3 From ece1f4225ce2af0a274943753d9c2e7ced5d3262 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 09:30:40 +0200 Subject: Fix computation of REAL_GNU_TARGET_NAME 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 --- package/Makefile.in | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/package/Makefile.in b/package/Makefile.in index 36f2f2419..bb2aafa4c 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -93,11 +93,20 @@ LIBC=uclibc else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y) LIBC=uclibc else -LIBC= +LIBC=gnu endif +# The ABI suffix is a bit special on ARM, as it needs to be +# -uclibcgnueabi for uClibc EABI, -uclibc for uClibc OABI, -gnueabi +# for glibc EABI and -gnu for glibc OABI. This means that the LIBC and +# ABI aren't strictly orthogonal, which explains why we need the test +# on LIBC below. ifeq ($(BR2_ARM_EABI),y) +ifeq ($(LIBC),uclibc) ABI=gnueabi +else +ABI=eabi +endif endif REAL_GNU_TARGET_NAME=$(ARCH)-unknown-linux-$(LIBC)$(ABI) -- cgit v1.2.3 From d328fef63c7fb3b499a05e4b6cb7c32b795881ea Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 09:38:20 +0200 Subject: gdb: disallow GDB_HOST on external toolchain builds 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 --- toolchain/gdb/Config.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/toolchain/gdb/Config.in b/toolchain/gdb/Config.in index 09701c75e..edd8715f1 100644 --- a/toolchain/gdb/Config.in +++ b/toolchain/gdb/Config.in @@ -18,6 +18,9 @@ config BR2_PACKAGE_GDB_SERVER config BR2_PACKAGE_GDB_HOST bool "Build gdb for the Host" + # cross-gdb is supposed to be part of the external + # toolchain. And the build currently fails. + depends on !BR2_TOOLCHAIN_EXTERNAL help Build gdb to run on the host to debug programs run on the target. -- cgit v1.2.3 From aad29b55a8851dec26399e37f2b87c0b38c98fc3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 09:49:42 +0200 Subject: xerces: fix dependency on iconv 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 --- package/xerces/Config.in | 2 +- package/xerces/xerces.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/xerces/Config.in b/package/xerces/Config.in index 85bd96cf1..123f0c166 100644 --- a/package/xerces/Config.in +++ b/package/xerces/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_XERCES bool "xerces-c++" depends on BR2_INSTALL_LIBSTDCPP - select BR2_PACKAGE_LIBICONV + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE help Xerces-C++ is a validating XML parser written in portable C++. diff --git a/package/xerces/xerces.mk b/package/xerces/xerces.mk index 9f77be6f7..8a1f693a2 100644 --- a/package/xerces/xerces.mk +++ b/package/xerces/xerces.mk @@ -87,7 +87,7 @@ $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY): $(STAGING_DIR)/usr/lib/$(LIBXERCES_BI cp -a $(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY)* $(TARGET_DIR)/usr/lib $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY) -xerces: $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY) +xerces: $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(TARGET_DIR)/usr/lib/$(LIBXERCES_BINARY) xerces-bin: $(XERCES_DIR)/usr/lib/$(LIBXERCES_BINARY) -- cgit v1.2.3 From a302e3aaa0a7e4eec1a82143efbbd09629b499ea Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 09:50:59 +0200 Subject: libiconv: add an error when both libiconv and locale are enabled 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 --- package/libiconv/libiconv.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/package/libiconv/libiconv.mk b/package/libiconv/libiconv.mk index cc40cd4b6..a3f762ab6 100644 --- a/package/libiconv/libiconv.mk +++ b/package/libiconv/libiconv.mk @@ -23,3 +23,10 @@ ifneq ($(BR2_ENABLE_DEBUG),y) $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libcharset.so.* endif touch $@ + +# Configurations where the toolchain supports locales and the libiconv +# package is enabled are incorrect, because the toolchain already +# provides libiconv functionality, and having both confuses packages. +ifeq ($(BR2_PACKAGE_LIBICONV)$(BR2_ENABLE_LOCALE),yy) +$(error Libiconv should never be enabled when the toolchain supports locales. Report this failure to Buildroot developers) +endif -- cgit v1.2.3 From d2e5763e529e4ed387e30854f80e801273ecdbaf Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 10:03:32 +0200 Subject: libeXosip: add dependency on host-pkg-config and remove useless flags 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 --- package/libeXosip2/libeXosip2.mk | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package/libeXosip2/libeXosip2.mk b/package/libeXosip2/libeXosip2.mk index 7f282b748..30eac9f06 100644 --- a/package/libeXosip2/libeXosip2.mk +++ b/package/libeXosip2/libeXosip2.mk @@ -22,8 +22,6 @@ $(LIBEXOSIP2_DIR)/.configured: $(LIBEXOSIP2_DIR)/.unpacked (cd $(LIBEXOSIP2_DIR); rm -rf config.cache; \ $(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_ARGS) \ - OSIP_CFLAGS="$(TARGET_CFLAGS)" \ - OSIP_LIBS="-L$(STAGING_DIR)/usr/lib -losip2 -losipparser2" \ ./configure $(QUIET) \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ @@ -73,7 +71,7 @@ $(TARGET_DIR)/usr/bin/sip_reg: $(STAGING_DIR)/usr/bin/sip_reg -libeXosip2: libosip2 $(TARGET_DIR)/usr/lib/libeXosip2.so +libeXosip2: host-pkg-config libosip2 $(TARGET_DIR)/usr/lib/libeXosip2.so libeXosip2-source: $(DL_DIR)/$(LIBEXOSIP2_SOURCE) -- cgit v1.2.3 From 0eae20b7be89bc76225a15c7238ff0c809259ac3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 10:10:35 +0200 Subject: cdrkit: fix TARGET_CC/TARGET_CFLAGS for CMake 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 --- package/cdrkit/cdrkit.mk | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/package/cdrkit/cdrkit.mk b/package/cdrkit/cdrkit.mk index f7e21b033..a0ce9cb56 100644 --- a/package/cdrkit/cdrkit.mk +++ b/package/cdrkit/cdrkit.mk @@ -11,15 +11,23 @@ else CMAKE_ENDIAN_OPT=-DBITFIELDS_HTOL=0 endif +# CMake doesn't support having the --sysroot option directly in the +# compiler path, so move this option to the CFLAGS/CXXFLAGS variables. +CDRKIT_TARGET_CC = $(filter-out --sysroot=%,$(TARGET_CC)) +CDRKIT_TARGET_CXX = $(filter-out --sysroot=%,$(TARGET_CXX)) +CDRKIT_TARGET_CFLAGS = $(filter --sysroot=%,$(TARGET_CC)) $(TARGET_CFLAGS) +CDRKIT_TARGET_CXXFLAGS = $(filter --sysroot=%,$(TARGET_CXX)) $(TARGET_CXXFLAGS) + define CDRKIT_CONFIGURE_CMDS -mkdir $(@D)/build (cd $(@D)/build ; \ $(HOST_DIR)/usr/bin/cmake .. \ -Wno-dev \ -DCMAKE_SYSTEM_NAME:STRING="Linux" \ - -DCMAKE_C_COMPILER:FILEPATH="$(TARGET_CC)" \ - -DCMAKE_CXX_COMPILER:FILEPATH="$(TARGET_CXX)" \ - -DCMAKE_C_FLAGS:STRING="$(TARGET_CFLAGS)" \ + -DCMAKE_C_COMPILER:FILEPATH="$(CDRKIT_TARGET_CC)" \ + -DCMAKE_CXX_COMPILER:FILEPATH="$(CDRKIT_TARGET_CXX)" \ + -DCMAKE_C_FLAGS:STRING="$(CDRKIT_TARGET_CFLAGS)" \ + -DCMAKE_CXX_FLAGS:STRING="$(CDRKIT_TARGET_CXXFLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \ -DCMAKE_MODULE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \ -- cgit v1.2.3 From c19c6451413ed873eccf321e7f79cea1f78aa95d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 10:18:19 +0200 Subject: dmalloc: pass -fPIC when compiling This is needed to avoid: /home/test/mips-4.4/bin/mips-linux-gnu-ld --sysroot=/home/test/outputs/test-35/staging -shared --whole-archive -soname libdmallocxx.so -o libdmallocxx.so.t libdmallocxx.a /home/test/mips-4.4/bin/mips-linux-gnu-ld: libdmalloc.a(arg_check.o): relocation R_MIPS_HI16 against `_dmalloc_flags' can not be used when making a shared object; recompile with -fPIC It is fixed through a patch to Makefile.in instead of passing a CFLAGS variable to ./configure environment in order to avoid cluttering the configuration cache with incorrect values. Signed-off-by: Thomas Petazzoni --- package/dmalloc/dmalloc-5.4.3-add-fpic.patch | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 package/dmalloc/dmalloc-5.4.3-add-fpic.patch diff --git a/package/dmalloc/dmalloc-5.4.3-add-fpic.patch b/package/dmalloc/dmalloc-5.4.3-add-fpic.patch new file mode 100644 index 000000000..839d3ef0e --- /dev/null +++ b/package/dmalloc/dmalloc-5.4.3-add-fpic.patch @@ -0,0 +1,60 @@ +Without -fPIC, dmalloc does not build with: + +/home/test/mips-4.4/bin/mips-linux-gnu-ld --sysroot=/home/test/outputs/test-35/staging -shared --whole-archive -soname libdmallocxx.so -o libdmallocxx.so.t libdmallocxx.a +/home/test/mips-4.4/bin/mips-linux-gnu-ld: libdmalloc.a(arg_check.o): relocation R_MIPS_HI16 against `_dmalloc_flags' can not be used when making a shared object; recompile with -fPIC +libdmalloc.a(arg_check.o): could not read symbols: Bad value + +This patch, taken from +http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/dmalloc/files/dmalloc-5.2.4-fpic.patch?hideattic=0&view=markup, +fixes the problem by passing the -fPIC flag. It isn't passed through +the ./configure environment in order to not clutter the configuration +cache with incorrect values. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.in | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +Index: dmalloc-5.4.3/Makefile.in +=================================================================== +--- dmalloc-5.4.3.orig/Makefile.in ++++ dmalloc-5.4.3/Makefile.in +@@ -319,17 +319,17 @@ + # special _th versions of objects with the LOCK_THREADS variable defined to 1 + chunk_th.o : $(srcdir)/chunk.c + rm -f $@ +- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ ++ $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ + -c $(srcdir)/chunk.c -o ./$@ + + error_th.o : $(srcdir)/error.c + rm -f $@ +- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ ++ $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ + -c $(srcdir)/error.c -o ./$@ + + malloc_th.o : $(srcdir)/malloc.c + rm -f $@ +- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ ++ $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -DLOCK_THREADS=1 \ + -c $(srcdir)/malloc.c -o ./$@ + + tests : $(TEST) +@@ -355,7 +355,7 @@ + + .c.o : + rm -f $@ +- $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ ++ $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $< -o ./$@ + + # + # .cc.o auto-target doesn't work on some systems. +@@ -363,7 +363,7 @@ + # + dmallocc.o : $(srcdir)/dmallocc.cc + rm -f $@ +- $(CXX) $(CFLAGS) $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \ ++ $(CXX) $(CFLAGS) -fPIC $(CPPFLAGS) $(DEFS) $(INCS) -c $(srcdir)/dmallocc.cc \ + -o ./$@ + + .texi.info : -- cgit v1.2.3 From 0a67e7714706f260ae017f2b2807ddc64eab944a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 11:14:00 +0200 Subject: speech-tools: fix build failure by using Debian version and patches The upstream version of speech-tools does not build with GCC >= 4.3, mainly due to changes in how C++ headers are included. This is fixed in Debian, so let's use the Debian version and patches. Signed-off-by: Thomas Petazzoni --- .../multimedia/festival/speech-tools/speech-tools.mk | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/package/multimedia/festival/speech-tools/speech-tools.mk b/package/multimedia/festival/speech-tools/speech-tools.mk index 0aa44ccfa..66bd3080b 100644 --- a/package/multimedia/festival/speech-tools/speech-tools.mk +++ b/package/multimedia/festival/speech-tools/speech-tools.mk @@ -3,9 +3,11 @@ # speech-tools # ############################################################# -SPEECH_TOOLS_VERSION = 1.2.96-beta -SPEECH_TOOLS_SOURCE = speech_tools-$(SPEECH_TOOLS_VERSION).tar.gz -SPEECH_TOOLS_SITE = http://festvox.org/packed/festival/1.96 + +SPEECH_TOOLS_VERSION = 1.2.96~beta +SPEECH_TOOLS_SOURCE = speech-tools_$(SPEECH_TOOLS_VERSION).orig.tar.gz +SPEECH_TOOLS_PATCH = speech-tools_$(SPEECH_TOOLS_VERSION)-6.diff.gz +SPEECH_TOOLS_SITE = $(BR2_DEBIAN_MIRROR)/debian/pool/main/s/speech-tools/ SPEECH_TOOLS_AUTORECONF = NO SPEECH_TOOLS_INSTALL_STAGING = NO SPEECH_TOOLS_INSTALL_TARGET = YES @@ -14,6 +16,15 @@ SPEECH_TOOLS_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) STRIP=$(TARGET_STRIP) in SPEECH_TOOLS_CONF_OPT = SPEECH_TOOLS_MAKE_OPT = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" +define SPEECH_TOOLS_DEBIAN_PATCH_APPLY + # Use the order of the quilt patch series to apply the patches + for p in $$(cat $(@D)/debian/patches/series) ; do \ + toolchain/patch-kernel.sh $(@D) $(@D)/debian/patches $$p; \ + done +endef + +SPEECH_TOOLS_POST_PATCH_HOOKS += SPEECH_TOOLS_DEBIAN_PATCH_APPLY + SPEECH_TOOLS_DEPENDENCIES = ncurses $(eval $(call AUTOTARGETS,package/multimedia/festival,speech-tools)) -- cgit v1.2.3 From 9abe052f0438ea106274dd3dcbe34736460245a5 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 11:57:15 +0200 Subject: avahi: pkg-config is needed Signed-off-by: Thomas Petazzoni --- package/avahi/avahi.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/avahi/avahi.mk b/package/avahi/avahi.mk index fa05de3d4..8e2d14f6e 100644 --- a/package/avahi/avahi.mk +++ b/package/avahi/avahi.mk @@ -84,7 +84,7 @@ AVAHI_CONF_OPT = --localstatedir=/var \ --with-autoipd-user=default \ --with-autoipd-group=default -AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) host-intltool +AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) host-intltool host-pkg-config ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),) AVAHI_DEPENDENCIES += libdaemon -- cgit v1.2.3 From 9e06a8561665feb2c41e7a608b6849ac49ef0265 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 13:41:46 +0200 Subject: samba: remove swat documentation when not needed When SWAT (the Web administration tool of Samba) is enabled, which is the default when one enables samba in Buildroot, a lot of documentation gets installed in /usr/swat (~15 MB). This patch fixes this by removing the documentation when BR2_HAVE_DOCUMENTATION is not set. Signed-off-by: Thomas Petazzoni --- package/samba/samba.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/package/samba/samba.mk b/package/samba/samba.mk index 1c59070d4..44f7fdeff 100644 --- a/package/samba/samba.mk +++ b/package/samba/samba.mk @@ -161,6 +161,17 @@ $(SAMBA_HOOK_POST_INSTALL): # remove unneeded rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_BINTARGETS_)) rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_TXTTARGETS_)) +ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y) +ifneq ($(BR2_HAVE_DOCUMENTATION),y) + # Remove the documentation + rm -rf $(TARGET_DIR)/usr/swat/help/manpages + rm -rf $(TARGET_DIR)/usr/swat/help/Samba3* + rm -rf $(TARGET_DIR)/usr/swat/using_samba/ + # Removing the welcome.html file will make swat default to + # welcome-no-samba-doc.html + rm -rf $(TARGET_DIR)/usr/swat/help/welcome.html +endif +endif # strip binaries $(STRIPCMD) $(STRIP_STRIP_ALL) $(addprefix $(TARGET_DIR)/, $(SAMBA_BINTARGETS_y)) # install start/stop script -- cgit v1.2.3 From af0a3d1cde4a65ee2487c5e042dc40fd346c5340 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 15:38:27 +0200 Subject: u-boot: fix custom patch handling When U-Boot is enabled and no custom patch directory has been set, then the current test: ifneq ($(strip $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),"") works. However, when U-Boot is not enabled, but still gets compiled because mkimage is needed to build the kernel, BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR is completely empty. It does not even have quotes. So the test in fact needs to be: ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),) Signed-off-by: Thomas Petazzoni --- boot/u-boot/u-boot.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/u-boot/u-boot.mk b/boot/u-boot/u-boot.mk index 9eeea1d00..7b6b2ce63 100644 --- a/boot/u-boot/u-boot.mk +++ b/boot/u-boot/u-boot.mk @@ -77,7 +77,7 @@ $(U_BOOT_DIR)/.patched: $(U_BOOT_DIR)/.unpacked toolchain/patch-kernel.sh $(U_BOOT_DIR) boot/u-boot \ u-boot-$(U_BOOT_VERSION)-\*.patch \ u-boot-$(U_BOOT_VERSION)-\*.patch.$(ARCH) -ifneq ($(strip $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),"") +ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),) toolchain/patch-kernel.sh $(U_BOOT_DIR) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) u-boot-$(U_BOOT_VERSION)-\*.patch endif touch $@ -- cgit v1.2.3 From af5dc83da448ac6f911741d1a51ce315cb052057 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 15:40:28 +0200 Subject: linux: more mistake detection Just as we do for U-Boot, error out in the Linux kernel makefile when the defconfig name or the configuration file path are not correct. What prompted me to implement this was a report on IRC from an user using BR 2010.05 and not understand why the kernel build process was failing. It was because he just forgot to set the path of the configuration file. Of course, it doesn't catch all mistakes (like pointing to a non-existing defconfig or to a non-existing configuration file), but it at least catches basic mistakes. Signed-off-by: Thomas Petazzoni --- linux/linux.mk | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/linux/linux.mk b/linux/linux.mk index a3e5a0c02..3fc259c22 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -160,3 +160,16 @@ linux26-rebuild-with-initramfs: $(LINUX26_DIR)/.stamp_initramfs_rebuilt ifeq ($(BR2_LINUX_KERNEL),y) TARGETS+=linux26 endif + +# Checks to give errors that the user can understand +ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) +ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG)),) +$(error No kernel defconfig name specified, check your BR2_LINUX_KERNEL_DEFCONFIG setting) +endif +endif + +ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y) +ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)),) +$(error No kernel configuration file specified, check your BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE setting) +endif +endif \ No newline at end of file -- cgit v1.2.3 From e014e3da09e99222a1ff4ebb9c3f3433e8de65be Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 15:56:48 +0200 Subject: cairo: PDF support is needed when SVG support is enabled As soon as PostScript, PNG or SVG support is enabled, PDF support is required for Cairo to build properly. Otherwise, you get build failures such as: .libs/cairo-type3-glyph-surface.o: In function `_cairo_type3_glyph_surface_set_stream': /home/thomas/local/buildroot-dl/cairo-1.8.10/src/cairo-type3-glyph-surface.c:337: undefined reference to `_cairo_pdf_operators_set_stream' /home/thomas/local/buildroot-dl/cairo-1.8.10/src/cairo-type3-glyph-surface.c:337: undefined reference to `_cairo_pdf_operators_set_stream' Signed-off-by: Thomas Petazzoni --- package/cairo/Config.in | 1 + 1 file changed, 1 insertion(+) diff --git a/package/cairo/Config.in b/package/cairo/Config.in index 752f61510..19c47231d 100644 --- a/package/cairo/Config.in +++ b/package/cairo/Config.in @@ -30,5 +30,6 @@ config BR2_PACKAGE_CAIRO_PNG config BR2_PACKAGE_CAIRO_SVG bool "svg support" select BR2_PACKAGE_CAIRO_PNG + select BR2_PACKAGE_CAIRO_PDF endif -- cgit v1.2.3 From 60f945e47a15e10f0e777f69b05492b6f7ba918d Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 16:03:27 +0200 Subject: toolchain: mark uClibc 0.9.31 + locale + C++ as broken It fails to build with: ctype_members.cc: In constructor 'std::ctype_byname<_CharT>::ctype_byname(const char*, size_t) [with _CharT = char]': ctype_members.cc:59: error: invalid use of incomplete type 'struct __uclibc_locale_struct' /home/test/avr32-br/usr/avr32-unknown-linux-uclibc/sys-include/bits/uClibc_locale.h:85: error: forward declaration of 'struct __uclibc_locale_struct' ctype_members.cc:60: error: invalid use of incomplete type 'struct __uclibc_locale_struct' /home/test/avr32-br/usr/avr32-unknown-linux-uclibc/sys-include/bits/uClibc_locale.h:85: error: forward declaration of 'struct __uclibc_locale_struct' ctype_members.cc:61: error: invalid use of incomplete type 'struct __uclibc_locale_struct' /home/test/avr32-br/usr/avr32-unknown-linux-uclibc/sys-include/bits/uClibc_locale.h:85: error: forward declaration of 'struct __uclibc_locale_struct' make[5]: *** [ctype_members.lo] Error 1 Signed-off-by: Thomas Petazzoni --- toolchain/toolchain-common.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in index bea0c7c43..3c70f9c77 100644 --- a/toolchain/toolchain-common.in +++ b/toolchain/toolchain-common.in @@ -157,6 +157,7 @@ config BR2_GCC_CROSS_CXX config BR2_INSTALL_LIBSTDCPP bool "Build/install c++ compiler and libstdc++?" select BR2_GCC_CROSS_CXX + depends on !(BR2_avr32 && BR2_ENABLE_LOCALE && BR2_UCLIBC_VERSION_0_9_31) help If you are building your own toolchain and want to build and install the C++ compiler and library then you need to enable this option. @@ -164,6 +165,9 @@ config BR2_INSTALL_LIBSTDCPP support and you want to use the compiler / library then you need to select this option. +comment "C++ support broken in uClibc 0.9.31 with locale enabled" + depends on BR2_avr32 && BR2_ENABLE_LOCALE && BR2_UCLIBC_VERSION_0_9_31 + config BR2_TARGET_OPTIMIZATION string "Target Optimizations" default "-pipe" -- cgit v1.2.3 From 28ac3c6785961411af29a9d22388697610b55667 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 18:16:49 +0200 Subject: libcurl: bump version to fix build issue The ./configure script of libcurl includes instead of when testing for inet_pton(). The test fails, but it doesn't prevent libcurl to build as it can work without inet_pton(). However, it fills the configure cache with the fact that inet_pton() does not exist. And later, tcpreplay reads this from the configure cache and fails to build, because tcpreplay really need inet_pton(). Unfortunately, just fixing the .m4 file doesn't work because the autoreconfiguration of the package fails. Since the fix for this problem is already upstream, the easiest solution is therefore to bump libcurl. The libcurl-7.19.2-fix-ssl-no-verbose.patch patch is no longer needed. Since we're patching a m4 file, we must autoreconfigure the package. Signed-off-by: Thomas Petazzoni --- .../libcurl-7.19.2-fix-ssl-no-verbose.patch | 25 ---------------------- package/libcurl/libcurl.mk | 3 ++- 2 files changed, 2 insertions(+), 26 deletions(-) delete mode 100644 package/libcurl/libcurl-7.19.2-fix-ssl-no-verbose.patch diff --git a/package/libcurl/libcurl-7.19.2-fix-ssl-no-verbose.patch b/package/libcurl/libcurl-7.19.2-fix-ssl-no-verbose.patch deleted file mode 100644 index b15ed9631..000000000 --- a/package/libcurl/libcurl-7.19.2-fix-ssl-no-verbose.patch +++ /dev/null @@ -1,25 +0,0 @@ -ssluse.c: fix build breakage with --with-ssl --disable-verbose - -Revision 1.206 of ssluse.c removed the prefix argument to asn1_output, -but it is still referenced in the CURL_DISABLE_VERBOSE_STRINGS case. - -Signed-off-by: Peter Korsgaard ---- - lib/ssluse.c | 4 ---- - 1 file changed, 4 deletions(-) - -Index: curl-7.19.2/lib/ssluse.c -=================================================================== ---- curl-7.19.2.orig/lib/ssluse.c -+++ curl-7.19.2/lib/ssluse.c -@@ -923,10 +923,6 @@ - int i; - int year=0,month=0,day=0,hour=0,minute=0,second=0; - --#ifdef CURL_DISABLE_VERBOSE_STRINGS -- (void)prefix; --#endif -- - i=tm->length; - asn1_string=(const char *)tm->data; - diff --git a/package/libcurl/libcurl.mk b/package/libcurl/libcurl.mk index 863c30144..488df0455 100644 --- a/package/libcurl/libcurl.mk +++ b/package/libcurl/libcurl.mk @@ -3,11 +3,12 @@ # libcurl # ############################################################# -LIBCURL_VERSION = 7.19.2 +LIBCURL_VERSION = 7.21.0 LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.bz2 LIBCURL_SITE = http://curl.haxx.se/download/ LIBCURL_INSTALL_STAGING = YES LIBCURL_CONF_OPT = --disable-verbose --disable-manual --enable-hidden-symbols +LIBCURL_LIBTOOL_PATCH = NO ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBCURL_DEPENDENCIES += openssl -- cgit v1.2.3 From 96451c62fa97815b5f4f3fcc8b9765d021b6011f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 21:52:18 +0200 Subject: xerces: fix download location apache.jumper.nu does not work anymore, so use archive.apache.org instead. Signed-off-by: Thomas Petazzoni --- package/xerces/xerces.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/xerces/xerces.mk b/package/xerces/xerces.mk index 8a1f693a2..fd0417d26 100644 --- a/package/xerces/xerces.mk +++ b/package/xerces/xerces.mk @@ -5,7 +5,7 @@ ############################################################# XERCES_VERSION:=3.0.1 XERCES_SOURCE:=xerces-c-$(XERCES_VERSION).tar.gz -XERCES_SITE:=http://apache.jumper.nu/xerces/c/3/sources/ +XERCES_SITE:=http://archive.apache.org/dist/xerces/c/3/sources/ XERCES_CAT:=$(ZCAT) XERCES_DIR:=$(BUILD_DIR)/xerces-c-$(XERCES_VERSION) LIBXERCES_BINARY:=libxerces-c-3.0.so -- cgit v1.2.3 From e7584697f24d0bc6fc660703d97a38598cb76690 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 29 Jul 2010 22:03:33 +0200 Subject: xerces: only add -liconv when locale are disabled The iconv library can only be present when locale are disabled in the toolchain. When locale are enabled in the toolchain, iconv is directly implemented by the C library. Signed-off-by: Thomas Petazzoni --- package/xerces/xerces.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package/xerces/xerces.mk b/package/xerces/xerces.mk index fd0417d26..1dcc10a1f 100644 --- a/package/xerces/xerces.mk +++ b/package/xerces/xerces.mk @@ -39,6 +39,10 @@ XERCES_APPS:= \ XERCES_INCLUDES:=/usr/include/xercesc +ifneq ($(BR2_ENABLE_LOCALE),y) +XERCES_MAKE_OPT=LIBS="-liconv" +endif + $(DL_DIR)/$(XERCES_SOURCE): $(call DOWNLOAD,$(XERCES_SITE),$(XERCES_SOURCE)) @@ -74,7 +78,7 @@ $(XERCES_DIR)/.configured: $(XERCES_DIR)/.unpacked touch $@ $(XERCES_DIR)/src/.libs/$(LIBXERCES_BINARY): $(XERCES_DIR)/.configured - $(MAKE) $(TARGET_CONFIGURE_OPTS) LIBS="-liconv" -C $(XERCES_DIR) + $(MAKE) $(TARGET_CONFIGURE_OPTS) $(XERCES_MAKE_OPT) -C $(XERCES_DIR) $(STAGING_DIR)/usr/lib/$(LIBXERCES_BINARY): $(XERCES_DIR)/src/.libs/$(LIBXERCES_BINARY) $(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(STAGING_DIR) \ -- cgit v1.2.3