Opened 4 years ago

Closed 4 years ago

#60816 closed defect (duplicate)

openal-soft build failure on libc++ SnowLeopard: requires cxa_thread_atexit to support thread_local_storage

Reported by: programmingkidx Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc: programmingkidx
Port: libcxx

Description

openal-soft fails to build. This is what I saw in the log:

:info:build Undefined symbols for architecture x86_64:
:info:build   "___cxa_thread_atexit", referenced from:
:info:build       ALCcontext::deinit() in alc.cpp.o
:info:build       GetContextRef() in alc.cpp.o
:info:build       _alcGetCurrentContext in alc.cpp.o
:info:build       _alcGetThreadContext in alc.cpp.o
:info:build       _alcMakeContextCurrent in alc.cpp.o
:info:build       _alcSetThreadContext in alc.cpp.o
: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)
:info:build make[2]: *** [libopenal.1.20.1.dylib] Error 1

I am using Mac OS 10.6.8.

Attachments (1)

main.log (237.0 KB) - added by programmingkidx 4 years ago.

Download all attachments as: .zip

Change History (12)

Changed 4 years ago by programmingkidx

Attachment: main.log added

comment:1 Changed 4 years ago by programmingkidx

Owner: set to ryandesign
Status: newassigned

comment:2 Changed 4 years ago by programmingkidx

Cc: programmingkidx added

comment:3 Changed 4 years ago by kencu (Ken)

please do these steps LibcxxOnOlderSystems#SnowLeopard to upgrade your toolchain to the state-of-the-art, and in particular this step to fix your current error:

sudo port -v -n upgrade --force --enforce-variants libcxx +emulated_tls
Last edited 4 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:4 Changed 4 years ago by kencu (Ken)

Owner: changed from ryandesign to kencu

comment:5 Changed 4 years ago by kencu (Ken)

Port: libcxx added; openal-soft removed

comment:6 Changed 4 years ago by kencu (Ken)

I change the issue to where it really exists, which is this 58898

comment:7 Changed 4 years ago by kencu (Ken)

Summary: openal-soft build failure - undefined symbolsopenal-soft build failure on libc++ SnowLeopard: requires cxa_thread_atexit to support thread_local_storage

comment:8 Changed 4 years ago by programmingkidx

Thank you as always Ken. When I ran "sudo port -v -n upgrade --force --enforce-variants libcxx +emulated_tls", it looked like everything was done but I did see this error:

--->  Cleaning libcxx
--->  Removing work directory for libcxx
Error: Failed to deactivate libcxx: Active version of libcxx is not 5.0.1_4+emulated_tls+universal but 5.0.1_4+universal.
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_registry_portfiles_libcxx-5.0.1_4_e6b71a845b47632b5346ce1f40226b037a4c3335c29ff89a6531bc3db10d7db1-10493/libcxx/main.log for details.
Warning: Failed to execute portfile from registry for libcxx @5.0.1_4+universal
--->  Deactivating libcxx @5.0.1_4+universal
--->  Activating libcxx @5.0.1_4+emulated_tls+universal
x ./

comment:9 Changed 4 years ago by programmingkidx

Your instruction worked :)

Openal-soft installed. I suggest having this port try to determine if the correct version of libcxx is being used.

comment:10 Changed 4 years ago by kencu (Ken)

I'd prefer to fix the libcxx port to just install the full version by default, but this is proving somewhat complicated to automate for the buildbot.

Downloading and installing a prebuilt fully-functional libcxx binary is an easy way around that issue, but goes against the ZEN of MacPorts.

comment:11 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: duplicate
Status: assignedclosed

So I'll close this since it's a libcxx bootstrapping problem about which we already have a ticket.

Note: See TracTickets for help on using tickets.