[MacPorts] #65813: codeblocks @20.03: error: Could not find a version of the library!
MacPorts
noreply at macports.org
Fri Sep 9 16:26:41 UTC 2022
#65813: codeblocks @20.03: error: Could not find a version of the library!
-------------------------+--------------------
Reporter: ryandesign | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.7.2
Resolution: | Keywords: arm64
Port: codeblocks |
-------------------------+--------------------
Comment (by ryandesign):
It must be boost. The [https://build.macports.org/builders/ports-
12_x86_64-builder/builds/40684/steps/install-port/logs/stdio successful
12_x86_64 build] says:
{{{
checking for boostlib >= (102000) includes in
"/opt/local/libexec/boost/1.76/include"... yes
checking for boostlib >= (102000) lib path in
"/opt/local/libexec/boost/1.76/lib/x86_64-darwin21.3.0"... no
checking for boostlib >= (102000) lib path in
"/opt/local/libexec/boost/1.76/lib64"... no
checking for boostlib >= (102000) lib path in
"/opt/local/libexec/boost/1.76/libx32"... no
checking for boostlib >= (102000) lib path in
"/opt/local/libexec/boost/1.76/lib"... yes
checking for boostlib >= (102000)... yes
checking whether the Boost::System library is available... yes
}}}
while the [https://build.macports.org/builders/ports-
12_arm64-builder/builds/62681/steps/install-port/logs/stdio unsuccessful
12_arm64 build] says:
{{{
checking for boostlib >= (102000) includes in
"/opt/local/libexec/boost/1.76/include"... yes
checking for boostlib >= (102000) lib path in
"/opt/local/libexec/boost/1.76/lib/arm-darwin21.3.0"... no
checking for boostlib >= (102000)... yes
checking whether the Boost::System library is available... yes
configure: error: Could not find a version of the library!
}}}
Why doesn't it continue looking in /opt/local/libexec/boost/1.76/lib on
arm64?
In the codeblocks file m4/ax_boost_base.m4 I see:
{{{
AC_REQUIRE([AC_CANONICAL_HOST])
dnl On 64-bit systems check for system libraries in both lib64 and
lib.
dnl The former is specified by FHS, but e.g. Debian does not adhere to
dnl this (as it rises problems for generic multi-arch support).
dnl The last entry in the list is chosen by default when no libraries
dnl are found, e.g. when only header-only libraries are installed!
AS_CASE([${host_cpu}],
[x86_64],[libsubdirs="lib64 libx32 lib lib64"],
[ppc64|s390x|sparc64|aarch64|ppc64le],[libsubdirs="lib64 lib
lib64"],
[libsubdirs="lib"],
)
}}}
So it should look in lib on aarch64 systems, but it doesn't realize this
is an aarch64 system because configure is detecting it as arm instead:
{{{
checking build system type... arm-apple-darwin21.3.0
checking host system type... arm-apple-darwin21.3.0
checking target system type... arm-apple-darwin21.3.0
}}}
codeblocks ships with config.guess and config.sub files dated 2019, which
predates the introduction of Apple Silicon processors. Maybe updating
those files from automake would help.
In fact, shouldn't the last line of the `AS_CASE` statement cause the lib
directory to be searched on all other unrecognized systems? That doesn't
appear to be happening.
--
Ticket URL: <https://trac.macports.org/ticket/65813#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list