Discussion:
[Mingw-cross-env-list] PKG_PROG_PKG_CONFIG(0.16) not recognized?
Scott Douglass
2018-03-29 08:29:23 UTC
Permalink
Hi,


I'm getting an error building mxe-conf (the second time, for x86_64-pc-linux-gnu?) that looks like autoconf is not recognizing PKG_PROG_PKG_CONFIG(0.16) (whole log below)

./configure: line 1787: syntax error near unexpected token `0.16'

./configure: line 1787: `PKG_PROG_PKG_CONFIG(0.16)'


I've checked that I'm using autoconf 2.69 which is new enough according to http://mxe.cc/#requirements


I'm using a clean clone of 90bec5d.


Any ideas what I'm doing wrong or how I can approach debugging this? Thanks.


[The question I'm really trying to get to is "How do I build an x86_64-w64-mingw32.static gcc that has a working -fprofile-generate/libgcov?". I figured I'd start by getting a clean build from a fresh clone, but I ran into this problem first.]


top level output:

____

+ make clean

rm -rf /w/sdouglas/mxe-master/tmp-* /w/sdouglas/mxe-master/usr \

./*-*.list ./mxe-*.tar.xz ./mxe-*.deb* ./wheezy ./jessie

+ make MXE_TARGETS=x86_64-w64-mingw32.static binutils gcc gcc_CONFIGURE_OPTS=--enable-languages=c,c++

[check reqs]

[nonet lib] /w/sdouglas/mxe-master/usr/x86_64-pc-linux-gnu/lib/nonetwork.so

[git-log] 90bec5d Update packages.json & build-matrix.html

[build] mxe-conf x86_64-w64-mingw32.static

[done] mxe-conf x86_64-w64-mingw32.static 12 KiB 0m2.877s

[build] binutils x86_64-w64-mingw32.static

[done] binutils x86_64-w64-mingw32.static 503212 KiB 0m52.573s

[build] mingw-w64 x86_64-w64-mingw32.static

[done] mingw-w64 x86_64-w64-mingw32.static 16 KiB 0m2.889s

[build] mxe-conf x86_64-pc-linux-gnu


Failed to build package mxe-conf for target x86_64-pc-linux-gnu!

------------------------------------------------------------

checking for automake... /arm/tools/gnu/automake/1.15/rhe6-x86_64/bin/automake

checking for libtool... /usr/bin/libtool

./configure: line 1787: syntax error near unexpected token `0.16'

./configure: line 1787: `PKG_PROG_PKG_CONFIG(0.16)'

make[1]: *** [build-only-mxe-conf_x86_64-pc-linux-gnu] Error 2

make[1]: Leaving directory `/w/sdouglas/mxe-master'

real 0m4.624s

user 0m3.168s

sys 0m0.164s

------------------------------------------------------------

[log] /w/sdouglas/mxe-master/log/mxe-conf_x86_64-pc-linux-gnu


make: *** [/w/sdouglas/mxe-master/usr/x86_64-pc-linux-gnu/installed/mxe-conf] Error 1

____



/w/sdouglas/mxe-master/log/mxe-conf_x86_64-pc-linux-gnu:

____

make[1]: Entering directory `/w/sdouglas/mxe-master'

uname -a

Linux us-bos-dev16 2.6.32-504.12.2.el6.x86_64 #1 SMP Wed Mar 11 22:03:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

git log --pretty=tformat:"%H - %s [%ar] [%d]" -1

90bec5d3c3ac784b32fa4b9c6b4e5d837c1d84f2 - Update packages.json & build-matrix.html [32 hours ago] [ (HEAD -> master, origin/master, origin/HEAD)]

lsb_release -a 2>/dev/null || sw_vers 2>/dev/null || true

LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch

Distributor ID: CentOS

Description: CentOS release 6.6 (Final)

Release: 6.6

Codename: Final

autoconf --version 2>/dev/null | head -1

autoconf (GNU Autoconf) 2.69

automake --version 2>/dev/null | head -1

automake (GNU automake) 1.15

gcc --version

gcc (GCC) 7.3.0

Copyright (C) 2017 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


g++ --version

g++ (GCC) 7.3.0

Copyright (C) 2017 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


python --version

Python 2.6.6

perl --version 2>&1 | head -3


This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux


rm -rf '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu'

mkdir -p '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu'

mkdir -p '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/'

mkdir -p '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/.build_'

# disable wine with readonly directory

# see https://github.com/mxe/mxe/issues/841

mkdir -p '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/readonly'

chmod 0555 '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/readonly'

# install config.guess for general use

mkdir -p '/w/sdouglas/mxe-master/usr/bin'

install -m755 './ext/config.guess' '/w/sdouglas/mxe-master/usr/bin/'

# fail early if autotools can't autoreconf

# 1. detect mismatches in installation locations

# 2. ???

(echo 'AC_INIT([mxe.cc], [1])'; echo 'AC_PATH_PROG([AUTOCONF], [autoconf])'; echo 'AC_PATH_PROG([AUTOMAKE], [automake])';\

echo 'AC_PATH_PROG([LIBTOOL], [libtool])'; echo 'PKG_PROG_PKG_CONFIG(0.16)'; echo 'AC_OUTPUT') > '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu//configure.ac'

cd '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/' && autoreconf -fiv

autoreconf: Entering directory `.'

autoreconf: configure.ac: not using Gettext

autoreconf: running: aclocal --force

autoreconf: configure.ac: tracing

autoreconf: configure.ac: not using Libtool

autoreconf: running: /arm/tools/gnu/autoconf/2.69/rhe6-x86_64/bin/autoconf --force

autoreconf: configure.ac: not using Autoheader

autoreconf: configure.ac: not using Automake

autoreconf: Leaving directory `.'

cd '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/' && ./configure

checking for autoconf... /arm/tools/gnu/autoconf/2.69/rhe6-x86_64/bin/autoconf

checking for automake... /arm/tools/gnu/automake/1.15/rhe6-x86_64/bin/automake

checking for libtool... /usr/bin/libtool

./configure: line 1787: syntax error near unexpected token `0.16'

./configure: line 1787: `PKG_PROG_PKG_CONFIG(0.16)'

make[1]: *** [build-only-mxe-conf_x86_64-pc-linux-gnu] Error 2

make[1]: Leaving directory `/w/sdouglas/mxe-master'

____

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Tony Theodore
2018-03-30 06:06:48 UTC
Permalink
Hi Scott,

> On 29 Mar 2018, at 19:29, Scott Douglass <***@arm.com> wrote:
>
> I've checked that I'm using autoconf 2.69 which is new enough according to http://mxe.cc/#requirements
>
> I'm using a clean clone of 90bec5d.
>
> Any ideas what I'm doing wrong or how I can approach debugging this? Thanks.

It’s a deliberate early fail if your autotools/libtool/pkgconf aren’t working together. It’s not
sufficient to test for versions, they have to be installed in the same paths using the same *.m4
files etc.

This isn’t required for gcc so I’ve moved the test to the autotools package:
https://github.com/mxe/mxe/commit/e9b65d556af7d737433ba3732d2a734c27de63ac

Cheers,

Tony

P.S. from the log:

> # fail early if autotools can't autoreconf
> # 1. detect mismatches in installation locations
> # 2. ???
> (echo 'AC_INIT([mxe.cc], [1])'; echo 'AC_PATH_PROG([AUTOCONF], [autoconf])'; echo 'AC_PATH_PROG([AUTOMAKE], [automake])';\
> echo 'AC_PATH_PROG([LIBTOOL], [libtool])'; echo 'PKG_PROG_PKG_CONFIG(0.16)'; echo 'AC_OUTPUT') > '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu//configure.ac'
> cd '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/' && autoreconf -fiv
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: not using Libtool
> autoreconf: running: /arm/tools/gnu/autoconf/2.69/rhe6-x86_64/bin/autoconf --force
> autoreconf: configure.ac: not using Autoheader
> autoreconf: configure.ac: not using Automake
> autoreconf: Leaving directory `.'
> cd '/w/sdouglas/mxe-master/tmp-mxe-conf-x86_64-pc-linux-gnu/' && ./configure
> checking for autoconf... /arm/tools/gnu/autoconf/2.69/rhe6-x86_64/bin/autoconf
> checking for automake... /arm/tools/gnu/automake/1.15/rhe6-x86_64/bin/automake
> checking for libtool... /usr/bin/libtool
> ./configure: line 1787: syntax error near unexpected token `0.16'
> ./configure: line 1787: `PKG_PROG_PKG_CONFIG(0.16)'
> make[1]: *** [build-only-mxe-conf_x86_64-pc-linux-gnu] Error 2
> make[1]: Leaving directory `/w/sdouglas/mxe-master’

You’d need to either install libtool/pkgconf in /arm/tools/gnu or remove the auto* tools from there.
You could try:

make autotools MXE_PLUGIN_DIRS=plugins/native

to build a set of tools that we automatically use on outdated systems (e.g. Debian Wheezy). In general,
you’re better off getting you normal setup working.
Scott Douglass
2018-04-03 13:30:22 UTC
Permalink
>>

It’s a deliberate early fail if your autotools/libtool/pkgconf aren’t working together. It’s not
sufficient to test for versions, they have to be installed in the same paths using the same *.m4
files etc.

This isn’t required for gcc so I’ve moved the test to the autotools package:
https://github.com/mxe/mxe/commit/e9b65d556af7d737433ba3732d2a734c27de63ac
<<

Thanks very much. That's working for me and I'll return to my original problem in a new thread.

>>
You’d need to either install libtool/pkgconf in /arm/tools/gnu or remove the auto* tools from there.
<<

Just to report: I've checked and removing those auto{conf,make} from my PATH does allow 'make autotools' to succeed (even though it's now picking up system versions that are too old according to http://mxe.cc/#requirements (on a CentOS 6.6 box)). Anyway, I don't need to pursue auto tools/libtool/pkgconf.

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Loading...