diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2010-08-25 14:49:17 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2010-08-25 14:49:17 +0200 |
commit | a99b1bb24fa09ecbdcde0364514d3690caaadcc8 (patch) | |
tree | 7abf0c1fff6a0b871a2f5a12200d32a06c2c9d35 | |
parent | 2c31d745ac08e620d143cc266e2b7113754a8787 (diff) | |
parent | 311e0a6fc49a2135a3a5e1e63fe8b77c184cb8c9 (diff) | |
download | buildroot-novena-a99b1bb24fa09ecbdcde0364514d3690caaadcc8.tar.gz buildroot-novena-a99b1bb24fa09ecbdcde0364514d3690caaadcc8.zip |
Merge branch 'for-2010.08' of git://git.busybox.net/~tpetazzoni/git/buildroot
41 files changed, 881 insertions, 32 deletions
diff --git a/package/busybox/busybox-1.17.1/busybox-1.17.1-sed.patch b/package/busybox/busybox-1.17.1/busybox-1.17.1-sed.patch new file mode 100644 index 000000000..1b523c2ce --- /dev/null +++ b/package/busybox/busybox-1.17.1/busybox-1.17.1-sed.patch @@ -0,0 +1,66 @@ +diff -urpN busybox-1.17.1/editors/sed.c busybox-1.17.1-sed/editors/sed.c +--- busybox-1.17.1/editors/sed.c 2010-07-06 04:25:53.000000000 +0200 ++++ busybox-1.17.1-sed/editors/sed.c 2010-08-01 04:15:39.000000000 +0200 +@@ -61,6 +61,10 @@ + #include "libbb.h" + #include "xregex.h" + ++enum { ++ OPT_in_place = 1 << 0, ++}; ++ + /* Each sed command turns into one of these structures. */ + typedef struct sed_cmd_s { + /* Ordered by alignment requirements: currently 36 bytes on x86 */ +@@ -938,8 +942,11 @@ static void process_files(void) + + if (matched) { + /* once matched, "n,xxx" range is dead, disabling it */ +- if (sed_cmd->beg_line > 0) ++ if (sed_cmd->beg_line > 0 ++ && !(option_mask32 & OPT_in_place) /* but not for -i */ ++ ) { + sed_cmd->beg_line = -2; ++ } + sed_cmd->in_match = !( + /* has the ending line come, or is this a single address command? */ + (sed_cmd->end_line ? +@@ -1270,9 +1277,6 @@ static void add_cmd_block(char *cmdstr) + int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int sed_main(int argc UNUSED_PARAM, char **argv) + { +- enum { +- OPT_in_place = 1 << 0, +- }; + unsigned opt; + llist_t *opt_e, *opt_f; + int status = EXIT_SUCCESS; +@@ -1292,6 +1296,7 @@ int sed_main(int argc UNUSED_PARAM, char + opt_e = opt_f = NULL; + opt_complementary = "e::f::" /* can occur multiple times */ + "nn"; /* count -n */ ++ /* -i must be first, to match OPT_in_place definition */ + opt = getopt32(argv, "irne:f:", &opt_e, &opt_f, + &G.be_quiet); /* counter for -n */ + //argc -= optind; +diff -urpN busybox-1.17.1/testsuite/sed.tests busybox-1.17.1-sed/testsuite/sed.tests +--- busybox-1.17.1/testsuite/sed.tests 2010-07-06 04:25:54.000000000 +0200 ++++ busybox-1.17.1-sed/testsuite/sed.tests 2010-08-01 04:19:26.000000000 +0200 +@@ -270,11 +270,16 @@ testing "sed a cmd ended by double backs + | two \\ + ' + +-# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges ++# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges + testing "sed with N skipping lines past ranges on next cmds" \ + "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \ + "4\n4\n" "" "1\n2\n3\n4\n" + ++testing "sed -i with address modifies all files, not only first" \ ++ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \ ++ "bar\nbar\n" "foo\n" "" ++ ++ + # testing "description" "arguments" "result" "infile" "stdin" + + exit $FAILCOUNT diff --git a/package/busybox/busybox-1.17.1/busybox-1.17.1-shell.patch b/package/busybox/busybox-1.17.1/busybox-1.17.1-shell.patch index 04adc8f1d..5279b1202 100644 --- a/package/busybox/busybox-1.17.1/busybox-1.17.1-shell.patch +++ b/package/busybox/busybox-1.17.1/busybox-1.17.1-shell.patch @@ -84,3 +84,22 @@ diff -urpN busybox-1.17.1/shell/hush_test/hush-trap/signal7.tests busybox-1.17.1 +&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD" +echo "Bug detected: $?" +} +diff -urpN busybox-1.17.1/shell/shell_common.c busybox-1.17.1-shell/shell/shell_common.c +--- busybox-1.17.1/shell/shell_common.c 2010-07-06 04:25:54.000000000 +0200 ++++ busybox-1.17.1-shell/shell/shell_common.c 2010-07-27 08:41:43.000000000 +0200 +@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv) + val <<= l->factor_shift; + } + //bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val); ++ /* from man bash: "If neither -H nor -S ++ * is specified, both the soft and hard ++ * limits are set. */ ++ if (!opts) ++ opts = OPT_hard + OPT_soft; + if (opts & OPT_hard) + limit.rlim_max = val; +- if ((opts & OPT_soft) || opts == 0) ++ if (opts & OPT_soft) + limit.rlim_cur = val; + //bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max); + if (setrlimit(l->cmd, &limit) < 0) { diff --git a/package/cgilua/Config.in b/package/cgilua/Config.in index a74e49f53..b43ba97d1 100644 --- a/package/cgilua/Config.in +++ b/package/cgilua/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_CGILUA bool "cgilua" - depends on BR2_LARGEFILE select BR2_PACKAGE_LUA_SHARED_LIBRARY select BR2_PACKAGE_LUAFILESYSTEM help @@ -8,6 +7,3 @@ config BR2_PACKAGE_CGILUA and manipulating input data from Web forms. http://luaforge.net/projects/cgilua/ - -comment "cgilua requires a toolchain with LARGEFILE support" - depends on !BR2_LARGEFILE diff --git a/package/imagemagick/imagemagick.mk b/package/imagemagick/imagemagick.mk index 00895f593..9eb9d694d 100644 --- a/package/imagemagick/imagemagick.mk +++ b/package/imagemagick/imagemagick.mk @@ -88,7 +88,6 @@ $(IMAGEMAGICK_DIR)/.libinstall: $(IMAGEMAGICK_LIB) touch $@ $(TARGET_DIR)/usr/bin/animate: $(IMAGEMAGICK_LIB) - ls -l $(IMAGEMAGICK_LIB) >> datefile $(IMAGEMAGICK_COPY) $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-animate $(TARGET_DIR)/usr/bin/animate -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/bin/animate touch $@ diff --git a/package/intltool/Config.in b/package/intltool/Config.in index 94b34f7c4..990a22712 100644 --- a/package/intltool/Config.in +++ b/package/intltool/Config.in @@ -1,5 +1,8 @@ config BR2_PACKAGE_INTLTOOL bool "intltool" + # Hide from configuration as we only support the host package + # for the moment + depends on BR2_HOST_ONLY help Utility scripts for internationalizing XML diff --git a/package/libglib2/libglib2-fix-clock-gettime-check.patch b/package/libglib2/libglib2-fix-clock-gettime-check.patch new file mode 100644 index 000000000..da2e4856c --- /dev/null +++ b/package/libglib2/libglib2-fix-clock-gettime-check.patch @@ -0,0 +1,51 @@ +Rework clock_gettime() test + +The test for clock_gettime() in configure.in doesn't work properly +when a previous package has loaded the shared configuration cache with +informations about the availability of clock_gettime. A package such +as ctorrent does so, which means that compiling ctorrent *then* +libglib2 currently fails. + +According to people on the Autoconf mailing list, the libglib2 test is +likely the one that needs to be fixed. The problem is that the +AC_CHECK_FUNCS() test assumes that if it finds clock_gettime() it +means that there's no need to add any -lrt flag to the +build. Unfortunately, due to the shared configuration cache, this test +is already done with -lrt, so the test succeeds, and libglib2 does not +know that it needs to add -lrt to G_THREAD_LIBS and +G_THREAD_LIBS_FOR_GTHREAD. + +So instead, we remplace the test with an AC_SEARCH_LIBS() test, +followed by a test on the result of this AC_SEARCH_LIBS() test to add +the necessary -lrt to G_THREAD_LIBS and +G_THREAD_LIBS_FOR_GTHREAD. Therefore, even if the result for the +AC_SEARCH_LIBS() test is cached due to the prior execution ctorrent +./configure script, libglib2 ./configure will properly add -lrt to the +appropriate variables. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: glib-2.24.1/configure.in +=================================================================== +--- glib-2.24.1.orig/configure.in 2010-08-11 19:29:20.530916023 +0200 ++++ glib-2.24.1/configure.in 2010-08-11 19:46:41.308866269 +0200 +@@ -2392,13 +2392,14 @@ + LIBS="$glib_save_LIBS" + fi + +-AC_CHECK_FUNCS(clock_gettime, [], [ +- AC_CHECK_LIB(rt, clock_gettime, [ +- AC_DEFINE(HAVE_CLOCK_GETTIME, 1) ++AC_SEARCH_LIBS([clock_gettime], [rt], [ ++ AC_DEFINE(HAVE_CLOCK_GETTIME, 1,[Have clock_gettime]) ++]) ++ ++if test "$ac_cv_search_clock_gettime" = "-lrt"; then + G_THREAD_LIBS="$G_THREAD_LIBS -lrt" + G_THREAD_LIBS_FOR_GTHREAD="$G_THREAD_LIBS_FOR_GTHREAD -lrt" +- ]) +-]) ++fi + + AC_CACHE_CHECK(for monotonic clocks, + glib_cv_monotonic_clock,AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk index 8dc1fcb83..61e8c1c38 100644 --- a/package/libglib2/libglib2.mk +++ b/package/libglib2/libglib2.mk @@ -9,7 +9,7 @@ LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).$(LIBGLIB2_VERSION_MINOR) LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.bz2 LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR) -LIBGLIB2_AUTORECONF = NO +LIBGLIB2_AUTORECONF = YES LIBGLIB2_LIBTOOL_PATCH = NO LIBGLIB2_INSTALL_STAGING = YES LIBGLIB2_INSTALL_TARGET = YES diff --git a/package/libxml-parser-perl/Config.in b/package/libxml-parser-perl/Config.in index d20a401d8..e90e50ed8 100644 --- a/package/libxml-parser-perl/Config.in +++ b/package/libxml-parser-perl/Config.in @@ -1,6 +1,9 @@ config BR2_PACKAGE_LIBXML_PARSER_PERL bool "libxml-parser-perl" select BR2_PACKAGE_EXPAT + # Hide from configuration as we only support the host package + # for the moment + depends on BR2_HOST_ONLY help The Perl XML::Parser module. diff --git a/package/lua/lua-boolean_expression.patch b/package/lua/lua-bug3-boolean_expression.patch index f04eb8507..f04eb8507 100644 --- a/package/lua/lua-boolean_expression.patch +++ b/package/lua/lua-bug3-boolean_expression.patch diff --git a/package/lua/lua-table.patch b/package/lua/lua-bug4-table.patch index 9ffc1bb28..9ffc1bb28 100644 --- a/package/lua/lua-table.patch +++ b/package/lua/lua-bug4-table.patch diff --git a/package/lua/lua-debug_getfenv.patch b/package/lua/lua-bug5-debug_getfenv.patch index fce4d47db..fce4d47db 100644 --- a/package/lua/lua-debug_getfenv.patch +++ b/package/lua/lua-bug5-debug_getfenv.patch diff --git a/package/lua/lua-gc_performance.patch b/package/lua/lua-bug6-gc_performance.patch index 3c78525b0..3c78525b0 100644 --- a/package/lua/lua-gc_performance.patch +++ b/package/lua/lua-bug6-gc_performance.patch diff --git a/package/lua/lua-bug7-string_format.patch b/package/lua/lua-bug7-string_format.patch new file mode 100644 index 000000000..68f31977f --- /dev/null +++ b/package/lua/lua-bug7-string_format.patch @@ -0,0 +1,20 @@ +--- lua-5.1.4.orig/src/lstrlib.c 2008/07/11 17:27:21 1.132.1.4 ++++ lua-5.1.4/src/lstrlib.c 2010/05/14 15:12:53 +@@ -754,6 +754,7 @@ + + + static int str_format (lua_State *L) { ++ int top = lua_gettop(L); + int arg = 1; + size_t sfl; + const char *strfrmt = luaL_checklstring(L, arg, &sfl); +@@ -768,7 +769,8 @@ + else { /* format item */ + char form[MAX_FORMAT]; /* to store the format (`%...') */ + char buff[MAX_ITEM]; /* to store the formatted item */ +- arg++; ++ if (++arg > top) ++ luaL_argerror(L, arg, "no value"); + strfrmt = scanformat(L, strfrmt, form); + switch (*strfrmt++) { + case 'c': { diff --git a/package/lua/lua-bug8-io_read.patch b/package/lua/lua-bug8-io_read.patch new file mode 100644 index 000000000..fb56bcf31 --- /dev/null +++ b/package/lua/lua-bug8-io_read.patch @@ -0,0 +1,14 @@ +--- lua-5.1.4.orig/src/liolib.c 2008/01/18 17:47:43 2.73.1.3 ++++ lua-5.1.4.orig/src/liolib.c 2010/05/14 15:29:29 +@@ -276,7 +276,10 @@ + lua_pushnumber(L, d); + return 1; + } +- else return 0; /* read fails */ ++ else { ++ lua_pushnil(L); /* "result" to be removed */ ++ return 0; /* read fails */ ++ } + } + + diff --git a/package/lua/lua.mk b/package/lua/lua.mk index d66be9fd3..598eea140 100644 --- a/package/lua/lua.mk +++ b/package/lua/lua.mk @@ -24,7 +24,9 @@ endif define LUA_BUILD_CMDS sed -i -e 's/-O2//' $(@D)/src/Makefile sed -i -e 's/\/usr\/local/\/usr/' $(@D)/etc/lua.pc - $(MAKE) $(TARGET_CONFIGURE_OPTS) MYCFLAGS="$(LUA_MYCFLAGS)" \ + $(MAKE) \ + CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \ + MYCFLAGS="$(TARGET_CFLAGS) $(LUA_MYCFLAGS)" \ MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \ PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all endef diff --git a/package/luafilesystem/Config.in b/package/luafilesystem/Config.in index 6cb6c2475..edcb414a9 100644 --- a/package/luafilesystem/Config.in +++ b/package/luafilesystem/Config.in @@ -1,12 +1,8 @@ config BR2_PACKAGE_LUAFILESYSTEM bool "luafilesystem" - depends on BR2_LARGEFILE select BR2_PACKAGE_LUA_SHARED_LIBRARY help LuaFileSystem offers a portable way to access the underlying directory structure and file attributes. - http://luaforge.net/projects/luafilesystem/ - -comment "luafilesystem requires a toolchain with LARGEFILE support" - depends on !BR2_LARGEFILE + http://keplerproject.github.com/luafilesystem/ diff --git a/package/luafilesystem/luafilesystem-without_large_file.patch b/package/luafilesystem/luafilesystem-without_large_file.patch new file mode 100644 index 000000000..b1f41c09d --- /dev/null +++ b/package/luafilesystem/luafilesystem-without_large_file.patch @@ -0,0 +1,20 @@ +diff --git a/src/lfs.c b/src/lfs.c +index 85f01e3..ed49f50 100644 +--- a/src/lfs.c ++++ b/src/lfs.c +@@ -22,13 +22,13 @@ + + #ifndef _WIN32 + #ifndef _AIX +-#define _FILE_OFFSET_BITS 64 /* Linux, Solaris and HP-UX */ ++//#define _FILE_OFFSET_BITS 64 /* Linux, Solaris and HP-UX */ + #else + #define _LARGE_FILES 1 /* AIX */ + #endif + #endif + +-#define _LARGEFILE64_SOURCE ++//#define _LARGEFILE64_SOURCE + + #include <errno.h> + #include <stdio.h> diff --git a/package/luafilesystem/luafilesystem.mk b/package/luafilesystem/luafilesystem.mk index a27080cd6..e68873414 100644 --- a/package/luafilesystem/luafilesystem.mk +++ b/package/luafilesystem/luafilesystem.mk @@ -8,8 +8,12 @@ LUAFILESYSTEM_VERSION = 1.5.0 LUAFILESYSTEM_SITE = http://github.com/downloads/keplerproject/luafilesystem LUAFILESYSTEM_DEPENDENCIES = lua +ifeq ($(BR2_LARGEFILE),y) +LFS_CFLAGS = -D_FILE_OFFSET_BITS=64 _LARGEFILE64_SOURCE +endif + define LUAFILESYSTEM_BUILD_CMDS - $(MAKE) -C $(@D) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS) -fPIC" + $(MAKE) -C $(@D) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS) $(LFS_CFLAGS) -fPIC" endef define LUAFILESYSTEM_INSTALL_TARGET_CMDS diff --git a/package/lzo/lzo-2.03-acinclude-m4.patch b/package/lzo/lzo-2.03-acinclude-m4.patch new file mode 100644 index 000000000..8f860f4cc --- /dev/null +++ b/package/lzo/lzo-2.03-acinclude-m4.patch @@ -0,0 +1,377 @@ +The lzo tarball only contains an aclocal.m4, which is the result from +running aclocal. Unfortunately, it lacks the acinclude.m4 file which +would allow us to do an autoreconf of the package. Therefore, this +patch extracts from aclocal.m4 the parts that are specific to this lzo +package, and put them into an acinclude.m4 so that autoreconf on this +package will work. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + acinclude.m4 | 360 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 360 insertions(+) + +Index: lzo-2.03/acinclude.m4 +=================================================================== +--- /dev/null ++++ lzo-2.03/acinclude.m4 +@@ -0,0 +1,360 @@ ++# /*********************************************************************** ++# // standard ACC macros ++# ************************************************************************/ ++ ++AC_DEFUN([mfx_ACC_CHECK_ENDIAN], [ ++AC_C_BIGENDIAN([AC_DEFINE(ACC_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(ACC_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])]) ++])# ++ ++AC_DEFUN([mfx_ACC_CHECK_HEADERS], [ ++AC_HEADER_TIME ++AC_CHECK_HEADERS([assert.h ctype.h dirent.h errno.h fcntl.h float.h limits.h malloc.h memory.h setjmp.h signal.h stdarg.h stddef.h stdint.h stdio.h stdlib.h string.h strings.h time.h unistd.h utime.h sys/mman.h sys/resource.h sys/stat.h sys/time.h sys/types.h sys/wait.h]) ++])# ++ ++AC_DEFUN([mfx_ACC_CHECK_FUNCS], [ ++AC_CHECK_FUNCS(access alloca atexit atoi atol chmod chown clock_getcpuclockid clock_getres clock_gettime ctime difftime fstat getenv getpagesize getrusage gettimeofday gmtime isatty localtime longjmp lstat memcmp memcpy memmove memset mkdir mktime mmap mprotect munmap qsort raise rmdir setjmp signal snprintf strcasecmp strchr strdup strerror strftime stricmp strncasecmp strnicmp strrchr strstr time umask utime vsnprintf) ++])# ++ ++ ++AC_DEFUN([mfx_ACC_CHECK_SIZEOF], [ ++AC_CHECK_SIZEOF(short) ++AC_CHECK_SIZEOF(int) ++AC_CHECK_SIZEOF(long) ++ ++AC_CHECK_SIZEOF(long long) ++AC_CHECK_SIZEOF(__int16) ++AC_CHECK_SIZEOF(__int32) ++AC_CHECK_SIZEOF(__int64) ++ ++AC_CHECK_SIZEOF(void *) ++AC_CHECK_SIZEOF(size_t) ++AC_CHECK_SIZEOF(ptrdiff_t) ++])# ++ ++ ++# /*********************************************************************** ++# // Check for ACC_conformance ++# ************************************************************************/ ++ ++AC_DEFUN([mfx_ACC_ACCCHK], [ ++mfx_tmp=$1 ++mfx_save_CPPFLAGS=$CPPFLAGS ++dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here ++test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS" ++ ++AC_MSG_CHECKING([whether your compiler passes the ACC conformance test]) ++ ++AC_LANG_CONFTEST([AC_LANG_PROGRAM( ++[[#define ACC_CONFIG_NO_HEADER 1 ++#include "acc/acc.h" ++#include "acc/acc_incd.h" ++#undef ACCCHK_ASSERT ++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr) ++#include "acc/acc_chk.ch" ++#undef ACCCHK_ASSERT ++static void test_acc_compile_time_assert(void) { ++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr) ++#include "acc/acc_chk.ch" ++#undef ACCCHK_ASSERT ++} ++#undef NDEBUG ++#include <assert.h> ++static int test_acc_run_time_assert(int r) { ++#define ACCCHK_ASSERT(expr) assert(expr); ++#include "acc/acc_chk.ch" ++#undef ACCCHK_ASSERT ++return r; ++} ++]], [[ ++test_acc_compile_time_assert(); ++if (test_acc_run_time_assert(1) != 1) return 1; ++]] ++)]) ++ ++mfx_tmp=FAILED ++_AC_COMPILE_IFELSE([], [mfx_tmp=yes]) ++rm -f conftest.$ac_ext conftest.$ac_objext ++ ++CPPFLAGS=$mfx_save_CPPFLAGS ++ ++AC_MSG_RESULT([$mfx_tmp]) ++case x$mfx_tmp in ++ xpassed | xyes) ;; ++ *) ++ AC_MSG_NOTICE([]) ++ AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ]) ++ AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending]) ++ AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.]) ++ AC_MSG_NOTICE([Thanks for your support.]) ++ AC_MSG_NOTICE([]) ++ AC_MSG_ERROR([ACC conformance test failed. Stop.]) ++dnl AS_EXIT ++ ;; ++esac ++])# mfx_ACC_ACCCHK ++ ++ ++# /*********************************************************************** ++# // Check for ACC_conformance ++# ************************************************************************/ ++ ++AC_DEFUN([mfx_MINIACC_ACCCHK], [ ++mfx_tmp=$1 ++mfx_save_CPPFLAGS=$CPPFLAGS ++dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here ++test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS" ++ ++AC_MSG_CHECKING([whether your compiler passes the ACC conformance test]) ++ ++AC_LANG_CONFTEST([AC_LANG_PROGRAM( ++[[#define ACC_CONFIG_NO_HEADER 1 ++#define ACC_WANT_ACC_INCD_H 1 ++#include $2 ++ ++#define ACC_WANT_ACC_CHK_CH 1 ++#undef ACCCHK_ASSERT ++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr) ++#include $2 ++ ++#define ACC_WANT_ACC_CHK_CH 1 ++#undef ACCCHK_ASSERT ++#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr) ++static void test_acc_compile_time_assert(void) { ++#include $2 ++} ++ ++#undef NDEBUG ++#include <assert.h> ++#define ACC_WANT_ACC_CHK_CH 1 ++#undef ACCCHK_ASSERT ++#define ACCCHK_ASSERT(expr) assert(expr); ++static int test_acc_run_time_assert(int r) { ++#include $2 ++return r; ++} ++]], [[ ++test_acc_compile_time_assert(); ++if (test_acc_run_time_assert(1) != 1) return 1; ++]] ++)]) ++ ++mfx_tmp=FAILED ++_AC_COMPILE_IFELSE([], [mfx_tmp=yes]) ++rm -f conftest.$ac_ext conftest.$ac_objext ++ ++CPPFLAGS=$mfx_save_CPPFLAGS ++ ++AC_MSG_RESULT([$mfx_tmp]) ++case x$mfx_tmp in ++ xpassed | xyes) ;; ++ *) ++ AC_MSG_NOTICE([]) ++ AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ]) ++ AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending]) ++ AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.]) ++ AC_MSG_NOTICE([Thanks for your support.]) ++ AC_MSG_NOTICE([]) ++ AC_MSG_ERROR([ACC conformance test failed. Stop.]) ++dnl AS_EXIT ++ ;; ++esac ++])# mfx_MINIACC_ACCCHK ++ ++ ++ ++# serial 1 ++ ++AC_DEFUN([mfx_PROG_CPPFLAGS], [ ++AC_MSG_CHECKING([whether the C preprocessor needs special flags]) ++ ++AC_LANG_CONFTEST([AC_LANG_PROGRAM( ++[[#include <limits.h> ++#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul) ++# include "your C preprocessor is broken 1" ++#elif (0xffffu == 0xfffffffful) ++# include "your C preprocessor is broken 2" ++#elif (32767 >= ULONG_MAX) || (65535u >= ULONG_MAX) ++# include "your C preprocessor is broken 3" ++#endif ++]], [[ ]] ++)]) ++ ++mfx_save_CPPFLAGS=$CPPFLAGS ++mfx_tmp=ERROR ++for mfx_arg in "" -no-cpp-precomp ++do ++ CPPFLAGS="$mfx_arg $mfx_save_CPPFLAGS" ++ _AC_COMPILE_IFELSE([], ++[mfx_tmp=$mfx_arg ++break]) ++done ++CPPFLAGS=$mfx_save_CPPFLAGS ++rm -f conftest.$ac_ext conftest.$ac_objext ++case x$mfx_tmp in ++ x) ++ AC_MSG_RESULT([none needed]) ;; ++ xERROR) ++ AC_MSG_RESULT([ERROR]) ++ AC_MSG_ERROR([your C preprocessor is broken - for details see config.log]) ++ ;; ++ *) ++ AC_MSG_RESULT([$mfx_tmp]) ++ CPPFLAGS="$mfx_tmp $CPPFLAGS" ++ ;; ++esac ++])# mfx_PROG_CPPFLAGS ++ ++# serial 3 ++ ++AC_DEFUN([mfx_CHECK_HEADER_SANE_LIMITS_H], [ ++AC_CACHE_CHECK([whether limits.h is sane], ++mfx_cv_header_sane_limits_h, ++[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <limits.h> ++#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul) ++# if defined(__APPLE__) && defined(__GNUC__) ++# error "your preprocessor is broken - use compiler option -no-cpp-precomp" ++# else ++# include "your preprocessor is broken" ++# endif ++#endif ++#define MFX_0xffff 0xffff ++#define MFX_0xffffffffL 4294967295ul ++#if !defined(CHAR_BIT) || (CHAR_BIT != 8) ++# include "error CHAR_BIT" ++#endif ++#if !defined(UCHAR_MAX) ++# include "error UCHAR_MAX 1" ++#endif ++#if !defined(USHRT_MAX) ++# include "error USHRT_MAX 1" ++#endif ++#if !defined(UINT_MAX) ++# include "error UINT_MAX 1" ++#endif ++#if !defined(ULONG_MAX) ++# include "error ULONG_MAX 1" ++#endif ++#if !defined(SHRT_MAX) ++# include "error SHRT_MAX 1" ++#endif ++#if !defined(INT_MAX) ++# include "error INT_MAX 1" ++#endif ++#if !defined(LONG_MAX) ++# include "error LONG_MAX 1" ++#endif ++#if (UCHAR_MAX < 1) ++# include "error UCHAR_MAX 2" ++#endif ++#if (USHRT_MAX < 1) ++# include "error USHRT_MAX 2" ++#endif ++#if (UINT_MAX < 1) ++# include "error UINT_MAX 2" ++#endif ++#if (ULONG_MAX < 1) ++# include "error ULONG_MAX 2" ++#endif ++#if (UCHAR_MAX < 0xff) ++# include "error UCHAR_MAX 3" ++#endif ++#if (USHRT_MAX < MFX_0xffff) ++# include "error USHRT_MAX 3" ++#endif ++#if (UINT_MAX < MFX_0xffff) ++# include "error UINT_MAX 3" ++#endif ++#if (ULONG_MAX < MFX_0xffffffffL) ++# include "error ULONG_MAX 3" ++#endif ++#if (USHRT_MAX > UINT_MAX) ++# include "error USHRT_MAX vs UINT_MAX" ++#endif ++#if (UINT_MAX > ULONG_MAX) ++# include "error UINT_MAX vs ULONG_MAX" ++#endif ++]], [[ ++#if (USHRT_MAX == MFX_0xffff) ++{ typedef char a_short2a[1 - 2 * !(sizeof(short) == 2)]; } ++#elif (USHRT_MAX >= MFX_0xffff) ++{ typedef char a_short2b[1 - 2 * !(sizeof(short) > 2)]; } ++#endif ++#if (UINT_MAX == MFX_0xffff) ++{ typedef char a_int2a[1 - 2 * !(sizeof(int) == 2)]; } ++#elif (UINT_MAX >= MFX_0xffff) ++{ typedef char a_int2b[1 - 2 * !(sizeof(int) > 2)]; } ++#endif ++#if (ULONG_MAX == MFX_0xffff) ++{ typedef char a_long2a[1 - 2 * !(sizeof(long) == 2)]; } ++#elif (ULONG_MAX >= MFX_0xffff) ++{ typedef char a_long2b[1 - 2 * !(sizeof(long) > 2)]; } ++#endif ++#if !defined(_CRAY1) /* CRAY PVP systems */ ++#if (USHRT_MAX == MFX_0xffffffffL) ++{ typedef char a_short4a[1 - 2 * !(sizeof(short) == 4)]; } ++#elif (USHRT_MAX >= MFX_0xffffffffL) ++{ typedef char a_short4b[1 - 2 * !(sizeof(short) > 4)]; } ++#endif ++#endif /* _CRAY1 */ ++#if (UINT_MAX == MFX_0xffffffffL) ++{ typedef char a_int4a[1 - 2 * !(sizeof(int) == 4)]; } ++#elif (UINT_MAX >= MFX_0xffffffffL) ++{ typedef char a_int4b[1 - 2 * !(sizeof(int) > 4)]; } ++#endif ++#if (ULONG_MAX == MFX_0xffffffffL) ++{ typedef char a_long4a[1 - 2 * !(sizeof(long) == 4)]; } ++#elif (ULONG_MAX >= MFX_0xffffffffL) ++{ typedef char a_long4b[1 - 2 * !(sizeof(long) > 4)]; } ++#endif ++]])], ++[mfx_cv_header_sane_limits_h=yes], ++[mfx_cv_header_sane_limits_h=no])]) ++]) ++ ++# /*********************************************************************** ++# // standard ++# ************************************************************************/ ++ ++AC_DEFUN([mfx_LZO_CHECK_ENDIAN], [ ++AC_C_BIGENDIAN([AC_DEFINE(LZO_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(LZO_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])]) ++])# ++ ++ ++# /*********************************************************************** ++# // ++# ************************************************************************/ ++ ++dnl more types which are not yet covered by ACC ++ ++AC_DEFUN([mfx_CHECK_SIZEOF], [ ++AC_CHECK_SIZEOF(__int32) ++AC_CHECK_SIZEOF(intmax_t) ++AC_CHECK_SIZEOF(uintmax_t) ++AC_CHECK_SIZEOF(intptr_t) ++AC_CHECK_SIZEOF(uintptr_t) ++ ++AC_CHECK_SIZEOF(float) ++AC_CHECK_SIZEOF(double) ++AC_CHECK_SIZEOF(long double) ++ ++AC_CHECK_SIZEOF(dev_t) ++AC_CHECK_SIZEOF(fpos_t) ++AC_CHECK_SIZEOF(mode_t) ++AC_CHECK_SIZEOF(off_t) ++AC_CHECK_SIZEOF(ssize_t) ++AC_CHECK_SIZEOF(time_t) ++])# ++ ++ ++ ++AC_DEFUN([mfx_CHECK_LIB_WINMM], [ ++if test "X$GCC" = Xyes; then ++case $host_os in ++cygwin* | mingw* | pw32*) ++ test "X$LIBS" != "X" && LIBS="$LIBS " ++ LIBS="${LIBS}-lwinmm" ;; ++*) ++ ;; ++esac ++fi ++])# diff --git a/package/lzo/lzo-2.03-fix-configure-ac.patch b/package/lzo/lzo-2.03-fix-configure-ac.patch new file mode 100644 index 000000000..26aece7b4 --- /dev/null +++ b/package/lzo/lzo-2.03-fix-configure-ac.patch @@ -0,0 +1,21 @@ +_AC_SRCPATHS doesn't exist in autoconf, _AC_SRCDIRS should be used +instead according to many reports found by Google. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: lzo-2.03/configure.ac +=================================================================== +--- lzo-2.03.orig/configure.ac ++++ lzo-2.03/configure.ac +@@ -48,7 +48,7 @@ + AM_MAINTAINER_MODE + + if test -z "$ac_abs_top_srcdir"; then +- _AC_SRCPATHS(.) ++ _AC_SRCDIRS(.) + fi + if test -r .Conf.settings1; then + . ./.Conf.settings1 diff --git a/package/lzo/lzo-2.03-fix-makefile-am.patch b/package/lzo/lzo-2.03-fix-makefile-am.patch new file mode 100644 index 000000000..9f23e40db --- /dev/null +++ b/package/lzo/lzo-2.03-fix-makefile-am.patch @@ -0,0 +1,24 @@ +Makefile.am is not allowed to override CFLAGS/CPPFLAGS, it must use +AM_CFLAGS and AM_CPPFLAGS. This is needed in order for autoreconf to +work on this package. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + src/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: lzo-2.03/src/Makefile.am +=================================================================== +--- lzo-2.03.orig/src/Makefile.am ++++ lzo-2.03/src/Makefile.am +@@ -7,8 +7,8 @@ + SUFFIXES = .S + + INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir) +-CPPFLAGS = $(LZO_CPPFLAGS) $(configure_CPPFLAGS) $(LZO_EXTRA_CPPFLAGS) +-CFLAGS = $(LZO_CFLAGS) $(configure_CFLAGS) $(LZO_EXTRA_CFLAGS) ++AM_CPPFLAGS = $(LZO_CPPFLAGS) $(configure_CPPFLAGS) $(LZO_EXTRA_CPPFLAGS) ++AM_CFLAGS = $(LZO_CFLAGS) $(configure_CFLAGS) $(LZO_EXTRA_CFLAGS) + + lib_LTLIBRARIES = liblzo2.la + diff --git a/package/lzo/lzo.mk b/package/lzo/lzo.mk index ed300562e..bfa66792d 100644 --- a/package/lzo/lzo.mk +++ b/package/lzo/lzo.mk @@ -7,6 +7,12 @@ LZO_VERSION:=2.03 LZO_SOURCE:=lzo-$(LZO_VERSION).tar.gz LZO_SITE:=http://www.oberhumer.com/opensource/lzo/download LZO_AUTORECONF = NO + +# lzo's configure was generated by an old autoconf, and the +# AC_CANONICAL_TARGET check fails in host-lzo when the cache has been +# filled with ac_cv_build and ac_cv_host. +HOST_LZO_AUTORECONF = YES + LZO_INSTALL_STAGING = YES LZO_INSTALL_TARGET = YES LZO_INSTALL_STAGING_OPT = CC="$(TARGET_CC)" DESTDIR=$(STAGING_DIR) install diff --git a/package/netcat/netcat.mk b/package/netcat/netcat.mk index 31f6b716c..f8263ef35 100644 --- a/package/netcat/netcat.mk +++ b/package/netcat/netcat.mk @@ -10,5 +10,6 @@ NETCAT_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/netc NETCAT_AUTORECONF:=NO NETCAT_INSTALL_STAGING:=NO NETCAT_INSTALL_TARGET:=YES +NETCAT_CONF_OPT = --program-prefix='' $(eval $(call AUTOTARGETS,package,netcat)) diff --git a/package/php/php.mk b/package/php/php.mk index 962547f6f..9396311ef 100644 --- a/package/php/php.mk +++ b/package/php/php.mk @@ -4,7 +4,7 @@ # ############################################################# -PHP_VERSION = 5.2.13 +PHP_VERSION = 5.2.14 PHP_SOURCE = php-$(PHP_VERSION).tar.bz2 PHP_SITE = http://www.php.net/distributions PHP_INSTALL_STAGING = YES diff --git a/package/sysvinit/Config.in b/package/sysvinit/Config.in index 82826dc93..34ec391c5 100644 --- a/package/sysvinit/Config.in +++ b/package/sysvinit/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_SYSVINIT bool "sysvinit" - select BR2_PACKAGE_NCURSES help /sbin/init - parent of all processes diff --git a/package/sysvinit/sysvinit.mk b/package/sysvinit/sysvinit.mk index 0b827e615..ef7c71321 100644 --- a/package/sysvinit/sysvinit.mk +++ b/package/sysvinit/sysvinit.mk @@ -21,14 +21,16 @@ $(SYSVINIT_DIR)/.unpacked: $(DL_DIR)/$(SYSVINIT_SOURCE) touch $@ $(SYSVINIT_DIR)/$(SYSVINIT_BINARY): $(SYSVINIT_DIR)/.unpacked - CFLAGS="$(TARGET_CFLAGS)" $(MAKE) CC="$(TARGET_CC)" -C $(SYSVINIT_DIR)/src + # Force sysvinit to link against libcrypt as it otherwise + # use an incorrect test to see if it's available + CFLAGS="$(TARGET_CFLAGS)" $(MAKE) CC="$(TARGET_CC)" LCRYPT="-lcrypt" -C $(SYSVINIT_DIR)/src $(TARGET_DIR)/$(SYSVINIT_TARGET_BINARY): $(SYSVINIT_DIR)/$(SYSVINIT_BINARY) for x in halt init shutdown; do \ install -D $(SYSVINIT_DIR)/src/$$x $(TARGET_DIR)/sbin/$$x || exit 1; \ done -sysvinit: ncurses $(TARGET_DIR)/$(SYSVINIT_TARGET_BINARY) +sysvinit: $(TARGET_DIR)/$(SYSVINIT_TARGET_BINARY) sysvinit-source: $(DL_DIR)/$(SYSVINIT_SOURCE) diff --git a/package/util-linux/util-linux-2.13-pre17-hardcode-a-out-constants.patch b/package/util-linux/util-linux-2.13-pre17-hardcode-a-out-constants.patch new file mode 100644 index 000000000..b115c410e --- /dev/null +++ b/package/util-linux/util-linux-2.13-pre17-hardcode-a-out-constants.patch @@ -0,0 +1,41 @@ +Hardcode a.out related constants + +The OMAGIC, NMAGIC and ZMAGIC constants, related to the legacy a.out +binary format, are no longer available in the headers of all +architectures, due to this binary format being deprecated. For that +reason, util-linux fails to build. + +We therefore take the approach used in newer versions of +util-linux-ng: hardcoding those values. See +http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git;a=commitdiff;h=e9eb4dad0ece03914f67f6d1ded74cfbbe694ba4 + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + text-utils/more.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +Index: util-linux-2.13-pre7/text-utils/more.c +=================================================================== +--- util-linux-2.13-pre7.orig/text-utils/more.c ++++ util-linux-2.13-pre7/text-utils/more.c +@@ -53,7 +53,6 @@ + #include <sys/stat.h> + #include <sys/file.h> + #include <sys/wait.h> +-#include <a.out.h> + #include <locale.h> + #include "xstrncpy.h" + #include "nls.h" +@@ -504,9 +503,9 @@ + + if (fread(twobytes, 2, 1, f) == 1) { + switch(twobytes[0] + (twobytes[1]<<8)) { +- case OMAGIC: /* 0407 */ +- case NMAGIC: /* 0410 */ +- case ZMAGIC: /* 0413 */ ++ case 0407: /* a.out obj */ ++ case 0410: /* a.out exec */ ++ case 0413: /* a.out demand exec */ + case 0405: + case 0411: + case 0177545: diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk index f330447fb..445b4d1c7 100644 --- a/package/util-linux/util-linux.mk +++ b/package/util-linux/util-linux.mk @@ -23,6 +23,10 @@ UTIL-LINUX_DEPENDENCIES += gettext libintl UTIL-LINUX_MAKE_OPT = LIBS=-lintl endif +ifeq ($(BR2_PACKAGE_NCURSES),y) +UTIL-LINUX_DEPENDENCIES += ncurses +endif + $(DL_DIR)/$(UTIL-LINUX_SOURCE): $(call DOWNLOAD,$(UTIL-LINUX_SITE),$(UTIL-LINUX_SOURCE)) diff --git a/package/wsapi/Config.in b/package/wsapi/Config.in index 472bbfcee..362164848 100644 --- a/package/wsapi/Config.in +++ b/package/wsapi/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_WSAPI bool "wsapi" - depends on BR2_LARGEFILE # luafilesystem select BR2_PACKAGE_COXPCALL select BR2_PACKAGE_LUAFILESYSTEM select BR2_PACKAGE_RINGS @@ -8,6 +7,3 @@ config BR2_PACKAGE_WSAPI API that abstracts the web server from Lua web applications. http://keplerproject.github.com/wsapi/ - -comment "wsapi requires a toolchain with LARGEFILE support" - depends on !BR2_LARGEFILE diff --git a/package/xavante/Config.in b/package/xavante/Config.in index a1b47c33b..a7df53021 100644 --- a/package/xavante/Config.in +++ b/package/xavante/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_XAVANTE bool "xavante" - depends on BR2_LARGEFILE # luafilesystem select BR2_PACKAGE_LUA_SHARED_LIBRARY select BR2_PACKAGE_CGILUA select BR2_PACKAGE_COPAS @@ -13,6 +12,3 @@ config BR2_PACKAGE_XAVANTE architecture based on URI mapped handlers. http://keplerproject.github.com/xavante/ - -comment "xavante requires a toolchain with LARGEFILE support" - depends on !BR2_LARGEFILE diff --git a/target/Config.in.arch b/target/Config.in.arch index d3a402582..ce64068c7 100644 --- a/target/Config.in.arch +++ b/target/Config.in.arch @@ -22,6 +22,11 @@ config BR2_avr32 select BR2_SOFT_FLOAT config BR2_cris bool "cris" + # The CRIS architecture from Axis has been deprecated by the + # manufacturer. No units are sold after July 2010, and support + # will end in July 2011. Moreover, CRIS support in Buildroot + # has not been updated since a long time. + depends on BR2_DEPRECATED config BR2_ia64 bool "ia64" # IA64 almost does not exist anymore and has never been used diff --git a/toolchain/dependencies/dependencies.mk b/toolchain/dependencies/dependencies.mk index d50042462..b334811ac 100644 --- a/toolchain/dependencies/dependencies.mk +++ b/toolchain/dependencies/dependencies.mk @@ -16,6 +16,7 @@ endif dependencies: host-sed $(DEPENDENCIES_HOST_PREREQ) @HOSTCC="$(firstword $(HOSTCC))" MAKE="$(MAKE)" \ HOST_SED_DIR="$(HOST_SED_DIR)" \ + CONFIG_FILE="$(CONFIG_DIR)/.config" \ $(TOPDIR)/toolchain/dependencies/dependencies.sh dependencies-source: diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index b3822ef66..b47e9d81e 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -152,3 +152,15 @@ for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio p exit 1; fi done + +if grep ^BR2_TOOLCHAIN_BUILDROOT=y $CONFIG_FILE > /dev/null && \ + grep ^BR2_ENABLE_LOCALE=y $CONFIG_FILE > /dev/null ; then + if ! which locale > /dev/null ; then + /bin/echo -e "\nYou need locale support on your build machine to build a toolchain supporting locales\n" + exit 1 ; + fi + if ! locale -a | grep -i utf8$ ; then + /bin/echo -e "\nYou need at least one UTF8 locale to build a toolchain supporting locales\n" + exit 1 ; + fi +fi diff --git a/toolchain/gcc/4.4.4/powerpc-link-with-math-lib.patch.conditional b/toolchain/gcc/4.4.4/powerpc-link-with-math-lib.patch.conditional new file mode 100644 index 000000000..3fe8757d7 --- /dev/null +++ b/toolchain/gcc/4.4.4/powerpc-link-with-math-lib.patch.conditional @@ -0,0 +1,137 @@ +http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00269.html + +On glibc the libc.so carries a copy of the math function copysignl() but +on uClibc math functions like copysignl() live in libm. Since libgcc_s +contains unresolved symbols, any attempt to link against libgcc_s +without explicitely specifying -lm fails, resulting in a broken +bootstrap of the compiler. + + +diff -rdup gcc-4.4.0.old/gcc/config/t-slibgcc-elf-ver gcc-4.4.0/gcc/config/t-slibgcc-elf-ver + +diff -durN gcc-4.4.4.orig/gcc/config/t-slibgcc-elf-ver gcc-4.4.4/gcc/config/t-slibgcc-elf-ver +--- gcc-4.4.4.orig/gcc/config/t-slibgcc-elf-ver 2010-01-04 16:13:08.000000000 +0100 ++++ gcc-4.4.4/gcc/config/t-slibgcc-elf-ver 2010-05-16 19:38:36.000000000 +0200 +@@ -9,7 +9,7 @@ + SHLIB_OBJS = @shlib_objs@ + SHLIB_DIR = @multilib_dir@ + SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ +-SHLIB_LC = -lc ++SHLIB_LC = @libgcc_libm@ -lc + SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) + SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ + $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) +diff -durN gcc-4.4.4.orig/libgcc/Makefile.in gcc-4.4.4/libgcc/Makefile.in +--- gcc-4.4.4.orig/libgcc/Makefile.in 2009-04-10 01:23:07.000000000 +0200 ++++ gcc-4.4.4/libgcc/Makefile.in 2010-05-16 19:38:36.000000000 +0200 +@@ -39,6 +39,7 @@ + decimal_float = @decimal_float@ + enable_decimal_float = @enable_decimal_float@ + fixed_point = @fixed_point@ ++LIBGCC_LIBM = @LIBGCC_LIBM@ + + host_noncanonical = @host_noncanonical@ + +@@ -787,9 +788,10 @@ + @multilib_dir@,$(MULTIDIR),$(subst \ + @shlib_objs@,$(objects),$(subst \ + @shlib_base_name@,libgcc_s,$(subst \ ++ @libgcc_libm@,$(LIBGCC_LIBM),$(subst \ + @shlib_map_file@,$(mapfile),$(subst \ + @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \ +- @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))) ++ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))) + + libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts) + # @multilib_flags@ is still needed because this may use +diff -durN gcc-4.4.4.orig/libgcc/configure gcc-4.4.4/libgcc/configure +--- gcc-4.4.4.orig/libgcc/configure 2008-11-20 18:13:01.000000000 +0100 ++++ gcc-4.4.4/libgcc/configure 2010-05-16 19:38:36.000000000 +0200 +@@ -272,7 +272,7 @@ + PACKAGE_BUGREPORT='' + + ac_unique_file="static-object.mk" +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS' ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls LIBGCC_LIBM tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS' + ac_subst_files='' + ac_pwd=`pwd` + +@@ -3547,6 +3547,39 @@ + fi + + ++# On powerpc libgcc_s references copysignl which is a libm function but ++# glibc apparently also provides it via libc as opposed to uClibc where ++# it lives in libm. ++echo "$as_me:$LINENO: checking for library containing copysignl" >&5 ++echo $ECHO_N "checking for library containing copysignl... $ECHO_C" >&6 ++if test "${libgcc_cv_copysignl_lib+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++ echo '#include <features.h>' > conftest.c ++ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c ++ libgcc_cv_copysignl_lib="-lc" ++ if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } ++ then ++ libgcc_cv_copysignl_lib="-lm" ++ fi ++ rm -f conftest.* ++ ++fi ++echo "$as_me:$LINENO: result: $libgcc_cv_copysignl_lib" >&5 ++echo "${ECHO_T}$libgcc_cv_copysignl_lib" >&6 ++ ++case /${libgcc_cv_copysignl_lib}/ in ++ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;; ++ *) LIBGCC_LIBM= ;; ++esac ++ ++ + # Conditionalize the makefile for this target machine. + tmake_file_= + for f in ${tmake_file} +@@ -4267,6 +4300,7 @@ + s,@fixed_point@,$fixed_point,;t t + s,@vis_hide@,$vis_hide,;t t + s,@set_have_cc_tls@,$set_have_cc_tls,;t t ++s,@LIBGCC_LIBM@,$LIBGCC_LIBM,;t t + s,@tmake_file@,$tmake_file,;t t + s,@extra_parts@,$extra_parts,;t t + s,@asm_hidden_op@,$asm_hidden_op,;t t +diff -durN gcc-4.4.4.orig/libgcc/configure.ac gcc-4.4.4/libgcc/configure.ac +--- gcc-4.4.4.orig/libgcc/configure.ac 2008-11-20 18:13:01.000000000 +0100 ++++ gcc-4.4.4/libgcc/configure.ac 2010-05-16 19:38:36.000000000 +0200 +@@ -223,6 +223,27 @@ + fi + AC_SUBST(set_have_cc_tls) + ++# On powerpc libgcc_s references copysignl which is a libm function but ++# glibc apparently also provides it via libc as opposed to uClibc where ++# it lives in libm. ++AC_CACHE_CHECK ++ libgcc_cv_copysignl_lib, ++ echo '#include <features.h>' > conftest.c ++ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c ++ libgcc_cv_copysignl_lib="-lc" ++ if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD) ++ then ++ libgcc_cv_copysignl_lib="-lm" ++ fi ++ rm -f conftest.* ++ ]) ++ ++case /${libgcc_cv_copysignl_lib}/ in ++ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;; ++ *) LIBGCC_LIBM= ;; ++esac ++AC_SUBST(LIBGCC_LIBM) ++ + # Conditionalize the makefile for this target machine. + tmake_file_= + for f in ${tmake_file} diff --git a/toolchain/kernel-headers/Config.in b/toolchain/kernel-headers/Config.in index fea3ee4ff..e60595fc3 100644 --- a/toolchain/kernel-headers/Config.in +++ b/toolchain/kernel-headers/Config.in @@ -61,13 +61,13 @@ config BR2_DEFAULT_KERNEL_VERSION config BR2_DEFAULT_KERNEL_HEADERS string - default "2.6.27.47" if BR2_KERNEL_HEADERS_2_6_27 + default "2.6.27.50" if BR2_KERNEL_HEADERS_2_6_27 default "2.6.28.10" if BR2_KERNEL_HEADERS_2_6_28 default "2.6.29.6" if BR2_KERNEL_HEADERS_2_6_29 default "2.6.30.10" if BR2_KERNEL_HEADERS_2_6_30 default "2.6.31.14" if BR2_KERNEL_HEADERS_2_6_31 - default "2.6.32.16" if BR2_KERNEL_HEADERS_2_6_32 - default "2.6.33.6" if BR2_KERNEL_HEADERS_2_6_33 - default "2.6.34.1" if BR2_KERNEL_HEADERS_2_6_34 + default "2.6.32.18" if BR2_KERNEL_HEADERS_2_6_32 + default "2.6.33.7" if BR2_KERNEL_HEADERS_2_6_33 + default "2.6.34.3" if BR2_KERNEL_HEADERS_2_6_34 default "2.6" if BR2_KERNEL_HEADERS_SNAP default $BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION diff --git a/toolchain/kernel-headers/linux-2.6.32.16-scsi-use-__uX-types-for-headers-exported-to-user-space.patch b/toolchain/kernel-headers/linux-2.6.32.18-scsi-use-__uX-types-for-headers-exported-to-user-space.patch index 2fc6176e8..2fc6176e8 100644 --- a/toolchain/kernel-headers/linux-2.6.32.16-scsi-use-__uX-types-for-headers-exported-to-user-space.patch +++ b/toolchain/kernel-headers/linux-2.6.32.18-scsi-use-__uX-types-for-headers-exported-to-user-space.patch diff --git a/toolchain/kernel-headers/linux-2.6.33.6-scsi-use-__uX-types-for-headers-exported-to-user-space.patch b/toolchain/kernel-headers/linux-2.6.33.7-scsi-use-__uX-types-for-headers-exported-to-user-space.patch index 1089c7106..1089c7106 100644 --- a/toolchain/kernel-headers/linux-2.6.33.6-scsi-use-__uX-types-for-headers-exported-to-user-space.patch +++ b/toolchain/kernel-headers/linux-2.6.33.7-scsi-use-__uX-types-for-headers-exported-to-user-space.patch diff --git a/toolchain/kernel-headers/linux-2.6.34.1-scsi-use-__uX-types-for-headers-exported-to-user-space.patch b/toolchain/kernel-headers/linux-2.6.34.3-scsi-use-__uX-types-for-headers-exported-to-user-space.patch index 1089c7106..1089c7106 100644 --- a/toolchain/kernel-headers/linux-2.6.34.1-scsi-use-__uX-types-for-headers-exported-to-user-space.patch +++ b/toolchain/kernel-headers/linux-2.6.34.3-scsi-use-__uX-types-for-headers-exported-to-user-space.patch diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in index 3c70f9c77..ea06acefa 100644 --- a/toolchain/toolchain-common.in +++ b/toolchain/toolchain-common.in @@ -157,7 +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) + depends on !(! BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE && 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. @@ -165,8 +165,8 @@ 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 +comment "C++ support broken in uClibc 0.9.31 with locale enabled with gcc 4.2" + depends on !BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE && BR2_ENABLE_LOCALE && BR2_UCLIBC_VERSION_0_9_31 config BR2_TARGET_OPTIMIZATION string "Target Optimizations" diff --git a/toolchain/uClibc/uClibc-0.9.30.3-fix-error-locale-utf-8.patch b/toolchain/uClibc/uClibc-0.9.30.3-fix-error-locale-utf-8.patch new file mode 100644 index 000000000..2fe6c508c --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-fix-error-locale-utf-8.patch @@ -0,0 +1,17 @@ +--- + extra/locale/gen_wc8bit.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: uClibc-0.9.30.3/extra/locale/gen_wc8bit.c +=================================================================== +--- uClibc-0.9.30.3.orig/extra/locale/gen_wc8bit.c ++++ uClibc-0.9.30.3/extra/locale/gen_wc8bit.c +@@ -119,7 +119,7 @@ + } + + locale_failure: +- printf("could not find a UTF8 locale ... please enable en_US.UTF-8\n"); ++ fprintf(stderr, "could not find a UTF8 locale ... please enable en_US.UTF-8\n"); + return EXIT_FAILURE; + locale_success: + pclose(fp); diff --git a/toolchain/uClibc/uClibc-0.9.31-fix-error-locale-utf-8.patch b/toolchain/uClibc/uClibc-0.9.31-fix-error-locale-utf-8.patch new file mode 100644 index 000000000..1305add50 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.31-fix-error-locale-utf-8.patch @@ -0,0 +1,17 @@ +--- + extra/locale/gen_wc8bit.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: uClibc-0.9.31/extra/locale/gen_wc8bit.c +=================================================================== +--- uClibc-0.9.31.orig/extra/locale/gen_wc8bit.c ++++ uClibc-0.9.31/extra/locale/gen_wc8bit.c +@@ -120,7 +120,7 @@ + } + + locale_failure: +- printf("could not find a UTF8 locale ... please enable en_US.UTF-8\n"); ++ fprintf(stderr, "could not find a UTF8 locale ... please enable en_US.UTF-8\n"); + return EXIT_FAILURE; + locale_success: + pclose(fp); |