Opened 16 months ago
Closed 16 months ago
#67838 closed defect (fixed)
qtruby: possible to support a modern Ruby?
Reported by: | barracuda156 | Owned by: | barracuda156 |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.1 |
Keywords: | Cc: | ||
Port: | qtruby, ruby |
Description
The port has archaic Ruby variants, 1.8 and 1.9. We are at 3.2 now.
- S. Ruby versions between 2.6 and 3.0 are broken for PPC to a varying extent, so it is desirable to aim at 3.1+.
Change History (7)
comment:1 Changed 16 months ago by barracuda156
comment:2 Changed 16 months ago by barracuda156
Port: | ruby added |
---|
comment:4 Changed 16 months ago by barracuda156
It actually might work. Switching to modern GCC (no extra patches), build gets quite a bit further and fails on linking due to a wrong Ruby dylib being passed (which is totally fixable):
[ 26%] Linking CXX shared library libqtruby4shared.dylib cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_qtruby/qtruby/work/build/src && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/qtruby4shared.dir/link.txt --verbose=ON /opt/local/bin/g++-mp-12 -pipe -Os -DNDEBUG -arch ppc -mmacosx-version-min=10.6 -dynamiclib -Wl,-headerpad_max_install_names -Wl,-headerpad_max_install_names -compatibility_version 2.0.0 -current_version 2.0.0 -o libqtruby4shared.2.0.0.dylib -install_name /opt/local/lib/libqtruby4shared.2.dylib CMakeFiles/qtruby4shared.dir/Qt.cpp.o CMakeFiles/qtruby4shared.dir/handlers.cpp.o CMakeFiles/qtruby4shared.dir/marshall_types.cpp.o -Wl,-rpath,/opt/local/lib /opt/local/libexec/qt4/lib/libQtCore.dylib /opt/local/libexec/qt4/lib/libQtGui.dylib //usr/lib/libruby.dylib /opt/local/libexec/qt4/lib/libQtNetwork.dylib /opt/local/lib/libsmokebase.dylib /opt/local/lib/libsmokeqtcore.dylib /opt/local/lib/libsmokeqtgui.dylib /opt/local/lib/libsmokeqtxml.dylib /opt/local/lib/libsmokeqtopengl.dylib /opt/local/lib/libsmokeqtsql.dylib /opt/local/lib/libsmokeqtnetwork.dylib /opt/local/lib/libsmokeqtdbus.dylib /opt/local/lib/libsmokeqtsvg.dylib Undefined symbols: "_rb_str_new_cstr", referenced from: _set_obj_info in Qt.cpp.o
Going off now, will return to this tomorrow. May be an easy fix.
comment:5 Changed 16 months ago by barracuda156
I got to here:
In file included from /opt/local/libexec/qt4/include/QtCore/qatomic_macosx.h:52, from /opt/local/libexec/qt4/include/QtCore/qatomic_arch.h:72, from /opt/local/libexec/qt4/include/QtCore/qbasicatomic.h:227, from /opt/local/libexec/qt4/include/QtCore/qatomic.h:46, from /opt/local/libexec/qt4/include/QtCore/qhash.h:45, from /opt/local/libexec/qt4/include/QtCore/QHash:1, from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/qtruby-4.14.3/src/qtruby.h:21, from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/qtruby-4.14.3/modules/phonon/phononhandlers.cpp:20: /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicInt::ref()': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:120:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 120 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:121:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 121 | register int newValue; | ^~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicInt::deref()': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:137:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 137 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:138:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 138 | register int newValue; | ^~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicInt::testAndSetRelaxed(int, int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:154:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 154 | register int result; | ^~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicInt::testAndSetAcquire(int, int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:171:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 171 | register int result; | ^~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicInt::testAndSetRelease(int, int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:189:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 189 | register int result; | ^~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'int QBasicAtomicInt::fetchAndStoreRelaxed(int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:207:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 207 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'int QBasicAtomicInt::fetchAndStoreAcquire(int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:221:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 221 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'int QBasicAtomicInt::fetchAndStoreRelease(int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:236:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 236 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'int QBasicAtomicInt::fetchAndAddRelaxed(int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:251:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 251 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:252:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 252 | register int newValue; | ^~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'int QBasicAtomicInt::fetchAndAddAcquire(int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:268:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 268 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:269:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 269 | register int newValue; | ^~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'int QBasicAtomicInt::fetchAndAddRelease(int)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:286:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 286 | register int originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:287:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 287 | register int newValue; | ^~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicPointer<T>::testAndSetRelaxed(T*, T*)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:313:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 313 | register void *result; | ^~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicPointer<T>::testAndSetAcquire(T*, T*)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:331:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 331 | register void *result; | ^~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'bool QBasicAtomicPointer<T>::testAndSetRelease(T*, T*)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:350:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 350 | register void *result; | ^~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'T* QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T*)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:369:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 369 | register T *originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'T* QBasicAtomicPointer<T>::fetchAndStoreAcquire(T*)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:384:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 384 | register T *originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'T* QBasicAtomicPointer<T>::fetchAndStoreRelease(T*)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:400:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 400 | register T *originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'T* QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:416:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 416 | register T *originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:417:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 417 | register T *newValue; | ^~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'T* QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:434:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 434 | register T *originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:435:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 435 | register T *newValue; | ^~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h: In member function 'T* QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff)': /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:453:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 453 | register T *originalValue; | ^~~~~~~~~~~~~ /opt/local/libexec/qt4/include/QtCore/qatomic_powerpc.h:454:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 454 | register T *newValue; | ^~~~~~~~ /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/qtruby-4.14.3/src/qtruby.cpp: In function 'VALUE isObject(VALUE, VALUE)': /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/qtruby-4.14.3/src/qtruby.cpp:2097:17: error: ordered comparison of pointer with integer zero ('void*' and 'int') 2097 | return (ptr > 0 ? Qtrue : Qfalse); | ~~~~^~~ make[2]: *** [src/CMakeFiles/qtruby4.dir/qtruby.cpp.o] Error 1 make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/build' make[1]: *** [src/CMakeFiles/qtruby4.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 97%] Linking CXX shared module phonon.so cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/build/modules/phonon && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/rubyphonon.dir/link.txt --verbose=ON /opt/local/bin/g++-mp-12 -pipe -Os -DNDEBUG -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -bundle -Wl,-headerpad_max_install_names -Wl,-headerpad_max_install_names -o phonon.so CMakeFiles/rubyphonon.dir/phonon.cpp.o CMakeFiles/rubyphonon.dir/phononhandlers.cpp.o -Wl,-rpath,/opt/local/lib /opt/local/lib/libphonon.dylib /opt/local/lib/libsmokephonon.dylib ../../src/libqtruby4shared.2.0.0.dylib /opt/local/libexec/qt4/lib/libQtCore.dylib /opt/local/libexec/qt4/lib/libQtGui.dylib /opt/local/lib/libruby3.2.dylib /opt/local/libexec/qt4/lib/libQtNetwork.dylib /opt/local/lib/libsmokebase.dylib /opt/local/lib/libsmokeqtcore.dylib /opt/local/lib/libsmokeqtgui.dylib /opt/local/lib/libsmokeqtxml.dylib /opt/local/lib/libsmokeqtopengl.dylib /opt/local/lib/libsmokeqtsql.dylib /opt/local/lib/libsmokeqtnetwork.dylib /opt/local/lib/libsmokeqtdbus.dylib /opt/local/lib/libsmokeqtsvg.dylib make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/build' [ 97%] Built target rubyphonon make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_kde_qtruby/qtruby/work/build' make: *** [all] Error 2
comment:7 Changed 16 months ago by barracuda156
Owner: | set to barracuda156 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.
Ok, simply swiping in Ruby 3.1 failed: