Opened 11 years ago

Closed 11 years ago

#41371 closed defect (fixed)

mythtv-core.27 fails to build on Mavericks

Reported by: ctreleaven (Craig Treleaven) Owned by: ctreleaven (Craig Treleaven)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: mavericks Cc: mkae (Marko Käning)
Port: mythtv-core.27

Description

Compilation fails with the message:

:info:build /usr/bin/clang++ -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -fomit-frame-pointer -fPIC -g -Wall -Wpointer-arith -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -Wno-self-assign -Wno-constant-logical-operand -Wno-unused-value -Qunused-arguments -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.9 -fPIC -DMMX -DUSING_APPLEREMOTE -D_GNU_SOURCE -DUSE_LIRC -DUSE_OPENGL_PAINTER -DUSING_QTWEBKIT -DMUI_API -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/local/share/qt4/mkspecs/macx-g++ -I. -I. -I/opt/local/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtNetwork.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtOpenGL.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtXml.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtSql.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtWebKit.framework/Versions/4/Headers -I/opt/local/include/libxml2 -I../../external/qjson/include -I../libmythbase -I../.. -I.. -I../../external/FFmpeg -I/opt/local/Library/Frameworks/QtWebKit.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtSql.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtXml.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtOpenGL.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtNetwork.framework/Versions/4/Headers -I/opt/local/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/include -I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/System/Library/Frameworks/AGL.framework/Headers -F/opt/local/Library/Frameworks -F/opt/local/lib -o mythrect.o mythrect.cpp
:info:build mythpainter.cpp:215:36: error: no member named 'abs' in namespace 'std'
:info:build         std::max(outlineSize, std::abs(shadowOffset.y()));
:info:build                               ~~~~~^

A bit of Google search reveals that if the Command Line Tools from Xcode 4.6.3 are installed, such errors do not occur. See:

https://github.com/mxcl/homebrew/issues/21709

Attachments (2)

main.log (813.5 KB) - added by ctreleaven (Craig Treleaven) 11 years ago.
patch-various_c++_v_stdc++.diff (1.4 KB) - added by ctreleaven (Craig Treleaven) 11 years ago.

Download all attachments as: .zip

Change History (12)

Changed 11 years ago by ctreleaven (Craig Treleaven)

Attachment: main.log added

comment:1 Changed 11 years ago by ctreleaven (Craig Treleaven)

Argh, forgot to set myself as the owner. Could someone with commit rights please fix? Thanks,

Other tickets seemingly affected by the same issue:

#41172

#41049

Last edited 11 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:2 Changed 11 years ago by larryv (Lawrence Velázquez)

Owner: changed from macports-tickets@… to ctreleaven@…

comment:3 Changed 11 years ago by mkae (Marko Käning)

Cc: mk@… added

Cc Me!

comment:4 in reply to:  1 Changed 11 years ago by mkae (Marko Käning)

Replying to ctreleaven@…:

Could someone with commit rights please fix? Thanks,

I have commit rights, but I don't know how to fix this. In those homebrew tickets it is suggested to mess with /System/Library/CoreService which I don't think is the right approach here.

comment:5 Changed 11 years ago by ctreleaven (Craig Treleaven)

Thanks, mk, I just meant to fix the ticket so it lists me as the owner--which larryv was kind enough to do.

Regarding Myth and Mavericks, I believe the problem is libc++ v. libstdc++. I'm trying to add -stdlib=libstdc++ to the linking command to get around this. At the moment, Myth's version of ffmpeg isn't cooperating but I'm going to try blunt force, next!

comment:6 Changed 11 years ago by mkae (Marko Käning)

OK, that was a misunderstanding on my end. :)

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

I think the problem is just that myth's code is not fully compatible with libc++, and the correct solution is not to switch to libstdc++ but to fix the code to be compatible with libc++.

Googling this error led me to this page about a different package that suggests that adding #include <cstdlib> is a fix.

comment:8 Changed 11 years ago by ctreleaven (Craig Treleaven)

Thanks, Ryan, you are right. Turns out there were three small changes necessary to get Myth to compile with libc++. However, it now crashes on startup. The error message mentions something about a font (don't have the details here, now) and I wonder if it is affected by the recent Freetype update. Will look into that.

Changed 11 years ago by ctreleaven (Craig Treleaven)

comment:9 Changed 11 years ago by mkae (Marko Käning)

Herewith I can verify that installing MythTV-core.27 on 10.9 works due to r114355 now.

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

Resolution: fixed
Status: newclosed

Me too.

Note: See TracTickets for help on using tickets.