Mingw pkg-config not working
Yaakov Selkowitz
yselkowitz@cygwin.com
Mon Apr 6 16:43:14 GMT 2020
On Sun, 2020-04-05 at 15:51 +0200, Carlo B. via Cygwin wrote:
> I wanted to report that I received a reply on the issue that I had opened here:
>
> https://todo.sr.ht/~kaniini/pkgconf/10#comment-7894
Thanks for following up.
> The report has been closed and I got this reply:
>
> "You should use a symlink instead of a wrapper script when using the
> personality feature."
>
> I hope that somebody has understood what he means (posix is not
> exactly my primary platform) and it could be useful for fixing the
> issue.
Yes, that gave me the information I needed. There is actually code
within pkgconf to automatically load $PREFIX.personality when called as
$PREFIX-pkg-config. This requires a packaging change on our end, which
I'm incorporating into the latest release.
> Il giorno gio 26 mar 2020 alle ore 14:07 Carlo B.
> <carlo.bramini@gmail.com> ha scritto:
> > Hello,
> > I implemented the solution to this problem as a patch to
> > pkgconf.cygport as requested.
> > I attached small patch to this email, which resolved the troubles with
> > CMake and Meson.
> > I hope that you will find it useful and some developers will gently
> > apply the correction to fix the issue.
> >
> > Thank you very much for your time and your support.
> > Sincerely,
> >
> > Carlo Bramini.
> >
> > Il giorno sab 22 feb 2020 alle ore 18:47 Jon Turney
> > <jon.turney@dronecode.org.uk> ha scritto:
> > > On 20/02/2020 11:06, Carlo B. wrote:
> > > [...]
> > > > x86_64-w64-mingw32-pkg-config are emulated with a shell script, for
> > > > example the one for i686 is:
> > > >
> > > > #!/bin/sh
> > > > exec pkgconf --personality=i686-w64-mingw32 $@
> > > >
> > > > But while this solution mostly works when you exec it from the command
> > > > line, it makes impossible to detect the presence of the tool from
> > > > meson and cmake build systems.
> > > > If you try to do this on the bash prompt, you get:
> > > >
> > > > $ i686-w64-mingw32-pkg-config --version
> > > > pkgconf: --version specified with other options or module names,
> > > > assuming --modversion.
> > > > Please specify at least one package name on the command line.
> > > >
> > > > and this is exactly what happens with those build systems (and perhaps
> > > > others, I don't know): it tries to call pkg-config with "--version"
> > > > and it executes the above script that calls pkgconf. But sadly, the
> > > > presence of the "--personality" option makes the process to fail,
> > > > because the "--version" is currently allowed only when no other
> > > > options are added.
> > > > And, for this reason, meson and cmake fail the detection of the tool.
> > > >
> > > > I have also filed an issue here for pkgconf:
> > > > https://todo.sr.ht/~kaniini/pkgconf/10
> > > > because the solution is actually to ignore the presence of the
> > > > "--personality" option when the "--version" is written, but
> > > > unfortunately I have not received any feedback.
> > > >
> > > > So, I'm also writing here, with the hope that you could find a solution.
> > > [...]
> > >
> > > Thanks for reporting this issue.
> > >
> > > I guess the alternative to fixing pkgconf would be to modify those
> > > wrapper scripts to detect when the parameters are just '--version' (or
> > > equivalent) and not use --personality in that case?
> > >
> > > These wrapper scripts are specific to cygwin (generated by the cygport,
> > > see [1])
> > >
> > > It's possible other distros have more sophisticated wrapper scripts,
> > > which avoid this problem?
> > >
> > > If you do write or discover some improved wrapper scripts, a patch to
> > > [1] to update them would be appreciated.
> > >
> > > [1]
> > > https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/pkgconf.git;a=blob;f=pkgconf.cygport#l84
--
Yaakov
More information about the Cygwin
mailing list