[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi] wx-msw vs. wx-gtk sonames
From: |
Greg Chicares |
Subject: |
[lmi] wx-msw vs. wx-gtk sonames |
Date: |
Thu, 25 Mar 2021 19:21:08 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 |
Vadim--Names of installed wx libraries differ greatly between
msw and gtk. For msw, we can tell the wx SHA1 from the library
name. For gtk, we can't, which seems less good. Demonstration:
$make uninstall >/dev/null
$LMI_COMPILER=gcc ; LMI_TRIPLET=i686-w64-mingw32 ; .
/opt/lmi/src/lmi/set_toolchain.sh
$make install >/dev/null
$ls -l /opt/lmi/bin/*wx*
-rwxrwxr-x 1 greg lmi 6207548 Mar 25 18:50
/opt/lmi/bin/libwxcode_mswu_pdfdoc-3.1-0.dll
-rwxrwxr-x 1 greg lmi 337967 Mar 25 18:50 /opt/lmi/bin/lmi_wx_shared.exe
-rwxrwxr-x 1 greg lmi 83917 Mar 25 18:50 /opt/lmi/bin/wx_new.dll
-rwxrwxr-x 1 greg lmi 20828910 Mar 25 18:50 /opt/lmi/bin/wx_test.exe
-rwxrwxr-x 1 greg lmi 19656327 Mar 25 18:50
/opt/lmi/bin/wxmsw314u_gcc_i686-w64-mingw32-10.0-c9486f9c.dll
$make uninstall >/dev/null
$LMI_COMPILER=gcc ; LMI_TRIPLET=x86_64-pc-linux-gnu ; .
/opt/lmi/src/lmi/set_toolchain.sh
$make install >/dev/null
$ls -l /opt/lmi/bin/*wx*
-rwxrwxr-x 1 greg lmi 15900504 Mar 25 18:53 /opt/lmi/bin/libwx_gtk3u-3.1.so
-rwxrwxr-x 1 greg lmi 4666944 Mar 25 18:53
/opt/lmi/bin/libwxcode_gtk3u_pdfdoc-3.1.so
-rwxrwxr-x 1 greg lmi 239480 Mar 25 18:53 /opt/lmi/bin/lmi_wx_shared
-rwxrwxr-x 1 greg lmi 21568 Mar 25 18:53 /opt/lmi/bin/wx_new.so
-rwxrwxr-x 1 greg lmi 20907928 Mar 25 18:53 /opt/lmi/bin/wx_test
In another chroot, I can see at a glance that wx hasn't been
rebuilt--from the msw library name (though not the gtk ones):
$ls -l /opt/lmi/bin/*wx*
-rwxrwxr-x 1 greg greg 5138947 Mar 25 11:34
/opt/lmi/bin/libwxcode_mswu_pdfdoc-3.1-0.dll
-rwxrwxr-x 1 greg greg 718829 Mar 25 11:34 /opt/lmi/bin/lmi_wx_shared.exe
-rwxrwxr-x 1 greg greg 234749 Mar 25 11:34 /opt/lmi/bin/wx_new.dll
-rwxrwxr-x 1 greg greg 23329880 Mar 25 11:34 /opt/lmi/bin/wx_test.exe
-rwxrwxr-x 1 greg greg 20340026 Mar 25 11:34
/opt/lmi/bin/wxmsw314u_gcc_i686-w64-mingw32-8.3.0-6cdaedd4.dll
...which also tells me which gcc version was used.
In 'install_wx.sh', the wx SHA1 and gcc version are captured
the same way for every architecture:
# Distinguish wx dll by host type, compiler version, and wx SHA1.
if [ -z "$gcc_version" ]; then
gcc_version=$(make --no-print-directory --directory="$srcdir"
show_gcc_version)
fi
vendor=${LMI_TRIPLET}-$gcc_version-$(git rev-parse --short HEAD:third_party/wx)
and wx is configured with:
--enable-vendor=$vendor
so this seems to be an inconsistency in wx's own build system.
However, I conjecture that $vendor is the red-headed stepchild
of wx configuration--I've tried
`whence wx-config` --version-full 2>&1 |less
and every other '--*' option as well as '--version-full', but
none of them gives the SHA1; and indeed there's no vendor
string in the wx-config script:
$grep 'vend'
/opt/lmi/local/gcc_i686-w64-mingw32/lib/wx/config/i686-w64-mingw32-msw-unicode-3.1
$grep '6cdaedd4'
/opt/lmi/local/gcc_i686-w64-mingw32/lib/wx/config/i686-w64-mingw32-msw-unicode-3.1
...so, if I want to add 'x86_64-pc-linux-gnu-10.0-c9486f9c'
into the soname, is there a better way than using $vendor?
- [lmi] wx-msw vs. wx-gtk sonames,
Greg Chicares <=