← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Fuzzable PCB parsing test harness

 

John,

This patch fails to link on windows.  I've attached the build error.

Wayne

On 10/9/2018 9:53 AM, John Beard wrote:
> Hi,
> 
> Here is an update patch that rebases over the commenting out of
> pcb_test_window, polygon_triangulation and polygon_generator and fixes
> a link error to do with base_screen.cpp.
> 
> Cheers,
> 
> John
> On Mon, Oct 8, 2018 at 5:27 PM John Beard <john.j.beard@xxxxxxxxx> wrote:
>>
>> Sorry,
>>
>> I wrote "ms", I meant "us" - the times are in the handful-of-millsecond range.
>>
>> Cheers,
>>
>> John
>> On Mon, Oct 8, 2018 at 5:24 PM John Beard <john.j.beard@xxxxxxxxx> wrote:
>>>
>>> Hi,
>>>
>>> This is a patch to add a test program that allows to parse a Pcbnew
>>> file from command line params or stdin. This means you can use it for
>>> fuzz testing.
>>>
>>> I have done a little bit of fuzz testing so far (8 million execs,
>>> about 70% of a cycle), and have not found any crashes, but I can make
>>> it hang in a few ways. These all seem to be in streams which contain
>>> nul's. This is actually not reachable from the UI due to reading files
>>> into wxStrings first (nut quite sure why), whereas this program uses
>>> the parser directly. Thus, the bug is probably not very critical.
>>> Example hanging input attached (note there's a nul in it, so your
>>> editor may or may not like that).
>>>
>>> This program can also be fed a number of files, which means it could
>>> be used for automated testing that all files in a batch can be parsed
>>> successfully, and also provides a handy way to put GDB on a program
>>> when debugging the parser against specific input.
>>>
>>> There is timing on the parsing too, mostly for interest (use the -v
>>> flag). It takes about 150-3000ms per FP on my machine for the FPs in
>>> Connector_PinSocket_2.54mm.pretty.
>>>
>>> There's also some centralisation of some QA-related utils into a
>>> qa_utils library.
>>>
>>> Cheers,
>>>
>>> John
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libcommon.a(marker_base.cpp.obj):marker_base.cpp:(.text+0xee9): undefined reference to `DRC_ITEM::ShowHtml(EDA_UNITS_T) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x1c9): undefined reference to `wxTimer::Stop()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x25d): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x268): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x2a0): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x2a7): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x2c1): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x35f): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x537): undefined reference to `wxTimer::Stop()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x57f): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x5c7): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x5ce): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x6e5): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x6f0): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x724): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x72b): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x745): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x773): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x888): undefined reference to `wxGetLocalTimeMillis()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x980): undefined reference to `wxGetLocalTimeMillis()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0xc04): undefined reference to `wxTimer::Stop()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0xcec): undefined reference to `wxTimer::Stop()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x127f): undefined reference to `wxWindow::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x163a): undefined reference to `wxTimer::GetId() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x16a6): undefined reference to `wxTimer::GetId() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x1867): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x186f): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text+0x1d2c): undefined reference to `wxGetLocalTimeMillis()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text$_ZN5KIGFX16WX_VIEW_CONTROLSD0Ev[__ZN5KIGFX16WX_VIEW_CONTROLSD0Ev]+0x1e): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(draw_panel_gal.cpp.obj):draw_panel_gal.cpp:(.text$_ZThn56_N5KIGFX16WX_VIEW_CONTROLSD0Ev[__ZThn56_N5KIGFX16WX_VIEW_CONTROLSD0Ev]+0x22): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(color4d.cpp.obj):color4d.cpp:(.text+0x1c9): undefined reference to `wxColourBase::FromString(wxString const&)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x308): undefined reference to `wxWindowBase::CaptureMouse()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0xf7e): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x1132): undefined reference to `wxTimer::Stop()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x132c): undefined reference to `wxMouseEvent::wxMouseEvent(int)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x1385): undefined reference to `wxGetKeyState(wxKeyCode)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x13a2): undefined reference to `wxGetKeyState(wxKeyCode)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x13c0): undefined reference to `wxGetKeyState(wxKeyCode)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x146f): undefined reference to `vtable for wxMouseEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x1488): undefined reference to `wxMouseEvent::Assign(wxMouseEvent const&)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text+0x1561): undefined reference to `wxGetLocalTimeMillis()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text$_ZN5KIGFX16WX_VIEW_CONTROLSD1Ev[__ZN5KIGFX16WX_VIEW_CONTROLSD1Ev]+0x1e): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.text$_ZThn56_N5KIGFX16WX_VIEW_CONTROLSD1Ev[__ZThn56_N5KIGFX16WX_VIEW_CONTROLSD1Ev]+0x1e): undefined reference to `wxTimer::~wxTimer()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(wx_view_controls.cpp.obj):wx_view_controls.cpp:(.rdata$_ZTVN5KIGFX16WX_VIEW_CONTROLSE[__ZTVN5KIGFX16WX_VIEW_CONTROLSE]+0x64): undefined reference to `wxEvtHandler::GetClassInfo() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0xfe2): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0xff2): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0xffc): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x1036): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x103d): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x104c): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x105e): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x10d9): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x76de): undefined reference to `wxNullPalette'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x78c2): undefined reference to `wxGLCanvasBase::IsDisplaySupported(int const*)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x8275): undefined reference to `wxGLCanvas::~wxGLCanvas()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0x8662): undefined reference to `wxGLCanvas::~wxGLCanvas()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0xa75a): undefined reference to `wxImage::GetRed(int, int) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0xa771): undefined reference to `wxImage::GetGreen(int, int) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.text+0xa788): undefined reference to `wxImage::GetBlue(int, int) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.rdata$_ZTVN5KIGFX10OPENGL_GALE[__ZTVN5KIGFX10OPENGL_GALE]+0x104): undefined reference to `wxGLCanvas::GetClassInfo() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.rdata$_ZTVN5KIGFX10OPENGL_GALE[__ZTVN5KIGFX10OPENGL_GALE]+0x140): undefined reference to `wxGLCanvas::GetEventTable() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.rdata$_ZTVN5KIGFX10OPENGL_GALE[__ZTVN5KIGFX10OPENGL_GALE]+0x144): undefined reference to `wxGLCanvas::GetEventHashTable() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.rdata$_ZTVN5KIGFX10OPENGL_GALE[__ZTVN5KIGFX10OPENGL_GALE]+0x468): undefined reference to `wxGLCanvas::SwapBuffers()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(opengl_gal.cpp.obj):opengl_gal.cpp:(.rdata$_ZTVN5KIGFX10OPENGL_GALE[__ZTVN5KIGFX10OPENGL_GALE]+0x470): undefined reference to `wxGLCanvas::CreateDefaultPalette()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x7cc): undefined reference to `wxImage::GetRed(int, int) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x7e3): undefined reference to `wxImage::GetGreen(int, int) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x7fc): undefined reference to `wxImage::GetBlue(int, int) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x9c2): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x9d2): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x9dc): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0xa16): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0xa1d): undefined reference to `vtable for wxPaintEvent'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0xa2c): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0xa3e): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0xab9): undefined reference to `g_isPainting'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x248f): undefined reference to `wxWindow::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x34bf): undefined reference to `wxImage::Create(int, int, unsigned char*, bool)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(cairo_gal.cpp.obj):cairo_gal.cpp:(.text+0x34f6): undefined reference to `wxMemoryDC::wxMemoryDC(wxBitmap&)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(gl_context_mgr.cpp.obj):gl_context_mgr.cpp:(.text+0xb9): undefined reference to `wxGLContext::wxGLContext(wxGLCanvas*, wxGLContext const*)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(gl_context_mgr.cpp.obj):gl_context_mgr.cpp:(.text+0x1f5): undefined reference to `wxGLCanvasBase::SetCurrent(wxGLContext const&) const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.text+0x86): undefined reference to `wxGLCanvas::wxGLCanvas(wxWindow*, int, int const*, wxPoint const&, wxSize const&, long, wxString const&, wxPalette const&)'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.text$_ZN15HIDPI_GL_CANVASD1Ev[__ZN15HIDPI_GL_CANVASD1Ev]+0x7): undefined reference to `wxGLCanvas::~wxGLCanvas()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.text$_ZN15HIDPI_GL_CANVASD0Ev[__ZN15HIDPI_GL_CANVASD0Ev]+0xd): undefined reference to `wxGLCanvas::~wxGLCanvas()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.rdata$_ZTV15HIDPI_GL_CANVAS[__ZTV15HIDPI_GL_CANVAS]+0x8): undefined reference to `wxGLCanvas::GetClassInfo() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.rdata$_ZTV15HIDPI_GL_CANVAS[__ZTV15HIDPI_GL_CANVAS]+0x44): undefined reference to `wxGLCanvas::GetEventTable() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.rdata$_ZTV15HIDPI_GL_CANVAS[__ZTV15HIDPI_GL_CANVAS]+0x48): undefined reference to `wxGLCanvas::GetEventHashTable() const'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.rdata$_ZTV15HIDPI_GL_CANVAS[__ZTV15HIDPI_GL_CANVAS]+0x36c): undefined reference to `wxGLCanvas::SwapBuffers()'
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: ../../common/libgal.a(hidpi_gl_canvas.cpp.obj):hidpi_gl_canvas.cpp:(.rdata$_ZTV15HIDPI_GL_CANVAS[__ZTV15HIDPI_GL_CANVAS]+0x374): undefined reference to `wxGLCanvas::CreateDefaultPalette()'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [qa/pcb_parse_input/CMakeFiles/qa_pcb_parse_input.dir/build.make:162: qa/pcb_parse_input/qa_pcb_parse_input.exe] Error 1
make[1]: *** [CMakeFiles/Makefile2:3372: qa/pcb_parse_input/CMakeFiles/qa_pcb_parse_input.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:141: all] Error 2

Follow ups

References