[Buildroot] [PATCH] package/acpitool: not available for bfin

Yann E. MORIN yann.morin.1998 at free.fr
Mon Jul 18 20:23:36 UTC 2016


Thomas, All,

On 2016-07-18 21:51 +0200, Thomas Petazzoni spake thusly:
> On Mon, 18 Jul 2016 20:30:59 +0200, Yann E. MORIN wrote:
> 
> > > I have then also picked one other C++ package at random to test with
> > > this toolchain, called "bellagio". It also shows the same "configure:
> > > error: C++ compiler cannot create executables" error with the
> > > autobuilder toolchain.  
> > 
> > That's because Bellagio also checks for AC_PROG_CXX before AC_PROG_CC:
> > 
> >     https://sourceforge.net/p/omxil/omxil/ci/master/tree/configure.ac
> > 
> >     129 # Check for a working C compiler
> >     130 AC_PROG_CXX
> >     131 AC_PROG_CC
> > 
> > If you inverse the checks (i.e. AC_PROG_CC then AC_PROG_CXX) it works.
> > I also tried that with acpitool, and it indeed fixes the configure issue
> > (but then there was the build issue, at which point I bailed out).
> 
> Is having AC_PROG_CC called before AC_PROG_CXX a requirement of
> autoconf, or a bug in the toolchain?

Ok, so nothing in autoconf states that AC_PROG_CC should be before
AC_PROG_CXX.

So, I tried to autoreconf acpitool without changing the ordering. And it
still breaks at the same location, but for another reason:

    [...]
    checking host system type... bfin-buildroot-linux-uclibc
    checking whether the C++ compiler works... no
    configure: error: in `/home/ymorin/dev/buildroot/O/build/acpitool-0.5.1':
    configure: error: C++ compiler cannot create executables
    See `config.log' for more details

And config.log says:

    configure:3032: checking whether the C++ compiler works
    configure:3054: /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-g++ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.cpp  >&5
    /home/ymorin/dev/buildroot/O/host/opt/ext-toolchain/bin/../lib/gcc/bfin-buildroot-linux-uclibc/6.1.0/../../../../bfin-buildroot-linux-uclibc/bin/ld: a.out: hidden symbol `___udivsi3' in /home/ymorin/dev/buildroot/O/host/opt/ext-toolchain/bin/../lib/gcc/bfin-buildroot-linux-uclibc/6.1.0/libgcc.a(_udivsi3.o) is referenced by DSO
    /home/ymorin/dev/buildroot/O/host/opt/ext-toolchain/bin/../lib/gcc/bfin-buildroot-linux-uclibc/6.1.0/../../../../bfin-buildroot-linux-uclibc/bin/ld: final link failed: Bad value
    collect2: error: ld returned 1 exit status
    configure:3058: $? = 1
    configure:3096: result: no

So. Their configure file is borked. It was generated with autoconf 2.63,
if that is of any importance.

However, what's weird is that, if I change configure.in to call
AC_PROG_CC before AC_PROG_CXX, then I don't see this failure:

    [...]
    checking host system type... bfin-buildroot-linux-uclibc
    checking for bfin-buildroot-linux-uclibc-gcc... /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... yes
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-gcc accepts -g... yes
    checking for /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-gcc option to accept ISO C89... none needed
    checking whether /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-gcc understands -c and -o together... yes
    checking for style of include used by make... GNU
    checking dependency style of /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-gcc... none
    checking whether we are using the GNU C++ compiler... yes
    checking whether /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-g++ accepts -g... yes
    checking dependency style of /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-g++... none
    checking for dirent.h that defines DIR... yes
    checking for library containing opendir... none required
    checking how to run the C preprocessor... /home/ymorin/dev/buildroot/O/host/usr/bin/bfin-linux-cpp
    checking for grep that handles long lines and -e... /home/ymorin/bin/grep
    [...]

> > > Not sure why the autobuilders haven't ever
> > > reported this one, though.  
> > 
> > There are:
> > 
> >     http://autobuild.buildroot.org/?reason=bellagio-0.9.3
> >     http://autobuild.buildroot.org/results/e9b/e9b18697e3c519d38ea3666f69bed5cf008d772d/
> >     http://autobuild.buildroot.org/results/05f/05fa9cb522514e9e5b9e81893f145aab00abd803/
> > 
> > There's even one such failure on ARM:
> >     http://autobuild.buildroot.org/results/f6d/f6db9a9072e19d0632c8e6d64f67248e90f227ce/
> 
> I can't even find this toolchain configuration in our history of
> autobuilder toolchain configs. Maybe it predates that.
> 
> > 
> > And on ARC:
> >     http://autobuild.buildroot.org/results/203/203eb72ead23ea7930dc1a55dd54a8b3eea5c576/
> >     http://autobuild.buildroot.org/results/5d5/5d5fd738f10697985adbc6ed58e6c52ee95b8b33/
> 
> Is it reproducible on ARC ?

I'll try to rebuild it...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list