Message boards :
Number crunching :
Boinc v7.8.0 for linux
Message board moderation
Previous · 1 · 2 · 3 · 4 · 5 · 6 · 7 . . . 10 · Next
Author | Message |
---|---|
Juha Send message Joined: 7 Mar 04 Posts: 388 Credit: 1,857,738 RAC: 0 |
Could you all test the other menu entries in Activity menu as well? |
TBar Send message Joined: 22 May 99 Posts: 5204 Credit: 840,779,836 RAC: 2,768 |
wxWidgets is C++ code and for C++ the rule is simple: use the same compiler for everything. It might work if the compiler versions are almost same, like x.y.1 and x.y.2. It's unlikely to work if there is a bigger difference.Yes, but it does seem odd that it runs through just about the entire compile, many pages dealing with wxWidgets, before stopping at those particular errors. There are quite a few areas where it could have stopped before that particular area, and those suspect errors. It just looks suspicious to me; CXXLD boincmgr boincmgr-BOINCListCtrl.o:(.rodata._ZTV14CBOINCListCtrl[_ZTV14CBOINCListCtrl]+0x778): undefined reference to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)' boincmgr-DlgEventLogListCtrl.o:(.rodata._ZTV20CDlgEventLogListCtrl[_ZTV20CDlgEventLogListCtrl]+0x770): undefined reference to `non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)' `.text._ZN10wxScrolledI7wxPanelED2Ev' referenced in section `.text._ZN10wxScrolledI7wxPanelED1Ev[_ZN10wxScrolledI7wxPanelED1Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_adv-3.0.a(advlib_wizard.o): defined in discarded section `.text._ZN10wxScrolledI7wxPanelED2Ev[_ZN10wxScrolledI7wxPanelED5Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_adv-3.0.a(advlib_wizard.o) `.text._ZN17wxWindowWithItemsI9wxControl15wxItemContainerED2Ev' referenced in section `.text._ZN17wxWindowWithItemsI9wxControl15wxItemContainerED1Ev[_ZN17wxWindowWithItemsI9wxControl15wxItemContainerED1Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_adv-3.0.a(advlib_gtk_bmpcbox.o): defined in discarded section `.text._ZN17wxWindowWithItemsI9wxControl15wxItemContainerED2Ev[_ZN17wxWindowWithItemsI9wxControl15wxItemContainerED5Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_adv-3.0.a(advlib_gtk_bmpcbox.o) `.text._ZN14wxTextCtrlBaseD2Ev' referenced in section `.text._ZN14wxTextCtrlBaseD1Ev[_ZN14wxTextCtrlBaseD1Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_core-3.0.a(corelib_gtk_textctrl.o): defined in discarded section `.text._ZN14wxTextCtrlBaseD2Ev[_ZN14wxTextCtrlBaseD5Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_core-3.0.a(corelib_gtk_textctrl.o) `.text._ZN14wxTextCtrlBaseD2Ev' referenced in section `.text._ZN14wxTextCtrlBaseD1Ev[_ZN14wxTextCtrlBaseD1Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_core-3.0.a(corelib_gtk_textctrl.o): defined in discarded section `.text._ZN14wxTextCtrlBaseD2Ev[_ZN14wxTextCtrlBaseD5Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_core-3.0.a(corelib_gtk_textctrl.o) `.text._ZN14wxTextCtrlBaseD2Ev' referenced in section `.text._ZN14wxTextCtrlBaseD1Ev[_ZN14wxTextCtrlBaseD1Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_core-3.0.a(corelib_gtk_textctrl.o): defined in discarded section `.text._ZN14wxTextCtrlBaseD2Ev[_ZN14wxTextCtrlBaseD5Ev]' of /home/tbar/wxWidgets-3.0.3/lib/libwx_gtk2u_core-3.0.a(corelib_gtk_textctrl.o) collect2: error: ld returned 1 exit status Makefile:686: recipe for target 'boincmgr' failed make[2]: *** [boincmgr] Error 1 make[2]: Leaving directory '/home/tbar/boinc-client_release-7-7.8/clientgui' Makefile:646: recipe for target 'all-recursive' failed Why, if those errors are actual, you would expect problems with list control, and text control in boincmgr. Oh wait, The Tasks page scrolls wildly when items are removed or added to the list. The Event Log doesn't print text it should print until scrolled. The list in the Activity Menu doesn't seem to be controlled correctly. I'm sure there are others as yet undiscovered. |
Richard Haselgrove Send message Joined: 4 Jul 99 Posts: 14654 Credit: 200,643,578 RAC: 874 |
The thing is, I don't think I ever figured out where those Activity settings are actually stored. Does anybody know?Currently (self build for Windows, using v7.7.0 test source) they are kept in the very final block of client_state.xml, in the form: <user_run_request>1</user_run_request> <user_run_prev_request>2</user_run_prev_request> <user_gpu_request>1</user_gpu_request> <user_gpu_prev_request>2</user_gpu_prev_request> <user_network_request>3</user_network_request>'Very' old versions of BOINC may store them earlier in the file. |
Jeff Buck Send message Joined: 11 Feb 00 Posts: 1441 Credit: 148,764,870 RAC: 0 |
Ah, now I see. Thanks for that, Richard. Yes, they're stored in the same place in 7.2.42. I just wasn't using the right keywords to look for them. (Somehow, I thought the word "activity" would be involved! ;^)) The client_state values on my machines have the value of '2' for all settings, as I would expect, since "based on preferences" is my normal state. So, BOINC in Linux has (and uses) the correct settings, it just doesn't display them correctly in the Manager, where all 3 Activity settings display as "always" whenever BOINC restarts. |
Richard Haselgrove Send message Joined: 4 Jul 99 Posts: 14654 Credit: 200,643,578 RAC: 874 |
May I take it that with the '2' values in client_state, BOINC obeys your 'according to preferences' setting? That reduces the bug localisation to the initial startup failing to set the radio buttons to the desired (and stored) values. That should be easier to track down. |
Jeff Buck Send message Joined: 11 Feb 00 Posts: 1441 Credit: 148,764,870 RAC: 0 |
May I take it that with the '2' values in client_state, BOINC obeys your 'according to preferences' setting? That reduces the bug localisation to the initial startup failing to set the radio buttons to the desired (and stored) values. That should be easier to track down.Yes, as far as I can tell, it does. I've really only been aware of the discrepancy in regard to the network activity, since that's the one I change when recovering ghosts. In those cases, I set it to "suspend" before shutting down BOINC. BOINC respects the "suspend" setting when it restarts, confirmed both by my observation and by a line in the Event Log, but the display in the Activity menu reverts to "always available". Only when I then click on the "according to preferences" selection does the menu display realign with the setting that BOINC is actually operating with, again confirmed by a line in the Event Log to the effect that network activity is resumed. EDIT: And, again, this is with the 7.2.42 version in Linux. I haven't tried any later versions. |
Keith Myers Send message Joined: 29 Apr 01 Posts: 13164 Credit: 1,160,866,277 RAC: 1,873 |
Could you all test the other menu entries in Activity menu as well? Yes the other options in Activity display the same issue. The radio button does not track state until you have opened the Activity window 3 times. Seti@Home classic workunits:20,676 CPU time:74,226 hours A proud member of the OFA (Old Farts Association) |
TBar Send message Joined: 22 May 99 Posts: 5204 Credit: 840,779,836 RAC: 2,768 |
May I take it that with the '2' values in client_state, BOINC obeys your 'according to preferences' setting? That reduces the bug localisation to the initial startup failing to set the radio buttons to the desired (and stored) values. That should be easier to track down.I'm not sure a startup issue would explain why when using the same version of BOINC in Ubuntu 14.04 & 16.04 you have to make 2 clicks in 16.04 to have the menu change status, while in 14.04 One click will change the status. Doesn't appear to be a startup issue to me. |
Keith Myers Send message Joined: 29 Apr 01 Posts: 13164 Credit: 1,160,866,277 RAC: 1,873 |
May I take it that with the '2' values in client_state, BOINC obeys your 'according to preferences' setting? That reduces the bug localisation to the initial startup failing to set the radio buttons to the desired (and stored) values. That should be easier to track down.I'm not sure a startup issue would explain why when using the same version of BOINC in Ubuntu 14.04 & 16.04 you have to make 2 clicks in 16.04 to have the menu change status, while in 14.04 One click will change the status. Doesn't appear to be a startup issue to me. I concur. It is NOT a startup issue alone. Seti@Home classic workunits:20,676 CPU time:74,226 hours A proud member of the OFA (Old Farts Association) |
Richard Haselgrove Send message Joined: 4 Jul 99 Posts: 14654 Credit: 200,643,578 RAC: 874 |
It would make sense if the menu was showing the wrong value from startup. The first click would change the underlying setting to match what was being displayed already, the second click would change both setting and display to a new value. For complete diagnosis, track all of: * display * stored value * behaviour making notes of all three values at each step throughout the process. |
TBar Send message Joined: 22 May 99 Posts: 5204 Credit: 840,779,836 RAC: 2,768 |
After Many Clicks, Long after startup, it still takes Two clicks in 16.04 to change the menu status, while One click works in 14.04 or 12.04. Jeff isn't running 16.04, we are. |
Richard Haselgrove Send message Joined: 4 Jul 99 Posts: 14654 Credit: 200,643,578 RAC: 874 |
So you're saying that this isn't a problem for BOINC to fix, but for Linux to fix? |
Jeff Buck Send message Joined: 11 Feb 00 Posts: 1441 Credit: 148,764,870 RAC: 0 |
With 7.2.42 in Ubuntu 14.04, what I found is that, at BOINC startup, all three activity settings are shown in the menu in the "always" state, regardless of the setting in client_state. A single click immediately changes the button in the display and the corresponding state (1, 2, or 3) is also stored in client_state, which is immediately written to disk. The menu display retains the selected setting until the next restart. As far as I know, it's worked that way since I first started running Linux, although network activity is really the only one of the settings that I fooled around with (until now). I don't think anything has been affected by Linux kernel updates. BOINC 7.2.42 and Ubuntu 14.04 is the only combination that I have available to test. |
TBar Send message Joined: 22 May 99 Posts: 5204 Credit: 840,779,836 RAC: 2,768 |
So you're saying that this isn't a problem for BOINC to fix, but for Linux to fix? What I'm saying is you are troubleshooting a different problem than the one Keith and myself have been describing. We are having it take Two clicks to change the status, it only takes Jeff One click. |
Keith Myers Send message Joined: 29 Apr 01 Posts: 13164 Credit: 1,160,866,277 RAC: 1,873 |
So you're saying that this isn't a problem for BOINC to fix, but for Linux to fix? It might be. However BOINC is the only Linux application I am seeing the issue with. All other Linux applications immediately respond to a desired state change with ONE click. Seti@Home classic workunits:20,676 CPU time:74,226 hours A proud member of the OFA (Old Farts Association) |
TBar Send message Joined: 22 May 99 Posts: 5204 Credit: 840,779,836 RAC: 2,768 |
I'm not really interested in one or two clicks, however, if someone can tell me how to fix this compile error it would be greatly appreciated; /home/tbar/wxWidgets-3.1.0/include/wx/utils.h:604:52: warning: redundant redeclaration of ‘void wxQsort(void*, size_t, size_t, wxSortCallback, const void*)’ in same scope [-Wredundant-decls] /home/tbar/wxWidgets-3.1.0/include/wx/vector.h:44:23: warning: previous declaration of ‘void wxQsort(void*, size_t, size_t, wxSortCallback, const void*)’ [-Wredundant-decls] CXX boincmgr-ViewProjects.o In file included from /home/tbar/wxWidgets-3.1.0/include/wx/cursor.h:75:0, from /home/tbar/wxWidgets-3.1.0/include/wx/event.h:21, from /home/tbar/wxWidgets-3.1.0/include/wx/wx.h:24, from stdwx.h:49, from ViewProjects.cpp:22: /home/tbar/wxWidgets-3.1.0/include/wx/utils.h:604:52: warning: redundant redeclaration of ‘void wxQsort(void*, size_t, size_t, wxSortCallback, const void*)’ in same scope [-Wredundant-decls] /home/tbar/wxWidgets-3.1.0/include/wx/vector.h:44:23: warning: previous declaration of ‘void wxQsort(void*, size_t, size_t, wxSortCallback, const void*)’ [-Wredundant-decls] ViewProjects.cpp: In constructor ‘CViewProjects::CViewProjects(wxNotebook*)’: ViewProjects.cpp:186:53: error: ‘wxADJUST_MINSIZE’ was not declared in this scope make[2]: *** [boincmgr-ViewProjects.o] Error 1 make[2]: Leaving directory `/home/tbar/boinc-client_release-7-7.8/clientgui' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/tbar/boinc-client_release-7-7.8' make: *** [all] Error 2 That's trying to compile 7.8.2 using wxWidgets 3.1.0 static libraries in Ubuntu 12.04. |
Juha Send message Joined: 7 Mar 04 Posts: 388 Credit: 1,857,738 RAC: 0 |
Yes, but it does seem odd that it runs through just about the entire compile, many pages dealing with wxWidgets, before stopping at those particular errors. Yep, the differences between compilers show at linking stage. C++ is a complex language and the compiler needs to mangle* names so that linker finds them later. Different compiler and compiler versions use different rules for mangling. Lets take the first one, "non-virtual thunk to wxGenericListCtrl::GetSizeAvailableForScrollTarget(wxSize const&)" for example. g++ 4.8.4 (Ubuntu 14.04) mangles it to _ZThn704_N17wxGenericListCtrl31GetSizeAvailableForScrollTargetERK6wxSize g++ 5.3.1 (Ubuntu 16.04) mangles it to _ZThn776_N17wxGenericListCtrl31GetSizeAvailableForScrollTargetERK6wxSize See how _ZThn704 changed to _ZThn776. When you compile wxWidgets on Ubuntu 16.04 _ZThn776... is stored into the library. When you compile Manager on Ubuntu 14.04 the compiler stores _ZThn704... into the Manager's object file. When the linker then goes to put the object files and library together to form the Manager executable it can't find _ZThn704... in the library because the name is different there. That there are undefined references in the same source files that have other problems is just a coincidence. Linking problems and other problems are not related in any way. * Name mangling is the technical term. Google it if you don't believe me. |
Juha Send message Joined: 7 Mar 04 Posts: 388 Credit: 1,857,738 RAC: 0 |
ViewProjects.cpp:186:53: error: ‘wxADJUST_MINSIZE’ was not declared in this scope Make this change: diff --git a/clientgui/BOINCBaseView.h b/clientgui/BOINCBaseView.h index 21a72ea..8bef7d1 100644 --- a/clientgui/BOINCBaseView.h +++ b/clientgui/BOINCBaseView.h @@ -23,7 +23,7 @@ #endif -#define DEFAULT_TASK_FLAGS wxTAB_TRAVERSAL | wxADJUST_MINSIZE | wxFULL_REPAINT_ON_RESIZE +#define DEFAULT_TASK_FLAGS wxTAB_TRAVERSAL | wxFULL_REPAINT_ON_RESIZE #define DEFAULT_LIST_FLAGS wxLC_REPORT | wxLC_VIRTUAL | wxLC_HRULES class CBOINCTaskCtrl; That'll make it into repository at some point. |
Keith Myers Send message Joined: 29 Apr 01 Posts: 13164 Credit: 1,160,866,277 RAC: 1,873 |
No, I didn't believe you :-} I did a doubletake and thought you were joshing. Google is your friend. Seti@Home classic workunits:20,676 CPU time:74,226 hours A proud member of the OFA (Old Farts Association) |
TBar Send message Joined: 22 May 99 Posts: 5204 Credit: 840,779,836 RAC: 2,768 |
Make this change:I'm not sure which parts to add, I ended up with; #ifndef BOINC_BOINCBASEVIEW_H #define BOINC_BOINCBASEVIEW_H #if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "BOINCBaseView.cpp" #endif #define DEFAULT_TASK_FLAGS wxTAB_TRAVERSAL | wxFULL_REPAINT_ON_RESIZE #define DEFAULT_LIST_FLAGS wxLC_REPORT | wxLC_VIRTUAL | wxLC_HRULES class CBOINCTaskCtrl; Then at the end it gave another set of errors; CXXLD boincmgr boincmgr-NoticeListCtrl.o: In function `wxString::ImplStr(char const*, wxMBConv const&)': /home/tbar/wxWidgets-3.1.0/include/wx/string.h:361: undefined reference to `wxWebViewNameStr' boincmgr-NoticeListCtrl.o: In function `CNoticeListCtrl::Create(wxWindow*)': /home/tbar/boinc-client_release-7-7.8/clientgui/NoticeListCtrl.cpp:87: undefined reference to `wxWebViewBackendDefault' /home/tbar/boinc-client_release-7-7.8/clientgui/NoticeListCtrl.cpp:87: undefined reference to `wxWebViewDefaultURLStr' /home/tbar/boinc-client_release-7-7.8/clientgui/NoticeListCtrl.cpp:87: undefined reference to `wxWebView::New(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, wxString const&, long, wxString const&)' boincmgr-NoticeListCtrl.o: In function `__static_initialization_and_destruction_0': /home/tbar/boinc-client_release-7-7.8/clientgui/NoticeListCtrl.cpp:57: undefined reference to `wxEVT_WEBVIEW_NAVIGATING' /home/tbar/boinc-client_release-7-7.8/clientgui/NoticeListCtrl.cpp:57: undefined reference to `wxEVT_WEBVIEW_ERROR' collect2: ld returned 1 exit status make[2]: *** [boincmgr] Error 1 make[2]: Leaving directory `/home/tbar/boinc-client_release-7-7.8/clientgui' Should I have added more to BOINCBASEVIEW_H? I hate coincidences ;-) |
©2024 University of California
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.