MacOS: error: no matching function for call to 'objc_msgSend'

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

MacOS: error: no matching function for call to 'objc_msgSend'

bpabbott
Administrator
Andrew,

I’ve just upgraded to MacOS 10.15.3.

After upgrading Homebew, I now see the error below. It looks to me like this was introduced in changeset 27624. Have you upgraded to Catalina yet?

Ben  

libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/fontconfig/2.13.1/include -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor -Iliboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn -I./libinterp/corefcn -I./libinterp/octave-value -I./liboctave/wrappers -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c libgui/src/octave-qobject.cc  -fno-common -DPIC -o libgui/src/.libs/libgui_src_la-octave-qobject.o
libgui/src/octave-qobject.cc:91:18: error: no matching function for call to 'objc_msgSend'
  process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
                 ^~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2
      were provided
objc_msgSend(void /* id self, SEL op, ... */ )
^
libgui/src/octave-qobject.cc:96:19: error: no matching function for call to 'objc_msgSend'
  reason_string = objc_msgSend (reinterpret_cast<id> (objc_getClass ("NSString")),
                  ^~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2
      were provided
objc_msgSend(void /* id self, SEL op, ... */ )
^
libgui/src/octave-qobject.cc:98:19: error: no matching function for call to 'objc_msgSend'
  reason_string = objc_msgSend (reason_string,
                  ^~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3
      were provided
objc_msgSend(void /* id self, SEL op, ... */ )
^
libgui/src/octave-qobject.cc:105:34: error: no matching function for call to 'objc_msgSend'
  osx_latencycritical_activity = objc_msgSend (process_info,
                                 ^~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 4
      were provided
objc_msgSend(void /* id self, SEL op, ... */ )




Reply | Threaded
Open this post in threaded view
|

Re: MacOS: error: no matching function for call to 'objc_msgSend'

Andrew Janke-2


On 2/1/20 12:13 AM, Benjamin Abbott wrote:

> Andrew,
>
> I’ve just upgraded to MacOS 10.15.3.
>
> After upgrading Homebew, I now see the error below. It looks to me like this was introduced in changeset 27624. Have you upgraded to Catalina yet?
>
> Ben
>
> libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/fontconfig/2.13.1/include -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor -Iliboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn -I./libinterp/corefcn -I./libinterp/octave-value -I./liboctave/wrappers -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c libgui/src/octave-qobject.cc  -fno-common -DPIC -o libgui/src/.libs/libgui_src_la-octave-qobject.o
> libgui/src/octave-qobject.cc:91:18: error: no matching function for call to 'objc_msgSend'
>    process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
>                   ^~~~~~~~~~~~

Hi Ben,

Thanks for testing on Catalina! I don't have a Catalina box yet: I'm not
upgrading my main machines, and I can't get Catalina to install under
VMware.

I think this was introduced by change 27575 - the App Nap/pause fix -
not 27624.

I'm afraid I have no idea how to get this working, and I don't have time
to do research. The C/Obj-C interface changed with the macOS 10.15
Catalina SDK, and I don't really understand it.

I suggest we just modify the #ifs to completely disable the App
Nap/Objective-C stuff on Catalina and later until someone comes along
who actually knows what they're doing and can fix it for real.

Cheers,
Andrew
Reply | Threaded
Open this post in threaded view
|

Re: MacOS: error: no matching function for call to 'objc_msgSend'

bpabbott
Administrator
On Feb 1, 2020, at 9:31 AM, Andrew Janke <[hidden email]> wrote:


On 2/1/20 12:13 AM, Benjamin Abbott wrote:
Andrew,
I’ve just upgraded to MacOS 10.15.3.
After upgrading Homebew, I now see the error below. It looks to me like this was introduced in changeset 27624. Have you upgraded to Catalina yet?
Ben
libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/fontconfig/2.13.1/include -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor -Iliboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn -I./libinterp/corefcn -I./libinterp/octave-value -I./liboctave/wrappers -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c libgui/src/octave-qobject.cc  -fno-common -DPIC -o libgui/src/.libs/libgui_src_la-octave-qobject.o
libgui/src/octave-qobject.cc:91:18: error: no matching function for call to 'objc_msgSend'
  process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
                 ^~~~~~~~~~~~

Hi Ben,

Thanks for testing on Catalina! I don't have a Catalina box yet: I'm not upgrading my main machines, and I can't get Catalina to install under VMware.

I think this was introduced by change 27575 - the App Nap/pause fix - not 27624.

I'm afraid I have no idea how to get this working, and I don't have time to do research. The C/Obj-C interface changed with the macOS 10.15 Catalina SDK, and I don't really understand it.

I suggest we just modify the #ifs to completely disable the App Nap/Objective-C stuff on Catalina and later until someone comes along who actually knows what they're doing and can fix it for real.

Cheers,
Andrew

Hi Andrew,

Do you think it is sufficient to back out one or two of your changesets?

Ben

Reply | Threaded
Open this post in threaded view
|

Re: MacOS: error: no matching function for call to 'objc_msgSend'

Andrew Janke-2


On 2/1/20 12:55 PM, Benjamin Abbott wrote:

>> On Feb 1, 2020, at 9:31 AM, Andrew Janke <[hidden email]
>> <mailto:[hidden email]>> wrote:
>>
>>
>> On 2/1/20 12:13 AM, Benjamin Abbott wrote:
>>> Andrew,
>>> I’ve just upgraded to MacOS 10.15.3.
>>> After upgrading Homebew, I now see the error below. It looks to me
>>> like this was introduced in changeset 27624. Have you upgraded to
>>> Catalina yet?
>>> Ben
>>> libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I.
>>> -I/usr/local/opt/freetype/include/freetype2
>>> -I/usr/local/Cellar/fontconfig/2.13.1/include
>>> -I/usr/local/opt/freetype/include/freetype2
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers
>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers
>>> -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src
>>> -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor
>>> -Iliboctave -I./liboctave/array -Iliboctave/numeric
>>> -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators
>>> -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp
>>> -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn
>>> -I./libinterp/corefcn -I./libinterp/octave-value
>>> -I./liboctave/wrappers -I/usr/local/opt/readline/include
>>> -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include
>>> -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include
>>> -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include
>>> -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall -W
>>> -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat
>>> -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT
>>> libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF
>>> libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c
>>> libgui/src/octave-qobject.cc <http://octave-qobject.cc>  -fno-common
>>> -DPIC -o libgui/src/.libs/libgui_src_la-octave-qobject.o
>>> libgui/src/octave-qobject.cc:91 <http://octave-qobject.cc:91>:18:
>>> error: no matching function for call to 'objc_msgSend'
>>>   process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
>>>                  ^~~~~~~~~~~~
>>
>> Hi Ben,
>>
>> Thanks for testing on Catalina! I don't have a Catalina box yet: I'm
>> not upgrading my main machines, and I can't get Catalina to install
>> under VMware.
>>
>> I think this was introduced by change 27575 - the App Nap/pause fix -
>> not 27624.
>>
>> I'm afraid I have no idea how to get this working, and I don't have
>> time to do research. The C/Obj-C interface changed with the macOS
>> 10.15 Catalina SDK, and I don't really understand it.
>>
>> I suggest we just modify the #ifs to completely disable the App
>> Nap/Objective-C stuff on Catalina and later until someone comes along
>> who actually knows what they're doing and can fix it for real.
>>
>> Cheers,
>> Andrew
>
> Hi Andrew,
>
> Do you think it is sufficient to back out one or two of your changesets?
>
> Ben
>

It would be sufficient to back out change 27575. But I don't know if we
want to do that: then we'd be back to the buggy pause()-takes-too-long
behavior. Modifying the #ifs to disable it on just Catalina shouldn't be
hard.

Cheers,
Andrew

Reply | Threaded
Open this post in threaded view
|

Re: MacOS: error: no matching function for call to 'objc_msgSend'

bpabbott
Administrator
On Feb 1, 2020, at 10:43 AM, Andrew Janke <[hidden email]> wrote:

On 2/1/20 12:55 PM, Benjamin Abbott wrote:
On Feb 1, 2020, at 9:31 AM, Andrew Janke <[hidden email]<[hidden email]>> wrote:

On 2/1/20 12:13 AM, Benjamin Abbott wrote:
Andrew,
I’ve just upgraded to MacOS 10.15.3.
After upgrading Homebew, I now see the error below. It looks to me like this was introduced in changeset 27624. Have you upgraded to Catalina yet?
Ben
libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/fontconfig/2.13.1/include -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor -Iliboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn -I./libinterp/corefcn -I./libinterp/octave-value -I./liboctave/wrappers -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c libgui/src/octave-qobject.cc <http://octave-qobject.cc>  -fno-common -DPIC -o libgui/src/.libs/libgui_src_la-octave-qobject.o
libgui/src/octave-qobject.cc:91 <http://octave-qobject.cc:91>:18: error: no matching function for call to 'objc_msgSend'
  process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
                 ^~~~~~~~~~~~

Hi Ben,

Thanks for testing on Catalina! I don't have a Catalina box yet: I'm not upgrading my main machines, and I can't get Catalina to install under VMware.

I think this was introduced by change 27575 - the App Nap/pause fix - not 27624.

I'm afraid I have no idea how to get this working, and I don't have time to do research. The C/Obj-C interface changed with the macOS 10.15 Catalina SDK, and I don't really understand it.

I suggest we just modify the #ifs to completely disable the App Nap/Objective-C stuff on Catalina and later until someone comes along who actually knows what they're doing and can fix it for real.

Cheers,
Andrew
Hi Andrew,
Do you think it is sufficient to back out one or two of your changesets?
Ben

It would be sufficient to back out change 27575. But I don't know if we want to do that: then we'd be back to the buggy pause()-takes-too-long behavior. Modifying the #ifs to disable it on just Catalina shouldn't be hard.

Cheers,
Andrew

Thanks Andrew,

I replaced Q_OS_MAC with Q_OS_MAC_REMOVE in octave-qobject.cc and am able to build again.

Ben


Reply | Threaded
Open this post in threaded view
|

Re: MacOS: error: no matching function for call to 'objc_msgSend'

apjanke-floss


On 2/1/20 8:17 PM, Benjamin Abbott wrote:

>> On Feb 1, 2020, at 10:43 AM, Andrew Janke <[hidden email]
>> <mailto:[hidden email]>> wrote:
>>
>> On 2/1/20 12:55 PM, Benjamin Abbott wrote:
>>>> On Feb 1, 2020, at 9:31 AM, Andrew Janke <[hidden email]
>>>> <mailto:[hidden email]><mailto:[hidden email]>> wrote:
>>>>
>>>> On 2/1/20 12:13 AM, Benjamin Abbott wrote:
>>>>> Andrew,
>>>>> I’ve just upgraded to MacOS 10.15.3.
>>>>> After upgrading Homebew, I now see the error below. It looks to me
>>>>> like this was introduced in changeset 27624. Have you upgraded to
>>>>> Catalina yet?
>>>>> Ben
>>>>> libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I.
>>>>> -I/usr/local/opt/freetype/include/freetype2
>>>>> -I/usr/local/Cellar/fontconfig/2.13.1/include
>>>>> -I/usr/local/opt/freetype/include/freetype2
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers
>>>>> -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers
>>>>> -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src
>>>>> -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor
>>>>> -Iliboctave -I./liboctave/array -Iliboctave/numeric
>>>>> -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators
>>>>> -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp
>>>>> -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn
>>>>> -I./libinterp/corefcn -I./libinterp/octave-value
>>>>> -I./liboctave/wrappers -I/usr/local/opt/readline/include
>>>>> -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include
>>>>> -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include
>>>>> -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include
>>>>> -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall
>>>>> -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat
>>>>> -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT
>>>>> libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF
>>>>> libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c
>>>>> libgui/src/octave-qobject.cc
>>>>> <http://octave-qobject.cc/> <http://octave-qobject.cc
>>>>> <http://octave-qobject.cc/>>  -fno-common -DPIC -o
>>>>> libgui/src/.libs/libgui_src_la-octave-qobject.o
>>>>> libgui/src/octave-qobject.cc:91
>>>>> <http://octave-qobject.cc:91/> <http://octave-qobject.cc:91
>>>>> <http://octave-qobject.cc:91/>>:18: error: no matching function for
>>>>> call to 'objc_msgSend'
>>>>>   process_info = objc_msgSend (reinterpret_cast<id>
>>>>> (process_info_class),
>>>>>                  ^~~~~~~~~~~~
>>>>
>>>> Hi Ben,
>>>>
>>>> Thanks for testing on Catalina! I don't have a Catalina box yet: I'm
>>>> not upgrading my main machines, and I can't get Catalina to install
>>>> under VMware.
>>>>
>>>> I think this was introduced by change 27575 - the App Nap/pause fix
>>>> - not 27624.
>>>>
>>>> I'm afraid I have no idea how to get this working, and I don't have
>>>> time to do research. The C/Obj-C interface changed with the macOS
>>>> 10.15 Catalina SDK, and I don't really understand it.
>>>>
>>>> I suggest we just modify the #ifs to completely disable the App
>>>> Nap/Objective-C stuff on Catalina and later until someone comes
>>>> along who actually knows what they're doing and can fix it for real.
>>>>
>>>> Cheers,
>>>> Andrew
>>> Hi Andrew,
>>> Do you think it is sufficient to back out one or two of your changesets?
>>> Ben
>>
>> It would be sufficient to back out change 27575. But I don't know if
>> we want to do that: then we'd be back to the buggy
>> pause()-takes-too-long behavior. Modifying the #ifs to disable it on
>> just Catalina shouldn't be hard.
>>
>> Cheers,
>> Andrew
>
> Thanks Andrew,
>
> I replaced Q_OS_MAC with Q_OS_MAC_REMOVE in octave-qobject.cc
> <http://octave-qobject.cc> and am able to build again.
>
> Ben
>

I have submitted a patch that suggests just disabling this App
Nap/objc_msgSend stuff on Mojave/Catalina/newer macOS versions.

https://savannah.gnu.org/bugs/index.php?57754

Fixes the build for me, while preserving the performance fix for older
macOS versions. Can you test this too?

Cheers,
Andrew

Reply | Threaded
Open this post in threaded view
|

Re: MacOS: error: no matching function for call to 'objc_msgSend'

AndrewJanke
In reply to this post by bpabbott


On 2/1/20 12:13 AM, Benjamin Abbott wrote:

> Andrew,
>
> I’ve just upgraded to MacOS 10.15.3.
>
> After upgrading Homebew, I now see the error below. It looks to me like this was introduced in changeset 27624. Have you upgraded to Catalina yet?
>
> Ben  
>
> libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/fontconfig/2.13.1/include -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor -Iliboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn -I./libinterp/corefcn -I./libinterp/octave-value -I./liboctave/wrappers -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c libgui/src/octave-qobject.cc  -fno-common -DPIC -o libgui/src/.libs/libgui_src_la-octave-qobject.o
> libgui/src/octave-qobject.cc:91:18: error: no matching function for call to 'objc_msgSend'
>   process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
>                  ^~~~~~~~~~~~
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2
>       were provided
> objc_msgSend(void /* id self, SEL op, ... */ )
> ^
> libgui/src/octave-qobject.cc:96:19: error: no matching function for call to 'objc_msgSend'
>   reason_string = objc_msgSend (reinterpret_cast<id> (objc_getClass ("NSString")),
>                   ^~~~~~~~~~~~
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2
>       were provided
> objc_msgSend(void /* id self, SEL op, ... */ )
> ^
> libgui/src/octave-qobject.cc:98:19: error: no matching function for call to 'objc_msgSend'
>   reason_string = objc_msgSend (reason_string,
>                   ^~~~~~~~~~~~
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3
>       were provided
> objc_msgSend(void /* id self, SEL op, ... */ )
> ^
> libgui/src/octave-qobject.cc:105:34: error: no matching function for call to 'objc_msgSend'
>   osx_latencycritical_activity = objc_msgSend (process_info,
>                                  ^~~~~~~~~~~~
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 4
>       were provided
> objc_msgSend(void /* id self, SEL op, ... */ )
>

Hi Ben,

I have a Catalina VM now, and I can reproduce your error. (I can
reproduce it on 10.14 Mojave too now, surprisingly.)

Patch submitted:
https://savannah.gnu.org/bugs/index.php?57754

Cheers,
Andrew
Reply | Threaded
Open this post in threaded view
|

Re: MacOS: error: no matching function for call to 'objc_msgSend'

bpabbott
Administrator

> On Feb 6, 2020, at 3:02 AM, Andrew Janke <[hidden email]> wrote:
>
> On 2/1/20 12:13 AM, Benjamin Abbott wrote:
>> Andrew,
>>
>> I’ve just upgraded to MacOS 10.15.3.
>>
>> After upgrading Homebew, I now see the error below. It looks to me like this was introduced in changeset 27624. Have you upgraded to Catalina yet?
>>
>> Ben  
>>
>> libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/fontconfig/2.13.1/include -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/qt/5.14.1/lib/QtNetwork.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtPrintSupport.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtHelp.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtWidgets.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtGui.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtSql.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtXml.framework/Headers -I/usr/local/Cellar/qt/5.14.1/lib/QtCore.framework/Headers -I./libgui/qterminal/libqterminal -Ilibgui/src -I./libgui/src -Ilibgui/graphics -I./libgui/graphics -I./libgui/src/m-editor -Iliboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -Ilibinterp -I./libinterp -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn -I./libinterp/corefcn -I./libinterp/octave-value -I./liboctave/wrappers -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/openssl/include -I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include -I/usr/local/opt/qt5/include -I/usr/local/opt/sundials27/include -I/usr/local/opt/zlib/include -fPIC -D_THREAD_SAFE -pthread -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -MT libgui/src/libgui_src_la-octave-qobject.lo -MD -MP -MF libgui/src/.deps/libgui_src_la-octave-qobject.Tpo -c libgui/src/octave-qobject.cc  -fno-common -DPIC -o libgui/src/.libs/libgui_src_la-octave-qobject.o
>> libgui/src/octave-qobject.cc:91:18: error: no matching function for call to 'objc_msgSend'
>>  process_info = objc_msgSend (reinterpret_cast<id> (process_info_class),
>>                 ^~~~~~~~~~~~
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2
>>      were provided
>> objc_msgSend(void /* id self, SEL op, ... */ )
>> ^
>> libgui/src/octave-qobject.cc:96:19: error: no matching function for call to 'objc_msgSend'
>>  reason_string = objc_msgSend (reinterpret_cast<id> (objc_getClass ("NSString")),
>>                  ^~~~~~~~~~~~
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2
>>      were provided
>> objc_msgSend(void /* id self, SEL op, ... */ )
>> ^
>> libgui/src/octave-qobject.cc:98:19: error: no matching function for call to 'objc_msgSend'
>>  reason_string = objc_msgSend (reason_string,
>>                  ^~~~~~~~~~~~
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3
>>      were provided
>> objc_msgSend(void /* id self, SEL op, ... */ )
>> ^
>> libgui/src/octave-qobject.cc:105:34: error: no matching function for call to 'objc_msgSend'
>>  osx_latencycritical_activity = objc_msgSend (process_info,
>>                                 ^~~~~~~~~~~~
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 4
>>      were provided
>> objc_msgSend(void /* id self, SEL op, ... */ )
>>
>
> Hi Ben,
>
> I have a Catalina VM now, and I can reproduce your error. (I can
> reproduce it on 10.14 Mojave too now, surprisingly.)
>
> Patch submitted:
> https://savannah.gnu.org/bugs/index.php?57754
>
> Cheers,
> Andrew

Hi Andrew,

I’ve applied the patch and built on Catalina.

Thanks.
Ben