[Buildroot] Building without multibute is pain

Ivan Kuten ivan.kuten at promwad.com
Fri Jan 18 14:18:36 UTC 2008


Hi Andrey,


The similar problem was discussed here http://busybox.net/bugs/view.php?id=1546

Regards,
Ivan


Andrey Kovalev wrote:
> Hi all,
> 
> I use snapshot buildroot-20080117.tar.bz2. I've made only two changes to
> default configuration:
> - check "Target options / Generic development system"
> - set "Kernel type" to (none).
> 
> 
> 1. Then I run make, and it stopped with folowing messages:
> 
> ===
> make[3]: Entering directory
> `/uc3/26v2/buildroot/build_i386/coreutils-6.9/lib'
> 
> /uc3/26v2/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-gcc
> -Os -pipe  -I/uc3/26v2/buildroot/build_i386/staging_dir/usr/include
> -I/uc3/26v2/buildroot/build_i386/staging_dir/include
> --sysroot=/uc3/26v2/buildroot/build_i386/staging_dir/ -isysroot
> /uc3/26v2/buildroot/build_i386/staging_dir -mtune=i386 -march=i386  -I.
>      -g -O2 -c mbchar.c
> In file included from mbchar.h:157,
> 
>                   from mbchar.c:22:
> 
> ./wchar.h:41:12: error: empty filename in #include
> 
> In file included from mbchar.c:22:
> 
> mbchar.h:242: error: expected ')' before 'wc'
> 
> make[3]: *** [mbchar.o] Error 1
> 
> make[3]: Leaving directory
> `/uc3/26v2/buildroot/build_i386/coreutils-6.9/lib'
> 
> ===
> 
> Really, lines 40-41 in file build_i386/coreutils-6.9/lib/wchar.h are:
> /* Include the original <wchar.h>.  */
> #include ""
> The same error apears in findutils-4.2.31.
> 
> 
> 2. After removing line 41, next error appears:
> 
> ===
> In file included from mbchar.c:23:
> mbchar.h:242: error: expected ')' before 'wc'
> ===
> 
> Workaround: file build_i386/coreutils-6.9/lib/mbchar.h line 242
> -mb_width_aux (wint_t wc)
> +mb_width_aux (int wc)
> 
> The same error apears in findutils-4.2.31 and tar-1.18.
> 
> 
> 3. Next error:
> 
> ===
> In file included from regex.c:62:
> regcomp.c: In function 'init_dfa':
> regcomp.c:867: error: 'MB_CUR_MAX' undeclared (first use in this function)
> regcomp.c:867: error: (Each undeclared identifier is reported only once
> regcomp.c:867: error: for each function it appears in.)
> make[3]: *** [regex.o] Error 1
> ===
> 
> Workaround: file build_i386/coreutils-6.9/lib/regcomp.c line 867
> -dfa->mb_cur_max = MB_CUR_MAX;
> +dfa->mb_cur_max = 1;
> The same error apears in tar-1.18.
> 
> 
> 4. Next:
> 
> ===
> if
> /uc3/26v2/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-gcc
> -DDEFPATH="\".:/usr/share/awk\"" -DHAVE_CON FIG_H -DGAWK
> -DLOCALEDIR="\"/usr/share/locale\"" -I. -I. -I.     -g -O2 -MT regex.o
> -MD -MP -MF ".deps/regex.Tpo" -c -o
>   regex.o regex.c; \
> 
>          then mv -f ".deps/regex.Tpo" ".deps/regex.Po"; else rm -f
> ".deps/regex.Tpo"; exit 1; fi
> In file included from regex.c:67:
> 
> regex_internal.h:744: error: expected specifier-qualifier-list before
> 'wchar_t'
> ===
> 
> Workaround: file build_i386/gawk-3.1.5/regex_internal.h line 744
> -wchar_t wch;
> +unsigned int wch;
> 
> 
> 5. Next:
> 
> ===
> /uc3/26v2/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-gcc
> -Os -pipe  -I/uc3/26v2/buildroot/build_i386/staging_dir/usr/include
> -I/uc3/26v2/buildroot/build_i386/staging_dir/include
> --sysroot=/uc3/26v2/buildroot/build_i386/staging_dir/ -isysroot
> /uc3/26v2/buildroot/build_i386/staging_dir -mtune=i386 -march=i386  -g
> -O2   -o grep  grep.o dfa.o
> kwset.o search.o grepmat.o ../lib/libgreputils.a
> 
> dfa.o: In function `xmalloc':
> 
> /uc3/26v2/buildroot/build_i386/grep-2.5.1/src/dfa.c:147: undefined
> reference to `libintl_gettext'
> ===
> 
> Workaround: file build_i386/grep-2.5.1/config.h line 116:
> -#define HAVE_LIBINTL_H 1
> 
> 
> 6. Next:
> 
> ===
> /uc3/26v2/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-gcc
> -Os -pipe  -I/uc3/26v2/buildroot/build_i386/staging_dir/usr/include
> -I/uc3/26v2/buildroot/build_i386/staging_dir/include
> --sysroot=/uc3/26v2/buildroot/build_i386/staging_dir/ -isysroot
> /uc3/26v2/buildroot/build_i386/staging_dir -mtune=i386 -march=i386 -c
> -D_GNU_SOURCE -I proc -fno-common -ffast-math -W -Wall -Wshadow
> -Wcast-align -Wredundant-decls -Wbad-function-cast -Wcast-qual
> -Wwrite-strings -Waggregate-return -Wstrict-prototypes
> -Wmissing-prototypes   -Wdeclaration-after-statement -Wpadded
> -Wstrict-aliasing -fweb -frename-registers -fomit-frame-pointer
> -fno-inline-functions -DSHARED=1 -fpic proc/escape.c -o proc/escape.o
> 
> proc/escape.c:19:20: error: wchar.h: No such file or directory
> 
> proc/escape.c:20:21: error: wctype.h: No such file or directory
> 
> proc/escape.c: In function 'escape_str_utf8':
> 
> proc/escape.c:30: error: 'mbstate_t' undeclared (first use in this
> function)
> ...more errors...
> ===
> 
> Workaround: file build_i386/procps-3.2.5/proc/escape.c line 18
> +#undef __GNU_LIBRARY__
> +#define __GNU_LIBRARY__ 1
> 
> 
> 7. Next:
> 
> ===
> if
> /uc3/26v2/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-gcc
> -DHAVE_CONFIG_H -I. -I. -I..  -I../lib -I../intl -I.. -I../lib -I../intl
> -g -O2 -MT regex.o -MD -MP -MF ".deps/regex.Tpo" -c -o regex.o regex.c;
> \
>          then mv -f ".deps/regex.Tpo" ".deps/regex.Po"; else rm -f
> ".deps/regex.Tpo"; exit 1; fi
> In file included from regex.c:62:
> 
> regex_internal.h:677: error: expected specifier-qualifier-list before
> 'wchar_t'
> In file included from regex.c:65:
> 
> regcomp.c: In function 'init_dfa':
> 
> regcomp.c:836: error: 'MB_CUR_MAX' undeclared (first use in this
> function)
> ===
> 
> Workaround1: file build_i386/sed-4.1.5/lib/regex_internal.h line 677
> -wchar_t wch;
> +unsigned int wch;
> 
> Workaround2: file build_i386/sed-4.1.5/lib/regcomp.c line 836
> -dfa->mb_cur_max = MB_CUR_MAX;
> +dfa->mb_cur_max = 1;
> 
> 
> 
> 
> 
> YEAH! Finished. Then I try to enter into buildroot and to build uclibc
> again (it's just simple test to see the problem):
> 
> cp dl/uClibc-0.9.29.tar.bz2 project_build_i386/uclibc/root/tmp
> chroot project_build_i386/uclibc/root /bin/su -
> cd /tmp
> tar -xjf uClibc-0.9.29.tar.bz2 (this tar is running inside buildroot)
> cd uClibc-0.9.29
> make clean
> 
> And I receive:
> 
> ===
> [root at compiler uClibc-0.9.29]# make clean
> grep: memory exhausted
> 
> grep: memory exhausted
> 
> rm -f lib*/*.a ldso/*/*.a libpthread/*/*.a
> 
> rm -f include/fpu_control.h include/dl-osinfo.h include/hp-timing.h
> 
> make -C extra/locale locale_clean
> 
> grep: memory exhausted
> 
> grep: memory exhausted
> 
> rm -f ../../extra/locale/gen_collate ../../extra/locale/gen_wc8bit
> ../../extra/locale/gen_wctype ../../extra/locale/loc
> ale_data.c ../../extra/locale/{*.{o,os,txt},gen_locale,gen_ldc}
> 
> rm -f
> ../../extra/locale/{uClibc_locale_data,lt_defines,c8tables,wctables,locale_tables,locale_collate}.h 
> 
> 
> rm -f ../../extra/locale/{lmmtolso,gen_mmap,locale.mmap}
> 
> make[1]: *** [locale_clean] Segmentation fault
> 
> make: *** [clean] Error 2
> ===
> 
> 
> Please, help me.
> 
> 
> 



More information about the buildroot mailing list