lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lmi] PATCH: disable the of system libraries when building wx


From: Greg Chicares
Subject: Re: [lmi] PATCH: disable the of system libraries when building wx
Date: Thu, 23 Jul 2020 10:58:00 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

On 2020-07-21 01:06, Vadim Zeitlin wrote:
> 
>  I just lost quite some time on debugging a weird build problem which
> turned out to be due to wx configure picking up the system libtiff version
> when cross-compiling for MSW from Linux. Of course, it really shouldn't
> have done this in the first place, and I hope to fix this in wx itself
> later, but for now I'd like to propose the following simple patch

This is certainly okay for now at least. I could imagine that someday
we might want to use a system library such as libz, but for now we don't.

I've read your note on '--disable-sys-libs' here:
  https://www.wxwidgets.org/blog/2014/07/easier-way-to-avoid-dependencies-on/
and still have one question: does that option in effect force all of
wx's possible builtin libraries to be built, meaning that it's
shorthand for
  '--with-libX=builtin' for all X in possible builtin libraries
, or does it just prevent the use of system libraries?

Does each of wx's possible builtin libraries have three build-flag states:
 - build the builtin, and use it whenever called for
 - don't build the builtin; use a system library if available
 - don't build the builtin, and prevent use of any system equivalent
or only the first two?

IOW, I'm not absolutely certain about this, but I think that
  --with-zlib=builtin
means "build libz as part of wx's install process, whether or not libz
is actually to be used by the client application (lmi, e.g.); and set
'wx-config' to provide that builtin (overriding any system library)
in case the client actually does use libz". (I don't see how it could
do otherwise: when wx is being built, it can't know whether I'm
building it with a particular application (lmi, e.g.) in mind, or
whether that application will require libz.

If that's all true, then, as a corollary, I suppose '--disable-sys-libs'
will cause us to build libraries that we'd never want. That would be
inefficient, though the extra time would probably be negligible; but
it would also mean that an error building some unwanted library
could break the build, right?

OTOH, am I mistaken in thinking that '--disable-sys-libs' means
"build every possible library"? Could it mean "build (and use) any
library offered as a builtin, but only if specifically requested by
'--with-libX=builtin'; but set 'wx-config' to prevent linking to a
system version of any such library"? (I suppose you could do that
with negligible overhead by doing something like `touch libX` to
force a link error.)

Here's a simpler question:

> ---------------------------------- >8 --------------------------------------
> commit 82c1165c562e3f08831809d9f70df984af8b958c
> Author: Vadim Zeitlin <vadim AT tt-solutions DOT com>
> Date:   2020-07-21 02:21:20 +0200
> 
>     Disable use of all system libraries when building wxWidgets
> 
>     We don't want to use any system libraries, not only Expat, linpng and
>     zlib ones.
> 
> diff --git a/install_wx.sh b/install_wx.sh

This commit isn't in your github repository AFAICT, but it seems
to be identical to e164e4282a4b2, which is part of PR #145. I think
I'll just pull that 'ci-workflow' branch. That includes this
'--disable-sys-libs' change, and gives the full result that you
really want, right?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]