Bug 66939 - Build of pkg-config-0.28 fails 4 of 25 tests on MinGW-4.7.2/MSYS/Wine-1.6-rc4
Summary: Build of pkg-config-0.28 fails 4 of 25 tests on MinGW-4.7.2/MSYS/Wine-1.6-rc4
Status: RESOLVED MOVED
Alias: None
Product: pkg-config
Classification: Unclassified
Component: src (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Windows (All)
: medium normal
Assignee: Dan Nicholson
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-15 18:47 UTC by Alan W. Irwin
Modified: 2018-08-25 12:56 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
compressed full build and test log for my platform (13.55 KB, application/octet-stream)
2013-07-15 18:47 UTC, Alan W. Irwin
Details

Description Alan W. Irwin 2013-07-15 18:47:45 UTC
Created attachment 82458 [details]
compressed full build and test log for my platform

"configure --with-internal-glib" (with CFLAGS set to -march=native which was necessary), "make" and "make install" succeed without issues, but
"make check" gives the following excerpted results:
FAIL: check-print-options
FAIL: check-path
FAIL: check-sysroot
FAIL: check-debug
4 of 25 tests failed

Note I installed MinGW-4.7.2 and MSYS using mingw-get-inst-20120426.exe with full updates then downgraded one component to msys-core-bin=1.0.17-1 following the directions at http://sourceforge.net/p/mingw/bugs/1950.  Also I use the Wine-1.6-rc4 version of Windows that I built on Debian Wheezy. This MinGW-4.7.2/MSYS/Wine-1.6-rc4 platform has proved to be a reliable build platform for other much more complex software (e.g., wxwidgets).  Nevertheless, the unique properties of my platform could be the issue here. Furthermore, I installed MinGW and MSYS with a unique installation prefix (where the appropriate bin directories are on the PATH, but the above failing pkg-config tests may require more information than that).

Because of the platform caveats probably the first order of business should be to attempt to replicate the issue for the latest MinGW/MSYS on a Microsoft version of the Windows platform.  But if the pkg-config developers are interested in more of the details for my particular platform, I have attached a gzip compressed file containing the complete log of the build up to the test failures.
Comment 1 Dan Nicholson 2013-07-17 15:09:54 UTC
Can you try with git master? I've fixed some bugs with this setup.
Comment 2 Alan W. Irwin 2013-07-17 18:50:09 UTC
I have limited git and autootools expertise so could you double check my notes below to make sure I accessed git master properly and did the autotools steps to prepare it for a build?

git clone git://anongit.freedesktop.org/pkg-config pkg-config_git
cd pkg-config_git
git fetch
git rebase origin
# Create full configuration
./autogen.sh
# Prepare for distribution
make distclean
# Check distribution.  if I don't perform the steps above this step errors out.
autoconf

Note, the above autotools steps were done on Linux.  Would that affect the subsequent MSYS build using this prepared pkg-config source tree?

The reason I ask is I got good results for the git version of pkg-config prepared like above for the Linux build and test, but I got bad results for the corresponding MinGW/MSYS/Wine build and test where the configure step failed with some run-time error.  (A error box popped us saying sh.exe had some unrecoverable error.)  For http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz, the Linux build and test passed all tests (in agreement with results from the git version), and the MinGW/MSYS/Wine build and test completed without run-time errors and with only 4 tests failing (in disagreement with results from the git version).  So I have a feeling some/all of the autotools preparation done above on Linux was not correct for the MinGW/MSYS/Wine case, and I need autotools advice about that possibility.
Comment 3 Dan Nicholson 2013-07-18 13:55:50 UTC
Yes, I can imagine getting the autotools running on your msys platform is tricky. Fortunately, you only have to do it once from any host. So, I suggest you prepare the tree with your Linux tools and then you can build however you want. The following is all autogen.sh does:

autoreconf -I

Run that from Linux and the autotools are set. Now you can follow the normal build steps for your windows build from that directory or a separate build directory.
Comment 4 Dan Nicholson 2013-07-18 13:57:42 UTC
That should be

autoreconf -i

My phone changed it to upper case.
Comment 5 Alan W. Irwin 2013-07-18 17:20:39 UTC
Under git I still don't know how to change the local directory to pristine condition so I removed my previous attempt then did

git clone git://anongit.freedesktop.org/pkg-config pkg-config_git
cd pkg-config_git
git fetch
git rebase origin
autoreconf -i

This time the subsequent run of my build and test script for MinGW/MSYS/Wine worked without run-time errors so thanks very much for the autotools help to make that happen with the git version!

However, the results produced with the git version were identical (4 test failures) to pkg-config-0.28.  Those failure (for complete details see that attachment I made originally) are the following:

[...]
Package sort-order-3-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `sort-order-3-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sort-order-3-1' found
../pkg-config.exe --cflags sort-order-3-1 exited with 1 (expected 0)
FAIL: check-sort-order  
[...]
../pkg-config.exe --variable=pc_path pkg-config :
'Z:\home\wine\newstart\build_script\build_dir-1.6-rc4_buildtools\build_projects\Build\build_pkg-config\.libs\lib\pkgconfig;Z:\home\wine\newstart\build_script\build_dir-1.6-rc4_buildtools\build_projects\Build\build_pkg-config\.libs\share\pkgconfig' != 'z:\home\wine\newstart\build_script\build_dir-1.6-rc4_buildtools\build_projects\Build\build_pkg-config\.libs\lib\pkgconfig;z:\home\wine\newstart\build_script\build_dir-1.6-rc4_buildtools\build_projects\Build\build_pkg-config\.libs\share\pkgconfig'
FAIL: check-path
[...]
../pkg-config.exe --version :
'PKG_CONFIG_DEBUG_SPEW variable enabling debug spew
Adding directory 'z:/home/wine/newstart/build_script/build_dir-1.6-rc4_buildtools/build_projects/Source/build_pkg-config/check' from PKG_CONFIG_PATH
Global variable definition 'pc_sysrootdir' = '/'
Global variable definition 'pc_top_builddir' = '$(top_builddir)'
Error printing enabled by default due to use of output options besides --exists, --atleast/exact/max-version or --list-all. Value of --silence-errors: 0
Error printing enabled
0.28' != 'PKG_CONFIG_DEBUG_SPEW variable enabling debug spew
Adding directory '/Z/home/wine/newstart/build_script/build_dir-1.6-rc4_buildtools/build_projects/Source/build_pkg-config/check' from PKG_CONFIG_PATH
Global variable definition 'pc_sysrootdir' = '/'
Global variable definition 'pc_top_builddir' = '$(top_builddir)'
Error printing enabled by default due to use of output options besides --exists, --atleast/exact/max-version or --list-all. Value of --silence-errors: 0
Error printing enabled
0.28'
FAIL: check-debug
[...]
../pkg-config.exe --cflags --libs pcfiledir :
'-Iz:/home/wine/newstart/build_script/build_dir-1.6-rc4_buildtools/build_projects/Source/build_pkg-config/check/include -Lz:/home/wine/newstart/build_script/build_dir-1.6-rc4_buildtools/build_projects/Source/build_pkg-config/check/lib -lfoo' != '-I/Z/home/wine/newstart/build_script/build_dir-1.6-rc4_buildtools/build_projects/Source/build_pkg-config/check/include -L/Z/home/wine/newstart/build_script/build_dir-1.6-rc4_buildtools/build_projects/Source/build_pkg-config/check/lib -lfoo'
FAIL: check-relocatable
==============================================================================
4 of 26 tests failed
Please report to https://bugs.freedesktop.org/enter_bug.cgi?product=pkg-config
==============================================================================

So it appears the fixes in git do not make any difference for these four failures.

My next order of business is to try a source-tree build (as opposed to the separate build tree I have been using) since there may be some general MSYS issue concerning separate build trees for pkg-config. After all, the first failure above is caused by pkg-config.exe (which is built in a separate build tree) not finding sort-order-3-1.pc in the source tree.  There could be a number of reasons for such a failure, but one possibility is some separate build tree issue for pkg-config under MSYS.

Meanwhile, I also hope you are willing to attempt to replicate this issue yourself with an up-to-date MinGW/MSYS version on Microsoft Windows.
Comment 6 Alan W. Irwin 2013-07-18 20:46:18 UTC
Correction.  I completely missed something.  The git version did make a difference for the separate build tree case.

Version 0.28 ==>
FAIL: check-print-options
FAIL: check-path
FAIL: check-sysroot
FAIL: check-debug

git version ==>
FAIL: check-sort-order
FAIL: check-path
FAIL: check-debug
FAIL: check-relocatable

So for the separate build tree case, two issues were cured by git compared to 0.28, but git also introduced two new issues.

I then tried git for an in-source build ==>
FAIL: check-path
with all other tests passing except for check-relocatable which went into
a hang (no cpu activity and no additional results output after waiting for 30 minutes).  So this seems promising (at least two failures cured by the in-source build), but the hang is a concern. In general, Wine does not respond smoothly to errors so the cure may be simply to fix whatever is going wrong for the check-relocatable test.

All previous tests were done with "make -j4 check".  Just in case that parallel check was messing up results, I then tried an in-source build for version 0.28 using "make check" ==>
FAIL: check-print-options
FAIL: check-path
FAIL: check-sysroot

So this result is the same as the first result for 0.28 except the check-debug failure has been fixed (by either the in-source build or the non-parallel check).

To summarize, there seems to be a consistent increase in test failures for builds using a separate build tree so I suspect that issue will also show up on Microsoft Windows platforms.  In addition, probably Wine-1.6-rc4 is adding its own errors (e.g., the hang) to complicate whenever there is a test failure so it is important to determine how many of the above issues show up on the Microsoft version of Windows.  I don't have access to that platform myself, but I would be happy to try any additional tests on my MinGW/MSYS/Wine platform if you feel those would be helpful.
Comment 7 Michael 2013-11-07 23:19:22 UTC
I've just tried building 0.28 on RHEL 6.4, and got a single failure on make check:

../pkg-config --print-variables simple :
'prefix
libdir
exec_prefix
includedir' != 'exec_prefix
prefix
libdir
includedir'
FAIL: check-print-options


Per the instructions given to the original reporter, I've also tried building the git master.  It fails in the same way.
Comment 8 R.L. Horn 2015-02-21 07:26:52 UTC
(In reply to Michael from comment #7)

> ../pkg-config --print-variables simple :
> 'prefix
> libdir
> exec_prefix
> includedir' != 'exec_prefix
> prefix
> libdir
> includedir'
> FAIL: check-print-options

If you look carefully, --print-variables actually returns the correct values, just not in the expected order.  This is, in fact, a test suite failure (the order can vary depending on glib version).

If you configure with --with-internal-glib it should pass.

(And you can file that one under "better late than never.")
Comment 9 Dan Nicholson 2015-02-21 18:58:54 UTC
(In reply to R.L. Horn from comment #8)
> If you look carefully, --print-variables actually returns the correct
> values, just not in the expected order.  This is, in fact, a test suite
> failure (the order can vary depending on glib version).

Oh, good catch on that. I pushed a change to sort the --print-variables output. This should be fixed on master. See commit 818aeac.

I'm still putting together a couple windows builds (wine and msys) to see if the test output is clean for me.
Comment 10 Dan Nicholson 2015-02-21 19:42:14 UTC
I pushed another fix that was screwing up check-relocatable for me, and now check passes for me on wine. I'd appreciate if someone else could give this a shot.
Comment 11 GitLab Migration User 2018-08-25 12:56:42 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/44.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.