Opened 6 years ago

Closed 6 years ago

#56541 closed defect (fixed)

rubberband @1.8.2 error: use of undeclared identifier 'vvfabsf'; did you mean 'vvfabf'?

Reported by: kencu (Ken) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: snowleopard leopard tiger Cc:
Port: rubberband

Description

On the upgrade of rubberband on 10.6.8, this error arises:

In file included from src/RubberBandStretcher.cpp:24:
In file included from src/StretcherImpl.h:29:
In file included from src/dsp/Window.h:32:
src/system/VectorOps.h:683:5: error: use of undeclared identifier 'vvfabsf'; did you mean 'vvfabf'?
    vvfabsf(tmp, dst, &count);
    ^~~~~~~
    vvfabf
/System/Library/Frameworks/vecLib.framework/Headers/vForce.h:104:6: note: 'vvfabf' declared here
void vvfabf (float * /* y */, const float * /* x */, const int * /* n */)   AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER; 

In the relevant file src/system/VectorOps.h is this guard, which is not written correctly:

#if (defined(MACOSX_DEPLOYMENT_TARGET) && MACOSX_DEPLOYMENT_TARGET <= 1070 && MAC_OS_X_VERSION_MIN_REQUIRED <= 1070)
    vvfabf(tmp, dst, &count);
#else
    vvfabsf(tmp, dst, &count);
#endif

MACOSX_DEPLOYMENT_TARGET would be 10.6 or some similar number. Now 10.6 certainly is <= 1070, but still the test fails to function correctly. Changing it to just this fixes it:

#if (MAC_OS_X_VERSION_MIN_REQUIRED <= 1070)
    vvfabf(tmp, dst, &count);
#else
    vvfabsf(tmp, dst, &count);
#endif

and in the end:

$ port -v installed rubberband
The following ports are currently installed:
  rubberband @1.8.2_0 (active) platform='darwin 10' archs='x86_64' date='2018-05-26T19:24:34-0700'

Change History (7)

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

There are a few other issues with this port. It hardcodes a target of 10.7, and hardcodes libc++, which could be addressed if there is interest in doing so.

comment:2 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Yes, I have interest in these issues being fixed. The ChangeLog didn't mention any of these problems. Can you file upstream issues?

comment:3 in reply to:  1 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to kencu:

There are a few other issues with this port. It hardcodes a target of 10.7, and hardcodes libc++, which could be addressed if there is interest in doing so.

If you are referring to the lines in Makefile.osx which read:

CXX		:= clang++ -stdlib=libc++
ARCHFLAGS	:= -arch x86_64 -mmacosx-version-min=10.7

then we are already overriding those with build.args in the Portfile.

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

Oh - I didn't realize that initially, but I guess so. That makes it easier then. Just fixing the guard might be enough.

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

Hey thanks for tuning up the -stdlib part. I'll patch up the broken test, and send the fix upstream once I figure out where it goes.

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

Resolution: fixed
Status: assignedclosed

In c09fac8177f0d38200bfb4d7187996d7f442a7e1/macports-ports (master):

rubberband: fix system test for < 10.7

closes: #56541

Note: See TracTickets for help on using tickets.