#69168 closed defect (fixed)

pulseaudio @17.0_0: Undefined symbols "_AbsoluteToNanoseconds"

Reported by: tehcog (tehcog) Owned by: Ionic (Mihai Moldovan)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: mavericks Cc: barracuda156
Port: pulseaudio

Description

please see attached main.log file:

Attachments (1)

pulseaudio.main.log (109.0 KB) - added by tehcog (tehcog) 10 months ago.
main.log

Download all attachments as: .zip

Change History (5)

Changed 10 months ago by tehcog (tehcog)

Attachment: pulseaudio.main.log added

main.log

comment:1 Changed 10 months ago by jmroot (Joshua Root)

Cc: barracuda156 added; Ionic removed
Owner: set to Ionic
Status: newassigned

comment:2 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

Summary: pulseaudio 14.2_1 < 17.0_0 fails to upgrade on maverickspulseaudio @17.0_0: Undefined symbols "_AbsoluteToNanoseconds"

Hmm…

:info:build ../pulseaudio-17.0/src/pulsecore/core-rtclock.c:93:13: warning: 'AbsoluteToNanoseconds' is deprecated: first deprecated in OS X 10.8 [-Wdeprecated-declarations]
:info:build     nanos = AbsoluteToNanoseconds(*(AbsoluteTime *) &abs_time);
:info:build             ^
:info:build /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:93:1: note: 'AbsoluteToNanoseconds' has been explicitly marked deprecated here
:info:build AbsoluteToNanoseconds(AbsoluteTime absoluteTime)              __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);
:info:build ^
:info:build 1 warning generated.

Ok, it's deprecated…

:info:build Undefined symbols for architecture x86_64:
:info:build   "_AbsoluteToNanoseconds", referenced from:
:info:build       _pa_rtclock_age in pulsecore_core-rtclock.c.o
:info:build       _pa_rtclock_get in pulsecore_core-rtclock.c.o
:info:build       _pa_rtclock_from_wallclock in pulsecore_core-rtclock.c.o
:info:build       _pa_timeval_rtstore in pulsecore_core-rtclock.c.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)

…that shouldn't mean it's unavailable though. Then again, trying to use anything from Carbon is pretty suspect at this point.

I see this interesting bit in the Portfile however that looks like it was intended to deal with this issue but I guess is no longer sufficient:

if {${os.platform} eq "darwin" && ${os.major} < 13} {
    # _AbsoluteToNanoseconds
    configure.ldflags-append \
                    -framework CoreServices
}

comment:3 in reply to:  2 Changed 10 months ago by barracuda156

Replying to ryandesign:

I see this interesting bit in the Portfile however that looks like it was intended to deal with this issue but I guess is no longer sufficient:

if {${os.platform} eq "darwin" && ${os.major} < 13} {
    # _AbsoluteToNanoseconds
    configure.ldflags-append \
                    -framework CoreServices
}

Maybe just change this to include Mavericks? Since it is I added that block in https://github.com/macports/macports-ports/commit/a66e323ee48dcb954f60f89803885f3929a1f9c4 it did solve the problem for the older system I tested on. (Which might have been either 10.6 + 10.8 or just 10.6.)

Version 0, edited 10 months ago by barracuda156 (next)

comment:4 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In f185ee2dfba153b6937d3a05f42a9890ef6e221d/macports-ports (master):

pulseaudio: Also link with CoreServices on 10.9-10.11

Closes: #69168

Note: See TracTickets for help on using tickets.