Opened 23 months ago
Closed 22 months ago
#66655 closed defect (worksforme)
qt5-qtlocation 5.15.8 fails to build
Reported by: | jsalort (Julien Salort) | Owned by: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.0 |
Keywords: | Cc: | ||
Port: | qt5-qtlocation |
Description
qt5-qtlocation fails to build on MacPorts 2.8.0, Ventura, Apple M1. There is a link error with undefined symbols (see main.log).
Attachments (1)
Change History (11)
Changed 23 months ago by jsalort (Julien Salort)
comment:1 Changed 22 months ago by jmroot (Joshua Root)
Cc: | MarcusCalhoun-Lopez removed |
---|---|
Owner: | set to MarcusCalhoun-Lopez |
Status: | new → assigned |
comment:2 Changed 22 months ago by jsalort (Julien Salort)
comment:3 Changed 22 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
I am afraid I cannot reproduce this error.
The first error
:info:build Undefined symbols for architecture arm64: -:info:build "mbgl::style::IconAnchor::key", referenced from: -:info:build void mbgl::style::conversion::stringify<mbgl::style::IconAnchor, rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAl\ locator, 0u>, mbgl::style::SymbolAnchorType>(rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 0u>&, mbgl::style::DataDrivenP\ ropertyValue<mbgl::style::SymbolAnchorType> const&) in libqmapboxgl.a(symbol_layer.o)
must have something to do with improper generation of symbols
namespace mbgl { namespace style { struct IconAnchor : DataDrivenLayoutProperty<SymbolAnchorType> { static constexpr const char * key = "icon-anchor"; static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; } }; } }
My best guess is there is some other header file that is causing problems.
Is it possible to temporary deactivate other ports and try the build again?
comment:4 Changed 22 months ago by jsalort (Julien Salort)
Ok so I've tried to install qt5-qtlocation on a clean MacPorts installation with no other installed port, and it compiled fine. So your guess appears to be accurate. Do you have an idea which port I should deactivate on my main system to try and build it ?
comment:5 Changed 22 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Since mapbox-gl-native is in in a 3rdparty directory in the source tree, it is possible some other port installed it as well.
If two header files have the same name, the build might be improperly including the wrong one.
Is, e.g., a file named symbol_layer_properties.hpp
in prefix or /usr/local?
comment:6 Changed 22 months ago by jsalort (Julien Salort)
find /opt/local -name "symbol_layer_properties.hpp"
and
find /usr/local -name "symbol_layer_properties.hpp"
return nothing.
comment:7 Changed 22 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Unfortunately, it may be necessary to deactivate ports a few at a time until we find the right one.
The only alternative I can think of is to look in /opt/local/include or /usr/local/include for anything that looks "suspicious."
I am sorry I can't think of a more clever solution.
comment:8 Changed 22 months ago by jsalort (Julien Salort)
FYI, I gave up trying to find out the cause of the problem.
I did this instead:
sudo port uninstall installed sudo port reclaim sudo port install qt5-qtlocation
and it works. Only problem is that I need to recompile everything since there is no Ventura Apple Silicon build bot yet.
comment:9 Changed 22 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
I am sorry you have to go through all the trouble.
It does not do you much good now, but it is possible to get similar results by deactivating ports instead uninstalling them.
You can deactivate all the ports (sudo port deactivate active
), install the offending port, and then reactivate the other ports you want.
comment:10 Changed 22 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
The symbols that are not found are actually defined in
./src/3rdparty/mapbox-gl-native/src/mbgl/style/layers/symbol_layer_properties.hpp
.