Skip to contentSkip to conversation

Error while build grep when BR2_PACKAGE_LIBINTL is not set

Buildroot Claus Klein 1 participant 2 messages Jan 1, 2008

lore
Share & tools
lore
#0 lore raw

Hi all,

I get some Errors when compiling grep with current svn buildroot version. My config is without LIBINTL, but configure think all is ok:

root at slax:/buildroot/build_i386/grep-2.5.1# head config.log This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.53. Invocation command line was

  $ ./configure --target=i386-linux --host=i386-linux 
--build=i386-pc-linux-gnu --prefix=/usr --exec-prefix=/usr 
--bindir=/usr/bin --sbindir=/usr/sbin --libdir=/lib 
--libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share 
--localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls 
--disable-largefile --disable-perl-regexp --without-included-regex

## --------- ##
. . .
configure:4276: checking libintl.h presence
configure:4283:
/mnt/hda1/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-cpp -Os -pipe -I/ mnt/hda1/buildroot/build_i386/staging_dir/usr/include -I/mnt/hda1/buildroot/build_i386/staging_dir/incl
ude --sysroot=/mnt/hda1/buildroot/build_i386/staging_dir/ -isysroot /mnt/hda1/buildroot/build_i386/stag
ing_dir -mtune=i386 -march=i386 conftest.c
configure:4289: $? = 0
configure:4307: result: yes
configure:4325: checking for libintl.h
configure:4332: result: yes
. . .
#define HAVE_LIBINTL_H 1

But this should not be defined!

My question now: Is this a problem of the uclibc header or a problem of the grep package?
When I #undef HAVE_LIBINTL_H in config.h, it works fine.

my toolchain:
root at slax:/buildroot/toolchain_build_i386# dir
autoconf-2.61/ ccache-2.4/ gdb-6.6/
linux-2.6.21.5/ uClibc-0.9.29/
automake-1.10/ file-4.21-host/ gmp/
module-init-tools-3.2.2/ uClibc_dev/

bin/                  gcc-4.2.1/          gmp-4.2.2/       mpfr/
binutils-2.18/        gcc-4.2.1-final/    gmp-4.2.2-host/  mpfr-2.3.0/
binutils-2.18-build/  gcc-4.2.1-initial/  linux/           mpfr-2.3.0-host/

root at slax:/buildroot/toolchain_build_i386#

claus

/mnt/hda1/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-gcc -Os -pipe -I/mnt/hda1/buildroot/build_i386/staging_dir/usr/include -I/mnt/hda1/buildroot/build_i386/staging_dir/include --sysroot=/mnt/hda1/buildroot/build_i386/staging_dir/ -isysroot /mnt/hda1/buildroot/build_i386/staging_dir -mtune=i386 -march=i386 -DHAVE_CONFIG_H -I. -I. -I.. -I../intl -I../lib
-DLOCALEDIR=\"/usr/share/locale\" -g -O2 -c `test -f grepmat.c ||
echo './'`grepmat.c /mnt/hda1/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-gcc -Os -pipe -I/mnt/hda1/buildroot/build_i386/staging_dir/usr/include -I/mnt/hda1/buildroot/build_i386/staging_dir/include --sysroot=/mnt/hda1/buildroot/build_i386/staging_dir/ -isysroot /mnt/hda1/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':
/mnt/hda1/buildroot/build_i386/grep-2.5.1/src/dfa.c:147: undefined reference to `libintl_gettext'
dfa.o: In function `xrealloc':
/mnt/hda1/buildroot/build_i386/grep-2.5.1/src/dfa.c:158: undefined reference to `libintl_gettext'
dfa.o: In function `xcalloc':
/mnt/hda1/buildroot/build_i386/grep-2.5.1/src/dfa.c:136: undefined reference to `libintl_gettext'
dfa.o: In function `parse_bracket_exp_mb':
/mnt/hda1/buildroot/build_i386/grep-2.5.1/src/dfa.c:489: undefined reference to libintl_gettext' /mnt/hda1/buildroot/build_i386/grep-2.5.1/src/dfa.c:604: undefined reference to libintl_gettext' dfa.o:/mnt/hda1/buildroot/build_i386/grep-2.5.1/src/dfa.c:545: more undefined references to `libintl_gettext' follow
collect2: ld returned 1 exit status
make[3]: *** [grep] Error 1
make[3]: Leaving directory `/mnt/hda1/buildroot/build_i386/grep-2.5.1/src' make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/mnt/hda1/buildroot/build_i386/grep-2.5.1' make[1]: *** [all] Error 2
make[1]: Leaving directory `/mnt/hda1/buildroot/build_i386/grep-2.5.1'
make: *** [/mnt/hda1/buildroot/build_i386/grep-2.5.1/src/grep] Error 2 root at slax:/buildroot#

#1 lore raw
Quoted 37 lines · Claus Klein

Hi all,

I get some Errors when compiling grep with current svn buildroot version. My config is without LIBINTL, but configure think all is ok:

root at slax:/buildroot/build_i386/grep-2.5.1# head config.log This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.53. Invocation command line was

  $ ./configure --target=i386-linux --host=i386-linux 
--build=i386-pc-linux-gnu --prefix=/usr --exec-prefix=/usr 
--bindir=/usr/bin --sbindir=/usr/sbin --libdir=/lib 
--libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share 
--localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls 
--disable-largefile --disable-perl-regexp --without-included-regex

## --------- ##
. . .
configure:4276: checking libintl.h presence
configure:4283:
/mnt/hda1/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-cpp -Os -pipe -I/ mnt/hda1/buildroot/build_i386/staging_dir/usr/include -I/mnt/hda1/buildroot/build_i386/staging_dir/incl
ude --sysroot=/mnt/hda1/buildroot/build_i386/staging_dir/ -isysroot /mnt/hda1/buildroot/build_i386/stag
ing_dir -mtune=i386 -march=i386 conftest.c
configure:4289: $? = 0
configure:4307: result: yes
configure:4325: checking for libintl.h
configure:4332: result: yes
. . .
#define HAVE_LIBINTL_H 1

Quoted 6 lines

But this should not be defined!

My question now: Is this a problem of the uclibc header or a problem of the grep package?
When I #undef HAVE_LIBINTL_H in config.h, it works fine.

PS: As a quickfix, this solve my problem:
ck

svn diff package/grep/

grep/grep.mk (working copy) renamed from grep/grep.mk (revision 20696) +2 -0
Index: package/grep/grep.mk
===================================================================
@@ -48,6 +48,9 @@
                --disable-perl-regexp \
                --without-included-regex \
        )
+ifeq ($(BR2_ENABLE_LOCALE),)
+       sed -i.bak 's/#define HAVE_LIBINTL_H 1/#undef HAVE_LIBINTL_H/' 

$(GNUGREP_DIR)/config.h
+endif

        touch $(GNUGREP_DIR)/.configured

$(GNUGREP_DIR)/$(GNUGREP_BINARY): $(GNUGREP_DIR)/.configured
root at slax:/buildroot#