All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Stewart <christian@paral.in>
To: buildroot@busybox.net
Subject: [Buildroot] build failure against libintl on alpine
Date: Tue, 26 Dec 2017 20:46:11 -0800	[thread overview]
Message-ID: <871sjgg4mk.fsf@paral.in> (raw)


Hi all,

Here with another build error today, this time against Alpine linux.

Building under an Alpine container with the following world set:

  alpine-baselayout
  alpine-keys
  alpine-sdk
  apk-tools
  bash
  bc
  busybox
  curl
  file
  gettext
  libc-utils
  libintl
  libtool
  make
  musl-dev
  ncurses
  patch
  perl
  python
  rsync
  wget

I get the following error attempting to build:

  libtool: link: /usr/bin/gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=26214
  4 -I./../zlib -O2 -I/home/buildroot/output/host/include -static-libstdc++ -static-libgcc -
  Wl,-rpath -Wl,/home/buildroot/output/host/lib -o bfdtest2 bfdtest2.o /home/buildroot/skiff
  /buildroot/output/host/lib/libintl.so -Wl,-rpath -Wl,/home/buildroot/output/host/lib  -L/h
  ome/buildroot/skiff/buildroot/output/host/lib ../bfd/.libs/libbfd.a -L/home/buildroot/outp
  ut/build/host-binutils-2.27/zlib -lz ../libiberty/libiberty.a                                            
  ../bfd/.libs/libbfd.a(elflink.o): In function `undefined_reference':
  elflink.c:(.text+0x450): undefined reference to `libintl_dgettext'
  ../bfd/.libs/libbfd.a(elflink.o): In function `init_reloc_cookie':
  elflink.c:(.text+0x580): undefined reference to `libintl_dgettext'
  ../bfd/.libs/libbfd.a(elflink.o): In function `elf_link_read_relocs_from_section.part.17':
  elflink.c:(.text+0x18ca): undefined reference to `libintl_dgettext'
  elflink.c:(.text+0x197e): undefined reference to `libintl_dgettext'
  ../bfd/.libs/libbfd.a(elflink.o): In function `check_dynsym.isra.18.part.19':
  elflink.c:(.text+0x19d4): undefined reference to `libintl_dgettext'
  ../bfd/.libs/libbfd.a(elflink.o):elflink.c:(.text+0x1ca5): more undefined references to `libintl_dgettext'
  follow                                                                                                  

A reproduction in Docker is possible with the following Dockerfile:

FROM alpine:edge
RUN apk --update upgrade
RUN apk add make git bash ncurses gcc wget curl \
    musl-dev file g++ perl python rsync bc patch \
    libintl libtool alpine-sdk gettext
RUN adduser -D -u 1000 -g 1001 buildroot && \
    mkdir -p /home/buildroot && chown buildroot:buildroot /home/buildroot
USER buildroot
WORKDIR /home/buildroot

Then:

cd buildroot/
docker build -t "buildroot:latest" .
docker run -v $(pwd):/home/buildroot/ --rm -it buildroot:latest sh
$ make clean
$ make defconfig BR2_DEFCONFIG=configs/raspberrypi3_defconfig
$ make

I would assume this is some incompatibility when trying to link against
the latest versions of libintl or gettext or so.

In addition to my own config, I attempted the uclibc-based pi 3
defconfig:

$ make clean
$ make defconfig BR2_DEFCONFIG=configs/raspberrypi3_defconfig
$ make

Result:

make[1]: Entering directory '/home/buildroot/output/build/uclibc-1.0.26/utils'
  HOSTCC utils/getconf.host
  HOSTCC utils/ldconfig.host
  HOSTCC utils/ldd.host
../utils/getconf.c:439:29: error: '_SC_CHARCLASS_NAME_MAX' undeclared here (not in a function)
     { "CHARCLASS_NAME_MAX", _SC_CHARCLASS_NAME_MAX, SYSCONF },
                             ^~~~~~~~~~~~~~~~~~~~~~
../utils/getconf.c: In function 'print_all':
../utils/getconf.c:1092:24: error: '_SC_UINT_MAX' undeclared (first use in this function)
    if (c->call_name == _SC_UINT_MAX
                        ^~~~~~~~~~~~
../utils/getconf.c:1092:24: note: each undeclared identifier is reported only once for each function it appears in
../utils/getconf.c:1092:21: warning: comparison between pointer and integer
    if (c->call_name == _SC_UINT_MAX
                     ^~
../utils/getconf.c:1093:25: error: '_SC_ULONG_MAX' undeclared (first use in this function)
      || c->call_name == _SC_ULONG_MAX)
                         ^~~~~~~~~~~~~
../utils/getconf.c:1093:22: warning: comparison between pointer and integer
      || c->call_name == _SC_ULONG_MAX)
                      ^~
../utils/getconf.c: In function 'main':
../utils/getconf.c:1306:23: error: '_SC_UINT_MAX' undeclared (first use in this function)
   if (c->call_name == _SC_UINT_MAX
                       ^~~~~~~~~~~~
../utils/getconf.c:1306:20: warning: comparison between pointer and integer
   if (c->call_name == _SC_UINT_MAX
                    ^~
../utils/getconf.c:1307:26: error: '_SC_ULONG_MAX' undeclared (first use in this function)
       || c->call_name == _SC_ULONG_MAX)
                          ^~~~~~~~~~~~~
../utils/getconf.c:1307:23: warning: comparison between pointer and integer
       || c->call_name == _SC_ULONG_MAX)
                       ^~
../utils/ldd.c: In function 'elf_find_dynamic':
../utils/ldd.c:233:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     return (void *)byteswap_to_host(dynp->d_un.d_val);
            ^
make[1]: *** [Makefile.in:114: ../utils/getconf.host] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/buildroot/output/build/uclibc-1.0.26/utils'

Best,
Christian

             reply	other threads:[~2017-12-27  4:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-27  4:46 Christian Stewart [this message]
2017-12-27  8:34 ` [Buildroot] build failure against libintl on alpine Waldemar Brodkorb
2017-12-27 13:55 ` Stefan Fröberg
2017-12-27 14:07   ` Stefan Fröberg
2017-12-27 20:03   ` Christian Stewart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871sjgg4mk.fsf@paral.in \
    --to=christian@paral.in \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.