openMSX / wxcatapult

23 stars 4 forks source link

compiling wxcatapult fails on linking #37

Closed rderooy closed 5 years ago

rderooy commented 8 years ago

System: Fedora 23 x86_64 openmsx 0.12 installed and working

when trying to build openmsx-wxcatapult from git, it fails on a linker error;

$ make
Probing target system...

Found libraries:
  wxWidgets:       2.8.12
  wxWidgets XRC:   yes
  libxml2:         2.9.3

Found headers:
  wxWidgets:       yes
  wxWidgets XRC:   yes
  libxml2:         yes

Customizable options:
  Install to:                       /usr/share/openmsx-catapult
  Default openMSX binary location:  /usr/bin/openmsx
  Default openMSX system share dir: /usr/share/openmsx/
  (you can edit these in build/custom.mk)

Creating derived/x86_64-linux-opt/config/config.h...
Creating derived/x86_64-linux-opt/config/Version.ii...
Build configuration
  Platform: x86_64-linux
  Flavour:  opt
Compiling CatapultPage...
Compiling wxCatapultApp...
Compiling wxCatapultFrm...
Compiling CatapultConfigDlg...
Compiling ConfigurationData...
Compiling PipeReadThread...
Compiling CatapultXMLParser...
Compiling SessionPage...
src/SessionPage.cpp: In member function ‘void SessionPage::GetRomTypes()’:
src/SessionPage.cpp:890:6: warning: unused variable ‘code’ [-Wunused-variable]
  int code = wxExecute(cmd + wxT(" -bash -romtype"), output);
      ^
Compiling InputPage...
Compiling StatusPage...
Compiling VideoControlPage...
Compiling AudioControlPage...
Compiling MiscControlPage...
Compiling openMSXController...
Compiling FullScreenDlg...
Compiling ScreenShotDlg...
Compiling Version...
Compiling RomTypeDlg...
Compiling IPSSelectionDlg...
Compiling AboutDlg...
Compiling CheckConfigsDlg...
Compiling utils...
Linking catapult...
/usr/bin/ld: derived/x86_64-linux-opt/obj/CatapultPage.o: relocation R_X86_64_32S against `_ZTV20wxThreadHelperThread' can not be used when making a shared object; recompile with -fPIC
derived/x86_64-linux-opt/obj/CatapultPage.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
build/main.mk:305: recipe for target 'derived/x86_64-linux-opt/bin/catapult' failed
make: *** [derived/x86_64-linux-opt/bin/catapult] Error 1
MBilderbeek commented 8 years ago

Strange, it compiles fine here on Debian. Does it make a difference if you use wxWidgets 3.0?

rderooy commented 8 years ago

Yes that does work... Although with a few more warnings. I uninstalled wxWidgets 2.8 and installed 3.0.2. I also had to create a symlink from wx-config-3.0 to wx-config.

$ make
Probing target system...

Found libraries:
  wxWidgets:       3.0.2
  wxWidgets XRC:   yes
  libxml2:         2.9.3

Found headers:
  wxWidgets:       yes
  wxWidgets XRC:   yes
  libxml2:         yes

Customizable options:
  Install to:                       /usr/share/openmsx-catapult
  Default openMSX binary location:  /usr/bin/openmsx
  Default openMSX system share dir: /usr/share/openmsx/
  (you can edit these in build/custom.mk)

Creating derived/x86_64-linux-opt/config/config.h...
Creating derived/x86_64-linux-opt/config/Version.ii...
Build configuration
  Platform: x86_64-linux
  Flavour:  opt
Compiling CatapultPage...
Compiling wxCatapultApp...
Compiling wxCatapultFrm...
Compiling CatapultConfigDlg...
Compiling ConfigurationData...
Compiling PipeReadThread...
Compiling CatapultXMLParser...
Compiling SessionPage...
src/SessionPage.cpp: In member function ‘void SessionPage::GetRomTypes()’:
src/SessionPage.cpp:890:6: warning: unused variable ‘code’ [-Wunused-variable]
  int code = wxExecute(cmd + wxT(" -bash -romtype"), output);
      ^
Compiling InputPage...
Compiling StatusPage...
Compiling VideoControlPage...
src/VideoControlPage.cpp: In constructor ‘VideoControlPage::VideoControlPage(wxWindow*, openMSXController&)’:
src/VideoControlPage.cpp:66:32: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_blurSlider->SetTickFreq(5, 1);
                                ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/VideoControlPage.h:4,
                 from src/VideoControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
src/VideoControlPage.cpp:68:32: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_glowSlider->SetTickFreq(5, 1);
                                ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/VideoControlPage.h:4,
                 from src/VideoControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
src/VideoControlPage.cpp:70:34: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_gammaSlider->SetTickFreq(25, 1);
                                  ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/VideoControlPage.h:4,
                 from src/VideoControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
src/VideoControlPage.cpp:72:36: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_scanlineSlider->SetTickFreq(5, 1);
                                    ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/VideoControlPage.h:4,
                 from src/VideoControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
Compiling AudioControlPage...
Compiling MiscControlPage...
src/MiscControlPage.cpp: In constructor ‘MiscControlPage::MiscControlPage(wxWindow*, openMSXController&)’:
src/MiscControlPage.cpp:74:34: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_speedSlider->SetTickFreq(25, 1);
                                  ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/MiscControlPage.h:4,
                 from src/MiscControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
src/MiscControlPage.cpp:75:40: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_maxFrameSkipSlider->SetTickFreq(5, 1);
                                        ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/MiscControlPage.h:4,
                 from src/MiscControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
src/MiscControlPage.cpp:76:40: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_minFrameSkipSlider->SetTickFreq(5, 1);
                                        ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/MiscControlPage.h:4,
                 from src/MiscControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
src/MiscControlPage.cpp:77:39: warning: ‘void wxSliderBase::SetTickFreq(int, int)’ is deprecated [-Wdeprecated-declarations]
  m_renshaTurboSlider->SetTickFreq(5, 1);
                                       ^
In file included from /usr/include/wx-3.0/wx/event.h:14:0,
                 from /usr/include/wx-3.0/wx/window.h:18,
                 from /usr/include/wx-3.0/wx/panel.h:19,
                 from src/CatapultPage.h:4,
                 from src/MiscControlPage.h:4,
                 from src/MiscControlPage.cpp:1:
/usr/include/wx-3.0/wx/slider.h:108:31: note: declared here
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
                               ^
/usr/include/wx-3.0/wx/defs.h:615:43: note: in definition of macro ‘wxDEPRECATED’
 #define wxDEPRECATED(x) wxDEPRECATED_DECL x
                                           ^
/usr/include/wx-3.0/wx/slider.h:108:5: note: in expansion of macro ‘wxDEPRECATED_INLINE’
     wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); )
     ^
Compiling openMSXController...
Compiling FullScreenDlg...
Compiling ScreenShotDlg...
Compiling Version...
Compiling RomTypeDlg...
Compiling IPSSelectionDlg...
Compiling AboutDlg...
Compiling CheckConfigsDlg...
Compiling utils...
Linking catapult...
Converting catapult.xrc...
Converting config.xrc...
Converting session.xrc...
Converting misccontrols.xrc...
Converting videocontrols.xrc...
Converting audiocontrols.xrc...
Converting status.xrc...
Converting input.xrc...
Converting fullscreen.xrc...
Converting screenshot.xrc...
Converting romtype.xrc...
Converting ipsselect.xrc...
Converting about.xrc...
Converting checkconfigs.xrc...
Copying ledon.png...
Copying romimage.png...
Copying about.png...
Copying eject.png...
Copying ledoff.png...
Copying tapeimage.png...
Copying diskimage.png...
Copying file.png...
Copying harddisk.png...
MBilderbeek commented 5 years ago

As I guess everyone is now using 3.0, I'd better close this bug as we won't be doing anything about it.