#66686 closed defect (fixed)

boost171 @1.71.0: Build failure universal arm64/x86_64

Reported by: nryan9444 Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version:
Keywords: arm64 universal Cc: mascguy (Christopher Nielsen), Guymer (Thomas Guymer)
Port: boost171

Description (last modified by ryandesign (Ryan Carsten Schmidt))

--->  Fetching distfiles for boost171
--->  Attempting to fetch boost_1_71_0.tar.bz2 from https://distfiles.macports.org/boost171
--->  Verifying checksums for boost171                                          
--->  Extracting boost171
--->  Applying patches to boost171
--->  Configuring boost171
--->  Building boost171                                  
Error: Failed to build boost171: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost171/boost171/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port openscad failed
--->  Some of the ports you installed have notes:
  cmake-bootstrap has the following notes:
    To use this bootstrap version of cmake instead of the usual cmake port, add
    the following lines to the Portfile:
    
    depends_build-replace  path:bin/cmake:cmake port:cmake-bootstrap
    configure.cmd          ${prefix}/libexec/cmake-bootstrap/bin/cmake
  dbus has the following notes:
    Startup items (named 'dbus-system, dbus-session') have been generated that
    will aid in starting dbus with launchd. They are disabled by default.
    Execute the following command to start them, and to cause them to launch at
    startup:
    
        sudo port load dbus
  libpsl has the following notes:
    libpsl API documentation is provided by the port 'libpsl-docs'.
  lzma has the following notes:
    The LZMA SDK program is installed as "lzma_alone", to avoid conflict with
    LZMA Utils
  python310 has the following notes:
    To make this the default Python or Python 3 (i.e., the version run by the
    'python' or 'python3' commands), run one or both of:
    
        sudo port select --set python python310
        sudo port select --set python3 python310
  qt4-mac has the following notes:
    Users experiencing graphics glitches on newer OS versions (10.13 and up) can
    experiment with different graphics drawing systems that can be set in the
    Interface tab of the /Applications/MacPorts/Qt4/qtconfig.app utility. Raster
    mode is the preferred mode but is not compatible with all non-standard
    widget styles. Keep an eye on the Fonts setting before saving!
(base) nolanryan@nolans-air ~ % port contents openscad
Port openscad is not installed.
(base) nolanryan@nolans-air ~ % 

Attachments (3)

OPEN SCAD .docx (14.1 KB) - added by nryan9444 22 months ago.
terminal
boost-171-fail-main.log (1.7 MB) - added by kencu (Ken) 22 months ago.
boost171-universal-fail.log (1.8 MB) - added by kencu (Ken) 22 months ago.
boost 171 universal fail arm64/x86_64 building on Intel

Change History (13)

Changed 22 months ago by nryan9444

Attachment: OPEN SCAD .docx added

terminal

comment:1 Changed 22 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: mascguy added
Description: modified (diff)
Keywords: ventura added
Owner: set to michaelld
Port: boost171 added; openscad removed
Status: newassigned
Summary: Openscad not loading ventura 13.1boost171 @1.71.0: Build failure
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost171/boost171/main.log for details.

Please attach that main.log file.

comment:2 Changed 22 months ago by kencu (Ken)

I tried to build openscad on my M1 just now, and ran into the same boost171 error, so I will post up my main.log, which is likely similar to what you ran into.

Last edited 22 months ago by kencu (Ken) (previous) (diff)

Changed 22 months ago by kencu (Ken)

Attachment: boost-171-fail-main.log added

comment:3 Changed 22 months ago by kencu (Ken)

It looks like this might be the error, when building boost171 +universal on an M1 Mac:

:info:build darwin.link.dll bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/libboost_fiber-mt.dylib
:info:build     "/usr/bin/clang++" -dynamiclib -Wl,-single_module -install_name "/opt/local/libexec/boost/1.71/lib/libboost_fiber-mt.dylib"  -o "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/libboost_fiber-mt.dylib" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/algo/algorithm.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/algo/round_robin.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/algo/shared_work.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/algo/work_stealing.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/barrier.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/condition_variable.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/context.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/fiber.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/future.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/mutex.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/properties.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/recursive_mutex.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/recursive_timed_mutex.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/timed_mutex.o" "bin.v2/libs/fiber/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/scheduler.o" "bin.v2/libs/context/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/libboost_context-mt.dylib" "bin.v2/libs/filesystem/build/darwin-14.0.0/release/architecture-combined/pch-off/threading-multi/visibility-hidden/libboost_filesystem-mt.dylib"      -headerpad_max_install_names -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wl,-dead_strip -no_dead_strip_inits_and_terms -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath,/opt/local/lib/libgcc -stdlib=libc++ -arch x86_64 -arch arm64 
:info:build ld: warning: option -no_dead_strip_inits_and_terms is obsolete and being ignored
:info:build Undefined symbols for architecture x86_64:
:info:build   "_jump_fcontext", referenced from:
:info:build       boost::fibers::context_initializer::context_initializer() in context.o
:info:build       boost::fibers::dispatcher_context::dispatcher_context(boost::context::preallocated const&, boost::context::basic_fixedsize_stack<boost::context::stack_traits>&&) in context.o
:info:build       void boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_fixedsize_stack<boost::context::stack_traits>&, std::__1::__bind<boost::context::fiber (boost::fibers::dispatcher_context::*)(boost::context::fiber&&), boost::fibers::dispatcher_context*, std::__1::placeholders::__ph<1> const&> > >(boost::context::detail::transfer_t) in context.o
:info:build       boost::intrusive_ptr<boost::fibers::context>::reset() in fiber.o
:info:build       boost::fibers::scheduler::release_terminated_() in scheduler.o
:info:build       boost::intrusive_ptr<boost::fibers::context>::~intrusive_ptr() in scheduler.o
:info:build   "_make_fcontext", referenced from:
:info:build       boost::fibers::dispatcher_context::dispatcher_context(boost::context::preallocated const&, boost::context::basic_fixedsize_stack<boost::context::stack_traits>&&) in context.o
:info:build   "_ontop_fcontext", referenced from:
:info:build       boost::fibers::context::~context() in context.o
:info:build       boost::context::fiber::~fiber() in context.o
:info:build       boost::fibers::context::resume() in context.o
:info:build       boost::fibers::context::resume(std::__1::unique_lock<boost::fibers::detail::spinlock_ttas>&) in context.o
:info:build       boost::fibers::context::resume(boost::fibers::context*) in context.o
:info:build       boost::fibers::context::suspend_with_cc() in context.o
:info:build       boost::fibers::context_initializer::context_initializer() in context.o
:info:build       ...
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)

comment:4 Changed 22 months ago by kencu (Ken)

Summary: boost171 @1.71.0: Build failureboost171 @1.71.0: Build failure universal arm64/x86_64 on M1 Mac

comment:5 Changed 22 months ago by kencu (Ken)

boost does it's own very specific things when building universal, with lots and lots of custom code rather than just follow the build system... so to fix this would take some digging.

might be better to find whatever is calling in boost171 and tell it to use some newer boost that will build universal (assuming there is one)?

comment:6 Changed 22 months ago by kencu (Ken)

apparently those symbols are written in assembly language, and the files have to be specifically added to the build based on the build configuration.

I'm not at the moment certain how this would work -- perhaps if it works in newer boost versions we could see what they did to fix this.

comment:7 Changed 22 months ago by kencu (Ken)

Summary: boost171 @1.71.0: Build failure universal arm64/x86_64 on M1 Macboost171 @1.71.0: Build failure universal arm64/x86_64

the universal build fails on an Intel Mac as well, no surprise.

I'm not sure if any boost versions can build universal yet arm64/x86_64.

Changed 22 months ago by kencu (Ken)

Attachment: boost171-universal-fail.log added

boost 171 universal fail arm64/x86_64 building on Intel

comment:8 Changed 22 months ago by kencu (Ken)

Keywords: arm64 universal added; ventura removed

comment:9 Changed 20 months ago by Guymer (Thomas Guymer)

Cc: Guymer added

comment:10 Changed 11 months ago by kencu (Ken)

Resolution: fixed
Status: assignedclosed

In 141a4421d8a492f98b038feaafc928a21ae5d65d/macports-ports (master):

boost171: fix universal arm/Intel build

backport fixes from boost176 port

closes: #66686
see: #64954

Note: See TracTickets for help on using tickets.